@ikenga/contract 0.7.0 → 0.9.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.
Files changed (54) hide show
  1. package/README.md +56 -11
  2. package/dist/canvas/Canvas.d.ts +7 -0
  3. package/dist/canvas/Canvas.d.ts.map +1 -0
  4. package/dist/canvas/Canvas.js +115 -0
  5. package/dist/canvas/Canvas.js.map +1 -0
  6. package/dist/canvas/canvas.css +579 -0
  7. package/dist/canvas/index.d.ts +7 -0
  8. package/dist/canvas/index.d.ts.map +1 -0
  9. package/dist/canvas/index.js +4 -0
  10. package/dist/canvas/index.js.map +1 -0
  11. package/dist/canvas/types.d.ts +45 -0
  12. package/dist/canvas/types.d.ts.map +1 -0
  13. package/dist/canvas/types.js +2 -0
  14. package/dist/canvas/types.js.map +1 -0
  15. package/dist/canvas/use-drag-snap.d.ts +33 -0
  16. package/dist/canvas/use-drag-snap.d.ts.map +1 -0
  17. package/dist/canvas/use-drag-snap.js +73 -0
  18. package/dist/canvas/use-drag-snap.js.map +1 -0
  19. package/dist/canvas/use-pan-zoom.d.ts +32 -0
  20. package/dist/canvas/use-pan-zoom.d.ts.map +1 -0
  21. package/dist/canvas/use-pan-zoom.js +161 -0
  22. package/dist/canvas/use-pan-zoom.js.map +1 -0
  23. package/dist/host-verbs.d.ts +194 -0
  24. package/dist/host-verbs.d.ts.map +1 -0
  25. package/dist/host-verbs.js +15 -0
  26. package/dist/host-verbs.js.map +1 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/manifest.d.ts +376 -19
  32. package/dist/manifest.d.ts.map +1 -1
  33. package/dist/manifest.js +95 -4
  34. package/dist/manifest.js.map +1 -1
  35. package/dist/registry.d.ts +364 -36
  36. package/dist/registry.d.ts.map +1 -1
  37. package/dist/registry.js +9 -0
  38. package/dist/registry.js.map +1 -1
  39. package/dist/scopes.js +1 -1
  40. package/dist/scopes.js.map +1 -1
  41. package/package.json +24 -2
  42. package/schemas/registry/index-v1.json +11 -0
  43. package/src/canvas/Canvas.tsx +161 -0
  44. package/src/canvas/canvas.css +579 -0
  45. package/src/canvas/index.ts +14 -0
  46. package/src/canvas/types.ts +48 -0
  47. package/src/canvas/use-drag-snap.ts +107 -0
  48. package/src/canvas/use-pan-zoom.ts +211 -0
  49. package/src/host-verbs.ts +207 -0
  50. package/src/index.ts +1 -0
  51. package/src/manifest.test.ts +97 -0
  52. package/src/manifest.ts +109 -4
  53. package/src/registry.ts +9 -0
  54. package/src/scopes.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const IKENGA_API_VERSION: 1;
2
+ export declare const IKENGA_API_VERSION: 2;
3
3
  export declare const IKENGA_API_MIN_SUPPORTED: 1;
4
4
  export declare const AuthorSchema: z.ZodObject<{
5
5
  name: z.ZodString;
@@ -76,6 +76,12 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
76
76
  'fs.read': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
77
77
  'fs.write': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
78
78
  net: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
79
+ /** Local SQLite table patterns; validated against tables.json at install time.
80
+ * For api ≥ 2 manifests. Replaces `supabase.tables`. */
81
+ 'sqlite.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
82
+ /** @deprecated api=1 compat alias for `sqlite.tables`. New manifests should
83
+ * use `sqlite.tables` instead. Kept so ikenga_api="1" manifests parse
84
+ * without errors during the transition window. */
79
85
  'supabase.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
80
86
  'vault.keys': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
81
87
  }, "strip", z.ZodTypeAny, {
@@ -83,6 +89,7 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
83
89
  'fs.read': string[];
84
90
  'fs.write': string[];
85
91
  net: string[];
92
+ 'sqlite.tables': string[];
86
93
  'supabase.tables': string[];
87
94
  'vault.keys': string[];
88
95
  }, {
@@ -90,6 +97,7 @@ export declare const PermissionsSchema: z.ZodDefault<z.ZodObject<{
90
97
  'fs.read'?: string[] | undefined;
91
98
  'fs.write'?: string[] | undefined;
92
99
  net?: string[] | undefined;
100
+ 'sqlite.tables'?: string[] | undefined;
93
101
  'supabase.tables'?: string[] | undefined;
94
102
  'vault.keys'?: string[] | undefined;
95
103
  }>>;
@@ -397,6 +405,56 @@ export declare const CronEntrySchema: z.ZodObject<{
397
405
  expr: string;
398
406
  env_from_settings?: string[] | undefined;
399
407
  }>;
408
+ /** Local SQLite capability (api ≥ 2). Threads the logical db name into the
409
+ * iframe host context so the pkg can call `db_query` without hard-coding it.
410
+ * Mirrors `SqliteCapability` in `shell/src-tauri/src/pkg/manifest.rs`. */
411
+ export declare const SqliteCapabilitySchema: z.ZodObject<{
412
+ /** Logical DB name. Currently only `"ikenga.local"` is supported.
413
+ * Defaults to `"ikenga.local"` when omitted. */
414
+ db: z.ZodDefault<z.ZodString>;
415
+ }, "strip", z.ZodTypeAny, {
416
+ db: string;
417
+ }, {
418
+ db?: string | undefined;
419
+ }>;
420
+ export type SqliteCapability = z.infer<typeof SqliteCapabilitySchema>;
421
+ /** Supabase capability. Mirrors `SupabaseCapability` in
422
+ * `shell/src-tauri/src/pkg/manifest.rs`. */
423
+ export declare const SupabaseCapabilitySchema: z.ZodObject<{
424
+ /** When true, mint fails if the Supabase vault keys are missing; when
425
+ * false/omitted, missing keys surface as `supabase: null` in host context. */
426
+ required: z.ZodDefault<z.ZodBoolean>;
427
+ }, "strip", z.ZodTypeAny, {
428
+ required: boolean;
429
+ }, {
430
+ required?: boolean | undefined;
431
+ }>;
432
+ export type SupabaseCapability = z.infer<typeof SupabaseCapabilitySchema>;
433
+ /** Native child-webview capability. Mirrors `WebviewCapability` in
434
+ * `shell/src-tauri/src/pkg/manifest.rs`. */
435
+ export declare const WebviewCapabilitySchema: z.ZodObject<{
436
+ /** Whether this pkg may create child webviews via the kernel. Required for
437
+ * any `ui.routes[]` entry with `kind = "webview"` to mount. */
438
+ child_webviews: z.ZodDefault<z.ZodBoolean>;
439
+ /** Named cookie/data partitions; empty = the implicit "default" partition. */
440
+ partitions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
441
+ }, "strip", z.ZodTypeAny, {
442
+ child_webviews: boolean;
443
+ partitions: string[];
444
+ }, {
445
+ child_webviews?: boolean | undefined;
446
+ partitions?: string[] | undefined;
447
+ }>;
448
+ export type WebviewCapability = z.infer<typeof WebviewCapabilitySchema>;
449
+ /** Agent-ops host-bridge capability (api ≥ 2). Opt-in to the privileged
450
+ * `host.agentOps.*` verbs (run-now / enable-disable / list-jobs) the shell
451
+ * exposes for the agent-ops observability pkg — these reach the always-on
452
+ * cron daemon's localhost trigger endpoint and read the daemon's config +
453
+ * state files, hops an iframe cannot make itself. Presence of the block is
454
+ * the gate (mirrors the `capabilities.sqlite` opt-in). Mirrors
455
+ * `AgentOpsCapability` in `shell/src-tauri/src/pkg/manifest.rs`. */
456
+ export declare const AgentOpsCapabilitySchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
457
+ export type AgentOpsCapability = z.infer<typeof AgentOpsCapabilitySchema>;
400
458
  export declare const WindowBlockSchema: z.ZodObject<{
401
459
  label: z.ZodString;
402
460
  url: z.ZodString;
@@ -440,6 +498,45 @@ export declare const ScreenshotSchema: z.ZodObject<{
440
498
  caption?: string | undefined;
441
499
  }>;
442
500
  export type Screenshot = z.infer<typeof ScreenshotSchema>;
501
+ /** Forward-dependency source for a `requires[]` entry. Mirrors the Rust
502
+ * `RequireSource` enum (`pkg/manifest.rs`) and the registry `ProvenanceSource`
503
+ * set. Optional on an entry — absent means the resolver looks the dep up in the
504
+ * store registry / catalog. */
505
+ export declare const RequireSourceSchema: z.ZodEnum<["git", "npx", "catalog", "local"]>;
506
+ export type RequireSource = z.infer<typeof RequireSourceSchema>;
507
+ /**
508
+ * One forward-dependency edge (`requires[]` element, ADR-015 §3 / Ọba WP-11).
509
+ * Names a standalone Ọba primitive a pkg `requires`; the resolver (WP-13/14)
510
+ * installs the closure at install/enable. This is a SEPARATE graph from a
511
+ * skill's `SKILL.md` `depends_on` (the G-04 authoring star, `skill-core`-only):
512
+ * a pkg `requires` MAY reference any primitive, and the publish-time lift
513
+ * (WP-12) compiles `depends_on` into this field. `.strict()` mirrors the Rust
514
+ * `deny_unknown_fields` on `RequiresEntry`. Source of truth: the Rust struct in
515
+ * `shell/src-tauri/src/pkg/manifest.rs` — keep in lockstep.
516
+ */
517
+ export declare const RequiresEntrySchema: z.ZodObject<{
518
+ /** Primitive kind: skill | agent | command | hook | mcp. Kept a string so a
519
+ * future kind doesn't break old manifests. */
520
+ kind: z.ZodString;
521
+ /** Primitive name (e.g. `skill-core`, `@ikenga/studio-beat-detect`). */
522
+ name: z.ZodString;
523
+ /** Optional fetch source. */
524
+ source: z.ZodOptional<z.ZodEnum<["git", "npx", "catalog", "local"]>>;
525
+ /** Optional git tag/branch or version pin. The shape leaves room for an
526
+ * explicit semver range later without another schema break. */
527
+ ref: z.ZodOptional<z.ZodString>;
528
+ }, "strict", z.ZodTypeAny, {
529
+ name: string;
530
+ kind: string;
531
+ ref?: string | undefined;
532
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
533
+ }, {
534
+ name: string;
535
+ kind: string;
536
+ ref?: string | undefined;
537
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
538
+ }>;
539
+ export type RequiresEntry = z.infer<typeof RequiresEntrySchema>;
443
540
  export declare const ManifestSchema: z.ZodObject<{
444
541
  /** Reverse-DNS, e.g. `com.ikenga.studio`. */
445
542
  id: z.ZodString;
@@ -461,9 +558,6 @@ export declare const ManifestSchema: z.ZodObject<{
461
558
  }>>;
462
559
  /** Rust target triples; empty = host-agnostic. */
463
560
  targets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
464
- skills: z.ZodOptional<z.ZodString>;
465
- commands: z.ZodOptional<z.ZodString>;
466
- agents: z.ZodOptional<z.ZodString>;
467
561
  mcp: z.ZodDefault<z.ZodArray<z.ZodObject<{
468
562
  name: z.ZodString;
469
563
  command: z.ZodString;
@@ -527,6 +621,12 @@ export declare const ManifestSchema: z.ZodObject<{
527
621
  'fs.read': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
528
622
  'fs.write': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
529
623
  net: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
624
+ /** Local SQLite table patterns; validated against tables.json at install time.
625
+ * For api ≥ 2 manifests. Replaces `supabase.tables`. */
626
+ 'sqlite.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
627
+ /** @deprecated api=1 compat alias for `sqlite.tables`. New manifests should
628
+ * use `sqlite.tables` instead. Kept so ikenga_api="1" manifests parse
629
+ * without errors during the transition window. */
530
630
  'supabase.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
531
631
  'vault.keys': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
532
632
  }, "strip", z.ZodTypeAny, {
@@ -534,6 +634,7 @@ export declare const ManifestSchema: z.ZodObject<{
534
634
  'fs.read': string[];
535
635
  'fs.write': string[];
536
636
  net: string[];
637
+ 'sqlite.tables': string[];
537
638
  'supabase.tables': string[];
538
639
  'vault.keys': string[];
539
640
  }, {
@@ -541,6 +642,7 @@ export declare const ManifestSchema: z.ZodObject<{
541
642
  'fs.read'?: string[] | undefined;
542
643
  'fs.write'?: string[] | undefined;
543
644
  net?: string[] | undefined;
645
+ 'sqlite.tables'?: string[] | undefined;
544
646
  'supabase.tables'?: string[] | undefined;
545
647
  'vault.keys'?: string[] | undefined;
546
648
  }>>;
@@ -778,6 +880,67 @@ export declare const ManifestSchema: z.ZodObject<{
778
880
  }, {
779
881
  key_prefixes?: string[] | undefined;
780
882
  }>>;
883
+ /** Optional capabilities the host resolves and injects at iframe-mount
884
+ * time via the AppBridge `hostContext` handshake. Mirrors the Rust
885
+ * `CapabilitiesBlock` in `shell/src-tauri/src/pkg/manifest.rs`. */
886
+ capabilities: z.ZodOptional<z.ZodObject<{
887
+ supabase: z.ZodOptional<z.ZodObject<{
888
+ /** When true, mint fails if the Supabase vault keys are missing; when
889
+ * false/omitted, missing keys surface as `supabase: null` in host context. */
890
+ required: z.ZodDefault<z.ZodBoolean>;
891
+ }, "strip", z.ZodTypeAny, {
892
+ required: boolean;
893
+ }, {
894
+ required?: boolean | undefined;
895
+ }>>;
896
+ sqlite: z.ZodOptional<z.ZodObject<{
897
+ /** Logical DB name. Currently only `"ikenga.local"` is supported.
898
+ * Defaults to `"ikenga.local"` when omitted. */
899
+ db: z.ZodDefault<z.ZodString>;
900
+ }, "strip", z.ZodTypeAny, {
901
+ db: string;
902
+ }, {
903
+ db?: string | undefined;
904
+ }>>;
905
+ webview: z.ZodOptional<z.ZodObject<{
906
+ /** Whether this pkg may create child webviews via the kernel. Required for
907
+ * any `ui.routes[]` entry with `kind = "webview"` to mount. */
908
+ child_webviews: z.ZodDefault<z.ZodBoolean>;
909
+ /** Named cookie/data partitions; empty = the implicit "default" partition. */
910
+ partitions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
911
+ }, "strip", z.ZodTypeAny, {
912
+ child_webviews: boolean;
913
+ partitions: string[];
914
+ }, {
915
+ child_webviews?: boolean | undefined;
916
+ partitions?: string[] | undefined;
917
+ }>>;
918
+ agentOps: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
919
+ }, "strip", z.ZodTypeAny, {
920
+ supabase?: {
921
+ required: boolean;
922
+ } | undefined;
923
+ sqlite?: {
924
+ db: string;
925
+ } | undefined;
926
+ webview?: {
927
+ child_webviews: boolean;
928
+ partitions: string[];
929
+ } | undefined;
930
+ agentOps?: {} | undefined;
931
+ }, {
932
+ supabase?: {
933
+ required?: boolean | undefined;
934
+ } | undefined;
935
+ sqlite?: {
936
+ db?: string | undefined;
937
+ } | undefined;
938
+ webview?: {
939
+ child_webviews?: boolean | undefined;
940
+ partitions?: string[] | undefined;
941
+ } | undefined;
942
+ agentOps?: {} | undefined;
943
+ }>>;
781
944
  /**
782
945
  * Engine-adapter manifest block. Present iff this pkg is an engine-*
783
946
  * adapter. Declares the agent id, display name, capability snapshot,
@@ -906,6 +1069,36 @@ export declare const ManifestSchema: z.ZodObject<{
906
1069
  path: string;
907
1070
  caption?: string | undefined;
908
1071
  }>, "many">>;
1072
+ /**
1073
+ * Forward dependency declarations (ADR-015 §3 / Ọba WP-11). Each entry names a
1074
+ * standalone primitive this pkg `requires`; the Ọba resolver installs the
1075
+ * closure at install/enable. A SEPARATE graph from a skill's `depends_on` (the
1076
+ * G-04 authoring star). Empty by default so pre-Phase-4 manifests are
1077
+ * unaffected. Mirrors `requires: Vec<RequiresEntry>` on the Rust `Manifest`
1078
+ * (`pkg/manifest.rs`) — keep in lockstep (`deny_unknown_fields`).
1079
+ */
1080
+ requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
1081
+ /** Primitive kind: skill | agent | command | hook | mcp. Kept a string so a
1082
+ * future kind doesn't break old manifests. */
1083
+ kind: z.ZodString;
1084
+ /** Primitive name (e.g. `skill-core`, `@ikenga/studio-beat-detect`). */
1085
+ name: z.ZodString;
1086
+ /** Optional fetch source. */
1087
+ source: z.ZodOptional<z.ZodEnum<["git", "npx", "catalog", "local"]>>;
1088
+ /** Optional git tag/branch or version pin. The shape leaves room for an
1089
+ * explicit semver range later without another schema break. */
1090
+ ref: z.ZodOptional<z.ZodString>;
1091
+ }, "strict", z.ZodTypeAny, {
1092
+ name: string;
1093
+ kind: string;
1094
+ ref?: string | undefined;
1095
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1096
+ }, {
1097
+ name: string;
1098
+ kind: string;
1099
+ ref?: string | undefined;
1100
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1101
+ }>, "many">>;
909
1102
  }, "strip", z.ZodTypeAny, {
910
1103
  mcp: {
911
1104
  args: string[];
@@ -919,11 +1112,18 @@ export declare const ManifestSchema: z.ZodObject<{
919
1112
  id: string;
920
1113
  name: string;
921
1114
  version: string;
1115
+ requires: {
1116
+ name: string;
1117
+ kind: string;
1118
+ ref?: string | undefined;
1119
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1120
+ }[];
922
1121
  permissions: {
923
1122
  'shell.execute': string[];
924
1123
  'fs.read': string[];
925
1124
  'fs.write': string[];
926
1125
  net: string[];
1126
+ 'sqlite.tables': string[];
927
1127
  'supabase.tables': string[];
928
1128
  'vault.keys': string[];
929
1129
  };
@@ -980,10 +1180,20 @@ export declare const ManifestSchema: z.ZodObject<{
980
1180
  name: string;
981
1181
  key?: string | undefined;
982
1182
  } | undefined;
1183
+ capabilities?: {
1184
+ supabase?: {
1185
+ required: boolean;
1186
+ } | undefined;
1187
+ sqlite?: {
1188
+ db: string;
1189
+ } | undefined;
1190
+ webview?: {
1191
+ child_webviews: boolean;
1192
+ partitions: string[];
1193
+ } | undefined;
1194
+ agentOps?: {} | undefined;
1195
+ } | undefined;
983
1196
  kind?: string | undefined;
984
- skills?: string | undefined;
985
- commands?: string | undefined;
986
- agents?: string | undefined;
987
1197
  migrations?: string | undefined;
988
1198
  settings?: {
989
1199
  schema: {
@@ -1054,19 +1264,36 @@ export declare const ManifestSchema: z.ZodObject<{
1054
1264
  name: string;
1055
1265
  key?: string | undefined;
1056
1266
  } | undefined;
1267
+ requires?: {
1268
+ name: string;
1269
+ kind: string;
1270
+ ref?: string | undefined;
1271
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1272
+ }[] | undefined;
1273
+ capabilities?: {
1274
+ supabase?: {
1275
+ required?: boolean | undefined;
1276
+ } | undefined;
1277
+ sqlite?: {
1278
+ db?: string | undefined;
1279
+ } | undefined;
1280
+ webview?: {
1281
+ child_webviews?: boolean | undefined;
1282
+ partitions?: string[] | undefined;
1283
+ } | undefined;
1284
+ agentOps?: {} | undefined;
1285
+ } | undefined;
1057
1286
  kind?: string | undefined;
1058
1287
  permissions?: {
1059
1288
  'shell.execute'?: string[] | undefined;
1060
1289
  'fs.read'?: string[] | undefined;
1061
1290
  'fs.write'?: string[] | undefined;
1062
1291
  net?: string[] | undefined;
1292
+ 'sqlite.tables'?: string[] | undefined;
1063
1293
  'supabase.tables'?: string[] | undefined;
1064
1294
  'vault.keys'?: string[] | undefined;
1065
1295
  } | undefined;
1066
1296
  targets?: string[] | undefined;
1067
- skills?: string | undefined;
1068
- commands?: string | undefined;
1069
- agents?: string | undefined;
1070
1297
  sidecars?: {
1071
1298
  name: string;
1072
1299
  bin: string;
@@ -1184,9 +1411,6 @@ export declare const PkgManifestSchema: z.ZodObject<{
1184
1411
  }>>;
1185
1412
  /** Rust target triples; empty = host-agnostic. */
1186
1413
  targets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1187
- skills: z.ZodOptional<z.ZodString>;
1188
- commands: z.ZodOptional<z.ZodString>;
1189
- agents: z.ZodOptional<z.ZodString>;
1190
1414
  mcp: z.ZodDefault<z.ZodArray<z.ZodObject<{
1191
1415
  name: z.ZodString;
1192
1416
  command: z.ZodString;
@@ -1250,6 +1474,12 @@ export declare const PkgManifestSchema: z.ZodObject<{
1250
1474
  'fs.read': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1251
1475
  'fs.write': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1252
1476
  net: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1477
+ /** Local SQLite table patterns; validated against tables.json at install time.
1478
+ * For api ≥ 2 manifests. Replaces `supabase.tables`. */
1479
+ 'sqlite.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1480
+ /** @deprecated api=1 compat alias for `sqlite.tables`. New manifests should
1481
+ * use `sqlite.tables` instead. Kept so ikenga_api="1" manifests parse
1482
+ * without errors during the transition window. */
1253
1483
  'supabase.tables': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1254
1484
  'vault.keys': z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1255
1485
  }, "strip", z.ZodTypeAny, {
@@ -1257,6 +1487,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
1257
1487
  'fs.read': string[];
1258
1488
  'fs.write': string[];
1259
1489
  net: string[];
1490
+ 'sqlite.tables': string[];
1260
1491
  'supabase.tables': string[];
1261
1492
  'vault.keys': string[];
1262
1493
  }, {
@@ -1264,6 +1495,7 @@ export declare const PkgManifestSchema: z.ZodObject<{
1264
1495
  'fs.read'?: string[] | undefined;
1265
1496
  'fs.write'?: string[] | undefined;
1266
1497
  net?: string[] | undefined;
1498
+ 'sqlite.tables'?: string[] | undefined;
1267
1499
  'supabase.tables'?: string[] | undefined;
1268
1500
  'vault.keys'?: string[] | undefined;
1269
1501
  }>>;
@@ -1501,6 +1733,67 @@ export declare const PkgManifestSchema: z.ZodObject<{
1501
1733
  }, {
1502
1734
  key_prefixes?: string[] | undefined;
1503
1735
  }>>;
1736
+ /** Optional capabilities the host resolves and injects at iframe-mount
1737
+ * time via the AppBridge `hostContext` handshake. Mirrors the Rust
1738
+ * `CapabilitiesBlock` in `shell/src-tauri/src/pkg/manifest.rs`. */
1739
+ capabilities: z.ZodOptional<z.ZodObject<{
1740
+ supabase: z.ZodOptional<z.ZodObject<{
1741
+ /** When true, mint fails if the Supabase vault keys are missing; when
1742
+ * false/omitted, missing keys surface as `supabase: null` in host context. */
1743
+ required: z.ZodDefault<z.ZodBoolean>;
1744
+ }, "strip", z.ZodTypeAny, {
1745
+ required: boolean;
1746
+ }, {
1747
+ required?: boolean | undefined;
1748
+ }>>;
1749
+ sqlite: z.ZodOptional<z.ZodObject<{
1750
+ /** Logical DB name. Currently only `"ikenga.local"` is supported.
1751
+ * Defaults to `"ikenga.local"` when omitted. */
1752
+ db: z.ZodDefault<z.ZodString>;
1753
+ }, "strip", z.ZodTypeAny, {
1754
+ db: string;
1755
+ }, {
1756
+ db?: string | undefined;
1757
+ }>>;
1758
+ webview: z.ZodOptional<z.ZodObject<{
1759
+ /** Whether this pkg may create child webviews via the kernel. Required for
1760
+ * any `ui.routes[]` entry with `kind = "webview"` to mount. */
1761
+ child_webviews: z.ZodDefault<z.ZodBoolean>;
1762
+ /** Named cookie/data partitions; empty = the implicit "default" partition. */
1763
+ partitions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1764
+ }, "strip", z.ZodTypeAny, {
1765
+ child_webviews: boolean;
1766
+ partitions: string[];
1767
+ }, {
1768
+ child_webviews?: boolean | undefined;
1769
+ partitions?: string[] | undefined;
1770
+ }>>;
1771
+ agentOps: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
1772
+ }, "strip", z.ZodTypeAny, {
1773
+ supabase?: {
1774
+ required: boolean;
1775
+ } | undefined;
1776
+ sqlite?: {
1777
+ db: string;
1778
+ } | undefined;
1779
+ webview?: {
1780
+ child_webviews: boolean;
1781
+ partitions: string[];
1782
+ } | undefined;
1783
+ agentOps?: {} | undefined;
1784
+ }, {
1785
+ supabase?: {
1786
+ required?: boolean | undefined;
1787
+ } | undefined;
1788
+ sqlite?: {
1789
+ db?: string | undefined;
1790
+ } | undefined;
1791
+ webview?: {
1792
+ child_webviews?: boolean | undefined;
1793
+ partitions?: string[] | undefined;
1794
+ } | undefined;
1795
+ agentOps?: {} | undefined;
1796
+ }>>;
1504
1797
  /**
1505
1798
  * Engine-adapter manifest block. Present iff this pkg is an engine-*
1506
1799
  * adapter. Declares the agent id, display name, capability snapshot,
@@ -1629,6 +1922,36 @@ export declare const PkgManifestSchema: z.ZodObject<{
1629
1922
  path: string;
1630
1923
  caption?: string | undefined;
1631
1924
  }>, "many">>;
1925
+ /**
1926
+ * Forward dependency declarations (ADR-015 §3 / Ọba WP-11). Each entry names a
1927
+ * standalone primitive this pkg `requires`; the Ọba resolver installs the
1928
+ * closure at install/enable. A SEPARATE graph from a skill's `depends_on` (the
1929
+ * G-04 authoring star). Empty by default so pre-Phase-4 manifests are
1930
+ * unaffected. Mirrors `requires: Vec<RequiresEntry>` on the Rust `Manifest`
1931
+ * (`pkg/manifest.rs`) — keep in lockstep (`deny_unknown_fields`).
1932
+ */
1933
+ requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
1934
+ /** Primitive kind: skill | agent | command | hook | mcp. Kept a string so a
1935
+ * future kind doesn't break old manifests. */
1936
+ kind: z.ZodString;
1937
+ /** Primitive name (e.g. `skill-core`, `@ikenga/studio-beat-detect`). */
1938
+ name: z.ZodString;
1939
+ /** Optional fetch source. */
1940
+ source: z.ZodOptional<z.ZodEnum<["git", "npx", "catalog", "local"]>>;
1941
+ /** Optional git tag/branch or version pin. The shape leaves room for an
1942
+ * explicit semver range later without another schema break. */
1943
+ ref: z.ZodOptional<z.ZodString>;
1944
+ }, "strict", z.ZodTypeAny, {
1945
+ name: string;
1946
+ kind: string;
1947
+ ref?: string | undefined;
1948
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1949
+ }, {
1950
+ name: string;
1951
+ kind: string;
1952
+ ref?: string | undefined;
1953
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1954
+ }>, "many">>;
1632
1955
  }, "strip", z.ZodTypeAny, {
1633
1956
  mcp: {
1634
1957
  args: string[];
@@ -1642,11 +1965,18 @@ export declare const PkgManifestSchema: z.ZodObject<{
1642
1965
  id: string;
1643
1966
  name: string;
1644
1967
  version: string;
1968
+ requires: {
1969
+ name: string;
1970
+ kind: string;
1971
+ ref?: string | undefined;
1972
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
1973
+ }[];
1645
1974
  permissions: {
1646
1975
  'shell.execute': string[];
1647
1976
  'fs.read': string[];
1648
1977
  'fs.write': string[];
1649
1978
  net: string[];
1979
+ 'sqlite.tables': string[];
1650
1980
  'supabase.tables': string[];
1651
1981
  'vault.keys': string[];
1652
1982
  };
@@ -1703,10 +2033,20 @@ export declare const PkgManifestSchema: z.ZodObject<{
1703
2033
  name: string;
1704
2034
  key?: string | undefined;
1705
2035
  } | undefined;
2036
+ capabilities?: {
2037
+ supabase?: {
2038
+ required: boolean;
2039
+ } | undefined;
2040
+ sqlite?: {
2041
+ db: string;
2042
+ } | undefined;
2043
+ webview?: {
2044
+ child_webviews: boolean;
2045
+ partitions: string[];
2046
+ } | undefined;
2047
+ agentOps?: {} | undefined;
2048
+ } | undefined;
1706
2049
  kind?: string | undefined;
1707
- skills?: string | undefined;
1708
- commands?: string | undefined;
1709
- agents?: string | undefined;
1710
2050
  migrations?: string | undefined;
1711
2051
  settings?: {
1712
2052
  schema: {
@@ -1777,19 +2117,36 @@ export declare const PkgManifestSchema: z.ZodObject<{
1777
2117
  name: string;
1778
2118
  key?: string | undefined;
1779
2119
  } | undefined;
2120
+ requires?: {
2121
+ name: string;
2122
+ kind: string;
2123
+ ref?: string | undefined;
2124
+ source?: "git" | "npx" | "catalog" | "local" | undefined;
2125
+ }[] | undefined;
2126
+ capabilities?: {
2127
+ supabase?: {
2128
+ required?: boolean | undefined;
2129
+ } | undefined;
2130
+ sqlite?: {
2131
+ db?: string | undefined;
2132
+ } | undefined;
2133
+ webview?: {
2134
+ child_webviews?: boolean | undefined;
2135
+ partitions?: string[] | undefined;
2136
+ } | undefined;
2137
+ agentOps?: {} | undefined;
2138
+ } | undefined;
1780
2139
  kind?: string | undefined;
1781
2140
  permissions?: {
1782
2141
  'shell.execute'?: string[] | undefined;
1783
2142
  'fs.read'?: string[] | undefined;
1784
2143
  'fs.write'?: string[] | undefined;
1785
2144
  net?: string[] | undefined;
2145
+ 'sqlite.tables'?: string[] | undefined;
1786
2146
  'supabase.tables'?: string[] | undefined;
1787
2147
  'vault.keys'?: string[] | undefined;
1788
2148
  } | undefined;
1789
2149
  targets?: string[] | undefined;
1790
- skills?: string | undefined;
1791
- commands?: string | undefined;
1792
- agents?: string | undefined;
1793
2150
  sidecars?: {
1794
2151
  name: string;
1795
2152
  bin: string;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC;AAC7C,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AAInD,eAAO,MAAM,YAAY;;;;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;IAK1B,0CAA0C;;IAE1C;;0CAEsC;;IAEtC;;8BAE0B;;;;;;;;;;;;;;;;;;EAE1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB;IAC5B,mEAAmE;;IAEnE,iEAAiE;;IAEjE,+BAA+B;;IAE/B;4EACwE;;IAExE;6DACyD;;;;;;;;;;;;;;EAEzD,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;IAK5B;6DACyD;;IAEzD;;uDAEmD;;;;;;;;;;;;;;;;;;;GAGvC,CAAC;AAEf,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,aAAa;;IAExB,yDAAyD;;IAEzD,oEAAoE;;;;;;;;;;EAEpE,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;QAnBxB,yDAAyD;;QAEzD,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBpE,0DAA0D;;IAE1D,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAElC,CAAC;AAEf,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,eAAe;;IAE1B,oCAAoC;;IAEpC,8CAA8C;;;;;;;;;;EAE9C,CAAC;AACH,eAAO,MAAM,eAAe;;;QAL1B,oCAAoC;;QAEpC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9C,CAAC;AAEH,eAAO,MAAM,eAAe;;IAE1B,0DAA0D;;;;;;;;;;;;;;EAI1D,CAAC;AAEH;;2EAE2E;AAC3E,eAAO,MAAM,sBAAsB;IACjC;qDACiD;;;;;;EAEjD,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;6CAC6C;AAC7C,eAAO,MAAM,wBAAwB;IACnC;mFAC+E;;;;;;EAE/E,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;6CAC6C;AAC7C,eAAO,MAAM,uBAAuB;IAClC;oEACgE;;IAEhE,8EAA8E;;;;;;;;EAE9E,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;qEAMqE;AACrE,eAAO,MAAM,wBAAwB,gDAAe,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;gCAGgC;AAChC,eAAO,MAAM,mBAAmB,+CAA6C,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB;IAE5B;mDAC+C;;IAE/C,wEAAwE;;IAExE,6BAA6B;;IAE7B;oEACgE;;;;;;;;;;;;EAGzD,CAAC;AACZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE,eAAO,MAAM,cAAc;IACzB,6CAA6C;;;;IAI7C,gEAAgE;;IAGhE,wEAAwE;;;;;;;;;;;;IAGxE,kDAAkD;;;;;;;QAjOlD,0CAA0C;;QAE1C;;8CAEsC;;QAEtC;;kCAE0B;;;;;;;;;;;;;;;;;;;;QAM1B,mEAAmE;;QAEnE,iEAAiE;;QAEjE,+BAA+B;;QAE/B;gFACwE;;QAExE;iEACyD;;;;;;;;;;;;;;;;;;;;QAUzD;iEACyD;;QAEzD;;2DAEmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAenD,yDAAyD;;YAEzD,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsBpE,0DAA0D;;QAE1D,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiB9C,oCAAoC;;YAEpC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAU9C,0DAA0D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0I1D;;wEAEoE;;;YAzHpE;2FAC+E;;;;;;;;YAV/E;6DACiD;;;;;;;;YAiBjD;4EACgE;;YAEhE,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqH9E;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;;OAKG;;;;;;;;;;;IAGH;;;;;;;OAOG;;QAlFD;uDAC+C;;QAE/C,wEAAwE;;QAExE,6BAA6B;;QAE7B;wEACgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4ElE,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB;IAvE5B,6CAA6C;;;;IAI7C,gEAAgE;;IAGhE,wEAAwE;;;;;;;;;;;;IAGxE,kDAAkD;;;;;;;QAjOlD,0CAA0C;;QAE1C;;8CAEsC;;QAEtC;;kCAE0B;;;;;;;;;;;;;;;;;;;;QAM1B,mEAAmE;;QAEnE,iEAAiE;;QAEjE,+BAA+B;;QAE/B;gFACwE;;QAExE;iEACyD;;;;;;;;;;;;;;;;;;;;QAUzD;iEACyD;;QAEzD;;2DAEmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAenD,yDAAyD;;YAEzD,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsBpE,0DAA0D;;QAE1D,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiB9C,oCAAoC;;YAEpC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAU9C,0DAA0D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0I1D;;wEAEoE;;;YAzHpE;2FAC+E;;;;;;;;YAV/E;6DACiD;;;;;;;;YAiBjD;4EACgE;;YAEhE,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqH9E;;;;;OAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;;;;OAKG;;;;;;;;;;;IAGH;;;;;;;OAOG;;QAlFD;uDAC+C;;QAE/C,wEAAwE;;QAExE,6BAA6B;;QAE7B;wEACgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFrB,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AAInC,qFAAqF;AACrF,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIjD"}