@daweifu/capability-menu 0.1.2 → 0.1.4
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 +50 -19
- package/README.md +55 -24
- package/cordis.patch.yml +15 -24
- package/lib/client.d.ts +239 -32
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1955 -198
- package/lib/constants.js +33 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/invoke.js +72 -2
- package/lib/invoke.js.map +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 +235 -27
- package/lib/policy.js.map +1 -1
- package/lib/registry.js +279 -42
- 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 +164 -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/invoke.d.ts.map +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 +45 -0
- package/lib/types/policy.d.ts.map +1 -1
- package/lib/types/registry.d.ts +71 -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 +65 -2
- package/lib/types/server/remote.d.ts.map +1 -1
- package/package.json +24 -23
package/lib/registry.js
CHANGED
|
@@ -6,28 +6,22 @@
|
|
|
6
6
|
import z from '@deepseek-ai/schemastery';
|
|
7
7
|
import { isModelInvocable } from '@deepseek-ai/dsh-skill';
|
|
8
8
|
import yaml from 'js-yaml';
|
|
9
|
-
import { readFile, readdir, stat, writeFile } from 'node:fs/promises';
|
|
9
|
+
import { readFile, readdir, realpath, stat, writeFile } from 'node:fs/promises';
|
|
10
10
|
import { homedir } from 'node:os';
|
|
11
11
|
import { dirname, join, resolve, sep } from 'node:path';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* keep their bare name (`bash`/`read`/…), so tool records are keyed by that
|
|
16
|
-
* name. Skills have no name-level namespace: a skill's id IS its bare name and
|
|
17
|
-
* `kind` disambiguates it from a same-named tool.
|
|
18
|
-
*/
|
|
19
|
-
export const MCP_ID_PREFIX = 'mcp__';
|
|
20
|
-
/**
|
|
21
|
-
* Reserved pseudo-server that groups harness-native (non-MCP) tools in the
|
|
22
|
-
* management surface. Native tools (bash/read/write/…) are cataloged like MCP
|
|
23
|
-
* tools — same `server` dimension — so the 能力管理 can group them, classify
|
|
24
|
-
* them Resident/On-demand/Disabled, and `meta_invoke` can dispatch them.
|
|
25
|
-
*/
|
|
26
|
-
export const BUILT_IN_SERVER = 'built-in';
|
|
12
|
+
import { BUILT_IN_SERVER, MCP_ID_PREFIX } from "./constants.js";
|
|
13
|
+
// Re-exported for the package's public surface (`/registry` subpath).
|
|
14
|
+
export { BUILT_IN_SERVER, MCP_ID_PREFIX };
|
|
27
15
|
/**
|
|
28
16
|
* Tool names that never enter the capability catalog: this plugin's own
|
|
29
17
|
* control plane (`meta_search`/`meta_invoke`, always Resident) and the
|
|
30
18
|
* reserved Code Mode presentation transport (`run_code`).
|
|
19
|
+
*
|
|
20
|
+
* Tool ids (the key everything else uses) are the REAL registered tool name:
|
|
21
|
+
* MCP tools are registered as `mcp__<server>__<raw>` by the harness MCP client
|
|
22
|
+
* and natives keep their bare name (`bash`/`read`/…). Skills have no
|
|
23
|
+
* name-level namespace: a skill's id IS its bare name and `kind` disambiguates
|
|
24
|
+
* it from a same-named tool.
|
|
31
25
|
*/
|
|
32
26
|
export const CATALOG_EXCLUDED_TOOLS = new Set(['meta_search', 'meta_invoke', 'run_code']);
|
|
33
27
|
/** Validate and default the registry configuration. */
|
|
@@ -39,6 +33,7 @@ export const Config = z.object({
|
|
|
39
33
|
// schemastery object properties are optional-by-default: a missing key or
|
|
40
34
|
// undefined value is accepted (no `meta.required`), so no `.optional()` needed.
|
|
41
35
|
catalogFile: z.string(),
|
|
36
|
+
refreshDebounceMs: z.number().default(200),
|
|
42
37
|
});
|
|
43
38
|
function assertPositiveInteger(name, value, min) {
|
|
44
39
|
if (!Number.isInteger(value) || value < min) {
|
|
@@ -50,6 +45,26 @@ function assertWeight(name, value) {
|
|
|
50
45
|
throw new Error(`${name} must be a number in [0, 1]`);
|
|
51
46
|
}
|
|
52
47
|
}
|
|
48
|
+
/** True when `target` is `root` itself or sits below it. */
|
|
49
|
+
function isUnder(root, target) {
|
|
50
|
+
return target === root || target.startsWith(`${root}${sep}`);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Containment check for skill-directory access: `target` must stay inside
|
|
54
|
+
* `root`, both lexically (`resolve` already collapsed `..`) and physically —
|
|
55
|
+
* a symlink inside the skill directory must not lead out of it. Paths that do
|
|
56
|
+
* not exist yet cannot be resolved physically; those stay governed by the
|
|
57
|
+
* lexical check and the caller's own stat/read failure handling.
|
|
58
|
+
*/
|
|
59
|
+
async function isInside(root, target) {
|
|
60
|
+
if (!isUnder(root, target))
|
|
61
|
+
return false;
|
|
62
|
+
const realRoot = await realpath(root).catch(() => undefined);
|
|
63
|
+
const realTarget = await realpath(target).catch(() => undefined);
|
|
64
|
+
if (realRoot === undefined || realTarget === undefined)
|
|
65
|
+
return true;
|
|
66
|
+
return isUnder(realRoot, realTarget);
|
|
67
|
+
}
|
|
53
68
|
/** Trim a description to a model-friendly summary. */
|
|
54
69
|
function toSummary(description, maxChars) {
|
|
55
70
|
const collapsed = description.replace(/\s+/g, ' ').trim();
|
|
@@ -92,8 +107,10 @@ export function apply(ctx, config = {}) {
|
|
|
92
107
|
const maxResults = config.maxResults ?? 20;
|
|
93
108
|
const weighting = config.weighting ?? 0.1;
|
|
94
109
|
const catalogFile = (config.catalogFile ?? join(homedir(), '.dsh', 'capability-catalog.yaml')).trim();
|
|
110
|
+
const refreshDebounceMs = config.refreshDebounceMs ?? 200;
|
|
95
111
|
assertPositiveInteger('summaryMaxChars', summaryMaxChars, 20);
|
|
96
112
|
assertPositiveInteger('maxResults', maxResults, 1);
|
|
113
|
+
assertPositiveInteger('refreshDebounceMs', refreshDebounceMs, 0);
|
|
97
114
|
assertWeight('weighting', weighting);
|
|
98
115
|
/** Tool records keyed by tool name (MCP tools plus native tools under `built-in`); skills keyed by bare skill name. */
|
|
99
116
|
let toolRecords = new Map();
|
|
@@ -102,6 +119,8 @@ export function apply(ctx, config = {}) {
|
|
|
102
119
|
let skillScopes = new Map();
|
|
103
120
|
/** On-demand count of the latest catalog emission (0 until first write). */
|
|
104
121
|
let onDemandCount = 0;
|
|
122
|
+
/** Last emitted catalog text, so an unchanged rebuild skips the write. */
|
|
123
|
+
let lastCatalogContent;
|
|
105
124
|
const statsOf = (record) => record.stats;
|
|
106
125
|
/**
|
|
107
126
|
* Kind-aware record lookup. With `kind` only that table is consulted; without
|
|
@@ -138,26 +157,25 @@ export function apply(ctx, config = {}) {
|
|
|
138
157
|
}
|
|
139
158
|
return undefined;
|
|
140
159
|
};
|
|
141
|
-
/** Next-catalog accumulator shared by the global and preset-scope passes. */
|
|
142
|
-
let nextToolRecords = new Map();
|
|
143
160
|
/**
|
|
144
|
-
* Index one visible tool schema into the
|
|
161
|
+
* Index one visible tool schema into `next`, the accumulator owned by the
|
|
162
|
+
* current rebuild pass, deduped by name.
|
|
145
163
|
* 全部可见工具都进编目,仅排除 meta_search/meta_invoke(本插件控制面,
|
|
146
164
|
* 恒常驻)与 run_code(Code Mode 保留传输层)。mcp__ 工具按真实 server
|
|
147
165
|
* 分组;原生工具(无 mcp__ 前缀)统一归入保留的 built-in server,使能力
|
|
148
166
|
* 菜单能统一按 server 分组、三档管理,meta_invoke 也能派发它们。
|
|
149
167
|
* A schema may surface from several preset scope views; the first wins.
|
|
150
168
|
*/
|
|
151
|
-
const indexToolSchema = (schema) => {
|
|
169
|
+
const indexToolSchema = (next, schema) => {
|
|
152
170
|
if (CATALOG_EXCLUDED_TOOLS.has(schema.name))
|
|
153
171
|
return;
|
|
154
|
-
if (
|
|
172
|
+
if (next.has(schema.name))
|
|
155
173
|
return;
|
|
156
174
|
const existing = toolRecords.get(schema.name);
|
|
157
175
|
const stats = existing?.stats ?? { uses: 0, successes: 0, failures: 0, totalMs: 0 };
|
|
158
176
|
const isMcp = schema.name.startsWith(MCP_ID_PREFIX);
|
|
159
177
|
const serverName = isMcp ? serverNameOf(schema.name) : BUILT_IN_SERVER;
|
|
160
|
-
|
|
178
|
+
next.set(schema.name, {
|
|
161
179
|
id: schema.name,
|
|
162
180
|
kind: 'tool',
|
|
163
181
|
actions: ['execute'],
|
|
@@ -182,13 +200,15 @@ export function apply(ctx, config = {}) {
|
|
|
182
200
|
*/
|
|
183
201
|
// Rebuilds can overlap (eager mount-time run vs. a change-event refresh);
|
|
184
202
|
// the epoch guard drops a superseded run so its older snapshot never
|
|
185
|
-
// clobbers a newer one.
|
|
203
|
+
// clobbers a newer one. The accumulator is local to each run for the same
|
|
204
|
+
// reason: a shared one would be reset by the newer run mid-flight, letting
|
|
205
|
+
// the older run publish a partial catalog when it wins the epoch check.
|
|
186
206
|
let toolIndexEpoch = 0;
|
|
187
207
|
const rebuildTools = async () => {
|
|
188
208
|
const epoch = ++toolIndexEpoch;
|
|
189
|
-
nextToolRecords = new Map();
|
|
209
|
+
const nextToolRecords = new Map();
|
|
190
210
|
for (const schema of ctx.tools.schemas())
|
|
191
|
-
indexToolSchema(schema);
|
|
211
|
+
indexToolSchema(nextToolRecords, schema);
|
|
192
212
|
const agentPresets = ctx.get('agentPresets');
|
|
193
213
|
if (agentPresets !== undefined) {
|
|
194
214
|
let presets = [];
|
|
@@ -204,7 +224,7 @@ export function apply(ctx, config = {}) {
|
|
|
204
224
|
try {
|
|
205
225
|
const scope = await agentPresets.standingKeyFor(preset.id);
|
|
206
226
|
for (const schema of ctx.tools.schemas(scope))
|
|
207
|
-
indexToolSchema(schema);
|
|
227
|
+
indexToolSchema(nextToolRecords, schema);
|
|
208
228
|
}
|
|
209
229
|
catch (error) {
|
|
210
230
|
ctx.logger.warn(`meta-registry: preset "${preset.id}" tool scope unavailable: ${String(error)}`);
|
|
@@ -222,14 +242,33 @@ export function apply(ctx, config = {}) {
|
|
|
222
242
|
* registers into that preset's layer, so the host-plane global read alone
|
|
223
243
|
* sees nothing). The management catalog enumerates the global layer and then
|
|
224
244
|
* every mountable preset's standing scope, so preset-scoped skills surface.
|
|
245
|
+
*
|
|
246
|
+
* Each skill records the preset it came from (see `CapabilityOrigin.preset`),
|
|
247
|
+
* which is the only way to tell a preset's own `customSkillDirs` apart from a
|
|
248
|
+
* user's: both are labelled `source: 'custom'`.
|
|
249
|
+
*
|
|
250
|
+
* Same-name rule: the global layer wins, then presets in enumeration order
|
|
251
|
+
* (first wins). A skill id is a bare name with no namespace, so two scopes
|
|
252
|
+
* declaring the same name can only yield one record; overwriting instead
|
|
253
|
+
* would make the catalog depend on scan order rather than on where the skill
|
|
254
|
+
* actually sits.
|
|
255
|
+
*
|
|
256
|
+
* Same epoch guard as the tool side: overlapping refreshes resolve out of
|
|
257
|
+
* order, and a stale snapshot must not overwrite a newer one.
|
|
225
258
|
*/
|
|
259
|
+
let skillIndexEpoch = 0;
|
|
226
260
|
const refreshSkills = async () => {
|
|
261
|
+
const epoch = ++skillIndexEpoch;
|
|
227
262
|
const nextSkills = new Map();
|
|
228
263
|
const nextSkillScopes = new Map();
|
|
229
|
-
const indexSkill = (skill, scope) => {
|
|
264
|
+
const indexSkill = (skill, scope, preset) => {
|
|
230
265
|
if (!isModelInvocable(skill))
|
|
231
266
|
return;
|
|
232
267
|
const id = skill.name;
|
|
268
|
+
// First wins (global layer, then presets in order): see the same-name
|
|
269
|
+
// rule in this function's doc comment.
|
|
270
|
+
if (nextSkills.has(id))
|
|
271
|
+
return;
|
|
233
272
|
const existing = skillRecords.get(id);
|
|
234
273
|
const stats = existing?.stats ?? { uses: 0, successes: 0, failures: 0, totalMs: 0 };
|
|
235
274
|
nextSkills.set(id, {
|
|
@@ -242,16 +281,20 @@ export function apply(ctx, config = {}) {
|
|
|
242
281
|
origin: {
|
|
243
282
|
provider: skill.provider,
|
|
244
283
|
...typeof skill.source === 'string' ? { source: skill.source } : {},
|
|
284
|
+
...preset !== undefined ? { preset } : {},
|
|
285
|
+
// The skill's own directory, when its provider has one. It is what lets
|
|
286
|
+
// the location manager address project-scoped skills for edit/remove.
|
|
287
|
+
...skill.resourceBase?.kind === 'directory' ? { path: skill.resourceBase.path } : {},
|
|
245
288
|
},
|
|
246
289
|
parameters: { type: 'object', properties: {}, additionalProperties: false },
|
|
247
|
-
invocation: { modelInvocable:
|
|
290
|
+
invocation: { modelInvocable: skill.invocation.modelInvocable, userInvocable: skill.invocation.userInvocable },
|
|
248
291
|
tags: [skill.provider, 'skill'],
|
|
249
292
|
stats,
|
|
250
293
|
summary: toSummary(skill.description, summaryMaxChars),
|
|
251
294
|
});
|
|
252
295
|
nextSkillScopes.set(id, scope);
|
|
253
296
|
};
|
|
254
|
-
const collectScoped = async (label, scope) => {
|
|
297
|
+
const collectScoped = async (label, scope, preset) => {
|
|
255
298
|
let skills = [];
|
|
256
299
|
try {
|
|
257
300
|
skills = scope === undefined ? await ctx.skills.list({}) : await ctx.skills.list({ scope });
|
|
@@ -261,7 +304,7 @@ export function apply(ctx, config = {}) {
|
|
|
261
304
|
return;
|
|
262
305
|
}
|
|
263
306
|
for (const skill of skills)
|
|
264
|
-
indexSkill(skill, scope);
|
|
307
|
+
indexSkill(skill, scope, preset);
|
|
265
308
|
};
|
|
266
309
|
// Global layer first: the host's own skill providers.
|
|
267
310
|
await collectScoped('global', undefined);
|
|
@@ -282,13 +325,15 @@ export function apply(ctx, config = {}) {
|
|
|
282
325
|
continue;
|
|
283
326
|
try {
|
|
284
327
|
const scope = await agentPresets.standingKeyFor(preset.id);
|
|
285
|
-
await collectScoped(`preset "${preset.id}"`, scope);
|
|
328
|
+
await collectScoped(`preset "${preset.id}"`, scope, preset.id);
|
|
286
329
|
}
|
|
287
330
|
catch (error) {
|
|
288
331
|
ctx.logger.warn(`meta-registry: preset "${preset.id}" skill scope unavailable: ${String(error)}`);
|
|
289
332
|
}
|
|
290
333
|
}
|
|
291
334
|
}
|
|
335
|
+
if (epoch !== skillIndexEpoch)
|
|
336
|
+
return;
|
|
292
337
|
skillRecords = nextSkills;
|
|
293
338
|
skillScopes = nextSkillScopes;
|
|
294
339
|
};
|
|
@@ -320,23 +365,179 @@ export function apply(ctx, config = {}) {
|
|
|
320
365
|
...record.origin.serverName !== undefined ? { server: record.origin.serverName } : {},
|
|
321
366
|
}));
|
|
322
367
|
onDemandCount = onDemand.length;
|
|
368
|
+
const content = yaml.dump({ capabilities: onDemand });
|
|
369
|
+
// A rebuild that changed nothing must not touch the disk: at debounce rate
|
|
370
|
+
// this was rewriting the file several times a second.
|
|
371
|
+
if (content === lastCatalogContent)
|
|
372
|
+
return;
|
|
323
373
|
try {
|
|
324
|
-
await writeFile(catalogFile,
|
|
374
|
+
await writeFile(catalogFile, content, 'utf8');
|
|
375
|
+
lastCatalogContent = content;
|
|
325
376
|
}
|
|
326
377
|
catch (error) {
|
|
327
378
|
ctx.logger.warn(`capability-registry: on-demand catalog write failed (${catalogFile}): ${String(error)}`);
|
|
328
379
|
}
|
|
329
380
|
};
|
|
330
|
-
|
|
381
|
+
// --- Refresh scheduling --------------------------------------------------
|
|
382
|
+
// Change events (`tools/change` / `skills/change`) arrive in bursts: the
|
|
383
|
+
// skill/preset lifecycle invalidates caches and re-registers providers in
|
|
384
|
+
// quick succession, and a rebuild's own registry access can emit further
|
|
385
|
+
// change events. Rebuilding once per event produced an unbounded CPU storm
|
|
386
|
+
// (a full preset re-scan per event), so the scheduler:
|
|
387
|
+
// 1. runs at most one rebuild at a time (single flight);
|
|
388
|
+
// 2. coalesces every event landing during a run into at most one
|
|
389
|
+
// debounced follow-up rebuild;
|
|
390
|
+
// 3. lets an explicit `refresh()` await the rebuild chain covering its own
|
|
391
|
+
// call, so callers never observe a stale (or empty) catalog.
|
|
392
|
+
// The epoch guards inside `rebuildTools`/`refreshSkills` stay as the last
|
|
393
|
+
// line of defence for concurrent correctness.
|
|
394
|
+
/** Monotonic count of rebuild requests received (events + explicit calls). */
|
|
395
|
+
let eventSeq = 0;
|
|
396
|
+
/** The `eventSeq` value fully applied by the last completed rebuild. */
|
|
397
|
+
let appliedSeq = 0;
|
|
398
|
+
let rebuilding = false;
|
|
399
|
+
let stopped = false;
|
|
400
|
+
let timer;
|
|
401
|
+
const waiters = [];
|
|
402
|
+
/** Resolve every waiter whose snapshot is already covered by `appliedSeq`. */
|
|
403
|
+
const settleWaiters = () => {
|
|
404
|
+
if (waiters.length === 0)
|
|
405
|
+
return;
|
|
406
|
+
const ready = waiters.filter(waiter => waiter.seq <= appliedSeq);
|
|
407
|
+
if (ready.length === 0)
|
|
408
|
+
return;
|
|
409
|
+
for (const waiter of ready)
|
|
410
|
+
waiters.splice(waiters.indexOf(waiter), 1);
|
|
411
|
+
for (const waiter of ready)
|
|
412
|
+
waiter.resolve();
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* Consecutive rebuilds that reproduced the previous catalog. A noisy event
|
|
416
|
+
* stream that never changes anything (session re-registrations, the skill
|
|
417
|
+
* watcher) would otherwise keep the scheduler at the debounce rate, and each
|
|
418
|
+
* rebuild re-enumerates every preset's tools and skills — measured at ~1.5s
|
|
419
|
+
* CPU each, enough to starve the event loop and stall unrelated UI calls.
|
|
420
|
+
*/
|
|
421
|
+
let idleStreak = 0;
|
|
422
|
+
/** Upper bound for the backoff, so a real change is never pending long. */
|
|
423
|
+
const BACKOFF_MAX_MS = 10_000;
|
|
424
|
+
const currentDelay = () => {
|
|
425
|
+
// The ceiling can never fall below the configured base, or a large
|
|
426
|
+
// `refreshDebounceMs` would be clamped *down* into a faster schedule.
|
|
427
|
+
const ceiling = Math.max(BACKOFF_MAX_MS, refreshDebounceMs);
|
|
428
|
+
return Math.min(refreshDebounceMs * 2 ** idleStreak, ceiling);
|
|
429
|
+
};
|
|
430
|
+
/** Queue a coalesced rebuild after the (possibly backed-off) window. */
|
|
431
|
+
const schedule = () => {
|
|
432
|
+
if (stopped || rebuilding || timer !== undefined)
|
|
433
|
+
return;
|
|
434
|
+
timer = setTimeout(() => {
|
|
435
|
+
timer = undefined;
|
|
436
|
+
if (stopped || rebuilding)
|
|
437
|
+
return;
|
|
438
|
+
void runRebuild();
|
|
439
|
+
}, currentDelay());
|
|
440
|
+
};
|
|
441
|
+
/**
|
|
442
|
+
* Fingerprint of the indexed catalog — capability ids only, order-insensitive.
|
|
443
|
+
* Used to tell a rebuild that found something new from one that merely
|
|
444
|
+
* reproduced the previous catalog.
|
|
445
|
+
*/
|
|
446
|
+
const catalogSignature = () => {
|
|
447
|
+
const ids = [];
|
|
448
|
+
for (const id of toolRecords.keys())
|
|
449
|
+
ids.push(`t:${id}`);
|
|
450
|
+
for (const id of skillRecords.keys())
|
|
451
|
+
ids.push(`s:${id}`);
|
|
452
|
+
ids.sort();
|
|
453
|
+
return ids.join('\u0000');
|
|
454
|
+
};
|
|
455
|
+
let lastSignature;
|
|
456
|
+
/** Consecutive follow-up runs that reproduced the previous catalog. */
|
|
457
|
+
let unchangedChain = 0;
|
|
458
|
+
/** One full rebuild; never rejects (a failed run must not hang waiters). */
|
|
459
|
+
const runRebuild = async () => {
|
|
460
|
+
rebuilding = true;
|
|
461
|
+
// Every request received so far is covered by this run.
|
|
462
|
+
const seqAtStart = eventSeq;
|
|
463
|
+
const startedAt = Date.now();
|
|
464
|
+
try {
|
|
465
|
+
await rebuildTools();
|
|
466
|
+
await refreshSkills();
|
|
467
|
+
await writeCatalog();
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
ctx.logger.warn(`capability-registry: catalog rebuild failed: ${String(error)}`);
|
|
471
|
+
}
|
|
472
|
+
finally {
|
|
473
|
+
rebuilding = false;
|
|
474
|
+
if (seqAtStart > appliedSeq)
|
|
475
|
+
appliedSeq = seqAtStart;
|
|
476
|
+
settleWaiters();
|
|
477
|
+
// Requests that landed mid-run are not covered yet, so chain a
|
|
478
|
+
// follow-up — but never indefinitely. Two runs in a row that reproduce
|
|
479
|
+
// the same catalog mean the pending events carried no new capability:
|
|
480
|
+
// our own registry reads can emit change events, and dsh's skill watcher
|
|
481
|
+
// can stream them, so chaining on would spin at the debounce rate
|
|
482
|
+
// forever. One follow-up is still allowed before stopping, because a
|
|
483
|
+
// real change that lands mid-run is only visible to the *next* run.
|
|
484
|
+
const signature = catalogSignature();
|
|
485
|
+
const changed = signature !== lastSignature;
|
|
486
|
+
lastSignature = signature;
|
|
487
|
+
// One line per full rebuild. These are the expensive runs (every tool plus
|
|
488
|
+
// every agent-preset skill scope); if they are repeating, this is where it
|
|
489
|
+
// shows — and a caller blocked behind one sees that as the UI stalling.
|
|
490
|
+
ctx.logger.info(`capability-registry: rebuild took ${Date.now() - startedAt}ms (catalog changed: ${changed}, ${toolRecords.size} tools, ${skillRecords.size} skills)`);
|
|
491
|
+
if (changed)
|
|
492
|
+
idleStreak = 0;
|
|
493
|
+
else if (idleStreak < 10)
|
|
494
|
+
idleStreak += 1;
|
|
495
|
+
if (!stopped && eventSeq > appliedSeq) {
|
|
496
|
+
if (changed) {
|
|
497
|
+
unchangedChain = 0;
|
|
498
|
+
schedule();
|
|
499
|
+
}
|
|
500
|
+
else if (unchangedChain === 0) {
|
|
501
|
+
unchangedChain = 1;
|
|
502
|
+
schedule();
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
/** Start a rebuild immediately, skipping the debounce window. */
|
|
508
|
+
const runNow = () => {
|
|
509
|
+
if (timer !== undefined) {
|
|
510
|
+
clearTimeout(timer);
|
|
511
|
+
timer = undefined;
|
|
512
|
+
}
|
|
513
|
+
if (!stopped && !rebuilding)
|
|
514
|
+
void runRebuild();
|
|
515
|
+
};
|
|
516
|
+
/**
|
|
517
|
+
* Refresh the whole catalog, resolving once the rebuild chain covering this
|
|
518
|
+
* call has converged (including any coalesced follow-up).
|
|
519
|
+
*/
|
|
331
520
|
const refresh = async () => {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
521
|
+
if (stopped)
|
|
522
|
+
return;
|
|
523
|
+
const seq = ++eventSeq;
|
|
524
|
+
runNow();
|
|
525
|
+
if (seq <= appliedSeq)
|
|
526
|
+
return;
|
|
527
|
+
await new Promise(resolve => {
|
|
528
|
+
waiters.push({ seq, resolve });
|
|
529
|
+
});
|
|
335
530
|
};
|
|
336
531
|
/** Register once; also subscribe to change events. */
|
|
337
532
|
const disposers = [];
|
|
338
|
-
disposers.push(ctx.on('tools/change', () =>
|
|
339
|
-
|
|
533
|
+
disposers.push(ctx.on('tools/change', () => {
|
|
534
|
+
eventSeq++;
|
|
535
|
+
schedule();
|
|
536
|
+
}));
|
|
537
|
+
disposers.push(ctx.on('skills/change', () => {
|
|
538
|
+
eventSeq++;
|
|
539
|
+
schedule();
|
|
540
|
+
}));
|
|
340
541
|
// Index the global tool view eagerly (the synchronous part of
|
|
341
542
|
// `rebuildTools`); preset standing scopes and skills are enumerated by the
|
|
342
543
|
// first explicit `refresh()` (policy mounts it before the surface is used)
|
|
@@ -345,6 +546,13 @@ export function apply(ctx, config = {}) {
|
|
|
345
546
|
void rebuildTools();
|
|
346
547
|
void refreshSkills();
|
|
347
548
|
ctx.effect(() => () => {
|
|
549
|
+
stopped = true;
|
|
550
|
+
if (timer !== undefined)
|
|
551
|
+
clearTimeout(timer);
|
|
552
|
+
// Unblock any in-flight `refresh()`: the plugin is going away and no
|
|
553
|
+
// further rebuild will run.
|
|
554
|
+
for (const waiter of waiters.splice(0))
|
|
555
|
+
waiter.resolve();
|
|
348
556
|
for (const dispose of disposers)
|
|
349
557
|
dispose();
|
|
350
558
|
});
|
|
@@ -406,6 +614,7 @@ export function apply(ctx, config = {}) {
|
|
|
406
614
|
summary: record.summary,
|
|
407
615
|
...record.origin.serverName !== undefined ? { server: record.origin.serverName } : {},
|
|
408
616
|
...record.origin.source !== undefined ? { source: record.origin.source } : {},
|
|
617
|
+
...record.origin.preset !== undefined ? { preset: record.origin.preset } : {},
|
|
409
618
|
tags: record.tags,
|
|
410
619
|
...rate !== undefined ? { success_rate: rate } : {},
|
|
411
620
|
uses: record.stats.uses,
|
|
@@ -465,8 +674,10 @@ export function apply(ctx, config = {}) {
|
|
|
465
674
|
if (root === undefined)
|
|
466
675
|
return undefined;
|
|
467
676
|
const target = relPath.length === 0 ? root : resolve(root, relPath);
|
|
468
|
-
// Containment: the resolved path must stay inside the skill root
|
|
469
|
-
|
|
677
|
+
// Containment: the resolved path must stay inside the skill root, both
|
|
678
|
+
// lexically (`..`) and after resolving symlinks (a link inside the skill
|
|
679
|
+
// directory must not lead out of it).
|
|
680
|
+
if (!(await isInside(root, target)))
|
|
470
681
|
return undefined;
|
|
471
682
|
try {
|
|
472
683
|
const entries = await readdir(target, { withFileTypes: true });
|
|
@@ -485,8 +696,8 @@ export function apply(ctx, config = {}) {
|
|
|
485
696
|
if (root === undefined)
|
|
486
697
|
return undefined;
|
|
487
698
|
const target = resolve(root, relPath);
|
|
488
|
-
// Containment:
|
|
489
|
-
if (
|
|
699
|
+
// Containment: see `listSkillDir` — lexical `..` and symlinks both checked.
|
|
700
|
+
if (!(await isInside(root, target)))
|
|
490
701
|
return undefined;
|
|
491
702
|
try {
|
|
492
703
|
const info = await stat(target);
|
|
@@ -501,6 +712,20 @@ export function apply(ctx, config = {}) {
|
|
|
501
712
|
return undefined;
|
|
502
713
|
}
|
|
503
714
|
},
|
|
715
|
+
skillDirs() {
|
|
716
|
+
const out = [];
|
|
717
|
+
for (const record of skillRecords.values()) {
|
|
718
|
+
const skillDir = record.origin.path;
|
|
719
|
+
if (skillDir === undefined)
|
|
720
|
+
continue;
|
|
721
|
+
out.push({
|
|
722
|
+
name: record.name,
|
|
723
|
+
skillDir,
|
|
724
|
+
...record.origin.source !== undefined ? { source: record.origin.source } : {},
|
|
725
|
+
});
|
|
726
|
+
}
|
|
727
|
+
return out;
|
|
728
|
+
},
|
|
504
729
|
size() {
|
|
505
730
|
return toolRecords.size + skillRecords.size;
|
|
506
731
|
},
|
|
@@ -510,9 +735,21 @@ export function apply(ctx, config = {}) {
|
|
|
510
735
|
onDemandCount() {
|
|
511
736
|
return onDemandCount;
|
|
512
737
|
},
|
|
738
|
+
version() {
|
|
739
|
+
return appliedSeq;
|
|
740
|
+
},
|
|
513
741
|
refresh() {
|
|
514
742
|
return refresh();
|
|
515
743
|
},
|
|
744
|
+
requestRefresh() {
|
|
745
|
+
if (stopped)
|
|
746
|
+
return;
|
|
747
|
+
eventSeq++;
|
|
748
|
+
schedule();
|
|
749
|
+
},
|
|
750
|
+
rewriteCatalog() {
|
|
751
|
+
return writeCatalog();
|
|
752
|
+
},
|
|
516
753
|
};
|
|
517
754
|
// Observe tool results to write back objective stats. Nested dispatches
|
|
518
755
|
// (parent set by meta_invoke) attribute to the target capability; the
|
package/lib/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAGxC,OAAO,EAAE,gBAAgB,EAAqB,MAAM,wBAAwB,CAAA;AAC5E,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAmBvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AACpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAA;AACzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;AAwL9G,uDAAuD;AACvD,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACxC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IAClC,0EAA0E;IAC1E,gFAAgF;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAA;AAEF,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACrE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0BAA0B,GAAG,EAAE,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAA;IACvD,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,SAAS,SAAS,CAAC,WAAmB,EAAE,QAAgB;IACtD,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,IAAI,SAAS,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAA;IAClD,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,2EAA2E;AAC3E,SAAS,YAAY,CAAC,MAAwB,EAAE,MAAyB;IACvE,MAAM,QAAQ,GAAG;QACf,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,SAAS,IAAI,EAAE;QACtB,MAAM,CAAC,MAAM,CAAC,QAAQ;QACtB,GAAG,MAAM,CAAC,IAAI;KACf,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IACzB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,CAAA;QACxC,qFAAqF;QACrF,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,GAAG,CAAA;IAC3D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAsB;IACzC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACtC,OAAO,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;AACrC,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,IAAI,GAAG,0BAA0B,CAAA;AAC9C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAEzC,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB,EAAE;IACrD,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,GAAG,CAAA;IACrD,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAA;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAA;IACzC,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACrG,qBAAqB,CAAC,iBAAiB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;IAC7D,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAClD,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAEpC,uHAAuH;IACvH,IAAI,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;IACrD,IAAI,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAA;IACtD,iFAAiF;IACjF,IAAI,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAA;IACzD,4EAA4E;IAC5E,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,MAAM,OAAO,GAAG,CAAC,MAAwB,EAAmB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAA;IAE3E;;;;OAIG;IACH,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,IAAqB,EAAgC,EAAE;QACzF,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC/D,OAAO,IAAI,IAAI,KAAK,CAAA;IACtB,CAAC,CAAA;IAED;;;;OAIG;IACH,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAA+B,EAAE;QACpE,MAAM,IAAI,GAAG,EAAE,CAAA;QACf,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAA;QACnD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC5E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC1F,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAA;YACrC,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,6EAA6E;IAC7E,IAAI,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAA;IAEzD;;;;;;;OAOG;IACH,MAAM,eAAe,GAAG,CAAC,MAAyE,EAAQ,EAAE;QAC1G,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAM;QACnD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAM;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAA;QACtE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YAC/B,EAAE,EAAE,MAAM,CAAC,IAAI;YACf,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE;YAC5C,UAAU,EAAE,MAAM,CAAC,UAA4B;YAC/C,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;YAC1D,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;YAC1B,KAAK;YACL,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC,CAAA;IAED;;;;;;;;OAQG;IACH,0EAA0E;IAC1E,qEAAqE;IACrE,wBAAwB;IACxB,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,KAAK,GAAG,EAAE,cAAc,CAAA;QAC9B,eAAe,GAAG,IAAI,GAAG,EAA4B,CAAA;QACrD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;YAAE,eAAe,CAAC,MAAM,CAAC,CAAA;QAEjE,MAAM,YAAY,GAAI,GAAG,CAAC,GAAgC,CAAC,cAAc,CAE5D,CAAA;QACb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,OAAO,GAA2C,EAAE,CAAA;YACxD,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;oBAAE,SAAQ;gBACzC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAC1D,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;wBAAE,eAAe,CAAC,MAAM,CAAC,CAAA;gBACxE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,EAAE,6BAA6B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAClG,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,cAAc;YAAE,WAAW,GAAG,eAAe,CAAA;IAC7D,CAAC,CAAA;IAED;;;;;;;;OAQG;IACH,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;QAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAA;QACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgC,CAAA;QAE/D,MAAM,UAAU,GAAG,CAAC,KAAmB,EAAE,KAA2B,EAAQ,EAAE;YAC5E,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,OAAM;YACpC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAA;YACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACrC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;YACnF,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE;gBACjB,EAAE;gBACF,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBACtE,MAAM,EAAE;oBACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;iBACpE;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE;gBAC3E,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE;gBACnF,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAC/B,KAAK;gBACL,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC;aACvD,CAAC,CAAA;YACF,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAChC,CAAC,CAAA;QAED,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,KAA2B,EAAiB,EAAE;YACxF,IAAI,MAAM,GAAmB,EAAE,CAAA;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAC7F,OAAM;YACR,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACtD,CAAC,CAAA;QAED,sDAAsD;QACtD,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAExC,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,MAAM,YAAY,GAAI,GAAG,CAAC,GAAgC,CAAC,cAAc,CAE5D,CAAA;QACb,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,OAAO,GAA2C,EAAE,CAAA;YACxD,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtF,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;oBAAE,SAAQ;gBACzC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAC1D,MAAM,aAAa,CAAC,WAAW,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;gBACrD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,EAAE,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,GAAG,UAAU,CAAA;QACzB,WAAW,GAAG,eAAe,CAAA;IAC/B,CAAC,CAAA;IAED;;;;;;OAMG;IACH,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,aAAa,GAAG,CAAC,CAAA;QACjB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC1C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;aACjE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;aACnF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACd,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,qEAAqE;YACrE,iEAAiE;YACjE,8CAA8C;YAC9C,WAAW,EAAE,MAAM,CAAC,OAAO;YAC3B,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;YACxE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;SACtF,CAAC,CAAC,CAAA;QACL,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,WAAW,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3G,CAAC;IACH,CAAC,CAAA;IAED,0EAA0E;IAC1E,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,MAAM,YAAY,EAAE,CAAA;QACpB,MAAM,aAAa,EAAE,CAAA;QACrB,MAAM,YAAY,EAAE,CAAA;IACtB,CAAC,CAAA;IAED,sDAAsD;IACtD,MAAM,SAAS,GAAsB,EAAE,CAAA;IACvC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5D,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;IAC7D,8DAA8D;IAC9D,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,iDAAiD;IACjD,KAAK,YAAY,EAAE,CAAA;IACnB,KAAK,aAAa,EAAE,CAAA;IACpB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QACpB,KAAK,MAAM,OAAO,IAAI,SAAS;YAAE,OAAO,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAsB;QACjC,MAAM,CAAC,UAA6B,EAAE;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;YAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;YACnC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAA;YAE7B,MAAM,GAAG,GAAuB,EAAE,CAAA;YAClC,mEAAmE;YACnE,8EAA8E;YAC9E,2EAA2E;YAC3E,2EAA2E;YAC3E,yEAAyE;YACzE,qEAAqE;YACrE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7D,CAAC;YACD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9D,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACnC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,MAAM;oBAAE,OAAO,KAAK,CAAA;gBAC7E,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAA;gBACjE,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAA;gBACtD,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;YAEF,yEAAyE;YACzE,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACnC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAA;oBAC1D,IAAI,KAAK;wBAAE,KAAK,IAAI,GAAG,CAAA;oBACvB,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACvC,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC;oBAAE,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,EAAE,CAAA;gBACvE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC;oBAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAA;gBACxG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,UAAU,CAAC,CAAA;YAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtC,OAAO;oBACL,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;oBACrF,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBAC7E,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;oBACnD,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;iBACxB,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,GAAG,CAAC,EAAU,EAAE,IAAqB;YACnC,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,IAAqB,EAAE,UAA6B,EAAE;YAChF,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;YAC7C,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YAE1C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC5D,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAA;gBAC9C,OAAO;oBACL,EAAE,EAAE,MAAM,CAAC,EAAE;oBACb,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,UAAU,EAAE,UAAU,CAAC,UAA4B;oBACnD,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;oBAChC,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;iBACvB,CAAA;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,MAAM,GAAG;gBACb,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAA;YACD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;YAC9E,MAAM,MAAM,GAAqB;gBAC/B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBACxE,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;aACvB,CAAA;YACD,IAAI,KAAK,KAAK,SAAS,IAAI,kBAAkB,EAAE,CAAC;gBAC9C,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAoB,EAAE,CAAA;YACjH,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,OAAO,GAAG,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACnE,kEAAkE;YAClE,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;gBAAE,OAAO,SAAS,CAAA;YAC5E,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;iBACjD,CAAC,CAAC,CAAA;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE,QAAQ,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACrG,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAe;YAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACrC,kEAAkE;YAClE,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;gBAAE,OAAO,SAAS,CAAA;YAC5E,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAAE,OAAO,SAAS,CAAA;gBACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAC3C,iEAAiE;gBACjE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,QAAQ,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACnG,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI;YACF,OAAO,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAA;QAC7C,CAAC;QAED,WAAW;YACT,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAA;QAC3D,CAAC;QAED,aAAa;YACX,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,OAAO;YACL,OAAO,OAAO,EAAE,CAAA;QAClB,CAAC;KACF,CAAA;IAED,wEAAwE;IACxE,sEAAsE;IACtE,iEAAiE;IACjE,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAA6B,EAAE,MAAqC,EAAE,EAAE;QAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,4EAA4E;QAC5E,8EAA8E;QAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;eAC1E,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI;YACtD,CAAC,CAAE,MAAM,CAAC,IAAiC,CAAC,UAAgC;YAC5E,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAoB;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAA;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IACvG,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/lib/search.js
CHANGED
|
@@ -104,14 +104,22 @@ export function apply(ctx, config = {}) {
|
|
|
104
104
|
}
|
|
105
105
|
return { mode: 'detail', result: result };
|
|
106
106
|
}
|
|
107
|
+
// Filter Disabled BEFORE applying the result cap: a Disabled hit inside
|
|
108
|
+
// the top-N would otherwise consume a slot and hide a matching Resident
|
|
109
|
+
// capability ranked below it (the extreme case being an all-Disabled
|
|
110
|
+
// top-N returning nothing). Over-fetch — the registry imposes no upper
|
|
111
|
+
// bound and already ranks the whole catalog — then slice.
|
|
112
|
+
const limit = Math.min(requestedMax ?? maxResults, 50);
|
|
107
113
|
const results = ctx.capability.search({
|
|
108
114
|
query,
|
|
109
115
|
kind,
|
|
110
116
|
server,
|
|
111
117
|
tag,
|
|
112
|
-
maxResults:
|
|
118
|
+
maxResults: Number.MAX_SAFE_INTEGER,
|
|
113
119
|
scope,
|
|
114
|
-
})
|
|
120
|
+
})
|
|
121
|
+
.filter(result => !isDisabled(result.id, result.kind))
|
|
122
|
+
.slice(0, limit);
|
|
115
123
|
const catalogPath = ctx.capability.catalogPath?.();
|
|
116
124
|
return {
|
|
117
125
|
mode: 'list',
|