@yaklabs-ai/plugin-protocol 0.14.1 → 0.15.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.14.1"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.15.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.14.1",
4
+ "version": "0.15.0",
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>;
@@ -1767,7 +1767,9 @@ export declare function dedupeClaims(claims: readonly PluginCapabilityClaimV1[])
1767
1767
  /**
1768
1768
  * The one `toolName` a directory plugin may declare for the tool `localId`: every `.` in
1769
1769
  * `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.
1770
+ * that declares anything else, except a name the host grandfathers for that plugin (Bonsai's own
1771
+ * plugins keep the names they shipped with before moving to files). Compiled plugins never pass
1772
+ * through the verdict.
1771
1773
  *
1772
1774
  * Injective over every schema-valid pair, so two directory plugins can only derive the same tool
1773
1775
  * name by sharing both namespace and localId. Neither input can contain `_` (`PLUGIN_ID_PATTERN`
@@ -2072,6 +2074,12 @@ export declare interface JudgeKayPluginDirectoryInput {
2072
2074
  * manifest is a refusal naming that commit rather than "not a plugin".
2073
2075
  */
2074
2076
  readonly revision?: string | undefined;
2077
+ /**
2078
+ * The tool names the plugin the manifest names may keep although they are not
2079
+ * {@link deriveDirectoryPluginToolName}'s. The host decides: Bonsai lets its own plugins keep the
2080
+ * names they shipped with before they moved to files (the wave 2 plan's P14). Absent keeps none.
2081
+ */
2082
+ readonly grandfatheredToolNames?: ((pluginId: string) => readonly string[]) | undefined;
2075
2083
  }
2076
2084
 
2077
2085
  /** Maximum UTF-8 JSON size of one plugin app-data live change. */
@@ -2097,7 +2105,7 @@ export declare const KAY_EVENT_PUBLISHER_ID: "kay";
2097
2105
  declare const KAY_PLUGIN_COMPATIBILITY_REFUSAL_CODES: readonly ["unsupported-protocol", "sdk-range-unsatisfied", "sdk-range-unsupported", "host-sdk-version-invalid"];
2098
2106
 
2099
2107
  /** 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"];
2108
+ export declare const KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS: readonly string[];
2101
2109
 
2102
2110
  /** The file whose presence makes a directory a plugin. A directory without one is not a plugin. */
2103
2111
  export declare const KAY_PLUGIN_MANIFEST_FILENAME = "kay-plugin.json";
@@ -2425,8 +2433,11 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2425
2433
  * 0.14.1 adds the owned-service `kay.app` auth list operation and `listAccounts`.
2426
2434
  * Existing resolve-only `has` callers retain account bounds and now probe metadata without
2427
2435
  * resolving credentials. Plugins using list declare `^0.14.1` so older hosts refuse at load.
2436
+ *
2437
+ * 0.15.0 replaces plugin-event publish arguments and requires resource URI declarations.
2438
+ * Older SDK contracts are no longer retained: their publishers cannot satisfy this contract.
2428
2439
  */
2429
- export declare const KAY_PLUGIN_SDK_VERSION: "0.14.1";
2440
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.15.0";
2430
2441
 
2431
2442
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2432
2443
 
@@ -2589,16 +2600,16 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2589
2600
  responseSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2590
2601
  }, z.core.$strict>>>;
2591
2602
  uriModules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2603
+ localId: z.ZodString;
2592
2604
  displayName: z.ZodOptional<z.ZodString>;
2593
2605
  schemes: z.ZodArray<z.ZodString>;
2594
- localId: z.ZodString;
2595
2606
  }, z.core.$strict>>>;
2596
2607
  dataSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
2597
2608
  localId: z.ZodString;
2598
2609
  scope: z.ZodEnum<{
2599
2610
  session: "session";
2600
- account: "account";
2601
2611
  runtime: "runtime";
2612
+ account: "account";
2602
2613
  }>;
2603
2614
  snapshot: z.ZodObject<{
2604
2615
  version: z.ZodNumber;
@@ -2648,7 +2659,9 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2648
2659
  displayName: z.ZodOptional<z.ZodString>;
2649
2660
  description: z.ZodOptional<z.ZodString>;
2650
2661
  version: z.ZodDefault<z.ZodNumber>;
2651
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
2662
+ uriScheme: z.ZodString;
2663
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
2664
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2652
2665
  }, z.core.$strict>>>;
2653
2666
  notificationRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2654
2667
  localId: z.ZodString;
@@ -2687,6 +2700,7 @@ export declare const KayAppTargetManifest: z.ZodObject<{
2687
2700
  url: z.ZodString;
2688
2701
  auth: z.ZodOptional<z.ZodEnum<{
2689
2702
  oauth: "oauth";
2703
+ "api-key": "api-key";
2690
2704
  none: "none";
2691
2705
  }>>;
2692
2706
  authService: z.ZodOptional<z.ZodString>;
@@ -2971,16 +2985,16 @@ export declare const KayPluginManifestV1: z.ZodObject<{
2971
2985
  responseSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
2972
2986
  }, z.core.$strict>>>;
2973
2987
  uriModules: z.ZodOptional<z.ZodArray<z.ZodObject<{
2988
+ localId: z.ZodString;
2974
2989
  displayName: z.ZodOptional<z.ZodString>;
2975
2990
  schemes: z.ZodArray<z.ZodString>;
2976
- localId: z.ZodString;
2977
2991
  }, z.core.$strict>>>;
2978
2992
  dataSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
2979
2993
  localId: z.ZodString;
2980
2994
  scope: z.ZodEnum<{
2981
2995
  session: "session";
2982
- account: "account";
2983
2996
  runtime: "runtime";
2997
+ account: "account";
2984
2998
  }>;
2985
2999
  snapshot: z.ZodObject<{
2986
3000
  version: z.ZodNumber;
@@ -3030,7 +3044,9 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3030
3044
  displayName: z.ZodOptional<z.ZodString>;
3031
3045
  description: z.ZodOptional<z.ZodString>;
3032
3046
  version: z.ZodDefault<z.ZodNumber>;
3033
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
3047
+ uriScheme: z.ZodString;
3048
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
3049
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
3034
3050
  }, z.core.$strict>>>;
3035
3051
  notificationRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
3036
3052
  localId: z.ZodString;
@@ -3069,6 +3085,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3069
3085
  url: z.ZodString;
3070
3086
  auth: z.ZodOptional<z.ZodEnum<{
3071
3087
  oauth: "oauth";
3088
+ "api-key": "api-key";
3072
3089
  none: "none";
3073
3090
  }>>;
3074
3091
  authService: z.ZodOptional<z.ZodString>;
@@ -3175,6 +3192,8 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3175
3192
  "skills.read": "skills.read";
3176
3193
  "automations.run": "automations.run";
3177
3194
  "navigation.open-session": "navigation.open-session";
3195
+ "artifacts.read": "artifacts.read";
3196
+ "artifacts.preview": "artifacts.preview";
3178
3197
  "cost.read": "cost.read";
3179
3198
  "billing.read": "billing.read";
3180
3199
  "context.read": "context.read";
@@ -3187,6 +3206,16 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3187
3206
  "workspace.arrange": "workspace.arrange";
3188
3207
  }>>>;
3189
3208
  }, z.core.$strict>>;
3209
+ activityRail: z.ZodOptional<z.ZodObject<{
3210
+ section: z.ZodOptional<z.ZodEnum<{
3211
+ primary: "primary";
3212
+ plugins: "plugins";
3213
+ }>>;
3214
+ order: z.ZodOptional<z.ZodNumber>;
3215
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
3216
+ svg: z.ZodString;
3217
+ }, z.core.$strict>]>>;
3218
+ }, z.core.$strict>>;
3190
3219
  }, z.core.$strict>>>;
3191
3220
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
3192
3221
  localId: z.ZodString;
@@ -3696,6 +3725,8 @@ export declare const KayUiAppHostCapability: z.ZodEnum<{
3696
3725
  "skills.read": "skills.read";
3697
3726
  "automations.run": "automations.run";
3698
3727
  "navigation.open-session": "navigation.open-session";
3728
+ "artifacts.read": "artifacts.read";
3729
+ "artifacts.preview": "artifacts.preview";
3699
3730
  "cost.read": "cost.read";
3700
3731
  "billing.read": "billing.read";
3701
3732
  "context.read": "context.read";
@@ -3845,6 +3876,8 @@ export declare const KayUiTargetManifest: z.ZodObject<{
3845
3876
  "skills.read": "skills.read";
3846
3877
  "automations.run": "automations.run";
3847
3878
  "navigation.open-session": "navigation.open-session";
3879
+ "artifacts.read": "artifacts.read";
3880
+ "artifacts.preview": "artifacts.preview";
3848
3881
  "cost.read": "cost.read";
3849
3882
  "billing.read": "billing.read";
3850
3883
  "context.read": "context.read";
@@ -3857,6 +3890,16 @@ export declare const KayUiTargetManifest: z.ZodObject<{
3857
3890
  "workspace.arrange": "workspace.arrange";
3858
3891
  }>>>;
3859
3892
  }, z.core.$strict>>;
3893
+ activityRail: z.ZodOptional<z.ZodObject<{
3894
+ section: z.ZodOptional<z.ZodEnum<{
3895
+ primary: "primary";
3896
+ plugins: "plugins";
3897
+ }>>;
3898
+ order: z.ZodOptional<z.ZodNumber>;
3899
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
3900
+ svg: z.ZodString;
3901
+ }, z.core.$strict>]>>;
3902
+ }, z.core.$strict>>;
3860
3903
  }, z.core.$strict>>>;
3861
3904
  themes: z.ZodOptional<z.ZodArray<z.ZodObject<{
3862
3905
  localId: z.ZodString;
@@ -3924,9 +3967,30 @@ export declare const LocalContributionId: z.ZodString;
3924
3967
 
3925
3968
  export declare type LocalContributionId = z.infer<typeof LocalContributionId>;
3926
3969
 
3927
- /** Absent ⇒ `"oauth"` (resolution always carries the applied default). */
3970
+ /**
3971
+ * The auth scheme kind each authenticated {@link McpServerAuthMode} signs in through. Composition
3972
+ * keeps a server only when its auth service declares exactly one scheme of this kind, and the MCP
3973
+ * credential port binds the server to that scheme, so the two read this one table.
3974
+ */
3975
+ export declare const MCP_SIGN_IN_SCHEME_KIND: {
3976
+ readonly oauth: "delegated";
3977
+ readonly "api-key": "api-key";
3978
+ };
3979
+
3980
+ /**
3981
+ * How a vendored MCP server authenticates. Absent ⇒ `"oauth"` (resolution always carries the
3982
+ * applied default).
3983
+ *
3984
+ * - `"oauth"`: the server runs its own OAuth. The owning auth service declares exactly one
3985
+ * `delegated` scheme, and the daemon's MCP host runs the sign-in.
3986
+ * - `"api-key"`: the person pastes a key the vendor issued. The owning auth service declares exactly
3987
+ * one `api-key` scheme, and the host sends the stored key as `Authorization: Bearer <key>` on every
3988
+ * request. Only for a vendor whose hosted server takes a static bearer token.
3989
+ * - `"none"`: the server needs no credential.
3990
+ */
3928
3991
  export declare const McpServerAuthMode: z.ZodEnum<{
3929
3992
  oauth: "oauth";
3993
+ "api-key": "api-key";
3930
3994
  none: "none";
3931
3995
  }>;
3932
3996
 
@@ -3936,9 +4000,10 @@ export declare type McpServerAuthMode = z.infer<typeof McpServerAuthMode>;
3936
4000
  * A vendored MCP server a plugin ships: a pointer to a VENDOR-HOSTED MCP endpoint, never a command
3937
4001
  * this host would spawn. v1 is hosted Streamable HTTP only — no stdio (`command`/`args`/`env`) and
3938
4002
  * 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
4003
+ * schema outright rather than being silently ignored. Every authenticated mode (`"oauth"`, which is
4004
+ * also the default, and `"api-key"`) requires `authService`; `auth: "none"` may omit it.
4005
+ * `authService` is a local id that must resolve within this same manifest; unlike
4006
+ * `uriModule.authService`, qualified foreign
3942
4007
  * service refs are not permitted because the MCP binding belongs to the plugin that ships it.
3943
4008
  * A declared server is hosted
3944
4009
  * only for a plugin holding `mcp.host-server` for its name and URL (the release's own plugins hold
@@ -3948,6 +4013,7 @@ export declare const McpServerContribution: z.ZodObject<{
3948
4013
  url: z.ZodString;
3949
4014
  auth: z.ZodOptional<z.ZodEnum<{
3950
4015
  oauth: "oauth";
4016
+ "api-key": "api-key";
3951
4017
  none: "none";
3952
4018
  }>>;
3953
4019
  authService: z.ZodOptional<z.ZodString>;
@@ -3964,6 +4030,7 @@ export declare const McpServerContributions: z.ZodRecord<z.ZodString, z.ZodObjec
3964
4030
  url: z.ZodString;
3965
4031
  auth: z.ZodOptional<z.ZodEnum<{
3966
4032
  oauth: "oauth";
4033
+ "api-key": "api-key";
3967
4034
  none: "none";
3968
4035
  }>>;
3969
4036
  authService: z.ZodOptional<z.ZodString>;
@@ -4090,6 +4157,8 @@ export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network
4090
4157
  * hostile or accidental multi-megabyte error can never blow up a log line or a render surface. */
4091
4158
  export declare const PLUGIN_DIAGNOSTIC_MESSAGE_CAP = 300;
4092
4159
 
4160
+ export declare const PLUGIN_EVENT_ID_MAX_BYTES = 1024;
4161
+
4093
4162
  /** The root `<svg>` attribute a tile icon declares itself with. */
4094
4163
  export declare const PLUGIN_ICON_SHAPE_ATTRIBUTE = "data-icon-shape";
4095
4164
 
@@ -5627,11 +5696,86 @@ export declare const PluginEventDefinitionContribution: z.ZodObject<{
5627
5696
  displayName: z.ZodOptional<z.ZodString>;
5628
5697
  description: z.ZodOptional<z.ZodString>;
5629
5698
  version: z.ZodDefault<z.ZodNumber>;
5630
- payloadSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5699
+ uriScheme: z.ZodString;
5700
+ relatedKeys: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
5701
+ payloadSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>>;
5631
5702
  }, z.core.$strict>;
5632
5703
 
5633
5704
  export declare type PluginEventDefinitionContribution = z.infer<typeof PluginEventDefinitionContribution>;
5634
5705
 
5706
+ export declare const PluginEventEnvelope: z.ZodObject<{
5707
+ id: z.ZodString;
5708
+ localId: z.ZodString;
5709
+ type: z.ZodString;
5710
+ version: z.ZodNumber;
5711
+ uri: z.ZodString;
5712
+ related: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
5713
+ key: z.ZodOptional<z.ZodString>;
5714
+ occurredAt: z.ZodISODateTime;
5715
+ publishedAt: z.ZodISODateTime;
5716
+ source: z.ZodObject<{
5717
+ poller: z.ZodOptional<z.ZodString>;
5718
+ runId: z.ZodOptional<z.ZodString>;
5719
+ layer: z.ZodLiteral<"runtime">;
5720
+ pluginId: z.ZodString;
5721
+ sessionId: z.ZodOptional<z.ZodString>;
5722
+ }, z.core.$strict>;
5723
+ payload: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5724
+ }, z.core.$strict>;
5725
+
5726
+ export declare type PluginEventEnvelope = z.infer<typeof PluginEventEnvelope>;
5727
+
5728
+ export declare const PluginEventId: z.ZodString;
5729
+
5730
+ export declare type PluginEventId = z.infer<typeof PluginEventId>;
5731
+
5732
+ export declare const PluginEventLocalId: z.ZodString;
5733
+
5734
+ export declare type PluginEventLocalId = z.infer<typeof PluginEventLocalId>;
5735
+
5736
+ export declare const PluginEventPublishInput: z.ZodObject<{
5737
+ uri: z.ZodString;
5738
+ related: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
5739
+ key: z.ZodOptional<z.ZodString>;
5740
+ occurredAt: z.ZodOptional<z.ZodISODateTime>;
5741
+ source: z.ZodOptional<z.ZodObject<{
5742
+ poller: z.ZodOptional<z.ZodString>;
5743
+ runId: z.ZodOptional<z.ZodString>;
5744
+ }, z.core.$strict>>;
5745
+ payload: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
5746
+ }, z.core.$strict>;
5747
+
5748
+ export declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
5749
+
5750
+ export declare const PluginEventPublishSource: z.ZodObject<{
5751
+ poller: z.ZodOptional<z.ZodString>;
5752
+ runId: z.ZodOptional<z.ZodString>;
5753
+ }, z.core.$strict>;
5754
+
5755
+ export declare type PluginEventPublishSource = z.infer<typeof PluginEventPublishSource>;
5756
+
5757
+ export declare const PluginEventRelated: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
5758
+
5759
+ export declare type PluginEventRelated = z.infer<typeof PluginEventRelated>;
5760
+
5761
+ export declare const PluginEventSource: z.ZodObject<{
5762
+ poller: z.ZodOptional<z.ZodString>;
5763
+ runId: z.ZodOptional<z.ZodString>;
5764
+ layer: z.ZodLiteral<"runtime">;
5765
+ pluginId: z.ZodString;
5766
+ sessionId: z.ZodOptional<z.ZodString>;
5767
+ }, z.core.$strict>;
5768
+
5769
+ export declare type PluginEventSource = z.infer<typeof PluginEventSource>;
5770
+
5771
+ export declare const PluginEventTimestamp: z.ZodISODateTime;
5772
+
5773
+ export declare type PluginEventTimestamp = z.infer<typeof PluginEventTimestamp>;
5774
+
5775
+ export declare const PluginEventUri: z.ZodString;
5776
+
5777
+ export declare type PluginEventUri = z.infer<typeof PluginEventUri>;
5778
+
5635
5779
  /**
5636
5780
  * How the host connects an `external-cli` scheme (SDK 0.13.10). Bonsai reads it for its own plugins
5637
5781
  * only; any other plugin's is ignored, with a load diagnostic.
@@ -6617,8 +6761,8 @@ export declare const ResolvedKayAppDataSource: z.ZodObject<{
6617
6761
  globalId: z.ZodString;
6618
6762
  scope: z.ZodEnum<{
6619
6763
  session: "session";
6620
- account: "account";
6621
6764
  runtime: "runtime";
6765
+ account: "account";
6622
6766
  }>;
6623
6767
  snapshot: z.ZodObject<{
6624
6768
  version: z.ZodNumber;
@@ -6670,6 +6814,7 @@ export declare const ResolvedKayAppMcpServer: z.ZodObject<{
6670
6814
  url: z.ZodString;
6671
6815
  auth: z.ZodEnum<{
6672
6816
  oauth: "oauth";
6817
+ "api-key": "api-key";
6673
6818
  none: "none";
6674
6819
  }>;
6675
6820
  authServiceId: z.ZodOptional<z.ZodString>;
@@ -6715,6 +6860,16 @@ export declare const ResolvedKayUiApp: z.ZodObject<{
6715
6860
  localId: z.ZodString;
6716
6861
  globalId: z.ZodString;
6717
6862
  displayName: z.ZodString;
6863
+ activityRail: z.ZodOptional<z.ZodObject<{
6864
+ section: z.ZodOptional<z.ZodEnum<{
6865
+ primary: "primary";
6866
+ plugins: "plugins";
6867
+ }>>;
6868
+ order: z.ZodOptional<z.ZodNumber>;
6869
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
6870
+ svg: z.ZodString;
6871
+ }, z.core.$strict>]>>;
6872
+ }, z.core.$strict>>;
6718
6873
  description: z.ZodOptional<z.ZodString>;
6719
6874
  icon: z.ZodOptional<z.ZodString>;
6720
6875
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -6736,6 +6891,8 @@ export declare const ResolvedKayUiApp: z.ZodObject<{
6736
6891
  "skills.read": "skills.read";
6737
6892
  "automations.run": "automations.run";
6738
6893
  "navigation.open-session": "navigation.open-session";
6894
+ "artifacts.read": "artifacts.read";
6895
+ "artifacts.preview": "artifacts.preview";
6739
6896
  "cost.read": "cost.read";
6740
6897
  "billing.read": "billing.read";
6741
6898
  "context.read": "context.read";
@@ -7561,8 +7718,8 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7561
7718
  globalId: z.ZodString;
7562
7719
  scope: z.ZodEnum<{
7563
7720
  session: "session";
7564
- account: "account";
7565
7721
  runtime: "runtime";
7722
+ account: "account";
7566
7723
  }>;
7567
7724
  snapshot: z.ZodObject<{
7568
7725
  version: z.ZodNumber;
@@ -7614,6 +7771,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7614
7771
  url: z.ZodString;
7615
7772
  auth: z.ZodEnum<{
7616
7773
  oauth: "oauth";
7774
+ "api-key": "api-key";
7617
7775
  none: "none";
7618
7776
  }>;
7619
7777
  authServiceId: z.ZodOptional<z.ZodString>;
@@ -7659,6 +7817,16 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7659
7817
  localId: z.ZodString;
7660
7818
  globalId: z.ZodString;
7661
7819
  displayName: z.ZodString;
7820
+ activityRail: z.ZodOptional<z.ZodObject<{
7821
+ section: z.ZodOptional<z.ZodEnum<{
7822
+ primary: "primary";
7823
+ plugins: "plugins";
7824
+ }>>;
7825
+ order: z.ZodOptional<z.ZodNumber>;
7826
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
7827
+ svg: z.ZodString;
7828
+ }, z.core.$strict>]>>;
7829
+ }, z.core.$strict>>;
7662
7830
  description: z.ZodOptional<z.ZodString>;
7663
7831
  icon: z.ZodOptional<z.ZodString>;
7664
7832
  runtime: z.ZodLiteral<"kay.react-app.v1">;
@@ -7680,6 +7848,8 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7680
7848
  "skills.read": "skills.read";
7681
7849
  "automations.run": "automations.run";
7682
7850
  "navigation.open-session": "navigation.open-session";
7851
+ "artifacts.read": "artifacts.read";
7852
+ "artifacts.preview": "artifacts.preview";
7683
7853
  "cost.read": "cost.read";
7684
7854
  "billing.read": "billing.read";
7685
7855
  "context.read": "context.read";
@@ -8240,7 +8410,7 @@ export declare function resolveGlobalContributionId(namespace: PluginNamespace,
8240
8410
 
8241
8411
  export declare function resolveKayPluginContractV1(manifest: KayPluginManifestV1): ResolvedPluginContractV1;
8242
8412
 
8243
- export declare function resolvePluginEventType(namespace: PluginNamespace, localId: LocalContributionId): GlobalContributionId;
8413
+ export declare function resolvePluginEventType(namespace: PluginNamespace, localId: PluginEventLocalId): GlobalContributionId;
8244
8414
 
8245
8415
  export declare function resolvePluginNamespace(pluginId: PluginNamespace, namespace?: PluginNamespace): PluginNamespace;
8246
8416
 
@@ -9209,12 +9379,28 @@ export declare interface TurnPacketMessage {
9209
9379
  readonly origin: TurnMessageOrigin;
9210
9380
  }
9211
9381
 
9382
+ /** An optional direct destination on the host activity rail; no secondary panel. */
9383
+ export declare const UiAppActivityRail: z.ZodObject<{
9384
+ section: z.ZodOptional<z.ZodEnum<{
9385
+ primary: "primary";
9386
+ plugins: "plugins";
9387
+ }>>;
9388
+ order: z.ZodOptional<z.ZodNumber>;
9389
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
9390
+ svg: z.ZodString;
9391
+ }, z.core.$strict>]>>;
9392
+ }, z.core.$strict>;
9393
+
9394
+ export declare type UiAppActivityRail = z.infer<typeof UiAppActivityRail>;
9395
+
9212
9396
  export declare const UiAppCapabilities: z.ZodObject<{
9213
9397
  endpoints: z.ZodOptional<z.ZodArray<z.ZodString>>;
9214
9398
  host: z.ZodOptional<z.ZodArray<z.ZodEnum<{
9215
9399
  "skills.read": "skills.read";
9216
9400
  "automations.run": "automations.run";
9217
9401
  "navigation.open-session": "navigation.open-session";
9402
+ "artifacts.read": "artifacts.read";
9403
+ "artifacts.preview": "artifacts.preview";
9218
9404
  "cost.read": "cost.read";
9219
9405
  "billing.read": "billing.read";
9220
9406
  "context.read": "context.read";
@@ -9251,6 +9437,8 @@ export declare const UiAppContribution: z.ZodObject<{
9251
9437
  "skills.read": "skills.read";
9252
9438
  "automations.run": "automations.run";
9253
9439
  "navigation.open-session": "navigation.open-session";
9440
+ "artifacts.read": "artifacts.read";
9441
+ "artifacts.preview": "artifacts.preview";
9254
9442
  "cost.read": "cost.read";
9255
9443
  "billing.read": "billing.read";
9256
9444
  "context.read": "context.read";
@@ -9263,6 +9451,16 @@ export declare const UiAppContribution: z.ZodObject<{
9263
9451
  "workspace.arrange": "workspace.arrange";
9264
9452
  }>>>;
9265
9453
  }, z.core.$strict>>;
9454
+ activityRail: z.ZodOptional<z.ZodObject<{
9455
+ section: z.ZodOptional<z.ZodEnum<{
9456
+ primary: "primary";
9457
+ plugins: "plugins";
9458
+ }>>;
9459
+ order: z.ZodOptional<z.ZodNumber>;
9460
+ icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
9461
+ svg: z.ZodString;
9462
+ }, z.core.$strict>]>>;
9463
+ }, z.core.$strict>>;
9266
9464
  }, z.core.$strict>;
9267
9465
 
9268
9466
  export declare type UiAppContribution = z.infer<typeof UiAppContribution>;