@ikenga/contract 0.5.1 → 0.7.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 (53) hide show
  1. package/dist/engine/acp.d.ts +271 -0
  2. package/dist/engine/acp.d.ts.map +1 -0
  3. package/dist/engine/acp.js +13 -0
  4. package/dist/engine/acp.js.map +1 -0
  5. package/dist/{engine.d.ts → engine/adapter.d.ts} +60 -243
  6. package/dist/engine/adapter.d.ts.map +1 -0
  7. package/dist/{engine.js → engine/adapter.js} +14 -6
  8. package/dist/engine/adapter.js.map +1 -0
  9. package/dist/engine/errors.d.ts +17 -0
  10. package/dist/engine/errors.d.ts.map +1 -0
  11. package/dist/engine/errors.js +19 -0
  12. package/dist/engine/errors.js.map +1 -0
  13. package/dist/engine/index.d.ts +14 -0
  14. package/dist/engine/index.d.ts.map +1 -0
  15. package/dist/engine/index.js +14 -0
  16. package/dist/engine/index.js.map +1 -0
  17. package/dist/engine/portability.d.ts +113 -0
  18. package/dist/engine/portability.d.ts.map +1 -0
  19. package/dist/engine/portability.js +17 -0
  20. package/dist/engine/portability.js.map +1 -0
  21. package/dist/engine/subagent-transcoder.d.ts +24 -0
  22. package/dist/engine/subagent-transcoder.d.ts.map +1 -0
  23. package/dist/engine/subagent-transcoder.js +341 -0
  24. package/dist/engine/subagent-transcoder.js.map +1 -0
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/manifest.d.ts +147 -0
  30. package/dist/manifest.d.ts.map +1 -1
  31. package/dist/manifest.js +32 -1
  32. package/dist/manifest.js.map +1 -1
  33. package/dist/registry.d.ts +216 -0
  34. package/dist/registry.d.ts.map +1 -1
  35. package/dist/registry.js +23 -0
  36. package/dist/registry.js.map +1 -1
  37. package/dist/rpc.d.ts +1 -1
  38. package/dist/rpc.d.ts.map +1 -1
  39. package/package.json +3 -3
  40. package/src/{engine.ts → engine/acp.ts} +49 -198
  41. package/src/engine/adapter.ts +243 -0
  42. package/src/{engine.test.ts → engine/engine.test.ts} +33 -2
  43. package/src/engine/errors.ts +20 -0
  44. package/src/engine/index.ts +14 -0
  45. package/src/engine/portability.ts +123 -0
  46. package/src/engine/subagent-transcoder.test.ts +306 -0
  47. package/src/engine/subagent-transcoder.ts +333 -0
  48. package/src/index.ts +1 -1
  49. package/src/manifest.ts +35 -1
  50. package/src/registry.ts +25 -0
  51. package/src/rpc.ts +1 -1
  52. package/dist/engine.d.ts.map +0 -1
  53. package/dist/engine.js.map +0 -1
@@ -18,6 +18,22 @@ export declare const PkgDepSchema: z.ZodObject<{
18
18
  range: string;
19
19
  }>;
20
20
  export type PkgDep = z.infer<typeof PkgDepSchema>;
21
+ /**
22
+ * Hosted preview screenshot for a registry pkg. The publish workflow uploads
23
+ * each `manifest.screenshots[].path` to a CDN and emits the absolute URL
24
+ * here, so the shell can render a preview without downloading the pkg.
25
+ */
26
+ export declare const HostedScreenshotSchema: z.ZodObject<{
27
+ url: z.ZodString;
28
+ caption: z.ZodOptional<z.ZodString>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ url: string;
31
+ caption?: string | undefined;
32
+ }, {
33
+ url: string;
34
+ caption?: string | undefined;
35
+ }>;
36
+ export type HostedScreenshot = z.infer<typeof HostedScreenshotSchema>;
21
37
  export declare const PkgVersionSchema: z.ZodObject<{
22
38
  /** Semver, e.g. `0.1.0`. */
23
39
  version: z.ZodString;
@@ -56,11 +72,15 @@ export declare const PkgVersionSchema: z.ZodObject<{
56
72
  args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
57
73
  env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
58
74
  lifecycle: z.ZodOptional<z.ZodEnum<["per-call", "long-lived"]>>;
75
+ restart_when_changed: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
76
+ auto_restart: z.ZodDefault<z.ZodBoolean>;
59
77
  }, "strip", z.ZodTypeAny, {
60
78
  args: string[];
61
79
  name: string;
62
80
  command: string;
63
81
  env: Record<string, string>;
82
+ restart_when_changed: string[];
83
+ auto_restart: boolean;
64
84
  lifecycle?: "per-call" | "long-lived" | undefined;
65
85
  }, {
66
86
  name: string;
@@ -68,18 +88,26 @@ export declare const PkgVersionSchema: z.ZodObject<{
68
88
  args?: string[] | undefined;
69
89
  env?: Record<string, string> | undefined;
70
90
  lifecycle?: "per-call" | "long-lived" | undefined;
91
+ restart_when_changed?: string[] | undefined;
92
+ auto_restart?: boolean | undefined;
71
93
  }>, "many">>;
72
94
  sidecars: z.ZodDefault<z.ZodArray<z.ZodObject<{
73
95
  name: z.ZodString;
74
96
  bin: z.ZodString;
75
97
  stdio: z.ZodDefault<z.ZodString>;
98
+ restart_when_changed: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
99
+ auto_restart: z.ZodDefault<z.ZodBoolean>;
76
100
  }, "strip", z.ZodTypeAny, {
77
101
  name: string;
102
+ restart_when_changed: string[];
103
+ auto_restart: boolean;
78
104
  bin: string;
79
105
  stdio: string;
80
106
  }, {
81
107
  name: string;
82
108
  bin: string;
109
+ restart_when_changed?: string[] | undefined;
110
+ auto_restart?: boolean | undefined;
83
111
  stdio?: string | undefined;
84
112
  }>, "many">>;
85
113
  permissions: z.ZodDefault<z.ZodObject<{
@@ -437,12 +465,24 @@ export declare const PkgVersionSchema: z.ZodObject<{
437
465
  docsUrl?: string | undefined;
438
466
  } | undefined;
439
467
  }>>;
468
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
469
+ path: z.ZodString;
470
+ caption: z.ZodOptional<z.ZodString>;
471
+ }, "strip", z.ZodTypeAny, {
472
+ path: string;
473
+ caption?: string | undefined;
474
+ }, {
475
+ path: string;
476
+ caption?: string | undefined;
477
+ }>, "many">>;
440
478
  }, "strip", z.ZodTypeAny, {
441
479
  mcp: {
442
480
  args: string[];
443
481
  name: string;
444
482
  command: string;
445
483
  env: Record<string, string>;
484
+ restart_when_changed: string[];
485
+ auto_restart: boolean;
446
486
  lifecycle?: "per-call" | "long-lived" | undefined;
447
487
  }[];
448
488
  id: string;
@@ -460,6 +500,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
460
500
  targets: string[];
461
501
  sidecars: {
462
502
  name: string;
503
+ restart_when_changed: string[];
504
+ auto_restart: boolean;
463
505
  bin: string;
464
506
  stdio: string;
465
507
  }[];
@@ -496,6 +538,10 @@ export declare const PkgVersionSchema: z.ZodObject<{
496
538
  expr: string;
497
539
  env_from_settings: string[];
498
540
  }[];
541
+ screenshots: {
542
+ path: string;
543
+ caption?: string | undefined;
544
+ }[];
499
545
  queries?: {
500
546
  key_prefixes: string[];
501
547
  } | undefined;
@@ -567,6 +613,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
567
613
  args?: string[] | undefined;
568
614
  env?: Record<string, string> | undefined;
569
615
  lifecycle?: "per-call" | "long-lived" | undefined;
616
+ restart_when_changed?: string[] | undefined;
617
+ auto_restart?: boolean | undefined;
570
618
  }[] | undefined;
571
619
  queries?: {
572
620
  key_prefixes?: string[] | undefined;
@@ -591,6 +639,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
591
639
  sidecars?: {
592
640
  name: string;
593
641
  bin: string;
642
+ restart_when_changed?: string[] | undefined;
643
+ auto_restart?: boolean | undefined;
594
644
  stdio?: string | undefined;
595
645
  }[] | undefined;
596
646
  migrations?: string | undefined;
@@ -675,6 +725,10 @@ export declare const PkgVersionSchema: z.ZodObject<{
675
725
  docsUrl?: string | undefined;
676
726
  } | undefined;
677
727
  } | undefined;
728
+ screenshots?: {
729
+ path: string;
730
+ caption?: string | undefined;
731
+ }[] | undefined;
678
732
  }>;
679
733
  /** Cross-pkg deps within `@ikenga/pkg-*`. External deps ride in the tarball. */
680
734
  deps: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -689,8 +743,29 @@ export declare const PkgVersionSchema: z.ZodObject<{
689
743
  name: string;
690
744
  range: string;
691
745
  }>, "many">>;
746
+ /**
747
+ * Absolute URLs for the screenshots declared in the manifest. The publish
748
+ * workflow uploads `manifest.screenshots[].path` files to a CDN and emits
749
+ * the resulting URL here; consumers should prefer these over the relative
750
+ * `manifest.screenshots[].path` values (which are only meaningful after
751
+ * install). Same order as `manifest.screenshots`; captions are mirrored.
752
+ */
753
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
754
+ url: z.ZodString;
755
+ caption: z.ZodOptional<z.ZodString>;
756
+ }, "strip", z.ZodTypeAny, {
757
+ url: string;
758
+ caption?: string | undefined;
759
+ }, {
760
+ url: string;
761
+ caption?: string | undefined;
762
+ }>, "many">>;
692
763
  }, "strip", z.ZodTypeAny, {
693
764
  version: string;
765
+ screenshots: {
766
+ url: string;
767
+ caption?: string | undefined;
768
+ }[];
694
769
  publishedAt: string;
695
770
  tarball: string;
696
771
  integrity: string;
@@ -700,6 +775,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
700
775
  name: string;
701
776
  command: string;
702
777
  env: Record<string, string>;
778
+ restart_when_changed: string[];
779
+ auto_restart: boolean;
703
780
  lifecycle?: "per-call" | "long-lived" | undefined;
704
781
  }[];
705
782
  id: string;
@@ -717,6 +794,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
717
794
  targets: string[];
718
795
  sidecars: {
719
796
  name: string;
797
+ restart_when_changed: string[];
798
+ auto_restart: boolean;
720
799
  bin: string;
721
800
  stdio: string;
722
801
  }[];
@@ -753,6 +832,10 @@ export declare const PkgVersionSchema: z.ZodObject<{
753
832
  expr: string;
754
833
  env_from_settings: string[];
755
834
  }[];
835
+ screenshots: {
836
+ path: string;
837
+ caption?: string | undefined;
838
+ }[];
756
839
  queries?: {
757
840
  key_prefixes: string[];
758
841
  } | undefined;
@@ -835,6 +918,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
835
918
  args?: string[] | undefined;
836
919
  env?: Record<string, string> | undefined;
837
920
  lifecycle?: "per-call" | "long-lived" | undefined;
921
+ restart_when_changed?: string[] | undefined;
922
+ auto_restart?: boolean | undefined;
838
923
  }[] | undefined;
839
924
  queries?: {
840
925
  key_prefixes?: string[] | undefined;
@@ -859,6 +944,8 @@ export declare const PkgVersionSchema: z.ZodObject<{
859
944
  sidecars?: {
860
945
  name: string;
861
946
  bin: string;
947
+ restart_when_changed?: string[] | undefined;
948
+ auto_restart?: boolean | undefined;
862
949
  stdio?: string | undefined;
863
950
  }[] | undefined;
864
951
  migrations?: string | undefined;
@@ -943,8 +1030,16 @@ export declare const PkgVersionSchema: z.ZodObject<{
943
1030
  docsUrl?: string | undefined;
944
1031
  } | undefined;
945
1032
  } | undefined;
1033
+ screenshots?: {
1034
+ path: string;
1035
+ caption?: string | undefined;
1036
+ }[] | undefined;
946
1037
  };
947
1038
  size?: number | undefined;
1039
+ screenshots?: {
1040
+ url: string;
1041
+ caption?: string | undefined;
1042
+ }[] | undefined;
948
1043
  deps?: {
949
1044
  name: string;
950
1045
  range: string;
@@ -996,11 +1091,15 @@ export declare const PkgDetailSchema: z.ZodObject<{
996
1091
  args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
997
1092
  env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
998
1093
  lifecycle: z.ZodOptional<z.ZodEnum<["per-call", "long-lived"]>>;
1094
+ restart_when_changed: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1095
+ auto_restart: z.ZodDefault<z.ZodBoolean>;
999
1096
  }, "strip", z.ZodTypeAny, {
1000
1097
  args: string[];
1001
1098
  name: string;
1002
1099
  command: string;
1003
1100
  env: Record<string, string>;
1101
+ restart_when_changed: string[];
1102
+ auto_restart: boolean;
1004
1103
  lifecycle?: "per-call" | "long-lived" | undefined;
1005
1104
  }, {
1006
1105
  name: string;
@@ -1008,18 +1107,26 @@ export declare const PkgDetailSchema: z.ZodObject<{
1008
1107
  args?: string[] | undefined;
1009
1108
  env?: Record<string, string> | undefined;
1010
1109
  lifecycle?: "per-call" | "long-lived" | undefined;
1110
+ restart_when_changed?: string[] | undefined;
1111
+ auto_restart?: boolean | undefined;
1011
1112
  }>, "many">>;
1012
1113
  sidecars: z.ZodDefault<z.ZodArray<z.ZodObject<{
1013
1114
  name: z.ZodString;
1014
1115
  bin: z.ZodString;
1015
1116
  stdio: z.ZodDefault<z.ZodString>;
1117
+ restart_when_changed: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1118
+ auto_restart: z.ZodDefault<z.ZodBoolean>;
1016
1119
  }, "strip", z.ZodTypeAny, {
1017
1120
  name: string;
1121
+ restart_when_changed: string[];
1122
+ auto_restart: boolean;
1018
1123
  bin: string;
1019
1124
  stdio: string;
1020
1125
  }, {
1021
1126
  name: string;
1022
1127
  bin: string;
1128
+ restart_when_changed?: string[] | undefined;
1129
+ auto_restart?: boolean | undefined;
1023
1130
  stdio?: string | undefined;
1024
1131
  }>, "many">>;
1025
1132
  permissions: z.ZodDefault<z.ZodObject<{
@@ -1377,12 +1484,24 @@ export declare const PkgDetailSchema: z.ZodObject<{
1377
1484
  docsUrl?: string | undefined;
1378
1485
  } | undefined;
1379
1486
  }>>;
1487
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
1488
+ path: z.ZodString;
1489
+ caption: z.ZodOptional<z.ZodString>;
1490
+ }, "strip", z.ZodTypeAny, {
1491
+ path: string;
1492
+ caption?: string | undefined;
1493
+ }, {
1494
+ path: string;
1495
+ caption?: string | undefined;
1496
+ }>, "many">>;
1380
1497
  }, "strip", z.ZodTypeAny, {
1381
1498
  mcp: {
1382
1499
  args: string[];
1383
1500
  name: string;
1384
1501
  command: string;
1385
1502
  env: Record<string, string>;
1503
+ restart_when_changed: string[];
1504
+ auto_restart: boolean;
1386
1505
  lifecycle?: "per-call" | "long-lived" | undefined;
1387
1506
  }[];
1388
1507
  id: string;
@@ -1400,6 +1519,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1400
1519
  targets: string[];
1401
1520
  sidecars: {
1402
1521
  name: string;
1522
+ restart_when_changed: string[];
1523
+ auto_restart: boolean;
1403
1524
  bin: string;
1404
1525
  stdio: string;
1405
1526
  }[];
@@ -1436,6 +1557,10 @@ export declare const PkgDetailSchema: z.ZodObject<{
1436
1557
  expr: string;
1437
1558
  env_from_settings: string[];
1438
1559
  }[];
1560
+ screenshots: {
1561
+ path: string;
1562
+ caption?: string | undefined;
1563
+ }[];
1439
1564
  queries?: {
1440
1565
  key_prefixes: string[];
1441
1566
  } | undefined;
@@ -1507,6 +1632,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1507
1632
  args?: string[] | undefined;
1508
1633
  env?: Record<string, string> | undefined;
1509
1634
  lifecycle?: "per-call" | "long-lived" | undefined;
1635
+ restart_when_changed?: string[] | undefined;
1636
+ auto_restart?: boolean | undefined;
1510
1637
  }[] | undefined;
1511
1638
  queries?: {
1512
1639
  key_prefixes?: string[] | undefined;
@@ -1531,6 +1658,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1531
1658
  sidecars?: {
1532
1659
  name: string;
1533
1660
  bin: string;
1661
+ restart_when_changed?: string[] | undefined;
1662
+ auto_restart?: boolean | undefined;
1534
1663
  stdio?: string | undefined;
1535
1664
  }[] | undefined;
1536
1665
  migrations?: string | undefined;
@@ -1615,6 +1744,10 @@ export declare const PkgDetailSchema: z.ZodObject<{
1615
1744
  docsUrl?: string | undefined;
1616
1745
  } | undefined;
1617
1746
  } | undefined;
1747
+ screenshots?: {
1748
+ path: string;
1749
+ caption?: string | undefined;
1750
+ }[] | undefined;
1618
1751
  }>;
1619
1752
  /** Cross-pkg deps within `@ikenga/pkg-*`. External deps ride in the tarball. */
1620
1753
  deps: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -1629,8 +1762,29 @@ export declare const PkgDetailSchema: z.ZodObject<{
1629
1762
  name: string;
1630
1763
  range: string;
1631
1764
  }>, "many">>;
1765
+ /**
1766
+ * Absolute URLs for the screenshots declared in the manifest. The publish
1767
+ * workflow uploads `manifest.screenshots[].path` files to a CDN and emits
1768
+ * the resulting URL here; consumers should prefer these over the relative
1769
+ * `manifest.screenshots[].path` values (which are only meaningful after
1770
+ * install). Same order as `manifest.screenshots`; captions are mirrored.
1771
+ */
1772
+ screenshots: z.ZodDefault<z.ZodArray<z.ZodObject<{
1773
+ url: z.ZodString;
1774
+ caption: z.ZodOptional<z.ZodString>;
1775
+ }, "strip", z.ZodTypeAny, {
1776
+ url: string;
1777
+ caption?: string | undefined;
1778
+ }, {
1779
+ url: string;
1780
+ caption?: string | undefined;
1781
+ }>, "many">>;
1632
1782
  }, "strip", z.ZodTypeAny, {
1633
1783
  version: string;
1784
+ screenshots: {
1785
+ url: string;
1786
+ caption?: string | undefined;
1787
+ }[];
1634
1788
  publishedAt: string;
1635
1789
  tarball: string;
1636
1790
  integrity: string;
@@ -1640,6 +1794,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1640
1794
  name: string;
1641
1795
  command: string;
1642
1796
  env: Record<string, string>;
1797
+ restart_when_changed: string[];
1798
+ auto_restart: boolean;
1643
1799
  lifecycle?: "per-call" | "long-lived" | undefined;
1644
1800
  }[];
1645
1801
  id: string;
@@ -1657,6 +1813,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1657
1813
  targets: string[];
1658
1814
  sidecars: {
1659
1815
  name: string;
1816
+ restart_when_changed: string[];
1817
+ auto_restart: boolean;
1660
1818
  bin: string;
1661
1819
  stdio: string;
1662
1820
  }[];
@@ -1693,6 +1851,10 @@ export declare const PkgDetailSchema: z.ZodObject<{
1693
1851
  expr: string;
1694
1852
  env_from_settings: string[];
1695
1853
  }[];
1854
+ screenshots: {
1855
+ path: string;
1856
+ caption?: string | undefined;
1857
+ }[];
1696
1858
  queries?: {
1697
1859
  key_prefixes: string[];
1698
1860
  } | undefined;
@@ -1775,6 +1937,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1775
1937
  args?: string[] | undefined;
1776
1938
  env?: Record<string, string> | undefined;
1777
1939
  lifecycle?: "per-call" | "long-lived" | undefined;
1940
+ restart_when_changed?: string[] | undefined;
1941
+ auto_restart?: boolean | undefined;
1778
1942
  }[] | undefined;
1779
1943
  queries?: {
1780
1944
  key_prefixes?: string[] | undefined;
@@ -1799,6 +1963,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1799
1963
  sidecars?: {
1800
1964
  name: string;
1801
1965
  bin: string;
1966
+ restart_when_changed?: string[] | undefined;
1967
+ auto_restart?: boolean | undefined;
1802
1968
  stdio?: string | undefined;
1803
1969
  }[] | undefined;
1804
1970
  migrations?: string | undefined;
@@ -1883,8 +2049,16 @@ export declare const PkgDetailSchema: z.ZodObject<{
1883
2049
  docsUrl?: string | undefined;
1884
2050
  } | undefined;
1885
2051
  } | undefined;
2052
+ screenshots?: {
2053
+ path: string;
2054
+ caption?: string | undefined;
2055
+ }[] | undefined;
1886
2056
  };
1887
2057
  size?: number | undefined;
2058
+ screenshots?: {
2059
+ url: string;
2060
+ caption?: string | undefined;
2061
+ }[] | undefined;
1888
2062
  deps?: {
1889
2063
  name: string;
1890
2064
  range: string;
@@ -1896,6 +2070,10 @@ export declare const PkgDetailSchema: z.ZodObject<{
1896
2070
  updatedAt: string;
1897
2071
  versions: {
1898
2072
  version: string;
2073
+ screenshots: {
2074
+ url: string;
2075
+ caption?: string | undefined;
2076
+ }[];
1899
2077
  publishedAt: string;
1900
2078
  tarball: string;
1901
2079
  integrity: string;
@@ -1905,6 +2083,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1905
2083
  name: string;
1906
2084
  command: string;
1907
2085
  env: Record<string, string>;
2086
+ restart_when_changed: string[];
2087
+ auto_restart: boolean;
1908
2088
  lifecycle?: "per-call" | "long-lived" | undefined;
1909
2089
  }[];
1910
2090
  id: string;
@@ -1922,6 +2102,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
1922
2102
  targets: string[];
1923
2103
  sidecars: {
1924
2104
  name: string;
2105
+ restart_when_changed: string[];
2106
+ auto_restart: boolean;
1925
2107
  bin: string;
1926
2108
  stdio: string;
1927
2109
  }[];
@@ -1958,6 +2140,10 @@ export declare const PkgDetailSchema: z.ZodObject<{
1958
2140
  expr: string;
1959
2141
  env_from_settings: string[];
1960
2142
  }[];
2143
+ screenshots: {
2144
+ path: string;
2145
+ caption?: string | undefined;
2146
+ }[];
1961
2147
  queries?: {
1962
2148
  key_prefixes: string[];
1963
2149
  } | undefined;
@@ -2045,6 +2231,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
2045
2231
  args?: string[] | undefined;
2046
2232
  env?: Record<string, string> | undefined;
2047
2233
  lifecycle?: "per-call" | "long-lived" | undefined;
2234
+ restart_when_changed?: string[] | undefined;
2235
+ auto_restart?: boolean | undefined;
2048
2236
  }[] | undefined;
2049
2237
  queries?: {
2050
2238
  key_prefixes?: string[] | undefined;
@@ -2069,6 +2257,8 @@ export declare const PkgDetailSchema: z.ZodObject<{
2069
2257
  sidecars?: {
2070
2258
  name: string;
2071
2259
  bin: string;
2260
+ restart_when_changed?: string[] | undefined;
2261
+ auto_restart?: boolean | undefined;
2072
2262
  stdio?: string | undefined;
2073
2263
  }[] | undefined;
2074
2264
  migrations?: string | undefined;
@@ -2153,8 +2343,16 @@ export declare const PkgDetailSchema: z.ZodObject<{
2153
2343
  docsUrl?: string | undefined;
2154
2344
  } | undefined;
2155
2345
  } | undefined;
2346
+ screenshots?: {
2347
+ path: string;
2348
+ caption?: string | undefined;
2349
+ }[] | undefined;
2156
2350
  };
2157
2351
  size?: number | undefined;
2352
+ screenshots?: {
2353
+ url: string;
2354
+ caption?: string | undefined;
2355
+ }[] | undefined;
2158
2356
  deps?: {
2159
2357
  name: string;
2160
2358
  range: string;
@@ -2178,18 +2376,26 @@ export declare const RegistryEntrySchema: z.ZodObject<{
2178
2376
  description: z.ZodOptional<z.ZodString>;
2179
2377
  /** Manifest `kind` hint ("engine" | "skill" | "embedded" | "windowed"). */
2180
2378
  kind: z.ZodOptional<z.ZodString>;
2379
+ /**
2380
+ * Hero screenshot URL for the catalog row thumbnail. Set to the first
2381
+ * uploaded screenshot of the latest version. Omitted for pkgs without UI.
2382
+ * Lets the shell render a thumb without fetching the per-pkg detail file.
2383
+ */
2384
+ screenshot: z.ZodOptional<z.ZodString>;
2181
2385
  }, "strip", z.ZodTypeAny, {
2182
2386
  name: string;
2183
2387
  latest: string;
2184
2388
  detail: string;
2185
2389
  description?: string | undefined;
2186
2390
  kind?: string | undefined;
2391
+ screenshot?: string | undefined;
2187
2392
  }, {
2188
2393
  name: string;
2189
2394
  latest: string;
2190
2395
  detail: string;
2191
2396
  description?: string | undefined;
2192
2397
  kind?: string | undefined;
2398
+ screenshot?: string | undefined;
2193
2399
  }>;
2194
2400
  export type RegistryEntry = z.infer<typeof RegistryEntrySchema>;
2195
2401
  export declare const RegistryIndexSchema: z.ZodObject<{
@@ -2212,18 +2418,26 @@ export declare const RegistryIndexSchema: z.ZodObject<{
2212
2418
  description: z.ZodOptional<z.ZodString>;
2213
2419
  /** Manifest `kind` hint ("engine" | "skill" | "embedded" | "windowed"). */
2214
2420
  kind: z.ZodOptional<z.ZodString>;
2421
+ /**
2422
+ * Hero screenshot URL for the catalog row thumbnail. Set to the first
2423
+ * uploaded screenshot of the latest version. Omitted for pkgs without UI.
2424
+ * Lets the shell render a thumb without fetching the per-pkg detail file.
2425
+ */
2426
+ screenshot: z.ZodOptional<z.ZodString>;
2215
2427
  }, "strip", z.ZodTypeAny, {
2216
2428
  name: string;
2217
2429
  latest: string;
2218
2430
  detail: string;
2219
2431
  description?: string | undefined;
2220
2432
  kind?: string | undefined;
2433
+ screenshot?: string | undefined;
2221
2434
  }, {
2222
2435
  name: string;
2223
2436
  latest: string;
2224
2437
  detail: string;
2225
2438
  description?: string | undefined;
2226
2439
  kind?: string | undefined;
2440
+ screenshot?: string | undefined;
2227
2441
  }>, "many">;
2228
2442
  }, "strip", z.ZodTypeAny, {
2229
2443
  $schemaVersion: 1;
@@ -2234,6 +2448,7 @@ export declare const RegistryIndexSchema: z.ZodObject<{
2234
2448
  detail: string;
2235
2449
  description?: string | undefined;
2236
2450
  kind?: string | undefined;
2451
+ screenshot?: string | undefined;
2237
2452
  }[];
2238
2453
  }, {
2239
2454
  $schemaVersion: 1;
@@ -2244,6 +2459,7 @@ export declare const RegistryIndexSchema: z.ZodObject<{
2244
2459
  detail: string;
2245
2460
  description?: string | undefined;
2246
2461
  kind?: string | undefined;
2462
+ screenshot?: string | undefined;
2247
2463
  }[];
2248
2464
  }>;
2249
2465
  export type RegistryIndex = z.infer<typeof RegistryIndexSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/registry.js CHANGED
@@ -27,6 +27,15 @@ export const PkgDepSchema = z.object({
27
27
  /** Semver range as declared in the pkg's package.json. */
28
28
  range: z.string(),
29
29
  });
30
+ /**
31
+ * Hosted preview screenshot for a registry pkg. The publish workflow uploads
32
+ * each `manifest.screenshots[].path` to a CDN and emits the absolute URL
33
+ * here, so the shell can render a preview without downloading the pkg.
34
+ */
35
+ export const HostedScreenshotSchema = z.object({
36
+ url: z.string().url(),
37
+ caption: z.string().optional(),
38
+ });
30
39
  export const PkgVersionSchema = z.object({
31
40
  /** Semver, e.g. `0.1.0`. */
32
41
  version: z.string(),
@@ -42,6 +51,14 @@ export const PkgVersionSchema = z.object({
42
51
  manifest: ManifestSchema,
43
52
  /** Cross-pkg deps within `@ikenga/pkg-*`. External deps ride in the tarball. */
44
53
  deps: z.array(PkgDepSchema).default([]),
54
+ /**
55
+ * Absolute URLs for the screenshots declared in the manifest. The publish
56
+ * workflow uploads `manifest.screenshots[].path` files to a CDN and emits
57
+ * the resulting URL here; consumers should prefer these over the relative
58
+ * `manifest.screenshots[].path` values (which are only meaningful after
59
+ * install). Same order as `manifest.screenshots`; captions are mirrored.
60
+ */
61
+ screenshots: z.array(HostedScreenshotSchema).default([]),
45
62
  });
46
63
  export const PkgDetailSchema = z.object({
47
64
  $schemaVersion: z.literal(REGISTRY_SCHEMA_VERSION),
@@ -69,6 +86,12 @@ export const RegistryEntrySchema = z.object({
69
86
  description: z.string().optional(),
70
87
  /** Manifest `kind` hint ("engine" | "skill" | "embedded" | "windowed"). */
71
88
  kind: z.string().optional(),
89
+ /**
90
+ * Hero screenshot URL for the catalog row thumbnail. Set to the first
91
+ * uploaded screenshot of the latest version. Omitted for pkgs without UI.
92
+ * Lets the shell render a thumb without fetching the per-pkg detail file.
93
+ */
94
+ screenshot: z.string().url().optional(),
72
95
  });
73
96
  export const RegistryIndexSchema = z.object({
74
97
  $schemaVersion: z.literal(REGISTRY_SCHEMA_VERSION),
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,yEAAyE;AACzE,qEAAqE;AACrE,uEAAuE;AACvE,UAAU;AACV,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,qEAAqE;AACrE,mCAAmC;AAEnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAU,CAAC;AAElD,gEAAgE;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,0DAA0D;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,4BAA4B;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iDAAiD;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,yEAAyE;IACzE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,2DAA2D;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,mFAAmF;IACnF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC/C,4DAA4D;IAC5D,QAAQ,EAAE,cAAc;IACxB,gFAAgF;IAChF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAClD,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,sDAAsD;IACtD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,mDAAmD;IACnD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAGH,gDAAgD;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,qBAAqB;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,qBAAqB;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,4EAA4E;IAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,2EAA2E;IAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAClD,wDAAwD;IACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACnC,CAAC,CAAC;AAGH,gCAAgC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,QAAQ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/rpc.d.ts CHANGED
@@ -115,7 +115,7 @@ export interface RpcMethods {
115
115
  export interface ShellToPkgNotifications {
116
116
  'engine.event': {
117
117
  sessionId: string;
118
- event: import('./engine.js').EngineEvent;
118
+ event: import('./engine/index.js').EngineEvent;
119
119
  };
120
120
  'shell.theme_changed': {
121
121
  theme: 'light' | 'dark';
package/dist/rpc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}