@ikenga/contract 0.4.0 → 0.5.1

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,2258 @@
1
+ import { z } from 'zod';
2
+ export declare const REGISTRY_SCHEMA_VERSION: 1;
3
+ /**
4
+ * Dependency on another @ikenga/pkg-* in the registry. External npm deps
5
+ * (non-`@ikenga/pkg-*`) are bundled into the published tarball and resolved
6
+ * at publish time, so they don't appear here.
7
+ */
8
+ export declare const PkgDepSchema: z.ZodObject<{
9
+ /** Full npm name, e.g. `@ikenga/pkg-engine-claude-code`. */
10
+ name: z.ZodString;
11
+ /** Semver range as declared in the pkg's package.json. */
12
+ range: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ name: string;
15
+ range: string;
16
+ }, {
17
+ name: string;
18
+ range: string;
19
+ }>;
20
+ export type PkgDep = z.infer<typeof PkgDepSchema>;
21
+ export declare const PkgVersionSchema: z.ZodObject<{
22
+ /** Semver, e.g. `0.1.0`. */
23
+ version: z.ZodString;
24
+ /** ISO-8601 publish time, as reported by npm. */
25
+ publishedAt: z.ZodString;
26
+ /** npm tarball URL — what the shell/CLI downloads to install the pkg. */
27
+ tarball: z.ZodString;
28
+ /** SRI-style integrity (sha512-...) as returned by npm. */
29
+ integrity: z.ZodString;
30
+ /** Tarball size in bytes (npm `dist.unpackedSize` is unpacked; this is packed). */
31
+ size: z.ZodOptional<z.ZodNumber>;
32
+ /** The pkg's own manifest.json contents at this version. */
33
+ manifest: z.ZodObject<{
34
+ id: z.ZodString;
35
+ name: z.ZodString;
36
+ version: z.ZodString;
37
+ ikenga_api: z.ZodString;
38
+ kind: z.ZodOptional<z.ZodString>;
39
+ author: z.ZodOptional<z.ZodObject<{
40
+ name: z.ZodString;
41
+ key: z.ZodOptional<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ name: string;
44
+ key?: string | undefined;
45
+ }, {
46
+ name: string;
47
+ key?: string | undefined;
48
+ }>>;
49
+ targets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
50
+ skills: z.ZodOptional<z.ZodString>;
51
+ commands: z.ZodOptional<z.ZodString>;
52
+ agents: z.ZodOptional<z.ZodString>;
53
+ mcp: z.ZodDefault<z.ZodArray<z.ZodObject<{
54
+ name: z.ZodString;
55
+ command: z.ZodString;
56
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
57
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
58
+ lifecycle: z.ZodOptional<z.ZodEnum<["per-call", "long-lived"]>>;
59
+ }, "strip", z.ZodTypeAny, {
60
+ args: string[];
61
+ name: string;
62
+ command: string;
63
+ env: Record<string, string>;
64
+ lifecycle?: "per-call" | "long-lived" | undefined;
65
+ }, {
66
+ name: string;
67
+ command: string;
68
+ args?: string[] | undefined;
69
+ env?: Record<string, string> | undefined;
70
+ lifecycle?: "per-call" | "long-lived" | undefined;
71
+ }>, "many">>;
72
+ sidecars: z.ZodDefault<z.ZodArray<z.ZodObject<{
73
+ name: z.ZodString;
74
+ bin: z.ZodString;
75
+ stdio: z.ZodDefault<z.ZodString>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ name: string;
78
+ bin: string;
79
+ stdio: string;
80
+ }, {
81
+ name: string;
82
+ bin: string;
83
+ stdio?: string | undefined;
84
+ }>, "many">>;
85
+ permissions: z.ZodDefault<z.ZodObject<{
86
+ 'shell.execute': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
87
+ 'fs.read': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
88
+ 'fs.write': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
89
+ net: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
90
+ 'supabase.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
91
+ 'vault.keys': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ 'shell.execute': string[];
94
+ 'fs.read': string[];
95
+ 'fs.write': string[];
96
+ net: string[];
97
+ 'supabase.tables': string[];
98
+ 'vault.keys': string[];
99
+ }, {
100
+ 'shell.execute'?: string[] | undefined;
101
+ 'fs.read'?: string[] | undefined;
102
+ 'fs.write'?: string[] | undefined;
103
+ net?: string[] | undefined;
104
+ 'supabase.tables'?: string[] | undefined;
105
+ 'vault.keys'?: string[] | undefined;
106
+ }>>;
107
+ migrations: z.ZodOptional<z.ZodString>;
108
+ settings: z.ZodOptional<z.ZodObject<{
109
+ schema: z.ZodDefault<z.ZodArray<z.ZodObject<{
110
+ key: z.ZodString;
111
+ type: z.ZodEnum<["string", "number", "boolean", "secret"]>;
112
+ label: z.ZodString;
113
+ default: z.ZodOptional<z.ZodUnknown>;
114
+ description: z.ZodOptional<z.ZodString>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ type: "string" | "number" | "boolean" | "secret";
117
+ label: string;
118
+ key: string;
119
+ description?: string | undefined;
120
+ default?: unknown;
121
+ }, {
122
+ type: "string" | "number" | "boolean" | "secret";
123
+ label: string;
124
+ key: string;
125
+ description?: string | undefined;
126
+ default?: unknown;
127
+ }>, "many">>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ schema: {
130
+ type: "string" | "number" | "boolean" | "secret";
131
+ label: string;
132
+ key: string;
133
+ description?: string | undefined;
134
+ default?: unknown;
135
+ }[];
136
+ }, {
137
+ schema?: {
138
+ type: "string" | "number" | "boolean" | "secret";
139
+ label: string;
140
+ key: string;
141
+ description?: string | undefined;
142
+ default?: unknown;
143
+ }[] | undefined;
144
+ }>>;
145
+ ui: z.ZodDefault<z.ZodObject<{
146
+ nav: z.ZodDefault<z.ZodArray<z.ZodObject<{
147
+ id: z.ZodString;
148
+ label: z.ZodString;
149
+ icon: z.ZodOptional<z.ZodString>;
150
+ section: z.ZodOptional<z.ZodString>;
151
+ route: z.ZodString;
152
+ }, "strip", z.ZodTypeAny, {
153
+ label: string;
154
+ id: string;
155
+ route: string;
156
+ section?: string | undefined;
157
+ icon?: string | undefined;
158
+ }, {
159
+ label: string;
160
+ id: string;
161
+ route: string;
162
+ section?: string | undefined;
163
+ icon?: string | undefined;
164
+ }>, "many">>;
165
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
166
+ path: z.ZodString;
167
+ kind: z.ZodEnum<["iframe", "component"]>;
168
+ source: z.ZodString;
169
+ }, "strip", z.ZodTypeAny, {
170
+ path: string;
171
+ kind: "iframe" | "component";
172
+ source: string;
173
+ }, {
174
+ path: string;
175
+ kind: "iframe" | "component";
176
+ source: string;
177
+ }>, "many">>;
178
+ command_palette: z.ZodDefault<z.ZodArray<z.ZodObject<{
179
+ id: z.ZodString;
180
+ label: z.ZodString;
181
+ shortcut: z.ZodOptional<z.ZodString>;
182
+ action: z.ZodUnknown;
183
+ }, "strip", z.ZodTypeAny, {
184
+ label: string;
185
+ id: string;
186
+ shortcut?: string | undefined;
187
+ action?: unknown;
188
+ }, {
189
+ label: string;
190
+ id: string;
191
+ shortcut?: string | undefined;
192
+ action?: unknown;
193
+ }>, "many">>;
194
+ side_pane_viewers: z.ZodDefault<z.ZodArray<z.ZodObject<{
195
+ id: z.ZodString;
196
+ label: z.ZodString;
197
+ route: z.ZodString;
198
+ }, "strip", z.ZodTypeAny, {
199
+ label: string;
200
+ id: string;
201
+ route: string;
202
+ }, {
203
+ label: string;
204
+ id: string;
205
+ route: string;
206
+ }>, "many">>;
207
+ csp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
208
+ permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
209
+ }, "strip", z.ZodTypeAny, {
210
+ nav: {
211
+ label: string;
212
+ id: string;
213
+ route: string;
214
+ section?: string | undefined;
215
+ icon?: string | undefined;
216
+ }[];
217
+ routes: {
218
+ path: string;
219
+ kind: "iframe" | "component";
220
+ source: string;
221
+ }[];
222
+ command_palette: {
223
+ label: string;
224
+ id: string;
225
+ shortcut?: string | undefined;
226
+ action?: unknown;
227
+ }[];
228
+ side_pane_viewers: {
229
+ label: string;
230
+ id: string;
231
+ route: string;
232
+ }[];
233
+ csp?: Record<string, string[]> | undefined;
234
+ permissions?: Record<string, string[]> | undefined;
235
+ }, {
236
+ nav?: {
237
+ label: string;
238
+ id: string;
239
+ route: string;
240
+ section?: string | undefined;
241
+ icon?: string | undefined;
242
+ }[] | undefined;
243
+ routes?: {
244
+ path: string;
245
+ kind: "iframe" | "component";
246
+ source: string;
247
+ }[] | undefined;
248
+ command_palette?: {
249
+ label: string;
250
+ id: string;
251
+ shortcut?: string | undefined;
252
+ action?: unknown;
253
+ }[] | undefined;
254
+ side_pane_viewers?: {
255
+ label: string;
256
+ id: string;
257
+ route: string;
258
+ }[] | undefined;
259
+ csp?: Record<string, string[]> | undefined;
260
+ permissions?: Record<string, string[]> | undefined;
261
+ }>>;
262
+ iyke: z.ZodOptional<z.ZodObject<{
263
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
264
+ method: z.ZodEnum<["GET", "POST"]>;
265
+ path: z.ZodString;
266
+ handler: z.ZodString;
267
+ }, "strip", z.ZodTypeAny, {
268
+ path: string;
269
+ method: "GET" | "POST";
270
+ handler: string;
271
+ }, {
272
+ path: string;
273
+ method: "GET" | "POST";
274
+ handler: string;
275
+ }>, "many">>;
276
+ events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
277
+ }, "strip", z.ZodTypeAny, {
278
+ routes: {
279
+ path: string;
280
+ method: "GET" | "POST";
281
+ handler: string;
282
+ }[];
283
+ events: string[];
284
+ }, {
285
+ routes?: {
286
+ path: string;
287
+ method: "GET" | "POST";
288
+ handler: string;
289
+ }[] | undefined;
290
+ events?: string[] | undefined;
291
+ }>>;
292
+ cron: z.ZodDefault<z.ZodArray<z.ZodObject<{
293
+ id: z.ZodString;
294
+ expr: z.ZodString;
295
+ handler: z.ZodString;
296
+ env_from_settings: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
297
+ }, "strip", z.ZodTypeAny, {
298
+ id: string;
299
+ handler: string;
300
+ expr: string;
301
+ env_from_settings: string[];
302
+ }, {
303
+ id: string;
304
+ handler: string;
305
+ expr: string;
306
+ env_from_settings?: string[] | undefined;
307
+ }>, "many">>;
308
+ window: z.ZodOptional<z.ZodObject<{
309
+ label: z.ZodString;
310
+ url: z.ZodString;
311
+ size: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
312
+ decorations: z.ZodOptional<z.ZodBoolean>;
313
+ menu: z.ZodOptional<z.ZodString>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ url: string;
316
+ label: string;
317
+ size?: [number, number] | undefined;
318
+ decorations?: boolean | undefined;
319
+ menu?: string | undefined;
320
+ }, {
321
+ url: string;
322
+ label: string;
323
+ size?: [number, number] | undefined;
324
+ decorations?: boolean | undefined;
325
+ menu?: string | undefined;
326
+ }>>;
327
+ queries: z.ZodOptional<z.ZodObject<{
328
+ key_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
329
+ }, "strip", z.ZodTypeAny, {
330
+ key_prefixes: string[];
331
+ }, {
332
+ key_prefixes?: string[] | undefined;
333
+ }>>;
334
+ engine: z.ZodOptional<z.ZodObject<{
335
+ agentId: z.ZodString;
336
+ display: z.ZodOptional<z.ZodString>;
337
+ capabilities: z.ZodObject<{
338
+ streaming: z.ZodBoolean;
339
+ toolUse: z.ZodBoolean;
340
+ thinking: z.ZodBoolean;
341
+ artifacts: z.ZodBoolean;
342
+ fileAttachments: z.ZodBoolean;
343
+ imageInput: z.ZodBoolean;
344
+ slashCommands: z.ZodBoolean;
345
+ modelSwitching: z.ZodBoolean;
346
+ promptCaching: z.ZodBoolean;
347
+ agenticTools: z.ZodBoolean;
348
+ mcp: z.ZodBoolean;
349
+ sessionResume: z.ZodBoolean;
350
+ }, "strip", z.ZodTypeAny, {
351
+ mcp: boolean;
352
+ streaming: boolean;
353
+ toolUse: boolean;
354
+ thinking: boolean;
355
+ artifacts: boolean;
356
+ fileAttachments: boolean;
357
+ imageInput: boolean;
358
+ slashCommands: boolean;
359
+ modelSwitching: boolean;
360
+ promptCaching: boolean;
361
+ agenticTools: boolean;
362
+ sessionResume: boolean;
363
+ }, {
364
+ mcp: boolean;
365
+ streaming: boolean;
366
+ toolUse: boolean;
367
+ thinking: boolean;
368
+ artifacts: boolean;
369
+ fileAttachments: boolean;
370
+ imageInput: boolean;
371
+ slashCommands: boolean;
372
+ modelSwitching: boolean;
373
+ promptCaching: boolean;
374
+ agenticTools: boolean;
375
+ sessionResume: boolean;
376
+ }>;
377
+ onboarding: z.ZodDefault<z.ZodObject<{
378
+ requiredVaultKeys: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
379
+ requiredEnvVars: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
380
+ authCommand: z.ZodOptional<z.ZodString>;
381
+ docsUrl: z.ZodOptional<z.ZodString>;
382
+ }, "strip", z.ZodTypeAny, {
383
+ requiredVaultKeys: string[];
384
+ requiredEnvVars: string[];
385
+ authCommand?: string | undefined;
386
+ docsUrl?: string | undefined;
387
+ }, {
388
+ requiredVaultKeys?: string[] | undefined;
389
+ requiredEnvVars?: string[] | undefined;
390
+ authCommand?: string | undefined;
391
+ docsUrl?: string | undefined;
392
+ }>>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ capabilities: {
395
+ mcp: boolean;
396
+ streaming: boolean;
397
+ toolUse: boolean;
398
+ thinking: boolean;
399
+ artifacts: boolean;
400
+ fileAttachments: boolean;
401
+ imageInput: boolean;
402
+ slashCommands: boolean;
403
+ modelSwitching: boolean;
404
+ promptCaching: boolean;
405
+ agenticTools: boolean;
406
+ sessionResume: boolean;
407
+ };
408
+ agentId: string;
409
+ onboarding: {
410
+ requiredVaultKeys: string[];
411
+ requiredEnvVars: string[];
412
+ authCommand?: string | undefined;
413
+ docsUrl?: string | undefined;
414
+ };
415
+ display?: string | undefined;
416
+ }, {
417
+ capabilities: {
418
+ mcp: boolean;
419
+ streaming: boolean;
420
+ toolUse: boolean;
421
+ thinking: boolean;
422
+ artifacts: boolean;
423
+ fileAttachments: boolean;
424
+ imageInput: boolean;
425
+ slashCommands: boolean;
426
+ modelSwitching: boolean;
427
+ promptCaching: boolean;
428
+ agenticTools: boolean;
429
+ sessionResume: boolean;
430
+ };
431
+ agentId: string;
432
+ display?: string | undefined;
433
+ onboarding?: {
434
+ requiredVaultKeys?: string[] | undefined;
435
+ requiredEnvVars?: string[] | undefined;
436
+ authCommand?: string | undefined;
437
+ docsUrl?: string | undefined;
438
+ } | undefined;
439
+ }>>;
440
+ }, "strip", z.ZodTypeAny, {
441
+ mcp: {
442
+ args: string[];
443
+ name: string;
444
+ command: string;
445
+ env: Record<string, string>;
446
+ lifecycle?: "per-call" | "long-lived" | undefined;
447
+ }[];
448
+ id: string;
449
+ name: string;
450
+ version: string;
451
+ permissions: {
452
+ 'shell.execute': string[];
453
+ 'fs.read': string[];
454
+ 'fs.write': string[];
455
+ net: string[];
456
+ 'supabase.tables': string[];
457
+ 'vault.keys': string[];
458
+ };
459
+ ikenga_api: string;
460
+ targets: string[];
461
+ sidecars: {
462
+ name: string;
463
+ bin: string;
464
+ stdio: string;
465
+ }[];
466
+ ui: {
467
+ nav: {
468
+ label: string;
469
+ id: string;
470
+ route: string;
471
+ section?: string | undefined;
472
+ icon?: string | undefined;
473
+ }[];
474
+ routes: {
475
+ path: string;
476
+ kind: "iframe" | "component";
477
+ source: string;
478
+ }[];
479
+ command_palette: {
480
+ label: string;
481
+ id: string;
482
+ shortcut?: string | undefined;
483
+ action?: unknown;
484
+ }[];
485
+ side_pane_viewers: {
486
+ label: string;
487
+ id: string;
488
+ route: string;
489
+ }[];
490
+ csp?: Record<string, string[]> | undefined;
491
+ permissions?: Record<string, string[]> | undefined;
492
+ };
493
+ cron: {
494
+ id: string;
495
+ handler: string;
496
+ expr: string;
497
+ env_from_settings: string[];
498
+ }[];
499
+ queries?: {
500
+ key_prefixes: string[];
501
+ } | undefined;
502
+ author?: {
503
+ name: string;
504
+ key?: string | undefined;
505
+ } | undefined;
506
+ kind?: string | undefined;
507
+ skills?: string | undefined;
508
+ commands?: string | undefined;
509
+ agents?: string | undefined;
510
+ migrations?: string | undefined;
511
+ settings?: {
512
+ schema: {
513
+ type: "string" | "number" | "boolean" | "secret";
514
+ label: string;
515
+ key: string;
516
+ description?: string | undefined;
517
+ default?: unknown;
518
+ }[];
519
+ } | undefined;
520
+ iyke?: {
521
+ routes: {
522
+ path: string;
523
+ method: "GET" | "POST";
524
+ handler: string;
525
+ }[];
526
+ events: string[];
527
+ } | undefined;
528
+ window?: {
529
+ url: string;
530
+ label: string;
531
+ size?: [number, number] | undefined;
532
+ decorations?: boolean | undefined;
533
+ menu?: string | undefined;
534
+ } | undefined;
535
+ engine?: {
536
+ capabilities: {
537
+ mcp: boolean;
538
+ streaming: boolean;
539
+ toolUse: boolean;
540
+ thinking: boolean;
541
+ artifacts: boolean;
542
+ fileAttachments: boolean;
543
+ imageInput: boolean;
544
+ slashCommands: boolean;
545
+ modelSwitching: boolean;
546
+ promptCaching: boolean;
547
+ agenticTools: boolean;
548
+ sessionResume: boolean;
549
+ };
550
+ agentId: string;
551
+ onboarding: {
552
+ requiredVaultKeys: string[];
553
+ requiredEnvVars: string[];
554
+ authCommand?: string | undefined;
555
+ docsUrl?: string | undefined;
556
+ };
557
+ display?: string | undefined;
558
+ } | undefined;
559
+ }, {
560
+ id: string;
561
+ name: string;
562
+ version: string;
563
+ ikenga_api: string;
564
+ mcp?: {
565
+ name: string;
566
+ command: string;
567
+ args?: string[] | undefined;
568
+ env?: Record<string, string> | undefined;
569
+ lifecycle?: "per-call" | "long-lived" | undefined;
570
+ }[] | undefined;
571
+ queries?: {
572
+ key_prefixes?: string[] | undefined;
573
+ } | undefined;
574
+ author?: {
575
+ name: string;
576
+ key?: string | undefined;
577
+ } | undefined;
578
+ kind?: string | undefined;
579
+ permissions?: {
580
+ 'shell.execute'?: string[] | undefined;
581
+ 'fs.read'?: string[] | undefined;
582
+ 'fs.write'?: string[] | undefined;
583
+ net?: string[] | undefined;
584
+ 'supabase.tables'?: string[] | undefined;
585
+ 'vault.keys'?: string[] | undefined;
586
+ } | undefined;
587
+ targets?: string[] | undefined;
588
+ skills?: string | undefined;
589
+ commands?: string | undefined;
590
+ agents?: string | undefined;
591
+ sidecars?: {
592
+ name: string;
593
+ bin: string;
594
+ stdio?: string | undefined;
595
+ }[] | undefined;
596
+ migrations?: string | undefined;
597
+ settings?: {
598
+ schema?: {
599
+ type: "string" | "number" | "boolean" | "secret";
600
+ label: string;
601
+ key: string;
602
+ description?: string | undefined;
603
+ default?: unknown;
604
+ }[] | undefined;
605
+ } | undefined;
606
+ ui?: {
607
+ nav?: {
608
+ label: string;
609
+ id: string;
610
+ route: string;
611
+ section?: string | undefined;
612
+ icon?: string | undefined;
613
+ }[] | undefined;
614
+ routes?: {
615
+ path: string;
616
+ kind: "iframe" | "component";
617
+ source: string;
618
+ }[] | undefined;
619
+ command_palette?: {
620
+ label: string;
621
+ id: string;
622
+ shortcut?: string | undefined;
623
+ action?: unknown;
624
+ }[] | undefined;
625
+ side_pane_viewers?: {
626
+ label: string;
627
+ id: string;
628
+ route: string;
629
+ }[] | undefined;
630
+ csp?: Record<string, string[]> | undefined;
631
+ permissions?: Record<string, string[]> | undefined;
632
+ } | undefined;
633
+ iyke?: {
634
+ routes?: {
635
+ path: string;
636
+ method: "GET" | "POST";
637
+ handler: string;
638
+ }[] | undefined;
639
+ events?: string[] | undefined;
640
+ } | undefined;
641
+ cron?: {
642
+ id: string;
643
+ handler: string;
644
+ expr: string;
645
+ env_from_settings?: string[] | undefined;
646
+ }[] | undefined;
647
+ window?: {
648
+ url: string;
649
+ label: string;
650
+ size?: [number, number] | undefined;
651
+ decorations?: boolean | undefined;
652
+ menu?: string | undefined;
653
+ } | undefined;
654
+ engine?: {
655
+ capabilities: {
656
+ mcp: boolean;
657
+ streaming: boolean;
658
+ toolUse: boolean;
659
+ thinking: boolean;
660
+ artifacts: boolean;
661
+ fileAttachments: boolean;
662
+ imageInput: boolean;
663
+ slashCommands: boolean;
664
+ modelSwitching: boolean;
665
+ promptCaching: boolean;
666
+ agenticTools: boolean;
667
+ sessionResume: boolean;
668
+ };
669
+ agentId: string;
670
+ display?: string | undefined;
671
+ onboarding?: {
672
+ requiredVaultKeys?: string[] | undefined;
673
+ requiredEnvVars?: string[] | undefined;
674
+ authCommand?: string | undefined;
675
+ docsUrl?: string | undefined;
676
+ } | undefined;
677
+ } | undefined;
678
+ }>;
679
+ /** Cross-pkg deps within `@ikenga/pkg-*`. External deps ride in the tarball. */
680
+ deps: z.ZodDefault<z.ZodArray<z.ZodObject<{
681
+ /** Full npm name, e.g. `@ikenga/pkg-engine-claude-code`. */
682
+ name: z.ZodString;
683
+ /** Semver range as declared in the pkg's package.json. */
684
+ range: z.ZodString;
685
+ }, "strip", z.ZodTypeAny, {
686
+ name: string;
687
+ range: string;
688
+ }, {
689
+ name: string;
690
+ range: string;
691
+ }>, "many">>;
692
+ }, "strip", z.ZodTypeAny, {
693
+ version: string;
694
+ publishedAt: string;
695
+ tarball: string;
696
+ integrity: string;
697
+ manifest: {
698
+ mcp: {
699
+ args: string[];
700
+ name: string;
701
+ command: string;
702
+ env: Record<string, string>;
703
+ lifecycle?: "per-call" | "long-lived" | undefined;
704
+ }[];
705
+ id: string;
706
+ name: string;
707
+ version: string;
708
+ permissions: {
709
+ 'shell.execute': string[];
710
+ 'fs.read': string[];
711
+ 'fs.write': string[];
712
+ net: string[];
713
+ 'supabase.tables': string[];
714
+ 'vault.keys': string[];
715
+ };
716
+ ikenga_api: string;
717
+ targets: string[];
718
+ sidecars: {
719
+ name: string;
720
+ bin: string;
721
+ stdio: string;
722
+ }[];
723
+ ui: {
724
+ nav: {
725
+ label: string;
726
+ id: string;
727
+ route: string;
728
+ section?: string | undefined;
729
+ icon?: string | undefined;
730
+ }[];
731
+ routes: {
732
+ path: string;
733
+ kind: "iframe" | "component";
734
+ source: string;
735
+ }[];
736
+ command_palette: {
737
+ label: string;
738
+ id: string;
739
+ shortcut?: string | undefined;
740
+ action?: unknown;
741
+ }[];
742
+ side_pane_viewers: {
743
+ label: string;
744
+ id: string;
745
+ route: string;
746
+ }[];
747
+ csp?: Record<string, string[]> | undefined;
748
+ permissions?: Record<string, string[]> | undefined;
749
+ };
750
+ cron: {
751
+ id: string;
752
+ handler: string;
753
+ expr: string;
754
+ env_from_settings: string[];
755
+ }[];
756
+ queries?: {
757
+ key_prefixes: string[];
758
+ } | undefined;
759
+ author?: {
760
+ name: string;
761
+ key?: string | undefined;
762
+ } | undefined;
763
+ kind?: string | undefined;
764
+ skills?: string | undefined;
765
+ commands?: string | undefined;
766
+ agents?: string | undefined;
767
+ migrations?: string | undefined;
768
+ settings?: {
769
+ schema: {
770
+ type: "string" | "number" | "boolean" | "secret";
771
+ label: string;
772
+ key: string;
773
+ description?: string | undefined;
774
+ default?: unknown;
775
+ }[];
776
+ } | undefined;
777
+ iyke?: {
778
+ routes: {
779
+ path: string;
780
+ method: "GET" | "POST";
781
+ handler: string;
782
+ }[];
783
+ events: string[];
784
+ } | undefined;
785
+ window?: {
786
+ url: string;
787
+ label: string;
788
+ size?: [number, number] | undefined;
789
+ decorations?: boolean | undefined;
790
+ menu?: string | undefined;
791
+ } | undefined;
792
+ engine?: {
793
+ capabilities: {
794
+ mcp: boolean;
795
+ streaming: boolean;
796
+ toolUse: boolean;
797
+ thinking: boolean;
798
+ artifacts: boolean;
799
+ fileAttachments: boolean;
800
+ imageInput: boolean;
801
+ slashCommands: boolean;
802
+ modelSwitching: boolean;
803
+ promptCaching: boolean;
804
+ agenticTools: boolean;
805
+ sessionResume: boolean;
806
+ };
807
+ agentId: string;
808
+ onboarding: {
809
+ requiredVaultKeys: string[];
810
+ requiredEnvVars: string[];
811
+ authCommand?: string | undefined;
812
+ docsUrl?: string | undefined;
813
+ };
814
+ display?: string | undefined;
815
+ } | undefined;
816
+ };
817
+ deps: {
818
+ name: string;
819
+ range: string;
820
+ }[];
821
+ size?: number | undefined;
822
+ }, {
823
+ version: string;
824
+ publishedAt: string;
825
+ tarball: string;
826
+ integrity: string;
827
+ manifest: {
828
+ id: string;
829
+ name: string;
830
+ version: string;
831
+ ikenga_api: string;
832
+ mcp?: {
833
+ name: string;
834
+ command: string;
835
+ args?: string[] | undefined;
836
+ env?: Record<string, string> | undefined;
837
+ lifecycle?: "per-call" | "long-lived" | undefined;
838
+ }[] | undefined;
839
+ queries?: {
840
+ key_prefixes?: string[] | undefined;
841
+ } | undefined;
842
+ author?: {
843
+ name: string;
844
+ key?: string | undefined;
845
+ } | undefined;
846
+ kind?: string | undefined;
847
+ permissions?: {
848
+ 'shell.execute'?: string[] | undefined;
849
+ 'fs.read'?: string[] | undefined;
850
+ 'fs.write'?: string[] | undefined;
851
+ net?: string[] | undefined;
852
+ 'supabase.tables'?: string[] | undefined;
853
+ 'vault.keys'?: string[] | undefined;
854
+ } | undefined;
855
+ targets?: string[] | undefined;
856
+ skills?: string | undefined;
857
+ commands?: string | undefined;
858
+ agents?: string | undefined;
859
+ sidecars?: {
860
+ name: string;
861
+ bin: string;
862
+ stdio?: string | undefined;
863
+ }[] | undefined;
864
+ migrations?: string | undefined;
865
+ settings?: {
866
+ schema?: {
867
+ type: "string" | "number" | "boolean" | "secret";
868
+ label: string;
869
+ key: string;
870
+ description?: string | undefined;
871
+ default?: unknown;
872
+ }[] | undefined;
873
+ } | undefined;
874
+ ui?: {
875
+ nav?: {
876
+ label: string;
877
+ id: string;
878
+ route: string;
879
+ section?: string | undefined;
880
+ icon?: string | undefined;
881
+ }[] | undefined;
882
+ routes?: {
883
+ path: string;
884
+ kind: "iframe" | "component";
885
+ source: string;
886
+ }[] | undefined;
887
+ command_palette?: {
888
+ label: string;
889
+ id: string;
890
+ shortcut?: string | undefined;
891
+ action?: unknown;
892
+ }[] | undefined;
893
+ side_pane_viewers?: {
894
+ label: string;
895
+ id: string;
896
+ route: string;
897
+ }[] | undefined;
898
+ csp?: Record<string, string[]> | undefined;
899
+ permissions?: Record<string, string[]> | undefined;
900
+ } | undefined;
901
+ iyke?: {
902
+ routes?: {
903
+ path: string;
904
+ method: "GET" | "POST";
905
+ handler: string;
906
+ }[] | undefined;
907
+ events?: string[] | undefined;
908
+ } | undefined;
909
+ cron?: {
910
+ id: string;
911
+ handler: string;
912
+ expr: string;
913
+ env_from_settings?: string[] | undefined;
914
+ }[] | undefined;
915
+ window?: {
916
+ url: string;
917
+ label: string;
918
+ size?: [number, number] | undefined;
919
+ decorations?: boolean | undefined;
920
+ menu?: string | undefined;
921
+ } | undefined;
922
+ engine?: {
923
+ capabilities: {
924
+ mcp: boolean;
925
+ streaming: boolean;
926
+ toolUse: boolean;
927
+ thinking: boolean;
928
+ artifacts: boolean;
929
+ fileAttachments: boolean;
930
+ imageInput: boolean;
931
+ slashCommands: boolean;
932
+ modelSwitching: boolean;
933
+ promptCaching: boolean;
934
+ agenticTools: boolean;
935
+ sessionResume: boolean;
936
+ };
937
+ agentId: string;
938
+ display?: string | undefined;
939
+ onboarding?: {
940
+ requiredVaultKeys?: string[] | undefined;
941
+ requiredEnvVars?: string[] | undefined;
942
+ authCommand?: string | undefined;
943
+ docsUrl?: string | undefined;
944
+ } | undefined;
945
+ } | undefined;
946
+ };
947
+ size?: number | undefined;
948
+ deps?: {
949
+ name: string;
950
+ range: string;
951
+ }[] | undefined;
952
+ }>;
953
+ export type PkgVersion = z.infer<typeof PkgVersionSchema>;
954
+ export declare const PkgDetailSchema: z.ZodObject<{
955
+ $schemaVersion: z.ZodLiteral<1>;
956
+ /** Full npm name, e.g. `@ikenga/pkg-engine-claude-code`. */
957
+ name: z.ZodString;
958
+ /** ISO-8601 — last time any version was published. */
959
+ updatedAt: z.ZodString;
960
+ /** Newest-first. The first element is `latest`. */
961
+ versions: z.ZodArray<z.ZodObject<{
962
+ /** Semver, e.g. `0.1.0`. */
963
+ version: z.ZodString;
964
+ /** ISO-8601 publish time, as reported by npm. */
965
+ publishedAt: z.ZodString;
966
+ /** npm tarball URL — what the shell/CLI downloads to install the pkg. */
967
+ tarball: z.ZodString;
968
+ /** SRI-style integrity (sha512-...) as returned by npm. */
969
+ integrity: z.ZodString;
970
+ /** Tarball size in bytes (npm `dist.unpackedSize` is unpacked; this is packed). */
971
+ size: z.ZodOptional<z.ZodNumber>;
972
+ /** The pkg's own manifest.json contents at this version. */
973
+ manifest: z.ZodObject<{
974
+ id: z.ZodString;
975
+ name: z.ZodString;
976
+ version: z.ZodString;
977
+ ikenga_api: z.ZodString;
978
+ kind: z.ZodOptional<z.ZodString>;
979
+ author: z.ZodOptional<z.ZodObject<{
980
+ name: z.ZodString;
981
+ key: z.ZodOptional<z.ZodString>;
982
+ }, "strip", z.ZodTypeAny, {
983
+ name: string;
984
+ key?: string | undefined;
985
+ }, {
986
+ name: string;
987
+ key?: string | undefined;
988
+ }>>;
989
+ targets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
990
+ skills: z.ZodOptional<z.ZodString>;
991
+ commands: z.ZodOptional<z.ZodString>;
992
+ agents: z.ZodOptional<z.ZodString>;
993
+ mcp: z.ZodDefault<z.ZodArray<z.ZodObject<{
994
+ name: z.ZodString;
995
+ command: z.ZodString;
996
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
997
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
998
+ lifecycle: z.ZodOptional<z.ZodEnum<["per-call", "long-lived"]>>;
999
+ }, "strip", z.ZodTypeAny, {
1000
+ args: string[];
1001
+ name: string;
1002
+ command: string;
1003
+ env: Record<string, string>;
1004
+ lifecycle?: "per-call" | "long-lived" | undefined;
1005
+ }, {
1006
+ name: string;
1007
+ command: string;
1008
+ args?: string[] | undefined;
1009
+ env?: Record<string, string> | undefined;
1010
+ lifecycle?: "per-call" | "long-lived" | undefined;
1011
+ }>, "many">>;
1012
+ sidecars: z.ZodDefault<z.ZodArray<z.ZodObject<{
1013
+ name: z.ZodString;
1014
+ bin: z.ZodString;
1015
+ stdio: z.ZodDefault<z.ZodString>;
1016
+ }, "strip", z.ZodTypeAny, {
1017
+ name: string;
1018
+ bin: string;
1019
+ stdio: string;
1020
+ }, {
1021
+ name: string;
1022
+ bin: string;
1023
+ stdio?: string | undefined;
1024
+ }>, "many">>;
1025
+ permissions: z.ZodDefault<z.ZodObject<{
1026
+ 'shell.execute': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1027
+ 'fs.read': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1028
+ 'fs.write': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1029
+ net: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1030
+ 'supabase.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1031
+ 'vault.keys': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1032
+ }, "strip", z.ZodTypeAny, {
1033
+ 'shell.execute': string[];
1034
+ 'fs.read': string[];
1035
+ 'fs.write': string[];
1036
+ net: string[];
1037
+ 'supabase.tables': string[];
1038
+ 'vault.keys': string[];
1039
+ }, {
1040
+ 'shell.execute'?: string[] | undefined;
1041
+ 'fs.read'?: string[] | undefined;
1042
+ 'fs.write'?: string[] | undefined;
1043
+ net?: string[] | undefined;
1044
+ 'supabase.tables'?: string[] | undefined;
1045
+ 'vault.keys'?: string[] | undefined;
1046
+ }>>;
1047
+ migrations: z.ZodOptional<z.ZodString>;
1048
+ settings: z.ZodOptional<z.ZodObject<{
1049
+ schema: z.ZodDefault<z.ZodArray<z.ZodObject<{
1050
+ key: z.ZodString;
1051
+ type: z.ZodEnum<["string", "number", "boolean", "secret"]>;
1052
+ label: z.ZodString;
1053
+ default: z.ZodOptional<z.ZodUnknown>;
1054
+ description: z.ZodOptional<z.ZodString>;
1055
+ }, "strip", z.ZodTypeAny, {
1056
+ type: "string" | "number" | "boolean" | "secret";
1057
+ label: string;
1058
+ key: string;
1059
+ description?: string | undefined;
1060
+ default?: unknown;
1061
+ }, {
1062
+ type: "string" | "number" | "boolean" | "secret";
1063
+ label: string;
1064
+ key: string;
1065
+ description?: string | undefined;
1066
+ default?: unknown;
1067
+ }>, "many">>;
1068
+ }, "strip", z.ZodTypeAny, {
1069
+ schema: {
1070
+ type: "string" | "number" | "boolean" | "secret";
1071
+ label: string;
1072
+ key: string;
1073
+ description?: string | undefined;
1074
+ default?: unknown;
1075
+ }[];
1076
+ }, {
1077
+ schema?: {
1078
+ type: "string" | "number" | "boolean" | "secret";
1079
+ label: string;
1080
+ key: string;
1081
+ description?: string | undefined;
1082
+ default?: unknown;
1083
+ }[] | undefined;
1084
+ }>>;
1085
+ ui: z.ZodDefault<z.ZodObject<{
1086
+ nav: z.ZodDefault<z.ZodArray<z.ZodObject<{
1087
+ id: z.ZodString;
1088
+ label: z.ZodString;
1089
+ icon: z.ZodOptional<z.ZodString>;
1090
+ section: z.ZodOptional<z.ZodString>;
1091
+ route: z.ZodString;
1092
+ }, "strip", z.ZodTypeAny, {
1093
+ label: string;
1094
+ id: string;
1095
+ route: string;
1096
+ section?: string | undefined;
1097
+ icon?: string | undefined;
1098
+ }, {
1099
+ label: string;
1100
+ id: string;
1101
+ route: string;
1102
+ section?: string | undefined;
1103
+ icon?: string | undefined;
1104
+ }>, "many">>;
1105
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
1106
+ path: z.ZodString;
1107
+ kind: z.ZodEnum<["iframe", "component"]>;
1108
+ source: z.ZodString;
1109
+ }, "strip", z.ZodTypeAny, {
1110
+ path: string;
1111
+ kind: "iframe" | "component";
1112
+ source: string;
1113
+ }, {
1114
+ path: string;
1115
+ kind: "iframe" | "component";
1116
+ source: string;
1117
+ }>, "many">>;
1118
+ command_palette: z.ZodDefault<z.ZodArray<z.ZodObject<{
1119
+ id: z.ZodString;
1120
+ label: z.ZodString;
1121
+ shortcut: z.ZodOptional<z.ZodString>;
1122
+ action: z.ZodUnknown;
1123
+ }, "strip", z.ZodTypeAny, {
1124
+ label: string;
1125
+ id: string;
1126
+ shortcut?: string | undefined;
1127
+ action?: unknown;
1128
+ }, {
1129
+ label: string;
1130
+ id: string;
1131
+ shortcut?: string | undefined;
1132
+ action?: unknown;
1133
+ }>, "many">>;
1134
+ side_pane_viewers: z.ZodDefault<z.ZodArray<z.ZodObject<{
1135
+ id: z.ZodString;
1136
+ label: z.ZodString;
1137
+ route: z.ZodString;
1138
+ }, "strip", z.ZodTypeAny, {
1139
+ label: string;
1140
+ id: string;
1141
+ route: string;
1142
+ }, {
1143
+ label: string;
1144
+ id: string;
1145
+ route: string;
1146
+ }>, "many">>;
1147
+ csp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
1148
+ permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
1149
+ }, "strip", z.ZodTypeAny, {
1150
+ nav: {
1151
+ label: string;
1152
+ id: string;
1153
+ route: string;
1154
+ section?: string | undefined;
1155
+ icon?: string | undefined;
1156
+ }[];
1157
+ routes: {
1158
+ path: string;
1159
+ kind: "iframe" | "component";
1160
+ source: string;
1161
+ }[];
1162
+ command_palette: {
1163
+ label: string;
1164
+ id: string;
1165
+ shortcut?: string | undefined;
1166
+ action?: unknown;
1167
+ }[];
1168
+ side_pane_viewers: {
1169
+ label: string;
1170
+ id: string;
1171
+ route: string;
1172
+ }[];
1173
+ csp?: Record<string, string[]> | undefined;
1174
+ permissions?: Record<string, string[]> | undefined;
1175
+ }, {
1176
+ nav?: {
1177
+ label: string;
1178
+ id: string;
1179
+ route: string;
1180
+ section?: string | undefined;
1181
+ icon?: string | undefined;
1182
+ }[] | undefined;
1183
+ routes?: {
1184
+ path: string;
1185
+ kind: "iframe" | "component";
1186
+ source: string;
1187
+ }[] | undefined;
1188
+ command_palette?: {
1189
+ label: string;
1190
+ id: string;
1191
+ shortcut?: string | undefined;
1192
+ action?: unknown;
1193
+ }[] | undefined;
1194
+ side_pane_viewers?: {
1195
+ label: string;
1196
+ id: string;
1197
+ route: string;
1198
+ }[] | undefined;
1199
+ csp?: Record<string, string[]> | undefined;
1200
+ permissions?: Record<string, string[]> | undefined;
1201
+ }>>;
1202
+ iyke: z.ZodOptional<z.ZodObject<{
1203
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
1204
+ method: z.ZodEnum<["GET", "POST"]>;
1205
+ path: z.ZodString;
1206
+ handler: z.ZodString;
1207
+ }, "strip", z.ZodTypeAny, {
1208
+ path: string;
1209
+ method: "GET" | "POST";
1210
+ handler: string;
1211
+ }, {
1212
+ path: string;
1213
+ method: "GET" | "POST";
1214
+ handler: string;
1215
+ }>, "many">>;
1216
+ events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1217
+ }, "strip", z.ZodTypeAny, {
1218
+ routes: {
1219
+ path: string;
1220
+ method: "GET" | "POST";
1221
+ handler: string;
1222
+ }[];
1223
+ events: string[];
1224
+ }, {
1225
+ routes?: {
1226
+ path: string;
1227
+ method: "GET" | "POST";
1228
+ handler: string;
1229
+ }[] | undefined;
1230
+ events?: string[] | undefined;
1231
+ }>>;
1232
+ cron: z.ZodDefault<z.ZodArray<z.ZodObject<{
1233
+ id: z.ZodString;
1234
+ expr: z.ZodString;
1235
+ handler: z.ZodString;
1236
+ env_from_settings: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1237
+ }, "strip", z.ZodTypeAny, {
1238
+ id: string;
1239
+ handler: string;
1240
+ expr: string;
1241
+ env_from_settings: string[];
1242
+ }, {
1243
+ id: string;
1244
+ handler: string;
1245
+ expr: string;
1246
+ env_from_settings?: string[] | undefined;
1247
+ }>, "many">>;
1248
+ window: z.ZodOptional<z.ZodObject<{
1249
+ label: z.ZodString;
1250
+ url: z.ZodString;
1251
+ size: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
1252
+ decorations: z.ZodOptional<z.ZodBoolean>;
1253
+ menu: z.ZodOptional<z.ZodString>;
1254
+ }, "strip", z.ZodTypeAny, {
1255
+ url: string;
1256
+ label: string;
1257
+ size?: [number, number] | undefined;
1258
+ decorations?: boolean | undefined;
1259
+ menu?: string | undefined;
1260
+ }, {
1261
+ url: string;
1262
+ label: string;
1263
+ size?: [number, number] | undefined;
1264
+ decorations?: boolean | undefined;
1265
+ menu?: string | undefined;
1266
+ }>>;
1267
+ queries: z.ZodOptional<z.ZodObject<{
1268
+ key_prefixes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1269
+ }, "strip", z.ZodTypeAny, {
1270
+ key_prefixes: string[];
1271
+ }, {
1272
+ key_prefixes?: string[] | undefined;
1273
+ }>>;
1274
+ engine: z.ZodOptional<z.ZodObject<{
1275
+ agentId: z.ZodString;
1276
+ display: z.ZodOptional<z.ZodString>;
1277
+ capabilities: z.ZodObject<{
1278
+ streaming: z.ZodBoolean;
1279
+ toolUse: z.ZodBoolean;
1280
+ thinking: z.ZodBoolean;
1281
+ artifacts: z.ZodBoolean;
1282
+ fileAttachments: z.ZodBoolean;
1283
+ imageInput: z.ZodBoolean;
1284
+ slashCommands: z.ZodBoolean;
1285
+ modelSwitching: z.ZodBoolean;
1286
+ promptCaching: z.ZodBoolean;
1287
+ agenticTools: z.ZodBoolean;
1288
+ mcp: z.ZodBoolean;
1289
+ sessionResume: z.ZodBoolean;
1290
+ }, "strip", z.ZodTypeAny, {
1291
+ mcp: boolean;
1292
+ streaming: boolean;
1293
+ toolUse: boolean;
1294
+ thinking: boolean;
1295
+ artifacts: boolean;
1296
+ fileAttachments: boolean;
1297
+ imageInput: boolean;
1298
+ slashCommands: boolean;
1299
+ modelSwitching: boolean;
1300
+ promptCaching: boolean;
1301
+ agenticTools: boolean;
1302
+ sessionResume: boolean;
1303
+ }, {
1304
+ mcp: boolean;
1305
+ streaming: boolean;
1306
+ toolUse: boolean;
1307
+ thinking: boolean;
1308
+ artifacts: boolean;
1309
+ fileAttachments: boolean;
1310
+ imageInput: boolean;
1311
+ slashCommands: boolean;
1312
+ modelSwitching: boolean;
1313
+ promptCaching: boolean;
1314
+ agenticTools: boolean;
1315
+ sessionResume: boolean;
1316
+ }>;
1317
+ onboarding: z.ZodDefault<z.ZodObject<{
1318
+ requiredVaultKeys: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1319
+ requiredEnvVars: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1320
+ authCommand: z.ZodOptional<z.ZodString>;
1321
+ docsUrl: z.ZodOptional<z.ZodString>;
1322
+ }, "strip", z.ZodTypeAny, {
1323
+ requiredVaultKeys: string[];
1324
+ requiredEnvVars: string[];
1325
+ authCommand?: string | undefined;
1326
+ docsUrl?: string | undefined;
1327
+ }, {
1328
+ requiredVaultKeys?: string[] | undefined;
1329
+ requiredEnvVars?: string[] | undefined;
1330
+ authCommand?: string | undefined;
1331
+ docsUrl?: string | undefined;
1332
+ }>>;
1333
+ }, "strip", z.ZodTypeAny, {
1334
+ capabilities: {
1335
+ mcp: boolean;
1336
+ streaming: boolean;
1337
+ toolUse: boolean;
1338
+ thinking: boolean;
1339
+ artifacts: boolean;
1340
+ fileAttachments: boolean;
1341
+ imageInput: boolean;
1342
+ slashCommands: boolean;
1343
+ modelSwitching: boolean;
1344
+ promptCaching: boolean;
1345
+ agenticTools: boolean;
1346
+ sessionResume: boolean;
1347
+ };
1348
+ agentId: string;
1349
+ onboarding: {
1350
+ requiredVaultKeys: string[];
1351
+ requiredEnvVars: string[];
1352
+ authCommand?: string | undefined;
1353
+ docsUrl?: string | undefined;
1354
+ };
1355
+ display?: string | undefined;
1356
+ }, {
1357
+ capabilities: {
1358
+ mcp: boolean;
1359
+ streaming: boolean;
1360
+ toolUse: boolean;
1361
+ thinking: boolean;
1362
+ artifacts: boolean;
1363
+ fileAttachments: boolean;
1364
+ imageInput: boolean;
1365
+ slashCommands: boolean;
1366
+ modelSwitching: boolean;
1367
+ promptCaching: boolean;
1368
+ agenticTools: boolean;
1369
+ sessionResume: boolean;
1370
+ };
1371
+ agentId: string;
1372
+ display?: string | undefined;
1373
+ onboarding?: {
1374
+ requiredVaultKeys?: string[] | undefined;
1375
+ requiredEnvVars?: string[] | undefined;
1376
+ authCommand?: string | undefined;
1377
+ docsUrl?: string | undefined;
1378
+ } | undefined;
1379
+ }>>;
1380
+ }, "strip", z.ZodTypeAny, {
1381
+ mcp: {
1382
+ args: string[];
1383
+ name: string;
1384
+ command: string;
1385
+ env: Record<string, string>;
1386
+ lifecycle?: "per-call" | "long-lived" | undefined;
1387
+ }[];
1388
+ id: string;
1389
+ name: string;
1390
+ version: string;
1391
+ permissions: {
1392
+ 'shell.execute': string[];
1393
+ 'fs.read': string[];
1394
+ 'fs.write': string[];
1395
+ net: string[];
1396
+ 'supabase.tables': string[];
1397
+ 'vault.keys': string[];
1398
+ };
1399
+ ikenga_api: string;
1400
+ targets: string[];
1401
+ sidecars: {
1402
+ name: string;
1403
+ bin: string;
1404
+ stdio: string;
1405
+ }[];
1406
+ ui: {
1407
+ nav: {
1408
+ label: string;
1409
+ id: string;
1410
+ route: string;
1411
+ section?: string | undefined;
1412
+ icon?: string | undefined;
1413
+ }[];
1414
+ routes: {
1415
+ path: string;
1416
+ kind: "iframe" | "component";
1417
+ source: string;
1418
+ }[];
1419
+ command_palette: {
1420
+ label: string;
1421
+ id: string;
1422
+ shortcut?: string | undefined;
1423
+ action?: unknown;
1424
+ }[];
1425
+ side_pane_viewers: {
1426
+ label: string;
1427
+ id: string;
1428
+ route: string;
1429
+ }[];
1430
+ csp?: Record<string, string[]> | undefined;
1431
+ permissions?: Record<string, string[]> | undefined;
1432
+ };
1433
+ cron: {
1434
+ id: string;
1435
+ handler: string;
1436
+ expr: string;
1437
+ env_from_settings: string[];
1438
+ }[];
1439
+ queries?: {
1440
+ key_prefixes: string[];
1441
+ } | undefined;
1442
+ author?: {
1443
+ name: string;
1444
+ key?: string | undefined;
1445
+ } | undefined;
1446
+ kind?: string | undefined;
1447
+ skills?: string | undefined;
1448
+ commands?: string | undefined;
1449
+ agents?: string | undefined;
1450
+ migrations?: string | undefined;
1451
+ settings?: {
1452
+ schema: {
1453
+ type: "string" | "number" | "boolean" | "secret";
1454
+ label: string;
1455
+ key: string;
1456
+ description?: string | undefined;
1457
+ default?: unknown;
1458
+ }[];
1459
+ } | undefined;
1460
+ iyke?: {
1461
+ routes: {
1462
+ path: string;
1463
+ method: "GET" | "POST";
1464
+ handler: string;
1465
+ }[];
1466
+ events: string[];
1467
+ } | undefined;
1468
+ window?: {
1469
+ url: string;
1470
+ label: string;
1471
+ size?: [number, number] | undefined;
1472
+ decorations?: boolean | undefined;
1473
+ menu?: string | undefined;
1474
+ } | undefined;
1475
+ engine?: {
1476
+ capabilities: {
1477
+ mcp: boolean;
1478
+ streaming: boolean;
1479
+ toolUse: boolean;
1480
+ thinking: boolean;
1481
+ artifacts: boolean;
1482
+ fileAttachments: boolean;
1483
+ imageInput: boolean;
1484
+ slashCommands: boolean;
1485
+ modelSwitching: boolean;
1486
+ promptCaching: boolean;
1487
+ agenticTools: boolean;
1488
+ sessionResume: boolean;
1489
+ };
1490
+ agentId: string;
1491
+ onboarding: {
1492
+ requiredVaultKeys: string[];
1493
+ requiredEnvVars: string[];
1494
+ authCommand?: string | undefined;
1495
+ docsUrl?: string | undefined;
1496
+ };
1497
+ display?: string | undefined;
1498
+ } | undefined;
1499
+ }, {
1500
+ id: string;
1501
+ name: string;
1502
+ version: string;
1503
+ ikenga_api: string;
1504
+ mcp?: {
1505
+ name: string;
1506
+ command: string;
1507
+ args?: string[] | undefined;
1508
+ env?: Record<string, string> | undefined;
1509
+ lifecycle?: "per-call" | "long-lived" | undefined;
1510
+ }[] | undefined;
1511
+ queries?: {
1512
+ key_prefixes?: string[] | undefined;
1513
+ } | undefined;
1514
+ author?: {
1515
+ name: string;
1516
+ key?: string | undefined;
1517
+ } | undefined;
1518
+ kind?: string | undefined;
1519
+ permissions?: {
1520
+ 'shell.execute'?: string[] | undefined;
1521
+ 'fs.read'?: string[] | undefined;
1522
+ 'fs.write'?: string[] | undefined;
1523
+ net?: string[] | undefined;
1524
+ 'supabase.tables'?: string[] | undefined;
1525
+ 'vault.keys'?: string[] | undefined;
1526
+ } | undefined;
1527
+ targets?: string[] | undefined;
1528
+ skills?: string | undefined;
1529
+ commands?: string | undefined;
1530
+ agents?: string | undefined;
1531
+ sidecars?: {
1532
+ name: string;
1533
+ bin: string;
1534
+ stdio?: string | undefined;
1535
+ }[] | undefined;
1536
+ migrations?: string | undefined;
1537
+ settings?: {
1538
+ schema?: {
1539
+ type: "string" | "number" | "boolean" | "secret";
1540
+ label: string;
1541
+ key: string;
1542
+ description?: string | undefined;
1543
+ default?: unknown;
1544
+ }[] | undefined;
1545
+ } | undefined;
1546
+ ui?: {
1547
+ nav?: {
1548
+ label: string;
1549
+ id: string;
1550
+ route: string;
1551
+ section?: string | undefined;
1552
+ icon?: string | undefined;
1553
+ }[] | undefined;
1554
+ routes?: {
1555
+ path: string;
1556
+ kind: "iframe" | "component";
1557
+ source: string;
1558
+ }[] | undefined;
1559
+ command_palette?: {
1560
+ label: string;
1561
+ id: string;
1562
+ shortcut?: string | undefined;
1563
+ action?: unknown;
1564
+ }[] | undefined;
1565
+ side_pane_viewers?: {
1566
+ label: string;
1567
+ id: string;
1568
+ route: string;
1569
+ }[] | undefined;
1570
+ csp?: Record<string, string[]> | undefined;
1571
+ permissions?: Record<string, string[]> | undefined;
1572
+ } | undefined;
1573
+ iyke?: {
1574
+ routes?: {
1575
+ path: string;
1576
+ method: "GET" | "POST";
1577
+ handler: string;
1578
+ }[] | undefined;
1579
+ events?: string[] | undefined;
1580
+ } | undefined;
1581
+ cron?: {
1582
+ id: string;
1583
+ handler: string;
1584
+ expr: string;
1585
+ env_from_settings?: string[] | undefined;
1586
+ }[] | undefined;
1587
+ window?: {
1588
+ url: string;
1589
+ label: string;
1590
+ size?: [number, number] | undefined;
1591
+ decorations?: boolean | undefined;
1592
+ menu?: string | undefined;
1593
+ } | undefined;
1594
+ engine?: {
1595
+ capabilities: {
1596
+ mcp: boolean;
1597
+ streaming: boolean;
1598
+ toolUse: boolean;
1599
+ thinking: boolean;
1600
+ artifacts: boolean;
1601
+ fileAttachments: boolean;
1602
+ imageInput: boolean;
1603
+ slashCommands: boolean;
1604
+ modelSwitching: boolean;
1605
+ promptCaching: boolean;
1606
+ agenticTools: boolean;
1607
+ sessionResume: boolean;
1608
+ };
1609
+ agentId: string;
1610
+ display?: string | undefined;
1611
+ onboarding?: {
1612
+ requiredVaultKeys?: string[] | undefined;
1613
+ requiredEnvVars?: string[] | undefined;
1614
+ authCommand?: string | undefined;
1615
+ docsUrl?: string | undefined;
1616
+ } | undefined;
1617
+ } | undefined;
1618
+ }>;
1619
+ /** Cross-pkg deps within `@ikenga/pkg-*`. External deps ride in the tarball. */
1620
+ deps: z.ZodDefault<z.ZodArray<z.ZodObject<{
1621
+ /** Full npm name, e.g. `@ikenga/pkg-engine-claude-code`. */
1622
+ name: z.ZodString;
1623
+ /** Semver range as declared in the pkg's package.json. */
1624
+ range: z.ZodString;
1625
+ }, "strip", z.ZodTypeAny, {
1626
+ name: string;
1627
+ range: string;
1628
+ }, {
1629
+ name: string;
1630
+ range: string;
1631
+ }>, "many">>;
1632
+ }, "strip", z.ZodTypeAny, {
1633
+ version: string;
1634
+ publishedAt: string;
1635
+ tarball: string;
1636
+ integrity: string;
1637
+ manifest: {
1638
+ mcp: {
1639
+ args: string[];
1640
+ name: string;
1641
+ command: string;
1642
+ env: Record<string, string>;
1643
+ lifecycle?: "per-call" | "long-lived" | undefined;
1644
+ }[];
1645
+ id: string;
1646
+ name: string;
1647
+ version: string;
1648
+ permissions: {
1649
+ 'shell.execute': string[];
1650
+ 'fs.read': string[];
1651
+ 'fs.write': string[];
1652
+ net: string[];
1653
+ 'supabase.tables': string[];
1654
+ 'vault.keys': string[];
1655
+ };
1656
+ ikenga_api: string;
1657
+ targets: string[];
1658
+ sidecars: {
1659
+ name: string;
1660
+ bin: string;
1661
+ stdio: string;
1662
+ }[];
1663
+ ui: {
1664
+ nav: {
1665
+ label: string;
1666
+ id: string;
1667
+ route: string;
1668
+ section?: string | undefined;
1669
+ icon?: string | undefined;
1670
+ }[];
1671
+ routes: {
1672
+ path: string;
1673
+ kind: "iframe" | "component";
1674
+ source: string;
1675
+ }[];
1676
+ command_palette: {
1677
+ label: string;
1678
+ id: string;
1679
+ shortcut?: string | undefined;
1680
+ action?: unknown;
1681
+ }[];
1682
+ side_pane_viewers: {
1683
+ label: string;
1684
+ id: string;
1685
+ route: string;
1686
+ }[];
1687
+ csp?: Record<string, string[]> | undefined;
1688
+ permissions?: Record<string, string[]> | undefined;
1689
+ };
1690
+ cron: {
1691
+ id: string;
1692
+ handler: string;
1693
+ expr: string;
1694
+ env_from_settings: string[];
1695
+ }[];
1696
+ queries?: {
1697
+ key_prefixes: string[];
1698
+ } | undefined;
1699
+ author?: {
1700
+ name: string;
1701
+ key?: string | undefined;
1702
+ } | undefined;
1703
+ kind?: string | undefined;
1704
+ skills?: string | undefined;
1705
+ commands?: string | undefined;
1706
+ agents?: string | undefined;
1707
+ migrations?: string | undefined;
1708
+ settings?: {
1709
+ schema: {
1710
+ type: "string" | "number" | "boolean" | "secret";
1711
+ label: string;
1712
+ key: string;
1713
+ description?: string | undefined;
1714
+ default?: unknown;
1715
+ }[];
1716
+ } | undefined;
1717
+ iyke?: {
1718
+ routes: {
1719
+ path: string;
1720
+ method: "GET" | "POST";
1721
+ handler: string;
1722
+ }[];
1723
+ events: string[];
1724
+ } | undefined;
1725
+ window?: {
1726
+ url: string;
1727
+ label: string;
1728
+ size?: [number, number] | undefined;
1729
+ decorations?: boolean | undefined;
1730
+ menu?: string | undefined;
1731
+ } | undefined;
1732
+ engine?: {
1733
+ capabilities: {
1734
+ mcp: boolean;
1735
+ streaming: boolean;
1736
+ toolUse: boolean;
1737
+ thinking: boolean;
1738
+ artifacts: boolean;
1739
+ fileAttachments: boolean;
1740
+ imageInput: boolean;
1741
+ slashCommands: boolean;
1742
+ modelSwitching: boolean;
1743
+ promptCaching: boolean;
1744
+ agenticTools: boolean;
1745
+ sessionResume: boolean;
1746
+ };
1747
+ agentId: string;
1748
+ onboarding: {
1749
+ requiredVaultKeys: string[];
1750
+ requiredEnvVars: string[];
1751
+ authCommand?: string | undefined;
1752
+ docsUrl?: string | undefined;
1753
+ };
1754
+ display?: string | undefined;
1755
+ } | undefined;
1756
+ };
1757
+ deps: {
1758
+ name: string;
1759
+ range: string;
1760
+ }[];
1761
+ size?: number | undefined;
1762
+ }, {
1763
+ version: string;
1764
+ publishedAt: string;
1765
+ tarball: string;
1766
+ integrity: string;
1767
+ manifest: {
1768
+ id: string;
1769
+ name: string;
1770
+ version: string;
1771
+ ikenga_api: string;
1772
+ mcp?: {
1773
+ name: string;
1774
+ command: string;
1775
+ args?: string[] | undefined;
1776
+ env?: Record<string, string> | undefined;
1777
+ lifecycle?: "per-call" | "long-lived" | undefined;
1778
+ }[] | undefined;
1779
+ queries?: {
1780
+ key_prefixes?: string[] | undefined;
1781
+ } | undefined;
1782
+ author?: {
1783
+ name: string;
1784
+ key?: string | undefined;
1785
+ } | undefined;
1786
+ kind?: string | undefined;
1787
+ permissions?: {
1788
+ 'shell.execute'?: string[] | undefined;
1789
+ 'fs.read'?: string[] | undefined;
1790
+ 'fs.write'?: string[] | undefined;
1791
+ net?: string[] | undefined;
1792
+ 'supabase.tables'?: string[] | undefined;
1793
+ 'vault.keys'?: string[] | undefined;
1794
+ } | undefined;
1795
+ targets?: string[] | undefined;
1796
+ skills?: string | undefined;
1797
+ commands?: string | undefined;
1798
+ agents?: string | undefined;
1799
+ sidecars?: {
1800
+ name: string;
1801
+ bin: string;
1802
+ stdio?: string | undefined;
1803
+ }[] | undefined;
1804
+ migrations?: string | undefined;
1805
+ settings?: {
1806
+ schema?: {
1807
+ type: "string" | "number" | "boolean" | "secret";
1808
+ label: string;
1809
+ key: string;
1810
+ description?: string | undefined;
1811
+ default?: unknown;
1812
+ }[] | undefined;
1813
+ } | undefined;
1814
+ ui?: {
1815
+ nav?: {
1816
+ label: string;
1817
+ id: string;
1818
+ route: string;
1819
+ section?: string | undefined;
1820
+ icon?: string | undefined;
1821
+ }[] | undefined;
1822
+ routes?: {
1823
+ path: string;
1824
+ kind: "iframe" | "component";
1825
+ source: string;
1826
+ }[] | undefined;
1827
+ command_palette?: {
1828
+ label: string;
1829
+ id: string;
1830
+ shortcut?: string | undefined;
1831
+ action?: unknown;
1832
+ }[] | undefined;
1833
+ side_pane_viewers?: {
1834
+ label: string;
1835
+ id: string;
1836
+ route: string;
1837
+ }[] | undefined;
1838
+ csp?: Record<string, string[]> | undefined;
1839
+ permissions?: Record<string, string[]> | undefined;
1840
+ } | undefined;
1841
+ iyke?: {
1842
+ routes?: {
1843
+ path: string;
1844
+ method: "GET" | "POST";
1845
+ handler: string;
1846
+ }[] | undefined;
1847
+ events?: string[] | undefined;
1848
+ } | undefined;
1849
+ cron?: {
1850
+ id: string;
1851
+ handler: string;
1852
+ expr: string;
1853
+ env_from_settings?: string[] | undefined;
1854
+ }[] | undefined;
1855
+ window?: {
1856
+ url: string;
1857
+ label: string;
1858
+ size?: [number, number] | undefined;
1859
+ decorations?: boolean | undefined;
1860
+ menu?: string | undefined;
1861
+ } | undefined;
1862
+ engine?: {
1863
+ capabilities: {
1864
+ mcp: boolean;
1865
+ streaming: boolean;
1866
+ toolUse: boolean;
1867
+ thinking: boolean;
1868
+ artifacts: boolean;
1869
+ fileAttachments: boolean;
1870
+ imageInput: boolean;
1871
+ slashCommands: boolean;
1872
+ modelSwitching: boolean;
1873
+ promptCaching: boolean;
1874
+ agenticTools: boolean;
1875
+ sessionResume: boolean;
1876
+ };
1877
+ agentId: string;
1878
+ display?: string | undefined;
1879
+ onboarding?: {
1880
+ requiredVaultKeys?: string[] | undefined;
1881
+ requiredEnvVars?: string[] | undefined;
1882
+ authCommand?: string | undefined;
1883
+ docsUrl?: string | undefined;
1884
+ } | undefined;
1885
+ } | undefined;
1886
+ };
1887
+ size?: number | undefined;
1888
+ deps?: {
1889
+ name: string;
1890
+ range: string;
1891
+ }[] | undefined;
1892
+ }>, "many">;
1893
+ }, "strip", z.ZodTypeAny, {
1894
+ name: string;
1895
+ $schemaVersion: 1;
1896
+ updatedAt: string;
1897
+ versions: {
1898
+ version: string;
1899
+ publishedAt: string;
1900
+ tarball: string;
1901
+ integrity: string;
1902
+ manifest: {
1903
+ mcp: {
1904
+ args: string[];
1905
+ name: string;
1906
+ command: string;
1907
+ env: Record<string, string>;
1908
+ lifecycle?: "per-call" | "long-lived" | undefined;
1909
+ }[];
1910
+ id: string;
1911
+ name: string;
1912
+ version: string;
1913
+ permissions: {
1914
+ 'shell.execute': string[];
1915
+ 'fs.read': string[];
1916
+ 'fs.write': string[];
1917
+ net: string[];
1918
+ 'supabase.tables': string[];
1919
+ 'vault.keys': string[];
1920
+ };
1921
+ ikenga_api: string;
1922
+ targets: string[];
1923
+ sidecars: {
1924
+ name: string;
1925
+ bin: string;
1926
+ stdio: string;
1927
+ }[];
1928
+ ui: {
1929
+ nav: {
1930
+ label: string;
1931
+ id: string;
1932
+ route: string;
1933
+ section?: string | undefined;
1934
+ icon?: string | undefined;
1935
+ }[];
1936
+ routes: {
1937
+ path: string;
1938
+ kind: "iframe" | "component";
1939
+ source: string;
1940
+ }[];
1941
+ command_palette: {
1942
+ label: string;
1943
+ id: string;
1944
+ shortcut?: string | undefined;
1945
+ action?: unknown;
1946
+ }[];
1947
+ side_pane_viewers: {
1948
+ label: string;
1949
+ id: string;
1950
+ route: string;
1951
+ }[];
1952
+ csp?: Record<string, string[]> | undefined;
1953
+ permissions?: Record<string, string[]> | undefined;
1954
+ };
1955
+ cron: {
1956
+ id: string;
1957
+ handler: string;
1958
+ expr: string;
1959
+ env_from_settings: string[];
1960
+ }[];
1961
+ queries?: {
1962
+ key_prefixes: string[];
1963
+ } | undefined;
1964
+ author?: {
1965
+ name: string;
1966
+ key?: string | undefined;
1967
+ } | undefined;
1968
+ kind?: string | undefined;
1969
+ skills?: string | undefined;
1970
+ commands?: string | undefined;
1971
+ agents?: string | undefined;
1972
+ migrations?: string | undefined;
1973
+ settings?: {
1974
+ schema: {
1975
+ type: "string" | "number" | "boolean" | "secret";
1976
+ label: string;
1977
+ key: string;
1978
+ description?: string | undefined;
1979
+ default?: unknown;
1980
+ }[];
1981
+ } | undefined;
1982
+ iyke?: {
1983
+ routes: {
1984
+ path: string;
1985
+ method: "GET" | "POST";
1986
+ handler: string;
1987
+ }[];
1988
+ events: string[];
1989
+ } | undefined;
1990
+ window?: {
1991
+ url: string;
1992
+ label: string;
1993
+ size?: [number, number] | undefined;
1994
+ decorations?: boolean | undefined;
1995
+ menu?: string | undefined;
1996
+ } | undefined;
1997
+ engine?: {
1998
+ capabilities: {
1999
+ mcp: boolean;
2000
+ streaming: boolean;
2001
+ toolUse: boolean;
2002
+ thinking: boolean;
2003
+ artifacts: boolean;
2004
+ fileAttachments: boolean;
2005
+ imageInput: boolean;
2006
+ slashCommands: boolean;
2007
+ modelSwitching: boolean;
2008
+ promptCaching: boolean;
2009
+ agenticTools: boolean;
2010
+ sessionResume: boolean;
2011
+ };
2012
+ agentId: string;
2013
+ onboarding: {
2014
+ requiredVaultKeys: string[];
2015
+ requiredEnvVars: string[];
2016
+ authCommand?: string | undefined;
2017
+ docsUrl?: string | undefined;
2018
+ };
2019
+ display?: string | undefined;
2020
+ } | undefined;
2021
+ };
2022
+ deps: {
2023
+ name: string;
2024
+ range: string;
2025
+ }[];
2026
+ size?: number | undefined;
2027
+ }[];
2028
+ }, {
2029
+ name: string;
2030
+ $schemaVersion: 1;
2031
+ updatedAt: string;
2032
+ versions: {
2033
+ version: string;
2034
+ publishedAt: string;
2035
+ tarball: string;
2036
+ integrity: string;
2037
+ manifest: {
2038
+ id: string;
2039
+ name: string;
2040
+ version: string;
2041
+ ikenga_api: string;
2042
+ mcp?: {
2043
+ name: string;
2044
+ command: string;
2045
+ args?: string[] | undefined;
2046
+ env?: Record<string, string> | undefined;
2047
+ lifecycle?: "per-call" | "long-lived" | undefined;
2048
+ }[] | undefined;
2049
+ queries?: {
2050
+ key_prefixes?: string[] | undefined;
2051
+ } | undefined;
2052
+ author?: {
2053
+ name: string;
2054
+ key?: string | undefined;
2055
+ } | undefined;
2056
+ kind?: string | undefined;
2057
+ permissions?: {
2058
+ 'shell.execute'?: string[] | undefined;
2059
+ 'fs.read'?: string[] | undefined;
2060
+ 'fs.write'?: string[] | undefined;
2061
+ net?: string[] | undefined;
2062
+ 'supabase.tables'?: string[] | undefined;
2063
+ 'vault.keys'?: string[] | undefined;
2064
+ } | undefined;
2065
+ targets?: string[] | undefined;
2066
+ skills?: string | undefined;
2067
+ commands?: string | undefined;
2068
+ agents?: string | undefined;
2069
+ sidecars?: {
2070
+ name: string;
2071
+ bin: string;
2072
+ stdio?: string | undefined;
2073
+ }[] | undefined;
2074
+ migrations?: string | undefined;
2075
+ settings?: {
2076
+ schema?: {
2077
+ type: "string" | "number" | "boolean" | "secret";
2078
+ label: string;
2079
+ key: string;
2080
+ description?: string | undefined;
2081
+ default?: unknown;
2082
+ }[] | undefined;
2083
+ } | undefined;
2084
+ ui?: {
2085
+ nav?: {
2086
+ label: string;
2087
+ id: string;
2088
+ route: string;
2089
+ section?: string | undefined;
2090
+ icon?: string | undefined;
2091
+ }[] | undefined;
2092
+ routes?: {
2093
+ path: string;
2094
+ kind: "iframe" | "component";
2095
+ source: string;
2096
+ }[] | undefined;
2097
+ command_palette?: {
2098
+ label: string;
2099
+ id: string;
2100
+ shortcut?: string | undefined;
2101
+ action?: unknown;
2102
+ }[] | undefined;
2103
+ side_pane_viewers?: {
2104
+ label: string;
2105
+ id: string;
2106
+ route: string;
2107
+ }[] | undefined;
2108
+ csp?: Record<string, string[]> | undefined;
2109
+ permissions?: Record<string, string[]> | undefined;
2110
+ } | undefined;
2111
+ iyke?: {
2112
+ routes?: {
2113
+ path: string;
2114
+ method: "GET" | "POST";
2115
+ handler: string;
2116
+ }[] | undefined;
2117
+ events?: string[] | undefined;
2118
+ } | undefined;
2119
+ cron?: {
2120
+ id: string;
2121
+ handler: string;
2122
+ expr: string;
2123
+ env_from_settings?: string[] | undefined;
2124
+ }[] | undefined;
2125
+ window?: {
2126
+ url: string;
2127
+ label: string;
2128
+ size?: [number, number] | undefined;
2129
+ decorations?: boolean | undefined;
2130
+ menu?: string | undefined;
2131
+ } | undefined;
2132
+ engine?: {
2133
+ capabilities: {
2134
+ mcp: boolean;
2135
+ streaming: boolean;
2136
+ toolUse: boolean;
2137
+ thinking: boolean;
2138
+ artifacts: boolean;
2139
+ fileAttachments: boolean;
2140
+ imageInput: boolean;
2141
+ slashCommands: boolean;
2142
+ modelSwitching: boolean;
2143
+ promptCaching: boolean;
2144
+ agenticTools: boolean;
2145
+ sessionResume: boolean;
2146
+ };
2147
+ agentId: string;
2148
+ display?: string | undefined;
2149
+ onboarding?: {
2150
+ requiredVaultKeys?: string[] | undefined;
2151
+ requiredEnvVars?: string[] | undefined;
2152
+ authCommand?: string | undefined;
2153
+ docsUrl?: string | undefined;
2154
+ } | undefined;
2155
+ } | undefined;
2156
+ };
2157
+ size?: number | undefined;
2158
+ deps?: {
2159
+ name: string;
2160
+ range: string;
2161
+ }[] | undefined;
2162
+ }[];
2163
+ }>;
2164
+ export type PkgDetail = z.infer<typeof PkgDetailSchema>;
2165
+ export declare const RegistryEntrySchema: z.ZodObject<{
2166
+ /** Full npm name. */
2167
+ name: z.ZodString;
2168
+ /** Latest semver. */
2169
+ latest: z.ZodString;
2170
+ /**
2171
+ * Relative path from `index.json` to the per-pkg detail file.
2172
+ * Convention: `pkgs/<short-name>.json` where short-name is the npm name
2173
+ * minus the `@ikenga/` scope and `pkg-` prefix (e.g.
2174
+ * `@ikenga/pkg-engine-claude-code` → `engine-claude-code`).
2175
+ */
2176
+ detail: z.ZodString;
2177
+ /** Short description, mirrored from the manifest's `name`/`description`. */
2178
+ description: z.ZodOptional<z.ZodString>;
2179
+ /** Manifest `kind` hint ("engine" | "skill" | "embedded" | "windowed"). */
2180
+ kind: z.ZodOptional<z.ZodString>;
2181
+ }, "strip", z.ZodTypeAny, {
2182
+ name: string;
2183
+ latest: string;
2184
+ detail: string;
2185
+ description?: string | undefined;
2186
+ kind?: string | undefined;
2187
+ }, {
2188
+ name: string;
2189
+ latest: string;
2190
+ detail: string;
2191
+ description?: string | undefined;
2192
+ kind?: string | undefined;
2193
+ }>;
2194
+ export type RegistryEntry = z.infer<typeof RegistryEntrySchema>;
2195
+ export declare const RegistryIndexSchema: z.ZodObject<{
2196
+ $schemaVersion: z.ZodLiteral<1>;
2197
+ /** ISO-8601 — last time any entry was added/updated. */
2198
+ updatedAt: z.ZodString;
2199
+ pkgs: z.ZodArray<z.ZodObject<{
2200
+ /** Full npm name. */
2201
+ name: z.ZodString;
2202
+ /** Latest semver. */
2203
+ latest: z.ZodString;
2204
+ /**
2205
+ * Relative path from `index.json` to the per-pkg detail file.
2206
+ * Convention: `pkgs/<short-name>.json` where short-name is the npm name
2207
+ * minus the `@ikenga/` scope and `pkg-` prefix (e.g.
2208
+ * `@ikenga/pkg-engine-claude-code` → `engine-claude-code`).
2209
+ */
2210
+ detail: z.ZodString;
2211
+ /** Short description, mirrored from the manifest's `name`/`description`. */
2212
+ description: z.ZodOptional<z.ZodString>;
2213
+ /** Manifest `kind` hint ("engine" | "skill" | "embedded" | "windowed"). */
2214
+ kind: z.ZodOptional<z.ZodString>;
2215
+ }, "strip", z.ZodTypeAny, {
2216
+ name: string;
2217
+ latest: string;
2218
+ detail: string;
2219
+ description?: string | undefined;
2220
+ kind?: string | undefined;
2221
+ }, {
2222
+ name: string;
2223
+ latest: string;
2224
+ detail: string;
2225
+ description?: string | undefined;
2226
+ kind?: string | undefined;
2227
+ }>, "many">;
2228
+ }, "strip", z.ZodTypeAny, {
2229
+ $schemaVersion: 1;
2230
+ updatedAt: string;
2231
+ pkgs: {
2232
+ name: string;
2233
+ latest: string;
2234
+ detail: string;
2235
+ description?: string | undefined;
2236
+ kind?: string | undefined;
2237
+ }[];
2238
+ }, {
2239
+ $schemaVersion: 1;
2240
+ updatedAt: string;
2241
+ pkgs: {
2242
+ name: string;
2243
+ latest: string;
2244
+ detail: string;
2245
+ description?: string | undefined;
2246
+ kind?: string | undefined;
2247
+ }[];
2248
+ }>;
2249
+ export type RegistryIndex = z.infer<typeof RegistryIndexSchema>;
2250
+ /**
2251
+ * Canonical short-name used in detail-file paths.
2252
+ * `@ikenga/pkg-engine-claude-code` → `engine-claude-code`
2253
+ * `@ikenga/mcp-iyke` → `mcp-iyke`
2254
+ */
2255
+ export declare function pkgShortName(npmName: string): string;
2256
+ /** Default detail-file path for a pkg name, relative to the registry root. */
2257
+ export declare function pkgDetailPath(npmName: string): string;
2258
+ //# sourceMappingURL=registry.d.ts.map