@linkdesk/plugin-sdk 0.1.31 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,91 @@
1
+ import { type PluginIdSource } from "./plugin-prefix.js";
2
+ import { manifestIdLine, type HostReservedNames } from "./command-ownership.js";
3
+ import { type CheckViolation } from "./scan.js";
4
+ /** 判据命中的三种形态(红 = 占宿主兜底面;黄 = 不带本仓归属 / 同插件跨配方重复配色) */
5
+ export type AppearanceIdCode = "host-reserved" | "no-plugin-prefix" | "same-plugin-colorway";
6
+ /**
7
+ * 外观 id 的**空间**——判据按空间比,**永不跨空间**(两个名字空间不可合栏,见文件头判据②)。
8
+ * · `recipe` 配方 id(`app.theme` 取值空间)
9
+ * · `colorway` 配色变体 id(`app.themeColor` / colors 域来源取值空间)
10
+ * · `iconTheme` 图标主题 id(`app.iconTheme` 取值空间)
11
+ * · `sharedIcon` 共享图标 id(`contributes.icons` 的键)
12
+ * · `sentinel` 外观哨兵值(壳的取值约定;插件无声明通道 ⇒ 恒空转)
13
+ */
14
+ export type AppearanceIdSpace = "recipe" | "colorway" | "iconTheme" | "sharedIcon" | "sentinel";
15
+ /** 扫描面:声明面(plugin.json)/主题文件面(themes/*.json) */
16
+ export type AppearanceIdFace = "declared" | "themeFile";
17
+ /** 一处不合规站点(探针与腿共用同一份数据) */
18
+ export interface AppearanceIdSite {
19
+ face: AppearanceIdFace;
20
+ /** 工程相对路径(正斜杠) */
21
+ file: string;
22
+ line: number;
23
+ id: string;
24
+ space: AppearanceIdSpace;
25
+ code: AppearanceIdCode;
26
+ /** 应改成什么:**只换第一段**(`<pluginId>.` + 原 id 第一段之后的全部)——词干零变化 */
27
+ suggested: string;
28
+ /** code = host-reserved 时:撞上的那条宿主兜底 id */
29
+ reserved?: string;
30
+ }
31
+ export interface AppearanceOwnershipReport {
32
+ root: string;
33
+ pluginId: string | null;
34
+ pluginIdSource: PluginIdSource | null;
35
+ pluginIdNote: string | null;
36
+ /** fail-closed:非 null ⇒ 本腿报红(拿不到身份就无从判归属) */
37
+ error: string | null;
38
+ /** 🔴 必须改的(进腿报点):占用宿主保留面 */
39
+ red: AppearanceIdSite[];
40
+ /** 🟡 建议改的(只打印,不拦):不带本仓归属 / 同插件跨配方重复配色 */
41
+ yellow: AppearanceIdSite[];
42
+ /** 各面的**全部** id(合规 + 不合规,按出现顺序去重)——探针的读数面(口径:名数,非站点数) */
43
+ declaredRecipeIds: string[];
44
+ declaredIconThemeIds: string[];
45
+ declaredSharedIconIds: string[];
46
+ themeFileRecipeIds: string[];
47
+ themeFileColorwayIds: string[];
48
+ /** 主题文件读不出来的个数(不是判据——是"这一面扫了个空"的报警器,必须让作者看见) */
49
+ themeFilesUnparsed: number;
50
+ /** 账的加载实况(账没读到 ⇒ 判据② 空转,报告里必须能看出来) */
51
+ hostLedger: {
52
+ file: string;
53
+ found: boolean;
54
+ appearanceRecipeIds: number;
55
+ appearanceColorwayIds: number;
56
+ appearanceIconThemeIds: number;
57
+ appearanceSentinels: number;
58
+ appearanceIdGrants: number;
59
+ };
60
+ /** 腿报点 = fail-closed + 全部红 */
61
+ violations: CheckViolation[];
62
+ /** 黄灯建议(`lint.ts` 打印用;**不进** `LintLeg.violations` ⇒ 不拦 CI) */
63
+ advisories: CheckViolation[];
64
+ }
65
+ /** 账里该空间的兜底 id 栏——**按空间取**(⛔ 永不跨空间:两个名字空间合栏 = 假红,见文件头判据②) */
66
+ export declare function reservedIdsForSpace(space: AppearanceIdSpace, reserved: HostReservedNames): string[];
67
+ /** 该 id 的**证照**持有者(账 `appearanceIdGrants`)——🔴 **按 id 记**,不是白名单(新插件永远不在表里) */
68
+ export declare function grantHoldersFor(id: string, reserved: HostReservedNames): string[];
69
+ /**
70
+ * 一个外观 id 的裁决(纯函数——单测与探针共用,别在别处再写一份判据)。
71
+ *
72
+ * 🔴 判据顺序 = **先②后①**:占宿主兜底面是红,能同时命中「不带前缀」的那一半不该把红降级成黄。
73
+ * 🔴 判据① 对 `iconTheme` 空间**不判**(任务书 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)。
74
+ */
75
+ export declare function judgeAppearanceId(id: string, space: AppearanceIdSpace, pluginId: string, reserved: HostReservedNames): {
76
+ code: AppearanceIdCode;
77
+ suggested: string;
78
+ reserved?: string;
79
+ } | null;
80
+ /** theme JSON / 清单里 `"id": "<value>"` 的行号(1-based;找不到 ⇒ 1,不许当成「不存在」)——**复用命令腿那一份**(同一种 JSON 读取,⛔ 两条腿各写一份 = 迟早漂) */
81
+ export declare const themeIdLine: typeof manifestIdLine;
82
+ /** 读 theme JSON(含容错的 JSONC 剥注释 + 去尾逗号;读不出 ⇒ null,由调用方计入 `themeFilesUnparsed`) */
83
+ export declare function readThemeJson(abs: string): {
84
+ id?: string;
85
+ colorwayIds: string[];
86
+ } | null;
87
+ /**
88
+ * 跑本仓外观 id 归属判据。返回结构化报告(探针用)+ 腿报点(`lint.ts` 用)——**同一份实现**。
89
+ */
90
+ export declare function runAppearanceOwnershipCheck(root: string, reserved?: HostReservedNames, reservedFile?: string): AppearanceOwnershipReport;
91
+ //# sourceMappingURL=appearance-ownership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/appearance-ownership.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * check-appearance-ownership 腿·**外观族 id 归属判据**(E6#111f · 轮次 1.36)。
3
+ *
4
+ * ── 为什么(本件立项的那条轴)──
5
+ * 外观 id(配方 / 配色 / 图标主题 / 共享图标)是**全局名册的键**:配方 id 进 `app.theme` 取值空间、
6
+ * 配色 id 进 `app.themeColor` 取值空间,两者都由**壳的能力面**消费(主题卡片、配色下拉、图标主题选择器)。
7
+ * 不带本仓归属的 id ⇒ 两个插件可以声明**同一个名字**(今天后注册者**静默**覆盖 ⇒ 有一个永远不生效),
8
+ * 或者插件占**宿主兜底**的名字(`dark` / `light` / `dark-fallback` / `default`)⇒ 顶替宿主的保底面。
9
+ *
10
+ * ── 判据(与壳仓 `scripts/gen-host-reserved.mjs` 的账同源)──
11
+ * ① **本仓前缀**(🟡 黄):**新**声明的外观 id 第一段应是本仓 `pluginId`(`<pluginId>.<名字>`,只换第一段、词干零变化)。
12
+ * ⚠️ ★**回退条件**:1.36 任务书 §二.2 把它定为红**但附回退条件**——「若本格落地时判定存量改名不执行
13
+ * (例如 1.42 改名轮被砍),本判据**必须**回退到黄」。本格落地时:存量 25 条改名**判给 1.47**(不是本格执行)
14
+ * ⇒ 照轴上的**排序纪律**(1.32/1.34/1.36/1.38 的判据先以「黄灯 + 账」落地,**1.49 才收紧为红**)
15
+ * ——本判据在本格是**黄**,进 `advisories` 只打印不拦。
16
+ * 🔴 例外:**图标主题 id 不判①**(任务书 §二.2 ⑦:本轮不改名——改名会让设置页可见文字变化,
17
+ * 违「操作体验零变化」上位约束)⇒ 只判②。这一格不是漏了,是**判据表里"⚪不判"那一行的落地**。
18
+ * 🔴 **第二条同类例外(跑官方 18 仓实测抓到的缺陷)**:**宿主兜底 id 本身不判①**——它在账的**本空间**栏内,
19
+ * 要么已判红,要么你就是**持证照的实现者**。对后者建议 `<pluginId>.light` = 让官方实现者去改宿主的兜底名
20
+ * ⇒ **断掉「保底 → 官方实现」接替链**(本轴硬禁区),而且那条建议**永远修不得**。
21
+ * 实测读数(修前 / 修后):`theme-defaults` 报 **4 条黄 → 1 条黄**——被除掉的三条是 `light` 配方×2
22
+ * + `light` 配色(**修不得的建议**);留下的一条是配色 `dark`,它**是** `theme-defaults` 自己的配色变体
23
+ * (不在任何兜底栏内)⇒ 该改名,与 1.35 §13 的 16 条配色改名表一致。
24
+ * ② **宿主保留面**(🔴 红):声明 id ∈ 账(包内 `schemas/host-reserved.json`)**对应空间**那一栏,
25
+ * 且声明者**不在** `appearanceIdGrants[id]`(证照)里 ⇒ 占用宿主兜底面。**按空间比、绝不跨空间**:
26
+ * 配方 id 与配色 id 是**两个名字空间**(`mint-soda` 同时是两者)——合栏比会把官方 `theme-defaults`
27
+ * 的配色 `dark` 判成顶替配方 `dark`(**假红**;而它恰恰是宿主亮兜底的**官方实现者**,有 `light` 证照)。
28
+ * ③ **同插件跨配方同配色 id**(🟡 黄 + 登记):同一插件的两个配方声明同一个配色 id
29
+ * (壳侧 `theme.ts:92` 的契约是「配色变体 id 全局唯一」;跨配方重复今天表现为壳 UI 的 React key 碰撞)。
30
+ *
31
+ * ── 扫描面(两面)──
32
+ * · **声明面** `declared` = `plugin.json`:`contributes.themes[].id`(配方)/`contributes.iconThemes[].id`
33
+ * (图标主题)/`contributes.icons` 的键(共享图标);
34
+ * · **主题文件面** `themeFile` = 仓内 `themes/*.json`:顶层 `id`(配方)+ `colorways[].id`(配色)。
35
+ * 🔴 配色 id **只在这里出现**(plugin.json 不声明配色)——少了这一面,判据②对配色空间就是瞎子。
36
+ * · 哨兵空间(`followTheme`)**恒空转**:插件没有声明哨兵的通道(它是壳的取值约定,不是 id)。
37
+ *
38
+ * ── 🔴 与运行时同源 ──
39
+ * 壳运行时(`src/core/registry/appearance/appearanceOwnership.ts`)对**同样的三条分支**做仲裁:
40
+ * 判据② 命中在壳里是**当场拒注册 + console.error**;本腿是**提前在作者仓里把同一件事报出来**
41
+ * (作者不必等装上壳才发现自己的 id 被拒)。判据①③ 运行时不管(存量 25 条还在,运行时拒前缀不合规的 id
42
+ * 会把存量插件当场弄坏)⇒ 只在这里、且只是黄。
43
+ *
44
+ * 知情绕行 = 标准 disable 注释(`CHECK_IDS.appearanceOwnership`)。⚠️ **fail-closed 不参与豁免**:
45
+ * 拿不到 `pluginId` 说的不是「你的 id 怎么写」,而是「你的身份读不到」——那是工程根的问题。
46
+ */
47
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
48
+ import { join, resolve } from "node:path";
49
+ import { resolvePluginIdForCss } from "./plugin-prefix.js";
50
+ import { HOST_RESERVED_FILE, loadHostReserved, manifestIdLine } from "./command-ownership.js";
51
+ import { isTestOrMockRel, relPath } from "./scan.js";
52
+ import { buildDisableIndex, isDisabled, CHECK_IDS } from "./disable.js";
53
+ /** 账里该空间的兜底 id 栏——**按空间取**(⛔ 永不跨空间:两个名字空间合栏 = 假红,见文件头判据②) */
54
+ export function reservedIdsForSpace(space, reserved) {
55
+ switch (space) {
56
+ case "recipe": return reserved.appearanceRecipeIds;
57
+ case "colorway": return reserved.appearanceColorwayIds;
58
+ case "iconTheme": return reserved.appearanceIconThemeIds;
59
+ case "sharedIcon": return []; // 宿主没有兜底共享图标(账里没有这一栏)——本空间只剩"跨插件同 id"那条判据
60
+ case "sentinel": return reserved.appearanceSentinels;
61
+ }
62
+ }
63
+ /** 该 id 的**证照**持有者(账 `appearanceIdGrants`)——🔴 **按 id 记**,不是白名单(新插件永远不在表里) */
64
+ export function grantHoldersFor(id, reserved) {
65
+ return reserved.appearanceIdGrants[id] ?? [];
66
+ }
67
+ /**
68
+ * 一个外观 id 的裁决(纯函数——单测与探针共用,别在别处再写一份判据)。
69
+ *
70
+ * 🔴 判据顺序 = **先②后①**:占宿主兜底面是红,能同时命中「不带前缀」的那一半不该把红降级成黄。
71
+ * 🔴 判据① 对 `iconTheme` 空间**不判**(任务书 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)。
72
+ */
73
+ export function judgeAppearanceId(id, space, pluginId, reserved) {
74
+ const dot = id.indexOf(".");
75
+ const suggested = `${pluginId}.${dot > 0 ? id.slice(dot + 1) : id}`;
76
+ // ② 宿主保留面(**按空间比全等**——保留面是一张逐个列出的 id 清单,不是前缀面)
77
+ if (reservedIdsForSpace(space, reserved).includes(id) && !grantHoldersFor(id, reserved).includes(pluginId)) {
78
+ return { code: "host-reserved", suggested, reserved: id };
79
+ }
80
+ // ① 本仓前缀(🔴 iconTheme 不判——见文件头;sentinel 无声明通道,也不判)
81
+ if (space === "recipe" || space === "colorway" || space === "sharedIcon") {
82
+ // 🔴 **宿主兜底 id 本身不判①**(跑官方 18 仓实测抓到的缺陷,见文件头):它在**本空间**账内 ⇒
83
+ // 要么上面已判红(无证照),要么你是**持证照的实现者**(`light` ⇐ theme-defaults)。给后者建议
84
+ // `<pluginId>.light` = 让官方实现者去改宿主兜底的名字 ⇒ **断掉「保底 → 官方实现」接替链**
85
+ // (本轴硬禁区),且那条建议**永远修不得** ⇒ 报它 = 报一个不允许修的洞(与 iconTheme 不判①同理)。
86
+ if (!reservedIdsForSpace(space, reserved).includes(id) && !id.startsWith(`${pluginId}.`)) {
87
+ return { code: "no-plugin-prefix", suggested };
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ /** theme JSON / 清单里 `"id": "<value>"` 的行号(1-based;找不到 ⇒ 1,不许当成「不存在」)——**复用命令腿那一份**(同一种 JSON 读取,⛔ 两条腿各写一份 = 迟早漂) */
93
+ export const themeIdLine = manifestIdLine;
94
+ /** 读 theme JSON(含容错的 JSONC 剥注释 + 去尾逗号;读不出 ⇒ null,由调用方计入 `themeFilesUnparsed`) */
95
+ export function readThemeJson(abs) {
96
+ let raw;
97
+ try {
98
+ raw = readFileSync(abs, "utf8");
99
+ }
100
+ catch {
101
+ return null;
102
+ }
103
+ try {
104
+ const cleaned = raw
105
+ .replace(/\/\*[\s\S]*?\*\//g, "")
106
+ .replace(/(^|[^:"'\\])\/\/.*$/gm, "$1")
107
+ .replace(/,(\s*[}\]])/g, "$1");
108
+ const data = JSON.parse(cleaned);
109
+ const colorwayIds = Array.isArray(data.colorways)
110
+ ? data.colorways
111
+ .map((c) => c?.id)
112
+ .filter((v) => typeof v === "string" && v.length > 0)
113
+ : [];
114
+ return { ...(typeof data.id === "string" && data.id ? { id: data.id } : {}), colorwayIds };
115
+ }
116
+ catch {
117
+ return null;
118
+ }
119
+ }
120
+ /** 主题实体文件(仓内 `themes/*.json`,含子目录)
121
+ * ⚠️ `isTestOrMockRel` 只认 `.ts/.tsx/.js/.jsx` **文件名**(`*.test.ts` / `*.fixture.ts`)⇒ 对 `.json` **恒 false**;
122
+ * 这里仍然带着它,只为与另几条腿**同形状**(哪天那个共享谓词学会目录级口径,几条腿一起变)。
123
+ * 🔴 也就是说:**主题文件面目前不跳任何文件**——那不是漏了:主题 JSON 是**发布产物**,出现在 `themes/` 下
124
+ * 就是真声明。在这里另写一个「目录级跳过」= 凭空造第二条口径,只会与另几条腿漂。 */
125
+ function themeFilesOf(root) {
126
+ const dir = join(root, "themes");
127
+ if (!existsSync(dir))
128
+ return [];
129
+ const out = [];
130
+ const walk = (cur) => {
131
+ let entries;
132
+ try {
133
+ entries = readdirSync(cur, { withFileTypes: true });
134
+ }
135
+ catch {
136
+ return;
137
+ }
138
+ for (const e of entries) {
139
+ if (e.name === "node_modules" || e.name === ".git")
140
+ continue;
141
+ const p = join(cur, e.name);
142
+ if (e.isDirectory())
143
+ walk(p);
144
+ else if (e.isFile() && e.name.endsWith(".json") && !isTestOrMockRel(relPath(root, p)))
145
+ out.push(p);
146
+ }
147
+ };
148
+ walk(dir);
149
+ return out;
150
+ }
151
+ /** `contributes` 里的主题声明/图标主题声明/共享图标键(读不出 ⇒ 都空) */
152
+ function contributeIdsOf(contributes) {
153
+ const idsOf = (node) => Array.isArray(node)
154
+ ? node.map((x) => x?.id).filter((v) => typeof v === "string" && v.length > 0)
155
+ : [];
156
+ const icons = contributes?.icons;
157
+ return {
158
+ themeIds: idsOf(contributes?.themes),
159
+ iconThemeIds: idsOf(contributes?.iconThemes),
160
+ sharedIconIds: icons && typeof icons === "object" && !Array.isArray(icons) ? Object.keys(icons) : [],
161
+ };
162
+ }
163
+ /**
164
+ * 跑本仓外观 id 归属判据。返回结构化报告(探针用)+ 腿报点(`lint.ts` 用)——**同一份实现**。
165
+ */
166
+ export function runAppearanceOwnershipCheck(root, reserved = loadHostReserved(), reservedFile = HOST_RESERVED_FILE) {
167
+ const absRoot = resolve(root);
168
+ const manifestPath = join(absRoot, "plugin.json");
169
+ const resolution = resolvePluginIdForCss(absRoot);
170
+ const violations = [];
171
+ const report = {
172
+ root: absRoot,
173
+ pluginId: resolution.pluginId,
174
+ pluginIdSource: resolution.source,
175
+ pluginIdNote: resolution.note,
176
+ error: resolution.error,
177
+ red: [],
178
+ yellow: [],
179
+ declaredRecipeIds: [],
180
+ declaredIconThemeIds: [],
181
+ declaredSharedIconIds: [],
182
+ themeFileRecipeIds: [],
183
+ themeFileColorwayIds: [],
184
+ themeFilesUnparsed: 0,
185
+ hostLedger: {
186
+ file: reservedFile,
187
+ found: existsSync(reservedFile),
188
+ appearanceRecipeIds: reserved.appearanceRecipeIds.length,
189
+ appearanceColorwayIds: reserved.appearanceColorwayIds.length,
190
+ appearanceIconThemeIds: reserved.appearanceIconThemeIds.length,
191
+ appearanceSentinels: reserved.appearanceSentinels.length,
192
+ appearanceIdGrants: Object.keys(reserved.appearanceIdGrants).length,
193
+ },
194
+ violations,
195
+ advisories: [],
196
+ };
197
+ // ── fail-closed(不可豁免:拿不到身份 = 判据①② 全部无从谈起)──
198
+ if (resolution.error || !resolution.pluginId) {
199
+ violations.push({
200
+ file: "plugin.json",
201
+ line: 1,
202
+ message: `拿不到本仓 pluginId:${resolution.error}。外观 id 的归属判据以「本仓身份」为唯一前缀来源——读不到它就无从判` +
203
+ `「这个 id 是不是你的」。在插件工程根修好 plugin.json(或显式声明 pluginId),` +
204
+ `别用 disable 注释绕:这是身份问题,不受豁免注释管辖。`,
205
+ });
206
+ return report;
207
+ }
208
+ const pluginId = resolution.pluginId;
209
+ const prefix = `${pluginId}.`;
210
+ const manifestRaw = existsSync(manifestPath) ? readFileSync(manifestPath, "utf8") : "";
211
+ const manifestDisabled = buildDisableIndex(manifestRaw, [CHECK_IDS.appearanceOwnership]);
212
+ const push = (site, message, disabled) => {
213
+ if (disabled && isDisabled(disabled.idx, disabled.line, CHECK_IDS.appearanceOwnership))
214
+ return;
215
+ if (site.code === "host-reserved") {
216
+ report.red.push(site);
217
+ violations.push({ file: site.file, line: site.line, message });
218
+ }
219
+ else {
220
+ report.yellow.push(site);
221
+ report.advisories.push({ file: site.file, line: site.line, message });
222
+ }
223
+ };
224
+ /** 判据②① 合一的报点(两个面共用) */
225
+ const judgeAndPush = (face, space, id, file, line) => {
226
+ const verdict = judgeAppearanceId(id, space, pluginId, reserved);
227
+ if (!verdict)
228
+ return;
229
+ const where = face === "declared"
230
+ ? "声明面(plugin.json contributes)"
231
+ : "主题文件面(themes/*.json)";
232
+ const spaceLabel = space === "recipe" ? "配方 id" : space === "colorway" ? "配色变体 id" : space === "iconTheme" ? "图标主题 id" : "共享图标 id";
233
+ const message = verdict.code === "host-reserved"
234
+ ? `${where}:${spaceLabel} "${id}" 属于**宿主的兜底面**(保留清单见包内 schemas/host-reserved.json 的 ` +
235
+ `appearance${space === "recipe" ? "RecipeIds" : space === "colorway" ? "ColorwayIds" : space === "iconTheme" ? "IconThemeIds" : "Sentinels"})。` +
236
+ `占用它 = 顶替宿主保底(壳运行时会**当场拒绝注册**这条 id 并报错)——宿主兜底是"全部主题插件卸载后仍能渲染"的那一层。` +
237
+ `改法:改成 "${verdict.suggested}"(只换第一段、词干零变化);若你确实是宿主兜底的官方实现者,` +
238
+ `需在账的 appearanceIdGrants 里为该 id 记一条证照(一次公共面决策,不是作者自己能加的)。`
239
+ : `${where}:${spaceLabel} "${id}" 不带本仓归属(本插件 pluginId = "${pluginId}",新 ${spaceLabel}应以 "${prefix}" 开头)` +
240
+ `——外观 id 是**全局名册的键**:同名 id 被两个插件声明时只有一个能生效(壳 1.36 起"先者保留",后到者被拒),` +
241
+ `跨插件撞名还会在校验层被记一笔。改成 "${verdict.suggested}"(只换第一段、词干零变化)。`;
242
+ push({ face, file, line, id, space, code: verdict.code, suggested: verdict.suggested, ...(verdict.reserved !== undefined ? { reserved: verdict.reserved } : {}) }, message, { idx: face === "declared" ? manifestDisabled : buildDisableIndex(readFileSync(join(absRoot, file), "utf8"), [CHECK_IDS.appearanceOwnership]), line });
243
+ };
244
+ // ── ①② 声明面:plugin.json(读不出 ⇒ 跳过——plugin-prefix 腿已对同一件事 fail-closed 报红,不重复报)
245
+ if (manifestRaw) {
246
+ let contributes;
247
+ try {
248
+ const manifest = JSON.parse(manifestRaw.replace(/\/\*[\s\S]*?\*\//g, "").replace(/(^|[^:"'\\])\/\/.*$/gm, "$1").replace(/,(\s*[}\]])/g, "$1"));
249
+ contributes = manifest.contributes;
250
+ }
251
+ catch {
252
+ contributes = undefined; // manifest 坏 → 由 plugin-prefix 腿报;这里不重复
253
+ }
254
+ const { themeIds, iconThemeIds, sharedIconIds } = contributeIdsOf(contributes);
255
+ for (const id of themeIds) {
256
+ if (!report.declaredRecipeIds.includes(id))
257
+ report.declaredRecipeIds.push(id);
258
+ judgeAndPush("declared", "recipe", id, "plugin.json", themeIdLine(manifestRaw, id));
259
+ }
260
+ for (const id of iconThemeIds) {
261
+ if (!report.declaredIconThemeIds.includes(id))
262
+ report.declaredIconThemeIds.push(id);
263
+ judgeAndPush("declared", "iconTheme", id, "plugin.json", themeIdLine(manifestRaw, id));
264
+ }
265
+ for (const id of sharedIconIds) {
266
+ if (!report.declaredSharedIconIds.includes(id))
267
+ report.declaredSharedIconIds.push(id);
268
+ judgeAndPush("declared", "sharedIcon", id, "plugin.json", themeIdLine(manifestRaw, id));
269
+ }
270
+ }
271
+ // ── ①② 主题文件面:themes/*.json(顶层 id = 配方;colorways[].id = 配色)
272
+ // 🔴 配色 id **只在这一面出现**——少了它,判据②对配色空间就是瞎子。
273
+ const colorwayFiles = new Map(); // colorwayId → 声明它的主题文件(判据③用)
274
+ for (const abs of themeFilesOf(absRoot)) {
275
+ const rel = relPath(absRoot, abs);
276
+ const raw = readFileSync(abs, "utf8");
277
+ const data = readThemeJson(abs);
278
+ if (!data) {
279
+ report.themeFilesUnparsed++;
280
+ continue;
281
+ }
282
+ if (data.id) {
283
+ if (!report.themeFileRecipeIds.includes(data.id))
284
+ report.themeFileRecipeIds.push(data.id);
285
+ judgeAndPush("themeFile", "recipe", data.id, rel, themeIdLine(raw, data.id));
286
+ }
287
+ for (const cw of data.colorwayIds) {
288
+ if (!report.themeFileColorwayIds.includes(cw))
289
+ report.themeFileColorwayIds.push(cw);
290
+ judgeAndPush("themeFile", "colorway", cw, rel, themeIdLine(raw, cw));
291
+ const files = colorwayFiles.get(cw) ?? [];
292
+ if (!files.includes(rel))
293
+ files.push(rel);
294
+ colorwayFiles.set(cw, files);
295
+ }
296
+ }
297
+ // ── ③ 同插件跨配方同配色 id(🟡 黄 + 登记):同一配色 id 出现在**两个不同主题文件**里
298
+ // 契约出处 = 壳 `theme.ts` 的「配色变体 id 须全局唯一」(跨配方重复今天表现为壳 UI 的 React key 碰撞)。
299
+ for (const [cw, files] of colorwayFiles) {
300
+ if (files.length < 2)
301
+ continue;
302
+ const verdict = judgeAppearanceId(cw, "colorway", pluginId, reserved);
303
+ // 已被判红/黄的 id 不重复报(红的意思已经说过了——同一处报两次只会稀释信号)
304
+ if (verdict)
305
+ continue;
306
+ for (const file of files.slice(1)) {
307
+ push({ face: "themeFile", file, line: themeIdLine(readFileSync(join(absRoot, file), "utf8"), cw), id: cw, space: "colorway", code: "same-plugin-colorway", suggested: `${prefix}${cw.includes(".") ? cw.slice(cw.indexOf(".") + 1) : cw}` }, `主题文件面:配色变体 id "${cw}" 在本插件被声明了 ${files.length} 次(${files.join(" / ")})` +
308
+ `——壳的契约是「配色变体 id **全局唯一**」(跨配方重复会让壳 UI 的配色下拉出现重复项/React key 碰撞)。` +
309
+ `改法:每个配方用自己的配色 id(形如 "${prefix}<配方名>.<配色名>")。`);
310
+ }
311
+ }
312
+ return report;
313
+ }
314
+ //# sourceMappingURL=appearance-ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appearance-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/appearance-ownership.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,19 @@ import { type CheckViolation } from "./scan.js";
6
6
  * Vite 的资产 URL 惯用式,本模块一旦被 Vite 处理会被改写成构建期资产引用(validate.ts 同款坑,E6#91e)。
7
7
  */
8
8
  export declare const HOST_RESERVED_FILE: string;
9
- /** 本腿要读的两栏 + **E6#111d(1.34)起原地补齐另两栏**——`configKeys`(配置键归属腿:判「不得占用宿主
10
- * 设置面」)与 `pseudoPluginIds`(宿主伪身份:判「不得冒充宿主身份注册」)。**同一个 loader、同一份账**——
11
- * ⛔ 不许在各腿里各写一份 loader(两份 = 迟早漂,而这两条判据的输入必须是同一本账)。
12
- * 剩下两栏(contextKeys / appearanceIds)由上下文旗子、外观 id 的后续轮次消费,此处不读也不删。 */
9
+ /** 本腿要读的两栏 + **E6#111d(1.34)补齐配置面两栏** + **E6#111f(1.36)补齐外观族四栏 + 证照**。
10
+ * **同一个 loader、同一份账**——⛔ 不许在各腿里各写一份 loader(两份 = 迟早漂,而这几条判据的输入必须是同一本账)。
11
+ *
12
+ * 逐栏的消费者:
13
+ * · `commandPrefixes` / `protocolIds` → 命令 id 归属腿(本文件);
14
+ * · `configKeys`(配置键归属腿:判「不得占用宿主设置面」)/ `pseudoPluginIds`(宿主伪身份)→ 1.34;
15
+ * · **`appearanceRecipeIds` / `appearanceColorwayIds` / `appearanceIconThemeIds` / `appearanceSentinels`**
16
+ * → 外观族 id 归属腿(1.36)。🔴 **四栏不可合并**——配方 id 与配色 id 是**两个名字空间**
17
+ * (`mint-soda` 同时是两者):合栏比会把官方 `theme-defaults` 的配色 `light` 判成顶替配方 `light`
18
+ * (**假红**,它恰恰是宿主亮兜底的官方实现者)。判据按空间取栏,见 `reservedIdsForSpace`;
19
+ * · **`appearanceIdGrants`**(id → 持证 pluginId 列表)→ 同上。**不是白名单**:它是"某个兜底 id 的官方实现者"
20
+ * 的一次公共面决策(今天只有 `light` → `theme-defaults`),与"跳过判据"的豁免表刻意分开存。
21
+ * · `contextKeys` 由上下文旗子轮次(1.38)消费,此处不读也不删。 */
13
22
  export interface HostReservedNames {
14
23
  commandPrefixes: string[];
15
24
  protocolIds: string[];
@@ -17,6 +26,16 @@ export interface HostReservedNames {
17
26
  configKeys: string[];
18
27
  /** E6#111d:宿主伪身份(app / appearance / update)——插件用它注册 = 冒充宿主 */
19
28
  pseudoPluginIds: string[];
29
+ /** E6#111f:宿主兜底**配方** id(`app.theme` 取值空间) */
30
+ appearanceRecipeIds: string[];
31
+ /** E6#111f:宿主兜底**配色变体** id(`app.themeColor` 取值空间)——🔴 与配方栏各成一格,别混 */
32
+ appearanceColorwayIds: string[];
33
+ /** E6#111f:宿主保底**图标主题** id(`app.iconTheme` 取值空间) */
34
+ appearanceIconThemeIds: string[];
35
+ /** E6#111f:宿主**外观哨兵值**(`followTheme`)——取值约定,不是 id */
36
+ appearanceSentinels: string[];
37
+ /** E6#111f:外观 id 的**证照**(id → 持证的 pluginId 列表)——「这个兜底 id 由谁实现」的公共面决策 */
38
+ appearanceIdGrants: Record<string, string[]>;
20
39
  }
21
40
  /** 读宿主保留面账;文件缺失 ⇒ 空表 + 报告里打一条 note(静默空表 = 判据②变瞎子,不许不吭声) */
22
41
  export declare function loadHostReserved(file?: string): HostReservedNames;
@@ -1 +1 @@
1
- {"version":3,"file":"command-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAGnB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAA0F,CAAC;AAE1H;;;qEAGqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uCAAuC;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8DAA8D;IAC9D,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAA2B,GAAG,iBAAiB,CAcrF;AAED,gBAAgB;AAChB,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAEjE,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhE,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB;;wCAEoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kBAAkB;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,yDAAyD;IACzD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3F,iCAAiC;IACjC,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,aAAa,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CActE;AAqBD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,QAAgD,CAAC;AACjF,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,QAA4E,CAAC;AAE9G,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,iBAAsC,EAChD,YAAY,GAAE,MAA2B,GACxC,sBAAsB,CAyGxB"}
1
+ {"version":3,"file":"command-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"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"}
@@ -43,14 +43,30 @@ import { buildDisableIndex, isDisabled, CHECK_IDS } from "./disable.js";
43
43
  export const HOST_RESERVED_FILE = resolve(dirname(fileURLToPath(import.meta.url)), "../../../schemas/host-reserved.json");
44
44
  /** 读宿主保留面账;文件缺失 ⇒ 空表 + 报告里打一条 note(静默空表 = 判据②变瞎子,不许不吭声) */
45
45
  export function loadHostReserved(file = HOST_RESERVED_FILE) {
46
- if (!existsSync(file))
47
- return { commandPrefixes: [], protocolIds: [], configKeys: [], pseudoPluginIds: [] };
46
+ if (!existsSync(file)) {
47
+ return {
48
+ commandPrefixes: [],
49
+ protocolIds: [],
50
+ configKeys: [],
51
+ pseudoPluginIds: [],
52
+ appearanceRecipeIds: [],
53
+ appearanceColorwayIds: [],
54
+ appearanceIconThemeIds: [],
55
+ appearanceSentinels: [],
56
+ appearanceIdGrants: {},
57
+ };
58
+ }
48
59
  const raw = JSON.parse(readFileSync(file, "utf8"));
49
60
  return {
50
61
  commandPrefixes: raw.commandPrefixes ?? [],
51
62
  protocolIds: raw.protocolIds ?? [],
52
63
  configKeys: raw.configKeys ?? [],
53
64
  pseudoPluginIds: raw.pseudoPluginIds ?? [],
65
+ appearanceRecipeIds: raw.appearanceRecipeIds ?? [],
66
+ appearanceColorwayIds: raw.appearanceColorwayIds ?? [],
67
+ appearanceIconThemeIds: raw.appearanceIconThemeIds ?? [],
68
+ appearanceSentinels: raw.appearanceSentinels ?? [],
69
+ appearanceIdGrants: raw.appearanceIdGrants ?? {},
54
70
  };
55
71
  }
56
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"command-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,11 @@ export declare const CHECK_IDS: {
22
22
  readonly commandOwnership: "linkdesk/no-unowned-command-id";
23
23
  /** E6#111d(1.34):配置键必须带本仓 `<pluginId>.` 前缀(🟡 黄),且不得占用宿主保留键(🔴 红) */
24
24
  readonly configOwnership: "linkdesk/no-unowned-config-key";
25
+ /** E6#111f(1.36):外观族 id(配方 / 配色 / 图标主题 / 共享图标)必须带本仓 `<pluginId>.` 前缀
26
+ * (🟡 黄——★回退条件 + 轴上排序纪律,见 `appearance-ownership.ts` 文件头),
27
+ * 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
28
+ * ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
29
+ readonly appearanceOwnership: "linkdesk/no-unowned-appearance-id";
25
30
  };
26
31
  export interface DisableIndex {
27
32
  /** 1-based 行 → 该行豁免的 id 集合(行级 next-line/line + 文件级 disable 区间) */
@@ -1 +1 @@
1
- {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS;;;;;IAKpB,oEAAoE;;IAEpE,qEAAqE;;CAE7D,CAAC;AAoFX,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAClC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAmDnF;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGjF"}
1
+ {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS;;;;;IAKpB,oEAAoE;;IAEpE,qEAAqE;;IAErE;;;gFAG4E;;CAEpE,CAAC;AAoFX,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAClC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAmDnF;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGjF"}
@@ -22,6 +22,11 @@ export const CHECK_IDS = {
22
22
  commandOwnership: "linkdesk/no-unowned-command-id",
23
23
  /** E6#111d(1.34):配置键必须带本仓 `<pluginId>.` 前缀(🟡 黄),且不得占用宿主保留键(🔴 红) */
24
24
  configOwnership: "linkdesk/no-unowned-config-key",
25
+ /** E6#111f(1.36):外观族 id(配方 / 配色 / 图标主题 / 共享图标)必须带本仓 `<pluginId>.` 前缀
26
+ * (🟡 黄——★回退条件 + 轴上排序纪律,见 `appearance-ownership.ts` 文件头),
27
+ * 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
28
+ * ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
29
+ appearanceOwnership: "linkdesk/no-unowned-appearance-id",
25
30
  };
26
31
  /** 单遍注释 tokenizer:产出全部 // 行注释与 /* 块注释(块注释可跨行)。 */
27
32
  function tokenizeComments(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,iCAAiC;IAC5C,WAAW,EAAE,iCAAiC;IAC9C,YAAY,EAAE,iCAAiC;IAC/C,oEAAoE;IACpE,gBAAgB,EAAE,gCAAgC;IAClD,qEAAqE;IACrE,eAAe,EAAE,gCAAgC;IACjD;;;gFAG4E;IAC5E,mBAAmB,EAAE,mCAAmC;CAChD,CAAC;AAQX,kDAAkD;AAClD,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,EAAE,CAAC;YACP,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,SAAS;YACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,WAAW;YACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC9D,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,CAAC,EAAE,CAAC;gBAC5B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YAC1C,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;gBAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,IAAI,EAAE,CAAC;YAC7D,CAAC,GAAG,GAAG,CAAC;YACR,SAAS;QACX,CAAC;QACD,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,YAAY,CAAC,OAAmB;IACvC,kDAAkD;IAClD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC3F,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,IAAI,GACR,IAAI,KAAK,0BAA0B;QACjC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAI,KAAK,qBAAqB;YAC9B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,KAAK,gBAAgB;gBACzB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChF,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;AACxE,CAAC;AAOD,wEAAwE;AACxE,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,SAAmB;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAU,EAAQ,EAAE;QAC3C,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAExF,qCAAqC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,mBAAmB;IAC5D,oCAAoC;IACpC,MAAM,OAAO,GAAG,CAAC,GAAa,EAAY,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,WAAmB,EAAQ,EAAE;QACzE,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;oBACnD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK;QAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAErE,yBAAyB;IACzB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,UAAU,CAAC,KAAmB,EAAE,IAAY,EAAE,EAAU;IACtE,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
@@ -5,9 +5,9 @@
5
5
  * "lint": "linkdesk-plugin-sdk lint" // 两条腿全跑 + 打印报告(bin)
6
6
  * // 或编程:linkdeskPluginLintConfig() 展开进作者自配 eslint.config.js
7
7
  *
8
- * 全量门禁 = eslint 规则腿 + 四条 check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
9
- * 见 src/eslint/rules.ts 头注(双源注记)。除下面这一条**审计入口**外不暴露内部 check 函数——
10
- * bin lint 已聚合。
8
+ * 全量门禁 = eslint 规则腿 + **七条** check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
9
+ * 见 src/eslint/rules.ts 头注(双源注记)。除下面这组**审计入口**外不暴露内部 check 函数——
10
+ * bin lint 已聚合。(审计入口逐个带「不是第二条判据路径」的注记——腿用的就是同一个函数。)
11
11
  *
12
12
  * 🔴 E6#109h-b①:`runPluginPrefixCheck` 是**唯一一个对内 check 的具名导出**,专供壳仓只读审计工具
13
13
  * `scripts/plugin-css-prefix-audit.mjs`(改名轮 ③–⑦ 生成「旧名 → 新名」映射、⑧ 全量复核)。
@@ -46,4 +46,15 @@ export type { CommandOwnershipReport, CommandIdSite, CommandIdCode, CommandIdFac
46
46
  */
47
47
  export { runConfigOwnershipCheck, judgeConfigKey, judgeRegisterIdentity, manifestKeyLine } from "./checks/config-ownership.js";
48
48
  export type { ConfigOwnershipReport, ConfigKeySite, ConfigKeyCode, ConfigKeyFace } from "./checks/config-ownership.js";
49
+ /**
50
+ * 🔴 E6#111f(1.36):同一纪律再加一个 —— `runAppearanceOwnershipCheck`(外观族 id 归属判据)。
51
+ * 壳仓只读探针 `scripts/audit-nonnaming.mjs` 用它出外观族读数;**同样不是第二条判据路径**
52
+ * (`lint.ts` 的第七条腿用的就是它——同一份实现,改一处两边一起变)。
53
+ * 分级与配置腿同形:判据② 占宿主兜底外观 id = 红(进腿报点);判据① 新 id 不带本仓前缀 = 黄
54
+ * (`appearanceAdvisories`,只打印)——★回退条件 + 排序纪律,见该文件头。
55
+ * ⚠️ 五空间的**空间参数**是判据的一部分(`recipe` / `colorway` / `iconTheme` / `sharedIcon` / `sentinel`):
56
+ * 跨空间比 = 假红(配方 `light` vs 配色 `light`),判据一律**按空间**取账栏,见 `reservedIdsForSpace`。
57
+ */
58
+ export { runAppearanceOwnershipCheck, judgeAppearanceId, reservedIdsForSpace, grantHoldersFor, readThemeJson, themeIdLine, } from "./checks/appearance-ownership.js";
59
+ export type { AppearanceOwnershipReport, AppearanceIdSite, AppearanceIdCode, AppearanceIdSpace, AppearanceIdFace, } from "./checks/appearance-ownership.js";
49
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEvH;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC"}
@@ -5,9 +5,9 @@
5
5
  * "lint": "linkdesk-plugin-sdk lint" // 两条腿全跑 + 打印报告(bin)
6
6
  * // 或编程:linkdeskPluginLintConfig() 展开进作者自配 eslint.config.js
7
7
  *
8
- * 全量门禁 = eslint 规则腿 + 四条 check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
9
- * 见 src/eslint/rules.ts 头注(双源注记)。除下面这一条**审计入口**外不暴露内部 check 函数——
10
- * bin lint 已聚合。
8
+ * 全量门禁 = eslint 规则腿 + **七条** check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
9
+ * 见 src/eslint/rules.ts 头注(双源注记)。除下面这组**审计入口**外不暴露内部 check 函数——
10
+ * bin lint 已聚合。(审计入口逐个带「不是第二条判据路径」的注记——腿用的就是同一个函数。)
11
11
  *
12
12
  * 🔴 E6#109h-b①:`runPluginPrefixCheck` 是**唯一一个对内 check 的具名导出**,专供壳仓只读审计工具
13
13
  * `scripts/plugin-css-prefix-audit.mjs`(改名轮 ③–⑦ 生成「旧名 → 新名」映射、⑧ 全量复核)。
@@ -39,4 +39,14 @@ export { runCommandOwnershipCheck, judgeCommandId, loadHostReserved } from "./ch
39
39
  * `loadHostReserved` 沿用上面命令腿那一个(**同一个 loader**——⛔ 不许在配置腿上再写一份)。
40
40
  */
41
41
  export { runConfigOwnershipCheck, judgeConfigKey, judgeRegisterIdentity, manifestKeyLine } from "./checks/config-ownership.js";
42
+ /**
43
+ * 🔴 E6#111f(1.36):同一纪律再加一个 —— `runAppearanceOwnershipCheck`(外观族 id 归属判据)。
44
+ * 壳仓只读探针 `scripts/audit-nonnaming.mjs` 用它出外观族读数;**同样不是第二条判据路径**
45
+ * (`lint.ts` 的第七条腿用的就是它——同一份实现,改一处两边一起变)。
46
+ * 分级与配置腿同形:判据② 占宿主兜底外观 id = 红(进腿报点);判据① 新 id 不带本仓前缀 = 黄
47
+ * (`appearanceAdvisories`,只打印)——★回退条件 + 排序纪律,见该文件头。
48
+ * ⚠️ 五空间的**空间参数**是判据的一部分(`recipe` / `colorway` / `iconTheme` / `sharedIcon` / `sentinel`):
49
+ * 跨空间比 = 假红(配方 `light` vs 配色 `light`),判据一律**按空间**取账栏,见 `reservedIdsForSpace`。
50
+ */
51
+ export { runAppearanceOwnershipCheck, judgeAppearanceId, reservedIdsForSpace, grantHoldersFor, readThemeJson, themeIdLine, } from "./checks/appearance-ownership.js";
42
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGvG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAS3G;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGvG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAS3G;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/H;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,kCAAkC,CAAC"}
@@ -66,6 +66,28 @@ export interface PluginLintReport {
66
66
  commandPrefixes: number;
67
67
  protocolIds: number;
68
68
  } | null;
69
+ /** 🟡 E6#111f(1.36)外观族 id 归属判据的**黄灯建议**(判据①:新外观 id 不带本仓前缀 + 同插件跨配方重复配色)——**只打印、不拦** */
70
+ appearanceAdvisories: CheckViolation[];
71
+ /** 外观族 id 归属判据的计数(四面名数 + 红站点数 + 黄建议数) */
72
+ appearanceOwnershipCounts: {
73
+ declaredRecipe: number;
74
+ declaredIconTheme: number;
75
+ declaredSharedIcon: number;
76
+ themeFileRecipe: number;
77
+ themeFileColorway: number;
78
+ bad: number;
79
+ advisory: number;
80
+ };
81
+ /** 宿主兜底外观 id 四栏 + 证照账的加载实况(账没读到 ⇒ 判据② 空转,必须能看出来) */
82
+ hostAppearanceLedger: {
83
+ file: string;
84
+ found: boolean;
85
+ appearanceRecipeIds: number;
86
+ appearanceColorwayIds: number;
87
+ appearanceIconThemeIds: number;
88
+ appearanceSentinels: number;
89
+ appearanceIdGrants: number;
90
+ } | null;
69
91
  }
70
92
  export declare function runPluginLint(root: string, options?: PluginLintOptions): Promise<PluginLintReport>;
71
93
  /** 打印报告(人机双通道的即时反馈环);返回进程退出码(真 error 才 1,WARN 永不 fail)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"AA4BA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAU/E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gEAAgE;IAChE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+DAA+D;IAC/D,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,+CAA+C;IAC/C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,6DAA6D;IAC7D,kBAAkB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,wEAAwE;IACxE,sBAAsB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,iEAAiE;IACjE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,0EAA0E;IAC1E,qBAAqB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9G,yEAAyE;IACzE,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvG,gDAAgD;IAChD,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3G;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6J5G;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAkGvE"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `runPluginLint()`——`npm run lint` 门禁编排(E6#54d):eslint 规则腿 + 六条 check 扫描腿双轨。
2
+ * `runPluginLint()`——`npm run lint` 门禁编排(E6#54d):eslint 规则腿 + **七条** check 扫描腿双轨(E6#111f/1.36:外观族 id 归属是第七条)。
3
3
  *
4
4
  * E6#109h-b①:`check-css-namespace` 腿升级为**双判据**——「裸定义类名/关键帧必须以本仓 `<pluginId>-`
5
5
  * 开头」(`checks/plugin-prefix.ts`,拍板 Q1=(A),**不需要任何清单**)⊕「不得裸定义宿主保留名」
@@ -16,7 +16,8 @@
16
16
  * 规则正文见 32 号档 §一(R0–R3);1.25 实测插件侧存量 **0**(18 仓 + 夹具)⇒ 纯预防、零重发成本。
17
17
  *
18
18
  * 对标壳 check 同款双轨(07 §六·载体双轨):eslint(12 项注册规则,全 WARN)管 ts/tsx;
19
- * css-hardcode / font-scale / spacing-grid / css-namespace / command-ownership 五条移植脚本管整工程(eslint 到不了 .css,
19
+ * css-hardcode / font-scale / spacing-grid / css-namespace / command-ownership / config-ownership / appearance-ownership
20
+ * 七条移植脚本管整工程(eslint 到不了 .css,
20
21
  * ts/tsx 的 rgb()/hsl() 也归 css-hardcode 补)。jscpd = 项目级可选(文档引导,不进编排)。
21
22
  *
22
23
  * 门禁哲学(07 §六·三档):违规全 WARN **永不 fail build**——本编排按违规数统计并打印
@@ -36,6 +37,7 @@ import { runTokenScopeCheck } from "./checks/token-scope.js";
36
37
  import { runSelectorFormCheck } from "./checks/selector-form.js";
37
38
  import { runCommandOwnershipCheck } from "./checks/command-ownership.js";
38
39
  import { runConfigOwnershipCheck } from "./checks/config-ownership.js";
40
+ import { runAppearanceOwnershipCheck } from "./checks/appearance-ownership.js";
39
41
  import {} from "./checks/scan.js";
40
42
  /** 示例用的门禁 id(打印知情绕行格式);伪 id 与 check 脚本 CHECK_IDS 同源 */
41
43
  const LEG_HINT_ID = "linkdesk/no-hardcoded-hex";
@@ -131,6 +133,18 @@ export async function runPluginLint(root, options = {}) {
131
133
  * ⚠️ 与另几条腿**刻意不合并**(同命令腿的理由):本腿的红站点将来要独立收紧/独立统计。
132
134
  */
133
135
  const configOwnership = runConfigOwnershipCheck(absRoot);
136
+ /**
137
+ * 🔴 E6#111f(1.36):第七条 check 腿 —— **外观族 id 归属**(`checks/appearance-ownership.ts`)。
138
+ * 两面:声明面(`contributes.themes[].id` / `contributes.iconThemes[].id` / `contributes.icons` 的键)/
139
+ * 主题文件面(`themes/*.json` 的顶层 `id` + `colorways[].id`——🔴 配色 id **只在这一面出现**)。
140
+ * 🔴 **分级与配置腿同形**:判据②(占用宿主兜底外观 id,按空间比、证照者除外)=**红**,进腿报点;
141
+ * 判据①(新外观 id 不带本仓前缀)=**黄**,进 `appearanceAdvisories` 只打印不拦
142
+ * ——出处 = 1.36 任务书 §二.2 的 ★**回退条件**(存量 25 条改名被判给 1.47 轮,不在本格执行 ⇒ 判据必须回退到黄)
143
+ * + 轴上**排序纪律**(1.32/1.34/1.36/1.38 先以「黄灯 + 账」落地,**1.49 才收紧为红**)。
144
+ * ⚠️ 与另几条腿**刻意不合并**(同命令腿/配置腿的理由):本腿的红站点将来要独立收紧/独立统计;
145
+ * 且它的输入是**外观四栏**,与命令腿读的前缀栏、配置腿读的 configKeys 栏各不相干。
146
+ */
147
+ const appearanceOwnership = runAppearanceOwnershipCheck(absRoot);
134
148
  const prefixKeys = new Set(prefix.violations.map((v) => `${v.file}:${v.line}`));
135
149
  const tokenKeys = new Set(tokenScope.violations.map((v) => `${v.file}:${v.line}`));
136
150
  const formKeys = new Set(selectorForm.violations.map((v) => `${v.file}:${v.line}`));
@@ -159,8 +173,19 @@ export async function runPluginLint(root, options = {}) {
159
173
  label: "check-config-ownership",
160
174
  violations: configOwnership.violations,
161
175
  },
176
+ {
177
+ id: "linkdesk/no-unowned-appearance-id(外观族 id 不得占用宿主兜底外观 id;新 id 应带本仓 <pluginId>. 前缀)",
178
+ label: "check-appearance-ownership",
179
+ violations: appearanceOwnership.violations,
180
+ },
162
181
  ];
163
- const totalCheckViolations = css.length + font.length + spacing.length + namespace.length + commandOwnership.violations.length + configOwnership.violations.length;
182
+ const totalCheckViolations = css.length +
183
+ font.length +
184
+ spacing.length +
185
+ namespace.length +
186
+ commandOwnership.violations.length +
187
+ configOwnership.violations.length +
188
+ appearanceOwnership.violations.length;
164
189
  return {
165
190
  files: results.length,
166
191
  eslintRows,
@@ -188,6 +213,17 @@ export async function runPluginLint(root, options = {}) {
188
213
  advisory: configOwnership.yellow.length,
189
214
  },
190
215
  hostConfigLedger: configOwnership.hostLedger,
216
+ appearanceAdvisories: appearanceOwnership.advisories,
217
+ appearanceOwnershipCounts: {
218
+ declaredRecipe: appearanceOwnership.declaredRecipeIds.length,
219
+ declaredIconTheme: appearanceOwnership.declaredIconThemeIds.length,
220
+ declaredSharedIcon: appearanceOwnership.declaredSharedIconIds.length,
221
+ themeFileRecipe: appearanceOwnership.themeFileRecipeIds.length,
222
+ themeFileColorway: appearanceOwnership.themeFileColorwayIds.length,
223
+ bad: appearanceOwnership.red.length,
224
+ advisory: appearanceOwnership.yellow.length,
225
+ },
226
+ hostAppearanceLedger: appearanceOwnership.hostLedger,
191
227
  };
192
228
  }
193
229
  /** 打印报告(人机双通道的即时反馈环);返回进程退出码(真 error 才 1,WARN 永不 fail)。 */
@@ -266,6 +302,28 @@ export function renderPluginLintReport(report) {
266
302
  lines.push(` 账 configKeys ${report.hostConfigLedger.configKeys} 个 / 伪身份 ${report.hostConfigLedger.pseudoPluginIds} 个` +
267
303
  (report.hostConfigLedger.found ? `(${report.hostConfigLedger.file})` : ` ⚠ 账没读到——判据① 本轮**空转**`));
268
304
  }
305
+ // 🟡 E6#111f(1.36)外观族 id 归属:黄灯建议(判据①)+ 两面读数 + 四栏账的加载实况
306
+ if (report.appearanceAdvisories.length > 0) {
307
+ lines.push(`\n🟡 check-appearance-ownership(外观族 id 归属 · 1.49 起收紧为红):${report.appearanceAdvisories.length} 处**建议**(不拦 build)——` +
308
+ `配方 / 配色 / 共享图标 id 是**全局名册的键**:同名 id 被两个插件声明时只有一个能生效(壳 1.36 起"先者保留",后到者被拒)。` +
309
+ `改成"<你的 pluginId>.<名字>"(只换第一段、词干零变化)归属才唯一。`);
310
+ for (const v of report.appearanceAdvisories)
311
+ lines.push(` ${v.file}:${v.line} ${v.message}`);
312
+ }
313
+ const ap = report.appearanceOwnershipCounts;
314
+ lines.push(`\n🔴 check-appearance-ownership(外观族 id 归属):` +
315
+ `声明面 配方 ${ap.declaredRecipe} / 图标主题 ${ap.declaredIconTheme} / 共享图标 ${ap.declaredSharedIcon} 名,` +
316
+ `主题文件面 配方 ${ap.themeFileRecipe} / 配色 ${ap.themeFileColorway} 名——` +
317
+ (ap.bad === 0
318
+ ? `无占用宿主兜底外观 id 的站点。`
319
+ : `${ap.bad} 处占用**宿主兜底外观 id**(宿主保底主题面,壳运行时会直接拒绝注册这条 id)。`) +
320
+ (ap.advisory > 0 ? `另有 ${ap.advisory} 处前缀建议(见上)。` : ``));
321
+ if (report.hostAppearanceLedger) {
322
+ const hl = report.hostAppearanceLedger;
323
+ lines.push(` 账 兜底配方 ${hl.appearanceRecipeIds} / 兜底配色 ${hl.appearanceColorwayIds} / 保底图标主题 ${hl.appearanceIconThemeIds} / ` +
324
+ `哨兵 ${hl.appearanceSentinels} / 证照 ${hl.appearanceIdGrants} 条` +
325
+ (hl.found ? `(${hl.file})` : ` ⚠ 账没读到——判据② 本轮**空转**`));
326
+ }
269
327
  lines.push(`\n门禁 = 警告不是封锁(07 §六·三档):未处理偏离可修可绕——知情绕行写标准注释\n` +
270
328
  ` // eslint-disable-next-line ${LEG_HINT_ID} -- 理由 (行级)\n` +
271
329
  ` /* eslint-disable ${LEG_HINT_ID} -- 内容画布 */ (文件级:内容/画布整文件豁免)\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkdesk/plugin-sdk",
3
- "version": "0.1.31",
3
+ "version": "0.1.32",
4
4
  "description": "@linkdesk/plugin-sdk——LinkDesk 插件作者 SDK(对标 @types/vscode):window.linkdesk.* 类型 + 一键 build(.linkdesk-plugin) + dev 宿主 + plugin.json 验证 + eslint 门禁(E6#54d)。作者 npm i 后零壳源码依赖。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -63,11 +63,25 @@
63
63
  "updateActionable",
64
64
  "updateButtonLabel"
65
65
  ],
66
- "appearanceIds": [
66
+ "appearanceRecipeIds": [
67
67
  "dark",
68
+ "light"
69
+ ],
70
+ "appearanceColorwayIds": [
68
71
  "dark-fallback",
69
72
  "light"
70
73
  ],
74
+ "appearanceIconThemeIds": [
75
+ "default"
76
+ ],
77
+ "appearanceSentinels": [
78
+ "followTheme"
79
+ ],
80
+ "appearanceIdGrants": {
81
+ "light": [
82
+ "theme-defaults"
83
+ ]
84
+ },
71
85
  "protocolIds": [
72
86
  "bracket"
73
87
  ]