@ikenga/contract 0.15.0 → 0.17.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.
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const IKENGA_API_VERSION: 3;
2
+ export declare const IKENGA_API_VERSION: 4;
3
3
  export declare const IKENGA_API_MIN_SUPPORTED: 1;
4
4
  export declare const AuthorSchema: z.ZodObject<{
5
5
  name: z.ZodString;
@@ -89,6 +89,13 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
89
89
  * (pkgDeclaresScope). Mirrors `Permissions.engine` in the shell's
90
90
  * manifest.rs — keep in lockstep. */
91
91
  engine: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
92
+ /** Notification scopes. `"send"` gates the FE-side `host.notify` verb
93
+ * (pkgDeclaresScope), which raises a real OS notification and therefore
94
+ * reaches the user even when Ikenga is not the focused window — which is
95
+ * why it is gated at all. Mirrors `Permissions.notify` in the shell's
96
+ * manifest.rs — keep in lockstep. */
97
+ notify: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
98
+ events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
92
99
  }, "strip", z.ZodTypeAny, {
93
100
  engine: string[];
94
101
  'shell.execute': string[];
@@ -98,6 +105,8 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
98
105
  'sqlite.tables': string[];
99
106
  'supabase.tables': string[];
100
107
  'vault.keys': string[];
108
+ notify: string[];
109
+ events: string[];
101
110
  }, {
102
111
  engine?: string[] | undefined;
103
112
  'shell.execute'?: string[] | undefined;
@@ -107,6 +116,8 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
107
116
  'sqlite.tables'?: string[] | undefined;
108
117
  'supabase.tables'?: string[] | undefined;
109
118
  'vault.keys'?: string[] | undefined;
119
+ notify?: string[] | undefined;
120
+ events?: string[] | undefined;
110
121
  }>>;
111
122
  export declare const NavEntrySchema: z.ZodObject<{
112
123
  id: z.ZodString;
@@ -129,18 +140,21 @@ export declare const NavEntrySchema: z.ZodObject<{
129
140
  }>;
130
141
  export declare const UiRouteSchema: z.ZodObject<{
131
142
  path: z.ZodString;
132
- /** "iframe" | "component" (component is builtin-only) */
133
- kind: z.ZodEnum<["iframe", "component"]>;
134
- /** iframe: URL or pkg-relative html path. component: identifier. */
143
+ /** "iframe" | "component" | "webview" (component is builtin-only) */
144
+ kind: z.ZodEnum<["iframe", "component", "webview"]>;
145
+ /** iframe/webview: URL or pkg-relative html path. component: identifier. */
135
146
  source: z.ZodString;
147
+ partition: z.ZodOptional<z.ZodString>;
136
148
  }, "strip", z.ZodTypeAny, {
137
149
  path: string;
138
- kind: "iframe" | "component";
150
+ kind: "iframe" | "component" | "webview";
139
151
  source: string;
152
+ partition?: string | undefined;
140
153
  }, {
141
154
  path: string;
142
- kind: "iframe" | "component";
155
+ kind: "iframe" | "component" | "webview";
143
156
  source: string;
157
+ partition?: string | undefined;
144
158
  }>;
145
159
  export declare const CommandPaletteEntrySchema: z.ZodObject<{
146
160
  id: z.ZodString;
@@ -171,6 +185,14 @@ export declare const SidePaneViewerSchema: z.ZodObject<{
171
185
  id: string;
172
186
  route: string;
173
187
  }>;
188
+ export declare const ManifestUiSessionSchema: z.ZodObject<{
189
+ persistence: z.ZodEnum<["keep", "clear-on-exit", "ask"]>;
190
+ }, "strip", z.ZodTypeAny, {
191
+ persistence: "keep" | "clear-on-exit" | "ask";
192
+ }, {
193
+ persistence: "keep" | "clear-on-exit" | "ask";
194
+ }>;
195
+ export type ManifestUiSession = z.infer<typeof ManifestUiSessionSchema>;
174
196
  export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
175
197
  nav: z.ZodDefault<z.ZodArray<z.ZodObject<{
176
198
  id: z.ZodString;
@@ -193,18 +215,21 @@ export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
193
215
  }>, "many">>;
194
216
  routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
195
217
  path: z.ZodString;
196
- /** "iframe" | "component" (component is builtin-only) */
197
- kind: z.ZodEnum<["iframe", "component"]>;
198
- /** iframe: URL or pkg-relative html path. component: identifier. */
218
+ /** "iframe" | "component" | "webview" (component is builtin-only) */
219
+ kind: z.ZodEnum<["iframe", "component", "webview"]>;
220
+ /** iframe/webview: URL or pkg-relative html path. component: identifier. */
199
221
  source: z.ZodString;
222
+ partition: z.ZodOptional<z.ZodString>;
200
223
  }, "strip", z.ZodTypeAny, {
201
224
  path: string;
202
- kind: "iframe" | "component";
225
+ kind: "iframe" | "component" | "webview";
203
226
  source: string;
227
+ partition?: string | undefined;
204
228
  }, {
205
229
  path: string;
206
- kind: "iframe" | "component";
230
+ kind: "iframe" | "component" | "webview";
207
231
  source: string;
232
+ partition?: string | undefined;
208
233
  }>, "many">>;
209
234
  command_palette: z.ZodDefault<z.ZodArray<z.ZodObject<{
210
235
  id: z.ZodString;
@@ -239,6 +264,13 @@ export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
239
264
  csp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
240
265
  /** Per-directive Permission-Policy values. */
241
266
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
267
+ session: z.ZodOptional<z.ZodObject<{
268
+ persistence: z.ZodEnum<["keep", "clear-on-exit", "ask"]>;
269
+ }, "strip", z.ZodTypeAny, {
270
+ persistence: "keep" | "clear-on-exit" | "ask";
271
+ }, {
272
+ persistence: "keep" | "clear-on-exit" | "ask";
273
+ }>>;
242
274
  }, "strip", z.ZodTypeAny, {
243
275
  nav: {
244
276
  label: string;
@@ -249,8 +281,9 @@ export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
249
281
  }[];
250
282
  routes: {
251
283
  path: string;
252
- kind: "iframe" | "component";
284
+ kind: "iframe" | "component" | "webview";
253
285
  source: string;
286
+ partition?: string | undefined;
254
287
  }[];
255
288
  command_palette: {
256
289
  label: string;
@@ -263,9 +296,15 @@ export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
263
296
  id: string;
264
297
  route: string;
265
298
  }[];
299
+ session?: {
300
+ persistence: "keep" | "clear-on-exit" | "ask";
301
+ } | undefined;
266
302
  csp?: Record<string, string[]> | undefined;
267
303
  permissions?: Record<string, string[]> | undefined;
268
304
  }, {
305
+ session?: {
306
+ persistence: "keep" | "clear-on-exit" | "ask";
307
+ } | undefined;
269
308
  nav?: {
270
309
  label: string;
271
310
  id: string;
@@ -275,8 +314,9 @@ export declare const UiBlockSchema: z.ZodDefault<z.ZodObject<{
275
314
  }[] | undefined;
276
315
  routes?: {
277
316
  path: string;
278
- kind: "iframe" | "component";
317
+ kind: "iframe" | "component" | "webview";
279
318
  source: string;
319
+ partition?: string | undefined;
280
320
  }[] | undefined;
281
321
  command_palette?: {
282
322
  label: string;
@@ -389,19 +429,19 @@ export declare const IykeBlockSchema: z.ZodObject<{
389
429
  }>, "many">>;
390
430
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
391
431
  }, "strip", z.ZodTypeAny, {
432
+ events: string[];
392
433
  routes: {
393
434
  path: string;
394
435
  method: "GET" | "POST";
395
436
  handler: string;
396
437
  }[];
397
- events: string[];
398
438
  }, {
439
+ events?: string[] | undefined;
399
440
  routes?: {
400
441
  path: string;
401
442
  method: "GET" | "POST";
402
443
  handler: string;
403
444
  }[] | undefined;
404
- events?: string[] | undefined;
405
445
  }>;
406
446
  export declare const CronEntrySchema: z.ZodObject<{
407
447
  id: z.ZodString;
@@ -458,14 +498,23 @@ export declare const WebviewCapabilitySchema: z.ZodObject<{
458
498
  * own OS window). Defaults to `["webkit"]` so existing manifests are
459
499
  * unchanged. Mirrors `engines` in `WebviewCapability` (manifest.rs). */
460
500
  engines: z.ZodDefault<z.ZodArray<z.ZodEnum<["webkit", "chrome"]>, "many">>;
501
+ /** Origins this pkg's webviews may load. **Absent is permissive** (with a
502
+ * host-side warning) so pre-v4 manifests keep mounting; `[]` is an explicit
503
+ * deny-all; entries match exactly, as `*`, or as a `https://*.example.com`
504
+ * subdomain glob. Mirrors `allowed_origins` in `manifest.rs` — absent and
505
+ * empty are deliberately distinct, so this must stay `.optional()`, never
506
+ * `.default([])`. */
507
+ allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
461
508
  }, "strip", z.ZodTypeAny, {
462
509
  child_webviews: boolean;
463
510
  partitions: string[];
464
511
  engines: ("webkit" | "chrome")[];
512
+ allowed_origins?: string[] | undefined;
465
513
  }, {
466
514
  child_webviews?: boolean | undefined;
467
515
  partitions?: string[] | undefined;
468
516
  engines?: ("webkit" | "chrome")[] | undefined;
517
+ allowed_origins?: string[] | undefined;
469
518
  }>;
470
519
  export type WebviewCapability = z.infer<typeof WebviewCapabilitySchema>;
471
520
  /** Agent-ops host-bridge capability (api ≥ 2). Opt-in to the privileged
@@ -658,6 +707,14 @@ export declare const RequiresEntrySchema: z.ZodObject<{
658
707
  source?: "git" | "npx" | "catalog" | "local" | undefined;
659
708
  }>;
660
709
  export type RequiresEntry = z.infer<typeof RequiresEntrySchema>;
710
+ export declare const ManifestAuthBridgeSchema: z.ZodObject<{
711
+ strategy: z.ZodEnum<["api-key", "cdp", "none"]>;
712
+ }, "strip", z.ZodTypeAny, {
713
+ strategy: "api-key" | "cdp" | "none";
714
+ }, {
715
+ strategy: "api-key" | "cdp" | "none";
716
+ }>;
717
+ export type ManifestAuthBridge = z.infer<typeof ManifestAuthBridgeSchema>;
661
718
  export declare const ManifestSchema: z.ZodObject<{
662
719
  /** Reverse-DNS, e.g. `com.ikenga.studio`. */
663
720
  id: z.ZodString;
@@ -665,6 +722,13 @@ export declare const ManifestSchema: z.ZodObject<{
665
722
  version: z.ZodString;
666
723
  /** Numeric string — host accepts versions in [MIN, CURRENT]. */
667
724
  ikenga_api: z.ZodString;
725
+ auth_bridge: z.ZodOptional<z.ZodObject<{
726
+ strategy: z.ZodEnum<["api-key", "cdp", "none"]>;
727
+ }, "strip", z.ZodTypeAny, {
728
+ strategy: "api-key" | "cdp" | "none";
729
+ }, {
730
+ strategy: "api-key" | "cdp" | "none";
731
+ }>>;
668
732
  /** Hint, not enforced: "skill" | "embedded" | "windowed" | "engine". */
669
733
  kind: z.ZodOptional<z.ZodString>;
670
734
  author: z.ZodOptional<z.ZodObject<{
@@ -755,6 +819,13 @@ export declare const ManifestSchema: z.ZodObject<{
755
819
  * (pkgDeclaresScope). Mirrors `Permissions.engine` in the shell's
756
820
  * manifest.rs — keep in lockstep. */
757
821
  engine: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
822
+ /** Notification scopes. `"send"` gates the FE-side `host.notify` verb
823
+ * (pkgDeclaresScope), which raises a real OS notification and therefore
824
+ * reaches the user even when Ikenga is not the focused window — which is
825
+ * why it is gated at all. Mirrors `Permissions.notify` in the shell's
826
+ * manifest.rs — keep in lockstep. */
827
+ notify: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
828
+ events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
758
829
  }, "strip", z.ZodTypeAny, {
759
830
  engine: string[];
760
831
  'shell.execute': string[];
@@ -764,6 +835,8 @@ export declare const ManifestSchema: z.ZodObject<{
764
835
  'sqlite.tables': string[];
765
836
  'supabase.tables': string[];
766
837
  'vault.keys': string[];
838
+ notify: string[];
839
+ events: string[];
767
840
  }, {
768
841
  engine?: string[] | undefined;
769
842
  'shell.execute'?: string[] | undefined;
@@ -773,6 +846,8 @@ export declare const ManifestSchema: z.ZodObject<{
773
846
  'sqlite.tables'?: string[] | undefined;
774
847
  'supabase.tables'?: string[] | undefined;
775
848
  'vault.keys'?: string[] | undefined;
849
+ notify?: string[] | undefined;
850
+ events?: string[] | undefined;
776
851
  }>>;
777
852
  migrations: z.ZodOptional<z.ZodString>;
778
853
  settings: z.ZodOptional<z.ZodObject<{
@@ -839,18 +914,21 @@ export declare const ManifestSchema: z.ZodObject<{
839
914
  }>, "many">>;
840
915
  routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
841
916
  path: z.ZodString;
842
- /** "iframe" | "component" (component is builtin-only) */
843
- kind: z.ZodEnum<["iframe", "component"]>;
844
- /** iframe: URL or pkg-relative html path. component: identifier. */
917
+ /** "iframe" | "component" | "webview" (component is builtin-only) */
918
+ kind: z.ZodEnum<["iframe", "component", "webview"]>;
919
+ /** iframe/webview: URL or pkg-relative html path. component: identifier. */
845
920
  source: z.ZodString;
921
+ partition: z.ZodOptional<z.ZodString>;
846
922
  }, "strip", z.ZodTypeAny, {
847
923
  path: string;
848
- kind: "iframe" | "component";
924
+ kind: "iframe" | "component" | "webview";
849
925
  source: string;
926
+ partition?: string | undefined;
850
927
  }, {
851
928
  path: string;
852
- kind: "iframe" | "component";
929
+ kind: "iframe" | "component" | "webview";
853
930
  source: string;
931
+ partition?: string | undefined;
854
932
  }>, "many">>;
855
933
  command_palette: z.ZodDefault<z.ZodArray<z.ZodObject<{
856
934
  id: z.ZodString;
@@ -885,6 +963,13 @@ export declare const ManifestSchema: z.ZodObject<{
885
963
  csp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
886
964
  /** Per-directive Permission-Policy values. */
887
965
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
966
+ session: z.ZodOptional<z.ZodObject<{
967
+ persistence: z.ZodEnum<["keep", "clear-on-exit", "ask"]>;
968
+ }, "strip", z.ZodTypeAny, {
969
+ persistence: "keep" | "clear-on-exit" | "ask";
970
+ }, {
971
+ persistence: "keep" | "clear-on-exit" | "ask";
972
+ }>>;
888
973
  }, "strip", z.ZodTypeAny, {
889
974
  nav: {
890
975
  label: string;
@@ -895,8 +980,9 @@ export declare const ManifestSchema: z.ZodObject<{
895
980
  }[];
896
981
  routes: {
897
982
  path: string;
898
- kind: "iframe" | "component";
983
+ kind: "iframe" | "component" | "webview";
899
984
  source: string;
985
+ partition?: string | undefined;
900
986
  }[];
901
987
  command_palette: {
902
988
  label: string;
@@ -909,9 +995,15 @@ export declare const ManifestSchema: z.ZodObject<{
909
995
  id: string;
910
996
  route: string;
911
997
  }[];
998
+ session?: {
999
+ persistence: "keep" | "clear-on-exit" | "ask";
1000
+ } | undefined;
912
1001
  csp?: Record<string, string[]> | undefined;
913
1002
  permissions?: Record<string, string[]> | undefined;
914
1003
  }, {
1004
+ session?: {
1005
+ persistence: "keep" | "clear-on-exit" | "ask";
1006
+ } | undefined;
915
1007
  nav?: {
916
1008
  label: string;
917
1009
  id: string;
@@ -921,8 +1013,9 @@ export declare const ManifestSchema: z.ZodObject<{
921
1013
  }[] | undefined;
922
1014
  routes?: {
923
1015
  path: string;
924
- kind: "iframe" | "component";
1016
+ kind: "iframe" | "component" | "webview";
925
1017
  source: string;
1018
+ partition?: string | undefined;
926
1019
  }[] | undefined;
927
1020
  command_palette?: {
928
1021
  label: string;
@@ -956,19 +1049,19 @@ export declare const ManifestSchema: z.ZodObject<{
956
1049
  }>, "many">>;
957
1050
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
958
1051
  }, "strip", z.ZodTypeAny, {
1052
+ events: string[];
959
1053
  routes: {
960
1054
  path: string;
961
1055
  method: "GET" | "POST";
962
1056
  handler: string;
963
1057
  }[];
964
- events: string[];
965
1058
  }, {
1059
+ events?: string[] | undefined;
966
1060
  routes?: {
967
1061
  path: string;
968
1062
  method: "GET" | "POST";
969
1063
  handler: string;
970
1064
  }[] | undefined;
971
- events?: string[] | undefined;
972
1065
  }>>;
973
1066
  cron: z.ZodDefault<z.ZodArray<z.ZodObject<{
974
1067
  id: z.ZodString;
@@ -1046,14 +1139,23 @@ export declare const ManifestSchema: z.ZodObject<{
1046
1139
  * own OS window). Defaults to `["webkit"]` so existing manifests are
1047
1140
  * unchanged. Mirrors `engines` in `WebviewCapability` (manifest.rs). */
1048
1141
  engines: z.ZodDefault<z.ZodArray<z.ZodEnum<["webkit", "chrome"]>, "many">>;
1142
+ /** Origins this pkg's webviews may load. **Absent is permissive** (with a
1143
+ * host-side warning) so pre-v4 manifests keep mounting; `[]` is an explicit
1144
+ * deny-all; entries match exactly, as `*`, or as a `https://*.example.com`
1145
+ * subdomain glob. Mirrors `allowed_origins` in `manifest.rs` — absent and
1146
+ * empty are deliberately distinct, so this must stay `.optional()`, never
1147
+ * `.default([])`. */
1148
+ allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1049
1149
  }, "strip", z.ZodTypeAny, {
1050
1150
  child_webviews: boolean;
1051
1151
  partitions: string[];
1052
1152
  engines: ("webkit" | "chrome")[];
1153
+ allowed_origins?: string[] | undefined;
1053
1154
  }, {
1054
1155
  child_webviews?: boolean | undefined;
1055
1156
  partitions?: string[] | undefined;
1056
1157
  engines?: ("webkit" | "chrome")[] | undefined;
1158
+ allowed_origins?: string[] | undefined;
1057
1159
  }>>;
1058
1160
  agentOps: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
1059
1161
  /** host.fetch proxy (ADR-017). Inert unless the pkg is trusted. */
@@ -1133,6 +1235,7 @@ export declare const ManifestSchema: z.ZodObject<{
1133
1235
  child_webviews: boolean;
1134
1236
  partitions: string[];
1135
1237
  engines: ("webkit" | "chrome")[];
1238
+ allowed_origins?: string[] | undefined;
1136
1239
  } | undefined;
1137
1240
  agentOps?: {} | undefined;
1138
1241
  http?: {
@@ -1161,6 +1264,7 @@ export declare const ManifestSchema: z.ZodObject<{
1161
1264
  child_webviews?: boolean | undefined;
1162
1265
  partitions?: string[] | undefined;
1163
1266
  engines?: ("webkit" | "chrome")[] | undefined;
1267
+ allowed_origins?: string[] | undefined;
1164
1268
  } | undefined;
1165
1269
  agentOps?: {} | undefined;
1166
1270
  http?: {
@@ -1369,6 +1473,8 @@ export declare const ManifestSchema: z.ZodObject<{
1369
1473
  'sqlite.tables': string[];
1370
1474
  'supabase.tables': string[];
1371
1475
  'vault.keys': string[];
1476
+ notify: string[];
1477
+ events: string[];
1372
1478
  };
1373
1479
  ikenga_api: string;
1374
1480
  targets: string[];
@@ -1389,8 +1495,9 @@ export declare const ManifestSchema: z.ZodObject<{
1389
1495
  }[];
1390
1496
  routes: {
1391
1497
  path: string;
1392
- kind: "iframe" | "component";
1498
+ kind: "iframe" | "component" | "webview";
1393
1499
  source: string;
1500
+ partition?: string | undefined;
1394
1501
  }[];
1395
1502
  command_palette: {
1396
1503
  label: string;
@@ -1403,6 +1510,9 @@ export declare const ManifestSchema: z.ZodObject<{
1403
1510
  id: string;
1404
1511
  route: string;
1405
1512
  }[];
1513
+ session?: {
1514
+ persistence: "keep" | "clear-on-exit" | "ask";
1515
+ } | undefined;
1406
1516
  csp?: Record<string, string[]> | undefined;
1407
1517
  permissions?: Record<string, string[]> | undefined;
1408
1518
  };
@@ -1437,6 +1547,7 @@ export declare const ManifestSchema: z.ZodObject<{
1437
1547
  child_webviews: boolean;
1438
1548
  partitions: string[];
1439
1549
  engines: ("webkit" | "chrome")[];
1550
+ allowed_origins?: string[] | undefined;
1440
1551
  } | undefined;
1441
1552
  agentOps?: {} | undefined;
1442
1553
  http?: {
@@ -1471,6 +1582,9 @@ export declare const ManifestSchema: z.ZodObject<{
1471
1582
  };
1472
1583
  display?: string | undefined;
1473
1584
  } | undefined;
1585
+ auth_bridge?: {
1586
+ strategy: "api-key" | "cdp" | "none";
1587
+ } | undefined;
1474
1588
  migrations?: string | undefined;
1475
1589
  settings?: {
1476
1590
  schema: {
@@ -1483,12 +1597,12 @@ export declare const ManifestSchema: z.ZodObject<{
1483
1597
  }[];
1484
1598
  } | undefined;
1485
1599
  iyke?: {
1600
+ events: string[];
1486
1601
  routes: {
1487
1602
  path: string;
1488
1603
  method: "GET" | "POST";
1489
1604
  handler: string;
1490
1605
  }[];
1491
- events: string[];
1492
1606
  } | undefined;
1493
1607
  window?: {
1494
1608
  label: string;
@@ -1551,6 +1665,7 @@ export declare const ManifestSchema: z.ZodObject<{
1551
1665
  child_webviews?: boolean | undefined;
1552
1666
  partitions?: string[] | undefined;
1553
1667
  engines?: ("webkit" | "chrome")[] | undefined;
1668
+ allowed_origins?: string[] | undefined;
1554
1669
  } | undefined;
1555
1670
  agentOps?: {} | undefined;
1556
1671
  http?: {
@@ -1594,6 +1709,11 @@ export declare const ManifestSchema: z.ZodObject<{
1594
1709
  'sqlite.tables'?: string[] | undefined;
1595
1710
  'supabase.tables'?: string[] | undefined;
1596
1711
  'vault.keys'?: string[] | undefined;
1712
+ notify?: string[] | undefined;
1713
+ events?: string[] | undefined;
1714
+ } | undefined;
1715
+ auth_bridge?: {
1716
+ strategy: "api-key" | "cdp" | "none";
1597
1717
  } | undefined;
1598
1718
  targets?: string[] | undefined;
1599
1719
  sidecars?: {
@@ -1615,6 +1735,9 @@ export declare const ManifestSchema: z.ZodObject<{
1615
1735
  }[] | undefined;
1616
1736
  } | undefined;
1617
1737
  ui?: {
1738
+ session?: {
1739
+ persistence: "keep" | "clear-on-exit" | "ask";
1740
+ } | undefined;
1618
1741
  nav?: {
1619
1742
  label: string;
1620
1743
  id: string;
@@ -1624,8 +1747,9 @@ export declare const ManifestSchema: z.ZodObject<{
1624
1747
  }[] | undefined;
1625
1748
  routes?: {
1626
1749
  path: string;
1627
- kind: "iframe" | "component";
1750
+ kind: "iframe" | "component" | "webview";
1628
1751
  source: string;
1752
+ partition?: string | undefined;
1629
1753
  }[] | undefined;
1630
1754
  command_palette?: {
1631
1755
  label: string;
@@ -1642,12 +1766,12 @@ export declare const ManifestSchema: z.ZodObject<{
1642
1766
  permissions?: Record<string, string[]> | undefined;
1643
1767
  } | undefined;
1644
1768
  iyke?: {
1769
+ events?: string[] | undefined;
1645
1770
  routes?: {
1646
1771
  path: string;
1647
1772
  method: "GET" | "POST";
1648
1773
  handler: string;
1649
1774
  }[] | undefined;
1650
- events?: string[] | undefined;
1651
1775
  } | undefined;
1652
1776
  window?: {
1653
1777
  label: string;
@@ -1671,6 +1795,13 @@ export declare const PkgManifestSchema: z.ZodObject<{
1671
1795
  version: z.ZodString;
1672
1796
  /** Numeric string — host accepts versions in [MIN, CURRENT]. */
1673
1797
  ikenga_api: z.ZodString;
1798
+ auth_bridge: z.ZodOptional<z.ZodObject<{
1799
+ strategy: z.ZodEnum<["api-key", "cdp", "none"]>;
1800
+ }, "strip", z.ZodTypeAny, {
1801
+ strategy: "api-key" | "cdp" | "none";
1802
+ }, {
1803
+ strategy: "api-key" | "cdp" | "none";
1804
+ }>>;
1674
1805
  /** Hint, not enforced: "skill" | "embedded" | "windowed" | "engine". */
1675
1806
  kind: z.ZodOptional<z.ZodString>;
1676
1807
  author: z.ZodOptional<z.ZodObject<{
@@ -1761,6 +1892,13 @@ export declare const PkgManifestSchema: z.ZodObject<{
1761
1892
  * (pkgDeclaresScope). Mirrors `Permissions.engine` in the shell's
1762
1893
  * manifest.rs — keep in lockstep. */
1763
1894
  engine: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1895
+ /** Notification scopes. `"send"` gates the FE-side `host.notify` verb
1896
+ * (pkgDeclaresScope), which raises a real OS notification and therefore
1897
+ * reaches the user even when Ikenga is not the focused window — which is
1898
+ * why it is gated at all. Mirrors `Permissions.notify` in the shell's
1899
+ * manifest.rs — keep in lockstep. */
1900
+ notify: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1901
+ events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1764
1902
  }, "strip", z.ZodTypeAny, {
1765
1903
  engine: string[];
1766
1904
  'shell.execute': string[];
@@ -1770,6 +1908,8 @@ export declare const PkgManifestSchema: z.ZodObject<{
1770
1908
  'sqlite.tables': string[];
1771
1909
  'supabase.tables': string[];
1772
1910
  'vault.keys': string[];
1911
+ notify: string[];
1912
+ events: string[];
1773
1913
  }, {
1774
1914
  engine?: string[] | undefined;
1775
1915
  'shell.execute'?: string[] | undefined;
@@ -1779,6 +1919,8 @@ export declare const PkgManifestSchema: z.ZodObject<{
1779
1919
  'sqlite.tables'?: string[] | undefined;
1780
1920
  'supabase.tables'?: string[] | undefined;
1781
1921
  'vault.keys'?: string[] | undefined;
1922
+ notify?: string[] | undefined;
1923
+ events?: string[] | undefined;
1782
1924
  }>>;
1783
1925
  migrations: z.ZodOptional<z.ZodString>;
1784
1926
  settings: z.ZodOptional<z.ZodObject<{
@@ -1845,18 +1987,21 @@ export declare const PkgManifestSchema: z.ZodObject<{
1845
1987
  }>, "many">>;
1846
1988
  routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
1847
1989
  path: z.ZodString;
1848
- /** "iframe" | "component" (component is builtin-only) */
1849
- kind: z.ZodEnum<["iframe", "component"]>;
1850
- /** iframe: URL or pkg-relative html path. component: identifier. */
1990
+ /** "iframe" | "component" | "webview" (component is builtin-only) */
1991
+ kind: z.ZodEnum<["iframe", "component", "webview"]>;
1992
+ /** iframe/webview: URL or pkg-relative html path. component: identifier. */
1851
1993
  source: z.ZodString;
1994
+ partition: z.ZodOptional<z.ZodString>;
1852
1995
  }, "strip", z.ZodTypeAny, {
1853
1996
  path: string;
1854
- kind: "iframe" | "component";
1997
+ kind: "iframe" | "component" | "webview";
1855
1998
  source: string;
1999
+ partition?: string | undefined;
1856
2000
  }, {
1857
2001
  path: string;
1858
- kind: "iframe" | "component";
2002
+ kind: "iframe" | "component" | "webview";
1859
2003
  source: string;
2004
+ partition?: string | undefined;
1860
2005
  }>, "many">>;
1861
2006
  command_palette: z.ZodDefault<z.ZodArray<z.ZodObject<{
1862
2007
  id: z.ZodString;
@@ -1891,6 +2036,13 @@ export declare const PkgManifestSchema: z.ZodObject<{
1891
2036
  csp: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
1892
2037
  /** Per-directive Permission-Policy values. */
1893
2038
  permissions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
2039
+ session: z.ZodOptional<z.ZodObject<{
2040
+ persistence: z.ZodEnum<["keep", "clear-on-exit", "ask"]>;
2041
+ }, "strip", z.ZodTypeAny, {
2042
+ persistence: "keep" | "clear-on-exit" | "ask";
2043
+ }, {
2044
+ persistence: "keep" | "clear-on-exit" | "ask";
2045
+ }>>;
1894
2046
  }, "strip", z.ZodTypeAny, {
1895
2047
  nav: {
1896
2048
  label: string;
@@ -1901,8 +2053,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
1901
2053
  }[];
1902
2054
  routes: {
1903
2055
  path: string;
1904
- kind: "iframe" | "component";
2056
+ kind: "iframe" | "component" | "webview";
1905
2057
  source: string;
2058
+ partition?: string | undefined;
1906
2059
  }[];
1907
2060
  command_palette: {
1908
2061
  label: string;
@@ -1915,9 +2068,15 @@ export declare const PkgManifestSchema: z.ZodObject<{
1915
2068
  id: string;
1916
2069
  route: string;
1917
2070
  }[];
2071
+ session?: {
2072
+ persistence: "keep" | "clear-on-exit" | "ask";
2073
+ } | undefined;
1918
2074
  csp?: Record<string, string[]> | undefined;
1919
2075
  permissions?: Record<string, string[]> | undefined;
1920
2076
  }, {
2077
+ session?: {
2078
+ persistence: "keep" | "clear-on-exit" | "ask";
2079
+ } | undefined;
1921
2080
  nav?: {
1922
2081
  label: string;
1923
2082
  id: string;
@@ -1927,8 +2086,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
1927
2086
  }[] | undefined;
1928
2087
  routes?: {
1929
2088
  path: string;
1930
- kind: "iframe" | "component";
2089
+ kind: "iframe" | "component" | "webview";
1931
2090
  source: string;
2091
+ partition?: string | undefined;
1932
2092
  }[] | undefined;
1933
2093
  command_palette?: {
1934
2094
  label: string;
@@ -1962,19 +2122,19 @@ export declare const PkgManifestSchema: z.ZodObject<{
1962
2122
  }>, "many">>;
1963
2123
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1964
2124
  }, "strip", z.ZodTypeAny, {
2125
+ events: string[];
1965
2126
  routes: {
1966
2127
  path: string;
1967
2128
  method: "GET" | "POST";
1968
2129
  handler: string;
1969
2130
  }[];
1970
- events: string[];
1971
2131
  }, {
2132
+ events?: string[] | undefined;
1972
2133
  routes?: {
1973
2134
  path: string;
1974
2135
  method: "GET" | "POST";
1975
2136
  handler: string;
1976
2137
  }[] | undefined;
1977
- events?: string[] | undefined;
1978
2138
  }>>;
1979
2139
  cron: z.ZodDefault<z.ZodArray<z.ZodObject<{
1980
2140
  id: z.ZodString;
@@ -2052,14 +2212,23 @@ export declare const PkgManifestSchema: z.ZodObject<{
2052
2212
  * own OS window). Defaults to `["webkit"]` so existing manifests are
2053
2213
  * unchanged. Mirrors `engines` in `WebviewCapability` (manifest.rs). */
2054
2214
  engines: z.ZodDefault<z.ZodArray<z.ZodEnum<["webkit", "chrome"]>, "many">>;
2215
+ /** Origins this pkg's webviews may load. **Absent is permissive** (with a
2216
+ * host-side warning) so pre-v4 manifests keep mounting; `[]` is an explicit
2217
+ * deny-all; entries match exactly, as `*`, or as a `https://*.example.com`
2218
+ * subdomain glob. Mirrors `allowed_origins` in `manifest.rs` — absent and
2219
+ * empty are deliberately distinct, so this must stay `.optional()`, never
2220
+ * `.default([])`. */
2221
+ allowed_origins: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2055
2222
  }, "strip", z.ZodTypeAny, {
2056
2223
  child_webviews: boolean;
2057
2224
  partitions: string[];
2058
2225
  engines: ("webkit" | "chrome")[];
2226
+ allowed_origins?: string[] | undefined;
2059
2227
  }, {
2060
2228
  child_webviews?: boolean | undefined;
2061
2229
  partitions?: string[] | undefined;
2062
2230
  engines?: ("webkit" | "chrome")[] | undefined;
2231
+ allowed_origins?: string[] | undefined;
2063
2232
  }>>;
2064
2233
  agentOps: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
2065
2234
  /** host.fetch proxy (ADR-017). Inert unless the pkg is trusted. */
@@ -2139,6 +2308,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
2139
2308
  child_webviews: boolean;
2140
2309
  partitions: string[];
2141
2310
  engines: ("webkit" | "chrome")[];
2311
+ allowed_origins?: string[] | undefined;
2142
2312
  } | undefined;
2143
2313
  agentOps?: {} | undefined;
2144
2314
  http?: {
@@ -2167,6 +2337,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
2167
2337
  child_webviews?: boolean | undefined;
2168
2338
  partitions?: string[] | undefined;
2169
2339
  engines?: ("webkit" | "chrome")[] | undefined;
2340
+ allowed_origins?: string[] | undefined;
2170
2341
  } | undefined;
2171
2342
  agentOps?: {} | undefined;
2172
2343
  http?: {
@@ -2375,6 +2546,8 @@ export declare const PkgManifestSchema: z.ZodObject<{
2375
2546
  'sqlite.tables': string[];
2376
2547
  'supabase.tables': string[];
2377
2548
  'vault.keys': string[];
2549
+ notify: string[];
2550
+ events: string[];
2378
2551
  };
2379
2552
  ikenga_api: string;
2380
2553
  targets: string[];
@@ -2395,8 +2568,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
2395
2568
  }[];
2396
2569
  routes: {
2397
2570
  path: string;
2398
- kind: "iframe" | "component";
2571
+ kind: "iframe" | "component" | "webview";
2399
2572
  source: string;
2573
+ partition?: string | undefined;
2400
2574
  }[];
2401
2575
  command_palette: {
2402
2576
  label: string;
@@ -2409,6 +2583,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
2409
2583
  id: string;
2410
2584
  route: string;
2411
2585
  }[];
2586
+ session?: {
2587
+ persistence: "keep" | "clear-on-exit" | "ask";
2588
+ } | undefined;
2412
2589
  csp?: Record<string, string[]> | undefined;
2413
2590
  permissions?: Record<string, string[]> | undefined;
2414
2591
  };
@@ -2443,6 +2620,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
2443
2620
  child_webviews: boolean;
2444
2621
  partitions: string[];
2445
2622
  engines: ("webkit" | "chrome")[];
2623
+ allowed_origins?: string[] | undefined;
2446
2624
  } | undefined;
2447
2625
  agentOps?: {} | undefined;
2448
2626
  http?: {
@@ -2477,6 +2655,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
2477
2655
  };
2478
2656
  display?: string | undefined;
2479
2657
  } | undefined;
2658
+ auth_bridge?: {
2659
+ strategy: "api-key" | "cdp" | "none";
2660
+ } | undefined;
2480
2661
  migrations?: string | undefined;
2481
2662
  settings?: {
2482
2663
  schema: {
@@ -2489,12 +2670,12 @@ export declare const PkgManifestSchema: z.ZodObject<{
2489
2670
  }[];
2490
2671
  } | undefined;
2491
2672
  iyke?: {
2673
+ events: string[];
2492
2674
  routes: {
2493
2675
  path: string;
2494
2676
  method: "GET" | "POST";
2495
2677
  handler: string;
2496
2678
  }[];
2497
- events: string[];
2498
2679
  } | undefined;
2499
2680
  window?: {
2500
2681
  label: string;
@@ -2557,6 +2738,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
2557
2738
  child_webviews?: boolean | undefined;
2558
2739
  partitions?: string[] | undefined;
2559
2740
  engines?: ("webkit" | "chrome")[] | undefined;
2741
+ allowed_origins?: string[] | undefined;
2560
2742
  } | undefined;
2561
2743
  agentOps?: {} | undefined;
2562
2744
  http?: {
@@ -2600,6 +2782,11 @@ export declare const PkgManifestSchema: z.ZodObject<{
2600
2782
  'sqlite.tables'?: string[] | undefined;
2601
2783
  'supabase.tables'?: string[] | undefined;
2602
2784
  'vault.keys'?: string[] | undefined;
2785
+ notify?: string[] | undefined;
2786
+ events?: string[] | undefined;
2787
+ } | undefined;
2788
+ auth_bridge?: {
2789
+ strategy: "api-key" | "cdp" | "none";
2603
2790
  } | undefined;
2604
2791
  targets?: string[] | undefined;
2605
2792
  sidecars?: {
@@ -2621,6 +2808,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
2621
2808
  }[] | undefined;
2622
2809
  } | undefined;
2623
2810
  ui?: {
2811
+ session?: {
2812
+ persistence: "keep" | "clear-on-exit" | "ask";
2813
+ } | undefined;
2624
2814
  nav?: {
2625
2815
  label: string;
2626
2816
  id: string;
@@ -2630,8 +2820,9 @@ export declare const PkgManifestSchema: z.ZodObject<{
2630
2820
  }[] | undefined;
2631
2821
  routes?: {
2632
2822
  path: string;
2633
- kind: "iframe" | "component";
2823
+ kind: "iframe" | "component" | "webview";
2634
2824
  source: string;
2825
+ partition?: string | undefined;
2635
2826
  }[] | undefined;
2636
2827
  command_palette?: {
2637
2828
  label: string;
@@ -2648,12 +2839,12 @@ export declare const PkgManifestSchema: z.ZodObject<{
2648
2839
  permissions?: Record<string, string[]> | undefined;
2649
2840
  } | undefined;
2650
2841
  iyke?: {
2842
+ events?: string[] | undefined;
2651
2843
  routes?: {
2652
2844
  path: string;
2653
2845
  method: "GET" | "POST";
2654
2846
  handler: string;
2655
2847
  }[] | undefined;
2656
- events?: string[] | undefined;
2657
2848
  } | undefined;
2658
2849
  window?: {
2659
2850
  label: string;