@yaklabs-ai/plugin-protocol 0.55.3 → 0.55.4

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.55.3"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.55.4"
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.55.3",
4
+ "version": "0.55.4",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [
package/dist/index.d.ts CHANGED
@@ -4963,8 +4963,13 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
4963
4963
  * text, at most `PLUGIN_SIGNAL_BODY_MAX` (20,000) characters. Gmail puts a mail's text there, so
4964
4964
  * Flows can keep the messages a task came from. Additive: a plugin that publishes a body declares
4965
4965
  * ^0.55.3.
4966
+ *
4967
+ * 0.55.4 adds `app.plugins.listServices()` under the new `plugins.read` claim: every auth service
4968
+ * of the installed, enabled plugins, with the plugin's id and display name and whether the person
4969
+ * has connected it. No account, identity or scope. Built-ins hold the claim; any other plugin needs
4970
+ * a grant. Additive; plugins calling it declare ^0.55.4.
4966
4971
  */
4967
- export declare const KAY_PLUGIN_SDK_VERSION: "0.55.3";
4972
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.55.4";
4968
4973
 
4969
4974
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
4970
4975
 
@@ -8786,7 +8791,7 @@ export declare function parseSemver(value: string): ParsedSemver | undefined;
8786
8791
  export declare function parseWhere(source: string, keyTypes?: WhereKeyTypes): WhereParseResult;
8787
8792
 
8788
8793
  /** Every capability slug {@link PluginCapabilityClaimV1} can express, for exhaustive table checks. */
8789
- export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network.connect", "web-session.request", "web-session.download", "process.spawn", "sessions.read", "signals.read", "uri.call", "endpoints.invoke", "skills.read", "skills.write", "skills.share", "plugins.set-enabled", "sessions.assign-project", "artifacts.resolve-file", "process.run", "sessions.annotate", "sessions.compact", "soul.write", "tools.describe", "workspace.command", "sessions.create", "sessions.update", "models.complete", "systemOne.use", "automations.write", "automations.run", "workflows.define", "workflows.signals", "session-events.subscribe", "agents.run", "dynamic-context.register", "app-data.register", "app-data.read", "knowledge-source.register", "artifacts.read", "session-artifacts.read", "session-artifacts.create", "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", "family-folder.root", "whiteboard.discover", "whiteboard.read", "whiteboard.create", "whiteboard.update", "whiteboard.remove", "model-selection.register", "system-prompt.register"];
8794
+ export declare const PLUGIN_CAPABILITY_SLUGS: readonly ["sessions.run", "network.connect", "web-session.request", "web-session.download", "process.spawn", "sessions.read", "signals.read", "uri.call", "endpoints.invoke", "skills.read", "skills.write", "skills.share", "plugins.set-enabled", "plugins.read", "sessions.assign-project", "artifacts.resolve-file", "process.run", "sessions.annotate", "sessions.compact", "soul.write", "tools.describe", "workspace.command", "sessions.create", "sessions.update", "models.complete", "systemOne.use", "automations.write", "automations.run", "workflows.define", "workflows.signals", "session-events.subscribe", "agents.run", "dynamic-context.register", "app-data.register", "app-data.read", "knowledge-source.register", "artifacts.read", "session-artifacts.read", "session-artifacts.create", "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", "family-folder.root", "whiteboard.discover", "whiteboard.read", "whiteboard.create", "whiteboard.update", "whiteboard.remove", "model-selection.register", "system-prompt.register"];
8790
8795
 
8791
8796
  /** Diagnostic messages carry plugin-controlled text (parse errors, module errors); bound it so a
8792
8797
  * hostile or accidental multi-megabyte error can never blow up a log line or a render surface. */
@@ -9500,6 +9505,10 @@ export declare const PluginCapabilityClaimInputV1: z.ZodCustom<{
9500
9505
  target: "kay.app";
9501
9506
  slug: "plugins.set-enabled";
9502
9507
  envelope: Record<string, never>;
9508
+ } | {
9509
+ target: "kay.app";
9510
+ slug: "plugins.read";
9511
+ envelope: Record<string, never>;
9503
9512
  } | {
9504
9513
  target: "kay.app";
9505
9514
  slug: "sessions.assign-project";
@@ -9790,6 +9799,10 @@ export declare const PluginCapabilityClaimInputV1: z.ZodCustom<{
9790
9799
  target: "kay.app";
9791
9800
  slug: "plugins.set-enabled";
9792
9801
  envelope: Record<string, never>;
9802
+ } | {
9803
+ target: "kay.app";
9804
+ slug: "plugins.read";
9805
+ envelope: Record<string, never>;
9793
9806
  } | {
9794
9807
  target: "kay.app";
9795
9808
  slug: "sessions.assign-project";
@@ -10090,6 +10103,10 @@ export declare const PluginCapabilityClaimV1: z.ZodDiscriminatedUnion<[z.ZodObje
10090
10103
  target: z.ZodLiteral<"kay.app">;
10091
10104
  slug: z.ZodLiteral<"plugins.set-enabled">;
10092
10105
  envelope: z.ZodObject<{}, z.core.$strict>;
10106
+ }, z.core.$strict>, z.ZodObject<{
10107
+ target: z.ZodLiteral<"kay.app">;
10108
+ slug: z.ZodLiteral<"plugins.read">;
10109
+ envelope: z.ZodObject<{}, z.core.$strict>;
10093
10110
  }, z.core.$strict>, z.ZodObject<{
10094
10111
  target: z.ZodLiteral<"kay.app">;
10095
10112
  slug: z.ZodLiteral<"sessions.assign-project">;
@@ -10436,6 +10453,10 @@ export declare const PluginCapabilityDecisionV1: z.ZodDiscriminatedUnion<[z.ZodO
10436
10453
  target: z.ZodLiteral<"kay.app">;
10437
10454
  slug: z.ZodLiteral<"plugins.set-enabled">;
10438
10455
  envelope: z.ZodObject<{}, z.core.$strict>;
10456
+ }, z.core.$strict>, z.ZodObject<{
10457
+ target: z.ZodLiteral<"kay.app">;
10458
+ slug: z.ZodLiteral<"plugins.read">;
10459
+ envelope: z.ZodObject<{}, z.core.$strict>;
10439
10460
  }, z.core.$strict>, z.ZodObject<{
10440
10461
  target: z.ZodLiteral<"kay.app">;
10441
10462
  slug: z.ZodLiteral<"sessions.assign-project">;
@@ -10781,6 +10802,10 @@ export declare const PluginCapabilityDecisionV1: z.ZodDiscriminatedUnion<[z.ZodO
10781
10802
  target: z.ZodLiteral<"kay.app">;
10782
10803
  slug: z.ZodLiteral<"plugins.set-enabled">;
10783
10804
  envelope: z.ZodObject<{}, z.core.$strict>;
10805
+ }, z.core.$strict>, z.ZodObject<{
10806
+ target: z.ZodLiteral<"kay.app">;
10807
+ slug: z.ZodLiteral<"plugins.read">;
10808
+ envelope: z.ZodObject<{}, z.core.$strict>;
10784
10809
  }, z.core.$strict>, z.ZodObject<{
10785
10810
  target: z.ZodLiteral<"kay.app">;
10786
10811
  slug: z.ZodLiteral<"sessions.assign-project">;
@@ -11160,6 +11185,10 @@ export declare const PluginCapabilityRefusalV1: z.ZodObject<{
11160
11185
  target: z.ZodLiteral<"kay.app">;
11161
11186
  slug: z.ZodLiteral<"plugins.set-enabled">;
11162
11187
  envelope: z.ZodObject<{}, z.core.$strict>;
11188
+ }, z.core.$strict>, z.ZodObject<{
11189
+ target: z.ZodLiteral<"kay.app">;
11190
+ slug: z.ZodLiteral<"plugins.read">;
11191
+ envelope: z.ZodObject<{}, z.core.$strict>;
11163
11192
  }, z.core.$strict>, z.ZodObject<{
11164
11193
  target: z.ZodLiteral<"kay.app">;
11165
11194
  slug: z.ZodLiteral<"sessions.assign-project">;
@@ -12756,7 +12785,7 @@ declare type PrereleaseIdentifier = string | number;
12756
12785
  * plugin is refused one with layer `release`, nothing offers a grant for it, and a stored grant
12757
12786
  * naming one confers nothing. Each entry backs one SDK method a built-in calls in place of a daemon
12758
12787
  * object it used to take at creation; making it public later means adding consent copy and moving
12759
- * it out of this list (`docs/plugin-host/private-api.md`).
12788
+ * it out of this list (`docs/plans/plugin-host/private-api.md`).
12760
12789
  */
12761
12790
  export declare const PRIVATE_PLUGIN_CAPABILITY_SLUGS: readonly PluginCapabilitySlug[];
12762
12791
 
package/dist/index.js CHANGED
@@ -260,8 +260,9 @@ var JsonSchema = z4.record(z4.string(), JsonValue);
260
260
  var KAY_PLUGIN_MANIFEST_SIZE_CAP_BYTES = 1024 * 1024;
261
261
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
262
262
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
263
- var KAY_PLUGIN_SDK_VERSION = "0.55.3";
263
+ var KAY_PLUGIN_SDK_VERSION = "0.55.4";
264
264
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
265
+ "0.55.3",
265
266
  "0.55.2",
266
267
  "0.55.1",
267
268
  "0.55.0",
@@ -1808,6 +1809,7 @@ var PLUGIN_CAPABILITY_SLUGS = [
1808
1809
  "skills.write",
1809
1810
  "skills.share",
1810
1811
  "plugins.set-enabled",
1812
+ "plugins.read",
1811
1813
  "sessions.assign-project",
1812
1814
  "artifacts.resolve-file",
1813
1815
  "process.run",
@@ -2015,6 +2017,13 @@ function createAuthoritySchemas(canonical) {
2015
2017
  slug: z11.literal("plugins.set-enabled"),
2016
2018
  envelope: z11.strictObject({})
2017
2019
  }),
2020
+ z11.strictObject({
2021
+ // See which installed, enabled plugins declare which auth services and whether each is
2022
+ // connected: ids, display names and a boolean, never an account, identity or scope.
2023
+ target: z11.literal("kay.app"),
2024
+ slug: z11.literal("plugins.read"),
2025
+ envelope: z11.strictObject({})
2026
+ }),
2018
2027
  z11.strictObject({
2019
2028
  // Set the project of sessions no current call or event is about (accepting a project
2020
2029
  // suggestion, undoing an automatic filing). Private (PRIVATE_PLUGIN_CAPABILITY_SLUGS): whether
@@ -2367,6 +2376,7 @@ function sameClaim(a, b) {
2367
2376
  case "skills.write":
2368
2377
  case "skills.share":
2369
2378
  case "plugins.set-enabled":
2379
+ case "plugins.read":
2370
2380
  case "sessions.assign-project":
2371
2381
  case "artifacts.resolve-file":
2372
2382
  case "process.run":
@@ -2462,6 +2472,7 @@ function envelopePairs(a, b) {
2462
2472
  case "skills.write":
2463
2473
  case "skills.share":
2464
2474
  case "plugins.set-enabled":
2475
+ case "plugins.read":
2465
2476
  case "sessions.assign-project":
2466
2477
  case "artifacts.resolve-file":
2467
2478
  case "process.run":
@@ -5063,7 +5074,7 @@ function createManifestSchemas(canonical) {
5063
5074
  contextContributors: z18.array(ContextContributorContribution2).optional(),
5064
5075
  // Vendored MCP servers this plugin ships (see `McpServerContributions`). Each is hosted only
5065
5076
  // for a plugin holding `mcp.host-server` for its name and URL; that is decided at
5066
- // composition, not here (see ARCHITECTURE.md "Validation Law").
5077
+ // composition, not here (see AGENTS.md).
5067
5078
  mcpServers: McpServerContributions2.optional(),
5068
5079
  // Handler restricted to endpoint-only by the manifest-level refinement below.
5069
5080
  commands: z18.array(CommandContribution2).optional()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.55.3",
3
+ "version": "0.55.4",
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",