@yaklabs-ai/plugin-sdk 0.37.0 → 0.37.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
@@ -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.37.0"
16
+ "@bonsai/plugin-sdk": "npm:@yaklabs-ai/plugin-sdk@^0.37.1"
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.37.0" },
65
+ "compatibility": { "sdk": "^0.37.1" },
66
66
  "targets": {
67
67
  "kay": {
68
68
  "agent": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "@yaklabs-ai/plugin-sdk",
4
- "version": "0.37.0",
4
+ "version": "0.37.1",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [
@@ -2395,8 +2395,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2395
2395
  * `contributes` names the `rule`, the `body` that fills the preview, either a `contextOnly` app in
2396
2396
  * the plugin or a body the host ships, and the `address` it is about. Additive. A plugin that
2397
2397
  * declares a preview declares ^0.37.0.
2398
+ *
2399
+ * 0.37.1 adds the required, ungated `featureFlags.value(key)` reader to both backend targets.
2400
+ * Unknown keys return false; the host supplies evaluated values before activation and updates them.
2401
+ * Additive: existing plugins keep loading. A consumer declares ^0.37.1.
2398
2402
  */
2399
- declare const KAY_PLUGIN_SDK_VERSION: "0.37.0";
2403
+ declare const KAY_PLUGIN_SDK_VERSION: "0.37.1";
2400
2404
 
2401
2405
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2402
2406
 
@@ -2684,6 +2688,7 @@ declare interface KayAgentPluginApi {
2684
2688
  * the same zone-of-record port the session stamp uses; see {@link KayAppTime.snapshot}.
2685
2689
  */
2686
2690
  readonly time: KayAppTime;
2691
+ readonly featureFlags: PluginFeatureFlags;
2687
2692
  /**
2688
2693
  * File I/O in user folders, run by the host on its own worker threads under a deadline and
2689
2694
  * answered as a typed result. Always present and ungated: it takes absolute paths and checks no
@@ -4332,6 +4337,12 @@ declare const PluginEventPublishInput: z.ZodObject<{
4332
4337
 
4333
4338
  declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
4334
4339
 
4340
+ /** Evaluated Bonsai rollout values supplied by the host, without I/O or a grant. */
4341
+ declare interface PluginFeatureFlags {
4342
+ /** Read the current boolean; unknown keys return false. */
4343
+ readonly value: (key: string) => boolean;
4344
+ }
4345
+
4335
4346
  declare const PluginId: z.ZodString;
4336
4347
 
4337
4348
  declare type PluginId = z.infer<typeof PluginId>;
@@ -886,6 +886,7 @@ function createKayAgentProbeCapabilityHandles() {
886
886
  // Dropped: a probe's activation is not the plugin running, so its lines are not the plugin's.
887
887
  log: createKayPluginLog(() => {
888
888
  }),
889
+ featureFlags: { value: () => false },
889
890
  // A probe has no user-time port, so it answers the zone as unknown - the same contract the
890
891
  // real capability keeps for a zone the host cannot read.
891
892
  time: {
@@ -1196,7 +1196,7 @@ declare function FactorMapping(input: [unknown, unknown, unknown, unknown, unkno
1196
1196
  export declare function fauxAuthContext(overrides?: Partial<ExtensionAuthContext>): ExtensionAuthContext;
1197
1197
 
1198
1198
  /** The capability handles a `KayAgentPluginApi` always carries - authority is decided per call. */
1199
- export declare type FauxKayAgentCapabilities = Pick<KayAgentPluginApi, "network" | "webSession" | "process" | "whiteboard" | "interaction" | "interceptToolCall" | "implementTool" | "systemOne" | "events" | "time" | "log" | "userFiles" | "familyFolder" | "vendoredMcp" | "endpoints" | "compiler">;
1199
+ export declare type FauxKayAgentCapabilities = Pick<KayAgentPluginApi, "network" | "webSession" | "process" | "whiteboard" | "interaction" | "interceptToolCall" | "implementTool" | "systemOne" | "events" | "featureFlags" | "time" | "log" | "userFiles" | "familyFolder" | "vendoredMcp" | "endpoints" | "compiler">;
1200
1200
 
1201
1201
  export declare function fauxKayAgentCapabilities(): FauxKayAgentCapabilities;
1202
1202
 
@@ -2449,8 +2449,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2449
2449
  * `contributes` names the `rule`, the `body` that fills the preview, either a `contextOnly` app in
2450
2450
  * the plugin or a body the host ships, and the `address` it is about. Additive. A plugin that
2451
2451
  * declares a preview declares ^0.37.0.
2452
+ *
2453
+ * 0.37.1 adds the required, ungated `featureFlags.value(key)` reader to both backend targets.
2454
+ * Unknown keys return false; the host supplies evaluated values before activation and updates them.
2455
+ * Additive: existing plugins keep loading. A consumer declares ^0.37.1.
2452
2456
  */
2453
- declare const KAY_PLUGIN_SDK_VERSION: "0.37.0";
2457
+ declare const KAY_PLUGIN_SDK_VERSION: "0.37.1";
2454
2458
 
2455
2459
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2456
2460
 
@@ -2735,6 +2739,7 @@ declare interface KayAgentPluginApi {
2735
2739
  * the same zone-of-record port the session stamp uses; see {@link KayAppTime.snapshot}.
2736
2740
  */
2737
2741
  readonly time: KayAppTime;
2742
+ readonly featureFlags: PluginFeatureFlags;
2738
2743
  /**
2739
2744
  * File I/O in user folders, run by the host on its own worker threads under a deadline and
2740
2745
  * answered as a typed result. Always present and ungated: it takes absolute paths and checks no
@@ -4347,6 +4352,12 @@ declare const PluginEventPublishInput: z.ZodObject<{
4347
4352
 
4348
4353
  declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
4349
4354
 
4355
+ /** Evaluated Bonsai rollout values supplied by the host, without I/O or a grant. */
4356
+ declare interface PluginFeatureFlags {
4357
+ /** Read the current boolean; unknown keys return false. */
4358
+ readonly value: (key: string) => boolean;
4359
+ }
4360
+
4350
4361
  declare const PluginId: z.ZodString;
4351
4362
 
4352
4363
  declare type PluginId = z.infer<typeof PluginId>;
@@ -295,6 +295,7 @@ function fauxKayAgentCapabilities() {
295
295
  // rejecting double would fail tests for a reason production never has. A test asserting what
296
296
  // its plugin publishes overrides this handle after the spread.
297
297
  events: { publish: () => void 0 },
298
+ featureFlags: { value: () => false },
298
299
  // A test double has no user-time port, so it answers the zone as unknown - the same contract
299
300
  // the real capability keeps for a zone the host cannot read. A test that exercises a plugin's
300
301
  // zone-of-record path overrides this handle after the spread.
@@ -2724,8 +2724,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2724
2724
  * `contributes` names the `rule`, the `body` that fills the preview, either a `contextOnly` app in
2725
2725
  * the plugin or a body the host ships, and the `address` it is about. Additive. A plugin that
2726
2726
  * declares a preview declares ^0.37.0.
2727
+ *
2728
+ * 0.37.1 adds the required, ungated `featureFlags.value(key)` reader to both backend targets.
2729
+ * Unknown keys return false; the host supplies evaluated values before activation and updates them.
2730
+ * Additive: existing plugins keep loading. A consumer declares ^0.37.1.
2727
2731
  */
2728
- declare const KAY_PLUGIN_SDK_VERSION: "0.37.0";
2732
+ declare const KAY_PLUGIN_SDK_VERSION: "0.37.1";
2729
2733
 
2730
2734
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2731
2735
 
@@ -3042,6 +3046,7 @@ export declare interface KayAgentPluginApi {
3042
3046
  * the same zone-of-record port the session stamp uses; see {@link KayAppTime.snapshot}.
3043
3047
  */
3044
3048
  readonly time: KayAppTime;
3049
+ readonly featureFlags: PluginFeatureFlags;
3045
3050
  /**
3046
3051
  * File I/O in user folders, run by the host on its own worker threads under a deadline and
3047
3052
  * answered as a typed result. Always present and ungated: it takes absolute paths and checks no
@@ -5363,6 +5368,12 @@ export declare const PluginEventPublishInput: z.ZodObject<{
5363
5368
 
5364
5369
  export declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
5365
5370
 
5371
+ /** Evaluated Bonsai rollout values supplied by the host, without I/O or a grant. */
5372
+ export declare interface PluginFeatureFlags {
5373
+ /** Read the current boolean; unknown keys return false. */
5374
+ readonly value: (key: string) => boolean;
5375
+ }
5376
+
5366
5377
  declare const PluginId: z.ZodString;
5367
5378
 
5368
5379
  declare type PluginId = z.infer<typeof PluginId>;
package/dist/kay-app.d.ts CHANGED
@@ -2686,8 +2686,12 @@ declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2686
2686
  * `contributes` names the `rule`, the `body` that fills the preview, either a `contextOnly` app in
2687
2687
  * the plugin or a body the host ships, and the `address` it is about. Additive. A plugin that
2688
2688
  * declares a preview declares ^0.37.0.
2689
+ *
2690
+ * 0.37.1 adds the required, ungated `featureFlags.value(key)` reader to both backend targets.
2691
+ * Unknown keys return false; the host supplies evaluated values before activation and updates them.
2692
+ * Additive: existing plugins keep loading. A consumer declares ^0.37.1.
2689
2693
  */
2690
- declare const KAY_PLUGIN_SDK_VERSION: "0.37.0";
2694
+ declare const KAY_PLUGIN_SDK_VERSION: "0.37.1";
2691
2695
 
2692
2696
  declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2693
2697
 
@@ -5095,6 +5099,7 @@ export declare interface KayAppPluginApi {
5095
5099
  * `Intl` or `process.env.TZ`; see {@link KayAppTime.snapshot}.
5096
5100
  */
5097
5101
  readonly time: KayAppTime;
5102
+ readonly featureFlags: PluginFeatureFlags;
5098
5103
  /**
5099
5104
  * A logger whose lines land in Bonsai's own log under this plugin's id. Always present and
5100
5105
  * ungated, like {@link time}: it writes under the plugin's own name, which a plugin's console
@@ -9762,6 +9767,12 @@ export declare const PluginEventPublishInput: z.ZodObject<{
9762
9767
 
9763
9768
  export declare type PluginEventPublishInput = z.infer<typeof PluginEventPublishInput>;
9764
9769
 
9770
+ /** Evaluated Bonsai rollout values supplied by the host, without I/O or a grant. */
9771
+ export declare interface PluginFeatureFlags {
9772
+ /** Read the current boolean; unknown keys return false. */
9773
+ readonly value: (key: string) => boolean;
9774
+ }
9775
+
9765
9776
  declare const PluginId: z.ZodString;
9766
9777
 
9767
9778
  declare type PluginId = z.infer<typeof PluginId>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-sdk",
3
- "version": "0.37.0",
3
+ "version": "0.37.1",
4
4
  "description": "The Kay plugin SDK — types and helpers for authoring a Kay directory plugin.",
5
5
  "author": "YakLabs",
6
6
  "type": "module",