@adea-ai/plugins 1.0.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 (79) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +74 -0
  3. package/dist/agent-plugins-catalog.d.ts +26 -0
  4. package/dist/agent-plugins-catalog.js +699 -0
  5. package/dist/agent-plugins-catalog.js.map +1 -0
  6. package/dist/agent-plugins-harness.d.ts +54 -0
  7. package/dist/agent-plugins-harness.js +212 -0
  8. package/dist/agent-plugins-harness.js.map +1 -0
  9. package/dist/agent-plugins-schema.d.ts +402 -0
  10. package/dist/agent-plugins-schema.js +200 -0
  11. package/dist/agent-plugins-schema.js.map +1 -0
  12. package/dist/consumer-index.d.ts +217 -0
  13. package/dist/consumer-index.js +358 -0
  14. package/dist/consumer-index.js.map +1 -0
  15. package/dist/display-name.d.ts +8 -0
  16. package/dist/display-name.js +160 -0
  17. package/dist/display-name.js.map +1 -0
  18. package/dist/harness.d.ts +13 -0
  19. package/dist/harness.js +169 -0
  20. package/dist/harness.js.map +1 -0
  21. package/dist/icon-mirror.d.ts +69 -0
  22. package/dist/icon-mirror.js +147 -0
  23. package/dist/icon-mirror.js.map +1 -0
  24. package/dist/icons.d.ts +65 -0
  25. package/dist/icons.js +268 -0
  26. package/dist/icons.js.map +1 -0
  27. package/dist/index.d.ts +304 -0
  28. package/dist/index.js +1877 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/portable-catalog.d.ts +9 -0
  31. package/dist/portable-catalog.js +175 -0
  32. package/dist/portable-catalog.js.map +1 -0
  33. package/dist/publication.d.ts +98 -0
  34. package/dist/publication.js +121 -0
  35. package/dist/publication.js.map +1 -0
  36. package/dist/schema.d.ts +705 -0
  37. package/dist/schema.js +267 -0
  38. package/dist/schema.js.map +1 -0
  39. package/dist/site-icons.d.ts +55 -0
  40. package/dist/site-icons.js +155 -0
  41. package/dist/site-icons.js.map +1 -0
  42. package/dist/sources.d.ts +54 -0
  43. package/dist/sources.js +306 -0
  44. package/dist/sources.js.map +1 -0
  45. package/package.json +102 -0
  46. package/schemas/agent-package.v1.json +387 -0
  47. package/schemas/catalog.v1.schema.json +407 -0
  48. package/schemas/compatibility.v1.schema.json +23 -0
  49. package/schemas/harness-profile.v1.json +75 -0
  50. package/schemas/installation-plan.v2.json +695 -0
  51. package/schemas/sources-lock.v1.schema.json +61 -0
  52. package/src/agent-plugins-catalog.test.ts +402 -0
  53. package/src/agent-plugins-catalog.ts +800 -0
  54. package/src/agent-plugins-harness.test.ts +272 -0
  55. package/src/agent-plugins-harness.ts +281 -0
  56. package/src/agent-plugins-schema.test.ts +27 -0
  57. package/src/agent-plugins-schema.ts +219 -0
  58. package/src/artifacts.test.ts +545 -0
  59. package/src/catalog-installation.test.ts +42 -0
  60. package/src/consumer-index.test.ts +465 -0
  61. package/src/consumer-index.ts +592 -0
  62. package/src/display-name.test.ts +56 -0
  63. package/src/display-name.ts +157 -0
  64. package/src/harness.ts +202 -0
  65. package/src/icon-mirror.ts +196 -0
  66. package/src/icons.test.ts +185 -0
  67. package/src/icons.ts +297 -0
  68. package/src/index.test.ts +888 -0
  69. package/src/index.ts +2538 -0
  70. package/src/portable-catalog.test.ts +186 -0
  71. package/src/portable-catalog.ts +203 -0
  72. package/src/publication.test.ts +117 -0
  73. package/src/publication.ts +171 -0
  74. package/src/schema.ts +309 -0
  75. package/src/site-icon-fallback.test.ts +267 -0
  76. package/src/site-icons.test.ts +171 -0
  77. package/src/site-icons.ts +161 -0
  78. package/src/sources.ts +360 -0
  79. package/src/upstream-headers.test.ts +148 -0
@@ -0,0 +1,402 @@
1
+ import { z } from 'zod';
2
+ export declare const AGENT_PLUGINS_VERSION: "1.0.0";
3
+ export declare const PLUGIN_SCHEMA_ID = "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json";
4
+ export declare const MCP_SCHEMA_ID = "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json";
5
+ export declare const NORMALIZER_VERSION: "adea-agent-plugins/1";
6
+ export declare const PluginNameSchema: z.ZodString;
7
+ export declare const AgentManifestSchema: z.ZodObject<{
8
+ $schema: z.ZodLiteral<"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json">;
9
+ name: z.ZodString;
10
+ version: z.ZodOptional<z.ZodString>;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ author: z.ZodOptional<z.ZodObject<{
13
+ name: z.ZodOptional<z.ZodString>;
14
+ email: z.ZodOptional<z.ZodString>;
15
+ url: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strict>>;
17
+ homepage: z.ZodOptional<z.ZodString>;
18
+ repository: z.ZodOptional<z.ZodString>;
19
+ license: z.ZodOptional<z.ZodString>;
20
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
22
+ }, z.core.$strict>;
23
+ export declare const McpServerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
24
+ type: z.ZodLiteral<"stdio">;
25
+ command: z.ZodString;
26
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
28
+ cwd: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strict>, z.ZodObject<{
30
+ type: z.ZodLiteral<"streamable-http">;
31
+ url: z.ZodString;
32
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
33
+ }, z.core.$strict>, z.ZodObject<{
34
+ type: z.ZodLiteral<"sse">;
35
+ url: z.ZodString;
36
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
37
+ }, z.core.$strict>], "type">;
38
+ export declare const AgentMcpSchema: z.ZodObject<{
39
+ $schema: z.ZodLiteral<"https://agent-plugins.org/schemas/1.0.0/mcp.schema.json">;
40
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
41
+ type: z.ZodLiteral<"stdio">;
42
+ command: z.ZodString;
43
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
+ cwd: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strict>, z.ZodObject<{
47
+ type: z.ZodLiteral<"streamable-http">;
48
+ url: z.ZodString;
49
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ type: z.ZodLiteral<"sse">;
52
+ url: z.ZodString;
53
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
54
+ }, z.core.$strict>], "type">>;
55
+ }, z.core.$strict>;
56
+ export declare const SkillFrontmatterSchema: z.ZodObject<{
57
+ name: z.ZodString;
58
+ description: z.ZodString;
59
+ license: z.ZodOptional<z.ZodString>;
60
+ compatibility: z.ZodOptional<z.ZodString>;
61
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
62
+ 'allowed-tools': z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strict>;
64
+ export declare const DiagnosticSchema: z.ZodObject<{
65
+ code: z.ZodString;
66
+ scope: z.ZodEnum<{
67
+ plugin: "plugin";
68
+ skills: "skills";
69
+ skill: "skill";
70
+ mcp: "mcp";
71
+ server: "server";
72
+ extension: "extension";
73
+ translation: "translation";
74
+ }>;
75
+ path: z.ZodString;
76
+ severity: z.ZodEnum<{
77
+ error: "error";
78
+ warning: "warning";
79
+ }>;
80
+ message: z.ZodString;
81
+ }, z.core.$strict>;
82
+ export declare const PackageFileSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
83
+ action: z.ZodLiteral<"copy">;
84
+ sourcePath: z.ZodString;
85
+ targetPath: z.ZodString;
86
+ digest: z.ZodString;
87
+ preserveMode: z.ZodLiteral<true>;
88
+ }, z.core.$strict>, z.ZodObject<{
89
+ action: z.ZodLiteral<"write">;
90
+ targetPath: z.ZodString;
91
+ digest: z.ZodString;
92
+ content: z.ZodString;
93
+ mode: z.ZodLiteral<"0644">;
94
+ }, z.core.$strict>], "action">;
95
+ export declare const AgentPackageSchema: z.ZodObject<{
96
+ contractVersion: z.ZodLiteral<1>;
97
+ normalizerVersion: z.ZodLiteral<"adea-agent-plugins/1">;
98
+ format: z.ZodLiteral<"agent-plugins">;
99
+ specVersion: z.ZodLiteral<"1.0.0">;
100
+ originFormat: z.ZodEnum<{
101
+ "agent-plugins": "agent-plugins";
102
+ legacy: "legacy";
103
+ }>;
104
+ sourceDigest: z.ZodString;
105
+ status: z.ZodEnum<{
106
+ portable: "portable";
107
+ partial: "partial";
108
+ unavailable: "unavailable";
109
+ }>;
110
+ manifest: z.ZodOptional<z.ZodObject<{
111
+ $schema: z.ZodLiteral<"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json">;
112
+ name: z.ZodString;
113
+ version: z.ZodOptional<z.ZodString>;
114
+ description: z.ZodOptional<z.ZodString>;
115
+ author: z.ZodOptional<z.ZodObject<{
116
+ name: z.ZodOptional<z.ZodString>;
117
+ email: z.ZodOptional<z.ZodString>;
118
+ url: z.ZodOptional<z.ZodString>;
119
+ }, z.core.$strict>>;
120
+ homepage: z.ZodOptional<z.ZodString>;
121
+ repository: z.ZodOptional<z.ZodString>;
122
+ license: z.ZodOptional<z.ZodString>;
123
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
124
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
125
+ }, z.core.$strict>>;
126
+ packageDigest: z.ZodOptional<z.ZodString>;
127
+ files: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
128
+ action: z.ZodLiteral<"copy">;
129
+ sourcePath: z.ZodString;
130
+ targetPath: z.ZodString;
131
+ digest: z.ZodString;
132
+ preserveMode: z.ZodLiteral<true>;
133
+ }, z.core.$strict>, z.ZodObject<{
134
+ action: z.ZodLiteral<"write">;
135
+ targetPath: z.ZodString;
136
+ digest: z.ZodString;
137
+ content: z.ZodString;
138
+ mode: z.ZodLiteral<"0644">;
139
+ }, z.core.$strict>], "action">>;
140
+ skills: z.ZodArray<z.ZodObject<{
141
+ name: z.ZodString;
142
+ path: z.ZodString;
143
+ description: z.ZodString;
144
+ compatibility: z.ZodOptional<z.ZodString>;
145
+ allowedTools: z.ZodOptional<z.ZodString>;
146
+ }, z.core.$strict>>;
147
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
148
+ type: z.ZodLiteral<"stdio">;
149
+ command: z.ZodString;
150
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
151
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
152
+ cwd: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$strict>, z.ZodObject<{
154
+ type: z.ZodLiteral<"streamable-http">;
155
+ url: z.ZodString;
156
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
157
+ }, z.core.$strict>, z.ZodObject<{
158
+ type: z.ZodLiteral<"sse">;
159
+ url: z.ZodString;
160
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
161
+ }, z.core.$strict>], "type">>;
162
+ nonPortable: z.ZodArray<z.ZodObject<{
163
+ kind: z.ZodString;
164
+ paths: z.ZodArray<z.ZodString>;
165
+ reason: z.ZodString;
166
+ }, z.core.$strict>>;
167
+ diagnostics: z.ZodArray<z.ZodObject<{
168
+ code: z.ZodString;
169
+ scope: z.ZodEnum<{
170
+ plugin: "plugin";
171
+ skills: "skills";
172
+ skill: "skill";
173
+ mcp: "mcp";
174
+ server: "server";
175
+ extension: "extension";
176
+ translation: "translation";
177
+ }>;
178
+ path: z.ZodString;
179
+ severity: z.ZodEnum<{
180
+ error: "error";
181
+ warning: "warning";
182
+ }>;
183
+ message: z.ZodString;
184
+ }, z.core.$strict>>;
185
+ requirements: z.ZodObject<{
186
+ skills: z.ZodBoolean;
187
+ mcpTransports: z.ZodArray<z.ZodEnum<{
188
+ stdio: "stdio";
189
+ "streamable-http": "streamable-http";
190
+ sse: "sse";
191
+ }>>;
192
+ executables: z.ZodArray<z.ZodString>;
193
+ environmentReview: z.ZodBoolean;
194
+ }, z.core.$strict>;
195
+ }, z.core.$strict>;
196
+ /** Reported by the actual Control Plane harness adapter, not inferred from a brand name. */
197
+ export declare const HarnessProfileSchema: z.ZodObject<{
198
+ profileVersion: z.ZodLiteral<1>;
199
+ harness: z.ZodString;
200
+ runtimeVersion: z.ZodString;
201
+ adapterVersion: z.ZodString;
202
+ agentPlugins: z.ZodObject<{
203
+ versions: z.ZodArray<z.ZodString>;
204
+ skills: z.ZodBoolean;
205
+ mcpTransports: z.ZodArray<z.ZodEnum<{
206
+ stdio: "stdio";
207
+ "streamable-http": "streamable-http";
208
+ sse: "sse";
209
+ }>>;
210
+ }, z.core.$strict>;
211
+ components: z.ZodObject<{
212
+ skillDirectories: z.ZodBoolean;
213
+ mcpTransports: z.ZodArray<z.ZodEnum<{
214
+ stdio: "stdio";
215
+ "streamable-http": "streamable-http";
216
+ sse: "sse";
217
+ }>>;
218
+ }, z.core.$strict>;
219
+ }, z.core.$strict>;
220
+ export declare const InstallationPlanSchema: z.ZodObject<{
221
+ planVersion: z.ZodLiteral<2>;
222
+ pluginId: z.ZodString;
223
+ releaseId: z.ZodString;
224
+ instanceId: z.ZodString;
225
+ profile: z.ZodObject<{
226
+ profileVersion: z.ZodLiteral<1>;
227
+ harness: z.ZodString;
228
+ runtimeVersion: z.ZodString;
229
+ adapterVersion: z.ZodString;
230
+ agentPlugins: z.ZodObject<{
231
+ versions: z.ZodArray<z.ZodString>;
232
+ skills: z.ZodBoolean;
233
+ mcpTransports: z.ZodArray<z.ZodEnum<{
234
+ stdio: "stdio";
235
+ "streamable-http": "streamable-http";
236
+ sse: "sse";
237
+ }>>;
238
+ }, z.core.$strict>;
239
+ components: z.ZodObject<{
240
+ skillDirectories: z.ZodBoolean;
241
+ mcpTransports: z.ZodArray<z.ZodEnum<{
242
+ stdio: "stdio";
243
+ "streamable-http": "streamable-http";
244
+ sse: "sse";
245
+ }>>;
246
+ }, z.core.$strict>;
247
+ }, z.core.$strict>;
248
+ source: z.ZodObject<{
249
+ repositoryUrl: z.ZodString;
250
+ commitSha: z.ZodString;
251
+ pluginSubdirectory: z.ZodString;
252
+ contentDigest: z.ZodString;
253
+ }, z.core.$strict>;
254
+ package: z.ZodObject<{
255
+ contractVersion: z.ZodLiteral<1>;
256
+ normalizerVersion: z.ZodLiteral<"adea-agent-plugins/1">;
257
+ format: z.ZodLiteral<"agent-plugins">;
258
+ specVersion: z.ZodLiteral<"1.0.0">;
259
+ originFormat: z.ZodEnum<{
260
+ "agent-plugins": "agent-plugins";
261
+ legacy: "legacy";
262
+ }>;
263
+ sourceDigest: z.ZodString;
264
+ status: z.ZodEnum<{
265
+ portable: "portable";
266
+ partial: "partial";
267
+ unavailable: "unavailable";
268
+ }>;
269
+ manifest: z.ZodOptional<z.ZodObject<{
270
+ $schema: z.ZodLiteral<"https://agent-plugins.org/schemas/1.0.0/plugin.schema.json">;
271
+ name: z.ZodString;
272
+ version: z.ZodOptional<z.ZodString>;
273
+ description: z.ZodOptional<z.ZodString>;
274
+ author: z.ZodOptional<z.ZodObject<{
275
+ name: z.ZodOptional<z.ZodString>;
276
+ email: z.ZodOptional<z.ZodString>;
277
+ url: z.ZodOptional<z.ZodString>;
278
+ }, z.core.$strict>>;
279
+ homepage: z.ZodOptional<z.ZodString>;
280
+ repository: z.ZodOptional<z.ZodString>;
281
+ license: z.ZodOptional<z.ZodString>;
282
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
283
+ extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
284
+ }, z.core.$strict>>;
285
+ packageDigest: z.ZodOptional<z.ZodString>;
286
+ files: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
287
+ action: z.ZodLiteral<"copy">;
288
+ sourcePath: z.ZodString;
289
+ targetPath: z.ZodString;
290
+ digest: z.ZodString;
291
+ preserveMode: z.ZodLiteral<true>;
292
+ }, z.core.$strict>, z.ZodObject<{
293
+ action: z.ZodLiteral<"write">;
294
+ targetPath: z.ZodString;
295
+ digest: z.ZodString;
296
+ content: z.ZodString;
297
+ mode: z.ZodLiteral<"0644">;
298
+ }, z.core.$strict>], "action">>;
299
+ skills: z.ZodArray<z.ZodObject<{
300
+ name: z.ZodString;
301
+ path: z.ZodString;
302
+ description: z.ZodString;
303
+ compatibility: z.ZodOptional<z.ZodString>;
304
+ allowedTools: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strict>>;
306
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
307
+ type: z.ZodLiteral<"stdio">;
308
+ command: z.ZodString;
309
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
310
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
311
+ cwd: z.ZodOptional<z.ZodString>;
312
+ }, z.core.$strict>, z.ZodObject<{
313
+ type: z.ZodLiteral<"streamable-http">;
314
+ url: z.ZodString;
315
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
316
+ }, z.core.$strict>, z.ZodObject<{
317
+ type: z.ZodLiteral<"sse">;
318
+ url: z.ZodString;
319
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
320
+ }, z.core.$strict>], "type">>;
321
+ nonPortable: z.ZodArray<z.ZodObject<{
322
+ kind: z.ZodString;
323
+ paths: z.ZodArray<z.ZodString>;
324
+ reason: z.ZodString;
325
+ }, z.core.$strict>>;
326
+ diagnostics: z.ZodArray<z.ZodObject<{
327
+ code: z.ZodString;
328
+ scope: z.ZodEnum<{
329
+ plugin: "plugin";
330
+ skills: "skills";
331
+ skill: "skill";
332
+ mcp: "mcp";
333
+ server: "server";
334
+ extension: "extension";
335
+ translation: "translation";
336
+ }>;
337
+ path: z.ZodString;
338
+ severity: z.ZodEnum<{
339
+ error: "error";
340
+ warning: "warning";
341
+ }>;
342
+ message: z.ZodString;
343
+ }, z.core.$strict>>;
344
+ requirements: z.ZodObject<{
345
+ skills: z.ZodBoolean;
346
+ mcpTransports: z.ZodArray<z.ZodEnum<{
347
+ stdio: "stdio";
348
+ "streamable-http": "streamable-http";
349
+ sse: "sse";
350
+ }>>;
351
+ executables: z.ZodArray<z.ZodString>;
352
+ environmentReview: z.ZodBoolean;
353
+ }, z.core.$strict>;
354
+ }, z.core.$strict>;
355
+ packageKey: z.ZodString;
356
+ dataKey: z.ZodString;
357
+ preserveDataAcrossUpdates: z.ZodLiteral<true>;
358
+ strategy: z.ZodEnum<{
359
+ unavailable: "unavailable";
360
+ "native-agent-plugin": "native-agent-plugin";
361
+ "component-adapter": "component-adapter";
362
+ }>;
363
+ compatibility: z.ZodEnum<{
364
+ partial: "partial";
365
+ full: "full";
366
+ unsupported: "unsupported";
367
+ }>;
368
+ allowedToActivate: z.ZodLiteral<false>;
369
+ approvalRequired: z.ZodLiteral<true>;
370
+ selection: z.ZodObject<{
371
+ skillDirectories: z.ZodArray<z.ZodString>;
372
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
373
+ type: z.ZodLiteral<"stdio">;
374
+ command: z.ZodString;
375
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
376
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
377
+ cwd: z.ZodOptional<z.ZodString>;
378
+ }, z.core.$strict>, z.ZodObject<{
379
+ type: z.ZodLiteral<"streamable-http">;
380
+ url: z.ZodString;
381
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
382
+ }, z.core.$strict>, z.ZodObject<{
383
+ type: z.ZodLiteral<"sse">;
384
+ url: z.ZodString;
385
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
386
+ }, z.core.$strict>], "type">>;
387
+ }, z.core.$strict>;
388
+ disabled: z.ZodArray<z.ZodObject<{
389
+ component: z.ZodString;
390
+ reason: z.ZodString;
391
+ }, z.core.$strict>>;
392
+ requiredConnectors: z.ZodArray<z.ZodString>;
393
+ requiredCredentials: z.ZodArray<z.ZodString>;
394
+ preconditions: z.ZodArray<z.ZodString>;
395
+ }, z.core.$strict>;
396
+ export type AgentManifest = z.infer<typeof AgentManifestSchema>;
397
+ export type McpServer = z.infer<typeof McpServerSchema>;
398
+ export type AgentPackage = z.infer<typeof AgentPackageSchema>;
399
+ export type PackageFile = z.infer<typeof PackageFileSchema>;
400
+ export type Diagnostic = z.infer<typeof DiagnosticSchema>;
401
+ export type HarnessProfile = z.infer<typeof HarnessProfileSchema>;
402
+ export type InstallationPlan = z.infer<typeof InstallationPlanSchema>;
@@ -0,0 +1,200 @@
1
+ import { z } from 'zod';
2
+ // Locally pinned contracts. Never fetch a schema while inspecting a plugin.
3
+ export const AGENT_PLUGINS_VERSION = '1.0.0';
4
+ export const PLUGIN_SCHEMA_ID = 'https://agent-plugins.org/schemas/1.0.0/plugin.schema.json';
5
+ export const MCP_SCHEMA_ID = 'https://agent-plugins.org/schemas/1.0.0/mcp.schema.json';
6
+ export const NORMALIZER_VERSION = 'adea-agent-plugins/1';
7
+ export const PluginNameSchema = z
8
+ .string()
9
+ .min(1)
10
+ .max(64)
11
+ .regex(/^(?!.*(?:--|\.\.))[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$/);
12
+ const Strings = z.record(z.string(), z.string());
13
+ const Digest = z.string().regex(/^sha256:[a-f0-9]{64}$/);
14
+ const Path = z
15
+ .string()
16
+ .min(1)
17
+ .max(1024)
18
+ .regex(
19
+ // eslint-disable-next-line no-control-regex
20
+ /^(?!.*(?:^|\/)\.{1,2}(?:\/|$))[^\\:\u0000-\u001f\u007f/]+(?:\/[^\\:\u0000-\u001f\u007f/]+)*$/);
21
+ export const AgentManifestSchema = z
22
+ .object({
23
+ $schema: z.literal(PLUGIN_SCHEMA_ID),
24
+ name: PluginNameSchema,
25
+ version: z.string().optional(),
26
+ description: z.string().optional(),
27
+ author: z
28
+ .object({
29
+ name: z.string().optional(),
30
+ email: z.string().optional(),
31
+ url: z.string().optional(),
32
+ })
33
+ .strict()
34
+ .optional(),
35
+ homepage: z.string().optional(),
36
+ repository: z.string().optional(),
37
+ license: z.string().optional(),
38
+ keywords: z.array(z.string()).optional(),
39
+ extensions: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),
40
+ })
41
+ .strict();
42
+ export const McpServerSchema = z.discriminatedUnion('type', [
43
+ z
44
+ .object({
45
+ type: z.literal('stdio'),
46
+ command: z.string().min(1),
47
+ args: z.array(z.string()).optional(),
48
+ env: Strings.optional(),
49
+ cwd: z.string().optional(),
50
+ })
51
+ .strict(),
52
+ z
53
+ .object({
54
+ type: z.literal('streamable-http'),
55
+ url: z.string().min(1),
56
+ headers: Strings.optional(),
57
+ })
58
+ .strict(),
59
+ z
60
+ .object({ type: z.literal('sse'), url: z.string().min(1), headers: Strings.optional() })
61
+ .strict(),
62
+ ]);
63
+ export const AgentMcpSchema = z
64
+ .object({ $schema: z.literal(MCP_SCHEMA_ID), mcpServers: z.record(z.string(), McpServerSchema) })
65
+ .strict();
66
+ export const SkillFrontmatterSchema = z
67
+ .object({
68
+ name: z
69
+ .string()
70
+ .min(1)
71
+ .max(64)
72
+ .regex(/^(?!.*--)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/),
73
+ description: z.string().min(1).max(1024),
74
+ license: z.string().optional(),
75
+ compatibility: z.string().min(1).max(500).optional(),
76
+ metadata: Strings.optional(),
77
+ 'allowed-tools': z.string().optional(),
78
+ })
79
+ .strict();
80
+ export const DiagnosticSchema = z
81
+ .object({
82
+ code: z.string().min(1),
83
+ scope: z.enum(['plugin', 'skills', 'skill', 'mcp', 'server', 'extension', 'translation']),
84
+ path: z.string(),
85
+ severity: z.enum(['warning', 'error']),
86
+ message: z.string().min(1),
87
+ })
88
+ .strict();
89
+ export const PackageFileSchema = z.discriminatedUnion('action', [
90
+ z
91
+ .object({
92
+ action: z.literal('copy'),
93
+ sourcePath: Path,
94
+ targetPath: Path,
95
+ digest: Digest,
96
+ preserveMode: z.literal(true),
97
+ })
98
+ .strict(),
99
+ z
100
+ .object({
101
+ action: z.literal('write'),
102
+ targetPath: Path,
103
+ digest: Digest,
104
+ content: z.string(),
105
+ mode: z.literal('0644'),
106
+ })
107
+ .strict(),
108
+ ]);
109
+ export const AgentPackageSchema = z
110
+ .object({
111
+ contractVersion: z.literal(1),
112
+ normalizerVersion: z.literal(NORMALIZER_VERSION),
113
+ format: z.literal('agent-plugins'),
114
+ specVersion: z.literal(AGENT_PLUGINS_VERSION),
115
+ originFormat: z.enum(['agent-plugins', 'legacy']),
116
+ sourceDigest: Digest,
117
+ status: z.enum(['portable', 'partial', 'unavailable']),
118
+ manifest: AgentManifestSchema.optional(),
119
+ packageDigest: Digest.optional(),
120
+ files: z.array(PackageFileSchema).max(8192),
121
+ skills: z.array(z
122
+ .object({
123
+ name: z.string(),
124
+ path: Path,
125
+ description: z.string(),
126
+ compatibility: z.string().optional(),
127
+ allowedTools: z.string().optional(),
128
+ })
129
+ .strict()),
130
+ mcpServers: z.record(z.string(), McpServerSchema),
131
+ nonPortable: z.array(z.object({ kind: z.string(), paths: z.array(Path), reason: z.string() }).strict()),
132
+ diagnostics: z.array(DiagnosticSchema),
133
+ requirements: z
134
+ .object({
135
+ skills: z.boolean(),
136
+ mcpTransports: z.array(z.enum(['stdio', 'streamable-http', 'sse'])),
137
+ executables: z.array(z.string()),
138
+ environmentReview: z.boolean(),
139
+ })
140
+ .strict(),
141
+ })
142
+ .strict();
143
+ /** Reported by the actual Control Plane harness adapter, not inferred from a brand name. */
144
+ export const HarnessProfileSchema = z
145
+ .object({
146
+ profileVersion: z.literal(1),
147
+ harness: z.string().min(1).max(128),
148
+ runtimeVersion: z.string().min(1).max(128),
149
+ adapterVersion: z.string().min(1).max(128),
150
+ agentPlugins: z
151
+ .object({
152
+ versions: z.array(z.string()),
153
+ skills: z.boolean(),
154
+ mcpTransports: z.array(z.enum(['stdio', 'streamable-http', 'sse'])),
155
+ })
156
+ .strict(),
157
+ components: z
158
+ .object({
159
+ skillDirectories: z.boolean(),
160
+ mcpTransports: z.array(z.enum(['stdio', 'streamable-http', 'sse'])),
161
+ })
162
+ .strict(),
163
+ })
164
+ .strict();
165
+ export const InstallationPlanSchema = z
166
+ .object({
167
+ planVersion: z.literal(2),
168
+ pluginId: z.string().min(1),
169
+ releaseId: z.string().min(1),
170
+ instanceId: z.string().min(1).max(256),
171
+ profile: HarnessProfileSchema,
172
+ source: z
173
+ .object({
174
+ repositoryUrl: z.string().url(),
175
+ commitSha: z.string().regex(/^[a-f0-9]{40}$/),
176
+ pluginSubdirectory: z.string().min(1).max(1024),
177
+ contentDigest: Digest,
178
+ })
179
+ .strict(),
180
+ package: AgentPackageSchema,
181
+ packageKey: z.string(),
182
+ dataKey: z.string(),
183
+ preserveDataAcrossUpdates: z.literal(true),
184
+ strategy: z.enum(['native-agent-plugin', 'component-adapter', 'unavailable']),
185
+ compatibility: z.enum(['full', 'partial', 'unsupported']),
186
+ allowedToActivate: z.literal(false),
187
+ approvalRequired: z.literal(true),
188
+ selection: z
189
+ .object({
190
+ skillDirectories: z.array(Path),
191
+ mcpServers: z.record(z.string(), McpServerSchema),
192
+ })
193
+ .strict(),
194
+ disabled: z.array(z.object({ component: z.string(), reason: z.string() }).strict()),
195
+ requiredConnectors: z.array(z.string()),
196
+ requiredCredentials: z.array(z.string()),
197
+ preconditions: z.array(z.string()),
198
+ })
199
+ .strict();
200
+ //# sourceMappingURL=agent-plugins-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-plugins-schema.js","sourceRoot":"","sources":["../src/agent-plugins-schema.ts"],"names":[],"mappings":"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"}