@dsh-cc/plugin-loader 0.7.1 → 0.8.0-rc.2
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.i18n.yaml +1 -1
- package/README.md +30 -0
- package/lib/actor-contract-gate.d.ts +66 -0
- package/lib/actor-contract-gate.d.ts.map +1 -0
- package/lib/actor-contract-gate.js +83 -0
- package/lib/actor-contract-gate.js.map +1 -0
- package/lib/agents.d.ts +5 -1
- package/lib/agents.d.ts.map +1 -1
- package/lib/agents.js +65 -21
- package/lib/agents.js.map +1 -1
- package/lib/commands.d.ts +1 -0
- package/lib/commands.d.ts.map +1 -1
- package/lib/commands.js +84 -10
- package/lib/commands.js.map +1 -1
- package/lib/discovery.d.ts +20 -0
- package/lib/discovery.d.ts.map +1 -1
- package/lib/discovery.js +37 -1
- package/lib/discovery.js.map +1 -1
- package/lib/hooks.d.ts +8 -0
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js +74 -5
- package/lib/hooks.js.map +1 -1
- package/lib/index.d.ts +17 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +30 -8
- package/lib/index.js.map +1 -1
- package/lib/manifest.d.ts +11 -1
- package/lib/manifest.d.ts.map +1 -1
- package/lib/manifest.js +54 -1
- package/lib/manifest.js.map +1 -1
- package/lib/mcp.d.ts +1 -0
- package/lib/mcp.d.ts.map +1 -1
- package/lib/mcp.js +81 -5
- package/lib/mcp.js.map +1 -1
- package/lib/resolve-manifest.d.ts +15 -1
- package/lib/resolve-manifest.d.ts.map +1 -1
- package/lib/resolve-manifest.js +37 -12
- package/lib/resolve-manifest.js.map +1 -1
- package/lib/rules.d.ts +37 -0
- package/lib/rules.d.ts.map +1 -0
- package/lib/rules.js +171 -0
- package/lib/rules.js.map +1 -0
- package/lib/seams.d.ts +11 -1
- package/lib/seams.d.ts.map +1 -1
- package/lib/seams.js.map +1 -1
- package/lib/skills.d.ts +1 -0
- package/lib/skills.d.ts.map +1 -1
- package/lib/skills.js +45 -8
- package/lib/skills.js.map +1 -1
- package/lib/types.d.ts +31 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +17 -14
package/lib/skills.js
CHANGED
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
13
|
import { access, readdir, readFile } from 'node:fs/promises';
|
|
14
|
+
import { readdirSync } from 'node:fs';
|
|
14
15
|
import { basename, join, resolve } from 'node:path';
|
|
15
16
|
import { ccInvocation, parseCcFrontmatter, parseCcFrontmatterDocument, } from '@dsh-cc/skill-loader';
|
|
16
17
|
import { isSkillName } from '@deepseek-ai/dsh-skill';
|
|
17
18
|
import { ComponentTally } from "./seams.js";
|
|
19
|
+
import { globPathKind } from "./manifest.js";
|
|
18
20
|
import { PROVIDER, registerSkillPathActivator, activationFor } from "./skill-semantics.js";
|
|
19
21
|
/** Skills live under this directory in a plugin root, when present. */
|
|
20
22
|
export const STANDARD_SKILLS_DIR = 'skills';
|
|
@@ -26,19 +28,20 @@ export const STANDARD_SKILLS_DIR = 'skills';
|
|
|
26
28
|
export async function mountSkills(options) {
|
|
27
29
|
const tally = new ComponentTally('skills');
|
|
28
30
|
const disposers = [];
|
|
31
|
+
const globWarnings = [];
|
|
29
32
|
if (options.skills === undefined) {
|
|
30
33
|
tally.addSkipped('skill registry seam "skills" is not mounted');
|
|
31
|
-
return { disposers, tally };
|
|
34
|
+
return { disposers, tally, warnings: globWarnings };
|
|
32
35
|
}
|
|
33
|
-
const roots = skillRoots(options.pluginRoot, options.manifest);
|
|
36
|
+
const roots = skillRoots(options.pluginRoot, options.manifest, globWarnings);
|
|
34
37
|
if (roots.length === 0) {
|
|
35
38
|
tally.addSkipped('plugin ships no skills directory or manifest skills paths');
|
|
36
|
-
return { disposers, tally };
|
|
39
|
+
return { disposers, tally, warnings: globWarnings };
|
|
37
40
|
}
|
|
38
41
|
const files = await collectSkillFiles(roots);
|
|
39
42
|
if (files.length === 0) {
|
|
40
43
|
tally.addSkipped('plugin ships no skills');
|
|
41
|
-
return { disposers, tally };
|
|
44
|
+
return { disposers, tally, warnings: globWarnings };
|
|
42
45
|
}
|
|
43
46
|
for (const file of files) {
|
|
44
47
|
const loaded = await loadSkillFile(file);
|
|
@@ -69,17 +72,51 @@ export async function mountSkills(options) {
|
|
|
69
72
|
activationFor(metadata, options.subagentsPresent);
|
|
70
73
|
tally.addLoaded();
|
|
71
74
|
}
|
|
72
|
-
return { disposers, tally };
|
|
75
|
+
return { disposers, tally, warnings: globWarnings };
|
|
73
76
|
}
|
|
74
77
|
/** Default `skills/` plus manifest paths; overlay replace drops the default dir. */
|
|
75
|
-
function skillRoots(pluginRoot, manifest) {
|
|
78
|
+
function skillRoots(pluginRoot, manifest, globWarnings) {
|
|
76
79
|
const roots = [];
|
|
77
80
|
if (!manifest.skillsReplaceDefault)
|
|
78
81
|
roots.push(join(pluginRoot, STANDARD_SKILLS_DIR));
|
|
79
|
-
for (const path of manifest.skills)
|
|
80
|
-
|
|
82
|
+
for (const path of manifest.skills) {
|
|
83
|
+
// Glob policy (plan §3.4): `dir/**` walks recursively; other globs skip
|
|
84
|
+
// with a warning, never expanded; literals keep today's semantics.
|
|
85
|
+
const kind = globPathKind(path);
|
|
86
|
+
if (kind === 'unsupported') {
|
|
87
|
+
globWarnings.push(`skipped skills entry "${path}": glob patterns other than a trailing "/**" are not expanded`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (kind === 'recursive')
|
|
91
|
+
roots.push(...collectSkillDirsSync(resolve(pluginRoot, path.slice(0, -3))));
|
|
92
|
+
else
|
|
93
|
+
roots.push(resolve(pluginRoot, path));
|
|
94
|
+
}
|
|
81
95
|
return roots;
|
|
82
96
|
}
|
|
97
|
+
/** The dir plus every subdir that directly holds a `SKILL.md` (cheap `/**` walk). */
|
|
98
|
+
function collectSkillDirsSync(dir) {
|
|
99
|
+
const found = [];
|
|
100
|
+
const walk = (current) => {
|
|
101
|
+
let entries;
|
|
102
|
+
try {
|
|
103
|
+
entries = readdirSync(current, { withFileTypes: true });
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (entries.some(entry => entry.isFile() && entry.name === 'SKILL.md')) {
|
|
109
|
+
found.push(current);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
for (const entry of entries) {
|
|
113
|
+
if (entry.isDirectory())
|
|
114
|
+
walk(join(current, entry.name));
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
walk(dir);
|
|
118
|
+
return found;
|
|
119
|
+
}
|
|
83
120
|
/**
|
|
84
121
|
* Collect `SKILL.md` files from plugin skill roots. A root that itself holds
|
|
85
122
|
* `SKILL.md` is one skill (marketplace overlay listing `./skills/xlsx`);
|
package/lib/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAwB,MAAM,wBAAwB,CAAA;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE1F,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAA;AAiC3C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAmB,EAAE,CAAA;IACpC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,UAAU,CAAC,6CAA6C,CAAC,CAAA;QAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -30,6 +30,19 @@ export interface CcAgentRef {
|
|
|
30
30
|
/** Path to the agent file(s), relative to the plugin root. */
|
|
31
31
|
readonly paths: readonly string[];
|
|
32
32
|
}
|
|
33
|
+
/** One Cursor `.mdc` rule mounted through the `rules` guest seam (plan §3.3). */
|
|
34
|
+
export interface RuleEntry {
|
|
35
|
+
/** The rule file path, relative to the plugin root. */
|
|
36
|
+
readonly path: string;
|
|
37
|
+
/** Optional frontmatter `description`. */
|
|
38
|
+
readonly description: string | undefined;
|
|
39
|
+
/** Frontmatter `alwaysApply` (default false when absent or malformed). */
|
|
40
|
+
readonly alwaysApply: boolean;
|
|
41
|
+
/** Frontmatter `globs` (inline or block YAML list form; default empty). */
|
|
42
|
+
readonly globs: readonly string[];
|
|
43
|
+
/** Markdown body after the frontmatter. */
|
|
44
|
+
readonly body: string;
|
|
45
|
+
}
|
|
33
46
|
/** A Claude Code skill entry, loaded from `skills/` or an inline path. */
|
|
34
47
|
export interface CcSkillRef {
|
|
35
48
|
/** Skill directories or files, relative to the plugin root. */
|
|
@@ -43,6 +56,10 @@ export interface CcMcpServer {
|
|
|
43
56
|
export interface CcPluginManifest {
|
|
44
57
|
/** Unique kebab-case plugin identifier (must not contain spaces). */
|
|
45
58
|
readonly name: string;
|
|
59
|
+
/** Dialect of the winning manifest (plan §3.1), resolver-injected. */
|
|
60
|
+
readonly flavor: PluginFlavor;
|
|
61
|
+
/** Warnings produced during resolution (e.g. dual-manifest precedence). */
|
|
62
|
+
readonly warnings: readonly string[];
|
|
46
63
|
/** Semantic version, optional. */
|
|
47
64
|
readonly version?: string;
|
|
48
65
|
/** Brief user-facing description, optional. */
|
|
@@ -57,6 +74,11 @@ export interface CcPluginManifest {
|
|
|
57
74
|
readonly agents: readonly string[];
|
|
58
75
|
/** Skill paths from the manifest `skills` field. */
|
|
59
76
|
readonly skills: readonly string[];
|
|
77
|
+
/**
|
|
78
|
+
* Rule paths from the manifest `rules` field (Cursor dialect; stringOrArray).
|
|
79
|
+
* Parsed and retained in v1 — mounting is PR-B.
|
|
80
|
+
*/
|
|
81
|
+
readonly rules: readonly string[];
|
|
60
82
|
/**
|
|
61
83
|
* When true, do not scan the default `skills/` directory — the listed
|
|
62
84
|
* `skills` paths replace it (marketplace-root overlay).
|
|
@@ -68,11 +90,15 @@ export interface CcPluginManifest {
|
|
|
68
90
|
readonly mcpServers: Readonly<Record<string, CcMcpServer>>;
|
|
69
91
|
/** Path to an `.mcp.json` file when the manifest referenced one. */
|
|
70
92
|
readonly mcpServersPath?: string;
|
|
93
|
+
/** `.mcp.json` paths from the Cursor mcpServers ARRAY form (plan §3.4). */
|
|
94
|
+
readonly mcpServersPaths?: readonly string[];
|
|
71
95
|
/** Settings to merge on enable, allowlisted before writing. */
|
|
72
96
|
readonly settings: Readonly<Record<string, unknown>>;
|
|
73
97
|
}
|
|
98
|
+
/** Dialect of the winning manifest (plan §3.1): CC layout or Cursor layout. */
|
|
99
|
+
export type PluginFlavor = 'cc' | 'cursor';
|
|
74
100
|
/** The six component kinds a plugin can contribute. */
|
|
75
|
-
export type ComponentKind = 'commands' | 'agents' | 'skills' | 'hooks' | 'mcpServers' | 'settings';
|
|
101
|
+
export type ComponentKind = 'commands' | 'agents' | 'skills' | 'hooks' | 'mcpServers' | 'settings' | 'rules';
|
|
76
102
|
/** Per-component load outcome counts and reasons for a mount. */
|
|
77
103
|
export interface ComponentResult {
|
|
78
104
|
/** The component kind this result describes. */
|
|
@@ -90,6 +116,10 @@ export interface ComponentResult {
|
|
|
90
116
|
export interface PluginLoadReport {
|
|
91
117
|
/** The mounted plugin's manifest name. */
|
|
92
118
|
readonly name: string;
|
|
119
|
+
/** Dialect of the winning manifest. */
|
|
120
|
+
readonly flavor: PluginFlavor;
|
|
121
|
+
/** Resolution-level warnings (e.g. dual-manifest precedence); distinct from skipped reasons. */
|
|
122
|
+
readonly warnings: readonly string[];
|
|
93
123
|
/** Per-component outcome. */
|
|
94
124
|
readonly components: readonly ComponentResult[];
|
|
95
125
|
}
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kFAAkF;AAClF,MAAM,WAAW,SAAS;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C;AAED,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAED,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAA;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IAC1D,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsh-cc/plugin-loader",
|
|
3
3
|
"description": "Load Claude Code plugin.json manifests as in-memory dsh plugin mounts",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0-rc.2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/dsh-cc/dsh-cc.git",
|
|
@@ -24,10 +24,12 @@
|
|
|
24
24
|
"./package.json": "./package.json"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@dsh-cc/settings-cascade": "^0.
|
|
28
|
-
"@dsh-cc/
|
|
27
|
+
"@dsh-cc/settings-cascade": "^0.8.0-rc.2",
|
|
28
|
+
"@dsh-cc/settings-ns": "^0.8.0-rc.2",
|
|
29
|
+
"@dsh-cc/model-aliases": "^0.8.0-rc.2"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
32
|
+
"@deepseek-ai/schemastery": "link:../../../../deepseek-harness/vendor/schemastery",
|
|
31
33
|
"@deepseek-ai/dsh-commands": "link:../../../../deepseek-harness/packages/interaction/commands",
|
|
32
34
|
"@deepseek-ai/dsh-llm": "link:../../../../deepseek-harness/packages/llm/llm",
|
|
33
35
|
"@deepseek-ai/dsh-settings": "link:../../../../deepseek-harness/packages/settings/settings",
|
|
@@ -35,14 +37,15 @@
|
|
|
35
37
|
"@deepseek-ai/dsh-subagent": "link:../../../../deepseek-harness/packages/subagent/subagent",
|
|
36
38
|
"@deepseek-ai/cordis": "link:../../../../deepseek-harness/vendor/cordis",
|
|
37
39
|
"@deepseek-ai/dsh-home-paths": "link:../../../../deepseek-harness/packages/util/home-paths",
|
|
38
|
-
"@dsh-cc/claude-code-agents": "^0.
|
|
39
|
-
"@dsh-cc/
|
|
40
|
-
"@dsh-cc/
|
|
41
|
-
"@dsh-cc/
|
|
42
|
-
"@dsh-cc/
|
|
43
|
-
"@dsh-cc/tools": "^0.
|
|
40
|
+
"@dsh-cc/claude-code-agents": "^0.8.0-rc.2",
|
|
41
|
+
"@dsh-cc/hook-protocol": "^0.8.0-rc.2",
|
|
42
|
+
"@dsh-cc/model-aliases": "^0.8.0-rc.2",
|
|
43
|
+
"@dsh-cc/mcp-client": "^0.8.0-rc.2",
|
|
44
|
+
"@dsh-cc/skill-loader": "^0.8.0-rc.2",
|
|
45
|
+
"@dsh-cc/tools": "^0.8.0-rc.2"
|
|
44
46
|
},
|
|
45
47
|
"peerDependencies": {
|
|
48
|
+
"@deepseek-ai/schemastery": "^3.18.1",
|
|
46
49
|
"@deepseek-ai/dsh-commands": ">=0.1.5-rc.1",
|
|
47
50
|
"@deepseek-ai/dsh-llm": ">=0.1.5-rc.1",
|
|
48
51
|
"@deepseek-ai/dsh-settings": ">=0.1.5-rc.1",
|
|
@@ -50,11 +53,11 @@
|
|
|
50
53
|
"@deepseek-ai/dsh-subagent": ">=0.1.5-rc.1",
|
|
51
54
|
"@deepseek-ai/cordis": ">=0.1.5-rc.1",
|
|
52
55
|
"@deepseek-ai/dsh-home-paths": ">=0.1.5-rc.1",
|
|
53
|
-
"@dsh-cc/claude-code-agents": "^0.
|
|
54
|
-
"@dsh-cc/hook-protocol": "^0.
|
|
55
|
-
"@dsh-cc/
|
|
56
|
-
"@dsh-cc/
|
|
57
|
-
"@dsh-cc/tools": "^0.
|
|
56
|
+
"@dsh-cc/claude-code-agents": "^0.8.0-rc.2",
|
|
57
|
+
"@dsh-cc/hook-protocol": "^0.8.0-rc.2",
|
|
58
|
+
"@dsh-cc/mcp-client": "^0.8.0-rc.2",
|
|
59
|
+
"@dsh-cc/skill-loader": "^0.8.0-rc.2",
|
|
60
|
+
"@dsh-cc/tools": "^0.8.0-rc.2"
|
|
58
61
|
},
|
|
59
62
|
"files": [
|
|
60
63
|
"lib"
|