@stigmer/plugin-package 3.15.3-dev.20260916211208

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 (173) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +66 -0
  3. package/detect.d.ts +50 -0
  4. package/detect.d.ts.map +1 -0
  5. package/detect.js +164 -0
  6. package/detect.js.map +1 -0
  7. package/dialects/claude.d.ts +30 -0
  8. package/dialects/claude.d.ts.map +1 -0
  9. package/dialects/claude.js +71 -0
  10. package/dialects/claude.js.map +1 -0
  11. package/dialects/codex.d.ts +18 -0
  12. package/dialects/codex.d.ts.map +1 -0
  13. package/dialects/codex.js +19 -0
  14. package/dialects/codex.js.map +1 -0
  15. package/dialects/cursor.d.ts +23 -0
  16. package/dialects/cursor.d.ts.map +1 -0
  17. package/dialects/cursor.js +63 -0
  18. package/dialects/cursor.js.map +1 -0
  19. package/dialects/manifest.d.ts +109 -0
  20. package/dialects/manifest.d.ts.map +1 -0
  21. package/dialects/manifest.js +194 -0
  22. package/dialects/manifest.js.map +1 -0
  23. package/dialects/open.d.ts +18 -0
  24. package/dialects/open.d.ts.map +1 -0
  25. package/dialects/open.js +47 -0
  26. package/dialects/open.js.map +1 -0
  27. package/documents.d.ts +43 -0
  28. package/documents.d.ts.map +1 -0
  29. package/documents.js +111 -0
  30. package/documents.js.map +1 -0
  31. package/files.d.ts +114 -0
  32. package/files.d.ts.map +1 -0
  33. package/files.js +187 -0
  34. package/files.js.map +1 -0
  35. package/frontmatter.d.ts +51 -0
  36. package/frontmatter.d.ts.map +1 -0
  37. package/frontmatter.js +61 -0
  38. package/frontmatter.js.map +1 -0
  39. package/index.d.ts +19 -0
  40. package/index.d.ts.map +1 -0
  41. package/index.js +17 -0
  42. package/index.js.map +1 -0
  43. package/messages.d.ts +39 -0
  44. package/messages.d.ts.map +1 -0
  45. package/messages.js +135 -0
  46. package/messages.js.map +1 -0
  47. package/normalise/ignored.d.ts +24 -0
  48. package/normalise/ignored.d.ts.map +1 -0
  49. package/normalise/ignored.js +68 -0
  50. package/normalise/ignored.js.map +1 -0
  51. package/normalise/mcp-servers.d.ts +47 -0
  52. package/normalise/mcp-servers.d.ts.map +1 -0
  53. package/normalise/mcp-servers.js +397 -0
  54. package/normalise/mcp-servers.js.map +1 -0
  55. package/normalise/overlay.d.ts +27 -0
  56. package/normalise/overlay.d.ts.map +1 -0
  57. package/normalise/overlay.js +67 -0
  58. package/normalise/overlay.js.map +1 -0
  59. package/normalise/skills.d.ts +31 -0
  60. package/normalise/skills.d.ts.map +1 -0
  61. package/normalise/skills.js +116 -0
  62. package/normalise/skills.js.map +1 -0
  63. package/normalise/sub-agents.d.ts +44 -0
  64. package/normalise/sub-agents.d.ts.map +1 -0
  65. package/normalise/sub-agents.js +168 -0
  66. package/normalise/sub-agents.js.map +1 -0
  67. package/normalise/variables.d.ts +27 -0
  68. package/normalise/variables.d.ts.map +1 -0
  69. package/normalise/variables.js +155 -0
  70. package/normalise/variables.js.map +1 -0
  71. package/outcome.d.ts +46 -0
  72. package/outcome.d.ts.map +1 -0
  73. package/outcome.js +21 -0
  74. package/outcome.js.map +1 -0
  75. package/package.json +40 -0
  76. package/placeholders.d.ts +41 -0
  77. package/placeholders.d.ts.map +1 -0
  78. package/placeholders.js +68 -0
  79. package/placeholders.js.map +1 -0
  80. package/read-plugin-package.d.ts +19 -0
  81. package/read-plugin-package.d.ts.map +1 -0
  82. package/read-plugin-package.js +67 -0
  83. package/read-plugin-package.js.map +1 -0
  84. package/src/__test-utils__/directory-files.ts +29 -0
  85. package/src/__test-utils__/read.ts +55 -0
  86. package/src/__tests__/adversarial.test.ts +434 -0
  87. package/src/__tests__/detect.test.ts +133 -0
  88. package/src/__tests__/files.test.ts +119 -0
  89. package/src/__tests__/fixtures/cursor-plugins/NOTICE +22 -0
  90. package/src/__tests__/fixtures/cursor-plugins/advisor/.cursor-plugin/plugin.json +33 -0
  91. package/src/__tests__/fixtures/cursor-plugins/advisor/CHANGELOG.md +8 -0
  92. package/src/__tests__/fixtures/cursor-plugins/advisor/LICENSE +21 -0
  93. package/src/__tests__/fixtures/cursor-plugins/advisor/README.md +87 -0
  94. package/src/__tests__/fixtures/cursor-plugins/advisor/agents/advisor-subagent.md +48 -0
  95. package/src/__tests__/fixtures/cursor-plugins/advisor/assets/avatar.png +0 -0
  96. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/capture-response.sh +20 -0
  97. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/hooks.json +27 -0
  98. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/lib.sh +61 -0
  99. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/mark-pending.sh +27 -0
  100. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/record-consult.sh +41 -0
  101. package/src/__tests__/fixtures/cursor-plugins/advisor/hooks/stop-hook.sh +48 -0
  102. package/src/__tests__/fixtures/cursor-plugins/advisor/skills/advisor/SKILL.md +123 -0
  103. package/src/__tests__/fixtures/cursor-plugins/advisor/skills/advisor/references/briefing-template.md +44 -0
  104. package/src/__tests__/fixtures/cursor-plugins/github/.cursor-plugin/plugin.json +45 -0
  105. package/src/__tests__/fixtures/cursor-plugins/github/CHANGELOG.md +9 -0
  106. package/src/__tests__/fixtures/cursor-plugins/github/LICENSE +21 -0
  107. package/src/__tests__/fixtures/cursor-plugins/github/README.md +64 -0
  108. package/src/__tests__/fixtures/cursor-plugins/github/assets/logo.svg +0 -0
  109. package/src/__tests__/fixtures/cursor-plugins/github/mcp.json +11 -0
  110. package/src/__tests__/fixtures/cursor-plugins/playwright/.cursor-plugin/plugin.json +35 -0
  111. package/src/__tests__/fixtures/cursor-plugins/playwright/CHANGELOG.md +8 -0
  112. package/src/__tests__/fixtures/cursor-plugins/playwright/LICENSE +21 -0
  113. package/src/__tests__/fixtures/cursor-plugins/playwright/README.md +46 -0
  114. package/src/__tests__/fixtures/cursor-plugins/playwright/assets/logo.svg +0 -0
  115. package/src/__tests__/fixtures/cursor-plugins/playwright/mcp.json +8 -0
  116. package/src/__tests__/fixtures/cursor-plugins/salesforce/.cursor-plugin/plugin.json +48 -0
  117. package/src/__tests__/fixtures/cursor-plugins/salesforce/CHANGELOG.md +10 -0
  118. package/src/__tests__/fixtures/cursor-plugins/salesforce/LICENSE +21 -0
  119. package/src/__tests__/fixtures/cursor-plugins/salesforce/README.md +95 -0
  120. package/src/__tests__/fixtures/cursor-plugins/salesforce/assets/logo.svg +0 -0
  121. package/src/__tests__/fixtures/cursor-plugins/salesforce/mcp.json +12 -0
  122. package/src/__tests__/fixtures/cursor-plugins/thermos/.cursor-plugin/plugin.json +32 -0
  123. package/src/__tests__/fixtures/cursor-plugins/thermos/CHANGELOG.md +8 -0
  124. package/src/__tests__/fixtures/cursor-plugins/thermos/LICENSE +21 -0
  125. package/src/__tests__/fixtures/cursor-plugins/thermos/README.md +70 -0
  126. package/src/__tests__/fixtures/cursor-plugins/thermos/agents/thermo-nuclear-code-quality-review-subagent.md +23 -0
  127. package/src/__tests__/fixtures/cursor-plugins/thermos/agents/thermo-nuclear-review-subagent.md +28 -0
  128. package/src/__tests__/fixtures/cursor-plugins/thermos/assets/logo.png +0 -0
  129. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermo-nuclear-code-quality-review/SKILL.md +192 -0
  130. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermo-nuclear-review/SKILL.md +51 -0
  131. package/src/__tests__/fixtures/cursor-plugins/thermos/skills/thermos/SKILL.md +21 -0
  132. package/src/__tests__/fixtures/cursor-plugins/xero/.cursor-plugin/plugin.json +53 -0
  133. package/src/__tests__/fixtures/cursor-plugins/xero/CHANGELOG.md +9 -0
  134. package/src/__tests__/fixtures/cursor-plugins/xero/LICENSE +21 -0
  135. package/src/__tests__/fixtures/cursor-plugins/xero/README.md +79 -0
  136. package/src/__tests__/fixtures/cursor-plugins/xero/assets/logo.png +0 -0
  137. package/src/__tests__/fixtures/cursor-plugins/xero/mcp.json +16 -0
  138. package/src/__tests__/fixtures.test.ts +198 -0
  139. package/src/__tests__/mcp-servers.test.ts +120 -0
  140. package/src/__tests__/overlay-and-ignored.test.ts +65 -0
  141. package/src/__tests__/skills.test.ts +89 -0
  142. package/src/__tests__/sub-agents.test.ts +111 -0
  143. package/src/__tests__/variables.test.ts +94 -0
  144. package/src/detect.ts +189 -0
  145. package/src/dialects/claude.ts +90 -0
  146. package/src/dialects/codex.ts +24 -0
  147. package/src/dialects/cursor.ts +73 -0
  148. package/src/dialects/manifest.ts +237 -0
  149. package/src/dialects/open.ts +48 -0
  150. package/src/documents.ts +145 -0
  151. package/src/files.ts +213 -0
  152. package/src/frontmatter.ts +70 -0
  153. package/src/index.ts +59 -0
  154. package/src/messages.ts +206 -0
  155. package/src/normalise/ignored.ts +70 -0
  156. package/src/normalise/mcp-servers.ts +427 -0
  157. package/src/normalise/overlay.ts +71 -0
  158. package/src/normalise/skills.ts +126 -0
  159. package/src/normalise/sub-agents.ts +184 -0
  160. package/src/normalise/variables.ts +161 -0
  161. package/src/outcome.ts +122 -0
  162. package/src/placeholders.ts +74 -0
  163. package/src/read-plugin-package.ts +74 -0
  164. package/src/testing.ts +258 -0
  165. package/src/types.ts +189 -0
  166. package/testing.d.ts +106 -0
  167. package/testing.d.ts.map +1 -0
  168. package/testing.js +182 -0
  169. package/testing.js.map +1 -0
  170. package/types.d.ts +152 -0
  171. package/types.d.ts.map +1 -0
  172. package/types.js +19 -0
  173. package/types.js.map +1 -0
package/testing.js ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * In-memory plugin builders for tests (exported as
3
+ * `@stigmer/plugin-package/testing`).
4
+ *
5
+ * One builder per dialect, each writing the exact file layout that
6
+ * dialect's tools produce: `openPlugin` a root `plugin.json` with the
7
+ * canonical `$schema` and an `mcp.json` beside it; `claudePlugin` a
8
+ * `.claude-plugin/plugin.json` with `.mcp.json`; `cursorPlugin` a
9
+ * `.cursor-plugin/plugin.json` declaring `./skills/`, `./agents/` and
10
+ * `./mcp.json` the way every published Cursor plugin does; `codexPlugin`
11
+ * the legacy `.codex-plugin/plugin.json` compatibility layout. The
12
+ * adversarial suite starts from a valid plugin and breaks exactly one
13
+ * thing with the mutators (`withFile`, `withoutFile`,
14
+ * `withManifestField`), so each test reads as "this plugin, minus this",
15
+ * and the consumers' tests (the CLI's, the server's) craft their fixtures
16
+ * from the same source so the shapes never drift apart.
17
+ *
18
+ * Builders return a path -> content map; `inMemoryPluginFiles` turns one
19
+ * into the `PluginFiles` the reader takes. Zipping a fixture for an
20
+ * archive-based consumer is `@stigmer/zip-structure/testing`'s job.
21
+ */
22
+ import { stringify as stringifyYaml } from "yaml";
23
+ import { inMemoryPluginFiles } from "./files.js";
24
+ import { AGENT_PLUGINS_MANIFEST_SCHEMA, AGENT_PLUGINS_MCP_SCHEMA, MANIFEST_LOCATIONS } from "./messages.js";
25
+ export { inMemoryPluginFiles };
26
+ const DEFAULT_NAME = "example";
27
+ /** An Agent Plugins 1.0.0 package. */
28
+ export function openPlugin(fixture = {}) {
29
+ const files = new Map();
30
+ const manifest = {
31
+ ...(fixture.schema !== null && { $schema: fixture.schema ?? AGENT_PLUGINS_MANIFEST_SCHEMA }),
32
+ name: fixture.name ?? DEFAULT_NAME,
33
+ ...(fixture.version !== undefined && { version: fixture.version }),
34
+ ...(fixture.description !== undefined && { description: fixture.description }),
35
+ ...fixture.manifest,
36
+ };
37
+ files.set(MANIFEST_LOCATIONS["agent-plugins"], json(manifest));
38
+ if (fixture.mcpServers !== undefined) {
39
+ files.set("mcp.json", json({
40
+ ...(fixture.mcpSchema !== null && { $schema: fixture.mcpSchema ?? AGENT_PLUGINS_MCP_SCHEMA }),
41
+ mcpServers: fixture.mcpServers,
42
+ ...fixture.mcpConfig,
43
+ }));
44
+ }
45
+ writeSkills(files, "skills", fixture.skills);
46
+ writeExtra(files, fixture.files);
47
+ return files;
48
+ }
49
+ /** A Claude Code plugin. */
50
+ export function claudePlugin(fixture = {}) {
51
+ const files = new Map();
52
+ const manifest = {
53
+ name: fixture.name ?? DEFAULT_NAME,
54
+ ...(fixture.version !== undefined && { version: fixture.version }),
55
+ ...(fixture.description !== undefined && { description: fixture.description }),
56
+ ...(fixture.userConfig !== undefined && { userConfig: fixture.userConfig }),
57
+ ...fixture.manifest,
58
+ };
59
+ files.set(MANIFEST_LOCATIONS.claude, json(manifest));
60
+ if (fixture.mcpServers !== undefined)
61
+ files.set(".mcp.json", json({ mcpServers: fixture.mcpServers }));
62
+ writeSkills(files, "skills", fixture.skills);
63
+ writeAgents(files, "agents", fixture.agents);
64
+ writeExtra(files, fixture.files);
65
+ return files;
66
+ }
67
+ /** A Cursor plugin, declaring its components the way the published catalogue does. */
68
+ export function cursorPlugin(fixture = {}) {
69
+ const files = new Map();
70
+ const manifest = {
71
+ name: fixture.name ?? DEFAULT_NAME,
72
+ ...(fixture.version !== undefined && { version: fixture.version }),
73
+ ...(fixture.description !== undefined && { description: fixture.description }),
74
+ ...(fixture.skills !== undefined && { skills: "./skills/" }),
75
+ ...(fixture.agents !== undefined && { agents: "./agents/" }),
76
+ ...(fixture.variables !== undefined && {
77
+ variables: {
78
+ type: "object",
79
+ properties: fixture.variables,
80
+ ...(fixture.required !== undefined && { required: fixture.required }),
81
+ },
82
+ }),
83
+ ...(fixture.mcpServers !== undefined && { mcpServers: "./mcp.json" }),
84
+ ...fixture.manifest,
85
+ };
86
+ files.set(MANIFEST_LOCATIONS.cursor, json(manifest));
87
+ if (fixture.mcpServers !== undefined)
88
+ files.set("mcp.json", json({ mcpServers: fixture.mcpServers }));
89
+ writeSkills(files, "skills", fixture.skills);
90
+ writeAgents(files, "agents", fixture.agents);
91
+ writeExtra(files, fixture.files);
92
+ return files;
93
+ }
94
+ /** The legacy Codex compatibility layout (`.codex-plugin/plugin.json`, `.mcp.json`, `.app.json`). */
95
+ export function codexPlugin(fixture = {}) {
96
+ const files = new Map();
97
+ const manifest = {
98
+ name: fixture.name ?? DEFAULT_NAME,
99
+ ...(fixture.version !== undefined && { version: fixture.version }),
100
+ ...(fixture.description !== undefined && { description: fixture.description }),
101
+ ...(fixture.skills !== undefined && { skills: "./skills/" }),
102
+ ...(fixture.mcpServers !== undefined && { mcpServers: "./.mcp.json" }),
103
+ ...(fixture.apps !== undefined && { apps: "./.app.json" }),
104
+ ...fixture.manifest,
105
+ };
106
+ files.set(MANIFEST_LOCATIONS.codex, json(manifest));
107
+ if (fixture.mcpServers !== undefined)
108
+ files.set(".mcp.json", json({ mcpServers: fixture.mcpServers }));
109
+ if (fixture.apps !== undefined)
110
+ files.set(".app.json", json({ apps: fixture.apps }));
111
+ writeSkills(files, "skills", fixture.skills);
112
+ writeExtra(files, fixture.files);
113
+ return files;
114
+ }
115
+ /** A copy of `files` with `path` set to `content`. */
116
+ export function withFile(files, path, content) {
117
+ const copy = new Map(files);
118
+ copy.set(path, content);
119
+ return copy;
120
+ }
121
+ /** A copy of `files` without `path`. */
122
+ export function withoutFile(files, path) {
123
+ const copy = new Map(files);
124
+ copy.delete(path);
125
+ return copy;
126
+ }
127
+ /**
128
+ * A copy of `files` with one top-level field of the JSON document at
129
+ * `manifestPath` set (or removed, when `value` is `undefined`).
130
+ */
131
+ export function withManifestField(files, manifestPath, field, value) {
132
+ const current = files.get(manifestPath);
133
+ if (current === undefined)
134
+ throw new Error(`fixture has no document at '${manifestPath}'`);
135
+ const text = typeof current === "string" ? current : new TextDecoder().decode(current);
136
+ const document = JSON.parse(text);
137
+ if (value === undefined)
138
+ delete document[field];
139
+ else
140
+ document[field] = value;
141
+ return withFile(files, manifestPath, json(document));
142
+ }
143
+ /** A `SKILL.md` document from a fixture description. */
144
+ export function skillMarkdown(skill) {
145
+ const body = skill.body ?? `# ${skill.name}\n\nInstructions for the ${skill.name} skill.\n`;
146
+ if (skill.frontmatter === null)
147
+ return body;
148
+ const frontmatter = {
149
+ name: skill.name,
150
+ ...(skill.description !== undefined && { description: skill.description }),
151
+ ...skill.frontmatter,
152
+ };
153
+ return `---\n${stringifyYaml(frontmatter)}---\n${body}`;
154
+ }
155
+ /** A sub-agent document from a fixture description. */
156
+ export function agentMarkdown(agent) {
157
+ const body = agent.body ?? `You are the ${agent.file} sub-agent. Do the task thoroughly and report back.\n`;
158
+ if (agent.frontmatter === null)
159
+ return body;
160
+ const frontmatter = { name: agent.file, ...agent.frontmatter };
161
+ return `---\n${stringifyYaml(frontmatter)}---\n${body}`;
162
+ }
163
+ function writeSkills(files, root, skills) {
164
+ for (const skill of skills ?? []) {
165
+ const dir = `${root}/${skill.dir ?? skill.name}`;
166
+ files.set(`${dir}/SKILL.md`, skillMarkdown(skill));
167
+ for (const [path, content] of Object.entries(skill.files ?? {}))
168
+ files.set(`${dir}/${path}`, content);
169
+ }
170
+ }
171
+ function writeAgents(files, root, agents) {
172
+ for (const agent of agents ?? [])
173
+ files.set(`${root}/${agent.file}.md`, agentMarkdown(agent));
174
+ }
175
+ function writeExtra(files, extra) {
176
+ for (const [path, content] of Object.entries(extra ?? {}))
177
+ files.set(path, content);
178
+ }
179
+ function json(value) {
180
+ return `${JSON.stringify(value, null, 2)}\n`;
181
+ }
182
+ //# sourceMappingURL=testing.js.map
package/testing.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/types.d.ts ADDED
@@ -0,0 +1,152 @@
1
+ /**
2
+ * The normalised description of a plugin: what Stigmer would install from a
3
+ * package, whatever dialect the package was written in.
4
+ *
5
+ * These are the library's own plain types, deliberately not the protos. The
6
+ * library describes the plugin FORMAT; the server maps this description onto
7
+ * resources when it installs, and the CLI validates offline without pulling
8
+ * the resource schemas in for a parse. Field names still mirror the protos
9
+ * (`SubAgent.name/description/instructions/model_override`,
10
+ * `EnvVarDeclaration.is_secret/description/optional`, the
11
+ * `McpServerSpec` `stdio`/`http` variants) so the server's mapping is one
12
+ * function per kind and a proto rename is a visible edit here.
13
+ *
14
+ * Every path in this description is plugin-relative, POSIX, with no leading
15
+ * `./`: one path vocabulary for the whole package, whichever reader produced
16
+ * the files.
17
+ */
18
+ /** The manifest that gave the plugin its identity. */
19
+ export type PluginDialect = "agent-plugins" | "claude" | "cursor" | "codex";
20
+ export interface PluginAuthor {
21
+ readonly name?: string;
22
+ readonly email?: string;
23
+ readonly url?: string;
24
+ }
25
+ /**
26
+ * One skill: a directory holding `SKILL.md`. `files` lists every file under
27
+ * `dir` (plugin-relative), so an installer can build the skill's own archive
28
+ * without walking the package again; `SKILL.md` is among them. For a plugin
29
+ * that IS a single skill (a root `SKILL.md`, the Claude Code layout) `dir` is
30
+ * the empty string and `files` is the whole package.
31
+ */
32
+ export interface PluginSkill {
33
+ readonly name: string;
34
+ readonly description?: string;
35
+ readonly dir: string;
36
+ readonly files: readonly string[];
37
+ }
38
+ /**
39
+ * One MCP server in the shape `McpServerSpec` takes. `env` is the list of
40
+ * variable NAMES the server references (in headers, arguments or its stdio
41
+ * environment), which is what `McpServerSpec.env` declares; values never
42
+ * appear anywhere in this library.
43
+ */
44
+ export type PluginMcpServer = {
45
+ readonly name: string;
46
+ readonly transport: "http";
47
+ readonly url: string;
48
+ readonly headers: Readonly<Record<string, string>>;
49
+ readonly env: readonly string[];
50
+ } | {
51
+ readonly name: string;
52
+ readonly transport: "stdio";
53
+ readonly command: string;
54
+ readonly args: readonly string[];
55
+ readonly env: readonly string[];
56
+ };
57
+ /**
58
+ * A dialect's `model` value classified into an alias the server resolves
59
+ * against its model registry. The library never names a Stigmer model id:
60
+ * the runner drops a sub-agent whose `model_override` is unregistered, so an
61
+ * id the parser could not verify would silently remove sub-agents at run
62
+ * time. `inherit` and an absent `model` both mean "no override"; `unknown`
63
+ * carries the raw text for the server's warning.
64
+ */
65
+ export type ModelAlias = "fast" | "sonnet" | "opus" | "haiku" | "inherit" | "unknown";
66
+ export interface ModelHint {
67
+ readonly raw: string;
68
+ readonly alias: ModelAlias;
69
+ }
70
+ /** One sub-agent file (`agents/*.md`) in the shape `SubAgent` takes. */
71
+ export interface PluginSubAgent {
72
+ readonly name: string;
73
+ readonly description?: string;
74
+ readonly instructions: string;
75
+ /** Plugin skill names this sub-agent asked for (Claude `skills:`), resolved to `skill_refs` by the installer. */
76
+ readonly skillNames: readonly string[];
77
+ readonly modelHint?: ModelHint;
78
+ /** The agent file, for messages that point at it. */
79
+ readonly path: string;
80
+ }
81
+ /**
82
+ * One variable in the shape `EnvVarDeclaration` takes. `declaredBy` says
83
+ * where the declaration came from: a Cursor `variables` schema, a Claude
84
+ * `userConfig` entry, or inference from an undeclared `${VAR}` reference,
85
+ * which the library declares as a required secret because the runner hands a
86
+ * server only the variables its spec declares.
87
+ */
88
+ export interface PluginVariable {
89
+ readonly name: string;
90
+ readonly description?: string;
91
+ readonly isSecret: boolean;
92
+ readonly optional: boolean;
93
+ readonly declaredBy: "cursor" | "claude" | "inferred";
94
+ }
95
+ /**
96
+ * A document under `ai.stigmer/`, handed over as bytes. The library locates
97
+ * these and checks they name things the plugin declares; parsing them into
98
+ * resources is the installer's, where the resource schemas live.
99
+ */
100
+ export interface OverlayDocument {
101
+ readonly path: string;
102
+ readonly bytes: Uint8Array;
103
+ }
104
+ export interface OverlayNamedDocument extends OverlayDocument {
105
+ /** The file stem, the workflow's name. */
106
+ readonly name: string;
107
+ }
108
+ export interface OverlayServerDocument extends OverlayDocument {
109
+ /** The MCP server (a `mcpServers` key) this overlay layers over. */
110
+ readonly server: string;
111
+ }
112
+ export interface StigmerOverlay {
113
+ /** `ai.stigmer/agent.yaml`: the Agent that replaces the composed default. */
114
+ readonly agent?: OverlayDocument;
115
+ /** `ai.stigmer/workflows/<name>.yaml`. */
116
+ readonly workflows: readonly OverlayNamedDocument[];
117
+ /** `ai.stigmer/mcp-servers/<server>.yaml`: the richer `McpServer` overlay. */
118
+ readonly mcpServers: readonly OverlayServerDocument[];
119
+ }
120
+ /**
121
+ * The component kinds Stigmer reads past without carrying. Recorded once per
122
+ * component (a directory, a file or a manifest field), never per file, so
123
+ * an author sees "hooks/ is not installed" once.
124
+ */
125
+ export type IgnoredComponentKind = "agents" | "apps" | "assets" | "bin" | "canvases" | "channels" | "commands" | "default-enabled" | "dependencies" | "evals" | "extension" | "hooks" | "logo" | "lsp-servers" | "min-client-versions" | "monitors" | "output-styles" | "rules" | "settings" | "themes" | "workflows";
126
+ export interface IgnoredComponent {
127
+ readonly kind: IgnoredComponentKind;
128
+ /** The directory, file, or `<manifest path>#<field>` the component came from. */
129
+ readonly path: string;
130
+ }
131
+ /** What Stigmer would install from the package. */
132
+ export interface PluginPackage {
133
+ readonly name: string;
134
+ /** As written; Semantic Versioning is recommended by the format, not enforced. */
135
+ readonly version?: string;
136
+ readonly description?: string;
137
+ readonly author?: PluginAuthor;
138
+ readonly homepage?: string;
139
+ readonly repository?: string;
140
+ readonly license?: string;
141
+ readonly keywords: readonly string[];
142
+ readonly dialect: PluginDialect;
143
+ /** Every manifest the reader consulted, identity first. */
144
+ readonly manifestsFound: readonly string[];
145
+ readonly skills: readonly PluginSkill[];
146
+ readonly mcpServers: readonly PluginMcpServer[];
147
+ readonly subAgents: readonly PluginSubAgent[];
148
+ readonly variables: readonly PluginVariable[];
149
+ readonly overlay: StigmerOverlay;
150
+ readonly ignored: readonly IgnoredComponent[];
151
+ }
152
+ //# sourceMappingURL=types.d.ts.map
package/types.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAEN;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iHAAiH;IACjH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;CACvD;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,KAAK,GACL,UAAU,GACV,UAAU,GACV,UAAU,GACV,iBAAiB,GACjB,cAAc,GACd,OAAO,GACP,WAAW,GACX,OAAO,GACP,MAAM,GACN,aAAa,GACb,qBAAqB,GACrB,UAAU,GACV,eAAe,GACf,OAAO,GACP,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C"}
package/types.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The normalised description of a plugin: what Stigmer would install from a
3
+ * package, whatever dialect the package was written in.
4
+ *
5
+ * These are the library's own plain types, deliberately not the protos. The
6
+ * library describes the plugin FORMAT; the server maps this description onto
7
+ * resources when it installs, and the CLI validates offline without pulling
8
+ * the resource schemas in for a parse. Field names still mirror the protos
9
+ * (`SubAgent.name/description/instructions/model_override`,
10
+ * `EnvVarDeclaration.is_secret/description/optional`, the
11
+ * `McpServerSpec` `stdio`/`http` variants) so the server's mapping is one
12
+ * function per kind and a proto rename is a visible edit here.
13
+ *
14
+ * Every path in this description is plugin-relative, POSIX, with no leading
15
+ * `./`: one path vocabulary for the whole package, whichever reader produced
16
+ * the files.
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}