@ikenga/contract 0.4.0 → 0.5.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.
@@ -0,0 +1,655 @@
1
+ {
2
+ "$ref": "#/definitions/IkengaRegistryPkgDetail",
3
+ "definitions": {
4
+ "IkengaRegistryPkgDetail": {
5
+ "type": "object",
6
+ "properties": {
7
+ "$schemaVersion": {
8
+ "type": "number",
9
+ "const": 1
10
+ },
11
+ "name": {
12
+ "type": "string"
13
+ },
14
+ "updatedAt": {
15
+ "type": "string"
16
+ },
17
+ "versions": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "version": {
23
+ "type": "string"
24
+ },
25
+ "publishedAt": {
26
+ "type": "string"
27
+ },
28
+ "tarball": {
29
+ "type": "string",
30
+ "format": "uri"
31
+ },
32
+ "integrity": {
33
+ "type": "string"
34
+ },
35
+ "size": {
36
+ "type": "integer",
37
+ "minimum": 0
38
+ },
39
+ "manifest": {
40
+ "type": "object",
41
+ "properties": {
42
+ "id": {
43
+ "type": "string",
44
+ "pattern": "^[a-z0-9]+(\\.[a-z0-9-]+)+$"
45
+ },
46
+ "name": {
47
+ "type": "string"
48
+ },
49
+ "version": {
50
+ "type": "string"
51
+ },
52
+ "ikenga_api": {
53
+ "type": "string",
54
+ "pattern": "^\\d+$"
55
+ },
56
+ "kind": {
57
+ "type": "string"
58
+ },
59
+ "author": {
60
+ "type": "object",
61
+ "properties": {
62
+ "name": {
63
+ "type": "string"
64
+ },
65
+ "key": {
66
+ "type": "string"
67
+ }
68
+ },
69
+ "required": [
70
+ "name"
71
+ ],
72
+ "additionalProperties": false
73
+ },
74
+ "targets": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ },
79
+ "default": []
80
+ },
81
+ "skills": {
82
+ "type": "string"
83
+ },
84
+ "commands": {
85
+ "type": "string"
86
+ },
87
+ "agents": {
88
+ "type": "string"
89
+ },
90
+ "mcp": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "object",
94
+ "properties": {
95
+ "name": {
96
+ "type": "string"
97
+ },
98
+ "command": {
99
+ "type": "string"
100
+ },
101
+ "args": {
102
+ "type": "array",
103
+ "items": {
104
+ "type": "string"
105
+ },
106
+ "default": []
107
+ },
108
+ "env": {
109
+ "type": "object",
110
+ "additionalProperties": {
111
+ "type": "string"
112
+ },
113
+ "default": {}
114
+ },
115
+ "lifecycle": {
116
+ "type": "string",
117
+ "enum": [
118
+ "per-call",
119
+ "long-lived"
120
+ ]
121
+ }
122
+ },
123
+ "required": [
124
+ "name",
125
+ "command"
126
+ ],
127
+ "additionalProperties": false
128
+ },
129
+ "default": []
130
+ },
131
+ "sidecars": {
132
+ "type": "array",
133
+ "items": {
134
+ "type": "object",
135
+ "properties": {
136
+ "name": {
137
+ "type": "string"
138
+ },
139
+ "bin": {
140
+ "type": "string"
141
+ },
142
+ "stdio": {
143
+ "type": "string",
144
+ "default": "json"
145
+ }
146
+ },
147
+ "required": [
148
+ "name",
149
+ "bin"
150
+ ],
151
+ "additionalProperties": false
152
+ },
153
+ "default": []
154
+ },
155
+ "permissions": {
156
+ "type": "object",
157
+ "properties": {
158
+ "shell.execute": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "string"
162
+ },
163
+ "default": []
164
+ },
165
+ "fs.read": {
166
+ "type": "array",
167
+ "items": {
168
+ "type": "string"
169
+ },
170
+ "default": []
171
+ },
172
+ "fs.write": {
173
+ "type": "array",
174
+ "items": {
175
+ "type": "string"
176
+ },
177
+ "default": []
178
+ },
179
+ "net": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "string"
183
+ },
184
+ "default": []
185
+ },
186
+ "supabase.tables": {
187
+ "type": "array",
188
+ "items": {
189
+ "type": "string"
190
+ },
191
+ "default": []
192
+ },
193
+ "vault.keys": {
194
+ "type": "array",
195
+ "items": {
196
+ "type": "string"
197
+ },
198
+ "default": []
199
+ }
200
+ },
201
+ "additionalProperties": false,
202
+ "default": {}
203
+ },
204
+ "migrations": {
205
+ "type": "string"
206
+ },
207
+ "settings": {
208
+ "type": "object",
209
+ "properties": {
210
+ "schema": {
211
+ "type": "array",
212
+ "items": {
213
+ "type": "object",
214
+ "properties": {
215
+ "key": {
216
+ "type": "string"
217
+ },
218
+ "type": {
219
+ "type": "string",
220
+ "enum": [
221
+ "string",
222
+ "number",
223
+ "boolean",
224
+ "secret"
225
+ ]
226
+ },
227
+ "label": {
228
+ "type": "string"
229
+ },
230
+ "default": {},
231
+ "description": {
232
+ "type": "string"
233
+ }
234
+ },
235
+ "required": [
236
+ "key",
237
+ "type",
238
+ "label"
239
+ ],
240
+ "additionalProperties": false
241
+ },
242
+ "default": []
243
+ }
244
+ },
245
+ "additionalProperties": false
246
+ },
247
+ "ui": {
248
+ "type": "object",
249
+ "properties": {
250
+ "nav": {
251
+ "type": "array",
252
+ "items": {
253
+ "type": "object",
254
+ "properties": {
255
+ "id": {
256
+ "type": "string"
257
+ },
258
+ "label": {
259
+ "type": "string"
260
+ },
261
+ "icon": {
262
+ "type": "string"
263
+ },
264
+ "section": {
265
+ "type": "string"
266
+ },
267
+ "route": {
268
+ "type": "string"
269
+ }
270
+ },
271
+ "required": [
272
+ "id",
273
+ "label",
274
+ "route"
275
+ ],
276
+ "additionalProperties": false
277
+ },
278
+ "default": []
279
+ },
280
+ "routes": {
281
+ "type": "array",
282
+ "items": {
283
+ "type": "object",
284
+ "properties": {
285
+ "path": {
286
+ "type": "string"
287
+ },
288
+ "kind": {
289
+ "type": "string",
290
+ "enum": [
291
+ "iframe",
292
+ "component"
293
+ ]
294
+ },
295
+ "source": {
296
+ "type": "string"
297
+ }
298
+ },
299
+ "required": [
300
+ "path",
301
+ "kind",
302
+ "source"
303
+ ],
304
+ "additionalProperties": false
305
+ },
306
+ "default": []
307
+ },
308
+ "command_palette": {
309
+ "type": "array",
310
+ "items": {
311
+ "type": "object",
312
+ "properties": {
313
+ "id": {
314
+ "type": "string"
315
+ },
316
+ "label": {
317
+ "type": "string"
318
+ },
319
+ "shortcut": {
320
+ "type": "string"
321
+ },
322
+ "action": {}
323
+ },
324
+ "required": [
325
+ "id",
326
+ "label"
327
+ ],
328
+ "additionalProperties": false
329
+ },
330
+ "default": []
331
+ },
332
+ "side_pane_viewers": {
333
+ "type": "array",
334
+ "items": {
335
+ "type": "object",
336
+ "properties": {
337
+ "id": {
338
+ "type": "string"
339
+ },
340
+ "label": {
341
+ "type": "string"
342
+ },
343
+ "route": {
344
+ "type": "string"
345
+ }
346
+ },
347
+ "required": [
348
+ "id",
349
+ "label",
350
+ "route"
351
+ ],
352
+ "additionalProperties": false
353
+ },
354
+ "default": []
355
+ },
356
+ "csp": {
357
+ "type": "object",
358
+ "additionalProperties": {
359
+ "type": "array",
360
+ "items": {
361
+ "type": "string"
362
+ }
363
+ }
364
+ },
365
+ "permissions": {
366
+ "type": "object",
367
+ "additionalProperties": {
368
+ "type": "array",
369
+ "items": {
370
+ "type": "string"
371
+ }
372
+ }
373
+ }
374
+ },
375
+ "additionalProperties": false,
376
+ "default": {}
377
+ },
378
+ "iyke": {
379
+ "type": "object",
380
+ "properties": {
381
+ "routes": {
382
+ "type": "array",
383
+ "items": {
384
+ "type": "object",
385
+ "properties": {
386
+ "method": {
387
+ "type": "string",
388
+ "enum": [
389
+ "GET",
390
+ "POST"
391
+ ]
392
+ },
393
+ "path": {
394
+ "type": "string"
395
+ },
396
+ "handler": {
397
+ "type": "string"
398
+ }
399
+ },
400
+ "required": [
401
+ "method",
402
+ "path",
403
+ "handler"
404
+ ],
405
+ "additionalProperties": false
406
+ },
407
+ "default": []
408
+ },
409
+ "events": {
410
+ "type": "array",
411
+ "items": {
412
+ "type": "string"
413
+ },
414
+ "default": []
415
+ }
416
+ },
417
+ "additionalProperties": false
418
+ },
419
+ "cron": {
420
+ "type": "array",
421
+ "items": {
422
+ "type": "object",
423
+ "properties": {
424
+ "id": {
425
+ "type": "string"
426
+ },
427
+ "expr": {
428
+ "type": "string"
429
+ },
430
+ "handler": {
431
+ "type": "string"
432
+ },
433
+ "env_from_settings": {
434
+ "type": "array",
435
+ "items": {
436
+ "type": "string"
437
+ },
438
+ "default": []
439
+ }
440
+ },
441
+ "required": [
442
+ "id",
443
+ "expr",
444
+ "handler"
445
+ ],
446
+ "additionalProperties": false
447
+ },
448
+ "default": []
449
+ },
450
+ "window": {
451
+ "type": "object",
452
+ "properties": {
453
+ "label": {
454
+ "type": "string"
455
+ },
456
+ "url": {
457
+ "type": "string"
458
+ },
459
+ "size": {
460
+ "type": "array",
461
+ "minItems": 2,
462
+ "maxItems": 2,
463
+ "items": [
464
+ {
465
+ "type": "number"
466
+ },
467
+ {
468
+ "type": "number"
469
+ }
470
+ ]
471
+ },
472
+ "decorations": {
473
+ "type": "boolean"
474
+ },
475
+ "menu": {
476
+ "type": "string"
477
+ }
478
+ },
479
+ "required": [
480
+ "label",
481
+ "url"
482
+ ],
483
+ "additionalProperties": false
484
+ },
485
+ "queries": {
486
+ "type": "object",
487
+ "properties": {
488
+ "key_prefixes": {
489
+ "type": "array",
490
+ "items": {
491
+ "type": "string"
492
+ },
493
+ "default": []
494
+ }
495
+ },
496
+ "additionalProperties": false
497
+ },
498
+ "engine": {
499
+ "type": "object",
500
+ "properties": {
501
+ "agentId": {
502
+ "type": "string",
503
+ "minLength": 1
504
+ },
505
+ "display": {
506
+ "type": "string"
507
+ },
508
+ "capabilities": {
509
+ "type": "object",
510
+ "properties": {
511
+ "streaming": {
512
+ "type": "boolean"
513
+ },
514
+ "toolUse": {
515
+ "type": "boolean"
516
+ },
517
+ "thinking": {
518
+ "type": "boolean"
519
+ },
520
+ "artifacts": {
521
+ "type": "boolean"
522
+ },
523
+ "fileAttachments": {
524
+ "type": "boolean"
525
+ },
526
+ "imageInput": {
527
+ "type": "boolean"
528
+ },
529
+ "slashCommands": {
530
+ "type": "boolean"
531
+ },
532
+ "modelSwitching": {
533
+ "type": "boolean"
534
+ },
535
+ "promptCaching": {
536
+ "type": "boolean"
537
+ },
538
+ "agenticTools": {
539
+ "type": "boolean"
540
+ },
541
+ "mcp": {
542
+ "type": "boolean"
543
+ },
544
+ "sessionResume": {
545
+ "type": "boolean"
546
+ }
547
+ },
548
+ "required": [
549
+ "streaming",
550
+ "toolUse",
551
+ "thinking",
552
+ "artifacts",
553
+ "fileAttachments",
554
+ "imageInput",
555
+ "slashCommands",
556
+ "modelSwitching",
557
+ "promptCaching",
558
+ "agenticTools",
559
+ "mcp",
560
+ "sessionResume"
561
+ ],
562
+ "additionalProperties": false
563
+ },
564
+ "onboarding": {
565
+ "type": "object",
566
+ "properties": {
567
+ "requiredVaultKeys": {
568
+ "type": "array",
569
+ "items": {
570
+ "type": "string"
571
+ },
572
+ "default": []
573
+ },
574
+ "requiredEnvVars": {
575
+ "type": "array",
576
+ "items": {
577
+ "type": "string"
578
+ },
579
+ "default": []
580
+ },
581
+ "authCommand": {
582
+ "type": "string"
583
+ },
584
+ "docsUrl": {
585
+ "type": "string",
586
+ "format": "uri"
587
+ }
588
+ },
589
+ "additionalProperties": false,
590
+ "default": {
591
+ "requiredVaultKeys": [],
592
+ "requiredEnvVars": []
593
+ }
594
+ }
595
+ },
596
+ "required": [
597
+ "agentId",
598
+ "capabilities"
599
+ ],
600
+ "additionalProperties": false
601
+ }
602
+ },
603
+ "required": [
604
+ "id",
605
+ "name",
606
+ "version",
607
+ "ikenga_api"
608
+ ],
609
+ "additionalProperties": false
610
+ },
611
+ "deps": {
612
+ "type": "array",
613
+ "items": {
614
+ "type": "object",
615
+ "properties": {
616
+ "name": {
617
+ "type": "string"
618
+ },
619
+ "range": {
620
+ "type": "string"
621
+ }
622
+ },
623
+ "required": [
624
+ "name",
625
+ "range"
626
+ ],
627
+ "additionalProperties": false
628
+ },
629
+ "default": []
630
+ }
631
+ },
632
+ "required": [
633
+ "version",
634
+ "publishedAt",
635
+ "tarball",
636
+ "integrity",
637
+ "manifest"
638
+ ],
639
+ "additionalProperties": false
640
+ },
641
+ "minItems": 1
642
+ }
643
+ },
644
+ "required": [
645
+ "$schemaVersion",
646
+ "name",
647
+ "updatedAt",
648
+ "versions"
649
+ ],
650
+ "additionalProperties": false
651
+ }
652
+ },
653
+ "$schema": "http://json-schema.org/draft-07/schema#",
654
+ "$id": "https://royalti-io.github.io/ikenga-contract/schemas/registry/pkg-detail-v1.json"
655
+ }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from './engine.js';
4
4
  export * from './scopes.js';
5
5
  export * from './iyke.js';
6
6
  export * from './artifact.js';
7
+ export * from './registry.js';
7
8
 
8
9
  /** This package's own version. */
9
- export const CONTRACT_PACKAGE_VERSION = '0.4.0' as const;
10
+ export const CONTRACT_PACKAGE_VERSION = '0.5.0' as const;