@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,695 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "planVersion": {
6
+ "type": "number",
7
+ "const": 2
8
+ },
9
+ "pluginId": {
10
+ "type": "string",
11
+ "minLength": 1
12
+ },
13
+ "releaseId": {
14
+ "type": "string",
15
+ "minLength": 1
16
+ },
17
+ "instanceId": {
18
+ "type": "string",
19
+ "minLength": 1,
20
+ "maxLength": 256
21
+ },
22
+ "profile": {
23
+ "type": "object",
24
+ "properties": {
25
+ "profileVersion": {
26
+ "type": "number",
27
+ "const": 1
28
+ },
29
+ "harness": {
30
+ "type": "string",
31
+ "minLength": 1,
32
+ "maxLength": 128
33
+ },
34
+ "runtimeVersion": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "maxLength": 128
38
+ },
39
+ "adapterVersion": {
40
+ "type": "string",
41
+ "minLength": 1,
42
+ "maxLength": 128
43
+ },
44
+ "agentPlugins": {
45
+ "type": "object",
46
+ "properties": {
47
+ "versions": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "skills": {
54
+ "type": "boolean"
55
+ },
56
+ "mcpTransports": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "string",
60
+ "enum": ["stdio", "streamable-http", "sse"]
61
+ }
62
+ }
63
+ },
64
+ "required": ["versions", "skills", "mcpTransports"],
65
+ "additionalProperties": false
66
+ },
67
+ "components": {
68
+ "type": "object",
69
+ "properties": {
70
+ "skillDirectories": {
71
+ "type": "boolean"
72
+ },
73
+ "mcpTransports": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string",
77
+ "enum": ["stdio", "streamable-http", "sse"]
78
+ }
79
+ }
80
+ },
81
+ "required": ["skillDirectories", "mcpTransports"],
82
+ "additionalProperties": false
83
+ }
84
+ },
85
+ "required": [
86
+ "profileVersion",
87
+ "harness",
88
+ "runtimeVersion",
89
+ "adapterVersion",
90
+ "agentPlugins",
91
+ "components"
92
+ ],
93
+ "additionalProperties": false
94
+ },
95
+ "source": {
96
+ "type": "object",
97
+ "properties": {
98
+ "repositoryUrl": {
99
+ "type": "string",
100
+ "format": "uri"
101
+ },
102
+ "commitSha": {
103
+ "type": "string",
104
+ "pattern": "^[a-f0-9]{40}$"
105
+ },
106
+ "pluginSubdirectory": {
107
+ "type": "string",
108
+ "minLength": 1,
109
+ "maxLength": 1024
110
+ },
111
+ "contentDigest": {
112
+ "type": "string",
113
+ "pattern": "^sha256:[a-f0-9]{64}$"
114
+ }
115
+ },
116
+ "required": ["repositoryUrl", "commitSha", "pluginSubdirectory", "contentDigest"],
117
+ "additionalProperties": false
118
+ },
119
+ "package": {
120
+ "type": "object",
121
+ "properties": {
122
+ "contractVersion": {
123
+ "type": "number",
124
+ "const": 1
125
+ },
126
+ "normalizerVersion": {
127
+ "type": "string",
128
+ "const": "adea-agent-plugins/1"
129
+ },
130
+ "format": {
131
+ "type": "string",
132
+ "const": "agent-plugins"
133
+ },
134
+ "specVersion": {
135
+ "type": "string",
136
+ "const": "1.0.0"
137
+ },
138
+ "originFormat": {
139
+ "type": "string",
140
+ "enum": ["agent-plugins", "legacy"]
141
+ },
142
+ "sourceDigest": {
143
+ "type": "string",
144
+ "pattern": "^sha256:[a-f0-9]{64}$"
145
+ },
146
+ "status": {
147
+ "type": "string",
148
+ "enum": ["portable", "partial", "unavailable"]
149
+ },
150
+ "manifest": {
151
+ "type": "object",
152
+ "properties": {
153
+ "$schema": {
154
+ "type": "string",
155
+ "const": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json"
156
+ },
157
+ "name": {
158
+ "type": "string",
159
+ "minLength": 1,
160
+ "maxLength": 64,
161
+ "pattern": "^(?!.*(?:--|\\.\\.))[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$"
162
+ },
163
+ "version": {
164
+ "type": "string"
165
+ },
166
+ "description": {
167
+ "type": "string"
168
+ },
169
+ "author": {
170
+ "type": "object",
171
+ "properties": {
172
+ "name": {
173
+ "type": "string"
174
+ },
175
+ "email": {
176
+ "type": "string"
177
+ },
178
+ "url": {
179
+ "type": "string"
180
+ }
181
+ },
182
+ "additionalProperties": false
183
+ },
184
+ "homepage": {
185
+ "type": "string"
186
+ },
187
+ "repository": {
188
+ "type": "string"
189
+ },
190
+ "license": {
191
+ "type": "string"
192
+ },
193
+ "keywords": {
194
+ "type": "array",
195
+ "items": {
196
+ "type": "string"
197
+ }
198
+ },
199
+ "extensions": {
200
+ "type": "object",
201
+ "propertyNames": {
202
+ "type": "string"
203
+ },
204
+ "additionalProperties": {
205
+ "type": "object",
206
+ "propertyNames": {
207
+ "type": "string"
208
+ },
209
+ "additionalProperties": {}
210
+ }
211
+ }
212
+ },
213
+ "required": ["$schema", "name"],
214
+ "additionalProperties": false
215
+ },
216
+ "packageDigest": {
217
+ "type": "string",
218
+ "pattern": "^sha256:[a-f0-9]{64}$"
219
+ },
220
+ "files": {
221
+ "maxItems": 8192,
222
+ "type": "array",
223
+ "items": {
224
+ "oneOf": [
225
+ {
226
+ "type": "object",
227
+ "properties": {
228
+ "action": {
229
+ "type": "string",
230
+ "const": "copy"
231
+ },
232
+ "sourcePath": {
233
+ "type": "string",
234
+ "minLength": 1,
235
+ "maxLength": 1024,
236
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
237
+ },
238
+ "targetPath": {
239
+ "type": "string",
240
+ "minLength": 1,
241
+ "maxLength": 1024,
242
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
243
+ },
244
+ "digest": {
245
+ "type": "string",
246
+ "pattern": "^sha256:[a-f0-9]{64}$"
247
+ },
248
+ "preserveMode": {
249
+ "type": "boolean",
250
+ "const": true
251
+ }
252
+ },
253
+ "required": ["action", "sourcePath", "targetPath", "digest", "preserveMode"],
254
+ "additionalProperties": false
255
+ },
256
+ {
257
+ "type": "object",
258
+ "properties": {
259
+ "action": {
260
+ "type": "string",
261
+ "const": "write"
262
+ },
263
+ "targetPath": {
264
+ "type": "string",
265
+ "minLength": 1,
266
+ "maxLength": 1024,
267
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
268
+ },
269
+ "digest": {
270
+ "type": "string",
271
+ "pattern": "^sha256:[a-f0-9]{64}$"
272
+ },
273
+ "content": {
274
+ "type": "string"
275
+ },
276
+ "mode": {
277
+ "type": "string",
278
+ "const": "0644"
279
+ }
280
+ },
281
+ "required": ["action", "targetPath", "digest", "content", "mode"],
282
+ "additionalProperties": false
283
+ }
284
+ ]
285
+ }
286
+ },
287
+ "skills": {
288
+ "type": "array",
289
+ "items": {
290
+ "type": "object",
291
+ "properties": {
292
+ "name": {
293
+ "type": "string"
294
+ },
295
+ "path": {
296
+ "type": "string",
297
+ "minLength": 1,
298
+ "maxLength": 1024,
299
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
300
+ },
301
+ "description": {
302
+ "type": "string"
303
+ },
304
+ "compatibility": {
305
+ "type": "string"
306
+ },
307
+ "allowedTools": {
308
+ "type": "string"
309
+ }
310
+ },
311
+ "required": ["name", "path", "description"],
312
+ "additionalProperties": false
313
+ }
314
+ },
315
+ "mcpServers": {
316
+ "type": "object",
317
+ "propertyNames": {
318
+ "type": "string"
319
+ },
320
+ "additionalProperties": {
321
+ "oneOf": [
322
+ {
323
+ "type": "object",
324
+ "properties": {
325
+ "type": {
326
+ "type": "string",
327
+ "const": "stdio"
328
+ },
329
+ "command": {
330
+ "type": "string",
331
+ "minLength": 1
332
+ },
333
+ "args": {
334
+ "type": "array",
335
+ "items": {
336
+ "type": "string"
337
+ }
338
+ },
339
+ "env": {
340
+ "type": "object",
341
+ "propertyNames": {
342
+ "type": "string"
343
+ },
344
+ "additionalProperties": {
345
+ "type": "string"
346
+ }
347
+ },
348
+ "cwd": {
349
+ "type": "string"
350
+ }
351
+ },
352
+ "required": ["type", "command"],
353
+ "additionalProperties": false
354
+ },
355
+ {
356
+ "type": "object",
357
+ "properties": {
358
+ "type": {
359
+ "type": "string",
360
+ "const": "streamable-http"
361
+ },
362
+ "url": {
363
+ "type": "string",
364
+ "minLength": 1
365
+ },
366
+ "headers": {
367
+ "type": "object",
368
+ "propertyNames": {
369
+ "type": "string"
370
+ },
371
+ "additionalProperties": {
372
+ "type": "string"
373
+ }
374
+ }
375
+ },
376
+ "required": ["type", "url"],
377
+ "additionalProperties": false
378
+ },
379
+ {
380
+ "type": "object",
381
+ "properties": {
382
+ "type": {
383
+ "type": "string",
384
+ "const": "sse"
385
+ },
386
+ "url": {
387
+ "type": "string",
388
+ "minLength": 1
389
+ },
390
+ "headers": {
391
+ "type": "object",
392
+ "propertyNames": {
393
+ "type": "string"
394
+ },
395
+ "additionalProperties": {
396
+ "type": "string"
397
+ }
398
+ }
399
+ },
400
+ "required": ["type", "url"],
401
+ "additionalProperties": false
402
+ }
403
+ ]
404
+ }
405
+ },
406
+ "nonPortable": {
407
+ "type": "array",
408
+ "items": {
409
+ "type": "object",
410
+ "properties": {
411
+ "kind": {
412
+ "type": "string"
413
+ },
414
+ "paths": {
415
+ "type": "array",
416
+ "items": {
417
+ "type": "string",
418
+ "minLength": 1,
419
+ "maxLength": 1024,
420
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
421
+ }
422
+ },
423
+ "reason": {
424
+ "type": "string"
425
+ }
426
+ },
427
+ "required": ["kind", "paths", "reason"],
428
+ "additionalProperties": false
429
+ }
430
+ },
431
+ "diagnostics": {
432
+ "type": "array",
433
+ "items": {
434
+ "type": "object",
435
+ "properties": {
436
+ "code": {
437
+ "type": "string",
438
+ "minLength": 1
439
+ },
440
+ "scope": {
441
+ "type": "string",
442
+ "enum": ["plugin", "skills", "skill", "mcp", "server", "extension", "translation"]
443
+ },
444
+ "path": {
445
+ "type": "string"
446
+ },
447
+ "severity": {
448
+ "type": "string",
449
+ "enum": ["warning", "error"]
450
+ },
451
+ "message": {
452
+ "type": "string",
453
+ "minLength": 1
454
+ }
455
+ },
456
+ "required": ["code", "scope", "path", "severity", "message"],
457
+ "additionalProperties": false
458
+ }
459
+ },
460
+ "requirements": {
461
+ "type": "object",
462
+ "properties": {
463
+ "skills": {
464
+ "type": "boolean"
465
+ },
466
+ "mcpTransports": {
467
+ "type": "array",
468
+ "items": {
469
+ "type": "string",
470
+ "enum": ["stdio", "streamable-http", "sse"]
471
+ }
472
+ },
473
+ "executables": {
474
+ "type": "array",
475
+ "items": {
476
+ "type": "string"
477
+ }
478
+ },
479
+ "environmentReview": {
480
+ "type": "boolean"
481
+ }
482
+ },
483
+ "required": ["skills", "mcpTransports", "executables", "environmentReview"],
484
+ "additionalProperties": false
485
+ }
486
+ },
487
+ "required": [
488
+ "contractVersion",
489
+ "normalizerVersion",
490
+ "format",
491
+ "specVersion",
492
+ "originFormat",
493
+ "sourceDigest",
494
+ "status",
495
+ "files",
496
+ "skills",
497
+ "mcpServers",
498
+ "nonPortable",
499
+ "diagnostics",
500
+ "requirements"
501
+ ],
502
+ "additionalProperties": false
503
+ },
504
+ "packageKey": {
505
+ "type": "string"
506
+ },
507
+ "dataKey": {
508
+ "type": "string"
509
+ },
510
+ "preserveDataAcrossUpdates": {
511
+ "type": "boolean",
512
+ "const": true
513
+ },
514
+ "strategy": {
515
+ "type": "string",
516
+ "enum": ["native-agent-plugin", "component-adapter", "unavailable"]
517
+ },
518
+ "compatibility": {
519
+ "type": "string",
520
+ "enum": ["full", "partial", "unsupported"]
521
+ },
522
+ "allowedToActivate": {
523
+ "type": "boolean",
524
+ "const": false
525
+ },
526
+ "approvalRequired": {
527
+ "type": "boolean",
528
+ "const": true
529
+ },
530
+ "selection": {
531
+ "type": "object",
532
+ "properties": {
533
+ "skillDirectories": {
534
+ "type": "array",
535
+ "items": {
536
+ "type": "string",
537
+ "minLength": 1,
538
+ "maxLength": 1024,
539
+ "pattern": "^(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))[^\\\\:\\u0000-\\u001f\\u007f/]+(?:\\/[^\\\\:\\u0000-\\u001f\\u007f/]+)*$"
540
+ }
541
+ },
542
+ "mcpServers": {
543
+ "type": "object",
544
+ "propertyNames": {
545
+ "type": "string"
546
+ },
547
+ "additionalProperties": {
548
+ "oneOf": [
549
+ {
550
+ "type": "object",
551
+ "properties": {
552
+ "type": {
553
+ "type": "string",
554
+ "const": "stdio"
555
+ },
556
+ "command": {
557
+ "type": "string",
558
+ "minLength": 1
559
+ },
560
+ "args": {
561
+ "type": "array",
562
+ "items": {
563
+ "type": "string"
564
+ }
565
+ },
566
+ "env": {
567
+ "type": "object",
568
+ "propertyNames": {
569
+ "type": "string"
570
+ },
571
+ "additionalProperties": {
572
+ "type": "string"
573
+ }
574
+ },
575
+ "cwd": {
576
+ "type": "string"
577
+ }
578
+ },
579
+ "required": ["type", "command"],
580
+ "additionalProperties": false
581
+ },
582
+ {
583
+ "type": "object",
584
+ "properties": {
585
+ "type": {
586
+ "type": "string",
587
+ "const": "streamable-http"
588
+ },
589
+ "url": {
590
+ "type": "string",
591
+ "minLength": 1
592
+ },
593
+ "headers": {
594
+ "type": "object",
595
+ "propertyNames": {
596
+ "type": "string"
597
+ },
598
+ "additionalProperties": {
599
+ "type": "string"
600
+ }
601
+ }
602
+ },
603
+ "required": ["type", "url"],
604
+ "additionalProperties": false
605
+ },
606
+ {
607
+ "type": "object",
608
+ "properties": {
609
+ "type": {
610
+ "type": "string",
611
+ "const": "sse"
612
+ },
613
+ "url": {
614
+ "type": "string",
615
+ "minLength": 1
616
+ },
617
+ "headers": {
618
+ "type": "object",
619
+ "propertyNames": {
620
+ "type": "string"
621
+ },
622
+ "additionalProperties": {
623
+ "type": "string"
624
+ }
625
+ }
626
+ },
627
+ "required": ["type", "url"],
628
+ "additionalProperties": false
629
+ }
630
+ ]
631
+ }
632
+ }
633
+ },
634
+ "required": ["skillDirectories", "mcpServers"],
635
+ "additionalProperties": false
636
+ },
637
+ "disabled": {
638
+ "type": "array",
639
+ "items": {
640
+ "type": "object",
641
+ "properties": {
642
+ "component": {
643
+ "type": "string"
644
+ },
645
+ "reason": {
646
+ "type": "string"
647
+ }
648
+ },
649
+ "required": ["component", "reason"],
650
+ "additionalProperties": false
651
+ }
652
+ },
653
+ "requiredConnectors": {
654
+ "type": "array",
655
+ "items": {
656
+ "type": "string"
657
+ }
658
+ },
659
+ "requiredCredentials": {
660
+ "type": "array",
661
+ "items": {
662
+ "type": "string"
663
+ }
664
+ },
665
+ "preconditions": {
666
+ "type": "array",
667
+ "items": {
668
+ "type": "string"
669
+ }
670
+ }
671
+ },
672
+ "required": [
673
+ "planVersion",
674
+ "pluginId",
675
+ "releaseId",
676
+ "instanceId",
677
+ "profile",
678
+ "source",
679
+ "package",
680
+ "packageKey",
681
+ "dataKey",
682
+ "preserveDataAcrossUpdates",
683
+ "strategy",
684
+ "compatibility",
685
+ "allowedToActivate",
686
+ "approvalRequired",
687
+ "selection",
688
+ "disabled",
689
+ "requiredConnectors",
690
+ "requiredCredentials",
691
+ "preconditions"
692
+ ],
693
+ "additionalProperties": false,
694
+ "$id": "https://adea.dev/schemas/plugins/installation-plan.v2.json"
695
+ }