@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/constants.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants shared by the server-side registry and the browser bundle.
|
|
3
|
+
*
|
|
4
|
+
* Kept in a dependency-free module so `src/client` can import them without
|
|
5
|
+
* pulling the registry's `node:fs` / `js-yaml` imports into the web bundle.
|
|
6
|
+
*/
|
|
7
|
+
/** Prefix of every MCP tool's registered name: `mcp__<server>__<raw>`. */
|
|
8
|
+
export const MCP_ID_PREFIX = 'mcp__';
|
|
9
|
+
/**
|
|
10
|
+
* Reserved pseudo-server that groups harness-native (non-MCP) tools in the
|
|
11
|
+
* management surface. Native tools (bash/read/write/…) are cataloged like MCP
|
|
12
|
+
* tools — same `server` dimension — so 能力菜单 can group them, classify them
|
|
13
|
+
* Resident/On-demand/Disabled, and `meta_invoke` can dispatch them.
|
|
14
|
+
*/
|
|
15
|
+
export const BUILT_IN_SERVER = 'built-in';
|
|
16
|
+
/**
|
|
17
|
+
* dsh's source labels for a project's own skill roots — the `project`-prefixed
|
|
18
|
+
* providers of `@deepseek-ai/dsh-skill-filesystem`, which scan
|
|
19
|
+
* `<projectRoot>/.dsh/skills` and `<projectRoot>/.agents/skills`. Every other
|
|
20
|
+
* label (`user-dsh`, `user-agents`, `bundled`, `custom`, `runtime`) is a
|
|
21
|
+
* user-level root. Shared so the server's location manager and the browser's
|
|
22
|
+
* 全局 / 项目 grouping agree on what "project scoped" means.
|
|
23
|
+
*/
|
|
24
|
+
export const PROJECT_SKILL_SOURCES = new Set(['project-dsh', 'project-agents']);
|
|
25
|
+
/**
|
|
26
|
+
* Source labels for user-level skill roots whose entries this plugin can adopt:
|
|
27
|
+
* linking the skill's own directory into the user root (where the entry becomes
|
|
28
|
+
* editable) without touching its content. `user-dsh` is excluded because that
|
|
29
|
+
* root is already managed, and `bundled` because a packaged skill should not be
|
|
30
|
+
* shadowed by a user copy.
|
|
31
|
+
*/
|
|
32
|
+
export const ADOPTABLE_SKILL_SOURCES = new Set(['user-agents', 'custom']);
|
|
33
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAA;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAA;AAEzC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAEpG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - `policy` (P3): Resident/On-demand/Disabled projection policy + `ctx.capabilityPolicy`.
|
|
12
12
|
* - the package root entry (`name` + `apply` below): mounts the Typert gateway
|
|
13
13
|
* that exposes `ctx.capabilityPolicy` to the browser as the `capabilityPolicy`
|
|
14
|
-
* remote namespace — the data source of the
|
|
14
|
+
* remote namespace — the data source of the 能力菜单 settings tab.
|
|
15
15
|
* - a browser bundle via the `./client` subpath (`src/client`), discovered by
|
|
16
16
|
* `@deepseek-ai/dsh-client-modules` from this package's `dsh.client`
|
|
17
17
|
* declaration and served as `/plugins/<id>/client.js`.
|
package/lib/invoke.js
CHANGED
|
@@ -46,7 +46,13 @@ export function apply(ctx, config = {}) {
|
|
|
46
46
|
parameters: {
|
|
47
47
|
id: { type: 'string', required: true, description: 'Capability id from meta_search, e.g. mcp__gongfeng__create_issue or frontend-design.' },
|
|
48
48
|
kind: { type: 'string', enum: ['tool', 'skill'], required: true, description: 'Capability kind reported by meta_search for this id.' },
|
|
49
|
-
args: {
|
|
49
|
+
args: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
additionalProperties: true,
|
|
52
|
+
description: 'Arguments for the target tool, passed directly. Each property must be a valid value for the target tool schema (the parameter object from meta_search detail). ' +
|
|
53
|
+
'Do NOT wrap these in another {id, kind, args} object, and do NOT stringify them — pass them as a structured object. ' +
|
|
54
|
+
'Skills ignore this field.',
|
|
55
|
+
},
|
|
50
56
|
},
|
|
51
57
|
output: {
|
|
52
58
|
schema: {
|
|
@@ -180,10 +186,24 @@ export function apply(ctx, config = {}) {
|
|
|
180
186
|
// keeps Progressive tools runnable; the target tool's own guards still apply
|
|
181
187
|
// (no permission bypass — see README). A native tool reachable only through
|
|
182
188
|
// the caller's view does pass that view, mirroring the direct-call surface.
|
|
189
|
+
// `args.args` is normalized to an argument object first. The declared
|
|
190
|
+
// contract (see `parameters.args`) already rejects a stringified payload
|
|
191
|
+
// before this runs; what is left for `normalizeArgs` is guaranteeing the
|
|
192
|
+
// MCP layer never receives `undefined` (the pipeline rejects that) or a
|
|
193
|
+
// stray non-object, which would otherwise degrade to `{}` downstream.
|
|
194
|
+
const forwarded = normalizeArgs(args.args);
|
|
195
|
+
// A model that nests the meta_invoke envelope inside `args` satisfies the
|
|
196
|
+
// object contract, so it would reach the target as a wrong parameter
|
|
197
|
+
// object and leave the server to report an unrelated missing/unexpected
|
|
198
|
+
// field. Name the mistake instead — and only name it: rewriting `args`
|
|
199
|
+
// risks turning a legitimate call into a wrong one (see issue #10).
|
|
200
|
+
const envelope = envelopeDiagnostic(forwarded, capability.name, definition.parameters);
|
|
201
|
+
if (envelope !== undefined)
|
|
202
|
+
throw new Error(envelope);
|
|
183
203
|
const result = await ctx.tools.execute({
|
|
184
204
|
callId: ToolCallId(`${exec.callId}:meta:${id}`),
|
|
185
205
|
name: capability.name,
|
|
186
|
-
arguments:
|
|
206
|
+
arguments: forwarded,
|
|
187
207
|
signal: exec.signal,
|
|
188
208
|
parent: exec.token,
|
|
189
209
|
...nativeCallerView !== undefined ? { agent: nativeCallerView } : {},
|
|
@@ -268,4 +288,54 @@ export function apply(ctx, config = {}) {
|
|
|
268
288
|
});
|
|
269
289
|
ctx.tools.register(tool);
|
|
270
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Normalize the model-supplied `args` before forwarding them to the target tool.
|
|
293
|
+
*
|
|
294
|
+
* The declared contract (`parameters.args`) is an object and the tool pipeline
|
|
295
|
+
* enforces it before `execute` runs, so this covers only what validation lets
|
|
296
|
+
* through: a missing value on a parameterless call, and `null`. Anything that
|
|
297
|
+
* cannot be forwarded as an MCP argument object is rejected here instead of
|
|
298
|
+
* silently degrading to `{}` at the MCP layer (issue #4).
|
|
299
|
+
*/
|
|
300
|
+
function normalizeArgs(raw) {
|
|
301
|
+
if (raw === undefined || raw === null)
|
|
302
|
+
return {};
|
|
303
|
+
if (typeof raw !== 'object' || Array.isArray(raw)) {
|
|
304
|
+
throw new Error('meta_invoke: args must be an object (the target tool parameter object)');
|
|
305
|
+
}
|
|
306
|
+
return raw;
|
|
307
|
+
}
|
|
308
|
+
/** The three keys of the call envelope models sometimes nest inside `args`. */
|
|
309
|
+
const ENVELOPE_KEYS = ['id', 'kind', 'args'];
|
|
310
|
+
/**
|
|
311
|
+
* Diagnose a `{ id, kind, args }` envelope nested inside `args`.
|
|
312
|
+
*
|
|
313
|
+
* `args` is forwarded as the target tool's parameter object, so a nested
|
|
314
|
+
* envelope reaches the server as a wrong argument object and surfaces as an
|
|
315
|
+
* unrelated missing/unexpected-field error. Detection is deliberately narrow —
|
|
316
|
+
* an exact key set, `kind: 'tool'`, an `id` equal to the target tool's own name,
|
|
317
|
+
* an object payload, and a target that does not declare `id`/`kind` as real
|
|
318
|
+
* parameters — so a tool whose parameters really are those keys is never
|
|
319
|
+
* affected. Only a diagnostic is returned: `args` is never rewritten, because a
|
|
320
|
+
* wrong-but-plausible call is worse than a loud error.
|
|
321
|
+
*
|
|
322
|
+
* @returns the error message to raise, or `undefined` when `args` is not an envelope.
|
|
323
|
+
*/
|
|
324
|
+
function envelopeDiagnostic(forwarded, targetName, parameters) {
|
|
325
|
+
const keys = Object.keys(forwarded);
|
|
326
|
+
if (keys.length !== ENVELOPE_KEYS.length)
|
|
327
|
+
return undefined;
|
|
328
|
+
if (!ENVELOPE_KEYS.every(key => keys.includes(key)))
|
|
329
|
+
return undefined;
|
|
330
|
+
if (forwarded['kind'] !== 'tool' || forwarded['id'] !== targetName)
|
|
331
|
+
return undefined;
|
|
332
|
+
const payload = forwarded['args'];
|
|
333
|
+
if (payload === null || typeof payload !== 'object' || Array.isArray(payload))
|
|
334
|
+
return undefined;
|
|
335
|
+
const declared = parameters?.properties;
|
|
336
|
+
if (declared !== undefined && (Object.hasOwn(declared, 'id') || Object.hasOwn(declared, 'kind')))
|
|
337
|
+
return undefined;
|
|
338
|
+
return (`meta_invoke: args looks like a nested { id, kind, args } envelope for "${targetName}" — ` +
|
|
339
|
+
'pass the target tool\'s parameters directly (the parameter object from meta_search detail)');
|
|
340
|
+
}
|
|
271
341
|
//# sourceMappingURL=invoke.js.map
|
package/lib/invoke.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../src/invoke.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAA0B,MAAM,wBAAwB,CAAA;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,CAAC,MAAM,IAAI,GAAG,wBAAwB,CAAA;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;AAWvD,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC9D,CAAC,CAAA;AAgCF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,SAAiB,EAAE;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAA;IAClD,IAAI,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACjG,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,OAAO,EAAuB,CAAA;IAEvD,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2YAA2Y;QACxZ,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sFAAsF,EAAE;YAC3I,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAsD,EAAE;YACtI,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../src/invoke.ts"],"names":[],"mappings":"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"}
|