@yaklabs-ai/plugin-protocol 0.38.0 → 0.39.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.38.0"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.39.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.38.0",
4
+ "version": "0.39.0",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -1684,6 +1684,7 @@ declare namespace authoringContributionSchemas {
1684
1684
  ReferencePresentationUrlClaim,
1685
1685
  ReferencePresentationTooltip,
1686
1686
  ReferencePresentationAddress,
1687
+ ReferencePresentationWords,
1687
1688
  ReferencePresentationContribution,
1688
1689
  RichViewContribution,
1689
1690
  KayUiAppHostCapability,
@@ -2681,6 +2682,37 @@ declare const canonicalContributionSchemas: {
2681
2682
  kind: z.ZodLiteral<"none">;
2682
2683
  }, z.core.$strict>>;
2683
2684
  }, z.core.$strict>;
2685
+ ReferencePresentationWords: z.ZodObject<{
2686
+ glyph: z.ZodOptional<z.ZodEnum<{
2687
+ file: "file";
2688
+ terminal: "terminal";
2689
+ note: "note";
2690
+ search: "search";
2691
+ person: "person";
2692
+ session: "session";
2693
+ browser: "browser";
2694
+ folder: "folder";
2695
+ repo: "repo";
2696
+ clock: "clock";
2697
+ robot: "robot";
2698
+ globe: "globe";
2699
+ skill: "skill";
2700
+ memory: "memory";
2701
+ plan: "plan";
2702
+ download: "download";
2703
+ attachment: "attachment";
2704
+ settings: "settings";
2705
+ catalog: "catalog";
2706
+ model: "model";
2707
+ doc: "doc";
2708
+ feedback: "feedback";
2709
+ plugin: "plugin";
2710
+ }>>;
2711
+ kind: z.ZodOptional<z.ZodString>;
2712
+ noun: z.ZodOptional<z.ZodString>;
2713
+ target: z.ZodOptional<z.ZodString>;
2714
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
2715
+ }, z.core.$strict>;
2684
2716
  ReferencePresentationContribution: z.ZodObject<{
2685
2717
  localId: z.ZodString;
2686
2718
  uriModule: z.ZodOptional<z.ZodString>;
@@ -2697,15 +2729,15 @@ declare const canonicalContributionSchemas: {
2697
2729
  kind: z.ZodLiteral<"none">;
2698
2730
  }, z.core.$strict>>;
2699
2731
  }, z.core.$strict>>>;
2700
- resourceKind: z.ZodString;
2701
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
2732
+ resourceKind: z.ZodOptional<z.ZodString>;
2733
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2702
2734
  kind: z.ZodLiteral<"working-document">;
2703
2735
  }, z.core.$strict>, z.ZodObject<{
2704
2736
  kind: z.ZodLiteral<"browser-pane">;
2705
2737
  }, z.core.$strict>, z.ZodObject<{
2706
2738
  kind: z.ZodLiteral<"page">;
2707
2739
  pageId: z.ZodString;
2708
- }, z.core.$strict>], "kind">;
2740
+ }, z.core.$strict>], "kind">>;
2709
2741
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2710
2742
  resourceKind: z.ZodString;
2711
2743
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -2732,6 +2764,37 @@ declare const canonicalContributionSchemas: {
2732
2764
  search: z.ZodOptional<z.ZodString>;
2733
2765
  }, z.core.$strict>;
2734
2766
  }, z.core.$strict>>;
2767
+ words: z.ZodOptional<z.ZodObject<{
2768
+ glyph: z.ZodOptional<z.ZodEnum<{
2769
+ file: "file";
2770
+ terminal: "terminal";
2771
+ note: "note";
2772
+ search: "search";
2773
+ person: "person";
2774
+ session: "session";
2775
+ browser: "browser";
2776
+ folder: "folder";
2777
+ repo: "repo";
2778
+ clock: "clock";
2779
+ robot: "robot";
2780
+ globe: "globe";
2781
+ skill: "skill";
2782
+ memory: "memory";
2783
+ plan: "plan";
2784
+ download: "download";
2785
+ attachment: "attachment";
2786
+ settings: "settings";
2787
+ catalog: "catalog";
2788
+ model: "model";
2789
+ doc: "doc";
2790
+ feedback: "feedback";
2791
+ plugin: "plugin";
2792
+ }>>;
2793
+ kind: z.ZodOptional<z.ZodString>;
2794
+ noun: z.ZodOptional<z.ZodString>;
2795
+ target: z.ZodOptional<z.ZodString>;
2796
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
2797
+ }, z.core.$strict>>;
2735
2798
  }, z.core.$strict>;
2736
2799
  RichViewContribution: z.ZodObject<{
2737
2800
  localId: z.ZodString;
@@ -3189,8 +3252,8 @@ export declare const CorpusResourceInvocationQuery: z.ZodObject<{
3189
3252
  }, z.core.$strict>>;
3190
3253
  limit: z.ZodOptional<z.ZodNumber>;
3191
3254
  rootCreatedByKind: z.ZodOptional<z.ZodEnum<{
3192
- agent: "agent";
3193
3255
  plugin: "plugin";
3256
+ agent: "agent";
3194
3257
  human: "human";
3195
3258
  trigger: "trigger";
3196
3259
  daemon: "daemon";
@@ -4176,8 +4239,12 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
4176
4239
  * is then the shared `PluginSignal` v1 with a `related.thread`; a workflow of a plugin the release
4177
4240
  * carries may start on every plugin's signals with `{ kind: "plugin-event", signals: true }` (the
4178
4241
  * private `workflows.signals` claim). Additive: a plugin that declares a signal declares ^0.38.0.
4242
+ *
4243
+ * 0.39.0 lets a plugin word its own addresses (#15750). A reference presentation gains `words`, and
4244
+ * `open` and `resourceKind` become an optional pair, so a module can name its rows, tallies and live
4245
+ * phrases without its addresses opening. Additive. A plugin that declares words declares ^0.39.0.
4179
4246
  */
4180
- export declare const KAY_PLUGIN_SDK_VERSION: "0.38.0";
4247
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.39.0";
4181
4248
 
4182
4249
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
4183
4250
 
@@ -5681,15 +5748,15 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5681
5748
  kind: z.ZodLiteral<"none">;
5682
5749
  }, z.core.$strict>>;
5683
5750
  }, z.core.$strict>>>;
5684
- resourceKind: z.ZodString;
5685
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
5751
+ resourceKind: z.ZodOptional<z.ZodString>;
5752
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
5686
5753
  kind: z.ZodLiteral<"working-document">;
5687
5754
  }, z.core.$strict>, z.ZodObject<{
5688
5755
  kind: z.ZodLiteral<"browser-pane">;
5689
5756
  }, z.core.$strict>, z.ZodObject<{
5690
5757
  kind: z.ZodLiteral<"page">;
5691
5758
  pageId: z.ZodString;
5692
- }, z.core.$strict>], "kind">;
5759
+ }, z.core.$strict>], "kind">>;
5693
5760
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
5694
5761
  resourceKind: z.ZodString;
5695
5762
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -5716,6 +5783,37 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5716
5783
  search: z.ZodOptional<z.ZodString>;
5717
5784
  }, z.core.$strict>;
5718
5785
  }, z.core.$strict>>;
5786
+ words: z.ZodOptional<z.ZodObject<{
5787
+ glyph: z.ZodOptional<z.ZodEnum<{
5788
+ file: "file";
5789
+ terminal: "terminal";
5790
+ note: "note";
5791
+ search: "search";
5792
+ person: "person";
5793
+ session: "session";
5794
+ browser: "browser";
5795
+ folder: "folder";
5796
+ repo: "repo";
5797
+ clock: "clock";
5798
+ robot: "robot";
5799
+ globe: "globe";
5800
+ skill: "skill";
5801
+ memory: "memory";
5802
+ plan: "plan";
5803
+ download: "download";
5804
+ attachment: "attachment";
5805
+ settings: "settings";
5806
+ catalog: "catalog";
5807
+ model: "model";
5808
+ doc: "doc";
5809
+ feedback: "feedback";
5810
+ plugin: "plugin";
5811
+ }>>;
5812
+ kind: z.ZodOptional<z.ZodString>;
5813
+ noun: z.ZodOptional<z.ZodString>;
5814
+ target: z.ZodOptional<z.ZodString>;
5815
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
5816
+ }, z.core.$strict>>;
5719
5817
  }, z.core.$strict>>>;
5720
5818
  views: z.ZodOptional<z.ZodArray<z.ZodObject<{
5721
5819
  localId: z.ZodString;
@@ -6814,15 +6912,15 @@ export declare const KayUiTargetManifest: z.ZodObject<{
6814
6912
  kind: z.ZodLiteral<"none">;
6815
6913
  }, z.core.$strict>>;
6816
6914
  }, z.core.$strict>>>;
6817
- resourceKind: z.ZodString;
6818
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
6915
+ resourceKind: z.ZodOptional<z.ZodString>;
6916
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
6819
6917
  kind: z.ZodLiteral<"working-document">;
6820
6918
  }, z.core.$strict>, z.ZodObject<{
6821
6919
  kind: z.ZodLiteral<"browser-pane">;
6822
6920
  }, z.core.$strict>, z.ZodObject<{
6823
6921
  kind: z.ZodLiteral<"page">;
6824
6922
  pageId: z.ZodString;
6825
- }, z.core.$strict>], "kind">;
6923
+ }, z.core.$strict>], "kind">>;
6826
6924
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
6827
6925
  resourceKind: z.ZodString;
6828
6926
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -6849,6 +6947,37 @@ export declare const KayUiTargetManifest: z.ZodObject<{
6849
6947
  search: z.ZodOptional<z.ZodString>;
6850
6948
  }, z.core.$strict>;
6851
6949
  }, z.core.$strict>>;
6950
+ words: z.ZodOptional<z.ZodObject<{
6951
+ glyph: z.ZodOptional<z.ZodEnum<{
6952
+ file: "file";
6953
+ terminal: "terminal";
6954
+ note: "note";
6955
+ search: "search";
6956
+ person: "person";
6957
+ session: "session";
6958
+ browser: "browser";
6959
+ folder: "folder";
6960
+ repo: "repo";
6961
+ clock: "clock";
6962
+ robot: "robot";
6963
+ globe: "globe";
6964
+ skill: "skill";
6965
+ memory: "memory";
6966
+ plan: "plan";
6967
+ download: "download";
6968
+ attachment: "attachment";
6969
+ settings: "settings";
6970
+ catalog: "catalog";
6971
+ model: "model";
6972
+ doc: "doc";
6973
+ feedback: "feedback";
6974
+ plugin: "plugin";
6975
+ }>>;
6976
+ kind: z.ZodOptional<z.ZodString>;
6977
+ noun: z.ZodOptional<z.ZodString>;
6978
+ target: z.ZodOptional<z.ZodString>;
6979
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
6980
+ }, z.core.$strict>>;
6852
6981
  }, z.core.$strict>>>;
6853
6982
  views: z.ZodOptional<z.ZodArray<z.ZodObject<{
6854
6983
  localId: z.ZodString;
@@ -10521,15 +10650,15 @@ export declare const ReferencePresentationContribution: z.ZodObject<{
10521
10650
  kind: z.ZodLiteral<"none">;
10522
10651
  }, z.core.$strict>>;
10523
10652
  }, z.core.$strict>>>;
10524
- resourceKind: z.ZodString;
10525
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
10653
+ resourceKind: z.ZodOptional<z.ZodString>;
10654
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
10526
10655
  kind: z.ZodLiteral<"working-document">;
10527
10656
  }, z.core.$strict>, z.ZodObject<{
10528
10657
  kind: z.ZodLiteral<"browser-pane">;
10529
10658
  }, z.core.$strict>, z.ZodObject<{
10530
10659
  kind: z.ZodLiteral<"page">;
10531
10660
  pageId: z.ZodString;
10532
- }, z.core.$strict>], "kind">;
10661
+ }, z.core.$strict>], "kind">>;
10533
10662
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
10534
10663
  resourceKind: z.ZodString;
10535
10664
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -10556,6 +10685,37 @@ export declare const ReferencePresentationContribution: z.ZodObject<{
10556
10685
  search: z.ZodOptional<z.ZodString>;
10557
10686
  }, z.core.$strict>;
10558
10687
  }, z.core.$strict>>;
10688
+ words: z.ZodOptional<z.ZodObject<{
10689
+ glyph: z.ZodOptional<z.ZodEnum<{
10690
+ file: "file";
10691
+ terminal: "terminal";
10692
+ note: "note";
10693
+ search: "search";
10694
+ person: "person";
10695
+ session: "session";
10696
+ browser: "browser";
10697
+ folder: "folder";
10698
+ repo: "repo";
10699
+ clock: "clock";
10700
+ robot: "robot";
10701
+ globe: "globe";
10702
+ skill: "skill";
10703
+ memory: "memory";
10704
+ plan: "plan";
10705
+ download: "download";
10706
+ attachment: "attachment";
10707
+ settings: "settings";
10708
+ catalog: "catalog";
10709
+ model: "model";
10710
+ doc: "doc";
10711
+ feedback: "feedback";
10712
+ plugin: "plugin";
10713
+ }>>;
10714
+ kind: z.ZodOptional<z.ZodString>;
10715
+ noun: z.ZodOptional<z.ZodString>;
10716
+ target: z.ZodOptional<z.ZodString>;
10717
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
10718
+ }, z.core.$strict>>;
10559
10719
  }, z.core.$strict>;
10560
10720
 
10561
10721
  export declare type ReferencePresentationContribution = z.infer<typeof ReferencePresentationContribution>;
@@ -10611,6 +10771,40 @@ export declare const ReferencePresentationVariants: z.ZodRecord<z.ZodString, z.Z
10611
10771
 
10612
10772
  export declare type ReferencePresentationVariants = z.infer<typeof ReferencePresentationVariants>;
10613
10773
 
10774
+ export declare const ReferencePresentationWords: z.ZodObject<{
10775
+ glyph: z.ZodOptional<z.ZodEnum<{
10776
+ file: "file";
10777
+ terminal: "terminal";
10778
+ note: "note";
10779
+ search: "search";
10780
+ person: "person";
10781
+ session: "session";
10782
+ browser: "browser";
10783
+ folder: "folder";
10784
+ repo: "repo";
10785
+ clock: "clock";
10786
+ robot: "robot";
10787
+ globe: "globe";
10788
+ skill: "skill";
10789
+ memory: "memory";
10790
+ plan: "plan";
10791
+ download: "download";
10792
+ attachment: "attachment";
10793
+ settings: "settings";
10794
+ catalog: "catalog";
10795
+ model: "model";
10796
+ doc: "doc";
10797
+ feedback: "feedback";
10798
+ plugin: "plugin";
10799
+ }>>;
10800
+ kind: z.ZodOptional<z.ZodString>;
10801
+ noun: z.ZodOptional<z.ZodString>;
10802
+ target: z.ZodOptional<z.ZodString>;
10803
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
10804
+ }, z.core.$strict>;
10805
+
10806
+ export declare type ReferencePresentationWords = z.infer<typeof ReferencePresentationWords>;
10807
+
10614
10808
  /**
10615
10809
  * The web-session scope-confinement refinement, coined ONCE and shared by both
10616
10810
  * web-session boundaries: `loginUrl` and `probe.url` must each fall within a
@@ -12418,6 +12612,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
12418
12612
  globalId: z.ZodString;
12419
12613
  uriModule: z.ZodOptional<z.ZodString>;
12420
12614
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
12615
+ displayName: z.ZodOptional<z.ZodString>;
12421
12616
  addresses: z.ZodOptional<z.ZodArray<z.ZodObject<{
12422
12617
  pattern: z.ZodObject<{
12423
12618
  protocol: z.ZodString;
@@ -12430,15 +12625,15 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
12430
12625
  kind: z.ZodLiteral<"none">;
12431
12626
  }, z.core.$strict>>;
12432
12627
  }, z.core.$strict>>>;
12433
- resourceKind: z.ZodString;
12434
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
12628
+ resourceKind: z.ZodOptional<z.ZodString>;
12629
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
12435
12630
  kind: z.ZodLiteral<"working-document">;
12436
12631
  }, z.core.$strict>, z.ZodObject<{
12437
12632
  kind: z.ZodLiteral<"browser-pane">;
12438
12633
  }, z.core.$strict>, z.ZodObject<{
12439
12634
  kind: z.ZodLiteral<"page">;
12440
12635
  pageId: z.ZodString;
12441
- }, z.core.$strict>], "kind">;
12636
+ }, z.core.$strict>], "kind">>;
12442
12637
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
12443
12638
  resourceKind: z.ZodString;
12444
12639
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -12465,6 +12660,37 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
12465
12660
  search: z.ZodOptional<z.ZodString>;
12466
12661
  }, z.core.$strict>;
12467
12662
  }, z.core.$strict>>;
12663
+ words: z.ZodOptional<z.ZodObject<{
12664
+ glyph: z.ZodOptional<z.ZodEnum<{
12665
+ file: "file";
12666
+ terminal: "terminal";
12667
+ note: "note";
12668
+ search: "search";
12669
+ person: "person";
12670
+ session: "session";
12671
+ browser: "browser";
12672
+ folder: "folder";
12673
+ repo: "repo";
12674
+ clock: "clock";
12675
+ robot: "robot";
12676
+ globe: "globe";
12677
+ skill: "skill";
12678
+ memory: "memory";
12679
+ plan: "plan";
12680
+ download: "download";
12681
+ attachment: "attachment";
12682
+ settings: "settings";
12683
+ catalog: "catalog";
12684
+ model: "model";
12685
+ doc: "doc";
12686
+ feedback: "feedback";
12687
+ plugin: "plugin";
12688
+ }>>;
12689
+ kind: z.ZodOptional<z.ZodString>;
12690
+ noun: z.ZodOptional<z.ZodString>;
12691
+ target: z.ZodOptional<z.ZodString>;
12692
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
12693
+ }, z.core.$strict>>;
12468
12694
  }, z.core.$strict>>>;
12469
12695
  kayUiApps: z.ZodOptional<z.ZodArray<z.ZodObject<{
12470
12696
  localId: z.ZodString;
@@ -12898,6 +13124,7 @@ export declare const ResolvedReferencePresentation: z.ZodObject<{
12898
13124
  globalId: z.ZodString;
12899
13125
  uriModule: z.ZodOptional<z.ZodString>;
12900
13126
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
13127
+ displayName: z.ZodOptional<z.ZodString>;
12901
13128
  addresses: z.ZodOptional<z.ZodArray<z.ZodObject<{
12902
13129
  pattern: z.ZodObject<{
12903
13130
  protocol: z.ZodString;
@@ -12910,15 +13137,15 @@ export declare const ResolvedReferencePresentation: z.ZodObject<{
12910
13137
  kind: z.ZodLiteral<"none">;
12911
13138
  }, z.core.$strict>>;
12912
13139
  }, z.core.$strict>>>;
12913
- resourceKind: z.ZodString;
12914
- open: z.ZodDiscriminatedUnion<[z.ZodObject<{
13140
+ resourceKind: z.ZodOptional<z.ZodString>;
13141
+ open: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
12915
13142
  kind: z.ZodLiteral<"working-document">;
12916
13143
  }, z.core.$strict>, z.ZodObject<{
12917
13144
  kind: z.ZodLiteral<"browser-pane">;
12918
13145
  }, z.core.$strict>, z.ZodObject<{
12919
13146
  kind: z.ZodLiteral<"page">;
12920
13147
  pageId: z.ZodString;
12921
- }, z.core.$strict>], "kind">;
13148
+ }, z.core.$strict>], "kind">>;
12922
13149
  variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
12923
13150
  resourceKind: z.ZodString;
12924
13151
  presentationPluginId: z.ZodOptional<z.ZodString>;
@@ -12945,6 +13172,37 @@ export declare const ResolvedReferencePresentation: z.ZodObject<{
12945
13172
  search: z.ZodOptional<z.ZodString>;
12946
13173
  }, z.core.$strict>;
12947
13174
  }, z.core.$strict>>;
13175
+ words: z.ZodOptional<z.ZodObject<{
13176
+ glyph: z.ZodOptional<z.ZodEnum<{
13177
+ file: "file";
13178
+ terminal: "terminal";
13179
+ note: "note";
13180
+ search: "search";
13181
+ person: "person";
13182
+ session: "session";
13183
+ browser: "browser";
13184
+ folder: "folder";
13185
+ repo: "repo";
13186
+ clock: "clock";
13187
+ robot: "robot";
13188
+ globe: "globe";
13189
+ skill: "skill";
13190
+ memory: "memory";
13191
+ plan: "plan";
13192
+ download: "download";
13193
+ attachment: "attachment";
13194
+ settings: "settings";
13195
+ catalog: "catalog";
13196
+ model: "model";
13197
+ doc: "doc";
13198
+ feedback: "feedback";
13199
+ plugin: "plugin";
13200
+ }>>;
13201
+ kind: z.ZodOptional<z.ZodString>;
13202
+ noun: z.ZodOptional<z.ZodString>;
13203
+ target: z.ZodOptional<z.ZodString>;
13204
+ kindNamesSource: z.ZodOptional<z.ZodLiteral<true>>;
13205
+ }, z.core.$strict>>;
12948
13206
  }, z.core.$strict>;
12949
13207
 
12950
13208
  export declare type ResolvedReferencePresentation = z.infer<typeof ResolvedReferencePresentation>;
@@ -13988,6 +14246,9 @@ export declare const ThemeContribution: z.ZodObject<{
13988
14246
 
13989
14247
  export declare type ThemeContribution = z.infer<typeof ThemeContribution>;
13990
14248
 
14249
+ /** The marks Bonsai draws for local work and for sources with no icon of their own. */
14250
+ export declare const TOOL_GLYPHS: readonly ["terminal", "file", "search", "folder", "person", "repo", "clock", "robot", "globe", "browser", "skill", "memory", "session", "plan", "download", "attachment", "settings", "catalog", "model", "doc", "feedback", "plugin", "note"];
14251
+
13991
14252
  export declare const ToolContribution: z.ZodObject<{
13992
14253
  localId: z.ZodString;
13993
14254
  toolName: z.ZodString;
@@ -13997,6 +14258,9 @@ export declare const ToolContribution: z.ZodObject<{
13997
14258
 
13998
14259
  export declare type ToolContribution = z.infer<typeof ToolContribution>;
13999
14260
 
14261
+ /** A mark for local work and for Bonsai's own surfaces, drawn at the start of a tool row. */
14262
+ export declare type ToolGlyph = (typeof TOOL_GLYPHS)[number];
14263
+
14000
14264
  export declare const ToolPermission: z.ZodObject<{
14001
14265
  kind: z.ZodEnum<{
14002
14266
  read: "read";
package/dist/index.js CHANGED
@@ -254,7 +254,7 @@ var JsonSchema = z4.record(z4.string(), JsonValue);
254
254
  var KAY_PLUGIN_MANIFEST_SIZE_CAP_BYTES = 1024 * 1024;
255
255
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
256
256
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
257
- var KAY_PLUGIN_SDK_VERSION = "0.38.0";
257
+ var KAY_PLUGIN_SDK_VERSION = "0.39.0";
258
258
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
259
259
  "0.26.3",
260
260
  "0.27.1",
@@ -267,7 +267,8 @@ var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
267
267
  "0.34.0",
268
268
  "0.35.0",
269
269
  "0.36.0",
270
- "0.37.1"
270
+ "0.37.1",
271
+ "0.38.0"
271
272
  ];
272
273
  var KAY_PLUGIN_TARGET_NAMES = [
273
274
  "kay.agent",
@@ -2759,6 +2760,7 @@ __export(contributions_exports, {
2759
2760
  ReferencePresentationUrlClaim: () => ReferencePresentationUrlClaim,
2760
2761
  ReferencePresentationVariant: () => ReferencePresentationVariant,
2761
2762
  ReferencePresentationVariants: () => ReferencePresentationVariants,
2763
+ ReferencePresentationWords: () => ReferencePresentationWords,
2762
2764
  ResourceContribution: () => ResourceContribution,
2763
2765
  ResultRendererContribution: () => ResultRendererContribution,
2764
2766
  RichViewContribution: () => RichViewContribution,
@@ -3118,6 +3120,33 @@ function evaluateCommandWhere(where, values) {
3118
3120
  return evaluateWhere(where, (key) => values[key]);
3119
3121
  }
3120
3122
 
3123
+ // packages/plugin-protocol/dist/tool-glyph.js
3124
+ var TOOL_GLYPHS = [
3125
+ "terminal",
3126
+ "file",
3127
+ "search",
3128
+ "folder",
3129
+ "person",
3130
+ "repo",
3131
+ "clock",
3132
+ "robot",
3133
+ "globe",
3134
+ "browser",
3135
+ "skill",
3136
+ "memory",
3137
+ "session",
3138
+ "plan",
3139
+ "download",
3140
+ "attachment",
3141
+ "settings",
3142
+ "catalog",
3143
+ "model",
3144
+ "doc",
3145
+ "feedback",
3146
+ "plugin",
3147
+ "note"
3148
+ ];
3149
+
3121
3150
  // packages/plugin-protocol/dist/contributions.js
3122
3151
  var MCP_SERVER_LOCAL_HTTP_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "127.0.0.1"]);
3123
3152
  var MCP_SIGN_IN_SCHEME_KIND = {
@@ -3801,6 +3830,26 @@ function createContributionsSchemas(canonical) {
3801
3830
  objectId: NonEmptyString3.optional(),
3802
3831
  open: z12.strictObject({ kind: z12.literal("none") }).optional()
3803
3832
  });
3833
+ const ReferencePresentationWords2 = z12.strictObject({
3834
+ /** The row's mark, for a source with no icon of its own. Left out: the plugin's main icon. */
3835
+ glyph: z12.enum(TOOL_GLYPHS).optional(),
3836
+ /** The thing an address names ("channel" in "Read Slack channel"). Left out: the row reads the scheme's own name. */
3837
+ kind: NonEmptyString3.optional(),
3838
+ /** What a tally counts one address as ("Slack message"). Left out: `kind`, else "item". */
3839
+ noun: NonEmptyString3.optional(),
3840
+ /** What the live phrase names ("Slack" in "Reading Slack"). Left out: the bare verb ("Reading"). */
3841
+ target: NonEmptyString3.optional(),
3842
+ /** `kind` already says which source this is: "Edited plan", not "Edited Plan plan". */
3843
+ kindNamesSource: z12.literal(true).optional()
3844
+ }).superRefine((value, ctx) => {
3845
+ if (value.kind === void 0 && (value.glyph !== void 0 || value.kindNamesSource !== void 0)) {
3846
+ ctx.addIssue({
3847
+ code: "custom",
3848
+ path: ["kind"],
3849
+ message: "glyph and kindNamesSource describe a row, which needs a kind."
3850
+ });
3851
+ }
3852
+ });
3804
3853
  const ReferencePresentationContribution2 = z12.strictObject({
3805
3854
  localId: LocalContributionId2,
3806
3855
  /** This manifest's URI module. Leave it out only for an address another layer serves. */
@@ -3813,16 +3862,48 @@ function createContributionsSchemas(canonical) {
3813
3862
  scheme: UriScheme2.optional(),
3814
3863
  /** Which of the addresses open the page, and on what. Read by the window. */
3815
3864
  addresses: z12.array(ReferencePresentationAddress2).min(1).optional(),
3816
- resourceKind: NonEmptyString3,
3817
- open: ReferenceOpenBehavior2,
3865
+ /** Comes with `open`. A presentation with neither only words its module's addresses. */
3866
+ resourceKind: NonEmptyString3.optional(),
3867
+ /** How the address opens. Left out, it stays plain text. */
3868
+ open: ReferenceOpenBehavior2.optional(),
3818
3869
  /** MIME-specific resource kinds; absent keys use the base presentation. */
3819
3870
  variants: ReferencePresentationVariants2.optional(),
3820
3871
  /** Lexical public URL claims used only for host-rendered browser presentations. */
3821
3872
  claims: z12.array(ReferencePresentationUrlClaim2).optional(),
3822
3873
  /** Informational app presentation matched against the canonical resource URI. */
3823
- tooltip: ReferencePresentationTooltip2.optional()
3874
+ tooltip: ReferencePresentationTooltip2.optional(),
3875
+ /** What the transcript calls this module's addresses. Needs a `uriModule`. */
3876
+ words: ReferencePresentationWords2.optional()
3824
3877
  }).superRefine((value, ctx) => {
3825
- if (value.claims !== void 0 && value.claims.length > 0 && value.open.kind !== "browser-pane") {
3878
+ if (value.open === void 0 !== (value.resourceKind === void 0)) {
3879
+ ctx.addIssue({
3880
+ code: "custom",
3881
+ path: ["open"],
3882
+ message: "open and resourceKind come together: name both or neither."
3883
+ });
3884
+ }
3885
+ if (value.open === void 0 && value.words === void 0) {
3886
+ ctx.addIssue({
3887
+ code: "custom",
3888
+ path: ["words"],
3889
+ message: "A reference presentation that opens nothing must have words."
3890
+ });
3891
+ }
3892
+ if (value.words !== void 0 && value.uriModule === void 0) {
3893
+ ctx.addIssue({
3894
+ code: "custom",
3895
+ path: ["words"],
3896
+ message: "Words belong to a URI module: name its uriModule."
3897
+ });
3898
+ }
3899
+ if (value.open === void 0 && (value.variants !== void 0 || value.tooltip !== void 0)) {
3900
+ ctx.addIssue({
3901
+ code: "custom",
3902
+ path: ["open"],
3903
+ message: "variants and tooltip need an open."
3904
+ });
3905
+ }
3906
+ if (value.claims !== void 0 && value.claims.length > 0 && value.open?.kind !== "browser-pane") {
3826
3907
  ctx.addIssue({
3827
3908
  code: "custom",
3828
3909
  path: ["claims"],
@@ -3836,14 +3917,14 @@ function createContributionsSchemas(canonical) {
3836
3917
  message: "A reference presentation names a uriModule or a scheme."
3837
3918
  });
3838
3919
  }
3839
- if ((value.scheme !== void 0 || value.addresses !== void 0) && value.open.kind !== "page") {
3920
+ if ((value.scheme !== void 0 || value.addresses !== void 0) && value.open?.kind !== "page") {
3840
3921
  ctx.addIssue({
3841
3922
  code: "custom",
3842
3923
  path: ["open"],
3843
3924
  message: "scheme and addresses require page opening."
3844
3925
  });
3845
3926
  }
3846
- if (value.tooltip !== void 0 && value.open.kind === "page") {
3927
+ if (value.tooltip !== void 0 && value.open?.kind === "page") {
3847
3928
  ctx.addIssue({
3848
3929
  code: "custom",
3849
3930
  path: ["tooltip"],
@@ -4104,6 +4185,7 @@ function createContributionsSchemas(canonical) {
4104
4185
  ReferencePresentationUrlClaim: ReferencePresentationUrlClaim2,
4105
4186
  ReferencePresentationTooltip: ReferencePresentationTooltip2,
4106
4187
  ReferencePresentationAddress: ReferencePresentationAddress2,
4188
+ ReferencePresentationWords: ReferencePresentationWords2,
4107
4189
  ReferencePresentationContribution: ReferencePresentationContribution2,
4108
4190
  RichViewContribution: RichViewContribution2,
4109
4191
  KayUiAppHostCapability: KayUiAppHostCapability2,
@@ -4118,7 +4200,7 @@ function createContributionsSchemas(canonical) {
4118
4200
  PluginContributionKind: PluginContributionKind2
4119
4201
  };
4120
4202
  }
4121
- 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, ReferencePresentationAddress, ReferencePresentationContribution, RichViewContribution, KayUiAppHostCapability, UiAppCapabilities, UiRailEntryContribution, UiToastPreviewContribution, UiPageContribution, UiAppContribution, ThemeContribution, CommandHandler, CommandContribution, PluginContributionKind } = createContributionsSchemas(false);
4203
+ 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, ReferencePresentationAddress, ReferencePresentationWords, ReferencePresentationContribution, RichViewContribution, KayUiAppHostCapability, UiAppCapabilities, UiRailEntryContribution, UiToastPreviewContribution, UiPageContribution, UiAppContribution, ThemeContribution, CommandHandler, CommandContribution, PluginContributionKind } = createContributionsSchemas(false);
4122
4204
  var canonicalContributionSchemas = createContributionsSchemas(true);
4123
4205
 
4124
4206
  // packages/plugin-protocol/dist/icon-shape.js
@@ -4943,7 +5025,7 @@ function createManifestSchemas(canonical) {
4943
5025
  message: `reference presentation ${presentation.localId} references unknown ui app ${presentation.tooltip.app}`
4944
5026
  });
4945
5027
  }
4946
- if (presentation.open.kind === "page" && !declaredPageIds.has(presentation.open.pageId)) {
5028
+ if (presentation.open?.kind === "page" && !declaredPageIds.has(presentation.open.pageId)) {
4947
5029
  ctx.addIssue({
4948
5030
  code: "custom",
4949
5031
  path: [...path, "open", "pageId"],
@@ -5663,7 +5745,7 @@ function boundPluginDiagnosticMessage(message) {
5663
5745
  import { z as z14 } from "zod";
5664
5746
  function createResolvedContractSchemas(canonical) {
5665
5747
  const { PluginEventLocalId: PluginEventLocalId2 } = canonical ? canonicalPluginEventSchemas : plugin_events_exports;
5666
- const { ApprovalTypeContribution: ApprovalTypeContribution2, KayUiAppHostCapability: KayUiAppHostCapability2, McpServerAuthMode: McpServerAuthMode2, McpServerUrl: McpServerUrl2, PluginContributionKind: PluginContributionKindSchema, ReferenceOpenBehavior: ReferenceOpenBehavior2, ReferencePresentationUriPattern: ReferencePresentationUriPattern2, ReferencePresentationAddress: ReferencePresentationAddress2, ReferencePresentationUrlClaim: ReferencePresentationUrlClaim2, ReferencePresentationVariants: ReferencePresentationVariants2, UriModuleFacts: UriModuleFacts2, WhiteboardTypeStorage: WhiteboardTypeStorage2 } = canonical ? canonicalContributionSchemas : contributions_exports;
5748
+ const { ApprovalTypeContribution: ApprovalTypeContribution2, KayUiAppHostCapability: KayUiAppHostCapability2, McpServerAuthMode: McpServerAuthMode2, McpServerUrl: McpServerUrl2, PluginContributionKind: PluginContributionKindSchema, ReferenceOpenBehavior: ReferenceOpenBehavior2, ReferencePresentationUriPattern: ReferencePresentationUriPattern2, ReferencePresentationAddress: ReferencePresentationAddress2, ReferencePresentationUrlClaim: ReferencePresentationUrlClaim2, ReferencePresentationVariants: ReferencePresentationVariants2, ReferencePresentationWords: ReferencePresentationWords2, UriModuleFacts: UriModuleFacts2, WhiteboardTypeStorage: WhiteboardTypeStorage2 } = canonical ? canonicalContributionSchemas : contributions_exports;
5667
5749
  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;
5668
5750
  const { PluginExternalCliConnect: PluginExternalCliConnect2, PluginOAuthClientSupplier: PluginOAuthClientSupplier2 } = canonical ? canonicalManifestSchemas : manifest_exports;
5669
5751
  const { ResolvedPluginGrants: ResolvedPluginGrants2 } = canonical ? canonicalPermissionSchemas : permissions_exports;
@@ -5827,18 +5909,22 @@ function createResolvedContractSchemas(canonical) {
5827
5909
  localId: LocalContributionId2,
5828
5910
  globalId: GlobalContributionId2,
5829
5911
  uriModule: GlobalContributionId2.optional(),
5830
- /** The schemes a page-opening presentation answers for: its `scheme`, or its module's. */
5912
+ /** The schemes this presentation is about: its `scheme`, or its module's. */
5831
5913
  schemes: z14.array(UriScheme2).min(1).optional(),
5914
+ /** The module's `displayName`: the source's name in a row. */
5915
+ displayName: NonEmptyString3.optional(),
5832
5916
  addresses: z14.array(ReferencePresentationAddress2).min(1).optional(),
5833
- resourceKind: NonEmptyString3,
5834
- open: ReferenceOpenBehavior2,
5917
+ /** Comes with `open`. A presentation with neither only words its module's addresses. */
5918
+ resourceKind: NonEmptyString3.optional(),
5919
+ open: ReferenceOpenBehavior2.optional(),
5835
5920
  /** MIME-specific resource kinds; absent keys use the base presentation. */
5836
5921
  variants: ReferencePresentationVariants2.optional(),
5837
5922
  claims: z14.array(ReferencePresentationUrlClaim2).optional(),
5838
5923
  tooltip: z14.strictObject({
5839
5924
  app: GlobalContributionId2,
5840
5925
  pattern: ReferencePresentationUriPattern2
5841
- }).optional()
5926
+ }).optional(),
5927
+ words: ReferencePresentationWords2.optional()
5842
5928
  });
5843
5929
  const ResolvedPluginProvisioningRequirement2 = z14.strictObject({
5844
5930
  id: LocalContributionId2,
@@ -6454,10 +6540,13 @@ function resolveKayPluginContractV1(manifest) {
6454
6540
  ...presentation.uriModule === void 0 ? {} : {
6455
6541
  uriModule: resolveGlobalContributionId(namespace, presentation.uriModule)
6456
6542
  },
6457
- ...presentationSchemes(manifest, presentation),
6543
+ ...presentationSource(manifest, presentation),
6458
6544
  ...presentation.addresses === void 0 ? {} : { addresses: presentation.addresses },
6459
- resourceKind: presentation.resourceKind,
6460
- open: presentation.open,
6545
+ ...presentation.open === void 0 || presentation.resourceKind === void 0 ? {} : {
6546
+ resourceKind: presentation.resourceKind,
6547
+ open: presentation.open
6548
+ },
6549
+ ...presentation.words === void 0 ? {} : { words: { ...presentation.words } },
6461
6550
  ...presentation.tooltip === void 0 ? {} : {
6462
6551
  tooltip: {
6463
6552
  app: resolveGlobalContributionId(namespace, presentation.tooltip.app),
@@ -6540,18 +6629,17 @@ function safeResolveKayPluginContractV1(manifest) {
6540
6629
  throw error;
6541
6630
  }
6542
6631
  }
6543
- function presentationSchemes(manifest, presentation) {
6544
- if (presentation.scheme !== void 0) {
6545
- return { schemes: [presentation.scheme] };
6546
- }
6547
- if (presentation.open.kind !== "page")
6548
- return {};
6632
+ function presentationSource(manifest, presentation) {
6549
6633
  const contributes = manifest.targets?.kay;
6550
6634
  const module = [
6551
6635
  ...contributes?.agent?.contributes?.uriModules ?? [],
6552
6636
  ...contributes?.app?.contributes?.uriModules ?? []
6553
6637
  ].find((candidate) => candidate.localId === presentation.uriModule);
6554
- return module === void 0 ? {} : { schemes: [...module.schemes] };
6638
+ const schemes = presentation.scheme === void 0 ? module?.schemes : [presentation.scheme];
6639
+ return {
6640
+ ...schemes === void 0 ? {} : { schemes: [...schemes] },
6641
+ ...module?.displayName === void 0 ? {} : { displayName: module.displayName }
6642
+ };
6555
6643
  }
6556
6644
  function uriModuleFacts({ localId: _localId, schemes: _schemes, displayName: _displayName, authService: _authService, authScheme: _authScheme, knownResources: _knownResources, describesOperations: _describesOperations, ...facts }) {
6557
6645
  return facts;
@@ -7453,6 +7541,7 @@ export {
7453
7541
  ReferencePresentationUrlClaim,
7454
7542
  ReferencePresentationVariant,
7455
7543
  ReferencePresentationVariants,
7544
+ ReferencePresentationWords,
7456
7545
  RegistrableDomain,
7457
7546
  ResolvedAuthGrantRequest,
7458
7547
  ResolvedEndpointGrantRequest,
@@ -7504,6 +7593,7 @@ export {
7504
7593
  SignedInStatusCode,
7505
7594
  SkillContribution,
7506
7595
  StorageGrantRequest,
7596
+ TOOL_GLYPHS,
7507
7597
  TargetEntrypoint,
7508
7598
  TargetPermissionSet,
7509
7599
  TargetPermissionWiring,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.38.0",
3
+ "version": "0.39.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",