@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,306 @@
1
+ import { createHash } from 'node:crypto';
2
+ export class SourceAdapterError extends Error {
3
+ code;
4
+ details;
5
+ constructor(code, details = []) {
6
+ super(`${code}${details.length > 0 ? `: ${details.join(', ')}` : ''}`);
7
+ this.code = code;
8
+ this.details = details;
9
+ this.name = 'SourceAdapterError';
10
+ }
11
+ }
12
+ export function parseMarketplaceManifest(input, source) {
13
+ const root = record(input, 'MARKETPLACE_NOT_OBJECT');
14
+ const plugins = root.plugins;
15
+ if (!Array.isArray(plugins))
16
+ throw new SourceAdapterError('MARKETPLACE_PLUGINS_REQUIRED');
17
+ const entries = plugins.map((value, index) => parsePluginEntry(value, source, index));
18
+ const duplicateNames = new Set();
19
+ for (const entry of entries) {
20
+ if (duplicateNames.has(entry.name))
21
+ throw new SourceAdapterError('DUPLICATE_PLUGIN_NAME', [entry.name]);
22
+ duplicateNames.add(entry.name);
23
+ }
24
+ return {
25
+ marketplaceName: stringValue(root.name) ?? source.displayName,
26
+ marketplaceDescription: stringValue(root.description) ?? '',
27
+ owner: ownerNames(root.owner),
28
+ entries,
29
+ raw: root,
30
+ };
31
+ }
32
+ /** Parse JSON while rejecting duplicate object keys instead of accepting last-key-wins input. */
33
+ export function parseJsonDocument(text) {
34
+ let index = 0;
35
+ const skip = () => {
36
+ while (/\s/.test(text[index] ?? ''))
37
+ index += 1;
38
+ };
39
+ const string = () => {
40
+ const start = index;
41
+ if (text[index] !== '"')
42
+ throw new SourceAdapterError('JSON_MALFORMED');
43
+ index += 1;
44
+ while (index < text.length) {
45
+ const character = text[index];
46
+ if (character === '\\') {
47
+ index += 2;
48
+ continue;
49
+ }
50
+ if (character === '"') {
51
+ index += 1;
52
+ try {
53
+ return JSON.parse(text.slice(start, index));
54
+ }
55
+ catch {
56
+ throw new SourceAdapterError('JSON_MALFORMED');
57
+ }
58
+ }
59
+ if (character && character < ' ')
60
+ throw new SourceAdapterError('JSON_MALFORMED');
61
+ index += 1;
62
+ }
63
+ throw new SourceAdapterError('JSON_MALFORMED');
64
+ };
65
+ const value = () => {
66
+ skip();
67
+ const character = text[index];
68
+ if (character === '{') {
69
+ index += 1;
70
+ const object = {};
71
+ const keys = new Set();
72
+ skip();
73
+ if (text[index] === '}') {
74
+ index += 1;
75
+ return object;
76
+ }
77
+ while (true) {
78
+ skip();
79
+ const key = string();
80
+ if (keys.has(key))
81
+ throw new SourceAdapterError('JSON_DUPLICATE_KEY', [key]);
82
+ keys.add(key);
83
+ skip();
84
+ if (text[index] !== ':')
85
+ throw new SourceAdapterError('JSON_MALFORMED');
86
+ index += 1;
87
+ object[key] = value();
88
+ skip();
89
+ if (text[index] === '}') {
90
+ index += 1;
91
+ return object;
92
+ }
93
+ if (text[index] !== ',')
94
+ throw new SourceAdapterError('JSON_MALFORMED');
95
+ index += 1;
96
+ }
97
+ }
98
+ if (character === '[') {
99
+ index += 1;
100
+ const array = [];
101
+ skip();
102
+ if (text[index] === ']') {
103
+ index += 1;
104
+ return array;
105
+ }
106
+ while (true) {
107
+ array.push(value());
108
+ skip();
109
+ if (text[index] === ']') {
110
+ index += 1;
111
+ return array;
112
+ }
113
+ if (text[index] !== ',')
114
+ throw new SourceAdapterError('JSON_MALFORMED');
115
+ index += 1;
116
+ }
117
+ }
118
+ if (character === '"')
119
+ return string();
120
+ const start = index;
121
+ while (index < text.length && !/[\s,\]}]/.test(text[index] ?? ''))
122
+ index += 1;
123
+ const token = text.slice(start, index);
124
+ try {
125
+ return JSON.parse(token);
126
+ }
127
+ catch {
128
+ throw new SourceAdapterError('JSON_MALFORMED');
129
+ }
130
+ };
131
+ const parsed = value();
132
+ skip();
133
+ if (index !== text.length)
134
+ throw new SourceAdapterError('JSON_MALFORMED');
135
+ return parsed;
136
+ }
137
+ function parsePluginEntry(value, source, index) {
138
+ const entry = record(value, 'PLUGIN_ENTRY_NOT_OBJECT', String(index));
139
+ const name = requiredString(entry.name, 'PLUGIN_NAME_REQUIRED', String(index));
140
+ const rawSource = entry.source;
141
+ if (rawSource === undefined)
142
+ throw new SourceAdapterError('PLUGIN_SOURCE_REQUIRED', [name]);
143
+ const sourceSpec = parseSourceSpec(rawSource, source, name);
144
+ const category = stringValue(entry.category);
145
+ const categories = [
146
+ ...(Array.isArray(entry.categories) ? entry.categories.filter(isString) : []),
147
+ ...(category ? [category] : []),
148
+ ];
149
+ return {
150
+ name,
151
+ ...(stringValue(entry.displayName) ? { displayName: stringValue(entry.displayName) } : {}),
152
+ description: stringValue(entry.description) ?? '',
153
+ categories: uniqueStrings(categories),
154
+ keywords: uniqueStrings(Array.isArray(entry.keywords) ? entry.keywords.filter(isString) : []),
155
+ authors: authorNames(entry.author ?? entry.authors),
156
+ ...(safeOptionalUrl(entry.homepage) ? { homepage: safeOptionalUrl(entry.homepage) } : {}),
157
+ icons: uniqueStrings([entry.icon, ...(Array.isArray(entry.icons) ? entry.icons : [])].filter(isString)),
158
+ source: sourceSpec,
159
+ policy: recordOrEmpty(entry.policy),
160
+ raw: entry,
161
+ entryDigest: digest(entry),
162
+ };
163
+ }
164
+ export function parseSourceSpec(value, source, pluginName = 'unknown') {
165
+ if (typeof value === 'string') {
166
+ if (looksLikeUrl(value)) {
167
+ return { kind: 'git', repositoryUrl: canonicalRepositoryUrl(value), subdirectory: '' };
168
+ }
169
+ if (/^[a-z][a-z0-9+.-]*:/i.test(value))
170
+ throw new SourceAdapterError('PLUGIN_SOURCE_SCHEME_UNSUPPORTED', [pluginName, value]);
171
+ return { kind: 'local', path: safeRelativePath(value, `PLUGIN_SOURCE_PATH:${pluginName}`) };
172
+ }
173
+ const object = record(value, 'PLUGIN_SOURCE_INVALID', pluginName);
174
+ const kind = stringValue(object.source) ?? stringValue(object.type);
175
+ if (kind === 'local') {
176
+ return {
177
+ kind: 'local',
178
+ path: safeRelativePath(requiredString(object.path, 'LOCAL_PATH_REQUIRED', pluginName)),
179
+ };
180
+ }
181
+ if (kind === 'git-subdir' || kind === 'url' || kind === 'git') {
182
+ const url = canonicalRepositoryUrl(requiredString(object.url, 'GIT_URL_REQUIRED', pluginName));
183
+ const subdirectory = kind === 'git-subdir'
184
+ ? safeRelativePath(requiredString(object.path, 'GIT_PATH_REQUIRED', pluginName))
185
+ : '';
186
+ const ref = stringValue(object.ref);
187
+ const sha = stringValue(object.sha);
188
+ if (sha !== undefined && !/^[a-f0-9]{40}$/.test(sha)) {
189
+ throw new SourceAdapterError('GIT_SHA_INVALID', [pluginName, sha]);
190
+ }
191
+ return {
192
+ kind: 'git',
193
+ repositoryUrl: url,
194
+ subdirectory,
195
+ ...(ref === undefined ? {} : { ref }),
196
+ ...(sha === undefined ? {} : { sha }),
197
+ };
198
+ }
199
+ throw new SourceAdapterError('PLUGIN_SOURCE_KIND_UNSUPPORTED', [pluginName, kind ?? 'missing']);
200
+ }
201
+ export function canonicalRepositoryUrl(input) {
202
+ let parsed;
203
+ try {
204
+ parsed = new URL(input);
205
+ }
206
+ catch {
207
+ throw new SourceAdapterError('GIT_URL_INVALID', [input]);
208
+ }
209
+ if (parsed.protocol !== 'https:')
210
+ throw new SourceAdapterError('GIT_URL_PROTOCOL_UNSUPPORTED', [input]);
211
+ if (parsed.username || parsed.password || parsed.port || parsed.search || parsed.hash) {
212
+ throw new SourceAdapterError('GIT_URL_CREDENTIALS_OR_QUERY_FORBIDDEN', [input]);
213
+ }
214
+ const path = parsed.pathname
215
+ .replace(/\/+/g, '/')
216
+ .replace(/\/+$/, '')
217
+ .replace(/\.git$/, '');
218
+ if (!/^\/[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(path)) {
219
+ throw new SourceAdapterError('GIT_URL_REPOSITORY_PATH_INVALID', [input]);
220
+ }
221
+ return `https://${parsed.hostname.toLowerCase()}${path}`;
222
+ }
223
+ export function safeRelativePath(input, code = 'PATH_INVALID') {
224
+ if (!input || input.startsWith('/') || input.startsWith('\\') || /^[A-Za-z]:/.test(input)) {
225
+ throw new SourceAdapterError(code, [input]);
226
+ }
227
+ const normalized = input.replaceAll('\\', '/').replace(/^(\.\/)+/, '');
228
+ if (!normalized)
229
+ throw new SourceAdapterError(code, [input]);
230
+ const parts = normalized.split('/');
231
+ if (parts.some((part) => part === '..' || part === '.'))
232
+ throw new SourceAdapterError('PATH_TRAVERSAL', [input]);
233
+ if (parts.some((part) => part.length === 0))
234
+ throw new SourceAdapterError(code, [input]);
235
+ return parts.join('/');
236
+ }
237
+ function record(input, code, detail) {
238
+ if (input === null || typeof input !== 'object' || Array.isArray(input)) {
239
+ throw new SourceAdapterError(code, detail ? [detail] : []);
240
+ }
241
+ return input;
242
+ }
243
+ function recordOrEmpty(input) {
244
+ return input && typeof input === 'object' && !Array.isArray(input)
245
+ ? input
246
+ : {};
247
+ }
248
+ function requiredString(input, code, detail) {
249
+ const result = stringValue(input);
250
+ if (!result)
251
+ throw new SourceAdapterError(code, [detail]);
252
+ return result;
253
+ }
254
+ function stringValue(input) {
255
+ return typeof input === 'string' && input.trim() ? input.trim() : undefined;
256
+ }
257
+ function isString(input) {
258
+ return typeof input === 'string' && input.trim().length > 0;
259
+ }
260
+ function uniqueStrings(input) {
261
+ return [...new Set(input.map((value) => value.trim()).filter(Boolean))].toSorted((a, b) => a.localeCompare(b));
262
+ }
263
+ function authorNames(input) {
264
+ if (Array.isArray(input))
265
+ return uniqueStrings(input.flatMap((item) => authorNames(item)));
266
+ if (typeof input === 'string')
267
+ return uniqueStrings([input]);
268
+ if (input && typeof input === 'object') {
269
+ const object = input;
270
+ const name = stringValue(object.name) ?? stringValue(object.email);
271
+ return name ? [name] : [];
272
+ }
273
+ return [];
274
+ }
275
+ function ownerNames(input) {
276
+ return authorNames(input);
277
+ }
278
+ function safeOptionalUrl(input) {
279
+ if (!isString(input))
280
+ return undefined;
281
+ try {
282
+ const parsed = new URL(input);
283
+ return parsed.protocol === 'https:' ? parsed.toString() : undefined;
284
+ }
285
+ catch {
286
+ return undefined;
287
+ }
288
+ }
289
+ function looksLikeUrl(input) {
290
+ return /^https?:\/\//i.test(input);
291
+ }
292
+ function digest(value) {
293
+ return `sha256:${createHash('sha256').update(canonicalJson(value)).digest('hex')}`;
294
+ }
295
+ function canonicalJson(value) {
296
+ if (value === null || typeof value !== 'object')
297
+ return JSON.stringify(value);
298
+ if (Array.isArray(value))
299
+ return `[${value.map(canonicalJson).join(',')}]`;
300
+ const object = value;
301
+ return `{${Object.keys(object)
302
+ .toSorted()
303
+ .map((key) => `${JSON.stringify(key)}:${canonicalJson(object[key])}`)
304
+ .join(',')}}`;
305
+ }
306
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAiDxC,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEhC;IACA;IAFX,YACW,IAAY,EACZ,UAA6B,EAAE;QAExC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAH7D,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAwB;QAGxC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc,EAAE,MAAoB;IAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,CAAC,CAAA;IAEzF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IACrF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAChC,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACrE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IACD,OAAO;QACL,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW;QAC7D,sBAAsB,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3D,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,OAAO;QACP,GAAG,EAAE,IAAI;KACV,CAAA;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAA;IACjD,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,GAAW,EAAE;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAA;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;QACvE,KAAK,IAAI,CAAC,CAAA;QACV,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,CAAA;gBACV,SAAQ;YACV,CAAC;YACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,CAAA;gBACV,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAW,CAAA;gBACvD,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;gBAChD,CAAC;YACH,CAAC;YACD,IAAI,SAAS,IAAI,SAAS,GAAG,GAAG;gBAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;YAChF,KAAK,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAChD,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAY,EAAE;QAC1B,IAAI,EAAE,CAAA;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,CAAA;YACV,MAAM,MAAM,GAA4B,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;YAC9B,IAAI,EAAE,CAAA;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxB,KAAK,IAAI,CAAC,CAAA;gBACV,OAAO,MAAM,CAAA;YACf,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,EAAE,CAAA;gBACN,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;gBACpB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,IAAI,EAAE,CAAA;gBACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;oBAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;gBACvE,KAAK,IAAI,CAAC,CAAA;gBACV,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAA;gBACrB,IAAI,EAAE,CAAA;gBACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxB,KAAK,IAAI,CAAC,CAAA;oBACV,OAAO,MAAM,CAAA;gBACf,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;oBAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;gBACvE,KAAK,IAAI,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,CAAA;YACV,MAAM,KAAK,GAAc,EAAE,CAAA;YAC3B,IAAI,EAAE,CAAA;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxB,KAAK,IAAI,CAAC,CAAA;gBACV,OAAO,KAAK,CAAA;YACd,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;gBACnB,IAAI,EAAE,CAAA;gBACN,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxB,KAAK,IAAI,CAAC,CAAA;oBACV,OAAO,KAAK,CAAA;gBACd,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;oBAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;gBACvE,KAAK,IAAI,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;QACD,IAAI,SAAS,KAAK,GAAG;YAAE,OAAO,MAAM,EAAE,CAAA;QACtC,MAAM,KAAK,GAAG,KAAK,CAAA;QACnB,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,IAAI,CAAC,CAAA;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAA;IACtB,IAAI,EAAE,CAAA;IACN,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IACzE,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAc,EACd,MAAoB,EACpB,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,yBAAyB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;IAC9B,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,IAAI,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3F,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAA;IACD,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;QACjD,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;QACrC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;QACnD,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,KAAK,EAAE,aAAa,CAClB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAClF;QACD,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,GAAG,EAAE,KAAK;QACV,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC;KAC3B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAc,EACd,MAAoB,EACpB,UAAU,GAAG,SAAS;IAEtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;QACxF,CAAC;QACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,MAAM,IAAI,kBAAkB,CAAC,kCAAkC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;QACvF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,UAAU,EAAE,CAAC,EAAE,CAAA;IAC7F,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;SACvF,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,sBAAsB,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9F,MAAM,YAAY,GAChB,IAAI,KAAK,YAAY;YACnB,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;YAChF,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;QACpE,CAAC;QACD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,aAAa,EAAE,GAAG;YAClB,YAAY;YACZ,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACrC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;SACtC,CAAA;IACH,CAAC;IACD,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,EAAE,CAAC,UAAU,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC9B,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACvE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,IAAI,kBAAkB,CAAC,wCAAwC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;SACzB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACxB,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,WAAW,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,IAAI,GAAG,cAAc;IACnE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACtE,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACzD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACxF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,IAAY,EAAE,MAAe;IAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAA;AACR,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,MAAc;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxF,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAA;QAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AACpF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC1E,MAAM,MAAM,GAAG,KAAgC,CAAA;IAC/C,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,QAAQ,EAAE;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACpE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;AACjB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "@adea-ai/plugins",
3
+ "version": "1.0.0",
4
+ "description": "Deterministic compiler for AI agent plugin marketplaces: schemas, source parsing, provenance verification, per-harness materialization, and provenance-checked static artifacts.",
5
+ "keywords": [
6
+ "agents",
7
+ "catalog",
8
+ "compiler",
9
+ "deterministic",
10
+ "harness",
11
+ "marketplace",
12
+ "mcp",
13
+ "plugins",
14
+ "provenance",
15
+ "schema",
16
+ "skills"
17
+ ],
18
+ "homepage": "https://github.com/adea-ai/plugins#readme",
19
+ "bugs": "https://github.com/adea-ai/plugins/issues",
20
+ "license": "Apache-2.0",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/adea-ai/plugins.git",
24
+ "directory": "packages/plugins"
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "src",
29
+ "schemas",
30
+ "README.md"
31
+ ],
32
+ "type": "module",
33
+ "main": "dist/index.js",
34
+ "types": "dist/index.d.ts",
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "bun": "./src/index.ts",
39
+ "import": "./dist/index.js"
40
+ },
41
+ "./schema": {
42
+ "types": "./dist/schema.d.ts",
43
+ "bun": "./src/schema.ts",
44
+ "import": "./dist/schema.js"
45
+ },
46
+ "./sources": {
47
+ "types": "./dist/sources.d.ts",
48
+ "bun": "./src/sources.ts",
49
+ "import": "./dist/sources.js"
50
+ },
51
+ "./harness": {
52
+ "types": "./dist/harness.d.ts",
53
+ "bun": "./src/harness.ts",
54
+ "import": "./dist/harness.js"
55
+ },
56
+ "./publication": {
57
+ "types": "./dist/publication.d.ts",
58
+ "bun": "./src/publication.ts",
59
+ "import": "./dist/publication.js"
60
+ },
61
+ "./portable-catalog": {
62
+ "types": "./dist/portable-catalog.d.ts",
63
+ "bun": "./src/portable-catalog.ts",
64
+ "import": "./dist/portable-catalog.js"
65
+ },
66
+ "./agent-plugins": {
67
+ "types": "./dist/agent-plugins-catalog.d.ts",
68
+ "bun": "./src/agent-plugins-catalog.ts",
69
+ "import": "./dist/agent-plugins-catalog.js"
70
+ },
71
+ "./agent-plugins/schema": {
72
+ "types": "./dist/agent-plugins-schema.d.ts",
73
+ "bun": "./src/agent-plugins-schema.ts",
74
+ "import": "./dist/agent-plugins-schema.js"
75
+ },
76
+ "./agent-plugins/harness": {
77
+ "types": "./dist/agent-plugins-harness.d.ts",
78
+ "bun": "./src/agent-plugins-harness.ts",
79
+ "import": "./dist/agent-plugins-harness.js"
80
+ },
81
+ "./schema/*": "./schemas/*"
82
+ },
83
+ "publishConfig": {
84
+ "access": "public",
85
+ "provenance": true
86
+ },
87
+ "scripts": {
88
+ "build": "tsc -p tsconfig.json",
89
+ "typecheck": "tsc -p tsconfig.json --noEmit"
90
+ },
91
+ "dependencies": {
92
+ "tar-stream": "^3.2.1",
93
+ "yaml": "2.9.1",
94
+ "zod": "^4.6.5"
95
+ },
96
+ "engines": {
97
+ "bun": ">=1.4.0 <2",
98
+ "node": ">=24 <25"
99
+ },
100
+ "devDependencies": {},
101
+ "peerDependencies": {}
102
+ }