@yaklabs-ai/plugin-sdk 0.52.1 → 0.53.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
@@ -13,7 +13,7 @@ it under the name your plugin code actually imports:
13
13
  ```json
14
14
  {
15
15
  "dependencies": {
16
- "@bonsai/plugin-sdk": "npm:@yaklabs-ai/plugin-sdk@^0.52.1"
16
+ "@bonsai/plugin-sdk": "npm:@yaklabs-ai/plugin-sdk@^0.53.0"
17
17
  }
18
18
  }
19
19
  ```
@@ -62,7 +62,7 @@ Every tool the entrypoint registers is declared in the manifest too:
62
62
  "description": "Greets people by name.",
63
63
  "version": "0.1.0",
64
64
  "namespace": "widgets",
65
- "compatibility": { "sdk": "^0.52.1" },
65
+ "compatibility": { "sdk": "^0.53.0" },
66
66
  "targets": {
67
67
  "kay": {
68
68
  "agent": {
@@ -151,7 +151,7 @@ naming both versions, instead of loading it and finding no `activate`.
151
151
  | `@bonsai/plugin-sdk/system-one` | The types and error class for `api.systemOne` / `app.systemOne`, from 0.13.8 |
152
152
  | `@bonsai/plugin-sdk/zod` | `z` (the host's in the daemon), on an entry with no other import, from 0.13.9 |
153
153
 
154
- A plugin that imports these subpaths declares the current supported SDK range (`^0.52.1`).
154
+ A plugin that imports these subpaths declares the current supported SDK range (`^0.53.0`).
155
155
  The rows record when each subpath appeared, not retained runtime compatibility. `vendored-mcp` builds the plugin's URI module (its link cards and help); hosting the
156
156
  vendor's MCP server itself is a separate host decision: Bonsai hosts it once a person approves
157
157
  the plugin's `mcp.host-server` grant for that server's name and URL. A server that needs an OAuth
@@ -159,7 +159,7 @@ sign-in names one of the plugin's auth services in `authService`; that service m
159
159
  one `delegated` scheme, which Bonsai uses to sign the person in to the server. Bonsai declares that
160
160
  scheme at runtime; the plugin's code must not declare it again. From 0.16.2 a plugin's code can also
161
161
  call the server's tools through `api.vendoredMcp.port(<server>)`, typed by this subpath's
162
- `VendoredMcpPort` and `VendoredMcpOutcome` (declare `^0.52.1`).
162
+ `VendoredMcpPort` and `VendoredMcpOutcome` (declare `^0.53.0`).
163
163
 
164
164
  From 0.13.10 the manifest schema carries two facts Bonsai reads for its own plugins only; another
165
165
  plugin's are ignored, with a load diagnostic. An `external-cli` auth scheme's `cli` says how Bonsai
@@ -241,7 +241,7 @@ Provider schemas remain authoritative; declaring a dependency grants no authorit
241
241
  through `app.uri`, parse returned Markdown in the consuming plugin, and retain the read's
242
242
  revision (or `contentDigest` from `/uri`) for edits. The old `memory.read` and `memory.write`
243
243
  grants do not authorize the replacement scheme-and-verb calls. Contracts before 0.49.0 are
244
- refused; migrate and declare `^0.52.1`. The current host also serves the 0.49.0 resource contract.
244
+ refused; migrate and declare `^0.53.0`. The current host also serves the 0.49.0 resource contract.
245
245
 
246
246
  ## What this package is, and is not, at runtime
247
247
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@yaklabs-ai/plugin-sdk",
4
- "version": "0.52.1",
4
+ "version": "0.53.0",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [
@@ -234,13 +234,13 @@ declare const ArtifactProvenanceCaptureContextSchema: z.ZodObject<{
234
234
  gaps: z.ZodArray<z.ZodObject<{
235
235
  code: z.ZodEnum<{
236
236
  unknown: "unknown";
237
+ truncated: "truncated";
237
238
  "capture-failed": "capture-failed";
238
239
  "legacy-derived": "legacy-derived";
239
240
  "ambiguous-predecessor": "ambiguous-predecessor";
240
241
  "unverified-index": "unverified-index";
241
242
  "missing-ancestor": "missing-ancestor";
242
243
  cycle: "cycle";
243
- truncated: "truncated";
244
244
  "metadata-write-failed": "metadata-write-failed";
245
245
  "invalid-record": "invalid-record";
246
246
  }>;
@@ -584,13 +584,13 @@ export declare const ArtifactProvenanceEnvelopeV1: z.ZodPipe<z.ZodUnknown, z.Zod
584
584
  gaps: z.ZodArray<z.ZodObject<{
585
585
  code: z.ZodEnum<{
586
586
  unknown: "unknown";
587
+ truncated: "truncated";
587
588
  "capture-failed": "capture-failed";
588
589
  "legacy-derived": "legacy-derived";
589
590
  "ambiguous-predecessor": "ambiguous-predecessor";
590
591
  "unverified-index": "unverified-index";
591
592
  "missing-ancestor": "missing-ancestor";
592
593
  cycle: "cycle";
593
- truncated: "truncated";
594
594
  "metadata-write-failed": "metadata-write-failed";
595
595
  "invalid-record": "invalid-record";
596
596
  }>;
@@ -604,13 +604,13 @@ export declare type ArtifactProvenanceEnvelopeV1 = z.infer<typeof ArtifactProven
604
604
  declare const ArtifactProvenanceGap: z.ZodObject<{
605
605
  code: z.ZodEnum<{
606
606
  unknown: "unknown";
607
+ truncated: "truncated";
607
608
  "capture-failed": "capture-failed";
608
609
  "legacy-derived": "legacy-derived";
609
610
  "ambiguous-predecessor": "ambiguous-predecessor";
610
611
  "unverified-index": "unverified-index";
611
612
  "missing-ancestor": "missing-ancestor";
612
613
  cycle: "cycle";
613
- truncated: "truncated";
614
614
  "metadata-write-failed": "metadata-write-failed";
615
615
  "invalid-record": "invalid-record";
616
616
  }>;
@@ -2462,8 +2462,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2462
2462
  * 0.52.0 adds plugin-owned operational facts through existing manifests and registrations.
2463
2463
  *
2464
2464
  * 0.52.1 adds owner-qualified page feed and endpoint references and their kay.ui claims.
2465
+ *
2466
+ * 0.53.0 adds declared working-content layouts, family-root authority, draft projection discovery
2467
+ * and session-bound page references. Older customized Whiteboard copies must accept the plugin
2468
+ * update before using these interfaces.
2465
2469
  */
2466
- declare const KAY_PLUGIN_SDK_VERSION: "0.52.1";
2470
+ declare const KAY_PLUGIN_SDK_VERSION: "0.53.0";
2467
2471
 
2468
2472
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2469
2473
 
@@ -2509,9 +2513,9 @@ declare interface KayAgentEvents {
2509
2513
  /** This plugin's folder in the session family's shared Whiteboard. */
2510
2514
  declare interface KayAgentFamilyFolder {
2511
2515
  /**
2512
- * The folder's absolute path, created on first use. The plugin that owns the Whiteboard gets
2513
- * the whole family folder; every other plugin gets its own `plugins/<plugin-id>/` inside it.
2514
- * Undefined outside a session.
2516
+ * Absolute path, created on first use; undefined outside a session. A declared and granted
2517
+ * family-root owner receives the whole folder; other plugins receive `plugins/<plugin-id>/`.
2518
+ * Root access checks the live `family-folder.root` grant on every call.
2515
2519
  */
2516
2520
  path(): Promise<string | undefined>;
2517
2521
  }
@@ -10498,8 +10502,8 @@ declare const WhiteboardEntryInfo: z.ZodObject<{
10498
10502
  authorSessionId: z.ZodNullable<z.ZodString>;
10499
10503
  }, z.core.$strict>>;
10500
10504
  state: z.ZodEnum<{
10501
- unavailable: "unavailable";
10502
10505
  available: "available";
10506
+ unavailable: "unavailable";
10503
10507
  "unsupported-version": "unsupported-version";
10504
10508
  invalid: "invalid";
10505
10509
  }>;
@@ -10520,8 +10524,8 @@ declare const WhiteboardEntryInspection: z.ZodObject<{
10520
10524
  authorSessionId: z.ZodNullable<z.ZodString>;
10521
10525
  }, z.core.$strict>>;
10522
10526
  state: z.ZodEnum<{
10523
- unavailable: "unavailable";
10524
10527
  available: "available";
10528
+ unavailable: "unavailable";
10525
10529
  "unsupported-version": "unsupported-version";
10526
10530
  invalid: "invalid";
10527
10531
  }>;
@@ -10572,6 +10576,9 @@ declare const WhiteboardTypeInfo: z.ZodObject<{
10572
10576
  displayName: z.ZodString;
10573
10577
  schemaVersion: z.ZodNumber;
10574
10578
  available: z.ZodBoolean;
10579
+ reference: z.ZodOptional<z.ZodObject<{
10580
+ uriTemplate: z.ZodString;
10581
+ }, z.core.$strict>>;
10575
10582
  }, z.core.$strict>;
10576
10583
 
10577
10584
  declare type WhiteboardTypeInfo = Readonly<z.infer<typeof WhiteboardTypeInfo>>;
@@ -2516,8 +2516,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2516
2516
  * 0.52.0 adds plugin-owned operational facts through existing manifests and registrations.
2517
2517
  *
2518
2518
  * 0.52.1 adds owner-qualified page feed and endpoint references and their kay.ui claims.
2519
+ *
2520
+ * 0.53.0 adds declared working-content layouts, family-root authority, draft projection discovery
2521
+ * and session-bound page references. Older customized Whiteboard copies must accept the plugin
2522
+ * update before using these interfaces.
2519
2523
  */
2520
- declare const KAY_PLUGIN_SDK_VERSION: "0.52.1";
2524
+ declare const KAY_PLUGIN_SDK_VERSION: "0.53.0";
2521
2525
 
2522
2526
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2523
2527
 
@@ -2560,9 +2564,9 @@ declare interface KayAgentEvents {
2560
2564
  /** This plugin's folder in the session family's shared Whiteboard. */
2561
2565
  declare interface KayAgentFamilyFolder {
2562
2566
  /**
2563
- * The folder's absolute path, created on first use. The plugin that owns the Whiteboard gets
2564
- * the whole family folder; every other plugin gets its own `plugins/<plugin-id>/` inside it.
2565
- * Undefined outside a session.
2567
+ * Absolute path, created on first use; undefined outside a session. A declared and granted
2568
+ * family-root owner receives the whole folder; other plugins receive `plugins/<plugin-id>/`.
2569
+ * Root access checks the live `family-folder.root` grant on every call.
2566
2570
  */
2567
2571
  path(): Promise<string | undefined>;
2568
2572
  }
@@ -5472,6 +5476,9 @@ declare const ResolvedPluginContractV1: z.ZodObject<{
5472
5476
  }, z.core.$strict>>;
5473
5477
  }, z.core.$strict>;
5474
5478
  }, z.core.$strict>>;
5479
+ kayAgentFamilyFolder: z.ZodOptional<z.ZodObject<{
5480
+ scope: z.ZodLiteral<"root">;
5481
+ }, z.core.$strict>>;
5475
5482
  kayAgentUriModules: z.ZodOptional<z.ZodArray<z.ZodObject<{
5476
5483
  revisionBacked: z.ZodOptional<z.ZodLiteral<true>>;
5477
5484
  mailCalibrationSource: z.ZodOptional<z.ZodLiteral<true>>;
@@ -5935,6 +5942,9 @@ declare const ResolvedPluginContractV1: z.ZodObject<{
5935
5942
  schema: z.ZodRecord<z.ZodString, z.ZodType<authoringCommonSchemas.JsonValue, unknown, z.core.$ZodTypeInternals<authoringCommonSchemas.JsonValue, unknown>>>;
5936
5943
  }, z.core.$strict>;
5937
5944
  }, z.core.$strict>>;
5945
+ messageDraft: z.ZodOptional<z.ZodObject<{
5946
+ schemes: z.ZodArray<z.ZodString>;
5947
+ }, z.core.$strict>>;
5938
5948
  store: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
5939
5949
  shape: z.ZodLiteral<"rows">;
5940
5950
  rowsField: z.ZodString;
@@ -5945,7 +5955,6 @@ declare const ResolvedPluginContractV1: z.ZodObject<{
5945
5955
  }, z.core.$strict>>>;
5946
5956
  kayAppWhiteboardTypes: z.ZodOptional<z.ZodArray<z.ZodObject<{
5947
5957
  localId: z.ZodString;
5948
- globalId: z.ZodString;
5949
5958
  displayName: z.ZodString;
5950
5959
  schemaVersion: z.ZodNumber;
5951
5960
  storage: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -5957,6 +5966,12 @@ declare const ResolvedPluginContractV1: z.ZodObject<{
5957
5966
  bodyField: z.ZodString;
5958
5967
  }, z.core.$strict>], "kind">;
5959
5968
  valueSchema: z.ZodRecord<z.ZodString, z.ZodType<authoringCommonSchemas.JsonValue, unknown, z.core.$ZodTypeInternals<authoringCommonSchemas.JsonValue, unknown>>>;
5969
+ directory: z.ZodOptional<z.ZodArray<z.ZodString>>;
5970
+ reference: z.ZodOptional<z.ZodObject<{
5971
+ uriTemplate: z.ZodString;
5972
+ }, z.core.$strict>>;
5973
+ handover: z.ZodOptional<z.ZodLiteral<true>>;
5974
+ globalId: z.ZodString;
5960
5975
  }, z.core.$strict>>>;
5961
5976
  kayAppMcpServers: z.ZodOptional<z.ZodArray<z.ZodObject<{
5962
5977
  name: z.ZodString;
@@ -6013,6 +6028,8 @@ declare const ResolvedPluginContractV1: z.ZodObject<{
6013
6028
  search: z.ZodOptional<z.ZodString>;
6014
6029
  }, z.core.$strict>;
6015
6030
  objectId: z.ZodOptional<z.ZodString>;
6031
+ resourceKind: z.ZodOptional<z.ZodString>;
6032
+ label: z.ZodOptional<z.ZodString>;
6016
6033
  open: z.ZodOptional<z.ZodObject<{
6017
6034
  kind: z.ZodLiteral<"none">;
6018
6035
  }, z.core.$strict>>;
@@ -11847,8 +11864,8 @@ declare const WhiteboardEntryInfo: z.ZodObject<{
11847
11864
  authorSessionId: z.ZodNullable<z.ZodString>;
11848
11865
  }, z.core.$strict>>;
11849
11866
  state: z.ZodEnum<{
11850
- unavailable: "unavailable";
11851
11867
  available: "available";
11868
+ unavailable: "unavailable";
11852
11869
  "unsupported-version": "unsupported-version";
11853
11870
  invalid: "invalid";
11854
11871
  }>;
@@ -11869,8 +11886,8 @@ declare const WhiteboardEntryInspection: z.ZodObject<{
11869
11886
  authorSessionId: z.ZodNullable<z.ZodString>;
11870
11887
  }, z.core.$strict>>;
11871
11888
  state: z.ZodEnum<{
11872
- unavailable: "unavailable";
11873
11889
  available: "available";
11890
+ unavailable: "unavailable";
11874
11891
  "unsupported-version": "unsupported-version";
11875
11892
  invalid: "invalid";
11876
11893
  }>;
@@ -11921,6 +11938,9 @@ declare const WhiteboardTypeInfo: z.ZodObject<{
11921
11938
  displayName: z.ZodString;
11922
11939
  schemaVersion: z.ZodNumber;
11923
11940
  available: z.ZodBoolean;
11941
+ reference: z.ZodOptional<z.ZodObject<{
11942
+ uriTemplate: z.ZodString;
11943
+ }, z.core.$strict>>;
11924
11944
  }, z.core.$strict>;
11925
11945
 
11926
11946
  declare type WhiteboardTypeInfo = Readonly<z.infer<typeof WhiteboardTypeInfo>>;
@@ -2795,8 +2795,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2795
2795
  * 0.52.0 adds plugin-owned operational facts through existing manifests and registrations.
2796
2796
  *
2797
2797
  * 0.52.1 adds owner-qualified page feed and endpoint references and their kay.ui claims.
2798
+ *
2799
+ * 0.53.0 adds declared working-content layouts, family-root authority, draft projection discovery
2800
+ * and session-bound page references. Older customized Whiteboard copies must accept the plugin
2801
+ * update before using these interfaces.
2798
2802
  */
2799
- declare const KAY_PLUGIN_SDK_VERSION: "0.52.1";
2803
+ declare const KAY_PLUGIN_SDK_VERSION: "0.53.0";
2800
2804
 
2801
2805
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2802
2806
 
@@ -2865,9 +2869,9 @@ export declare interface KayAgentEvents {
2865
2869
  /** This plugin's folder in the session family's shared Whiteboard. */
2866
2870
  export declare interface KayAgentFamilyFolder {
2867
2871
  /**
2868
- * The folder's absolute path, created on first use. The plugin that owns the Whiteboard gets
2869
- * the whole family folder; every other plugin gets its own `plugins/<plugin-id>/` inside it.
2870
- * Undefined outside a session.
2872
+ * Absolute path, created on first use; undefined outside a session. A declared and granted
2873
+ * family-root owner receives the whole folder; other plugins receive `plugins/<plugin-id>/`.
2874
+ * Root access checks the live `family-folder.root` grant on every call.
2871
2875
  */
2872
2876
  path(): Promise<string | undefined>;
2873
2877
  }
@@ -5353,6 +5357,10 @@ declare const PluginCapabilityRefusalV1: z.ZodObject<{
5353
5357
  command: z.ZodString;
5354
5358
  args: z.ZodArray<z.ZodString>;
5355
5359
  }, z.core.$strict>], "channel">;
5360
+ }, z.core.$strict>, z.ZodObject<{
5361
+ target: z.ZodLiteral<"kay.agent">;
5362
+ slug: z.ZodLiteral<"family-folder.root">;
5363
+ envelope: z.ZodObject<{}, z.core.$strict>;
5356
5364
  }, z.core.$strict>, z.ZodObject<{
5357
5365
  target: z.ZodEnum<{
5358
5366
  "kay.agent": "kay.agent";
@@ -12084,8 +12092,8 @@ export declare const WhiteboardEntryInfo: z.ZodObject<{
12084
12092
  authorSessionId: z.ZodNullable<z.ZodString>;
12085
12093
  }, z.core.$strict>>;
12086
12094
  state: z.ZodEnum<{
12087
- unavailable: "unavailable";
12088
12095
  available: "available";
12096
+ unavailable: "unavailable";
12089
12097
  "unsupported-version": "unsupported-version";
12090
12098
  invalid: "invalid";
12091
12099
  }>;
@@ -12106,8 +12114,8 @@ export declare const WhiteboardEntryInspection: z.ZodObject<{
12106
12114
  authorSessionId: z.ZodNullable<z.ZodString>;
12107
12115
  }, z.core.$strict>>;
12108
12116
  state: z.ZodEnum<{
12109
- unavailable: "unavailable";
12110
12117
  available: "available";
12118
+ unavailable: "unavailable";
12111
12119
  "unsupported-version": "unsupported-version";
12112
12120
  invalid: "invalid";
12113
12121
  }>;
@@ -12158,6 +12166,9 @@ export declare const WhiteboardTypeInfo: z.ZodObject<{
12158
12166
  displayName: z.ZodString;
12159
12167
  schemaVersion: z.ZodNumber;
12160
12168
  available: z.ZodBoolean;
12169
+ reference: z.ZodOptional<z.ZodObject<{
12170
+ uriTemplate: z.ZodString;
12171
+ }, z.core.$strict>>;
12161
12172
  }, z.core.$strict>;
12162
12173
 
12163
12174
  export declare type WhiteboardTypeInfo = Readonly<z.infer<typeof WhiteboardTypeInfo>>;
package/dist/kay-agent.js CHANGED
@@ -192,6 +192,8 @@ function isLoneCapture(pattern) {
192
192
  return pattern.length === 1 && pattern[0].capture !== void 0 && pattern[0].rest !== true;
193
193
  }
194
194
  function matchParts(pattern, value, separator, captures, foldLiterals = false) {
195
+ if (pattern.length === 0)
196
+ return value === "";
195
197
  const parts = separator === void 0 ? [value] : value.split(separator);
196
198
  let partIndex = 0;
197
199
  for (let i = 0; i < pattern.length; i += 1) {
package/dist/kay-app.d.ts CHANGED
@@ -2911,8 +2911,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2911
2911
  * 0.52.0 adds plugin-owned operational facts through existing manifests and registrations.
2912
2912
  *
2913
2913
  * 0.52.1 adds owner-qualified page feed and endpoint references and their kay.ui claims.
2914
+ *
2915
+ * 0.53.0 adds declared working-content layouts, family-root authority, draft projection discovery
2916
+ * and session-bound page references. Older customized Whiteboard copies must accept the plugin
2917
+ * update before using these interfaces.
2914
2918
  */
2915
- declare const KAY_PLUGIN_SDK_VERSION: "0.52.1";
2919
+ declare const KAY_PLUGIN_SDK_VERSION: "0.53.0";
2916
2920
 
2917
2921
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2918
2922
 
@@ -17301,8 +17305,8 @@ declare const WhiteboardEntryInfo: z.ZodObject<{
17301
17305
  authorSessionId: z.ZodNullable<z.ZodString>;
17302
17306
  }, z.core.$strict>>;
17303
17307
  state: z.ZodEnum<{
17304
- unavailable: "unavailable";
17305
17308
  available: "available";
17309
+ unavailable: "unavailable";
17306
17310
  "unsupported-version": "unsupported-version";
17307
17311
  invalid: "invalid";
17308
17312
  }>;
@@ -17323,8 +17327,8 @@ declare const WhiteboardEntryInspection: z.ZodObject<{
17323
17327
  authorSessionId: z.ZodNullable<z.ZodString>;
17324
17328
  }, z.core.$strict>>;
17325
17329
  state: z.ZodEnum<{
17326
- unavailable: "unavailable";
17327
17330
  available: "available";
17331
+ unavailable: "unavailable";
17328
17332
  "unsupported-version": "unsupported-version";
17329
17333
  invalid: "invalid";
17330
17334
  }>;
@@ -17375,6 +17379,9 @@ export declare const WhiteboardTypeInfo: z.ZodObject<{
17375
17379
  displayName: z.ZodString;
17376
17380
  schemaVersion: z.ZodNumber;
17377
17381
  available: z.ZodBoolean;
17382
+ reference: z.ZodOptional<z.ZodObject<{
17383
+ uriTemplate: z.ZodString;
17384
+ }, z.core.$strict>>;
17378
17385
  }, z.core.$strict>;
17379
17386
 
17380
17387
  export declare type WhiteboardTypeInfo = Readonly<z.infer<typeof WhiteboardTypeInfo>>;
@@ -263,6 +263,8 @@ function isLoneCapture(pattern) {
263
263
  return pattern.length === 1 && pattern[0].capture !== void 0 && pattern[0].rest !== true;
264
264
  }
265
265
  function matchParts(pattern, value, separator, captures, foldLiterals = false) {
266
+ if (pattern.length === 0)
267
+ return value === "";
266
268
  const parts = separator === void 0 ? [value] : value.split(separator);
267
269
  let partIndex = 0;
268
270
  for (let i = 0; i < pattern.length; i += 1) {
@@ -31,8 +31,8 @@ export declare const WhiteboardEntryInfo: z.ZodObject<{
31
31
  authorSessionId: z.ZodNullable<z.ZodString>;
32
32
  }, z.core.$strict>>;
33
33
  state: z.ZodEnum<{
34
- unavailable: "unavailable";
35
34
  available: "available";
35
+ unavailable: "unavailable";
36
36
  "unsupported-version": "unsupported-version";
37
37
  invalid: "invalid";
38
38
  }>;
@@ -53,8 +53,8 @@ export declare const WhiteboardEntryInspection: z.ZodObject<{
53
53
  authorSessionId: z.ZodNullable<z.ZodString>;
54
54
  }, z.core.$strict>>;
55
55
  state: z.ZodEnum<{
56
- unavailable: "unavailable";
57
56
  available: "available";
57
+ unavailable: "unavailable";
58
58
  "unsupported-version": "unsupported-version";
59
59
  invalid: "invalid";
60
60
  }>;
@@ -72,6 +72,9 @@ export declare const WhiteboardTypeInfo: z.ZodObject<{
72
72
  displayName: z.ZodString;
73
73
  schemaVersion: z.ZodNumber;
74
74
  available: z.ZodBoolean;
75
+ reference: z.ZodOptional<z.ZodObject<{
76
+ uriTemplate: z.ZodString;
77
+ }, z.core.$strict>>;
75
78
  }, z.core.$strict>;
76
79
 
77
80
  export declare type WhiteboardTypeInfo = Readonly<z.infer<typeof WhiteboardTypeInfo>>;
@@ -122,6 +122,9 @@ var { NonEmptyString, PluginId, PluginNamespace, LocalContributionId, GlobalCont
122
122
  var canonicalCommonSchemas = createCommonSchemas(true);
123
123
 
124
124
  // packages/plugin-protocol/dist/whiteboard.js
125
+ var WhiteboardEntryReference = z4.strictObject({
126
+ uriTemplate: z4.string().regex(/^[a-z][a-z0-9+.-]*:\/\/[^\s?#{}]+\/\{name\}$/u)
127
+ });
125
128
  var WhiteboardValue = JsonValue;
126
129
  var WhiteboardEntryEnvelope = z4.strictObject({
127
130
  id: NonEmptyString,
@@ -160,7 +163,8 @@ var WhiteboardTypeInfo = z4.strictObject({
160
163
  typeId: GlobalContributionId,
161
164
  displayName: NonEmptyString,
162
165
  schemaVersion: z4.number().int().positive(),
163
- available: z4.boolean()
166
+ available: z4.boolean(),
167
+ reference: WhiteboardEntryReference.optional()
164
168
  });
165
169
  export {
166
170
  JsonValue,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-sdk",
3
- "version": "0.52.1",
3
+ "version": "0.53.0",
4
4
  "description": "The Kay plugin SDK — types and helpers for authoring a Kay directory plugin.",
5
5
  "author": "YakLabs",
6
6
  "type": "module",