@yaklabs-ai/plugin-protocol 0.27.1 → 0.28.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.27.1"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.28.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.27.1",
4
+ "version": "0.28.0",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -3908,8 +3908,17 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
3908
3908
  * hosted module's code and manifest must agree on it, and the daemon reads it to find an
3909
3909
  * external-CLI scheme without running the module. A module that runs in the daemon is unchanged,
3910
3910
  * so this is additive; a plugin whose manifest sets `authScheme` declares ^0.27.1.
3911
+ *
3912
+ * 0.28.0 makes "whose credential is this?" one call (#15714). `api.auth.registerAccountLookup`
3913
+ * replaces `registerValidator` and `registerAccountResolver`: it takes the credential, its fields and
3914
+ * a cancel signal, and returns every account the credential reaches. A manifest says `account:
3915
+ * "lookup"` on any `oauth2` or `api-key` scheme the plugin answers for, in place of `validates: true`
3916
+ * and the `"resolveAccountId"` and `"resolveAccounts"` values, and a `pkce` scheme on a client the
3917
+ * host holds may name one too. A plugin using a removed member or value stops loading until it is
3918
+ * rebuilt; a code search found none outside this repo. A plugin with a sign-in declares ^0.28.0. 0.26.3 and 0.27.1
3919
+ * stay served for a plugin that uses none of these.
3911
3920
  */
3912
- export declare const KAY_PLUGIN_SDK_VERSION: "0.27.1";
3921
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.28.0";
3913
3922
 
3914
3923
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
3915
3924
 
@@ -5498,10 +5507,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5498
5507
  exchange: z.ZodLiteral<"pkce">;
5499
5508
  clientId: z.ZodOptional<z.ZodString>;
5500
5509
  clientSecret: z.ZodOptional<z.ZodString>;
5501
- account: z.ZodOptional<z.ZodEnum<{
5502
- resolveAccountId: "resolveAccountId";
5503
- resolveAccounts: "resolveAccounts";
5504
- }>>;
5510
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
5505
5511
  clientSuppliers: z.ZodArray<z.ZodEnum<{
5506
5512
  user: "user";
5507
5513
  kay: "kay";
@@ -5533,10 +5539,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5533
5539
  exchange: z.ZodLiteral<"confidential">;
5534
5540
  clientSuppliers: z.ZodOptional<z.ZodTuple<[z.ZodLiteral<"kay">], null>>;
5535
5541
  scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
5536
- account: z.ZodUnion<readonly [z.ZodEnum<{
5537
- resolveAccountId: "resolveAccountId";
5538
- resolveAccounts: "resolveAccounts";
5539
- }>, z.ZodLiteral<"sign-in">]>;
5542
+ account: z.ZodUnion<readonly [z.ZodLiteral<"lookup">, z.ZodLiteral<"sign-in">]>;
5540
5543
  authorizationUrl: z.ZodURL;
5541
5544
  tokenUrl: z.ZodURL;
5542
5545
  extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -5570,7 +5573,7 @@ export declare const KayPluginManifestV1: z.ZodObject<{
5570
5573
  instructions: z.ZodString;
5571
5574
  url: z.ZodURL;
5572
5575
  }, z.core.$strict>>;
5573
- validates: z.ZodOptional<z.ZodLiteral<true>>;
5576
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
5574
5577
  displayName: z.ZodOptional<z.ZodString>;
5575
5578
  agentHint: z.ZodOptional<z.ZodString>;
5576
5579
  summary: z.ZodOptional<z.ZodString>;
@@ -6742,10 +6745,7 @@ export declare const PluginAuthManifest: z.ZodObject<{
6742
6745
  exchange: z.ZodLiteral<"pkce">;
6743
6746
  clientId: z.ZodOptional<z.ZodString>;
6744
6747
  clientSecret: z.ZodOptional<z.ZodString>;
6745
- account: z.ZodOptional<z.ZodEnum<{
6746
- resolveAccountId: "resolveAccountId";
6747
- resolveAccounts: "resolveAccounts";
6748
- }>>;
6748
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
6749
6749
  clientSuppliers: z.ZodArray<z.ZodEnum<{
6750
6750
  user: "user";
6751
6751
  kay: "kay";
@@ -6777,10 +6777,7 @@ export declare const PluginAuthManifest: z.ZodObject<{
6777
6777
  exchange: z.ZodLiteral<"confidential">;
6778
6778
  clientSuppliers: z.ZodOptional<z.ZodTuple<[z.ZodLiteral<"kay">], null>>;
6779
6779
  scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
6780
- account: z.ZodUnion<readonly [z.ZodEnum<{
6781
- resolveAccountId: "resolveAccountId";
6782
- resolveAccounts: "resolveAccounts";
6783
- }>, z.ZodLiteral<"sign-in">]>;
6780
+ account: z.ZodUnion<readonly [z.ZodLiteral<"lookup">, z.ZodLiteral<"sign-in">]>;
6784
6781
  authorizationUrl: z.ZodURL;
6785
6782
  tokenUrl: z.ZodURL;
6786
6783
  extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -6814,7 +6811,7 @@ export declare const PluginAuthManifest: z.ZodObject<{
6814
6811
  instructions: z.ZodString;
6815
6812
  url: z.ZodURL;
6816
6813
  }, z.core.$strict>>;
6817
- validates: z.ZodOptional<z.ZodLiteral<true>>;
6814
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
6818
6815
  displayName: z.ZodOptional<z.ZodString>;
6819
6816
  agentHint: z.ZodOptional<z.ZodString>;
6820
6817
  summary: z.ZodOptional<z.ZodString>;
@@ -6903,10 +6900,7 @@ export declare const PluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDiscriminat
6903
6900
  exchange: z.ZodLiteral<"pkce">;
6904
6901
  clientId: z.ZodOptional<z.ZodString>;
6905
6902
  clientSecret: z.ZodOptional<z.ZodString>;
6906
- account: z.ZodOptional<z.ZodEnum<{
6907
- resolveAccountId: "resolveAccountId";
6908
- resolveAccounts: "resolveAccounts";
6909
- }>>;
6903
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
6910
6904
  clientSuppliers: z.ZodArray<z.ZodEnum<{
6911
6905
  user: "user";
6912
6906
  kay: "kay";
@@ -6938,10 +6932,7 @@ export declare const PluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDiscriminat
6938
6932
  exchange: z.ZodLiteral<"confidential">;
6939
6933
  clientSuppliers: z.ZodOptional<z.ZodTuple<[z.ZodLiteral<"kay">], null>>;
6940
6934
  scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
6941
- account: z.ZodUnion<readonly [z.ZodEnum<{
6942
- resolveAccountId: "resolveAccountId";
6943
- resolveAccounts: "resolveAccounts";
6944
- }>, z.ZodLiteral<"sign-in">]>;
6935
+ account: z.ZodUnion<readonly [z.ZodLiteral<"lookup">, z.ZodLiteral<"sign-in">]>;
6945
6936
  authorizationUrl: z.ZodURL;
6946
6937
  tokenUrl: z.ZodURL;
6947
6938
  extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -6975,7 +6966,7 @@ export declare const PluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDiscriminat
6975
6966
  instructions: z.ZodString;
6976
6967
  url: z.ZodURL;
6977
6968
  }, z.core.$strict>>;
6978
- validates: z.ZodOptional<z.ZodLiteral<true>>;
6969
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
6979
6970
  displayName: z.ZodOptional<z.ZodString>;
6980
6971
  agentHint: z.ZodOptional<z.ZodString>;
6981
6972
  summary: z.ZodOptional<z.ZodString>;
@@ -7045,10 +7036,7 @@ export declare const PluginAuthService: z.ZodObject<{
7045
7036
  exchange: z.ZodLiteral<"pkce">;
7046
7037
  clientId: z.ZodOptional<z.ZodString>;
7047
7038
  clientSecret: z.ZodOptional<z.ZodString>;
7048
- account: z.ZodOptional<z.ZodEnum<{
7049
- resolveAccountId: "resolveAccountId";
7050
- resolveAccounts: "resolveAccounts";
7051
- }>>;
7039
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
7052
7040
  clientSuppliers: z.ZodArray<z.ZodEnum<{
7053
7041
  user: "user";
7054
7042
  kay: "kay";
@@ -7080,10 +7068,7 @@ export declare const PluginAuthService: z.ZodObject<{
7080
7068
  exchange: z.ZodLiteral<"confidential">;
7081
7069
  clientSuppliers: z.ZodOptional<z.ZodTuple<[z.ZodLiteral<"kay">], null>>;
7082
7070
  scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
7083
- account: z.ZodUnion<readonly [z.ZodEnum<{
7084
- resolveAccountId: "resolveAccountId";
7085
- resolveAccounts: "resolveAccounts";
7086
- }>, z.ZodLiteral<"sign-in">]>;
7071
+ account: z.ZodUnion<readonly [z.ZodLiteral<"lookup">, z.ZodLiteral<"sign-in">]>;
7087
7072
  authorizationUrl: z.ZodURL;
7088
7073
  tokenUrl: z.ZodURL;
7089
7074
  extraAuthorizeParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -7117,7 +7102,7 @@ export declare const PluginAuthService: z.ZodObject<{
7117
7102
  instructions: z.ZodString;
7118
7103
  url: z.ZodURL;
7119
7104
  }, z.core.$strict>>;
7120
- validates: z.ZodOptional<z.ZodLiteral<true>>;
7105
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
7121
7106
  displayName: z.ZodOptional<z.ZodString>;
7122
7107
  agentHint: z.ZodOptional<z.ZodString>;
7123
7108
  summary: z.ZodOptional<z.ZodString>;
@@ -10593,10 +10578,7 @@ export declare const ResolvedPluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDis
10593
10578
  }>>;
10594
10579
  clientId: z.ZodOptional<z.ZodString>;
10595
10580
  clientSecret: z.ZodOptional<z.ZodString>;
10596
- account: z.ZodOptional<z.ZodEnum<{
10597
- resolveAccountId: "resolveAccountId";
10598
- resolveAccounts: "resolveAccounts";
10599
- }>>;
10581
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
10600
10582
  localId: z.ZodString;
10601
10583
  globalId: z.ZodString;
10602
10584
  kind: z.ZodLiteral<"oauth2">;
@@ -10625,8 +10607,7 @@ export declare const ResolvedPluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDis
10625
10607
  exchange: z.ZodLiteral<"confidential">;
10626
10608
  clientSuppliers: z.ZodTuple<[z.ZodLiteral<"kay">], null>;
10627
10609
  account: z.ZodEnum<{
10628
- resolveAccountId: "resolveAccountId";
10629
- resolveAccounts: "resolveAccounts";
10610
+ lookup: "lookup";
10630
10611
  "sign-in": "sign-in";
10631
10612
  }>;
10632
10613
  localId: z.ZodString;
@@ -10667,7 +10648,7 @@ export declare const ResolvedPluginAuthScheme: z.ZodDiscriminatedUnion<[z.ZodDis
10667
10648
  instructions: z.ZodString;
10668
10649
  url: z.ZodURL;
10669
10650
  }, z.core.$strict>>;
10670
- validates: z.ZodOptional<z.ZodLiteral<true>>;
10651
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
10671
10652
  displayName: z.ZodOptional<z.ZodString>;
10672
10653
  agentHint: z.ZodOptional<z.ZodString>;
10673
10654
  summary: z.ZodOptional<z.ZodString>;
@@ -10742,10 +10723,7 @@ export declare const ResolvedPluginAuthService: z.ZodObject<{
10742
10723
  }>>;
10743
10724
  clientId: z.ZodOptional<z.ZodString>;
10744
10725
  clientSecret: z.ZodOptional<z.ZodString>;
10745
- account: z.ZodOptional<z.ZodEnum<{
10746
- resolveAccountId: "resolveAccountId";
10747
- resolveAccounts: "resolveAccounts";
10748
- }>>;
10726
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
10749
10727
  localId: z.ZodString;
10750
10728
  globalId: z.ZodString;
10751
10729
  kind: z.ZodLiteral<"oauth2">;
@@ -10774,8 +10752,7 @@ export declare const ResolvedPluginAuthService: z.ZodObject<{
10774
10752
  exchange: z.ZodLiteral<"confidential">;
10775
10753
  clientSuppliers: z.ZodTuple<[z.ZodLiteral<"kay">], null>;
10776
10754
  account: z.ZodEnum<{
10777
- resolveAccountId: "resolveAccountId";
10778
- resolveAccounts: "resolveAccounts";
10755
+ lookup: "lookup";
10779
10756
  "sign-in": "sign-in";
10780
10757
  }>;
10781
10758
  localId: z.ZodString;
@@ -10816,7 +10793,7 @@ export declare const ResolvedPluginAuthService: z.ZodObject<{
10816
10793
  instructions: z.ZodString;
10817
10794
  url: z.ZodURL;
10818
10795
  }, z.core.$strict>>;
10819
- validates: z.ZodOptional<z.ZodLiteral<true>>;
10796
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
10820
10797
  displayName: z.ZodOptional<z.ZodString>;
10821
10798
  agentHint: z.ZodOptional<z.ZodString>;
10822
10799
  summary: z.ZodOptional<z.ZodString>;
@@ -10964,10 +10941,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
10964
10941
  }>>;
10965
10942
  clientId: z.ZodOptional<z.ZodString>;
10966
10943
  clientSecret: z.ZodOptional<z.ZodString>;
10967
- account: z.ZodOptional<z.ZodEnum<{
10968
- resolveAccountId: "resolveAccountId";
10969
- resolveAccounts: "resolveAccounts";
10970
- }>>;
10944
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
10971
10945
  localId: z.ZodString;
10972
10946
  globalId: z.ZodString;
10973
10947
  kind: z.ZodLiteral<"oauth2">;
@@ -10996,8 +10970,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
10996
10970
  exchange: z.ZodLiteral<"confidential">;
10997
10971
  clientSuppliers: z.ZodTuple<[z.ZodLiteral<"kay">], null>;
10998
10972
  account: z.ZodEnum<{
10999
- resolveAccountId: "resolveAccountId";
11000
- resolveAccounts: "resolveAccounts";
10973
+ lookup: "lookup";
11001
10974
  "sign-in": "sign-in";
11002
10975
  }>;
11003
10976
  localId: z.ZodString;
@@ -11038,7 +11011,7 @@ export declare const ResolvedPluginContractV1: z.ZodObject<{
11038
11011
  instructions: z.ZodString;
11039
11012
  url: z.ZodURL;
11040
11013
  }, z.core.$strict>>;
11041
- validates: z.ZodOptional<z.ZodLiteral<true>>;
11014
+ account: z.ZodOptional<z.ZodLiteral<"lookup">>;
11042
11015
  displayName: z.ZodOptional<z.ZodString>;
11043
11016
  agentHint: z.ZodOptional<z.ZodString>;
11044
11017
  summary: z.ZodOptional<z.ZodString>;
package/dist/index.js CHANGED
@@ -222,8 +222,11 @@ var JsonSchema = z4.record(z4.string(), JsonValue);
222
222
  // packages/plugin-protocol/dist/common.js
223
223
  var KAY_PLUGIN_PROTOCOL_VERSION = "kay.plugin.v1";
224
224
  var KAY_PLUGIN_PROTOCOL_PACKAGE_NAME = "@bonsai/plugin-protocol";
225
- var KAY_PLUGIN_SDK_VERSION = "0.27.1";
226
- var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = ["0.26.3"];
225
+ var KAY_PLUGIN_SDK_VERSION = "0.28.0";
226
+ var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
227
+ "0.26.3",
228
+ "0.27.1"
229
+ ];
227
230
  var KAY_PLUGIN_TARGET_NAMES = [
228
231
  "kay.agent",
229
232
  "kay.app",
@@ -3916,10 +3919,7 @@ function createManifestSchemas(canonical) {
3916
3919
  /** Provider-specific query parameters added to the authorize URL. */
3917
3920
  extraAuthorizeParams: z13.record(NonEmptyString3, z13.string()).optional()
3918
3921
  };
3919
- const PluginAuthSchemeAccountLookup = z13.enum([
3920
- "resolveAccountId",
3921
- "resolveAccounts"
3922
- ]);
3922
+ const PluginAuthSchemeAccountLookup = z13.literal("lookup");
3923
3923
  const PluginAuthSchemeOAuthPkce = z13.strictObject({
3924
3924
  ...PluginProvisioningField,
3925
3925
  ...PluginAuthSchemeDescriptionFields,
@@ -3939,7 +3939,8 @@ function createManifestSchemas(canonical) {
3939
3939
  clientSecret: NonEmptyString3.optional(),
3940
3940
  /**
3941
3941
  * Where the account comes from (see {@link PluginAuthSchemeAccountLookup}); required with a
3942
- * `clientId`. A scheme without one is run by Bonsai's own client, which names the account.
3942
+ * `clientId`. A scheme without one runs on a client the host holds and may name a lookup too
3943
+ * (Google, Microsoft); naming none leaves the record under the placeholder account.
3943
3944
  */
3944
3945
  account: PluginAuthSchemeAccountLookup.optional(),
3945
3946
  /**
@@ -3960,8 +3961,8 @@ function createManifestSchemas(canonical) {
3960
3961
  }).refine((scheme) => scheme.clientSecret === void 0 || scheme.clientId !== void 0, {
3961
3962
  message: "clientSecret needs the clientId it belongs to",
3962
3963
  path: ["clientSecret"]
3963
- }).refine((scheme) => scheme.account === void 0 === (scheme.clientId === void 0), {
3964
- message: "a scheme with its own clientId names where its account comes from (`account`), and one without declares none",
3964
+ }).refine((scheme) => scheme.clientId === void 0 || scheme.account !== void 0, {
3965
+ message: "a scheme with its own clientId names where its account comes from (`account`)",
3965
3966
  path: ["account"]
3966
3967
  });
3967
3968
  const PluginAuthSchemeOAuthConfidential = z13.strictObject({
@@ -4001,10 +4002,11 @@ function createManifestSchemas(canonical) {
4001
4002
  /** Where and how the person creates the key outside Bonsai. */
4002
4003
  setup: z13.strictObject({ instructions: NonEmptyString3, url: HttpsUrl2 }).optional(),
4003
4004
  /**
4004
- * The plugin checks a key before it is saved, with the validator it registers for this scheme
4005
- * (`api.auth.registerValidator`).
4005
+ * `"lookup"`: the plugin checks a key before it is saved and names its account, with the function
4006
+ * it registers (`api.auth.registerAccountLookup`). Absent: the key is saved unchecked, under the
4007
+ * caller's account or the placeholder.
4006
4008
  */
4007
- validates: z13.literal(true).optional()
4009
+ account: PluginAuthSchemeAccountLookup.optional()
4008
4010
  });
4009
4011
  const PluginAuthSchemeDelegated = z13.strictObject({
4010
4012
  ...PluginAuthSchemeDescriptionFields,
@@ -5190,13 +5192,13 @@ function createResolvedContractSchemas(canonical) {
5190
5192
  clientSuppliers: z14.array(PluginOAuthClientSupplier2).nonempty(),
5191
5193
  clientId: NonEmptyString3.optional(),
5192
5194
  clientSecret: NonEmptyString3.optional(),
5193
- account: z14.enum(["resolveAccountId", "resolveAccounts"]).optional()
5195
+ account: z14.literal("lookup").optional()
5194
5196
  });
5195
5197
  const ResolvedPluginAuthSchemeOAuthConfidential = z14.strictObject({
5196
5198
  ...ResolvedPluginAuthSchemeOAuthBase,
5197
5199
  exchange: z14.literal("confidential"),
5198
5200
  clientSuppliers: z14.tuple([z14.literal("kay")]),
5199
- account: z14.enum(["resolveAccountId", "resolveAccounts", "sign-in"])
5201
+ account: z14.enum(["lookup", "sign-in"])
5200
5202
  });
5201
5203
  const ResolvedPluginAuthSchemeOAuth2 = z14.discriminatedUnion("exchange", [
5202
5204
  ResolvedPluginAuthSchemeOAuthPkce,
@@ -5213,7 +5215,7 @@ function createResolvedContractSchemas(canonical) {
5213
5215
  inputLabel: NonEmptyString3,
5214
5216
  fields: z14.array(z14.strictObject({ id: z14.string(), label: z14.string() })).optional(),
5215
5217
  setup: z14.strictObject({ instructions: z14.string(), url: HttpsUrl2 }).optional(),
5216
- validates: z14.literal(true).optional()
5218
+ account: z14.literal("lookup").optional()
5217
5219
  });
5218
5220
  const ResolvedPluginAuthSchemeDelegated = z14.strictObject({
5219
5221
  ...ResolvedPluginAuthSchemeDescriptionFields,
@@ -5577,7 +5579,7 @@ function resolveAuthServices(namespace, manifest) {
5577
5579
  inputLabel: scheme.inputLabel ?? `${service.displayName} API key`,
5578
5580
  ...scheme.fields === void 0 ? {} : { fields: scheme.fields.map((field) => ({ ...field })) },
5579
5581
  ...scheme.setup === void 0 ? {} : { setup: { ...scheme.setup } },
5580
- ...scheme.validates === void 0 ? {} : { validates: scheme.validates },
5582
+ ...scheme.account === void 0 ? {} : { account: scheme.account },
5581
5583
  ...scopesField,
5582
5584
  ...descriptionFields,
5583
5585
  ...provisioningField
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.27.1",
3
+ "version": "0.28.0",
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",