@yaklabs-ai/plugin-protocol 0.30.0 → 0.31.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.
package/README.md CHANGED
@@ -11,7 +11,7 @@ flow.
11
11
  ```json
12
12
  {
13
13
  "dependencies": {
14
- "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.30.0"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.31.0"
15
15
  }
16
16
  }
17
17
  ```
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@yaklabs-ai/plugin-protocol",
4
- "version": "0.30.0",
4
+ "version": "0.31.0",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -1661,7 +1661,7 @@ declare namespace authoringContributionSchemas {
1661
1661
  RichViewContribution,
1662
1662
  KayUiAppHostCapability,
1663
1663
  UiAppCapabilities,
1664
- UiAppActivityRail,
1664
+ UiRailEntryContribution,
1665
1665
  UiAppContribution,
1666
1666
  ThemeContribution,
1667
1667
  CommandHandler,
@@ -2711,15 +2711,18 @@ declare const canonicalContributionSchemas: {
2711
2711
  "workspace.arrange": "workspace.arrange";
2712
2712
  }>>>;
2713
2713
  }, z.core.$strict>;
2714
- UiAppActivityRail: z.ZodObject<{
2714
+ UiRailEntryContribution: z.ZodObject<{
2715
+ id: z.ZodString;
2716
+ title: z.ZodString;
2717
+ icon: z.ZodOptional<z.ZodString>;
2718
+ page: z.ZodString;
2719
+ homeLocation: z.ZodOptional<z.ZodString>;
2720
+ shortcut: z.ZodOptional<z.ZodString>;
2721
+ order: z.ZodOptional<z.ZodNumber>;
2715
2722
  section: z.ZodOptional<z.ZodEnum<{
2716
2723
  primary: "primary";
2717
2724
  plugins: "plugins";
2718
2725
  }>>;
2719
- order: z.ZodOptional<z.ZodNumber>;
2720
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2721
- svg: z.ZodString;
2722
- }, z.core.$strict>]>>;
2723
2726
  }, z.core.$strict>;
2724
2727
  UiAppContribution: z.ZodObject<{
2725
2728
  localId: z.ZodString;
@@ -2759,17 +2762,45 @@ declare const canonicalContributionSchemas: {
2759
2762
  "workspace.arrange": "workspace.arrange";
2760
2763
  }>>>;
2761
2764
  }, z.core.$strict>>;
2762
- activityRail: z.ZodOptional<z.ZodObject<{
2763
- section: z.ZodOptional<z.ZodEnum<{
2764
- primary: "primary";
2765
- plugins: "plugins";
2766
- }>>;
2767
- order: z.ZodOptional<z.ZodNumber>;
2768
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2769
- svg: z.ZodString;
2770
- }, z.core.$strict>]>>;
2765
+ }, z.core.$strict> | z.ZodPreprocess<z.ZodObject<{
2766
+ localId: z.ZodString;
2767
+ displayName: z.ZodString;
2768
+ description: z.ZodOptional<z.ZodString>;
2769
+ icon: z.ZodOptional<z.ZodString>;
2770
+ runtime: z.ZodLiteral<"kay.react-app.v1">;
2771
+ contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
2772
+ sdk: z.ZodObject<{
2773
+ range: z.ZodString;
2774
+ }, z.core.$strict>;
2775
+ entrypoint: z.ZodObject<{
2776
+ module: z.ZodString;
2777
+ export: z.ZodOptional<z.ZodString>;
2778
+ }, z.core.$strict>;
2779
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
2780
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
2781
+ capabilities: z.ZodOptional<z.ZodObject<{
2782
+ endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
2783
+ host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2784
+ "sessions.create": "sessions.create";
2785
+ "memory.read": "memory.read";
2786
+ "skills.read": "skills.read";
2787
+ "automations.run": "automations.run";
2788
+ "artifacts.read": "artifacts.read";
2789
+ "navigation.open-session": "navigation.open-session";
2790
+ "artifacts.preview": "artifacts.preview";
2791
+ "cost.read": "cost.read";
2792
+ "billing.read": "billing.read";
2793
+ "context.read": "context.read";
2794
+ "usage.read": "usage.read";
2795
+ "self-improvement.read": "self-improvement.read";
2796
+ "automations.read": "automations.read";
2797
+ "shared-artifacts.read": "shared-artifacts.read";
2798
+ "workspace.place-pane": "workspace.place-pane";
2799
+ "workspace.pane-header": "workspace.pane-header";
2800
+ "workspace.arrange": "workspace.arrange";
2801
+ }>>>;
2771
2802
  }, z.core.$strict>>;
2772
- }, z.core.$strict>;
2803
+ }, z.core.$strict>, unknown>;
2773
2804
  ThemeContribution: z.ZodObject<{
2774
2805
  localId: z.ZodString;
2775
2806
  displayName: z.ZodString;
@@ -3107,6 +3138,18 @@ export declare const DeclaredSkillSourceEnvelope: z.ZodDiscriminatedUnion<[z.Zod
3107
3138
 
3108
3139
  export declare type DeclaredSkillSourceEnvelope = z.infer<typeof DeclaredSkillSourceEnvelope>;
3109
3140
 
3141
+ declare interface DeclaredUiIconPath {
3142
+ readonly label: string;
3143
+ readonly path: string;
3144
+ }
3145
+
3146
+ /**
3147
+ * Every icon file a manifest's `kay.ui` section declares. The directory scan reads them, the
3148
+ * containment check covers them, and a compiled plugin supplies their contents, so a new kind with
3149
+ * an icon adds one line here and all three follow.
3150
+ */
3151
+ export declare function declaredUiIconPaths(manifest: KayPluginManifestV1): readonly DeclaredUiIconPath[];
3152
+
3110
3153
  /** Drop repeats under {@link sameClaim}, preserving first-seen order (a sort settles the rest). */
3111
3154
  export declare function dedupeClaims(claims: readonly PluginCapabilityClaimV1[]): PluginCapabilityClaimV1[];
3112
3155
 
@@ -3943,8 +3986,13 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
3943
3986
  * supplies what a run does: each run is handed the workflow's accounts and tokens, so the code
3944
3987
  * runs the same in the daemon and in the plugin host. Additive: `app.workflows.define` stays, and
3945
3988
  * a plugin that declares a workflow declares ^0.30.0.
3989
+ *
3990
+ * 0.31.0 lets a plugin declare its rail entries as data (#15896). `railEntries` under `kay.ui`
3991
+ * `contributes` names each entry's title, page, shortcut and icon file. It replaces `activityRail` on a
3992
+ * UI app, which is stripped from a manifest that still carries it, so that manifest loses only the
3993
+ * rail button. A plugin that declares a rail entry declares ^0.31.0.
3946
3994
  */
3947
- export declare const KAY_PLUGIN_SDK_VERSION: "0.30.0";
3995
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.31.0";
3948
3996
 
3949
3997
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
3950
3998
 
@@ -5492,16 +5540,57 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5492
5540
  "workspace.arrange": "workspace.arrange";
5493
5541
  }>>>;
5494
5542
  }, z.core.$strict>>;
5495
- activityRail: z.ZodOptional<z.ZodObject<{
5496
- section: z.ZodOptional<z.ZodEnum<{
5497
- primary: "primary";
5498
- plugins: "plugins";
5499
- }>>;
5500
- order: z.ZodOptional<z.ZodNumber>;
5501
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
5502
- svg: z.ZodString;
5503
- }, z.core.$strict>]>>;
5543
+ }, z.core.$strict> | z.ZodPreprocess<z.ZodObject<{
5544
+ localId: z.ZodString;
5545
+ displayName: z.ZodString;
5546
+ description: z.ZodOptional<z.ZodString>;
5547
+ icon: z.ZodOptional<z.ZodString>;
5548
+ runtime: z.ZodLiteral<"kay.react-app.v1">;
5549
+ contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
5550
+ sdk: z.ZodObject<{
5551
+ range: z.ZodString;
5552
+ }, z.core.$strict>;
5553
+ entrypoint: z.ZodObject<{
5554
+ module: z.ZodString;
5555
+ export: z.ZodOptional<z.ZodString>;
5556
+ }, z.core.$strict>;
5557
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
5558
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
5559
+ capabilities: z.ZodOptional<z.ZodObject<{
5560
+ endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
5561
+ host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
5562
+ "sessions.create": "sessions.create";
5563
+ "memory.read": "memory.read";
5564
+ "skills.read": "skills.read";
5565
+ "automations.run": "automations.run";
5566
+ "artifacts.read": "artifacts.read";
5567
+ "navigation.open-session": "navigation.open-session";
5568
+ "artifacts.preview": "artifacts.preview";
5569
+ "cost.read": "cost.read";
5570
+ "billing.read": "billing.read";
5571
+ "context.read": "context.read";
5572
+ "usage.read": "usage.read";
5573
+ "self-improvement.read": "self-improvement.read";
5574
+ "automations.read": "automations.read";
5575
+ "shared-artifacts.read": "shared-artifacts.read";
5576
+ "workspace.place-pane": "workspace.place-pane";
5577
+ "workspace.pane-header": "workspace.pane-header";
5578
+ "workspace.arrange": "workspace.arrange";
5579
+ }>>>;
5504
5580
  }, z.core.$strict>>;
5581
+ }, z.core.$strict>, unknown>>>;
5582
+ railEntries: z.ZodOptional<z.ZodArray<z.ZodObject<{
5583
+ id: z.ZodString;
5584
+ title: z.ZodString;
5585
+ icon: z.ZodOptional<z.ZodString>;
5586
+ page: z.ZodString;
5587
+ homeLocation: z.ZodOptional<z.ZodString>;
5588
+ shortcut: z.ZodOptional<z.ZodString>;
5589
+ order: z.ZodOptional<z.ZodNumber>;
5590
+ section: z.ZodOptional<z.ZodEnum<{
5591
+ primary: "primary";
5592
+ plugins: "plugins";
5593
+ }>>;
5505
5594
  }, z.core.$strict>>>;
5506
5595
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
5507
5596
  localId: z.ZodString;
@@ -6545,16 +6634,57 @@ export declare const KayUiTargetManifest: z.ZodObject<{
6545
6634
  "workspace.arrange": "workspace.arrange";
6546
6635
  }>>>;
6547
6636
  }, z.core.$strict>>;
6548
- activityRail: z.ZodOptional<z.ZodObject<{
6549
- section: z.ZodOptional<z.ZodEnum<{
6550
- primary: "primary";
6551
- plugins: "plugins";
6552
- }>>;
6553
- order: z.ZodOptional<z.ZodNumber>;
6554
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
6555
- svg: z.ZodString;
6556
- }, z.core.$strict>]>>;
6637
+ }, z.core.$strict> | z.ZodPreprocess<z.ZodObject<{
6638
+ localId: z.ZodString;
6639
+ displayName: z.ZodString;
6640
+ description: z.ZodOptional<z.ZodString>;
6641
+ icon: z.ZodOptional<z.ZodString>;
6642
+ runtime: z.ZodLiteral<"kay.react-app.v1">;
6643
+ contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
6644
+ sdk: z.ZodObject<{
6645
+ range: z.ZodString;
6646
+ }, z.core.$strict>;
6647
+ entrypoint: z.ZodObject<{
6648
+ module: z.ZodString;
6649
+ export: z.ZodOptional<z.ZodString>;
6650
+ }, z.core.$strict>;
6651
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
6652
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
6653
+ capabilities: z.ZodOptional<z.ZodObject<{
6654
+ endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
6655
+ host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
6656
+ "sessions.create": "sessions.create";
6657
+ "memory.read": "memory.read";
6658
+ "skills.read": "skills.read";
6659
+ "automations.run": "automations.run";
6660
+ "artifacts.read": "artifacts.read";
6661
+ "navigation.open-session": "navigation.open-session";
6662
+ "artifacts.preview": "artifacts.preview";
6663
+ "cost.read": "cost.read";
6664
+ "billing.read": "billing.read";
6665
+ "context.read": "context.read";
6666
+ "usage.read": "usage.read";
6667
+ "self-improvement.read": "self-improvement.read";
6668
+ "automations.read": "automations.read";
6669
+ "shared-artifacts.read": "shared-artifacts.read";
6670
+ "workspace.place-pane": "workspace.place-pane";
6671
+ "workspace.pane-header": "workspace.pane-header";
6672
+ "workspace.arrange": "workspace.arrange";
6673
+ }>>>;
6557
6674
  }, z.core.$strict>>;
6675
+ }, z.core.$strict>, unknown>>>;
6676
+ railEntries: z.ZodOptional<z.ZodArray<z.ZodObject<{
6677
+ id: z.ZodString;
6678
+ title: z.ZodString;
6679
+ icon: z.ZodOptional<z.ZodString>;
6680
+ page: z.ZodString;
6681
+ homeLocation: z.ZodOptional<z.ZodString>;
6682
+ shortcut: z.ZodOptional<z.ZodString>;
6683
+ order: z.ZodOptional<z.ZodNumber>;
6684
+ section: z.ZodOptional<z.ZodEnum<{
6685
+ primary: "primary";
6686
+ plugins: "plugins";
6687
+ }>>;
6558
6688
  }, z.core.$strict>>>;
6559
6689
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
6560
6690
  localId: z.ZodString;
@@ -10576,16 +10706,6 @@ export declare const ResolvedKayUiApp: z.ZodObject<{
10576
10706
  globalId: z.ZodString;
10577
10707
  displayName: z.ZodString;
10578
10708
  contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
10579
- activityRail: z.ZodOptional<z.ZodObject<{
10580
- section: z.ZodOptional<z.ZodEnum<{
10581
- primary: "primary";
10582
- plugins: "plugins";
10583
- }>>;
10584
- order: z.ZodOptional<z.ZodNumber>;
10585
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
10586
- svg: z.ZodString;
10587
- }, z.core.$strict>]>>;
10588
- }, z.core.$strict>>;
10589
10709
  description: z.ZodOptional<z.ZodString>;
10590
10710
  icon: z.ZodOptional<z.ZodString>;
10591
10711
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -11873,16 +11993,6 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
11873
11993
  globalId: z.ZodString;
11874
11994
  displayName: z.ZodString;
11875
11995
  contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
11876
- activityRail: z.ZodOptional<z.ZodObject<{
11877
- section: z.ZodOptional<z.ZodEnum<{
11878
- primary: "primary";
11879
- plugins: "plugins";
11880
- }>>;
11881
- order: z.ZodOptional<z.ZodNumber>;
11882
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
11883
- svg: z.ZodString;
11884
- }, z.core.$strict>]>>;
11885
- }, z.core.$strict>>;
11886
11996
  description: z.ZodOptional<z.ZodString>;
11887
11997
  icon: z.ZodOptional<z.ZodString>;
11888
11998
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -13484,19 +13594,6 @@ export declare interface TurnPacketMessage {
13484
13594
  readonly origin: TurnMessageOrigin;
13485
13595
  }
13486
13596
 
13487
- export declare const UiAppActivityRail: z.ZodObject<{
13488
- section: z.ZodOptional<z.ZodEnum<{
13489
- primary: "primary";
13490
- plugins: "plugins";
13491
- }>>;
13492
- order: z.ZodOptional<z.ZodNumber>;
13493
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
13494
- svg: z.ZodString;
13495
- }, z.core.$strict>]>>;
13496
- }, z.core.$strict>;
13497
-
13498
- export declare type UiAppActivityRail = z.infer<typeof UiAppActivityRail>;
13499
-
13500
13597
  export declare const UiAppCapabilities: z.ZodObject<{
13501
13598
  endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
13502
13599
  host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
@@ -13560,17 +13657,45 @@ export declare const UiAppContribution: z.ZodObject<{
13560
13657
  "workspace.arrange": "workspace.arrange";
13561
13658
  }>>>;
13562
13659
  }, z.core.$strict>>;
13563
- activityRail: z.ZodOptional<z.ZodObject<{
13564
- section: z.ZodOptional<z.ZodEnum<{
13565
- primary: "primary";
13566
- plugins: "plugins";
13567
- }>>;
13568
- order: z.ZodOptional<z.ZodNumber>;
13569
- icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
13570
- svg: z.ZodString;
13571
- }, z.core.$strict>]>>;
13660
+ }, z.core.$strict> | z.ZodPreprocess<z.ZodObject<{
13661
+ localId: z.ZodString;
13662
+ displayName: z.ZodString;
13663
+ description: z.ZodOptional<z.ZodString>;
13664
+ icon: z.ZodOptional<z.ZodString>;
13665
+ runtime: z.ZodLiteral<"kay.react-app.v1">;
13666
+ contextOnly: z.ZodOptional<z.ZodLiteral<true>>;
13667
+ sdk: z.ZodObject<{
13668
+ range: z.ZodString;
13669
+ }, z.core.$strict>;
13670
+ entrypoint: z.ZodObject<{
13671
+ module: z.ZodString;
13672
+ export: z.ZodOptional<z.ZodString>;
13673
+ }, z.core.$strict>;
13674
+ styles: z.ZodOptional<z.ZodArray<z.ZodString>>;
13675
+ assets: z.ZodOptional<z.ZodArray<z.ZodString>>;
13676
+ capabilities: z.ZodOptional<z.ZodObject<{
13677
+ endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
13678
+ host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
13679
+ "sessions.create": "sessions.create";
13680
+ "memory.read": "memory.read";
13681
+ "skills.read": "skills.read";
13682
+ "automations.run": "automations.run";
13683
+ "artifacts.read": "artifacts.read";
13684
+ "navigation.open-session": "navigation.open-session";
13685
+ "artifacts.preview": "artifacts.preview";
13686
+ "cost.read": "cost.read";
13687
+ "billing.read": "billing.read";
13688
+ "context.read": "context.read";
13689
+ "usage.read": "usage.read";
13690
+ "self-improvement.read": "self-improvement.read";
13691
+ "automations.read": "automations.read";
13692
+ "shared-artifacts.read": "shared-artifacts.read";
13693
+ "workspace.place-pane": "workspace.place-pane";
13694
+ "workspace.pane-header": "workspace.pane-header";
13695
+ "workspace.arrange": "workspace.arrange";
13696
+ }>>>;
13572
13697
  }, z.core.$strict>>;
13573
- }, z.core.$strict>;
13698
+ }, z.core.$strict>, unknown>;
13574
13699
 
13575
13700
  export declare type UiAppContribution = z.infer<typeof UiAppContribution>;
13576
13701
 
@@ -13590,6 +13715,22 @@ export declare const UiEventSubscriptionContribution: z.ZodObject<{
13590
13715
 
13591
13716
  export declare type UiEventSubscriptionContribution = z.infer<typeof UiEventSubscriptionContribution>;
13592
13717
 
13718
+ export declare const UiRailEntryContribution: z.ZodObject<{
13719
+ id: z.ZodString;
13720
+ title: z.ZodString;
13721
+ icon: z.ZodOptional<z.ZodString>;
13722
+ page: z.ZodString;
13723
+ homeLocation: z.ZodOptional<z.ZodString>;
13724
+ shortcut: z.ZodOptional<z.ZodString>;
13725
+ order: z.ZodOptional<z.ZodNumber>;
13726
+ section: z.ZodOptional<z.ZodEnum<{
13727
+ primary: "primary";
13728
+ plugins: "plugins";
13729
+ }>>;
13730
+ }, z.core.$strict>;
13731
+
13732
+ export declare type UiRailEntryContribution = z.infer<typeof UiRailEntryContribution>;
13733
+
13593
13734
  export declare const UiSlotContribution: z.ZodObject<{
13594
13735
  localId: z.ZodString;
13595
13736
  slot: z.ZodString;
package/dist/index.js CHANGED
@@ -10,6 +10,12 @@ var KAY_APP_DATA_CHANGE_MAX_BYTES = 256 * 1024;
10
10
  var KAY_APP_DATA_READ_REQUEST_MAX_BYTES = 64 * 1024;
11
11
  var KAY_APP_DATA_READ_RESULT_MAX_BYTES = 16 * 1024 * 1024;
12
12
 
13
+ // packages/plugin-protocol/dist/ui-icon-paths.js
14
+ function declaredUiIconPaths(manifest) {
15
+ const contributes = manifest.targets?.kay?.ui?.contributes;
16
+ return (contributes?.railEntries ?? []).flatMap((entry) => entry.icon === void 0 ? [] : [{ label: `kay.ui rail entry '${entry.id}' icon`, path: entry.icon }]);
17
+ }
18
+
13
19
  // packages/plugin-protocol/dist/approval-types.js
14
20
  import { z } from "zod";
15
21
  var APPROVAL_KINDS = [
@@ -224,12 +230,13 @@ var JsonSchema = z4.record(z4.string(), JsonValue);
224
230
  var KAY_PLUGIN_MANIFEST_SIZE_CAP_BYTES = 1024 * 1024;
225
231
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
226
232
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
227
- var KAY_PLUGIN_SDK_VERSION = "0.30.0";
233
+ var KAY_PLUGIN_SDK_VERSION = "0.31.0";
228
234
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
229
235
  "0.26.3",
230
236
  "0.27.1",
231
237
  "0.28.0",
232
- "0.29.0"
238
+ "0.29.0",
239
+ "0.30.0"
233
240
  ];
234
241
  var KAY_PLUGIN_TARGET_NAMES = [
235
242
  "kay.agent",
@@ -2718,11 +2725,11 @@ __export(contributions_exports, {
2718
2725
  ThemeContribution: () => ThemeContribution,
2719
2726
  ToolContribution: () => ToolContribution,
2720
2727
  ToolPermission: () => ToolPermission,
2721
- UiAppActivityRail: () => UiAppActivityRail,
2722
2728
  UiAppCapabilities: () => UiAppCapabilities,
2723
2729
  UiAppContribution: () => UiAppContribution,
2724
2730
  UiCommandContribution: () => UiCommandContribution,
2725
2731
  UiEventSubscriptionContribution: () => UiEventSubscriptionContribution,
2732
+ UiRailEntryContribution: () => UiRailEntryContribution,
2726
2733
  UiSlotContribution: () => UiSlotContribution,
2727
2734
  UriModuleContribution: () => UriModuleContribution,
2728
2735
  UriModuleFacts: () => UriModuleFacts,
@@ -3506,12 +3513,17 @@ function createContributionsSchemas(canonical) {
3506
3513
  }
3507
3514
  }
3508
3515
  });
3509
- const UiAppActivityRail2 = z12.strictObject({
3510
- section: z12.enum(["primary", "plugins"]).optional(),
3516
+ const UiRailEntryContribution2 = z12.strictObject({
3517
+ id: LocalContributionId2,
3518
+ title: NonEmptyString3,
3519
+ icon: PackageAssetPath2.optional(),
3520
+ page: NonEmptyString3,
3521
+ homeLocation: NonEmptyString3.optional(),
3522
+ shortcut: NonEmptyString3.optional(),
3511
3523
  order: z12.number().finite().optional(),
3512
- icon: z12.union([NonEmptyString3, z12.strictObject({ svg: NonEmptyString3 })]).optional()
3524
+ section: z12.enum(["primary", "plugins"]).optional()
3513
3525
  });
3514
- const UiAppContribution2 = z12.strictObject({
3526
+ const UiAppFields = z12.strictObject({
3515
3527
  localId: LocalContributionId2,
3516
3528
  displayName: NonEmptyString3,
3517
3529
  description: NonEmptyString3.optional(),
@@ -3523,9 +3535,17 @@ function createContributionsSchemas(canonical) {
3523
3535
  entrypoint: TargetEntrypoint2,
3524
3536
  styles: z12.array(PackageAssetPath2).optional(),
3525
3537
  assets: z12.array(PackageAssetPath2).optional(),
3526
- capabilities: UiAppCapabilities2.optional(),
3527
- activityRail: UiAppActivityRail2.optional()
3538
+ capabilities: UiAppCapabilities2.optional()
3528
3539
  });
3540
+ function stripRetiredUiAppFields(value) {
3541
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
3542
+ return value;
3543
+ }
3544
+ const remaining = { ...value };
3545
+ delete remaining["activityRail"];
3546
+ return remaining;
3547
+ }
3548
+ const UiAppContribution2 = canonical ? UiAppFields : z12.preprocess(stripRetiredUiAppFields, UiAppFields);
3529
3549
  const ThemeContribution2 = z12.strictObject({
3530
3550
  localId: LocalContributionId2,
3531
3551
  displayName: NonEmptyString3,
@@ -3643,7 +3663,7 @@ function createContributionsSchemas(canonical) {
3643
3663
  RichViewContribution: RichViewContribution2,
3644
3664
  KayUiAppHostCapability: KayUiAppHostCapability2,
3645
3665
  UiAppCapabilities: UiAppCapabilities2,
3646
- UiAppActivityRail: UiAppActivityRail2,
3666
+ UiRailEntryContribution: UiRailEntryContribution2,
3647
3667
  UiAppContribution: UiAppContribution2,
3648
3668
  ThemeContribution: ThemeContribution2,
3649
3669
  CommandHandler: CommandHandler2,
@@ -3651,7 +3671,7 @@ function createContributionsSchemas(canonical) {
3651
3671
  PluginContributionKind: PluginContributionKind2
3652
3672
  };
3653
3673
  }
3654
- var { ApprovalCardForm, ApprovalCardStoredForm, ApprovalTypeContribution, UriModuleFacts, ToolContribution, ToolPermission, AgentToolContribution, ConverterContribution, UriModuleContribution, AppUriModuleContribution, AppDataSourceContribution, WhiteboardTypeStorage, WhiteboardTypeContribution, AppDataMaterializerContribution, ArtifactUriModuleContribution, CliBindingContribution, GitHostContribution, ResourceContribution, SkillContribution, PluginSkillSourceDeclaration, SearchProviderContribution, InteractionDriverContribution, EntityResolverContribution, AgentRenderContribution, EndpointContribution, WorkflowContribution, McpServerUrl, McpServerAuthMode, McpServerContribution, McpServerContributions, AppEventSubscription, ContextContributorContribution, PluginEventDefinitionContribution, PluginNotificationRuleContribution, UiEventSubscriptionContribution, DeviceDelegationContribution, SessionReaderContribution, UiCommandContribution, UiSlotContribution, SettingsPanelContribution, ResultRendererContribution, ReferenceOpenBehavior, ReferencePresentationVariant, ReferencePresentationVariants, ReferencePresentationUriPattern, ReferencePresentationUrlClaim, ReferencePresentationTooltip, ReferencePresentationContribution, RichViewContribution, KayUiAppHostCapability, UiAppCapabilities, UiAppActivityRail, UiAppContribution, ThemeContribution, CommandHandler, CommandContribution, PluginContributionKind } = createContributionsSchemas(false);
3674
+ var { ApprovalCardForm, ApprovalCardStoredForm, ApprovalTypeContribution, UriModuleFacts, ToolContribution, ToolPermission, AgentToolContribution, ConverterContribution, UriModuleContribution, AppUriModuleContribution, AppDataSourceContribution, WhiteboardTypeStorage, WhiteboardTypeContribution, AppDataMaterializerContribution, ArtifactUriModuleContribution, CliBindingContribution, GitHostContribution, ResourceContribution, SkillContribution, PluginSkillSourceDeclaration, SearchProviderContribution, InteractionDriverContribution, EntityResolverContribution, AgentRenderContribution, EndpointContribution, WorkflowContribution, McpServerUrl, McpServerAuthMode, McpServerContribution, McpServerContributions, AppEventSubscription, ContextContributorContribution, PluginEventDefinitionContribution, PluginNotificationRuleContribution, UiEventSubscriptionContribution, DeviceDelegationContribution, SessionReaderContribution, UiCommandContribution, UiSlotContribution, SettingsPanelContribution, ResultRendererContribution, ReferenceOpenBehavior, ReferencePresentationVariant, ReferencePresentationVariants, ReferencePresentationUriPattern, ReferencePresentationUrlClaim, ReferencePresentationTooltip, ReferencePresentationContribution, RichViewContribution, KayUiAppHostCapability, UiAppCapabilities, UiRailEntryContribution, UiAppContribution, ThemeContribution, CommandHandler, CommandContribution, PluginContributionKind } = createContributionsSchemas(false);
3655
3675
  var canonicalContributionSchemas = createContributionsSchemas(true);
3656
3676
 
3657
3677
  // packages/plugin-protocol/dist/icon-shape.js
@@ -3725,7 +3745,7 @@ var KAY_UI_NATIVE_EVENT_SUBSCRIPTIONS = [
3725
3745
  var KAY_UI_NATIVE_EVENT_ALLOWLIST = new Set(KAY_UI_NATIVE_EVENT_SUBSCRIPTIONS);
3726
3746
  var RETIRED_COMPATIBILITY_KEYS = ["policy"];
3727
3747
  function createManifestSchemas(canonical) {
3728
- const { AgentRenderContribution: AgentRenderContribution2, ApprovalTypeContribution: ApprovalTypeContribution2, WorkflowContribution: WorkflowContribution2, AppDataMaterializerContribution: AppDataMaterializerContribution2, AppDataSourceContribution: AppDataSourceContribution2, AppUriModuleContribution: AppUriModuleContribution2, AppEventSubscription: AppEventSubscription2, ArtifactUriModuleContribution: ArtifactUriModuleContribution2, CliBindingContribution: CliBindingContribution2, CommandContribution: CommandContribution2, ContextContributorContribution: ContextContributorContribution2, ConverterContribution: ConverterContribution2, SessionReaderContribution: SessionReaderContribution2, DeviceDelegationContribution: DeviceDelegationContribution2, EndpointContribution: EndpointContribution2, EntityResolverContribution: EntityResolverContribution2, GitHostContribution: GitHostContribution2, McpServerContributions: McpServerContributions2, PluginEventDefinitionContribution: PluginEventDefinitionContribution2, PluginNotificationRuleContribution: PluginNotificationRuleContribution2, ResourceContribution: ResourceContribution2, ReferencePresentationContribution: ReferencePresentationContribution2, ResultRendererContribution: ResultRendererContribution2, RichViewContribution: RichViewContribution2, PluginSkillSourceDeclaration: PluginSkillSourceDeclaration2, InteractionDriverContribution: InteractionDriverContribution2, SearchProviderContribution: SearchProviderContribution2, SkillContribution: SkillContribution2, SettingsPanelContribution: SettingsPanelContribution2, ThemeContribution: ThemeContribution2, AgentToolContribution: AgentToolContribution2, ToolContribution: ToolContribution2, UiCommandContribution: UiCommandContribution2, UiAppContribution: UiAppContribution2, UiEventSubscriptionContribution: UiEventSubscriptionContribution2, UiSlotContribution: UiSlotContribution2, UriModuleContribution: UriModuleContribution2, WhiteboardTypeContribution: WhiteboardTypeContribution2 } = canonical ? canonicalContributionSchemas : contributions_exports;
3748
+ const { AgentRenderContribution: AgentRenderContribution2, ApprovalTypeContribution: ApprovalTypeContribution2, WorkflowContribution: WorkflowContribution2, AppDataMaterializerContribution: AppDataMaterializerContribution2, AppDataSourceContribution: AppDataSourceContribution2, AppUriModuleContribution: AppUriModuleContribution2, AppEventSubscription: AppEventSubscription2, ArtifactUriModuleContribution: ArtifactUriModuleContribution2, CliBindingContribution: CliBindingContribution2, CommandContribution: CommandContribution2, ContextContributorContribution: ContextContributorContribution2, ConverterContribution: ConverterContribution2, SessionReaderContribution: SessionReaderContribution2, DeviceDelegationContribution: DeviceDelegationContribution2, EndpointContribution: EndpointContribution2, EntityResolverContribution: EntityResolverContribution2, GitHostContribution: GitHostContribution2, McpServerContributions: McpServerContributions2, PluginEventDefinitionContribution: PluginEventDefinitionContribution2, PluginNotificationRuleContribution: PluginNotificationRuleContribution2, ResourceContribution: ResourceContribution2, ReferencePresentationContribution: ReferencePresentationContribution2, ResultRendererContribution: ResultRendererContribution2, RichViewContribution: RichViewContribution2, PluginSkillSourceDeclaration: PluginSkillSourceDeclaration2, InteractionDriverContribution: InteractionDriverContribution2, SearchProviderContribution: SearchProviderContribution2, SkillContribution: SkillContribution2, SettingsPanelContribution: SettingsPanelContribution2, ThemeContribution: ThemeContribution2, AgentToolContribution: AgentToolContribution2, ToolContribution: ToolContribution2, UiCommandContribution: UiCommandContribution2, UiAppContribution: UiAppContribution2, UiRailEntryContribution: UiRailEntryContribution2, UiEventSubscriptionContribution: UiEventSubscriptionContribution2, UiSlotContribution: UiSlotContribution2, UriModuleContribution: UriModuleContribution2, WhiteboardTypeContribution: WhiteboardTypeContribution2 } = canonical ? canonicalContributionSchemas : contributions_exports;
3729
3749
  const { HttpsUrl: HttpsUrl2, LocalContributionId: LocalContributionId2, NonEmptyString: NonEmptyString3, PackageAssetPath: PackageAssetPath2, PluginId: PluginId2, PluginNamespace: PluginNamespace2, RegistrableDomain: RegistrableDomain2, SignedInStatusCode: SignedInStatusCode2, TargetEntrypoint: TargetEntrypoint2 } = canonical ? canonicalCommonSchemas : common_exports;
3730
3750
  const { PluginPermissionManifest: PluginPermissionManifest2 } = canonical ? canonicalPermissionSchemas : permissions_exports;
3731
3751
  const KayAgentTargetManifest2 = z13.strictObject({
@@ -3847,6 +3867,7 @@ function createManifestSchemas(canonical) {
3847
3867
  referencePresentations: z13.array(ReferencePresentationContribution2).optional(),
3848
3868
  views: z13.array(RichViewContribution2).optional(),
3849
3869
  apps: z13.array(UiAppContribution2).optional(),
3870
+ railEntries: z13.array(UiRailEntryContribution2).optional(),
3850
3871
  themes: z13.array(ThemeContribution2).optional(),
3851
3872
  eventSubscriptions: z13.array(UiEventSubscriptionContribution2).optional(),
3852
3873
  dataMaterializers: z13.array(AppDataMaterializerContribution2).optional()
@@ -5052,7 +5073,7 @@ function boundPluginDiagnosticMessage(message) {
5052
5073
  import { z as z14 } from "zod";
5053
5074
  function createResolvedContractSchemas(canonical) {
5054
5075
  const { PluginEventLocalId: PluginEventLocalId2 } = canonical ? canonicalPluginEventSchemas : plugin_events_exports;
5055
- const { ApprovalTypeContribution: ApprovalTypeContribution2, KayUiAppHostCapability: KayUiAppHostCapability2, UiAppActivityRail: UiAppActivityRail2, McpServerAuthMode: McpServerAuthMode2, McpServerUrl: McpServerUrl2, PluginContributionKind: PluginContributionKindSchema, ReferenceOpenBehavior: ReferenceOpenBehavior2, ReferencePresentationUriPattern: ReferencePresentationUriPattern2, ReferencePresentationUrlClaim: ReferencePresentationUrlClaim2, ReferencePresentationVariants: ReferencePresentationVariants2, UriModuleFacts: UriModuleFacts2, WhiteboardTypeStorage: WhiteboardTypeStorage2 } = canonical ? canonicalContributionSchemas : contributions_exports;
5076
+ const { ApprovalTypeContribution: ApprovalTypeContribution2, KayUiAppHostCapability: KayUiAppHostCapability2, McpServerAuthMode: McpServerAuthMode2, McpServerUrl: McpServerUrl2, PluginContributionKind: PluginContributionKindSchema, ReferenceOpenBehavior: ReferenceOpenBehavior2, ReferencePresentationUriPattern: ReferencePresentationUriPattern2, ReferencePresentationUrlClaim: ReferencePresentationUrlClaim2, ReferencePresentationVariants: ReferencePresentationVariants2, UriModuleFacts: UriModuleFacts2, WhiteboardTypeStorage: WhiteboardTypeStorage2 } = canonical ? canonicalContributionSchemas : contributions_exports;
5056
5077
  const { FileExtensionToken: FileExtensionToken2, GitBasicAuthUser: GitBasicAuthUser2, GitHostName: GitHostName2, GlobalContributionId: GlobalContributionId2, HttpsUrl: HttpsUrl2, LocalContributionId: LocalContributionId2, MimeTypeString: MimeTypeString2, NonEmptyString: NonEmptyString3, PackageAssetPath: PackageAssetPath2, PluginId: PluginId2, PluginNamespace: PluginNamespace2, PluginToolName: PluginToolName2, RegistrableDomain: RegistrableDomain2, SignedInStatusCode: SignedInStatusCode2, TargetEntrypoint: TargetEntrypoint2, UriScheme: UriScheme2 } = canonical ? canonicalCommonSchemas : common_exports;
5057
5078
  const { PluginExternalCliConnect: PluginExternalCliConnect2, PluginOAuthClientSupplier: PluginOAuthClientSupplier2 } = canonical ? canonicalManifestSchemas : manifest_exports;
5058
5079
  const { ResolvedPluginGrants: ResolvedPluginGrants2 } = canonical ? canonicalPermissionSchemas : permissions_exports;
@@ -5337,7 +5358,6 @@ function createResolvedContractSchemas(canonical) {
5337
5358
  globalId: GlobalContributionId2,
5338
5359
  displayName: NonEmptyString3,
5339
5360
  contextOnly: z14.literal(true).optional(),
5340
- activityRail: UiAppActivityRail2.optional(),
5341
5361
  description: NonEmptyString3.optional(),
5342
5362
  icon: PackageAssetPath2.optional(),
5343
5363
  runtime: z14.literal("kay.react-app.v1"),
@@ -5852,7 +5872,6 @@ function resolveKayPluginContractV1(manifest) {
5852
5872
  localId: app.localId,
5853
5873
  globalId: resolveGlobalContributionId(namespace, app.localId),
5854
5874
  ...app.contextOnly === void 0 ? {} : { contextOnly: app.contextOnly },
5855
- ...app.activityRail === void 0 ? {} : { activityRail: app.activityRail },
5856
5875
  displayName: app.displayName,
5857
5876
  ...app.description === void 0 ? {} : { description: app.description },
5858
5877
  ...app.icon === void 0 ? {} : { icon: app.icon },
@@ -6147,6 +6166,7 @@ function referencedPaths(manifest) {
6147
6166
  refs.push({ label: `kay.ui app '${app.localId}' icon`, path: app.icon });
6148
6167
  }
6149
6168
  }
6169
+ refs.push(...declaredUiIconPaths(manifest));
6150
6170
  return refs;
6151
6171
  }
6152
6172
  function firstIssue(issues) {
@@ -6822,11 +6842,11 @@ export {
6822
6842
  ThemeContribution,
6823
6843
  ToolContribution,
6824
6844
  ToolPermission,
6825
- UiAppActivityRail,
6826
6845
  UiAppCapabilities,
6827
6846
  UiAppContribution,
6828
6847
  UiCommandContribution,
6829
6848
  UiEventSubscriptionContribution,
6849
+ UiRailEntryContribution,
6830
6850
  UiSlotContribution,
6831
6851
  UriModuleContribution,
6832
6852
  UriScheme,
@@ -6855,6 +6875,7 @@ export {
6855
6875
  compareClaims,
6856
6876
  compareSemver,
6857
6877
  configSectionKeysForManifest,
6878
+ declaredUiIconPaths,
6858
6879
  dedupeClaims,
6859
6880
  deriveDirectoryPluginToolName,
6860
6881
  finalizeArtifactProvenanceEnvelope,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "The Kay plugin manifest schema (`kay.plugin.v1`) — parse and validate a kay-plugin.json.",
5
5
  "author": "YakLabs",
6
6
  "type": "module",