@yaklabs-ai/plugin-protocol 0.13.7 → 0.13.9

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.7"
14
+ "@bonsai/plugin-protocol": "npm:@yaklabs-ai/plugin-protocol@^0.13.9"
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.7",
4
+ "version": "0.13.9",
5
5
  "target": "npm",
6
6
  "firstPartyLicense": "MIT",
7
7
  "bundled": [],
package/dist/index.d.ts CHANGED
@@ -2059,7 +2059,7 @@ export declare const KAY_EVENT_PUBLISHER_ID: "kay";
2059
2059
  declare const KAY_PLUGIN_COMPATIBILITY_REFUSAL_CODES: readonly ["unsupported-protocol", "sdk-range-unsatisfied", "sdk-range-unsupported", "host-sdk-version-invalid"];
2060
2060
 
2061
2061
  /** Released SDK contracts still implemented by the host, alongside its current SDK. */
2062
- 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"];
2062
+ 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"];
2063
2063
 
2064
2064
  /** The file whose presence makes a directory a plugin. A directory without one is not a plugin. */
2065
2065
  export declare const KAY_PLUGIN_MANIFEST_FILENAME = "kay-plugin.json";
@@ -2352,8 +2352,21 @@ export declare const KAY_PLUGIN_PROTOCOL_VERSION: "kay.plugin.v1";
2352
2352
  * `skills.declared-source`). Additive: a plugin compiled against 0.13.6 never imports the new
2353
2353
  * subpaths, and its manifest parses unchanged. A plugin that imports one declares `^0.13.7`, so
2354
2354
  * an older host refuses a directory or repository plugin at load instead of the import failing.
2355
+ *
2356
+ * 0.13.8 takes the PATCH slot under the addition rule, as `api.withJev` did in 0.8.1: one new
2357
+ * member on the api a plugin RECEIVES, `api.systemOne` / `app.systemOne` (`@bonsai/plugin-sdk/
2358
+ * system-one`), the System One client for `decide` and `extract` on Jev, Clef, Clef Flash and
2359
+ * Clairic. It is non-optional for the same reason `withJev` is, and a host with no System One
2360
+ * binds a client that throws `not-served`. `withJev` stays for every compatible plugin. A
2361
+ * plugin that calls `systemOne` declares `^0.13.8`, so an older host refuses it at load instead
2362
+ * of the member being absent.
2363
+ *
2364
+ * 0.13.9 adds `@bonsai/plugin-sdk/zod`: the host's `z` on an entry with no other import, for
2365
+ * code a `kay.ui` page also loads (`kay-agent` exports the same `z`). Additive: a plugin compiled
2366
+ * against 0.13.8 never imports it. A plugin that imports it declares `^0.13.9`, so an older host
2367
+ * refuses a directory or repository plugin at load instead of the import failing.
2355
2368
  */
2356
- export declare const KAY_PLUGIN_SDK_VERSION: "0.13.7";
2369
+ export declare const KAY_PLUGIN_SDK_VERSION: "0.13.9";
2357
2370
 
2358
2371
  export declare const KAY_PLUGIN_TARGET_NAMES: readonly ["kay.agent", "kay.app", "kay.ui"];
2359
2372
 
@@ -3808,8 +3821,9 @@ export declare type McpServerAuthMode = z.infer<typeof McpServerAuthMode>;
3808
3821
  * or omitted `auth`) requires `authService`; `auth: "none"` may omit it. `authService` is a local
3809
3822
  * id that must resolve within this same manifest; unlike `uriModule.authService`, qualified foreign
3810
3823
  * service refs are not permitted because the MCP binding belongs to the plugin that ships it.
3811
- * Declaring `mcpServers` at
3812
- * all is bundled-plugin-only — enforced at composition, not by this schema (see `ARCHITECTURE.md`).
3824
+ * A declared server is hosted
3825
+ * only for a plugin holding `mcp.host-server` for its name and URL (the release's own plugins hold
3826
+ * it) — decided at composition, not by this schema (see `ARCHITECTURE.md`).
3813
3827
  */
3814
3828
  export declare const McpServerContribution: z.ZodObject<{
3815
3829
  url: z.ZodString;
@@ -6373,9 +6387,9 @@ export declare type ResolvedKayAppDataSource = z.infer<typeof ResolvedKayAppData
6373
6387
  * always carries its applied default (`"oauth"` when the manifest omits it), matching this file's
6374
6388
  * applied-default posture elsewhere (e.g. `ResolvedPluginWebSession`'s probe `method`). The
6375
6389
  * manifest-local `authService` is resolved to this plugin's namespace-qualified `authServiceId`.
6376
- * Bundled-plugin-only enforcement and cross-plugin `name` collisions are NOT this package's to
6377
- * decide (see ARCHITECTURE.md) — both need the full plugin roster, which a single resolved
6378
- * manifest cannot see.
6390
+ * Whether a server is hosted (the `mcp.host-server` grant) and cross-plugin `name` collisions are
6391
+ * NOT this package's to decide (see ARCHITECTURE.md) — both need the full plugin roster and its
6392
+ * decisions, which a single resolved manifest cannot see.
6379
6393
  */
6380
6394
  export declare const ResolvedKayAppMcpServer: z.ZodObject<{
6381
6395
  name: z.ZodString;
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.7";
139
+ var KAY_PLUGIN_SDK_VERSION = "0.13.9";
140
140
  var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
141
141
  "0.8.0",
142
142
  "0.8.1",
@@ -161,7 +161,9 @@ var KAY_PLUGIN_COMPATIBLE_SDK_VERSIONS = [
161
161
  "0.13.3",
162
162
  "0.13.4",
163
163
  "0.13.5",
164
- "0.13.6"
164
+ "0.13.6",
165
+ "0.13.7",
166
+ "0.13.8"
165
167
  ];
166
168
  var KAY_PLUGIN_TARGET_NAMES = [
167
169
  "kay.agent",
@@ -2914,9 +2916,9 @@ var KayAgentTargetManifest = z10.strictObject({
2914
2916
  * routing, so it should say what the capability is and when to reach for it, not how to
2915
2917
  * operate it — that is the primer's job, and the host appends the primer route after the body.
2916
2918
  *
2917
- * Policy the HOST applies (never trust this field alone): a body over 500 words is dropped,
2918
- * and a directory/repository-origin plugin's declaration is ignored — a third-party manifest
2919
- * does not buy prompt residency (mirrors the skill-exposure clamp).
2919
+ * Policy the HOST applies (never trust this field alone): the doc renders only for a plugin
2920
+ * holding the `prompt.resident` claim (Bonsai's own plugins hold it; any other plugin needs a
2921
+ * grant a person approved), and a body over 500 words is dropped.
2920
2922
  */
2921
2923
  prompt: PackageAssetPath.optional(),
2922
2924
  /**
@@ -2953,8 +2955,8 @@ var KayAppTargetManifest = z10.strictObject({
2953
2955
  deviceDelegations: z10.array(DeviceDelegationContribution).optional(),
2954
2956
  corpusConsumers: z10.array(CorpusContribution).optional(),
2955
2957
  contextContributors: z10.array(ContextContributorContribution).optional(),
2956
- // Vendored MCP servers this plugin ships (see `McpServerContributions`). Bundled-plugin-only
2957
- // in practice; this package cannot see plugin origin, so that ceiling is enforced at
2958
+ // Vendored MCP servers this plugin ships (see `McpServerContributions`). Each is hosted only
2959
+ // for a plugin holding `mcp.host-server` for its name and URL; that is decided at
2958
2960
  // composition, not here (see ARCHITECTURE.md "Validation Law").
2959
2961
  mcpServers: McpServerContributions.optional(),
2960
2962
  // Handler restricted to endpoint-only by the manifest-level refinement below.
@@ -4794,6 +4796,9 @@ function referencedPaths(manifest) {
4794
4796
  if (manifest.iconDark !== void 0) {
4795
4797
  refs.push({ label: "iconDark", path: manifest.iconDark });
4796
4798
  }
4799
+ if (kayAgent?.prompt !== void 0) {
4800
+ refs.push({ label: "kay.agent prompt", path: kayAgent.prompt });
4801
+ }
4797
4802
  for (const skill of kayAgent?.contributes?.skills ?? []) {
4798
4803
  refs.push({ label: `skill '${skill.localId}'`, path: skill.path });
4799
4804
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yaklabs-ai/plugin-protocol",
3
- "version": "0.13.7",
3
+ "version": "0.13.9",
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",