@yaklabs-ai/plugin-protocol 0.13.10 → 0.14.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.13.10"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.14.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.13.10",
4
+ "version": "0.14.1",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -1273,6 +1273,7 @@ export declare type AuthGrantFrontDoor = z.infer<typeof AuthGrantFrontDoor>;
1273
1273
 
1274
1274
  export declare const AuthGrantOperation: z.ZodEnum<{
1275
1275
  status: "status";
1276
+ list: "list";
1276
1277
  connect: "connect";
1277
1278
  disconnect: "disconnect";
1278
1279
  resolve: "resolve";
@@ -1285,6 +1286,7 @@ export declare const AuthGrantRequest: z.ZodObject<{
1285
1286
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1286
1287
  operations: z.ZodArray<z.ZodEnum<{
1287
1288
  status: "status";
1289
+ list: "list";
1288
1290
  connect: "connect";
1289
1291
  disconnect: "disconnect";
1290
1292
  resolve: "resolve";
@@ -2095,7 +2097,7 @@ export declare const KAY_EVENT_PUBLISHER_ID: "kay";
2095
2097
  declare const KAY_PLUGIN_COMPATIBILITY_REFUSAL_CODES: readonly ["unsupported-protocol", "sdk-range-unsatisfied", "sdk-range-unsupported", "host-sdk-version-invalid"];
2096
2098
 
2097
2099
  /** Released SDK contracts still implemented by the host, alongside its current SDK. */
2098
- 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"];
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"];
2099
2101
 
2100
2102
  /** The file whose presence makes a directory a plugin. A directory without one is not a plugin. */
2101
2103
  export declare const KAY_PLUGIN_MANIFEST_FILENAME = "kay-plugin.json";
@@ -2408,8 +2410,23 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2408
2410
  * connects a shared identity through (`gmail` over `google.account`), with an optional file picker.
2409
2411
  * Additive: a manifest without them parses unchanged. A plugin that declares one declares
2410
2412
  * `^0.13.10`, so an older host refuses it at load with that reason rather than a schema error.
2413
+ *
2414
+ * 0.14.0 removes `withJev`: `api.withJev` on `kay.agent`, `app.withJev` on `kay.app`, the
2415
+ * `@bonsai/plugin-sdk/jev` subpath and every `Jev*` type it exported. A plugin uses `api.systemOne`
2416
+ * / `app.systemOne` (`@bonsai/plugin-sdk/system-one`) instead. The `jev.use` capability claim is
2417
+ * renamed `systemOne.use`, and stored grants are rewritten to the new slug. The signals subpath
2418
+ * types its own surface now: observe options by `KayAppSignalObserveOptions`, state by
2419
+ * `KayAppSignalState`, and questions and answers by `DecideQuestions` and `DecideAnswer`. For the
2420
+ * api surface this is a clean break with no shim and deliberately NOT a load refusal, like 0.13.0:
2421
+ * every earlier release stays in the retention list, so a plugin compiled against 0.13.x that
2422
+ * reads `api.withJev` gets `undefined` at the call, and one that imports a value from
2423
+ * `@bonsai/plugin-sdk/jev` fails at load. No plugin used either.
2424
+ *
2425
+ * 0.14.1 adds the owned-service `kay.app` auth list operation and `listAccounts`.
2426
+ * Existing resolve-only `has` callers retain account bounds and now probe metadata without
2427
+ * resolving credentials. Plugins using list declare `^0.14.1` so older hosts refuse at load.
2411
2428
  */
2412
- export declare const KAY_PLUGIN_SDK_VERSION: "0.13.10";
2429
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.14.1";
2413
2430
 
2414
2431
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2415
2432
 
@@ -3352,6 +3369,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3352
3369
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3353
3370
  operations: z.ZodArray<z.ZodEnum<{
3354
3371
  status: "status";
3372
+ list: "list";
3355
3373
  connect: "connect";
3356
3374
  disconnect: "disconnect";
3357
3375
  resolve: "resolve";
@@ -3446,6 +3464,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3446
3464
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3447
3465
  operations: z.ZodArray<z.ZodEnum<{
3448
3466
  status: "status";
3467
+ list: "list";
3449
3468
  connect: "connect";
3450
3469
  disconnect: "disconnect";
3451
3470
  resolve: "resolve";
@@ -3540,6 +3559,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
3540
3559
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
3541
3560
  operations: z.ZodArray<z.ZodEnum<{
3542
3561
  status: "status";
3562
+ list: "list";
3543
3563
  connect: "connect";
3544
3564
  disconnect: "disconnect";
3545
3565
  resolve: "resolve";
@@ -4064,7 +4084,7 @@ export declare function parseResolvedPluginContractV1(value: unknown): ResolvedP
4064
4084
  export declare function parseSemver(value: string): ParsedSemver | undefined;
4065
4085
 
4066
4086
  /** Every capability slug {@link PluginCapabilityClaimV1} can express, for exhaustive table checks. */
4067
- export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network.connect", "web-session.request", "web-session.download", "process.spawn", "corpus.read", "signals.read", "skills.read", "tools.describe", "workspace.command", "sessions.create", "sessions.update", "models.complete", "jev.use", "automations.write", "automations.run", "workflows.define", "session-events.subscribe", "agents.run", "dynamic-context.register", "app-data.register", "account.assert", "account.update", "agents.permissions", "tool-interception.register", "interaction.surface", "config.declare-section", "auth.own-service", "auth.shared-identity", "cli.bind", "mcp.host-server", "prompt.resident", "skills.declared-source", "whiteboard.discover", "whiteboard.read", "whiteboard.create", "whiteboard.update", "whiteboard.remove"];
4087
+ export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network.connect", "web-session.request", "web-session.download", "process.spawn", "corpus.read", "signals.read", "skills.read", "tools.describe", "workspace.command", "sessions.create", "sessions.update", "models.complete", "systemOne.use", "automations.write", "automations.run", "workflows.define", "session-events.subscribe", "agents.run", "dynamic-context.register", "app-data.register", "account.assert", "account.update", "agents.permissions", "tool-interception.register", "interaction.surface", "config.declare-section", "auth.own-service", "auth.shared-identity", "cli.bind", "mcp.host-server", "prompt.resident", "skills.declared-source", "whiteboard.discover", "whiteboard.read", "whiteboard.create", "whiteboard.update", "whiteboard.remove"];
4068
4088
 
4069
4089
  /** Diagnostic messages carry plugin-controlled text (parse errors, module errors); bound it so a
4070
4090
  * hostile or accidental multi-megabyte error can never blow up a log line or a render surface. */
@@ -4581,7 +4601,7 @@ export declare const PluginCapabilityClaimV1: z.ZodDiscriminatedUnion<[z.ZodObje
4581
4601
  envelope: z.ZodObject<{}, z.core.$strict>;
4582
4602
  }, z.core.$strict>, z.ZodObject<{
4583
4603
  target: z.ZodLiteral<"kay.app">;
4584
- slug: z.ZodLiteral<"jev.use">;
4604
+ slug: z.ZodLiteral<"systemOne.use">;
4585
4605
  envelope: z.ZodObject<{}, z.core.$strict>;
4586
4606
  }, z.core.$strict>, z.ZodObject<{
4587
4607
  target: z.ZodLiteral<"kay.app">;
@@ -4817,7 +4837,7 @@ export declare const PluginCapabilityDecisionV1: z.ZodDiscriminatedUnion<[z.ZodO
4817
4837
  envelope: z.ZodObject<{}, z.core.$strict>;
4818
4838
  }, z.core.$strict>, z.ZodObject<{
4819
4839
  target: z.ZodLiteral<"kay.app">;
4820
- slug: z.ZodLiteral<"jev.use">;
4840
+ slug: z.ZodLiteral<"systemOne.use">;
4821
4841
  envelope: z.ZodObject<{}, z.core.$strict>;
4822
4842
  }, z.core.$strict>, z.ZodObject<{
4823
4843
  target: z.ZodLiteral<"kay.app">;
@@ -5048,7 +5068,7 @@ export declare const PluginCapabilityDecisionV1: z.ZodDiscriminatedUnion<[z.ZodO
5048
5068
  envelope: z.ZodObject<{}, z.core.$strict>;
5049
5069
  }, z.core.$strict>, z.ZodObject<{
5050
5070
  target: z.ZodLiteral<"kay.app">;
5051
- slug: z.ZodLiteral<"jev.use">;
5071
+ slug: z.ZodLiteral<"systemOne.use">;
5052
5072
  envelope: z.ZodObject<{}, z.core.$strict>;
5053
5073
  }, z.core.$strict>, z.ZodObject<{
5054
5074
  target: z.ZodLiteral<"kay.app">;
@@ -5342,7 +5362,7 @@ export declare const PluginCapabilityRefusalV1: z.ZodObject<{
5342
5362
  envelope: z.ZodObject<{}, z.core.$strict>;
5343
5363
  }, z.core.$strict>, z.ZodObject<{
5344
5364
  target: z.ZodLiteral<"kay.app">;
5345
- slug: z.ZodLiteral<"jev.use">;
5365
+ slug: z.ZodLiteral<"systemOne.use">;
5346
5366
  envelope: z.ZodObject<{}, z.core.$strict>;
5347
5367
  }, z.core.$strict>, z.ZodObject<{
5348
5368
  target: z.ZodLiteral<"kay.app">;
@@ -5783,6 +5803,7 @@ export declare const PluginPermissionManifest: z.ZodObject<{
5783
5803
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
5784
5804
  operations: z.ZodArray<z.ZodEnum<{
5785
5805
  status: "status";
5806
+ list: "list";
5786
5807
  connect: "connect";
5787
5808
  disconnect: "disconnect";
5788
5809
  resolve: "resolve";
@@ -5877,6 +5898,7 @@ export declare const PluginPermissionManifest: z.ZodObject<{
5877
5898
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
5878
5899
  operations: z.ZodArray<z.ZodEnum<{
5879
5900
  status: "status";
5901
+ list: "list";
5880
5902
  connect: "connect";
5881
5903
  disconnect: "disconnect";
5882
5904
  resolve: "resolve";
@@ -5971,6 +5993,7 @@ export declare const PluginPermissionManifest: z.ZodObject<{
5971
5993
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
5972
5994
  operations: z.ZodArray<z.ZodEnum<{
5973
5995
  status: "status";
5996
+ list: "list";
5974
5997
  connect: "connect";
5975
5998
  disconnect: "disconnect";
5976
5999
  resolve: "resolve";
@@ -6393,6 +6416,15 @@ export declare const RegistrableDomain: z.ZodString;
6393
6416
 
6394
6417
  export declare type RegistrableDomain = z.infer<typeof RegistrableDomain>;
6395
6418
 
6419
+ /**
6420
+ * Capability slugs renamed since release, old slug to new. A stored grant naming an old slug is
6421
+ * rewritten to the new one (a read folds it; the boot migration rewrites the stored row), never
6422
+ * ignored: unlike a retired slug it still confers the capability.
6423
+ */
6424
+ export declare const RENAMED_PLUGIN_CAPABILITY_SLUGS: {
6425
+ readonly "jev.use": "systemOne.use";
6426
+ };
6427
+
6396
6428
  /**
6397
6429
  * Id namespaces a directory plugin may never claim. `herd.` is the kernel's first-party namespace
6398
6430
  * (`HERD_RESERVED_ID_PREFIX`: the kernel's extension loader throws on it without a first-party
@@ -6423,6 +6455,7 @@ export declare function resolveAdapterId(globalId: GlobalContributionId, declare
6423
6455
  export declare const ResolvedAuthGrantRequest: z.ZodObject<{
6424
6456
  operations: z.ZodArray<z.ZodEnum<{
6425
6457
  status: "status";
6458
+ list: "list";
6426
6459
  connect: "connect";
6427
6460
  disconnect: "disconnect";
6428
6461
  resolve: "resolve";
@@ -7193,6 +7226,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7193
7226
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7194
7227
  operations: z.ZodArray<z.ZodEnum<{
7195
7228
  status: "status";
7229
+ list: "list";
7196
7230
  connect: "connect";
7197
7231
  disconnect: "disconnect";
7198
7232
  resolve: "resolve";
@@ -7287,6 +7321,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7287
7321
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7288
7322
  operations: z.ZodArray<z.ZodEnum<{
7289
7323
  status: "status";
7324
+ list: "list";
7290
7325
  connect: "connect";
7291
7326
  disconnect: "disconnect";
7292
7327
  resolve: "resolve";
@@ -7381,6 +7416,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
7381
7416
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7382
7417
  operations: z.ZodArray<z.ZodEnum<{
7383
7418
  status: "status";
7419
+ list: "list";
7384
7420
  connect: "connect";
7385
7421
  disconnect: "disconnect";
7386
7422
  resolve: "resolve";
@@ -7714,6 +7750,7 @@ export declare const ResolvedPluginGrants: z.ZodObject<{
7714
7750
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7715
7751
  operations: z.ZodArray<z.ZodEnum<{
7716
7752
  status: "status";
7753
+ list: "list";
7717
7754
  connect: "connect";
7718
7755
  disconnect: "disconnect";
7719
7756
  resolve: "resolve";
@@ -7808,6 +7845,7 @@ export declare const ResolvedPluginGrants: z.ZodObject<{
7808
7845
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7809
7846
  operations: z.ZodArray<z.ZodEnum<{
7810
7847
  status: "status";
7848
+ list: "list";
7811
7849
  connect: "connect";
7812
7850
  disconnect: "disconnect";
7813
7851
  resolve: "resolve";
@@ -7902,6 +7940,7 @@ export declare const ResolvedPluginGrants: z.ZodObject<{
7902
7940
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
7903
7941
  operations: z.ZodArray<z.ZodEnum<{
7904
7942
  status: "status";
7943
+ list: "list";
7905
7944
  connect: "connect";
7906
7945
  disconnect: "disconnect";
7907
7946
  resolve: "resolve";
@@ -8103,6 +8142,7 @@ export declare const ResolvedTargetGrantSet: z.ZodObject<{
8103
8142
  auth: z.ZodOptional<z.ZodArray<z.ZodObject<{
8104
8143
  operations: z.ZodArray<z.ZodEnum<{
8105
8144
  status: "status";
8145
+ list: "list";
8106
8146
  connect: "connect";
8107
8147
  disconnect: "disconnect";
8108
8148
  resolve: "resolve";
@@ -8853,6 +8893,7 @@ export declare const TargetPermissionSet: z.ZodPreprocess<z.ZodObject<{
8853
8893
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
8854
8894
  operations: z.ZodArray<z.ZodEnum<{
8855
8895
  status: "status";
8896
+ list: "list";
8856
8897
  connect: "connect";
8857
8898
  disconnect: "disconnect";
8858
8899
  resolve: "resolve";
@@ -8979,6 +9020,7 @@ export declare const TargetPermissionWiring: z.ZodObject<{
8979
9020
  schemes: z.ZodOptional<z.ZodArray<z.ZodString>>;
8980
9021
  operations: z.ZodArray<z.ZodEnum<{
8981
9022
  status: "status";
9023
+ list: "list";
8982
9024
  connect: "connect";
8983
9025
  disconnect: "disconnect";
8984
9026
  resolve: "resolve";
package/dist/index.js CHANGED
@@ -136,7 +136,7 @@ var JsonSchema = z2.record(z2.string(), JsonValue);
136
136
  // packages/plugin-protocol/dist/common.js
137
137
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
138
138
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
139
- var KAY_PLUGIN_SDK_VERSION = "0.13.10";
139
+ var KAY_PLUGIN_SDK_VERSION = "0.14.1";
140
140
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
141
141
  "0.8.0",
142
142
  "0.8.1",
@@ -164,7 +164,9 @@ var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
164
164
  "0.13.6",
165
165
  "0.13.7",
166
166
  "0.13.8",
167
- "0.13.9"
167
+ "0.13.9",
168
+ "0.13.10",
169
+ "0.14.0"
168
170
  ];
169
171
  var KAY_PLUGIN_TARGET_NAMES = [
170
172
  "kay.agent",
@@ -1121,6 +1123,7 @@ function resolveAdapterId(globalId, declaredAdapterId) {
1121
1123
  // packages/plugin-protocol/dist/permissions.js
1122
1124
  var AuthGrantOperation = z7.enum([
1123
1125
  "status",
1126
+ "list",
1124
1127
  "connect",
1125
1128
  "disconnect",
1126
1129
  "resolve"
@@ -1644,16 +1647,16 @@ var PluginCapabilityClaimV1 = z8.discriminatedUnion("slug", [
1644
1647
  envelope: z8.strictObject({})
1645
1648
  }),
1646
1649
  z8.strictObject({
1647
- // Held to `kay.app`, the daemon-lifetime tier, even though the same wrapper is exposed on
1650
+ // Held to `kay.app`, the daemon-lifetime tier, even though the same System One client is exposed on
1648
1651
  // BOTH the `kay.app` and `kay.agent` plugin SDKs (and to host composition directly): a slug
1649
1652
  // pins exactly one target (see this file's module doc), so one shared claim is simpler and
1650
1653
  // more honest than a second, `kay.agent`-scoped sibling slug for the identical capability.
1651
- // `kay.agent`'s `api.withJev` authorizes against this SAME claim through the calling
1654
+ // `kay.agent`'s `api.systemOne` authorizes against this SAME claim through the calling
1652
1655
  // plugin's own pinned authority, which already spans both targets for every other capability
1653
1656
  // (`network.connect`/`tool-interception.register` are decided by the identical per-plugin
1654
- // handle `kay.app`-target claims use).
1657
+ // handle `kay.app`-target claims use). `app.systemOne` authorizes against it the same way.
1655
1658
  target: z8.literal("kay.app"),
1656
- slug: z8.literal("jev.use"),
1659
+ slug: z8.literal("systemOne.use"),
1657
1660
  envelope: z8.strictObject({})
1658
1661
  }),
1659
1662
  z8.strictObject({
@@ -1776,6 +1779,9 @@ var RETIRED_PLUGIN_CAPABILITY_SLUGS = [
1776
1779
  "filesystem.read",
1777
1780
  "filesystem.write"
1778
1781
  ];
1782
+ var RENAMED_PLUGIN_CAPABILITY_SLUGS = {
1783
+ "jev.use": "systemOne.use"
1784
+ };
1779
1785
  var PLUGIN_CAPABILITY_SLUGS = [
1780
1786
  "sessions.run",
1781
1787
  "network.connect",
@@ -1790,7 +1796,7 @@ var PLUGIN_CAPABILITY_SLUGS = [
1790
1796
  "sessions.create",
1791
1797
  "sessions.update",
1792
1798
  "models.complete",
1793
- "jev.use",
1799
+ "systemOne.use",
1794
1800
  "automations.write",
1795
1801
  "automations.run",
1796
1802
  "workflows.define",
@@ -1898,7 +1904,7 @@ function sameClaim(a, b) {
1898
1904
  case "tools.describe":
1899
1905
  case "workspace.command":
1900
1906
  case "models.complete":
1901
- case "jev.use":
1907
+ case "systemOne.use":
1902
1908
  case "automations.write":
1903
1909
  case "automations.run":
1904
1910
  case "workflows.define":
@@ -1968,7 +1974,7 @@ function envelopePairs(a, b) {
1968
1974
  case "tools.describe":
1969
1975
  case "workspace.command":
1970
1976
  case "models.complete":
1971
- case "jev.use":
1977
+ case "systemOne.use":
1972
1978
  case "automations.write":
1973
1979
  case "automations.run":
1974
1980
  case "workflows.define":
@@ -5418,6 +5424,7 @@ export {
5418
5424
  PluginToolName,
5419
5425
  PluginWebSessionDeclaration,
5420
5426
  PluginWebSessionProbe,
5427
+ RENAMED_PLUGIN_CAPABILITY_SLUGS,
5421
5428
  RESERVED_DIRECTORY_PLUGIN_ID_PREFIXES,
5422
5429
  RETIRED_COMPATIBILITY_KEYS,
5423
5430
  RETIRED_PERMISSION_ASK_KEYS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.13.10",
3
+ "version": "0.14.1",
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",