@stigmer/plugin-package 3.16.0 → 3.17.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.
Files changed (86) hide show
  1. package/client/archive.d.ts +27 -0
  2. package/client/archive.d.ts.map +1 -0
  3. package/client/archive.js +38 -0
  4. package/client/archive.js.map +1 -0
  5. package/client/ignore/defaults.d.ts +2 -0
  6. package/client/ignore/defaults.d.ts.map +1 -0
  7. package/client/ignore/defaults.js +140 -0
  8. package/client/ignore/defaults.js.map +1 -0
  9. package/client/ignore/match.d.ts +3 -0
  10. package/client/ignore/match.d.ts.map +1 -0
  11. package/client/ignore/match.js +166 -0
  12. package/client/ignore/match.js.map +1 -0
  13. package/client/ignore/matcher.d.ts +50 -0
  14. package/client/ignore/matcher.d.ts.map +1 -0
  15. package/client/ignore/matcher.js +116 -0
  16. package/client/ignore/matcher.js.map +1 -0
  17. package/client/ignore/pattern.d.ts +13 -0
  18. package/client/ignore/pattern.d.ts.map +1 -0
  19. package/client/ignore/pattern.js +118 -0
  20. package/client/ignore/pattern.js.map +1 -0
  21. package/client/refs.d.ts +76 -0
  22. package/client/refs.d.ts.map +1 -0
  23. package/client/refs.js +123 -0
  24. package/client/refs.js.map +1 -0
  25. package/client/select.d.ts +74 -0
  26. package/client/select.d.ts.map +1 -0
  27. package/client/select.js +121 -0
  28. package/client/select.js.map +1 -0
  29. package/client/vocabulary.d.ts +13 -0
  30. package/client/vocabulary.d.ts.map +1 -0
  31. package/client/vocabulary.js +17 -0
  32. package/client/vocabulary.js.map +1 -0
  33. package/client.d.ts +34 -0
  34. package/client.d.ts.map +1 -0
  35. package/client.js +34 -0
  36. package/client.js.map +1 -0
  37. package/files.d.ts +6 -0
  38. package/files.d.ts.map +1 -1
  39. package/files.js +6 -0
  40. package/files.js.map +1 -1
  41. package/index.d.ts +11 -6
  42. package/index.d.ts.map +1 -1
  43. package/index.js +9 -5
  44. package/index.js.map +1 -1
  45. package/marketplace/messages.d.ts +20 -0
  46. package/marketplace/messages.d.ts.map +1 -0
  47. package/marketplace/messages.js +50 -0
  48. package/marketplace/messages.js.map +1 -0
  49. package/marketplace/outcome.d.ts +72 -0
  50. package/marketplace/outcome.d.ts.map +1 -0
  51. package/marketplace/outcome.js +29 -0
  52. package/marketplace/outcome.js.map +1 -0
  53. package/marketplace/read-marketplace.d.ts +34 -0
  54. package/marketplace/read-marketplace.d.ts.map +1 -0
  55. package/marketplace/read-marketplace.js +359 -0
  56. package/marketplace/read-marketplace.js.map +1 -0
  57. package/messages.d.ts +25 -9
  58. package/messages.d.ts.map +1 -1
  59. package/messages.js +24 -8
  60. package/messages.js.map +1 -1
  61. package/outcome.d.ts +13 -6
  62. package/outcome.d.ts.map +1 -1
  63. package/package.json +8 -2
  64. package/src/__test-utils__/read.ts +4 -4
  65. package/src/__tests__/client-ignore.test.ts +133 -0
  66. package/src/__tests__/client-refs.test.ts +101 -0
  67. package/src/__tests__/client-select-archive.test.ts +152 -0
  68. package/src/__tests__/fixtures/cursor-plugins/.cursor-plugin/marketplace.json +412 -0
  69. package/src/__tests__/fixtures/cursor-plugins/NOTICE +5 -0
  70. package/src/__tests__/marketplace.test.ts +373 -0
  71. package/src/client/archive.ts +44 -0
  72. package/src/client/ignore/defaults.ts +155 -0
  73. package/src/client/ignore/match.ts +158 -0
  74. package/src/client/ignore/matcher.ts +156 -0
  75. package/src/client/ignore/pattern.ts +131 -0
  76. package/src/client/refs.ts +170 -0
  77. package/src/client/select.ts +161 -0
  78. package/src/client/vocabulary.ts +19 -0
  79. package/src/client.ts +67 -0
  80. package/src/files.ts +6 -0
  81. package/src/index.ts +21 -5
  82. package/src/marketplace/messages.ts +62 -0
  83. package/src/marketplace/outcome.ts +95 -0
  84. package/src/marketplace/read-marketplace.ts +402 -0
  85. package/src/messages.ts +34 -21
  86. package/src/outcome.ts +14 -6
@@ -0,0 +1,359 @@
1
+ /**
2
+ * The marketplace entry: a `PluginFiles` over a marketplace tree in, a
3
+ * `MarketplaceReadOutcome` out.
4
+ *
5
+ * The read is a fixed sequence, like the plugin read: locate the marketplace
6
+ * file (first present in the dialect precedence, and only that one is read;
7
+ * a tree that carries two dialects' files describes one catalogue twice);
8
+ * parse it under the marketplace cap; read the dialect's shape into the one
9
+ * normalised shape; validate names and sources; drop the entries the tree
10
+ * cannot install, each with its own warning; resolve the defaults. Findings
11
+ * are collected and the read continues, so the outcome names every problem
12
+ * at once, and the marketplace is returned only when nothing refused.
13
+ *
14
+ * Sources. Every dialect names a plugin's directory relative to the
15
+ * marketplace root (Claude and Codex with a `./` prefix, Cursor without,
16
+ * Claude optionally under `metadata.pluginRoot`); the reader accepts both
17
+ * spellings and refuses a path that escapes the root. A source that is not
18
+ * such a directory (Claude's `github`, `url`, `npm` and `git-subdir` objects,
19
+ * Codex's non-`local` sources, Cursor's remote URLs) is a form this reader
20
+ * does not fetch: the entry is dropped with `entry-source-unsupported`, and
21
+ * nothing is invented in its place.
22
+ *
23
+ * This reader does not open the plugins it lists. A consumer that wants an
24
+ * entry's own description or version reads that directory with
25
+ * `readPluginPackage`; a consumer that wants to install it hands the same
26
+ * directory to the walker it already uses. Keeping the two reads apart is
27
+ * what lets a catalogue of eighty entries be listed without eighty reads.
28
+ */
29
+ import { hasPluginManifest, isValidPluginName } from "../detect.js";
30
+ import { describeValue, isJsonObject, isStringArray } from "../documents.js";
31
+ import { decodeUtf8, isContainedPath, PLUGIN_DOCUMENT_LIMITS, PluginFileIndex } from "../files.js";
32
+ import { MARKETPLACE_LOCATIONS, MarketplaceFindings } from "./messages.js";
33
+ /** The precedence the reader applies when a tree carries more than one marketplace file. */
34
+ const DIALECT_PRECEDENCE = ["stigmer", "claude", "cursor", "codex"];
35
+ /** Codex's per-entry install policy that marks a default. */
36
+ const CODEX_INSTALLED_BY_DEFAULT = "INSTALLED_BY_DEFAULT";
37
+ /** True when the tree holds any of the four marketplace files; the CLI's routing test. */
38
+ export function hasMarketplaceFile(paths) {
39
+ const locations = new Set(Object.values(MARKETPLACE_LOCATIONS));
40
+ for (const path of paths)
41
+ if (locations.has(path))
42
+ return true;
43
+ return false;
44
+ }
45
+ export function readMarketplace(files) {
46
+ const findings = new MarketplaceFindings();
47
+ const index = new PluginFileIndex(files);
48
+ const located = locate(index);
49
+ if (located === undefined) {
50
+ findings.error("marketplace-not-found");
51
+ return refused(findings);
52
+ }
53
+ const { dialect, path } = located;
54
+ const object = readObject(index, path, findings);
55
+ if (object === undefined)
56
+ return refused(findings);
57
+ const name = readName(object, path, findings);
58
+ const raw = readEntries(object, dialect, path, findings);
59
+ const entries = offeredEntries(raw, index, path, findings);
60
+ const defaults = resolveDefaults(object, raw, entries, dialect, path, findings);
61
+ if (findings.errors.length > 0 || name === undefined)
62
+ return refused(findings);
63
+ const description = readDescription(object, dialect);
64
+ const owner = readOwner(object);
65
+ const marketplace = {
66
+ name,
67
+ ...(description !== undefined && { description }),
68
+ ...(owner !== undefined && { owner }),
69
+ dialect,
70
+ path,
71
+ plugins: entries,
72
+ defaults,
73
+ };
74
+ return { ok: true, marketplace, warnings: findings.warnings };
75
+ }
76
+ function refused(findings) {
77
+ return { ok: false, errors: findings.errors, warnings: findings.warnings };
78
+ }
79
+ function locate(index) {
80
+ for (const dialect of DIALECT_PRECEDENCE) {
81
+ const path = MARKETPLACE_LOCATIONS[dialect];
82
+ if (index.has(path))
83
+ return { dialect, path };
84
+ }
85
+ return undefined;
86
+ }
87
+ function readObject(index, path, findings) {
88
+ const limit = PLUGIN_DOCUMENT_LIMITS.marketplace;
89
+ const entry = index.entry(path);
90
+ if (entry === undefined) {
91
+ throw new Error(`marketplace file '${path}' is not listed`);
92
+ }
93
+ if (entry.size > limit) {
94
+ findings.error("marketplace-too-large", { path, subject: String(entry.size), detail: String(limit) });
95
+ return undefined;
96
+ }
97
+ const bytes = index.files.read(path);
98
+ if (bytes.length > limit) {
99
+ findings.error("marketplace-too-large", { path, subject: String(bytes.length), detail: String(limit) });
100
+ return undefined;
101
+ }
102
+ let value;
103
+ try {
104
+ value = JSON.parse(decodeUtf8(bytes));
105
+ }
106
+ catch (error) {
107
+ findings.error("marketplace-unreadable", { path, detail: error instanceof Error ? error.message : String(error) });
108
+ return undefined;
109
+ }
110
+ if (!isJsonObject(value)) {
111
+ findings.error("marketplace-unreadable", { path, detail: "the document is not a JSON object" });
112
+ return undefined;
113
+ }
114
+ return value;
115
+ }
116
+ /** The marketplace's own name, validated under the plugin name rule (the same characters an install ref can carry). */
117
+ function readName(object, path, findings) {
118
+ const value = object["name"];
119
+ if (value === undefined) {
120
+ findings.error("marketplace-name-missing", { path });
121
+ return undefined;
122
+ }
123
+ if (typeof value !== "string") {
124
+ findings.error("marketplace-field-type", { path, subject: "name", detail: "a string" });
125
+ return undefined;
126
+ }
127
+ if (!isValidPluginName(value)) {
128
+ findings.error("marketplace-name-invalid", { path, subject: value });
129
+ return undefined;
130
+ }
131
+ return value;
132
+ }
133
+ function readDescription(object, dialect) {
134
+ switch (dialect) {
135
+ case "stigmer":
136
+ return optionalStringOf(object, "description");
137
+ case "claude":
138
+ case "cursor": {
139
+ const metadata = object["metadata"];
140
+ return isJsonObject(metadata) ? optionalStringOf(metadata, "description") : undefined;
141
+ }
142
+ case "codex":
143
+ // Codex's `interface.displayName` is a label for a picker, not a description.
144
+ return undefined;
145
+ default: {
146
+ const exhaustive = dialect;
147
+ return exhaustive;
148
+ }
149
+ }
150
+ }
151
+ function readOwner(object) {
152
+ const value = object["owner"];
153
+ if (!isJsonObject(value))
154
+ return undefined;
155
+ const name = optionalStringOf(value, "name");
156
+ const email = optionalStringOf(value, "email");
157
+ const url = optionalStringOf(value, "url");
158
+ if (name === undefined && email === undefined && url === undefined)
159
+ return undefined;
160
+ return {
161
+ ...(name !== undefined && { name }),
162
+ ...(email !== undefined && { email }),
163
+ ...(url !== undefined && { url }),
164
+ };
165
+ }
166
+ /** A string field or `undefined`; a field of another type is treated as absent (metadata never refuses a catalogue). */
167
+ function optionalStringOf(object, field) {
168
+ const value = object[field];
169
+ return typeof value === "string" ? value : undefined;
170
+ }
171
+ function readEntries(object, dialect, path, findings) {
172
+ const list = object["plugins"];
173
+ if (list === undefined) {
174
+ findings.error("marketplace-plugins-missing", { path });
175
+ return [];
176
+ }
177
+ if (!Array.isArray(list)) {
178
+ findings.error("marketplace-field-type", { path, subject: "plugins", detail: "an array" });
179
+ return [];
180
+ }
181
+ const pluginRoot = dialect === "claude" ? claudePluginRoot(object) : "";
182
+ const entries = [];
183
+ const seen = new Set();
184
+ list.forEach((item, position) => {
185
+ if (!isJsonObject(item)) {
186
+ findings.error("entry-shape", { path, subject: String(position) });
187
+ return;
188
+ }
189
+ const name = item["name"];
190
+ if (name === undefined) {
191
+ findings.error("entry-name-missing", { path, subject: String(position) });
192
+ return;
193
+ }
194
+ if (typeof name !== "string" || !isValidPluginName(name)) {
195
+ findings.error("entry-name-invalid", { path, subject: describeValue(name) });
196
+ return;
197
+ }
198
+ if (seen.has(name)) {
199
+ findings.error("entry-name-duplicate", { path, subject: name });
200
+ return;
201
+ }
202
+ seen.add(name);
203
+ const description = optionalStringOf(item, "description");
204
+ entries.push({
205
+ name,
206
+ dir: resolveSource(item["source"], name, pluginRoot, path, findings),
207
+ ...(description !== undefined && { description }),
208
+ installedByDefault: dialect === "codex" && codexInstalledByDefault(item),
209
+ });
210
+ });
211
+ return entries;
212
+ }
213
+ /** Claude's `metadata.pluginRoot`, prepended to every relative source; the empty string when absent or unusable. */
214
+ function claudePluginRoot(object) {
215
+ const metadata = object["metadata"];
216
+ if (!isJsonObject(metadata))
217
+ return "";
218
+ const root = optionalStringOf(metadata, "pluginRoot");
219
+ if (root === undefined)
220
+ return "";
221
+ const resolved = relativeDirectory(root);
222
+ return resolved.ok ? resolved.dir : "";
223
+ }
224
+ function codexInstalledByDefault(item) {
225
+ const policy = item["policy"];
226
+ return isJsonObject(policy) && policy["installation"] === CODEX_INSTALLED_BY_DEFAULT;
227
+ }
228
+ /**
229
+ * A source becomes a marketplace-relative directory or nothing. A string is
230
+ * a relative directory (with or without `./`) unless it is a URL; Codex's
231
+ * `{source: "local", path}` object is the same directory; every other
232
+ * object form is a remote this reader does not fetch.
233
+ */
234
+ function resolveSource(source, entryName, pluginRoot, path, findings) {
235
+ if (source === undefined) {
236
+ findings.error("entry-source-missing", { path, subject: entryName });
237
+ return undefined;
238
+ }
239
+ let candidate;
240
+ if (typeof source === "string") {
241
+ if (isUrl(source)) {
242
+ findings.warn("entry-source-unsupported", { path, subject: entryName, detail: source });
243
+ return undefined;
244
+ }
245
+ candidate = source;
246
+ }
247
+ else if (isJsonObject(source) && source["source"] === "local" && typeof source["path"] === "string") {
248
+ candidate = source["path"];
249
+ }
250
+ else {
251
+ findings.warn("entry-source-unsupported", { path, subject: entryName, detail: describeSource(source) });
252
+ return undefined;
253
+ }
254
+ const resolved = relativeDirectory(candidate);
255
+ if (!resolved.ok) {
256
+ findings.error("entry-source-escapes-root", { path, subject: entryName, detail: candidate });
257
+ return undefined;
258
+ }
259
+ return joinDirectories(pluginRoot, resolved.dir);
260
+ }
261
+ /** The `source` discriminator of a remote object, or the whole value, for the sentence. */
262
+ function describeSource(source) {
263
+ if (isJsonObject(source) && typeof source["source"] === "string")
264
+ return source["source"];
265
+ return describeValue(source);
266
+ }
267
+ function isUrl(value) {
268
+ return /^[a-z][a-z0-9+.-]*:\/\//i.test(value);
269
+ }
270
+ /**
271
+ * `./thermos`, `thermos`, `third_party/github/`, `.` and `./` all name a
272
+ * directory inside the root (the root itself is the empty string); an
273
+ * absolute path, a backslash, or a `..` segment does not.
274
+ */
275
+ function relativeDirectory(value) {
276
+ let trimmed = value;
277
+ if (trimmed === "." || trimmed === "./")
278
+ return { ok: true, dir: "" };
279
+ if (trimmed.startsWith("./"))
280
+ trimmed = trimmed.slice(2);
281
+ trimmed = trimmed.replace(/\/+$/, "");
282
+ if (trimmed === "")
283
+ return { ok: true, dir: "" };
284
+ return isContainedPath(trimmed) ? { ok: true, dir: trimmed } : { ok: false };
285
+ }
286
+ function joinDirectories(root, dir) {
287
+ if (root === "")
288
+ return dir;
289
+ return dir === "" ? root : `${root}/${dir}`;
290
+ }
291
+ /** The entries the tree can install: a directory that exists and holds a plugin manifest at its root. */
292
+ function offeredEntries(raw, index, path, findings) {
293
+ const offered = [];
294
+ for (const entry of raw) {
295
+ if (entry.dir === undefined)
296
+ continue;
297
+ if (!index.isDirectory(entry.dir)) {
298
+ findings.warn("entry-directory-missing", { path, subject: entry.name, detail: entry.dir === "" ? "." : entry.dir });
299
+ continue;
300
+ }
301
+ if (!hasPluginManifest(childFilesOf(index, entry.dir))) {
302
+ findings.warn("entry-not-a-plugin", { path, subject: entry.name, detail: entry.dir === "" ? "." : entry.dir });
303
+ continue;
304
+ }
305
+ offered.push({
306
+ name: entry.name,
307
+ dir: entry.dir,
308
+ ...(entry.description !== undefined && { description: entry.description }),
309
+ });
310
+ }
311
+ return offered;
312
+ }
313
+ /** The files under `dir` as plugin-relative paths, so `hasPluginManifest` reads them as it reads a plugin's own listing. */
314
+ function childFilesOf(index, dir) {
315
+ const prefix = dir === "" ? "" : `${dir}/`;
316
+ return index.filesUnder(dir).map((file) => file.slice(prefix.length));
317
+ }
318
+ /**
319
+ * The defaults, in install order: Stigmer's `defaults` list, or Codex's
320
+ * `INSTALLED_BY_DEFAULT` entries in file order. A default that names no
321
+ * listed entry refuses the file; a default whose entry the tree could not
322
+ * offer is dropped silently, because that entry's own warning already says
323
+ * why it is missing.
324
+ */
325
+ function resolveDefaults(object, raw, offered, dialect, path, findings) {
326
+ const listed = new Set(raw.map((entry) => entry.name));
327
+ const offeredNames = new Set(offered.map((entry) => entry.name));
328
+ let named;
329
+ if (dialect === "stigmer") {
330
+ const value = object["defaults"];
331
+ if (value === undefined) {
332
+ named = [];
333
+ }
334
+ else if (!isStringArray(value)) {
335
+ findings.error("marketplace-field-type", { path, subject: "defaults", detail: "an array of strings" });
336
+ named = [];
337
+ }
338
+ else {
339
+ named = value;
340
+ }
341
+ }
342
+ else if (dialect === "codex") {
343
+ named = raw.filter((entry) => entry.installedByDefault).map((entry) => entry.name);
344
+ }
345
+ else {
346
+ named = [];
347
+ }
348
+ const defaults = [];
349
+ for (const name of named) {
350
+ if (!listed.has(name)) {
351
+ findings.error("default-unknown", { path, subject: name });
352
+ continue;
353
+ }
354
+ if (offeredNames.has(name) && !defaults.includes(name))
355
+ defaults.push(name);
356
+ }
357
+ return defaults;
358
+ }
359
+ //# sourceMappingURL=read-marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-marketplace.js","sourceRoot":"","sources":["../../src/marketplace/read-marketplace.ts"],"names":[],"mappings":"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"}
package/messages.d.ts CHANGED
@@ -10,7 +10,7 @@
10
10
  * quoting rule for new copy). The `Record` types are exhaustive over the
11
11
  * kind unions, so a kind without a sentence does not compile.
12
12
  */
13
- import type { FindingContext, PluginErrorKind, PluginFinding, PluginFindingKind, PluginWarningKind } from "./outcome.js";
13
+ import type { Finding, FindingContext, PluginErrorKind, PluginFindingKind, PluginWarningKind } from "./outcome.js";
14
14
  /** The canonical `$schema` identifiers the open format pins per version. */
15
15
  export declare const AGENT_PLUGINS_MANIFEST_SCHEMA = "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
16
16
  export declare const AGENT_PLUGINS_MCP_SCHEMA = "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json";
@@ -21,19 +21,35 @@ export declare const MANIFEST_LOCATIONS: {
21
21
  readonly cursor: ".cursor-plugin/plugin.json";
22
22
  readonly codex: ".codex-plugin/plugin.json";
23
23
  };
24
+ /** Single-quote an identifier for a sentence (the ts-server quoting rule); shared with the marketplace vocabulary. */
25
+ export declare const q: (value: string | undefined) => string;
26
+ /** ` in '<path>'`, or nothing when the finding names no file. */
27
+ export declare const at: (path: string | undefined) => string;
28
+ export type Sentence = (ctx: FindingContext) => string;
24
29
  export declare function errorMessage(kind: PluginErrorKind, ctx: FindingContext): string;
25
30
  export declare function warningMessage(kind: PluginWarningKind, ctx: FindingContext): string;
26
31
  /** True for the kinds that refuse a package. */
27
32
  export declare function isErrorKind(kind: PluginFindingKind): kind is PluginErrorKind;
33
+ /** A sentence table over a closed kind vocabulary; `Record` so a kind without a sentence does not compile. */
34
+ export type SentenceTable<K extends string> = Readonly<Record<K, Sentence>>;
28
35
  /**
29
- * Collects findings while a read proceeds. The reader never throws on a
30
- * plugin's content: every problem becomes a finding here, and the read
31
- * continues so the outcome carries them all.
36
+ * Collects findings while a read proceeds. A reader never throws on the
37
+ * content it reads: every problem becomes a finding here, and the read
38
+ * continues so the outcome carries them all. Generic over the two kind
39
+ * vocabularies so the plugin reader and the marketplace reader share one
40
+ * collector and one finding shape while each owns its sentences.
32
41
  */
33
- export declare class Findings {
34
- readonly errors: PluginFinding[];
35
- readonly warnings: PluginFinding[];
36
- error(kind: PluginErrorKind, ctx?: FindingContext): void;
37
- warn(kind: PluginWarningKind, ctx?: FindingContext): void;
42
+ export declare class FindingCollector<E extends string, W extends string> {
43
+ private readonly errorSentences;
44
+ private readonly warningSentences;
45
+ readonly errors: Finding<E>[];
46
+ readonly warnings: Finding<W>[];
47
+ constructor(errorSentences: SentenceTable<E>, warningSentences: SentenceTable<W>);
48
+ error(kind: E, ctx?: FindingContext): void;
49
+ warn(kind: W, ctx?: FindingContext): void;
50
+ }
51
+ /** The plugin reader's collector, bound to the plugin vocabulary. */
52
+ export declare class Findings extends FindingCollector<PluginErrorKind, PluginWarningKind> {
53
+ constructor();
38
54
  }
39
55
  //# sourceMappingURL=messages.d.ts.map
package/messages.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAEtB,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,+DAA+D,CAAC;AAC1G,eAAO,MAAM,wBAAwB,4DAA4D,CAAC;AAElG,wGAAwG;AACxG,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAqIX,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAE/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAEnF;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,IAAI,eAAe,CAE5E;AAED;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAM;IACtC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAM;IAExC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,GAAE,cAAmB,GAAG,IAAI;IAI5D,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,GAAE,cAAmB,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEnH,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,+DAA+D,CAAC;AAC1G,eAAO,MAAM,wBAAwB,4DAA4D,CAAC;AAElG,wGAAwG;AACxG,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,sHAAsH;AACtH,eAAO,MAAM,CAAC,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MAA4B,CAAC;AAC3E,iEAAiE;AACjE,eAAO,MAAM,EAAE,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,MAAsD,CAAC;AAErG,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC;AAgIvD,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAE/E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAEnF;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,IAAI,eAAe,CAE5E;AAED,8GAA8G;AAC9G,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM;IAK5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IALnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAM;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAM;gBAGlB,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,EAChC,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC;IAGrD,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAE,cAAmB,GAAG,IAAI;IAI9C,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,GAAE,cAAmB,GAAG,IAAI;CAG9C;AAED,qEAAqE;AACrE,qBAAa,QAAS,SAAQ,gBAAgB,CAAC,eAAe,EAAE,iBAAiB,CAAC;;CAIjF"}
package/messages.js CHANGED
@@ -20,8 +20,10 @@ export const MANIFEST_LOCATIONS = {
20
20
  cursor: ".cursor-plugin/plugin.json",
21
21
  codex: ".codex-plugin/plugin.json",
22
22
  };
23
- const q = (value) => `'${value ?? ""}'`;
24
- const at = (path) => (path === undefined ? "" : ` in ${q(path)}`);
23
+ /** Single-quote an identifier for a sentence (the ts-server quoting rule); shared with the marketplace vocabulary. */
24
+ export const q = (value) => `'${value ?? ""}'`;
25
+ /** ` in '<path>'`, or nothing when the finding names no file. */
26
+ export const at = (path) => (path === undefined ? "" : ` in ${q(path)}`);
25
27
  const ERROR_MESSAGES = {
26
28
  "no-manifest": () => `no plugin manifest found: expected one of ${Object.values(MANIFEST_LOCATIONS)
27
29
  .map((p) => q(p))
@@ -107,18 +109,32 @@ export function isErrorKind(kind) {
107
109
  return kind in ERROR_MESSAGES;
108
110
  }
109
111
  /**
110
- * Collects findings while a read proceeds. The reader never throws on a
111
- * plugin's content: every problem becomes a finding here, and the read
112
- * continues so the outcome carries them all.
112
+ * Collects findings while a read proceeds. A reader never throws on the
113
+ * content it reads: every problem becomes a finding here, and the read
114
+ * continues so the outcome carries them all. Generic over the two kind
115
+ * vocabularies so the plugin reader and the marketplace reader share one
116
+ * collector and one finding shape while each owns its sentences.
113
117
  */
114
- export class Findings {
118
+ export class FindingCollector {
119
+ errorSentences;
120
+ warningSentences;
115
121
  errors = [];
116
122
  warnings = [];
123
+ constructor(errorSentences, warningSentences) {
124
+ this.errorSentences = errorSentences;
125
+ this.warningSentences = warningSentences;
126
+ }
117
127
  error(kind, ctx = {}) {
118
- this.errors.push(compose(kind, ctx, errorMessage(kind, ctx)));
128
+ this.errors.push(compose(kind, ctx, this.errorSentences[kind](ctx)));
119
129
  }
120
130
  warn(kind, ctx = {}) {
121
- this.warnings.push(compose(kind, ctx, warningMessage(kind, ctx)));
131
+ this.warnings.push(compose(kind, ctx, this.warningSentences[kind](ctx)));
132
+ }
133
+ }
134
+ /** The plugin reader's collector, bound to the plugin vocabulary. */
135
+ export class Findings extends FindingCollector {
136
+ constructor() {
137
+ super(ERROR_MESSAGES, WARNING_MESSAGES);
122
138
  }
123
139
  }
124
140
  // Optional fields are omitted rather than set to `undefined` so a finding
package/messages.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
package/outcome.d.ts CHANGED
@@ -21,19 +21,26 @@ import type { PluginPackage } from "./types.js";
21
21
  export type PluginErrorKind = "no-manifest" | "manifest-unreadable" | "manifest-schema-missing" | "manifest-schema-unsupported" | "manifest-name-missing" | "manifest-name-invalid" | "manifest-name-conflict" | "manifest-field-type" | "path-not-relative" | "path-escapes-root" | "path-glob-unsupported" | "path-uncontained" | "document-too-large" | "skill-frontmatter-missing" | "skill-frontmatter-unclosed" | "skill-frontmatter-unreadable" | "skill-name-invalid" | "skill-name-duplicate" | "mcp-config-unreadable" | "mcp-config-shape" | "mcp-config-schema-missing" | "mcp-config-schema-unsupported" | "mcp-config-field-unknown" | "mcp-server-shape" | "mcp-server-type-missing" | "mcp-server-transport-unknown" | "mcp-server-type-ambiguous" | "mcp-server-type-unknown" | "mcp-server-field-unknown" | "mcp-server-field-type" | "mcp-server-url-missing" | "mcp-server-url-invalid" | "mcp-server-url-variable" | "mcp-server-command-missing" | "mcp-server-command-invalid" | "mcp-server-command-relative" | "mcp-server-plugin-root-reference" | "mcp-server-cwd-unsupported" | "mcp-server-env-literal" | "mcp-server-env-rename" | "mcp-server-name-duplicate" | "mcp-server-header-duplicate" | "mcp-server-header-invalid" | "sub-agent-frontmatter-unreadable" | "sub-agent-instructions-short" | "sub-agent-name-duplicate" | "variable-name-invalid" | "overlay-server-unknown" | "overlay-document-unknown";
22
22
  export type PluginWarningKind = "manifest-field-unknown" | "manifest-extensions-invalid" | "path-missing" | "skill-name-defaulted" | "skill-name-differs-from-directory" | "skill-description-missing" | "mcp-config-field-ignored" | "mcp-server-sse-mapped" | "mcp-server-field-ignored" | "mcp-server-auth-ignored" | "variable-inferred" | "variable-unreferenced" | "variable-default-dropped" | "variable-type-narrowed" | "variable-option-dropped" | "sub-agent-name-defaulted" | "sub-agent-skill-unknown" | "sub-agent-model-unknown" | "sub-agent-field-ignored";
23
23
  export type PluginFindingKind = PluginErrorKind | PluginWarningKind;
24
- export interface PluginFinding {
25
- readonly kind: PluginFindingKind;
24
+ /**
25
+ * One finding over any closed kind vocabulary. The plugin reader and the
26
+ * marketplace reader (`marketplace/`) each own a vocabulary and a sentence
27
+ * table; the shape of a finding, and the renderer that prints one, are
28
+ * shared through this type.
29
+ */
30
+ export interface Finding<K extends string> {
31
+ readonly kind: K;
26
32
  /** The file, or the declared path, the finding is about. */
27
33
  readonly path?: string;
28
- /** The skill, server, sub-agent, variable or field the finding names. */
34
+ /** The skill, server, sub-agent, variable, entry or field the finding names. */
29
35
  readonly subject?: string;
30
36
  /** A second identifier the sentence needs (a field name, a parser's own message). */
31
37
  readonly detail?: string;
32
- /** The one sentence for this kind, from `messages.ts`. */
38
+ /** The one sentence for this kind, from the vocabulary's `messages.ts`. */
33
39
  readonly message: string;
34
40
  }
35
- /** What `read` needs to compose a finding: everything but the sentence. */
36
- export type FindingContext = Pick<PluginFinding, "path" | "subject" | "detail">;
41
+ export type PluginFinding = Finding<PluginFindingKind>;
42
+ /** What a reader needs to compose a finding: everything but the sentence. */
43
+ export type FindingContext = Pick<Finding<string>, "path" | "subject" | "detail">;
37
44
  export type PluginReadOutcome = {
38
45
  readonly ok: true;
39
46
  readonly plugin: PluginPackage;
package/outcome.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,eAAe,GAEvB,aAAa,GACb,qBAAqB,GACrB,yBAAyB,GACzB,6BAA6B,GAC7B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,qBAAqB,GAErB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,oBAAoB,GAEpB,2BAA2B,GAC3B,4BAA4B,GAC5B,8BAA8B,GAC9B,oBAAoB,GACpB,sBAAsB,GAEtB,uBAAuB,GACvB,kBAAkB,GAClB,2BAA2B,GAC3B,+BAA+B,GAC/B,0BAA0B,GAE1B,kBAAkB,GAClB,yBAAyB,GACzB,8BAA8B,GAC9B,2BAA2B,GAC3B,yBAAyB,GACzB,0BAA0B,GAC1B,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,kCAAkC,GAClC,4BAA4B,GAC5B,wBAAwB,GACxB,uBAAuB,GACvB,2BAA2B,GAC3B,6BAA6B,GAC7B,2BAA2B,GAE3B,kCAAkC,GAClC,8BAA8B,GAC9B,0BAA0B,GAE1B,uBAAuB,GAEvB,wBAAwB,GACxB,0BAA0B,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,6BAA6B,GAC7B,cAAc,GACd,sBAAsB,GACtB,mCAAmC,GACnC,2BAA2B,GAC3B,0BAA0B,GAC1B,uBAAuB,GACvB,0BAA0B,GAC1B,yBAAyB,GACzB,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,GACzB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,eAAe,GAEvB,aAAa,GACb,qBAAqB,GACrB,yBAAyB,GACzB,6BAA6B,GAC7B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,qBAAqB,GAErB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,oBAAoB,GAEpB,2BAA2B,GAC3B,4BAA4B,GAC5B,8BAA8B,GAC9B,oBAAoB,GACpB,sBAAsB,GAEtB,uBAAuB,GACvB,kBAAkB,GAClB,2BAA2B,GAC3B,+BAA+B,GAC/B,0BAA0B,GAE1B,kBAAkB,GAClB,yBAAyB,GACzB,8BAA8B,GAC9B,2BAA2B,GAC3B,yBAAyB,GACzB,0BAA0B,GAC1B,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,kCAAkC,GAClC,4BAA4B,GAC5B,wBAAwB,GACxB,uBAAuB,GACvB,2BAA2B,GAC3B,6BAA6B,GAC7B,2BAA2B,GAE3B,kCAAkC,GAClC,8BAA8B,GAC9B,0BAA0B,GAE1B,uBAAuB,GAEvB,wBAAwB,GACxB,0BAA0B,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,6BAA6B,GAC7B,cAAc,GACd,sBAAsB,GACtB,mCAAmC,GACnC,2BAA2B,GAC3B,0BAA0B,GAC1B,uBAAuB,GACvB,0BAA0B,GAC1B,yBAAyB,GACzB,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,GAC1B,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,GACzB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM;IACvC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvD,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stigmer/plugin-package",
3
- "version": "3.16.0",
4
- "description": "Reads an Agent Plugins package — the open 1.0.0 format and the Cursor, Claude Code and Codex dialects — into one normalised description of what Stigmer would install, refusing with one sentence per problem what Stigmer cannot carry; pure over an in-memory file reader, shared by the CLI's offline validation and the server's install",
3
+ "version": "3.17.0",
4
+ "description": "Reads an Agent Plugins package — the open 1.0.0 format and the Cursor, Claude Code and Codex dialects — into one normalised description of what Stigmer would install, refusing with one sentence per problem what Stigmer cannot carry; pure over an in-memory file reader, shared by the CLI's offline validation and the server's install. The ./client entry is what every installing client does identically: file selection, the deterministic archive and its digest, the marketplace grammars",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -28,6 +28,11 @@
28
28
  "import": "./index.js",
29
29
  "default": "./index.js"
30
30
  },
31
+ "./client": {
32
+ "types": "./client.d.ts",
33
+ "import": "./client.js",
34
+ "default": "./client.js"
35
+ },
31
36
  "./testing": {
32
37
  "types": "./testing.d.ts",
33
38
  "import": "./testing.js",
@@ -35,6 +40,7 @@
35
40
  }
36
41
  },
37
42
  "dependencies": {
43
+ "fflate": "^0.8.3",
38
44
  "yaml": "^2.8.2"
39
45
  }
40
46
  }