diff --git a/packages/server/src/plugins/claude-usage-source/paseo-plugin.json b/packages/server/src/plugins/claude-usage-source/paseo-plugin.json index 1e2c89dca0..f4e639a515 100644 --- a/packages/server/src/plugins/claude-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/claude-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "claude-usage-source" } +{ "id": "claude-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/codex-usage-source/paseo-plugin.json b/packages/server/src/plugins/codex-usage-source/paseo-plugin.json index 6fe9779596..64470099fb 100644 --- a/packages/server/src/plugins/codex-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/codex-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "codex-usage-source" } +{ "id": "codex-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/copilot-usage-source/paseo-plugin.json b/packages/server/src/plugins/copilot-usage-source/paseo-plugin.json index 306f1a467a..ab6addf629 100644 --- a/packages/server/src/plugins/copilot-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/copilot-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "copilot-usage-source" } +{ "id": "copilot-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/cursor-usage-source/paseo-plugin.json b/packages/server/src/plugins/cursor-usage-source/paseo-plugin.json index 5265bb7985..311fd28ee4 100644 --- a/packages/server/src/plugins/cursor-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/cursor-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "cursor-usage-source" } +{ "id": "cursor-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/grok-usage-source/paseo-plugin.json b/packages/server/src/plugins/grok-usage-source/paseo-plugin.json index 0954ded8d4..2fbdcc5f14 100644 --- a/packages/server/src/plugins/grok-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/grok-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "grok-usage-source" } +{ "id": "grok-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/kimi-usage-source/paseo-plugin.json b/packages/server/src/plugins/kimi-usage-source/paseo-plugin.json index 1944cc1841..c81434ce3b 100644 --- a/packages/server/src/plugins/kimi-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/kimi-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "kimi-usage-source" } +{ "id": "kimi-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/minimax-usage-source/paseo-plugin.json b/packages/server/src/plugins/minimax-usage-source/paseo-plugin.json index 0037a04482..61ecc81c8c 100644 --- a/packages/server/src/plugins/minimax-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/minimax-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "minimax-usage-source" } +{ "id": "minimax-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/plugins/zai-usage-source/paseo-plugin.json b/packages/server/src/plugins/zai-usage-source/paseo-plugin.json index 2d98c4cced..4b65f4a4e3 100644 --- a/packages/server/src/plugins/zai-usage-source/paseo-plugin.json +++ b/packages/server/src/plugins/zai-usage-source/paseo-plugin.json @@ -1 +1 @@ -{ "id": "zai-usage-source" } +{ "id": "zai-usage-source", "requirements": { "paseo": ">=0.9.2" } } diff --git a/packages/server/src/server/plugins/internal-boundary.test.ts b/packages/server/src/server/plugins/internal-boundary.test.ts index cfd0eaea48..62b29d9fc8 100644 --- a/packages/server/src/server/plugins/internal-boundary.test.ts +++ b/packages/server/src/server/plugins/internal-boundary.test.ts @@ -4,8 +4,12 @@ import { tmpdir } from "node:os"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { expect, test } from "vitest"; +import { assertPluginCompatibility } from "@getpaseo/protocol/plugin-requirements"; +import { INTERNAL_PLUGINS } from "../../plugins/index.js"; +import { resolveDaemonVersion } from "../daemon-version.js"; import { createPluginImportReader } from "./compiler-imports.js"; import { compilePlugin, SERVER_HOST_MODULES } from "./compiler.js"; +import { readPluginManifest } from "./manifest.js"; const root = fileURLToPath(new URL("../../plugins/", import.meta.url)); const fixture = fileURLToPath(new URL("./test-fixtures/internal-seam/", import.meta.url)); @@ -60,3 +64,13 @@ test("internal plugin boundary rejects daemon imports with the file and specifie await rm(directory, { recursive: true, force: true }); } }); + +test("every internal plugin manifest is compatible with the daemon that ships it", async () => { + const version = resolveDaemonVersion(import.meta.url); + for (const plugin of INTERNAL_PLUGINS) { + const manifest = await readPluginManifest(plugin.directory); + expect(() => + assertPluginCompatibility({ ...manifest, version, runtime: "daemon" }), + ).not.toThrow(); + } +});