@daweifu/capability-menu 0.1.2 → 0.1.3
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.
- package/README.en.md +39 -18
- package/README.md +46 -25
- package/cordis.patch.yml +15 -24
- package/lib/client.d.ts +211 -32
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1510 -158
- package/lib/constants.js +33 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/locations.js +541 -0
- package/lib/locations.js.map +1 -0
- package/lib/patch-file.js +192 -0
- package/lib/patch-file.js.map +1 -0
- package/lib/policy.js +211 -27
- package/lib/policy.js.map +1 -1
- package/lib/registry.js +256 -38
- package/lib/registry.js.map +1 -1
- package/lib/search.js +10 -2
- package/lib/search.js.map +1 -1
- package/lib/server/remote.js +137 -4
- package/lib/server/remote.js.map +1 -1
- package/lib/types/constants.d.ts +33 -0
- package/lib/types/constants.d.ts.map +1 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/locations.d.ts +142 -0
- package/lib/types/locations.d.ts.map +1 -0
- package/lib/types/patch-file.d.ts +46 -0
- package/lib/types/patch-file.d.ts.map +1 -0
- package/lib/types/policy.d.ts +39 -0
- package/lib/types/policy.d.ts.map +1 -1
- package/lib/types/registry.d.ts +48 -16
- package/lib/types/registry.d.ts.map +1 -1
- package/lib/types/search.d.ts.map +1 -1
- package/lib/types/server/remote.d.ts +47 -2
- package/lib/types/server/remote.d.ts.map +1 -1
- package/package.json +24 -23
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comment-preserving, loop-safe editing of a dsh patch file.
|
|
3
|
+
*
|
|
4
|
+
* dsh owns and composes these files (`~/.dsh/cordis.patch.yml` and per-profile
|
|
5
|
+
* `cordis.patch.yml`), and in a `patchReload: live` profile it *watches* them:
|
|
6
|
+
* any write triggers a transactional re-apply of the patch, which re-applies
|
|
7
|
+
* this very plugin. Two consequences drive everything below:
|
|
8
|
+
*
|
|
9
|
+
* - **A no-op must never write.** Writing on every startup/apply would make the
|
|
10
|
+
* plugin reload itself forever. So each mutation reports whether it actually
|
|
11
|
+
* changed the document, and nothing is written when it did not.
|
|
12
|
+
* - **A write must never damage the file.** The file is a hand-maintained asset
|
|
13
|
+
* (comments, `!!js` expressions, credentials). Edits go through `yaml`'s
|
|
14
|
+
* document API, which keeps comments, and every write is backed up, verified
|
|
15
|
+
* by re-parsing, and rolled back on failure.
|
|
16
|
+
*
|
|
17
|
+
* Note the round-trip is *not* byte-identical — `yaml` normalizes trailing
|
|
18
|
+
* comment spacing and quoting style. That is why "did this change anything?" is
|
|
19
|
+
* decided by the mutation, never by comparing before/after text.
|
|
20
|
+
*/
|
|
21
|
+
import { copyFile, readFile, rename, unlink, writeFile } from 'node:fs/promises';
|
|
22
|
+
import { randomUUID } from 'node:crypto';
|
|
23
|
+
import { homedir } from 'node:os';
|
|
24
|
+
import { join } from 'node:path';
|
|
25
|
+
import YAML from 'yaml';
|
|
26
|
+
/** Default patch file: the home-level layer shared by every profile. */
|
|
27
|
+
export function defaultPatchFile() {
|
|
28
|
+
const home = process.env['DSH_HOME'];
|
|
29
|
+
if (home !== undefined && home.length > 0)
|
|
30
|
+
return join(home, 'cordis.patch.yml');
|
|
31
|
+
return join(homedir(), '.dsh', 'cordis.patch.yml');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Every entry row in the document: both bare top-level rows and rows nested in
|
|
35
|
+
* an `- insert:` block (the form dsh's own patches and this bundle use).
|
|
36
|
+
*/
|
|
37
|
+
function* entryNodes(doc) {
|
|
38
|
+
const root = doc.contents;
|
|
39
|
+
if (!YAML.isSeq(root))
|
|
40
|
+
return;
|
|
41
|
+
for (const item of root.items) {
|
|
42
|
+
if (!YAML.isMap(item))
|
|
43
|
+
continue;
|
|
44
|
+
const insert = item.get('insert');
|
|
45
|
+
if (insert !== undefined && insert !== null) {
|
|
46
|
+
if (!YAML.isSeq(insert))
|
|
47
|
+
continue;
|
|
48
|
+
for (const row of insert.items) {
|
|
49
|
+
if (YAML.isMap(row))
|
|
50
|
+
yield { node: row, parent: insert };
|
|
51
|
+
}
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (item.get('id') !== undefined)
|
|
55
|
+
yield { node: item, parent: root };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Find the entry row with `id`, if the file declares one. */
|
|
59
|
+
export function findEntry(doc, id) {
|
|
60
|
+
for (const { node } of entryNodes(doc)) {
|
|
61
|
+
if (node.get('id') === id)
|
|
62
|
+
return node;
|
|
63
|
+
}
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
/** Read every declared entry as plain data (never mutates the file). */
|
|
67
|
+
export async function readEntries(file) {
|
|
68
|
+
const source = await readFile(file, 'utf8');
|
|
69
|
+
const doc = YAML.parseDocument(source);
|
|
70
|
+
const entries = [];
|
|
71
|
+
for (const { node } of entryNodes(doc)) {
|
|
72
|
+
const value = node.toJSON();
|
|
73
|
+
if (typeof value.id !== 'string' || typeof value.name !== 'string')
|
|
74
|
+
continue;
|
|
75
|
+
entries.push(value);
|
|
76
|
+
}
|
|
77
|
+
return entries;
|
|
78
|
+
}
|
|
79
|
+
/** The last `- insert:` block in the document, if any. */
|
|
80
|
+
function lastInsertSeq(doc) {
|
|
81
|
+
const root = doc.contents;
|
|
82
|
+
if (!YAML.isSeq(root))
|
|
83
|
+
return undefined;
|
|
84
|
+
let found;
|
|
85
|
+
for (const item of root.items) {
|
|
86
|
+
if (!YAML.isMap(item))
|
|
87
|
+
continue;
|
|
88
|
+
const insert = item.get('insert');
|
|
89
|
+
if (YAML.isSeq(insert))
|
|
90
|
+
found = insert;
|
|
91
|
+
}
|
|
92
|
+
return found;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Append a row to the document. Reuses the last `- insert:` block so new rows
|
|
96
|
+
* land next to the existing ones; creates one when the file has none.
|
|
97
|
+
*/
|
|
98
|
+
export function addEntry(doc, entry) {
|
|
99
|
+
const root = doc.contents;
|
|
100
|
+
if (!YAML.isSeq(root))
|
|
101
|
+
throw new Error('patch file root is not a sequence');
|
|
102
|
+
const target = lastInsertSeq(doc) ?? (() => {
|
|
103
|
+
const block = doc.createNode({ insert: [] });
|
|
104
|
+
// `root` is narrowed to a parsed sequence; the freshly built map is not
|
|
105
|
+
// narrowed with it even though it is a real document node.
|
|
106
|
+
root.add(block);
|
|
107
|
+
return block.get('insert');
|
|
108
|
+
})();
|
|
109
|
+
target.add(doc.createNode({ ...entry }));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Append a bare, id-targeted override row (`- id: … / name: … / config: …`) at
|
|
113
|
+
* the top level — a patch that *finds* a row instead of adding one.
|
|
114
|
+
*
|
|
115
|
+
* Deliberately not {@link addEntry}: the row being configured is usually
|
|
116
|
+
* contributed by another layer. This plugin's own bundle patch inserts
|
|
117
|
+
* `capability-menu-policy`, and a profile's home layer is applied *after* that
|
|
118
|
+
* layer, so inserting a second row with the same id here leaves the composed
|
|
119
|
+
* tree with two rows sharing an id — which dsh refuses outright with
|
|
120
|
+
* `duplicate loader entry id`, taking the whole profile down.
|
|
121
|
+
*/
|
|
122
|
+
export function addEntryOverride(doc, entry) {
|
|
123
|
+
const root = doc.contents;
|
|
124
|
+
if (!YAML.isSeq(root))
|
|
125
|
+
throw new Error('patch file root is not a sequence');
|
|
126
|
+
// `root` is narrowed to a parsed sequence; the freshly built map is not
|
|
127
|
+
// narrowed with it even though it is a real document node.
|
|
128
|
+
root.add(doc.createNode({ ...entry }));
|
|
129
|
+
}
|
|
130
|
+
/** Remove the row with `id`. Returns false when the file has no such row. */
|
|
131
|
+
export function removeEntry(doc, id) {
|
|
132
|
+
for (const { node, parent } of entryNodes(doc)) {
|
|
133
|
+
if (node.get('id') !== id)
|
|
134
|
+
continue;
|
|
135
|
+
parent.delete(parent.items.indexOf(node));
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
/** Set or clear `disabled:` on the row with `id`. */
|
|
141
|
+
export function setEntryDisabled(doc, id, disabled) {
|
|
142
|
+
const node = findEntry(doc, id);
|
|
143
|
+
if (node === undefined)
|
|
144
|
+
return false;
|
|
145
|
+
if (disabled)
|
|
146
|
+
node.set('disabled', true);
|
|
147
|
+
else
|
|
148
|
+
node.delete('disabled');
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
/** Replace the row's `config:` (patch semantics replace the whole value). */
|
|
152
|
+
export function setEntryConfig(doc, id, config) {
|
|
153
|
+
const node = findEntry(doc, id);
|
|
154
|
+
if (node === undefined)
|
|
155
|
+
return false;
|
|
156
|
+
node.set('config', doc.createNode(config));
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Load the patch file, apply `mutate`, and persist only when it reports a
|
|
161
|
+
* change. Returns whether a write happened (i.e. whether dsh will hot-reload).
|
|
162
|
+
*
|
|
163
|
+
* `mutate` must be pure apart from its edits to `doc`: it may be the only
|
|
164
|
+
* chance to change the file, and a thrown error leaves the file untouched.
|
|
165
|
+
*/
|
|
166
|
+
export async function mutatePatch(file, mutate) {
|
|
167
|
+
const original = await readFile(file, 'utf8');
|
|
168
|
+
const doc = YAML.parseDocument(original);
|
|
169
|
+
if (!mutate(doc))
|
|
170
|
+
return false;
|
|
171
|
+
const next = doc.toString();
|
|
172
|
+
const backup = `${file}.bak`;
|
|
173
|
+
const tmp = `${file}.tmp-${randomUUID()}`;
|
|
174
|
+
await copyFile(file, backup);
|
|
175
|
+
try {
|
|
176
|
+
await writeFile(tmp, next, 'utf8');
|
|
177
|
+
// Verify before it becomes the live file: a document that no longer parses
|
|
178
|
+
// would take the whole profile down on the next reload.
|
|
179
|
+
const check = YAML.parseDocument(await readFile(tmp, 'utf8'));
|
|
180
|
+
if (check.errors.length > 0) {
|
|
181
|
+
throw new Error(`rewritten patch file does not parse: ${check.errors[0]?.message ?? 'unknown error'}`);
|
|
182
|
+
}
|
|
183
|
+
await rename(tmp, file);
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
await unlink(tmp).catch(() => { });
|
|
188
|
+
await copyFile(backup, file).catch(() => { });
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=patch-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-file.js","sourceRoot":"","sources":["../src/patch-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,IAAI,MAAM,MAAM,CAAA;AAUvB,wEAAwE;AACxE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAChF,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAyB;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAM;IAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;oBAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAC1D,CAAC;YACD,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACtE,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,GAAyB,EAAE,EAAU;IAC7D,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAA;IACxC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAyB,CAAA;QAClD,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAC5E,OAAO,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,0DAA0D;AAC1D,SAAS,aAAa,CAAC,GAAyB;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACvC,IAAI,KAA+B,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,KAAK,GAAG,MAAM,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAyB,EAAE,KAAiB;IACnE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAiB,EAAE;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAiB,CAAA;QAC5D,wEAAwE;QACxE,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAmC,CAAC,CAAA;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAiB,CAAA;IAC5C,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAyB,EAAE,KAAiB;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAC3E,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,CAA+B,CAAC,CAAA;AACtE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,GAAyB,EAAE,EAAU;IAC/D,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE,SAAQ;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,gBAAgB,CAAC,GAAyB,EAAE,EAAU,EAAE,QAAiB;IACvF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,QAAQ;QAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;;QACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,GAAyB,EAAE,EAAU,EAAE,MAA+B;IACnG,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC/B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,MAA8C;IAE9C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAE9B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,GAAG,IAAI,MAAM,CAAA;IAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,UAAU,EAAE,EAAE,CAAA;IACzC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,2EAA2E;QAC3E,wDAAwD;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7D,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAA;QACxG,CAAC;QACD,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACjC,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
package/lib/policy.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
import z from '@deepseek-ai/schemastery';
|
|
8
8
|
import { escapeText } from '@deepseek-ai/dsh-skill';
|
|
9
9
|
import { serverNameOf } from "./registry.js";
|
|
10
|
+
import { addEntryOverride, findEntry, mutatePatch, setEntryConfig } from "./patch-file.js";
|
|
11
|
+
import { LocationRegistry, defaultLocationConfig, } from "./locations.js";
|
|
10
12
|
/** Validate and default the policy configuration. */
|
|
11
13
|
export const Config = z.object({
|
|
12
14
|
tools: z.object({
|
|
@@ -29,6 +31,14 @@ export const Config = z.object({
|
|
|
29
31
|
}),
|
|
30
32
|
metaTools: z.array(z.string()).default(['meta_search', 'meta_invoke']),
|
|
31
33
|
// schemastery object properties are optional-by-default; no `.optional()` needed.
|
|
34
|
+
patchFile: z.string(),
|
|
35
|
+
skillsDir: z.string(),
|
|
36
|
+
/**
|
|
37
|
+
* How long a tier change waits before it is written to the patch file. Long
|
|
38
|
+
* enough that a burst of clicks produces one write, because every write makes
|
|
39
|
+
* dsh hot-reload this plugin and re-run the catalog enumeration.
|
|
40
|
+
*/
|
|
41
|
+
persistDebounceMs: z.number().default(1500),
|
|
32
42
|
});
|
|
33
43
|
export const DEFAULT_META_TOOLS = ['meta_search', 'meta_invoke'];
|
|
34
44
|
/**
|
|
@@ -197,37 +207,149 @@ export async function apply(ctx, config = {}) {
|
|
|
197
207
|
if (legacyTools || legacySkills) {
|
|
198
208
|
ctx.logger.warn('capability-policy: legacy rule keys `exposed`/`progressive`/`blocked` were auto-mapped to `resident`/`on-demand`/`disabled`; edit the profile patch to persist the new keys');
|
|
199
209
|
}
|
|
200
|
-
// Mutable runtime state so the management surface (
|
|
210
|
+
// Mutable runtime state so the management surface (能力菜单) can live-update
|
|
201
211
|
// the policy without a reload.
|
|
202
212
|
let current = normalized;
|
|
203
213
|
let metaTools = [...(normalized.metaTools ?? DEFAULT_META_TOOLS)];
|
|
204
214
|
let metaToolSet = new Set(metaTools);
|
|
205
215
|
let toolCompiled;
|
|
206
216
|
let skillCompiled;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
217
|
+
// Location registry: the places capabilities come from. Editing the patch
|
|
218
|
+
// file makes dsh hot-reload and mount/unmount the server itself, so this
|
|
219
|
+
// plugin never imports or drives `dsh-mcp-client` directly.
|
|
220
|
+
const defaults = defaultLocationConfig();
|
|
221
|
+
const patchFile = (config.patchFile ?? defaults.patchFile).trim();
|
|
222
|
+
const locations = new LocationRegistry(ctx, {
|
|
223
|
+
patchFile,
|
|
224
|
+
skillsDir: (config.skillsDir ?? defaults.skillsDir).trim(),
|
|
225
|
+
});
|
|
226
|
+
/**
|
|
227
|
+
* Tier rules are persisted into the profile patch, in the entry the bundle
|
|
228
|
+
* already declares for this plugin. Until now that config field was resolved
|
|
229
|
+
* and never read: the surface edited memory only, so every tier change was
|
|
230
|
+
* lost on restart.
|
|
231
|
+
*
|
|
232
|
+
* Persisting is deferred rather than done per click. A click recompiles the
|
|
233
|
+
* rule sets in memory, which is what makes it feel instant; a patch write, by
|
|
234
|
+
* contrast, makes dsh hot-reload this plugin — and its mount awaits a full
|
|
235
|
+
* catalog enumeration. Debouncing puts that cost after the operator stops
|
|
236
|
+
* clicking instead of on every click.
|
|
237
|
+
*/
|
|
238
|
+
const POLICY_ENTRY_ID = 'capability-menu-policy';
|
|
239
|
+
const POLICY_ENTRY_NAME = '@daweifu/capability-menu/policy';
|
|
240
|
+
const persistDebounceMs = config.persistDebounceMs ?? 1500;
|
|
241
|
+
let persistTimer;
|
|
242
|
+
/** Order-insensitive signature of the two rule sets, for the no-op check. */
|
|
243
|
+
const tierSignature = (rules) => {
|
|
244
|
+
if (rules === null || typeof rules !== 'object')
|
|
245
|
+
return '';
|
|
246
|
+
const record = rules;
|
|
247
|
+
return ['resident', 'on-demand', 'disabled']
|
|
248
|
+
.map(tier => Array.isArray(record[tier]) ? [...record[tier]].sort().join('\u0000') : '')
|
|
249
|
+
.join('\u0001');
|
|
250
|
+
};
|
|
251
|
+
/** Write the current rule sets into the patch, when they differ from the file. */
|
|
252
|
+
const persistTiers = async () => {
|
|
253
|
+
if (patchFile.length === 0)
|
|
254
|
+
return;
|
|
255
|
+
try {
|
|
256
|
+
const written = await mutatePatch(patchFile, doc => {
|
|
257
|
+
const existing = findEntry(doc, POLICY_ENTRY_ID);
|
|
258
|
+
// Merge instead of replace: the row can carry keys this surface never
|
|
259
|
+
// edits (`metaTools`, a legacy rule spelling), and patch semantics
|
|
260
|
+
// replace the whole `config:` value.
|
|
261
|
+
const raw = existing?.get('config');
|
|
262
|
+
const prior = raw?.toJSON?.();
|
|
263
|
+
const next = typeof prior === 'object' && prior !== null
|
|
264
|
+
? { ...prior }
|
|
265
|
+
: {};
|
|
266
|
+
next['tools'] = current.tools ?? {};
|
|
267
|
+
next['skills'] = current.skills ?? {};
|
|
268
|
+
if (existing === undefined) {
|
|
269
|
+
// An override row, never an insert: this file is normally not where the
|
|
270
|
+
// policy row comes from — the package's own bundle patch inserts it,
|
|
271
|
+
// and a home/profile layer is applied after that one. Inserting a
|
|
272
|
+
// second row with the same id would compose into a tree the loader
|
|
273
|
+
// rejects (`duplicate loader entry id: capability-menu-policy`), so the
|
|
274
|
+
// config has to be landed on the row that already exists.
|
|
275
|
+
addEntryOverride(doc, { id: POLICY_ENTRY_ID, name: POLICY_ENTRY_NAME, config: next });
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
// Rewriting an unchanged config would still make dsh reload the plugin.
|
|
279
|
+
if (tierSignature(prior) === tierSignature(next))
|
|
280
|
+
return false;
|
|
281
|
+
return setEntryConfig(doc, POLICY_ENTRY_ID, next);
|
|
282
|
+
});
|
|
283
|
+
if (written)
|
|
284
|
+
ctx.logger.info(`capability-policy: persisted tier rules to ${patchFile}`);
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
ctx.logger.warn(`capability-policy: cannot persist tier rules to ${patchFile}: ${String(error)}`);
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
const schedulePersistTiers = () => {
|
|
291
|
+
if (patchFile.length === 0)
|
|
292
|
+
return;
|
|
293
|
+
if (persistTimer !== undefined)
|
|
294
|
+
clearTimeout(persistTimer);
|
|
295
|
+
persistTimer = setTimeout(() => {
|
|
296
|
+
persistTimer = undefined;
|
|
297
|
+
void persistTiers();
|
|
298
|
+
}, persistDebounceMs);
|
|
299
|
+
};
|
|
300
|
+
// A pending write must not be dropped when the plugin is torn down (a hot
|
|
301
|
+
// reload tears it down): flush it, so the file matches the state that was
|
|
302
|
+
// live. The flush finds the config unchanged and writes nothing, so it cannot
|
|
303
|
+
// start a reload loop.
|
|
304
|
+
ctx.effect(() => () => {
|
|
305
|
+
if (persistTimer === undefined)
|
|
306
|
+
return;
|
|
307
|
+
clearTimeout(persistTimer);
|
|
308
|
+
persistTimer = undefined;
|
|
309
|
+
void persistTiers();
|
|
310
|
+
}, 'capability-menu-policy: flush tier persistence');
|
|
311
|
+
/**
|
|
312
|
+
* Compile a candidate config into rule sets without touching live state.
|
|
313
|
+
* Meta tools are the control-plane escape hatch: blocking one is a
|
|
314
|
+
* misconfiguration that must fail loud, never silently disable the surface.
|
|
315
|
+
* Throws before anything is committed when validation fails.
|
|
316
|
+
*/
|
|
317
|
+
const compileConfig = (candidate, meta) => {
|
|
318
|
+
const toolRules = compileSet(candidate.tools);
|
|
319
|
+
const skillRules = compileSet(candidate.skills);
|
|
210
320
|
// Normalize tool/skill rule kinds for matching.
|
|
211
|
-
|
|
321
|
+
const tools = {
|
|
212
322
|
resident: toolRules.resident.map(rule => ({ ...rule, kind: 'tool' })),
|
|
213
323
|
onDemand: toolRules.onDemand.map(rule => ({ ...rule, kind: 'tool' })),
|
|
214
324
|
disabled: toolRules.disabled.map(rule => ({ ...rule, kind: 'tool' })),
|
|
215
325
|
};
|
|
216
|
-
|
|
326
|
+
const skills = {
|
|
217
327
|
resident: skillRules.resident.map(rule => ({ ...rule, kind: 'skill' })),
|
|
218
328
|
onDemand: skillRules.onDemand.map(rule => ({ ...rule, kind: 'skill' })),
|
|
219
329
|
disabled: skillRules.disabled.map(rule => ({ ...rule, kind: 'skill' })),
|
|
220
330
|
};
|
|
221
|
-
|
|
222
|
-
// misconfiguration that must fail loud, never silently disable the surface.
|
|
223
|
-
for (const name of metaTools) {
|
|
331
|
+
for (const name of meta) {
|
|
224
332
|
const target = { id: name, name, server: serverNameOf(name), kind: 'tool', ruleKind: 'tool' };
|
|
225
|
-
if (anyRuleMatches(
|
|
333
|
+
if (anyRuleMatches(tools.disabled, target)) {
|
|
226
334
|
throw new Error(`meta tool "${name}" cannot be disabled; remove it from tools.disabled`);
|
|
227
335
|
}
|
|
228
336
|
}
|
|
337
|
+
return { tools, skills };
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* Compile, then commit. Compiling first keeps a rejected update from landing
|
|
341
|
+
* half-applied: `current`, `metaTools` and the rule sets move together or not
|
|
342
|
+
* at all.
|
|
343
|
+
*/
|
|
344
|
+
const applyConfig = (candidate, meta) => {
|
|
345
|
+
const compiled = compileConfig(candidate, meta);
|
|
346
|
+
current = candidate;
|
|
347
|
+
metaTools = [...meta];
|
|
348
|
+
metaToolSet = new Set(metaTools);
|
|
349
|
+
toolCompiled = compiled.tools;
|
|
350
|
+
skillCompiled = compiled.skills;
|
|
229
351
|
};
|
|
230
|
-
|
|
352
|
+
applyConfig(normalized, [...(normalized.metaTools ?? DEFAULT_META_TOOLS)]);
|
|
231
353
|
const service = {
|
|
232
354
|
classifyTool(name) {
|
|
233
355
|
const server = serverNameOf(name);
|
|
@@ -268,18 +390,31 @@ export async function apply(ctx, config = {}) {
|
|
|
268
390
|
return { ...current };
|
|
269
391
|
},
|
|
270
392
|
async updateConfig(partial) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
|
|
281
|
-
//
|
|
282
|
-
|
|
393
|
+
// Only the materialized On-demand catalog on disk depends on the
|
|
394
|
+
// classification: the model-facing projection is derived from the rules
|
|
395
|
+
// on every assemble, so it needs no rebuild. Cycling a capability
|
|
396
|
+
// between Resident and Disabled changes nothing on disk, so it must not
|
|
397
|
+
// pay for a full re-enumeration.
|
|
398
|
+
const updateStartedAt = Date.now();
|
|
399
|
+
const before = onDemandSignature();
|
|
400
|
+
// Validate first, commit second (see `applyConfig`): a rejected update
|
|
401
|
+
// leaves the live policy exactly as it was.
|
|
402
|
+
applyConfig({ ...current, ...partial }, partial.metaTools !== undefined ? [...(partial.metaTools ?? DEFAULT_META_TOOLS)] : metaTools);
|
|
403
|
+
// The On-demand set moved, so the grep-able YAML is stale (and a
|
|
404
|
+
// capability reclassified to Disabled must disappear from it). Re-emit it
|
|
405
|
+
// from the index we already have and await that: it is a filter plus a
|
|
406
|
+
// small write, so awaiting keeps the file consistent with what the UI is
|
|
407
|
+
// about to read. `requestRefresh` would instead re-enumerate every tool
|
|
408
|
+
// and every agent preset scope — no inventory changed, and the cost of
|
|
409
|
+
// that was exactly what made a tier click feel like a hang.
|
|
410
|
+
const moved = onDemandSignature() !== before;
|
|
411
|
+
if (moved)
|
|
412
|
+
await ctx.capability.rewriteCatalog();
|
|
413
|
+
// One line per tier write: the whole handler's cost, and whether the
|
|
414
|
+
// catalog was re-emitted. A slow click with a fast line here means the
|
|
415
|
+
// time went somewhere else (a queued rebuild, the carrier, the browser).
|
|
416
|
+
ctx.logger.info(`capability-policy: tier write took ${Date.now() - updateStartedAt}ms (catalog rewritten: ${moved})`);
|
|
417
|
+
schedulePersistTiers();
|
|
283
418
|
},
|
|
284
419
|
classifyAll() {
|
|
285
420
|
// The registry default maxResults (20) would truncate the management
|
|
@@ -287,18 +422,62 @@ export async function apply(ctx, config = {}) {
|
|
|
287
422
|
return ctx.capability.search({ maxResults: Number.MAX_SAFE_INTEGER }).map(summary => {
|
|
288
423
|
const cls = service.classifyCapability(summary.id, summary.kind);
|
|
289
424
|
const mandatory = summary.kind === 'tool' && metaToolSet.has(summary.id);
|
|
425
|
+
// Summaries carry no directory, so a skill's own is resolved from its
|
|
426
|
+
// record — the same lookup 纳入管理 itself uses to decide what to link.
|
|
427
|
+
const skillPath = summary.kind === 'skill'
|
|
428
|
+
? ctx.capability.get(summary.id, 'skill')?.origin.path
|
|
429
|
+
: undefined;
|
|
290
430
|
return {
|
|
291
431
|
id: summary.id,
|
|
292
432
|
kind: summary.kind,
|
|
293
433
|
name: summary.name,
|
|
294
434
|
...summary.server !== undefined ? { server: summary.server } : {},
|
|
295
435
|
...summary.source !== undefined ? { source: summary.source } : {},
|
|
436
|
+
...skillPath !== undefined ? { path: skillPath } : {},
|
|
296
437
|
class: cls,
|
|
297
438
|
classLabel: CLASS_LABELS[cls],
|
|
298
439
|
mandatory,
|
|
299
440
|
};
|
|
300
441
|
});
|
|
301
442
|
},
|
|
443
|
+
// — location registry —
|
|
444
|
+
listLocations() {
|
|
445
|
+
return locations.listMcp();
|
|
446
|
+
},
|
|
447
|
+
addLocation(input) {
|
|
448
|
+
return locations.addMcp(input);
|
|
449
|
+
},
|
|
450
|
+
removeLocation(id) {
|
|
451
|
+
return locations.removeMcp(id);
|
|
452
|
+
},
|
|
453
|
+
updateLocation(id, input) {
|
|
454
|
+
return locations.updateMcp(id, input);
|
|
455
|
+
},
|
|
456
|
+
listSkillLocations() {
|
|
457
|
+
return locations.listSkills();
|
|
458
|
+
},
|
|
459
|
+
addSkillLocation(dir, projectPath) {
|
|
460
|
+
return locations.addSkill(dir, projectPath);
|
|
461
|
+
},
|
|
462
|
+
removeSkillLocation(name, entryDir) {
|
|
463
|
+
return locations.removeSkill(name, entryDir);
|
|
464
|
+
},
|
|
465
|
+
updateSkillLocation(name, dir, entryDir) {
|
|
466
|
+
return locations.updateSkill(name, dir, entryDir);
|
|
467
|
+
},
|
|
468
|
+
};
|
|
469
|
+
/**
|
|
470
|
+
* Fingerprint of the capability ids currently classified On-demand. This set
|
|
471
|
+
* is the only thing a classification change can invalidate on disk, so it
|
|
472
|
+
* decides whether `updateConfig` needs to request a rebuild at all.
|
|
473
|
+
*/
|
|
474
|
+
const onDemandSignature = () => {
|
|
475
|
+
const ids = ctx.capability
|
|
476
|
+
.search({ maxResults: Number.MAX_SAFE_INTEGER })
|
|
477
|
+
.filter(summary => service.classifyCapability(summary.id, summary.kind) === 'on-demand')
|
|
478
|
+
.map(summary => `${summary.kind}:${summary.id}`);
|
|
479
|
+
ids.sort();
|
|
480
|
+
return ids.join('\u0000');
|
|
302
481
|
};
|
|
303
482
|
// Disabled capabilities are a hard deny at the execution surface, not just a
|
|
304
483
|
// projection concern: a hallucinated direct call to a disabled tool (or to the
|
|
@@ -331,11 +510,16 @@ export async function apply(ctx, config = {}) {
|
|
|
331
510
|
let changed = false;
|
|
332
511
|
const messages = decision.messages.map(message => {
|
|
333
512
|
const source = message.source;
|
|
334
|
-
if (source
|
|
513
|
+
if (source?.kind !== 'skill-catalog')
|
|
335
514
|
return message;
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
:
|
|
515
|
+
if (!Array.isArray(source.entries)) {
|
|
516
|
+
// Cannot tell which skills the message lists, so it stays untouched —
|
|
517
|
+
// but say so: silently skipping the filter would leak Disabled skills
|
|
518
|
+
// into the model surface with no trace.
|
|
519
|
+
ctx.logger.warn('capability-policy: skill-catalog message has no entries array; leaving it unfiltered');
|
|
520
|
+
return message;
|
|
521
|
+
}
|
|
522
|
+
const entries = source.entries.filter((entry) => typeof entry === 'object' && entry !== null && typeof entry.name === 'string');
|
|
339
523
|
const kept = entries
|
|
340
524
|
.filter(entry => service.isResidentSkill(entry.name))
|
|
341
525
|
.map(entry => ({ name: entry.name, description: entry.description ?? '' }));
|
package/lib/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|