@yaklabs-ai/plugin-protocol 0.14.1 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.14.1"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.15.1"
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.14.1",
4
+ "version": "0.15.1",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -74,8 +74,8 @@ export declare const AppDataSourceContribution: z.ZodObject<{
74
74
  localId: z.ZodString;
75
75
  scope: z.ZodEnum<{
76
76
  session: "session";
77
- account: "account";
78
77
  runtime: "runtime";
78
+ account: "account";
79
79
  }>;
80
80
  snapshot: z.ZodObject<{
81
81
  version: z.ZodNumber;
@@ -133,9 +133,9 @@ export declare type AppEventSubscription = z.infer<typeof AppEventSubscription>;
133
133
  * `kay.agent` registration seam only).
134
134
  */
135
135
  export declare const AppUriModuleContribution: z.ZodObject<{
136
+ localId: z.ZodString;
136
137
  displayName: z.ZodOptional<z.ZodString>;
137
138
  schemes: z.ZodArray<z.ZodString>;
138
- localId: z.ZodString;
139
139
  }, z.core.$strict>;
140
140
 
141
141
  export declare type AppUriModuleContribution = z.infer<typeof AppUriModuleContribution>;
@@ -327,6 +327,7 @@ export declare const ArtifactProvenanceCaptureContextSchema: z.ZodObject<{
327
327
  cron: "cron";
328
328
  occurrence: "occurrence";
329
329
  "uri-change": "uri-change";
330
+ "plugin-event": "plugin-event";
330
331
  manual: "manual";
331
332
  }>;
332
333
  }, z.core.$strict>, z.ZodObject<{
@@ -715,6 +716,7 @@ export declare const ArtifactProvenanceEnvelopeV1: z.ZodPipe<z.ZodUnknown, z.Zod
715
716
  cron: "cron";
716
717
  occurrence: "occurrence";
717
718
  "uri-change": "uri-change";
719
+ "plugin-event": "plugin-event";
718
720
  manual: "manual";
719
721
  }>;
720
722
  }, z.core.$strict>, z.ZodObject<{
@@ -1127,6 +1129,7 @@ export declare const ArtifactProvenanceSession: z.ZodObject<{
1127
1129
  cron: "cron";
1128
1130
  occurrence: "occurrence";
1129
1131
  "uri-change": "uri-change";
1132
+ "plugin-event": "plugin-event";
1130
1133
  manual: "manual";
1131
1134
  }>;
1132
1135
  }, z.core.$strict>, z.ZodObject<{
@@ -1767,7 +1770,9 @@ export declare function dedupeClaims(claims: readonly PluginCapabilityClaimV1[])
1767
1770
  /**
1768
1771
  * The one `toolName` a directory plugin may declare for the tool `localId`: every `.` in
1769
1772
  * `namespace` becomes `_`, then one more `_` joins `localId`. The directory verdict drops a tool
1770
- * that declares anything else. Bundled plugins are not held to it.
1773
+ * that declares anything else, except a name the host grandfathers for that plugin (Bonsai's own
1774
+ * plugins keep the names they shipped with before moving to files). Compiled plugins never pass
1775
+ * through the verdict.
1771
1776
  *
1772
1777
  * Injective over every schema-valid pair, so two directory plugins can only derive the same tool
1773
1778
  * name by sharing both namespace and localId. Neither input can contain `_` (`PLUGIN_ID_PATTERN`
@@ -2072,6 +2077,12 @@ export declare interface JudgeKayPluginDirectoryInput {
2072
2077
  * manifest is a refusal naming that commit rather than "not a plugin".
2073
2078
  */
2074
2079
  readonly revision?: string | undefined;
2080
+ /**
2081
+ * The tool names the plugin the manifest names may keep although they are not
2082
+ * {@link deriveDirectoryPluginToolName}'s. The host decides: Bonsai lets its own plugins keep the
2083
+ * names they shipped with before they moved to files (the wave 2 plan's P14). Absent keeps none.
2084
+ */
2085
+ readonly grandfatheredToolNames?: ((pluginId: string) => readonly string[]) | undefined;
2075
2086
  }
2076
2087
 
2077
2088
  /** Maximum UTF-8 JSON size of one plugin app-data live change. */
@@ -2097,7 +2108,7 @@ export declare const KAY_EVENT_PUBLISHER_ID: "kay";
2097
2108
  declare const KAY_PLUGIN_COMPATIBILITY_REFUSAL_CODES: readonly ["unsupported-protocol", "sdk-range-unsatisfied", "sdk-range-unsupported", "host-sdk-version-invalid"];
2098
2109
 
2099
2110
  /** Released SDK contracts still implemented by the host, alongside its current SDK. */
2100
- export declare const KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS: readonly ["0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.9.0", "0.9.1", "0.10.0", "0.11.0", "0.11.1", "0.12.0", "0.12.1", "0.12.2", "0.12.3", "0.12.4", "0.12.5", "0.13.0", "0.13.1", "0.13.2", "0.13.3", "0.13.4", "0.13.5", "0.13.6", "0.13.7", "0.13.8", "0.13.9", "0.13.10", "0.14.0"];
2111
+ export declare const KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS: readonly string[];
2101
2112
 
2102
2113
  /** The file whose presence makes a directory a plugin. A directory without one is not a plugin. */
2103
2114
  export declare const KAY_PLUGIN_MANIFEST_FILENAME = "kay-plugin.json";
@@ -2425,8 +2436,14 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2425
2436
  * 0.14.1 adds the owned-service `kay.app` auth list operation and `listAccounts`.
2426
2437
  * Existing resolve-only `has` callers retain account bounds and now probe metadata without
2427
2438
  * resolving credentials. Plugins using list declare `^0.14.1` so older hosts refuse at load.
2439
+ *
2440
+ * 0.15.0 replaces plugin-event publish arguments and requires resource URI declarations.
2441
+ * Pre-0.15 SDK contracts are no longer retained: their publishers cannot satisfy this contract.
2442
+ *
2443
+ * 0.15.1 adds plugin-event automation conditions and public event-identity run matches.
2444
+ * The host retains 0.15.0; plugins using the new condition declare ^0.15.1.
2428
2445
  */
2429
- export declare const KAY_PLUGIN_SDK_VERSION: "0.14.1";
2446
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.15.1";
2430
2447
 
2431
2448
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2432
2449
 
@@ -2589,16 +2606,16 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2589
2606
  responseSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2590
2607
  }, z.core.$strict>>>;
2591
2608
  uriModules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2609
+ localId: z.ZodString;
2592
2610
  displayName: z.ZodOptional<z.ZodString>;
2593
2611
  schemes: z.ZodArray<z.ZodString>;
2594
- localId: z.ZodString;
2595
2612
  }, z.core.$strict>>>;
2596
2613
  dataSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
2597
2614
  localId: z.ZodString;
2598
2615
  scope: z.ZodEnum<{
2599
2616
  session: "session";
2600
- account: "account";
2601
2617
  runtime: "runtime";
2618
+ account: "account";
2602
2619
  }>;
2603
2620
  snapshot: z.ZodObject<{
2604
2621
  version: z.ZodNumber;
@@ -2648,7 +2665,9 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2648
2665
  displayName: z.ZodOptional<z.ZodString>;
2649
2666
  description: z.ZodOptional<z.ZodString>;
2650
2667
  version: z.ZodDefault<z.ZodNumber>;
2651
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
2668
+ uriScheme: z.ZodString;
2669
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
2670
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2652
2671
  }, z.core.$strict>>>;
2653
2672
  notificationRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2654
2673
  localId: z.ZodString;
@@ -2687,6 +2706,7 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2687
2706
  url: z.ZodString;
2688
2707
  auth: z.ZodOptional<z.ZodEnum<{
2689
2708
  oauth: "oauth";
2709
+ "api-key": "api-key";
2690
2710
  none: "none";
2691
2711
  }>>;
2692
2712
  authService: z.ZodOptional<z.ZodString>;
@@ -2971,16 +2991,16 @@ export declare const KayPluginManifestV1: z.ZodObject<{
2971
2991
  responseSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2972
2992
  }, z.core.$strict>>>;
2973
2993
  uriModules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2994
+ localId: z.ZodString;
2974
2995
  displayName: z.ZodOptional<z.ZodString>;
2975
2996
  schemes: z.ZodArray<z.ZodString>;
2976
- localId: z.ZodString;
2977
2997
  }, z.core.$strict>>>;
2978
2998
  dataSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
2979
2999
  localId: z.ZodString;
2980
3000
  scope: z.ZodEnum<{
2981
3001
  session: "session";
2982
- account: "account";
2983
3002
  runtime: "runtime";
3003
+ account: "account";
2984
3004
  }>;
2985
3005
  snapshot: z.ZodObject<{
2986
3006
  version: z.ZodNumber;
@@ -3030,7 +3050,9 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3030
3050
  displayName: z.ZodOptional<z.ZodString>;
3031
3051
  description: z.ZodOptional<z.ZodString>;
3032
3052
  version: z.ZodDefault<z.ZodNumber>;
3033
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
3053
+ uriScheme: z.ZodString;
3054
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
3055
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
3034
3056
  }, z.core.$strict>>>;
3035
3057
  notificationRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
3036
3058
  localId: z.ZodString;
@@ -3069,6 +3091,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3069
3091
  url: z.ZodString;
3070
3092
  auth: z.ZodOptional<z.ZodEnum<{
3071
3093
  oauth: "oauth";
3094
+ "api-key": "api-key";
3072
3095
  none: "none";
3073
3096
  }>>;
3074
3097
  authService: z.ZodOptional<z.ZodString>;
@@ -3175,6 +3198,8 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3175
3198
  "skills.read": "skills.read";
3176
3199
  "automations.run": "automations.run";
3177
3200
  "navigation.open-session": "navigation.open-session";
3201
+ "artifacts.read": "artifacts.read";
3202
+ "artifacts.preview": "artifacts.preview";
3178
3203
  "cost.read": "cost.read";
3179
3204
  "billing.read": "billing.read";
3180
3205
  "context.read": "context.read";
@@ -3187,6 +3212,16 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3187
3212
  "workspace.arrange": "workspace.arrange";
3188
3213
  }>>>;
3189
3214
  }, z.core.$strict>>;
3215
+ activityRail: z.ZodOptional<z.ZodObject<{
3216
+ section: z.ZodOptional<z.ZodEnum<{
3217
+ primary: "primary";
3218
+ plugins: "plugins";
3219
+ }>>;
3220
+ order: z.ZodOptional<z.ZodNumber>;
3221
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
3222
+ svg: z.ZodString;
3223
+ }, z.core.$strict>]>>;
3224
+ }, z.core.$strict>>;
3190
3225
  }, z.core.$strict>>>;
3191
3226
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
3192
3227
  localId: z.ZodString;
@@ -3696,6 +3731,8 @@ export declare const KayUiAppHostCapability: z.ZodEnum<{
3696
3731
  "skills.read": "skills.read";
3697
3732
  "automations.run": "automations.run";
3698
3733
  "navigation.open-session": "navigation.open-session";
3734
+ "artifacts.read": "artifacts.read";
3735
+ "artifacts.preview": "artifacts.preview";
3699
3736
  "cost.read": "cost.read";
3700
3737
  "billing.read": "billing.read";
3701
3738
  "context.read": "context.read";
@@ -3845,6 +3882,8 @@ export declare const KayUiTargetManifest: z.ZodObject<{
3845
3882
  "skills.read": "skills.read";
3846
3883
  "automations.run": "automations.run";
3847
3884
  "navigation.open-session": "navigation.open-session";
3885
+ "artifacts.read": "artifacts.read";
3886
+ "artifacts.preview": "artifacts.preview";
3848
3887
  "cost.read": "cost.read";
3849
3888
  "billing.read": "billing.read";
3850
3889
  "context.read": "context.read";
@@ -3857,6 +3896,16 @@ export declare const KayUiTargetManifest: z.ZodObject<{
3857
3896
  "workspace.arrange": "workspace.arrange";
3858
3897
  }>>>;
3859
3898
  }, z.core.$strict>>;
3899
+ activityRail: z.ZodOptional<z.ZodObject<{
3900
+ section: z.ZodOptional<z.ZodEnum<{
3901
+ primary: "primary";
3902
+ plugins: "plugins";
3903
+ }>>;
3904
+ order: z.ZodOptional<z.ZodNumber>;
3905
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
3906
+ svg: z.ZodString;
3907
+ }, z.core.$strict>]>>;
3908
+ }, z.core.$strict>>;
3860
3909
  }, z.core.$strict>>>;
3861
3910
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
3862
3911
  localId: z.ZodString;
@@ -3924,9 +3973,30 @@ export declare const LocalContributionId: z.ZodString;
3924
3973
 
3925
3974
  export declare type LocalContributionId = z.infer<typeof LocalContributionId>;
3926
3975
 
3927
- /** Absent ⇒ `"oauth"` (resolution always carries the applied default). */
3976
+ /**
3977
+ * The auth scheme kind each authenticated {@link McpServerAuthMode} signs in through. Composition
3978
+ * keeps a server only when its auth service declares exactly one scheme of this kind, and the MCP
3979
+ * credential port binds the server to that scheme, so the two read this one table.
3980
+ */
3981
+ export declare const MCP_SIGN_IN_SCHEME_KIND: {
3982
+ readonly oauth: "delegated";
3983
+ readonly "api-key": "api-key";
3984
+ };
3985
+
3986
+ /**
3987
+ * How a vendored MCP server authenticates. Absent ⇒ `"oauth"` (resolution always carries the
3988
+ * applied default).
3989
+ *
3990
+ * - `"oauth"`: the server runs its own OAuth. The owning auth service declares exactly one
3991
+ * `delegated` scheme, and the daemon's MCP host runs the sign-in.
3992
+ * - `"api-key"`: the person pastes a key the vendor issued. The owning auth service declares exactly
3993
+ * one `api-key` scheme, and the host sends the stored key as `Authorization: Bearer <key>` on every
3994
+ * request. Only for a vendor whose hosted server takes a static bearer token.
3995
+ * - `"none"`: the server needs no credential.
3996
+ */
3928
3997
  export declare const McpServerAuthMode: z.ZodEnum<{
3929
3998
  oauth: "oauth";
3999
+ "api-key": "api-key";
3930
4000
  none: "none";
3931
4001
  }>;
3932
4002
 
@@ -3936,9 +4006,10 @@ export declare type McpServerAuthMode = z.infer<typeof McpServerAuthMode>;
3936
4006
  * A vendored MCP server a plugin ships: a pointer to a VENDOR-HOSTED MCP endpoint, never a command
3937
4007
  * this host would spawn. v1 is hosted Streamable HTTP only — no stdio (`command`/`args`/`env`) and
3938
4008
  * no custom headers — enforced by this being a `strictObject`, so a stdio-shaped entry fails
3939
- * schema outright rather than being silently ignored. Effective OAuth (explicit `auth: "oauth"`
3940
- * or omitted `auth`) requires `authService`; `auth: "none"` may omit it. `authService` is a local
3941
- * id that must resolve within this same manifest; unlike `uriModule.authService`, qualified foreign
4009
+ * schema outright rather than being silently ignored. Every authenticated mode (`"oauth"`, which is
4010
+ * also the default, and `"api-key"`) requires `authService`; `auth: "none"` may omit it.
4011
+ * `authService` is a local id that must resolve within this same manifest; unlike
4012
+ * `uriModule.authService`, qualified foreign
3942
4013
  * service refs are not permitted because the MCP binding belongs to the plugin that ships it.
3943
4014
  * A declared server is hosted
3944
4015
  * only for a plugin holding `mcp.host-server` for its name and URL (the release's own plugins hold
@@ -3948,6 +4019,7 @@ export declare const McpServerContribution: z.ZodObject<{
3948
4019
  url: z.ZodString;
3949
4020
  auth: z.ZodOptional<z.ZodEnum<{
3950
4021
  oauth: "oauth";
4022
+ "api-key": "api-key";
3951
4023
  none: "none";
3952
4024
  }>>;
3953
4025
  authService: z.ZodOptional<z.ZodString>;
@@ -3964,6 +4036,7 @@ export declare const McpServerContributions: z.ZodRecord<z.ZodString, z.ZodObjec
3964
4036
  url: z.ZodString;
3965
4037
  auth: z.ZodOptional<z.ZodEnum<{
3966
4038
  oauth: "oauth";
4039
+ "api-key": "api-key";
3967
4040
  none: "none";
3968
4041
  }>>;
3969
4042
  authService: z.ZodOptional<z.ZodString>;
@@ -4090,6 +4163,8 @@ export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network
4090
4163
  * hostile or accidental multi-megabyte error can never blow up a log line or a render surface. */
4091
4164
  export declare const PLUGIN_DIAGNOSTIC_MESSAGE_CAP = 300;
4092
4165
 
4166
+ export declare const PLUGIN_EVENT_ID_MAX_BYTES = 1024;
4167
+
4093
4168
  /** The root `<svg>` attribute a tile icon declares itself with. */
4094
4169
  export declare const PLUGIN_ICON_SHAPE_ATTRIBUTE = "data-icon-shape";
4095
4170
 
@@ -5627,11 +5702,86 @@ export declare const PluginEventDefinitionContribution: z.ZodObject<{
5627
5702
  displayName: z.ZodOptional<z.ZodString>;
5628
5703
  description: z.ZodOptional<z.ZodString>;
5629
5704
  version: z.ZodDefault<z.ZodNumber>;
5630
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5705
+ uriScheme: z.ZodString;
5706
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
5707
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
5631
5708
  }, z.core.$strict>;
5632
5709
 
5633
5710
  export declare type PluginEventDefinitionContribution = z.infer<typeof PluginEventDefinitionContribution>;
5634
5711
 
5712
+ export declare const PluginEventEnvelope: z.ZodObject<{
5713
+ id: z.ZodString;
5714
+ localId: z.ZodString;
5715
+ type: z.ZodString;
5716
+ version: z.ZodNumber;
5717
+ uri: z.ZodString;
5718
+ related: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
5719
+ key: z.ZodOptional<z.ZodString>;
5720
+ occurredAt: z.ZodISODateTime;
5721
+ publishedAt: z.ZodISODateTime;
5722
+ source: z.ZodObject<{
5723
+ poller: z.ZodOptional<z.ZodString>;
5724
+ runId: z.ZodOptional<z.ZodString>;
5725
+ layer: z.ZodLiteral<"runtime">;
5726
+ pluginId: z.ZodString;
5727
+ sessionId: z.ZodOptional<z.ZodString>;
5728
+ }, z.core.$strict>;
5729
+ payload: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5730
+ }, z.core.$strict>;
5731
+
5732
+ export declare type PluginEventEnvelope = z.infer<typeof PluginEventEnvelope>;
5733
+
5734
+ export declare const PluginEventId: z.ZodString;
5735
+
5736
+ export declare type PluginEventId = z.infer<typeof PluginEventId>;
5737
+
5738
+ export declare const PluginEventLocalId: z.ZodString;
5739
+
5740
+ export declare type PluginEventLocalId = z.infer<typeof PluginEventLocalId>;
5741
+
5742
+ export declare const PluginEventPublishInput: z.ZodObject<{
5743
+ uri: z.ZodString;
5744
+ related: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
5745
+ key: z.ZodOptional<z.ZodString>;
5746
+ occurredAt: z.ZodOptional<z.ZodISODateTime>;
5747
+ source: z.ZodOptional<z.ZodObject<{
5748
+ poller: z.ZodOptional<z.ZodString>;
5749
+ runId: z.ZodOptional<z.ZodString>;
5750
+ }, z.core.$strict>>;
5751
+ payload: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5752
+ }, z.core.$strict>;
5753
+
5754
+ export declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
5755
+
5756
+ export declare const PluginEventPublishSource: z.ZodObject<{
5757
+ poller: z.ZodOptional<z.ZodString>;
5758
+ runId: z.ZodOptional<z.ZodString>;
5759
+ }, z.core.$strict>;
5760
+
5761
+ export declare type PluginEventPublishSource = z.infer<typeof PluginEventPublishSource>;
5762
+
5763
+ export declare const PluginEventRelated: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
5764
+
5765
+ export declare type PluginEventRelated = z.infer<typeof PluginEventRelated>;
5766
+
5767
+ export declare const PluginEventSource: z.ZodObject<{
5768
+ poller: z.ZodOptional<z.ZodString>;
5769
+ runId: z.ZodOptional<z.ZodString>;
5770
+ layer: z.ZodLiteral<"runtime">;
5771
+ pluginId: z.ZodString;
5772
+ sessionId: z.ZodOptional<z.ZodString>;
5773
+ }, z.core.$strict>;
5774
+
5775
+ export declare type PluginEventSource = z.infer<typeof PluginEventSource>;
5776
+
5777
+ export declare const PluginEventTimestamp: z.ZodISODateTime;
5778
+
5779
+ export declare type PluginEventTimestamp = z.infer<typeof PluginEventTimestamp>;
5780
+
5781
+ export declare const PluginEventUri: z.ZodString;
5782
+
5783
+ export declare type PluginEventUri = z.infer<typeof PluginEventUri>;
5784
+
5635
5785
  /**
5636
5786
  * How the host connects an `external-cli` scheme (SDK 0.13.10). Bonsai reads it for its own plugins
5637
5787
  * only; any other plugin's is ignored, with a load diagnostic.
@@ -6617,8 +6767,8 @@ export declare const ResolvedKayAppDataSource: z.ZodObject<{
6617
6767
  globalId: z.ZodString;
6618
6768
  scope: z.ZodEnum<{
6619
6769
  session: "session";
6620
- account: "account";
6621
6770
  runtime: "runtime";
6771
+ account: "account";
6622
6772
  }>;
6623
6773
  snapshot: z.ZodObject<{
6624
6774
  version: z.ZodNumber;
@@ -6670,6 +6820,7 @@ export declare const ResolvedKayAppMcpServer: z.ZodObject<{
6670
6820
  url: z.ZodString;
6671
6821
  auth: z.ZodEnum<{
6672
6822
  oauth: "oauth";
6823
+ "api-key": "api-key";
6673
6824
  none: "none";
6674
6825
  }>;
6675
6826
  authServiceId: z.ZodOptional<z.ZodString>;
@@ -6715,6 +6866,16 @@ export declare const ResolvedKayUiApp: z.ZodObject<{
6715
6866
  localId: z.ZodString;
6716
6867
  globalId: z.ZodString;
6717
6868
  displayName: z.ZodString;
6869
+ activityRail: z.ZodOptional<z.ZodObject<{
6870
+ section: z.ZodOptional<z.ZodEnum<{
6871
+ primary: "primary";
6872
+ plugins: "plugins";
6873
+ }>>;
6874
+ order: z.ZodOptional<z.ZodNumber>;
6875
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
6876
+ svg: z.ZodString;
6877
+ }, z.core.$strict>]>>;
6878
+ }, z.core.$strict>>;
6718
6879
  description: z.ZodOptional<z.ZodString>;
6719
6880
  icon: z.ZodOptional<z.ZodString>;
6720
6881
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -6736,6 +6897,8 @@ export declare const ResolvedKayUiApp: z.ZodObject<{
6736
6897
  "skills.read": "skills.read";
6737
6898
  "automations.run": "automations.run";
6738
6899
  "navigation.open-session": "navigation.open-session";
6900
+ "artifacts.read": "artifacts.read";
6901
+ "artifacts.preview": "artifacts.preview";
6739
6902
  "cost.read": "cost.read";
6740
6903
  "billing.read": "billing.read";
6741
6904
  "context.read": "context.read";
@@ -7561,8 +7724,8 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7561
7724
  globalId: z.ZodString;
7562
7725
  scope: z.ZodEnum<{
7563
7726
  session: "session";
7564
- account: "account";
7565
7727
  runtime: "runtime";
7728
+ account: "account";
7566
7729
  }>;
7567
7730
  snapshot: z.ZodObject<{
7568
7731
  version: z.ZodNumber;
@@ -7614,6 +7777,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7614
7777
  url: z.ZodString;
7615
7778
  auth: z.ZodEnum<{
7616
7779
  oauth: "oauth";
7780
+ "api-key": "api-key";
7617
7781
  none: "none";
7618
7782
  }>;
7619
7783
  authServiceId: z.ZodOptional<z.ZodString>;
@@ -7659,6 +7823,16 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7659
7823
  localId: z.ZodString;
7660
7824
  globalId: z.ZodString;
7661
7825
  displayName: z.ZodString;
7826
+ activityRail: z.ZodOptional<z.ZodObject<{
7827
+ section: z.ZodOptional<z.ZodEnum<{
7828
+ primary: "primary";
7829
+ plugins: "plugins";
7830
+ }>>;
7831
+ order: z.ZodOptional<z.ZodNumber>;
7832
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
7833
+ svg: z.ZodString;
7834
+ }, z.core.$strict>]>>;
7835
+ }, z.core.$strict>>;
7662
7836
  description: z.ZodOptional<z.ZodString>;
7663
7837
  icon: z.ZodOptional<z.ZodString>;
7664
7838
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -7680,6 +7854,8 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7680
7854
  "skills.read": "skills.read";
7681
7855
  "automations.run": "automations.run";
7682
7856
  "navigation.open-session": "navigation.open-session";
7857
+ "artifacts.read": "artifacts.read";
7858
+ "artifacts.preview": "artifacts.preview";
7683
7859
  "cost.read": "cost.read";
7684
7860
  "billing.read": "billing.read";
7685
7861
  "context.read": "context.read";
@@ -8240,7 +8416,7 @@ export declare function resolveGlobalContributionId(namespace: PluginNamespace,
8240
8416
 
8241
8417
  export declare function resolveKayPluginContractV1(manifest: KayPluginManifestV1): ResolvedPluginContractV1;
8242
8418
 
8243
- export declare function resolvePluginEventType(namespace: PluginNamespace, localId: LocalContributionId): GlobalContributionId;
8419
+ export declare function resolvePluginEventType(namespace: PluginNamespace, localId: PluginEventLocalId): GlobalContributionId;
8244
8420
 
8245
8421
  export declare function resolvePluginNamespace(pluginId: PluginNamespace, namespace?: PluginNamespace): PluginNamespace;
8246
8422
 
@@ -8563,6 +8739,7 @@ export declare const SessionCreator: z.ZodDiscriminatedUnion<[z.ZodObject<{
8563
8739
  cron: "cron";
8564
8740
  occurrence: "occurrence";
8565
8741
  "uri-change": "uri-change";
8742
+ "plugin-event": "plugin-event";
8566
8743
  manual: "manual";
8567
8744
  }>;
8568
8745
  }, z.core.$strict>, z.ZodObject<{
@@ -8707,6 +8884,7 @@ export declare const SessionProvenanceRecord: z.ZodObject<{
8707
8884
  cron: "cron";
8708
8885
  occurrence: "occurrence";
8709
8886
  "uri-change": "uri-change";
8887
+ "plugin-event": "plugin-event";
8710
8888
  manual: "manual";
8711
8889
  }>;
8712
8890
  }, z.core.$strict>, z.ZodObject<{
@@ -9209,12 +9387,28 @@ export declare interface TurnPacketMessage {
9209
9387
  readonly origin: TurnMessageOrigin;
9210
9388
  }
9211
9389
 
9390
+ /** An optional direct destination on the host activity rail; no secondary panel. */
9391
+ export declare const UiAppActivityRail: z.ZodObject<{
9392
+ section: z.ZodOptional<z.ZodEnum<{
9393
+ primary: "primary";
9394
+ plugins: "plugins";
9395
+ }>>;
9396
+ order: z.ZodOptional<z.ZodNumber>;
9397
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
9398
+ svg: z.ZodString;
9399
+ }, z.core.$strict>]>>;
9400
+ }, z.core.$strict>;
9401
+
9402
+ export declare type UiAppActivityRail = z.infer<typeof UiAppActivityRail>;
9403
+
9212
9404
  export declare const UiAppCapabilities: z.ZodObject<{
9213
9405
  endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
9214
9406
  host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
9215
9407
  "skills.read": "skills.read";
9216
9408
  "automations.run": "automations.run";
9217
9409
  "navigation.open-session": "navigation.open-session";
9410
+ "artifacts.read": "artifacts.read";
9411
+ "artifacts.preview": "artifacts.preview";
9218
9412
  "cost.read": "cost.read";
9219
9413
  "billing.read": "billing.read";
9220
9414
  "context.read": "context.read";
@@ -9251,6 +9445,8 @@ export declare const UiAppContribution: z.ZodObject<{
9251
9445
  "skills.read": "skills.read";
9252
9446
  "automations.run": "automations.run";
9253
9447
  "navigation.open-session": "navigation.open-session";
9448
+ "artifacts.read": "artifacts.read";
9449
+ "artifacts.preview": "artifacts.preview";
9254
9450
  "cost.read": "cost.read";
9255
9451
  "billing.read": "billing.read";
9256
9452
  "context.read": "context.read";
@@ -9263,6 +9459,16 @@ export declare const UiAppContribution: z.ZodObject<{
9263
9459
  "workspace.arrange": "workspace.arrange";
9264
9460
  }>>>;
9265
9461
  }, z.core.$strict>>;
9462
+ activityRail: z.ZodOptional<z.ZodObject<{
9463
+ section: z.ZodOptional<z.ZodEnum<{
9464
+ primary: "primary";
9465
+ plugins: "plugins";
9466
+ }>>;
9467
+ order: z.ZodOptional<z.ZodNumber>;
9468
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
9469
+ svg: z.ZodString;
9470
+ }, z.core.$strict>]>>;
9471
+ }, z.core.$strict>>;
9266
9472
  }, z.core.$strict>;
9267
9473
 
9268
9474
  export declare type UiAppContribution = z.infer<typeof UiAppContribution>;