@yaklabs-ai/plugin-protocol 0.33.0 → 0.34.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.33.0"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.34.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.33.0",
4
+ "version": "0.34.0",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -2739,6 +2739,9 @@ declare const canonicalContributionSchemas: {
2739
2739
  primary: "primary";
2740
2740
  plugins: "plugins";
2741
2741
  }>>;
2742
+ panel: z.ZodOptional<z.ZodObject<{
2743
+ body: z.ZodString;
2744
+ }, z.core.$strict>>;
2742
2745
  }, z.core.$strict>;
2743
2746
  UiAppContribution: z.ZodObject<{
2744
2747
  localId: z.ZodString;
@@ -4073,8 +4076,12 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
4073
4076
  * under `kay.ui` `contributes` names each command's title, icon file, `button`, `menu` and `where`,
4074
4077
  * and `api.implementCommand(localId, handler)` supplies what it does. `placement` is gone and `icon`
4075
4078
  * is now a file path: nothing ever read either. A plugin that declares a command declares ^0.33.0.
4079
+ *
4080
+ * 0.34.0 lets a rail entry declare a sidebar (#15901). `panel.body` on a `railEntries` entry names
4081
+ * what fills it, either a `contextOnly` app in the plugin or a body the host ships. Additive: a rail
4082
+ * entry with no `panel` still opens its page alone. A plugin that declares a panel declares ^0.34.0.
4076
4083
  */
4077
- export declare const KAY_PLUGIN_SDK_VERSION: "0.33.0";
4084
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.34.0";
4078
4085
 
4079
4086
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
4080
4087
 
@@ -5689,6 +5696,9 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5689
5696
  primary: "primary";
5690
5697
  plugins: "plugins";
5691
5698
  }>>;
5699
+ panel: z.ZodOptional<z.ZodObject<{
5700
+ body: z.ZodString;
5701
+ }, z.core.$strict>>;
5692
5702
  }, z.core.$strict>>>;
5693
5703
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
5694
5704
  localId: z.ZodString;
@@ -6783,6 +6793,9 @@ export declare const KayUiTargetManifest: z.ZodObject<{
6783
6793
  primary: "primary";
6784
6794
  plugins: "plugins";
6785
6795
  }>>;
6796
+ panel: z.ZodOptional<z.ZodObject<{
6797
+ body: z.ZodString;
6798
+ }, z.core.$strict>>;
6786
6799
  }, z.core.$strict>>>;
6787
6800
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
6788
6801
  localId: z.ZodString;
@@ -13843,6 +13856,9 @@ export declare const UiRailEntryContribution: z.ZodObject<{
13843
13856
  primary: "primary";
13844
13857
  plugins: "plugins";
13845
13858
  }>>;
13859
+ panel: z.ZodOptional<z.ZodObject<{
13860
+ body: z.ZodString;
13861
+ }, z.core.$strict>>;
13846
13862
  }, z.core.$strict>;
13847
13863
 
13848
13864
  export declare type UiRailEntryContribution = z.infer<typeof UiRailEntryContribution>;
package/dist/index.js CHANGED
@@ -238,7 +238,7 @@ var JsonSchema = z4.record(z4.string(), JsonValue);
238
238
  var KAY_PLUGIN_MANIFEST_SIZE_CAP_BYTES = 1024 * 1024;
239
239
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
240
240
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
241
- var KAY_PLUGIN_SDK_VERSION = "0.33.0";
241
+ var KAY_PLUGIN_SDK_VERSION = "0.34.0";
242
242
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
243
243
  "0.26.3",
244
244
  "0.27.1",
@@ -246,7 +246,8 @@ var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
246
246
  "0.29.0",
247
247
  "0.30.0",
248
248
  "0.31.0",
249
- "0.32.0"
249
+ "0.32.0",
250
+ "0.33.0"
250
251
  ];
251
252
  var KAY_PLUGIN_TARGET_NAMES = [
252
253
  "kay.agent",
@@ -3729,7 +3730,8 @@ function createContributionsSchemas(canonical) {
3729
3730
  homeLocation: NonEmptyString3.optional(),
3730
3731
  shortcut: NonEmptyString3.optional(),
3731
3732
  order: z12.number().finite().optional(),
3732
- section: z12.enum(["primary", "plugins"]).optional()
3733
+ section: z12.enum(["primary", "plugins"]).optional(),
3734
+ panel: z12.strictObject({ body: LocalContributionId2 }).optional()
3733
3735
  });
3734
3736
  const UiAppFields = z12.strictObject({
3735
3737
  localId: LocalContributionId2,
@@ -4576,6 +4578,26 @@ function createManifestSchemas(canonical) {
4576
4578
  });
4577
4579
  }
4578
4580
  }
4581
+ for (const [index, entry] of (manifest.targets?.kay?.ui?.contributes?.railEntries ?? []).entries()) {
4582
+ const body = entry.panel?.body;
4583
+ const app = manifest.targets?.kay?.ui?.contributes?.apps?.find((candidate) => candidate.localId === body);
4584
+ if (app !== void 0 && app.contextOnly !== true) {
4585
+ ctx.addIssue({
4586
+ code: "custom",
4587
+ path: [
4588
+ "targets",
4589
+ "kay",
4590
+ "ui",
4591
+ "contributes",
4592
+ "railEntries",
4593
+ index,
4594
+ "panel",
4595
+ "body"
4596
+ ],
4597
+ message: `Rail entry ${entry.id} panel body ${app.localId} must be a contextOnly ui app`
4598
+ });
4599
+ }
4600
+ }
4579
4601
  const subscribedUiEvents = new Set(manifest.targets?.kay?.ui?.contributes?.eventSubscriptions?.map((subscription) => subscription.event) ?? []);
4580
4602
  const invokedUiEndpoints = new Set(manifest.permissions?.byTarget["kay.ui"]?.endpoints?.filter((grant) => grant.operations.includes("invoke")).map((grant) => grant.endpoint) ?? []);
4581
4603
  const uriModuleIds = new Set([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.33.0",
3
+ "version": "0.34.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",