@modootoday/pmcp 0.7.0 → 0.8.0
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.md +40 -9
- package/dist/{catalog-5v7jrGwP.d.ts → catalog-CS0j6-0U.d.ts} +11 -11
- package/dist/{chunk-POJOFL4L.js → chunk-LUBYOET7.js} +6 -3
- package/dist/{chunk-GNJSZCRH.js → chunk-M6LBYJDS.js} +37 -2
- package/dist/{chunk-ZLELYZHL.js → chunk-OPDVUHTK.js} +2 -2
- package/dist/{chunk-NI2OLZPA.js → chunk-WSTCBVXW.js} +2 -2
- package/dist/{chunk-QHFORYIN.js → chunk-ZDV75HZN.js} +823 -365
- package/dist/cli.js +50 -11
- package/dist/http.d.ts +10 -2
- package/dist/http.js +5 -4
- package/dist/index.d.ts +119 -44
- package/dist/index.js +51 -6
- package/dist/server-CLyCpwZb.d.ts +352 -0
- package/dist/stdio.d.ts +7 -3
- package/dist/stdio.js +2 -2
- package/package.json +1 -1
- package/dist/server-wpYiAJ2n.d.ts +0 -210
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
loadEmbedder,
|
|
4
4
|
openEntryVectors
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WSTCBVXW.js";
|
|
6
6
|
import {
|
|
7
7
|
ConfigError,
|
|
8
8
|
ProjectError,
|
|
@@ -14,16 +14,18 @@ import {
|
|
|
14
14
|
readSpec,
|
|
15
15
|
renderFrontmatter,
|
|
16
16
|
spawnRunner,
|
|
17
|
-
splitFrontmatter
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
splitFrontmatter,
|
|
18
|
+
validateCatalog,
|
|
19
|
+
validateSkillDir
|
|
20
|
+
} from "./chunk-M6LBYJDS.js";
|
|
21
|
+
import "./chunk-OPDVUHTK.js";
|
|
20
22
|
import {
|
|
21
23
|
serve
|
|
22
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-LUBYOET7.js";
|
|
23
25
|
import {
|
|
24
26
|
kindOf,
|
|
25
27
|
readCatalog
|
|
26
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ZDV75HZN.js";
|
|
27
29
|
|
|
28
30
|
// src/cli/command.ts
|
|
29
31
|
var ArgumentError = class extends Error {
|
|
@@ -448,10 +450,19 @@ var listCommand = {
|
|
|
448
450
|
var serveCommand = {
|
|
449
451
|
name: "serve",
|
|
450
452
|
describe: "Run the MCP server on stdio (the default with no command)",
|
|
451
|
-
usage: "pmcp serve [--root <dir>] [--scope <prefix>] [--marketplace <dir>] [--package <dir>] [--workspace <dir>] [--config <file> | --no-config]",
|
|
452
|
-
options: [
|
|
453
|
+
usage: "pmcp serve [--root <dir>] [--scope <prefix>] [--marketplace <dir>] [--package <dir>] [--workspace <dir>] [--config <file> | --no-config] [--prompts]",
|
|
454
|
+
options: [
|
|
455
|
+
...CATALOG_OPTIONS,
|
|
456
|
+
{
|
|
457
|
+
name: "prompts",
|
|
458
|
+
describe: "Also offer one prompt per skill, for hosts that turn prompts into commands.",
|
|
459
|
+
boolean: true
|
|
460
|
+
}
|
|
461
|
+
],
|
|
453
462
|
run(context) {
|
|
454
|
-
serve(catalogOptionsFrom(context)
|
|
463
|
+
serve(catalogOptionsFrom(context), {
|
|
464
|
+
prompts: context.args.flags.has("prompts")
|
|
465
|
+
});
|
|
455
466
|
return 0;
|
|
456
467
|
}
|
|
457
468
|
};
|
|
@@ -2249,6 +2260,33 @@ var doctorCommand = {
|
|
|
2249
2260
|
}
|
|
2250
2261
|
};
|
|
2251
2262
|
|
|
2263
|
+
// src/commands/validate.ts
|
|
2264
|
+
var validateCommand = {
|
|
2265
|
+
name: "validate",
|
|
2266
|
+
describe: "Check skills against the Agent Skills specification: given directories, or every skill the catalog reaches",
|
|
2267
|
+
usage: "pmcp validate [<skill-dir>...] [--root <dir>] [--marketplace <dir>] [--package <dir>] [--workspace <dir>] [--config <file> | --no-config] [--json]",
|
|
2268
|
+
options: [
|
|
2269
|
+
...CATALOG_OPTIONS,
|
|
2270
|
+
{ name: "json", describe: "Emit JSON rather than a table.", boolean: true }
|
|
2271
|
+
],
|
|
2272
|
+
run(context) {
|
|
2273
|
+
const dirs = context.args.positional;
|
|
2274
|
+
const findings = dirs.length > 0 ? dirs.flatMap(validateSkillDir) : validateCatalog(catalogOptionsFrom(context));
|
|
2275
|
+
const errors = findings.filter((f) => f.level === "error").length;
|
|
2276
|
+
if (context.args.flags.has("json")) {
|
|
2277
|
+
context.ui.data(`${JSON.stringify({ findings }, null, 2)}
|
|
2278
|
+
`);
|
|
2279
|
+
return errors > 0 ? 1 : 0;
|
|
2280
|
+
}
|
|
2281
|
+
for (const finding of findings) {
|
|
2282
|
+
const report = finding.level === "error" ? context.ui.error : context.ui.warn;
|
|
2283
|
+
report.call(context.ui, finding.reason, finding.path);
|
|
2284
|
+
}
|
|
2285
|
+
if (findings.length === 0) context.ui.success("every skill is valid");
|
|
2286
|
+
return errors > 0 ? 1 : 0;
|
|
2287
|
+
}
|
|
2288
|
+
};
|
|
2289
|
+
|
|
2252
2290
|
// src/commands/index.ts
|
|
2253
2291
|
var COMMANDS = [
|
|
2254
2292
|
serveCommand,
|
|
@@ -2262,7 +2300,8 @@ var COMMANDS = [
|
|
|
2262
2300
|
installCommand,
|
|
2263
2301
|
syncCommand,
|
|
2264
2302
|
projectCommand,
|
|
2265
|
-
doctorCommand
|
|
2303
|
+
doctorCommand,
|
|
2304
|
+
validateCommand
|
|
2266
2305
|
];
|
|
2267
2306
|
var PLANNED = [];
|
|
2268
2307
|
var GLOBAL = /* @__PURE__ */ new Set(["-q", "--quiet", "--no-color", "--color"]);
|
|
@@ -2308,7 +2347,7 @@ function dispatch(argv, options = {}) {
|
|
|
2308
2347
|
}
|
|
2309
2348
|
return run(command, rest, { ui, env, cwd });
|
|
2310
2349
|
}
|
|
2311
|
-
var VERSION = "0.
|
|
2350
|
+
var VERSION = "0.8.0";
|
|
2312
2351
|
async function run(command, argv, context) {
|
|
2313
2352
|
try {
|
|
2314
2353
|
return await command.run({
|
package/dist/http.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { S as SkillEntry } from './catalog-
|
|
2
|
-
import { E as Embedder, S as SkillServerOptions } from './server-
|
|
1
|
+
import { S as SkillEntry } from './catalog-CS0j6-0U.js';
|
|
2
|
+
import { E as Embedder, S as SkillServerOptions } from './server-CLyCpwZb.js';
|
|
3
|
+
import 'zod';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* The optional encoder and the store for the vectors it produces.
|
|
@@ -67,6 +68,13 @@ interface SkillHttpOptions extends SkillServerOptions {
|
|
|
67
68
|
readonly challenge?: string;
|
|
68
69
|
/** Encode the catalog at start so find ranks by meaning across languages. */
|
|
69
70
|
readonly semantic?: SkillHttpSemanticOptions;
|
|
71
|
+
/** One prompt per skill. Off by default: the list grows with the catalog. */
|
|
72
|
+
readonly prompts?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Cache scope the Skills extension declares. The catalog is filtered per caller
|
|
75
|
+
* here, so "private" unless the host knows every caller sees the same list.
|
|
76
|
+
*/
|
|
77
|
+
readonly cacheScope?: "public" | "private";
|
|
70
78
|
}
|
|
71
79
|
declare const DEFAULT_TIERS: readonly string[];
|
|
72
80
|
declare function visibleTo(entries: readonly SkillEntry[], tiers: readonly string[]): SkillEntry[];
|
package/dist/http.js
CHANGED
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
DEFAULT_MODEL_ID,
|
|
3
3
|
encodeEntries,
|
|
4
4
|
loadEmbedder
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-WSTCBVXW.js";
|
|
6
|
+
import "./chunk-OPDVUHTK.js";
|
|
7
7
|
import {
|
|
8
8
|
createSkillServer,
|
|
9
9
|
readCatalog
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZDV75HZN.js";
|
|
11
11
|
|
|
12
12
|
// src/http.ts
|
|
13
13
|
import {
|
|
@@ -50,7 +50,8 @@ function createSkillHttpHandler(options) {
|
|
|
50
50
|
() => createSkillServer({
|
|
51
51
|
...options,
|
|
52
52
|
...embedder && vectors ? { embedder, vectors } : {},
|
|
53
|
-
loadCatalog: () => visibleTo(all, tiers)
|
|
53
|
+
loadCatalog: () => visibleTo(all, tiers),
|
|
54
|
+
skillsExtension: { cacheScope: options.cacheScope ?? "private" }
|
|
54
55
|
})
|
|
55
56
|
);
|
|
56
57
|
handlers.set(key, handler);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { I as IntentCache, S as SkillServerOptions, a as SkillTools } from './server-
|
|
2
|
-
export { C as CATALOG_PAGE_MAX, b as CATALOG_PAGE_SIZE, c as CallResponse, d as CatalogItem, e as CatalogResponse, D as DEFAULT_FIND_LIMIT,
|
|
3
|
-
import { S as SkillEntry } from './catalog-
|
|
4
|
-
export { a as ASSET_KINDS, A as AssetKind,
|
|
1
|
+
import { I as IntentCache, S as SkillServerOptions, a as SkillTools } from './server-CLyCpwZb.js';
|
|
2
|
+
export { B as BundleFile, C as CATALOG_PAGE_MAX, b as CATALOG_PAGE_SIZE, c as CallResponse, d as CatalogItem, e as CatalogResponse, f as Classified, D as DEFAULT_FIND_LIMIT, g as DESCRIBE_FILE_LIMIT, E as Embedder, F as FileKind, h as FindOptions, i as FindResult, j as IntentCacheStats, K as KindFilter, M as Match, R as READ_BUDGET_BYTES, k as Ranking, l as ReadResult, m as SkillBundle, n as SkillFile, o as SkillFileContent, p as SkillFileListing, q as SkillFilters, r as bundleResponseSchema, s as bundleSkill, t as catalogResponseSchema, u as classify, v as cosine, w as createSkillTools, x as describeResponseSchema, y as find, z as findResultSchema, A as isUtf8Text, G as lexicalScore, H as listSkillFiles, J as mimeOf, L as normaliseIntent, N as readSkillFile } from './server-CLyCpwZb.js';
|
|
3
|
+
import { S as SkillEntry, C as CatalogOptions } from './catalog-CS0j6-0U.js';
|
|
4
|
+
export { a as ASSET_KINDS, A as AssetKind, M as MAX_SKILL_DEPTH, b as SKIPPED_DIRS, d as displayPath, k as kindOf, r as readBody, c as readCatalog, e as readFrontmatter, w as withoutBody } from './catalog-CS0j6-0U.js';
|
|
5
5
|
import { McpServer } from '@modelcontextprotocol/server';
|
|
6
|
+
import 'zod';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Query vectors, kept on disk between sessions.
|
|
@@ -36,6 +37,25 @@ declare const DEFAULT_INTENT_CACHE_LIMIT = 4096;
|
|
|
36
37
|
*/
|
|
37
38
|
declare function openIntentCache(options: IntentCacheOptions): Promise<IntentCache | null>;
|
|
38
39
|
|
|
40
|
+
/**
|
|
41
|
+
* SKILL.md frontmatter, read as YAML the way a host reads it, and checked against
|
|
42
|
+
* the Agent Skills specification (https://agentskills.io/specification).
|
|
43
|
+
*/
|
|
44
|
+
type MetadataValue = string | readonly string[];
|
|
45
|
+
/**
|
|
46
|
+
* Parsed frontmatter. A value with an unquoted ": " is a common authoring slip
|
|
47
|
+
* the client guide says to recover from by quoting it, so that is retried once.
|
|
48
|
+
*/
|
|
49
|
+
declare function frontmatterObject(source: string): Record<string, unknown> | null;
|
|
50
|
+
declare const NAME_MAX = 64;
|
|
51
|
+
declare const DESCRIPTION_MAX = 1024;
|
|
52
|
+
declare const COMPATIBILITY_MAX = 500;
|
|
53
|
+
/**
|
|
54
|
+
* What the specification requires of one SKILL.md, as messages; empty when valid.
|
|
55
|
+
* directory is the name of the folder holding it.
|
|
56
|
+
*/
|
|
57
|
+
declare function specProblems(front: Record<string, unknown> | null, directory: string): string[];
|
|
58
|
+
|
|
39
59
|
/**
|
|
40
60
|
* Assets laid out as an agent plugin marketplace: a directory holding
|
|
41
61
|
* `.claude-plugin/marketplace.json`, whose plugins keep skills, commands,
|
|
@@ -43,16 +63,12 @@ declare function openIntentCache(options: IntentCacheOptions): Promise<IntentCac
|
|
|
43
63
|
* package.json is involved, which is why the node_modules walk never saw them.
|
|
44
64
|
*/
|
|
45
65
|
|
|
46
|
-
type MetadataValue = string | readonly string[];
|
|
47
66
|
/** Why an asset was left out rather than served. */
|
|
48
67
|
interface Rejection {
|
|
49
68
|
readonly path: string;
|
|
50
69
|
readonly reason: string;
|
|
51
70
|
}
|
|
52
|
-
/**
|
|
53
|
-
* The `metadata:` block of a frontmatter, one level deep: scalars and inline
|
|
54
|
-
* lists. Deeper nesting is skipped rather than half-read.
|
|
55
|
-
*/
|
|
71
|
+
/** The `metadata:` map of a frontmatter, one level deep: strings and string lists. */
|
|
56
72
|
declare function readMetadata(source: string): Record<string, MetadataValue>;
|
|
57
73
|
/** The raw frontmatter text between the fences, for skill_describe. */
|
|
58
74
|
declare function readFrontmatterText(source: string): string;
|
|
@@ -200,7 +216,7 @@ interface RunResult {
|
|
|
200
216
|
}
|
|
201
217
|
type Runner = (command: string, args: readonly string[], cwd: string) => RunResult;
|
|
202
218
|
type Status = "ok" | "fail" | "skip";
|
|
203
|
-
interface Finding {
|
|
219
|
+
interface Finding$1 {
|
|
204
220
|
readonly tool: Tool | "project";
|
|
205
221
|
readonly check: string;
|
|
206
222
|
readonly status: Status;
|
|
@@ -211,7 +227,7 @@ interface DoctorOptions {
|
|
|
211
227
|
readonly home: string;
|
|
212
228
|
readonly only?: ReadonlySet<Tool>;
|
|
213
229
|
}
|
|
214
|
-
declare function doctor(spec: ProjectSpec, options: DoctorOptions): Finding[];
|
|
230
|
+
declare function doctor(spec: ProjectSpec, options: DoctorOptions): Finding$1[];
|
|
215
231
|
|
|
216
232
|
/**
|
|
217
233
|
* Links each package's path-scoped rule file into .claude/rules/<dir>/. One level
|
|
@@ -225,60 +241,119 @@ declare class ProjectError extends Error {
|
|
|
225
241
|
declare function deriveName(dir: string, strip: readonly string[]): string;
|
|
226
242
|
|
|
227
243
|
/**
|
|
228
|
-
*
|
|
244
|
+
* One catalog skill as the Skills extension (SEP-2640) describes it: frontmatter
|
|
245
|
+
* plus a complete manifest of its files with sha256 digests and sizes.
|
|
246
|
+
*/
|
|
247
|
+
|
|
248
|
+
interface SkillResource {
|
|
249
|
+
readonly uri: string;
|
|
250
|
+
readonly digest: string;
|
|
251
|
+
readonly size: number;
|
|
252
|
+
}
|
|
253
|
+
interface SkillExtensionEntry {
|
|
254
|
+
readonly uri: string;
|
|
255
|
+
readonly frontmatter: Readonly<Record<string, unknown>>;
|
|
256
|
+
readonly resources: readonly SkillResource[];
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* The extension's entry, or null when the skill cannot be served under SEP-2640:
|
|
260
|
+
* not a directory with SKILL.md, frontmatter that breaks the Agent Skills
|
|
261
|
+
* specification, a name unlike its path, or over the per-skill limits. Such a
|
|
262
|
+
* skill stays reachable through the skill_* tools.
|
|
263
|
+
*/
|
|
264
|
+
declare function extensionEntry(entry: SkillEntry): SkillExtensionEntry | null;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* The Skills extension's methods, skills/list and skills/get. Their files are
|
|
268
|
+
* served by the skill:// resources (resources.ts), which every surface shares.
|
|
269
|
+
*/
|
|
270
|
+
|
|
271
|
+
declare const SKILLS_EXTENSION = "io.modelcontextprotocol/skills";
|
|
272
|
+
interface SkillsExtensionOptions {
|
|
273
|
+
/**
|
|
274
|
+
* "public" when every caller sees the same catalog; "private" when the list is
|
|
275
|
+
* filtered per caller, as it is behind authorization.
|
|
276
|
+
*/
|
|
277
|
+
readonly cacheScope?: "public" | "private";
|
|
278
|
+
}
|
|
279
|
+
/** Declares the extension and its methods. Must run before the server connects. */
|
|
280
|
+
declare function registerSkillsExtension(server: McpServer, skills: () => readonly SkillEntry[], options?: SkillsExtensionOptions): void;
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* skill:// URIs for skill files. The authority names this server's namespace and
|
|
284
|
+
* resolves to nothing; the path is the catalog name, then the file inside it.
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
declare const skillFileUri: (entry: Pick<SkillEntry, "name">, file?: string) => string;
|
|
288
|
+
/**
|
|
289
|
+
* The catalog entry and relative file a URI names, matched against the entries
|
|
290
|
+
* the caller may see. Names contain slashes, so the longest matching name wins.
|
|
291
|
+
*/
|
|
292
|
+
declare function resolveSkillFileUri(uri: string, entries: readonly SkillEntry[]): {
|
|
293
|
+
entry: SkillEntry;
|
|
294
|
+
file: string;
|
|
295
|
+
} | null;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* The catalog, spoken over MCP: the skill_* tools, skill:// resources, the
|
|
299
|
+
* Skills extension and, when asked for, one prompt per skill.
|
|
229
300
|
*
|
|
230
|
-
* Thin on purpose: every decision is in
|
|
231
|
-
*
|
|
232
|
-
* operations from a hook or a script uses the tools directly and never speaks
|
|
233
|
-
* a protocol.
|
|
301
|
+
* Thin on purpose: every decision is in createSkillTools and the modules under
|
|
302
|
+
* tools/ and files/; this file only composes them on one server.
|
|
234
303
|
*/
|
|
235
304
|
|
|
236
305
|
/** Reported to the host on connect. */
|
|
237
306
|
declare const SERVER_NAME = "pmcp";
|
|
307
|
+
declare const SERVER_VERSION = "0.8.0";
|
|
238
308
|
/**
|
|
239
|
-
* Registers the
|
|
309
|
+
* Registers the skill_* tools on a server.
|
|
240
310
|
*
|
|
241
311
|
* Exported separately from the stdio entry so a consumer already running an MCP
|
|
242
312
|
* server can add these to it rather than starting a second process.
|
|
243
313
|
*/
|
|
244
314
|
declare function registerSkillTools(server: McpServer, tools: SkillTools): McpServer;
|
|
315
|
+
interface SkillMcpOptions extends SkillServerOptions {
|
|
316
|
+
/** One prompt per skill, for hosts that offer prompts as commands. Off by default. */
|
|
317
|
+
readonly prompts?: boolean;
|
|
318
|
+
readonly skillsExtension?: SkillsExtensionOptions;
|
|
319
|
+
}
|
|
245
320
|
/**
|
|
246
|
-
* A server with
|
|
321
|
+
* A server with everything registered.
|
|
247
322
|
*
|
|
248
323
|
* The catalog is read on first use rather than here, so a host that connects
|
|
249
324
|
* and never asks pays nothing for the walk.
|
|
250
325
|
*/
|
|
251
|
-
declare function createSkillServer(options:
|
|
326
|
+
declare function createSkillServer(options: SkillMcpOptions): McpServer;
|
|
252
327
|
|
|
253
|
-
/**
|
|
254
|
-
* The MCP Skills extension (SEP-2640): `skills/list`, `skills/get` and the
|
|
255
|
-
* skill files as `skill://pmcp/<name>/<file>` resources, so a host that speaks
|
|
256
|
-
* the extension loads skills natively instead of through the skill_* tools.
|
|
257
|
-
*/
|
|
328
|
+
/** Checks skill directories against the Agent Skills specification. */
|
|
258
329
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
readonly
|
|
262
|
-
|
|
263
|
-
readonly
|
|
264
|
-
}
|
|
265
|
-
interface SkillExtensionEntry {
|
|
266
|
-
readonly uri: string;
|
|
267
|
-
readonly frontmatter: Readonly<Record<string, unknown>>;
|
|
268
|
-
readonly resources: readonly SkillResource[];
|
|
330
|
+
interface Finding {
|
|
331
|
+
readonly path: string;
|
|
332
|
+
readonly reason: string;
|
|
333
|
+
/** error: the skill is left out or breaks a MUST; warning: served anyway. */
|
|
334
|
+
readonly level: "error" | "warning";
|
|
269
335
|
}
|
|
270
|
-
|
|
336
|
+
/** One skill directory, or the SKILL.md inside it. */
|
|
337
|
+
declare function validateSkillDir(dir: string): Finding[];
|
|
338
|
+
/** Every skill the catalog options reach, with what loading reported. */
|
|
339
|
+
declare function validateCatalog(options: CatalogOptions): Finding[];
|
|
340
|
+
|
|
271
341
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
* Such a skill stays reachable through the skill_* tools.
|
|
342
|
+
* skill:// resources: every file of every skill the caller may see. The tools,
|
|
343
|
+
* the Skills extension and resource links all resolve here, over the same
|
|
344
|
+
* caller-filtered catalog, so nothing a caller cannot list can be read.
|
|
276
345
|
*/
|
|
277
|
-
|
|
346
|
+
|
|
347
|
+
declare function registerSkillResources(server: McpServer, skills: () => readonly SkillEntry[]): void;
|
|
348
|
+
|
|
278
349
|
/**
|
|
279
|
-
*
|
|
280
|
-
*
|
|
350
|
+
* One prompt per skill, for hosts that offer prompts as commands: the Agent
|
|
351
|
+
* Skills "user-explicit activation" path. Off unless the host asks for it,
|
|
352
|
+
* because the list grows with the catalog.
|
|
281
353
|
*/
|
|
282
|
-
declare function registerSkillsExtension(server: McpServer, skills: () => readonly SkillEntry[]): void;
|
|
283
354
|
|
|
284
|
-
|
|
355
|
+
/** Prompt names travel into host command names, so they stay to a plain set. */
|
|
356
|
+
declare const promptName: (entry: Pick<SkillEntry, "name">) => string;
|
|
357
|
+
declare function registerSkillPrompts(server: McpServer, tools: SkillTools): void;
|
|
358
|
+
|
|
359
|
+
export { COMPATIBILITY_MAX, CONFIG_FILE, CatalogOptions, type CatalogSection, ConfigError, DEFAULT_INTENT_CACHE_LIMIT, DESCRIPTION_MAX, type Finding$1 as Finding, IntentCache, type IntentCacheOptions, LOCK_FILE, type McpServerSpec, type MetadataValue, NAME_MAX, type Output, type PackageRulesSpec, type ProjectConfig, ProjectError, type ProjectResult, type ProjectSpec, type Rejection, type Runner, SERVER_NAME, SERVER_VERSION, SKILLS_EXTENSION, SkillEntry, type SkillExtensionEntry, type SkillMcpOptions, type SkillResource, SkillServerOptions, SkillTools, TOOLS, type Tool, type Finding as ValidationFinding, assetRoot, createSkillServer, deadGlobs, deriveName, doctor, extensionEntry, findConfig, openIntentCache, frontmatterObject as parseSkillFrontmatter, plan, project, promptName, readConfig, readFrontmatterText, readMarketplace, readMetadata, readSpec, registerSkillPrompts, registerSkillResources, registerSkillTools, registerSkillsExtension, resolveSkillFileUri, skillFileUri, skillFileUri as skillUri, specProblems, validateCatalog, validateSkillDir };
|
package/dist/index.js
CHANGED
|
@@ -11,78 +11,115 @@ import {
|
|
|
11
11
|
plan,
|
|
12
12
|
project,
|
|
13
13
|
readConfig,
|
|
14
|
-
readSpec
|
|
15
|
-
|
|
14
|
+
readSpec,
|
|
15
|
+
validateCatalog,
|
|
16
|
+
validateSkillDir
|
|
17
|
+
} from "./chunk-M6LBYJDS.js";
|
|
16
18
|
import {
|
|
17
19
|
DEFAULT_INTENT_CACHE_LIMIT,
|
|
18
20
|
openIntentCache
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-OPDVUHTK.js";
|
|
20
22
|
import {
|
|
21
23
|
ASSET_KINDS,
|
|
22
24
|
CATALOG_PAGE_MAX,
|
|
23
25
|
CATALOG_PAGE_SIZE,
|
|
26
|
+
COMPATIBILITY_MAX,
|
|
24
27
|
DEFAULT_FIND_LIMIT,
|
|
25
28
|
DESCRIBE_FILE_LIMIT,
|
|
29
|
+
DESCRIPTION_MAX,
|
|
26
30
|
MAX_SKILL_DEPTH,
|
|
31
|
+
NAME_MAX,
|
|
27
32
|
READ_BUDGET_BYTES,
|
|
28
33
|
SERVER_NAME,
|
|
34
|
+
SERVER_VERSION,
|
|
29
35
|
SKILLS_EXTENSION,
|
|
30
36
|
SKIPPED_DIRS,
|
|
31
37
|
assetRoot,
|
|
38
|
+
bundleResponseSchema,
|
|
39
|
+
bundleSkill,
|
|
40
|
+
catalogResponseSchema,
|
|
41
|
+
classify,
|
|
32
42
|
cosine,
|
|
33
43
|
createSkillServer,
|
|
34
44
|
createSkillTools,
|
|
45
|
+
describeResponseSchema,
|
|
35
46
|
displayPath,
|
|
36
47
|
extensionEntry,
|
|
37
48
|
find,
|
|
49
|
+
findResultSchema,
|
|
50
|
+
frontmatterObject,
|
|
51
|
+
isUtf8Text,
|
|
38
52
|
kindOf,
|
|
39
53
|
lexicalScore,
|
|
54
|
+
listSkillFiles,
|
|
55
|
+
mimeOf,
|
|
40
56
|
normaliseIntent,
|
|
57
|
+
promptName,
|
|
41
58
|
readBody,
|
|
42
59
|
readCatalog,
|
|
43
60
|
readFrontmatter,
|
|
44
61
|
readFrontmatterText,
|
|
45
62
|
readMarketplace,
|
|
46
63
|
readMetadata,
|
|
64
|
+
readSkillFile,
|
|
65
|
+
registerSkillPrompts,
|
|
66
|
+
registerSkillResources,
|
|
47
67
|
registerSkillTools,
|
|
48
68
|
registerSkillsExtension,
|
|
49
|
-
|
|
69
|
+
resolveSkillFileUri,
|
|
70
|
+
skillFileUri,
|
|
71
|
+
specProblems,
|
|
50
72
|
withoutBody
|
|
51
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-ZDV75HZN.js";
|
|
52
74
|
export {
|
|
53
75
|
ASSET_KINDS,
|
|
54
76
|
CATALOG_PAGE_MAX,
|
|
55
77
|
CATALOG_PAGE_SIZE,
|
|
78
|
+
COMPATIBILITY_MAX,
|
|
56
79
|
CONFIG_FILE,
|
|
57
80
|
ConfigError,
|
|
58
81
|
DEFAULT_FIND_LIMIT,
|
|
59
82
|
DEFAULT_INTENT_CACHE_LIMIT,
|
|
60
83
|
DESCRIBE_FILE_LIMIT,
|
|
84
|
+
DESCRIPTION_MAX,
|
|
61
85
|
LOCK_FILE,
|
|
62
86
|
MAX_SKILL_DEPTH,
|
|
87
|
+
NAME_MAX,
|
|
63
88
|
ProjectError,
|
|
64
89
|
READ_BUDGET_BYTES,
|
|
65
90
|
SERVER_NAME,
|
|
91
|
+
SERVER_VERSION,
|
|
66
92
|
SKILLS_EXTENSION,
|
|
67
93
|
SKIPPED_DIRS,
|
|
68
94
|
TOOLS,
|
|
69
95
|
assetRoot,
|
|
96
|
+
bundleResponseSchema,
|
|
97
|
+
bundleSkill,
|
|
98
|
+
catalogResponseSchema,
|
|
99
|
+
classify,
|
|
70
100
|
cosine,
|
|
71
101
|
createSkillServer,
|
|
72
102
|
createSkillTools,
|
|
73
103
|
deadGlobs,
|
|
74
104
|
deriveName,
|
|
105
|
+
describeResponseSchema,
|
|
75
106
|
displayPath,
|
|
76
107
|
doctor,
|
|
77
108
|
extensionEntry,
|
|
78
109
|
find,
|
|
79
110
|
findConfig,
|
|
111
|
+
findResultSchema,
|
|
112
|
+
isUtf8Text,
|
|
80
113
|
kindOf,
|
|
81
114
|
lexicalScore,
|
|
115
|
+
listSkillFiles,
|
|
116
|
+
mimeOf,
|
|
82
117
|
normaliseIntent,
|
|
83
118
|
openIntentCache,
|
|
119
|
+
frontmatterObject as parseSkillFrontmatter,
|
|
84
120
|
plan,
|
|
85
121
|
project,
|
|
122
|
+
promptName,
|
|
86
123
|
readBody,
|
|
87
124
|
readCatalog,
|
|
88
125
|
readConfig,
|
|
@@ -90,10 +127,18 @@ export {
|
|
|
90
127
|
readFrontmatterText,
|
|
91
128
|
readMarketplace,
|
|
92
129
|
readMetadata,
|
|
130
|
+
readSkillFile,
|
|
93
131
|
readSpec,
|
|
132
|
+
registerSkillPrompts,
|
|
133
|
+
registerSkillResources,
|
|
94
134
|
registerSkillTools,
|
|
95
135
|
registerSkillsExtension,
|
|
96
|
-
|
|
136
|
+
resolveSkillFileUri,
|
|
137
|
+
skillFileUri,
|
|
138
|
+
skillFileUri as skillUri,
|
|
139
|
+
specProblems,
|
|
140
|
+
validateCatalog,
|
|
141
|
+
validateSkillDir,
|
|
97
142
|
withoutBody
|
|
98
143
|
};
|
|
99
144
|
//# sourceMappingURL=index.js.map
|