From c6d2084aa841803a47a8b46b312336fe858c8cc6 Mon Sep 17 00:00:00 2001 From: Copybara Date: Sun, 20 Sep 2026 06:02:26 +0000 Subject: [PATCH 01/12] Project import generated by Copybara. FolderOrigin-RevId: b31318e06ac415532fa16ad18652f8fb1fced134 --- .repository-projection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 1bd6054..3176bf6 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,9 +3,9 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "3acc63c2c655c22b5ca7f2d55b63a6b87eced2bc", + "sourceSha": "b31318e06ac415532fa16ad18652f8fb1fced134", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "8d1b06e582043f4f0c89d39b44328532da99ca21", + "priorProjectedBase": "4e6fc84eeda61266a873c00c3b594d8a2ba9868c", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", "toolDigest": "c8000985e1bd708bf1f8754b27cc1a2aad67af10ee23cf5317bd1fba670b4456", "contentDigest": "aa95b6af8f7863c17d3f5fe9e321d2af5fdf0fffb4d2a2c504e8e6c969ce2d43", From 20967517712a4915c3223900a91b3f707e1a7fd7 Mon Sep 17 00:00:00 2001 From: Copybara Date: Sun, 20 Sep 2026 20:25:46 +0000 Subject: [PATCH 02/12] Project import generated by Copybara. FolderOrigin-RevId: 8420a1f8c5fdd07a3d2d4d2a46e0db0bb6bbb352 --- .repository-projection.json | 8 ++-- scripts/distribution-validation.mjs | 61 +++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 3176bf6..901b44d 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "b31318e06ac415532fa16ad18652f8fb1fced134", + "sourceSha": "8420a1f8c5fdd07a3d2d4d2a46e0db0bb6bbb352", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "4e6fc84eeda61266a873c00c3b594d8a2ba9868c", + "priorProjectedBase": "270fbca9507cd082790588b976527849bf9733ad", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "c8000985e1bd708bf1f8754b27cc1a2aad67af10ee23cf5317bd1fba670b4456", - "contentDigest": "aa95b6af8f7863c17d3f5fe9e321d2af5fdf0fffb4d2a2c504e8e6c969ce2d43", + "toolDigest": "de718162d050963e0c04ca9cbc0e38b1db545e838e587f949bcd9fd8aded6bcd", + "contentDigest": "dce7be2dd97bfa145747d8c4dcb48930b8b3c4a4e2774312e6c1e4d41795fef6", "publicationEligible": true } diff --git a/scripts/distribution-validation.mjs b/scripts/distribution-validation.mjs index 9cc6486..84a0515 100644 --- a/scripts/distribution-validation.mjs +++ b/scripts/distribution-validation.mjs @@ -6,9 +6,20 @@ import { join, relative, resolve } from "node:path"; import { pathToFileURL } from "node:url"; import { parseArgs } from "node:util"; -const NAMES = new Set(["endpoint", "private-runner", "private-deployment", "api", "examples", "plugins"]); +const NAMES = new Set(["endpoint", "private-runner", "private-deployment", "api", "examples", "plugins", "capobara"]); const SHA = /^[0-9a-f]{40}$/; const HEX = /^[0-9a-f]{64}$/; +// `toolDigest` is the one provenance field with two legitimate shapes. Node +// hashes the contents of its own TOOL_INPUTS script list, giving a 64-hex +// SHA-256; Capobara embeds the git tree id of `rust/tools/capobara`, giving a +// 40-hex object name. Both are valid "the tool that ran this matches the tool +// committed at this revision" proofs, and the Rust side's +// `git::is_tree_id_or_digest` accepts both widths for exactly this reason -- +// this predicate is its twin and must stay in step with it. A receipt written +// by either implementation has to validate here, or a clone of +// `dx-corp/capobara` fails `invalid provenance toolDigest` against a +// perfectly correct tree. +const TOOL_DIGEST = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/; const PROTO = [ "common/v1/analytics.proto", "common/v1/authz.proto", "common/v1/classification.proto", "common/v1/delivery.proto", "common/v1/entity.proto", "common/v1/risk.proto", "common/v1/surface.proto", @@ -82,7 +93,8 @@ export async function validateProvenance(name, root) { requireValue(provenance.projection === name && provenance.sourceRepository === "dx-corp/mono" && provenance.destinationRepository === `dx-corp/${name}`, "projection provenance identity mismatch"); requireValue(SHA.test(provenance.sourceSha) && SHA.test(provenance.priorProjectedBase), "projection SHAs are invalid"); - for (const key of ["definitionDigest", "toolDigest", "contentDigest"]) requireValue(HEX.test(provenance[key]), `invalid provenance ${key}`); + for (const key of ["definitionDigest", "contentDigest"]) requireValue(HEX.test(provenance[key]), `invalid provenance ${key}`); + requireValue(TOOL_DIGEST.test(provenance.toolDigest), "invalid provenance toolDigest"); requireValue(typeof provenance.publicationEligible === "boolean", "invalid publication eligibility"); return provenance; } @@ -244,6 +256,49 @@ async function validatePlugins(root, files) { for (const path of files) requireValue(!/(?:prompt-audit|session-history|product-kit)/i.test(path), `private plugin surface: ${path}`); } +// `capobara` is admitted here rather than routed around this validation by +// the workflow's `matrix.name == 'capobara'` condition. That condition only +// governs the `sync` job; `node scripts/projections/verify-catalog.mjs +// --validate` -- the `repository-projections` component's own CI gate -- +// builds and validates *every* catalog entry, and `validate.mjs` admits any +// name the catalog holds, so a catalog entry with no validator here fails +// that gate on `unsupported distribution: capobara`. +// +// The compile proof for the projected crate lives in the crate's own +// `tests/standalone_build.rs`, which copies it out of the workspace and runs +// `cargo build --locked`. Repeating that here would add a full dependency +// build to every catalog verification, so this checks the standalone +// closure without compiling: the manifest, the crate-root lockfile and the +// single-package workspace that the projection has to produce, plus the +// internal surfaces it must not carry. +async function validateCapobara(root, files) { + for (const required of ["Cargo.toml", "Cargo.lock", "README.md", "build.rs", "src/main.rs", "src/lib.rs"]) { + requireValue(files.includes(required), `capobara is missing ${required}`); + } + for (const path of files) { + requireValue(!/^scripts\//.test(path), `capobara contains an internal surface: ${path}`); + requireValue(!/^tests\/fixtures\/definitions\//.test(path), `capobara contains an excluded fixture: ${path}`); + } + const manifest = await readFile(join(root, "Cargo.toml"), "utf8"); + requireValue(!/\bworkspace\s*=\s*true/.test(manifest), "capobara Cargo.toml still inherits from the Mono workspace"); + // Resolution must include dependencies here: with `--no-deps` nothing is + // resolved, so `--locked` has nothing to compare and a stale lockfile + // passes. With the full graph, `--locked` fails when the projected + // crate-root lockfile does not match the projected manifest, which is the + // failure this projection is most exposed to -- the standalone lockfile is + // generated separately from the workspace one and can go stale without any + // Mono build noticing. + // + // This resolves all 178 locked packages, so on a cold runner it fetches the + // crates.io index and downloads every `.crate`. That is a network-dependent + // step in the component's CI gate; the component already declares `rust` in + // `ci.test.tools`, and nothing cheaper discriminates (see above). + const metadata = JSON.parse(run("cargo", ["metadata", "--locked", "--format-version", "1"], root)); + requireValue(metadata.workspace_members.length === 1, "capobara standalone workspace gained a member"); + const member = metadata.packages.find(pkg => pkg.id === metadata.workspace_members[0]); + requireValue(member?.name === "capobara", "capobara standalone workspace member is not the crate"); +} + export async function validateDistribution({ name, target }) { requireValue(NAMES.has(name), `unsupported distribution: ${name}`); const root = resolve(target); @@ -252,7 +307,7 @@ export async function validateDistribution({ name, target }) { await validateProvenance(name, root); const validators = { endpoint: validateEndpoint, "private-runner": validateRunner, "private-deployment": validateDeployment, - api: validateApi, examples: validateExamples, plugins: validatePlugins, + api: validateApi, examples: validateExamples, plugins: validatePlugins, capobara: validateCapobara, }; await validators[name](root, files); return { name, target: root, files: files.length, valid: true }; From de02e2ac6e8dd6afd4e5531afaf9b33ec023ebe0 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Sun, 20 Sep 2026 21:37:12 +0000 Subject: [PATCH 03/12] chore: project plugins from Mono a2e8b231b208 --- .repository-projection.json | 8 ++++---- scripts/distribution-validation.mjs | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 901b44d..c6f11ed 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "8420a1f8c5fdd07a3d2d4d2a46e0db0bb6bbb352", + "sourceSha": "a2e8b231b208f9e30b0a115eb132176e1e7c301a", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "270fbca9507cd082790588b976527849bf9733ad", + "priorProjectedBase": "5fdc7e62300223098f67295b313b563523fbb5bc", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "de718162d050963e0c04ca9cbc0e38b1db545e838e587f949bcd9fd8aded6bcd", - "contentDigest": "dce7be2dd97bfa145747d8c4dcb48930b8b3c4a4e2774312e6c1e4d41795fef6", + "toolDigest": "8a4412f3a379ca0bd1cfea9bff69cc46773c6d1f", + "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", "publicationEligible": true } diff --git a/scripts/distribution-validation.mjs b/scripts/distribution-validation.mjs index 84a0515..13c5b1b 100644 --- a/scripts/distribution-validation.mjs +++ b/scripts/distribution-validation.mjs @@ -21,10 +21,12 @@ const HEX = /^[0-9a-f]{64}$/; // perfectly correct tree. const TOOL_DIGEST = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/; const PROTO = [ + "agentruntime/v1/runtime.proto", "agents/v1/agents.proto", "codex/v1/codex.proto", "common/v1/analytics.proto", "common/v1/authz.proto", "common/v1/classification.proto", - "common/v1/delivery.proto", "common/v1/entity.proto", "common/v1/risk.proto", "common/v1/surface.proto", - "connectors/v1/connectors.proto", "console/v1/console.proto", "deixic/v1/deixic.proto", - "memory/v1/memory.proto", "meter/v1/meter.proto", "orbcontrol/v1/orb_control.proto", + "common/v1/delivery.proto", "common/v1/entity.proto", "common/v1/risk.proto", + "common/v1/surface.proto", "connectors/v1/connectors.proto", "console/v1/console.proto", + "deixic/v1/deixic.proto", "memory/v1/memory.proto", "meter/v1/meter.proto", + "objectives/v1/objectives.proto", "orbcontrol/v1/orb_control.proto", "platform/v1/platform.proto", "remoterunner/v1/remoterunner.proto", "toolexecution/v1/toolexecution.proto", "traces/v1/traces.proto", "vfs/v1/filesystem.proto", ].sort(); @@ -256,13 +258,11 @@ async function validatePlugins(root, files) { for (const path of files) requireValue(!/(?:prompt-audit|session-history|product-kit)/i.test(path), `private plugin surface: ${path}`); } -// `capobara` is admitted here rather than routed around this validation by -// the workflow's `matrix.name == 'capobara'` condition. That condition only -// governs the `sync` job; `node scripts/projections/verify-catalog.mjs -// --validate` -- the `repository-projections` component's own CI gate -- -// builds and validates *every* catalog entry, and `validate.mjs` admits any -// name the catalog holds, so a catalog entry with no validator here fails -// that gate on `unsupported distribution: capobara`. +// `capobara` is admitted here like every other catalog entry: `validate.mjs` +// admits any name the catalog holds, and the `sync` job validates every +// prepared projection between Capobara's dry run and its real run, so a +// catalog entry with no validator here fails its publication on +// `unsupported distribution: capobara`. // // The compile proof for the projected crate lives in the crate's own // `tests/standalone_build.rs`, which copies it out of the workspace and runs From 638ae3fe77cf32006816b53cbbec9ba6a2ddc508 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Mon, 21 Sep 2026 00:30:13 +0000 Subject: [PATCH 04/12] chore: project plugins from Mono 9b559bc70e7d --- .repository-projection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index c6f11ed..b93d0ef 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,9 +3,9 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "a2e8b231b208f9e30b0a115eb132176e1e7c301a", + "sourceSha": "9b559bc70e7d8afc723d2ac67c8c62fe0cfbdeeb", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "5fdc7e62300223098f67295b313b563523fbb5bc", + "priorProjectedBase": "1b358acedc3f0c276e85dac32a70c46a05a8b05a", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", "toolDigest": "8a4412f3a379ca0bd1cfea9bff69cc46773c6d1f", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", From 0184cbce96e537186bf0736efcd0342e50cf74dc Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Mon, 21 Sep 2026 02:43:21 +0000 Subject: [PATCH 05/12] chore: project plugins from Mono 9a003786d767 --- .repository-projection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index b93d0ef..b9cf20d 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,9 +3,9 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "9b559bc70e7d8afc723d2ac67c8c62fe0cfbdeeb", + "sourceSha": "9a003786d7679e9029fa077557bc7ab4d00eb48f", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "1b358acedc3f0c276e85dac32a70c46a05a8b05a", + "priorProjectedBase": "6051eb8b98ddc29792bb0bd457b04063b45fc9d0", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", "toolDigest": "8a4412f3a379ca0bd1cfea9bff69cc46773c6d1f", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", From 5496109fa57db00c71ba357638b9842197fbebe8 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Mon, 21 Sep 2026 03:17:09 +0000 Subject: [PATCH 06/12] chore: project plugins from Mono 511bd2305f5a --- .repository-projection.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index b9cf20d..254e412 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "9a003786d7679e9029fa077557bc7ab4d00eb48f", + "sourceSha": "511bd2305f5a92cfbedb91208d7bc0820fda29b5", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "6051eb8b98ddc29792bb0bd457b04063b45fc9d0", + "priorProjectedBase": "6b3e8ef129c49c481d129a4693bffe4ed02a42f8", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "8a4412f3a379ca0bd1cfea9bff69cc46773c6d1f", + "toolDigest": "e9fc82741fdf4a797b076d29d51e14aced32368b", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", "publicationEligible": true } From a7cc52bd4b9cb4cf6e8aec23e56bb7c025ec4a74 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Mon, 21 Sep 2026 06:18:20 +0000 Subject: [PATCH 07/12] chore: project plugins from Mono ad7b9df0b712 --- .repository-projection.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 254e412..1186893 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "511bd2305f5a92cfbedb91208d7bc0820fda29b5", + "sourceSha": "ad7b9df0b7129a2fe8a6cda64eed199b0ea9a748", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "6b3e8ef129c49c481d129a4693bffe4ed02a42f8", + "priorProjectedBase": "e714c5e4954cc6f6f0186f09bd7d0c45de76988d", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "e9fc82741fdf4a797b076d29d51e14aced32368b", + "toolDigest": "1885e6c68d4a94f6633f0a96aecfbe92501547e6", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", "publicationEligible": true } From 6af191398bc4de3b80df55609e8771d5ba37f634 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Mon, 21 Sep 2026 09:28:37 +0000 Subject: [PATCH 08/12] chore: project plugins from Mono 4ab4845398fd --- .repository-projection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 1186893..b91db38 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "ad7b9df0b7129a2fe8a6cda64eed199b0ea9a748", + "sourceSha": "4ab4845398fdca60f84eb815733b8e2361b4856d", "destinationRepository": "dx-corp/plugins", "priorProjectedBase": "e714c5e4954cc6f6f0186f09bd7d0c45de76988d", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "1885e6c68d4a94f6633f0a96aecfbe92501547e6", + "toolDigest": "f58d71f023a4f0a27d77cb96dcc5348a40816d0b", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", "publicationEligible": true } From cd7c3525bd6c32afee555a0b0a156636cbe5af9a Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Tue, 22 Sep 2026 02:37:01 +0000 Subject: [PATCH 09/12] chore: project plugins from Mono 2df44a8283c0 --- .repository-projection.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index b91db38..4db2e5b 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,9 +3,9 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "4ab4845398fdca60f84eb815733b8e2361b4856d", + "sourceSha": "2df44a8283c07c0ba875174e70d2aaabb72d19cc", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "e714c5e4954cc6f6f0186f09bd7d0c45de76988d", + "priorProjectedBase": "099041ec0806ebaeb1bc67e4f2380251e3531ea2", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", "toolDigest": "f58d71f023a4f0a27d77cb96dcc5348a40816d0b", "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", From e6446d571af29b6f665712e4c783448cb20fddf3 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Tue, 22 Sep 2026 23:46:37 +0000 Subject: [PATCH 10/12] chore: project plugins from Mono f93f0d4fc432 --- .repository-projection.json | 6 +++--- .../skills/mcp-builder/scripts/evaluation.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 4db2e5b..3e943aa 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "2df44a8283c07c0ba875174e70d2aaabb72d19cc", + "sourceSha": "f93f0d4fc432c034dffaf8d932247a2175f426f7", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "099041ec0806ebaeb1bc67e4f2380251e3531ea2", + "priorProjectedBase": "15c5283100e5eba6f76afc9c263599b8015006ad", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", "toolDigest": "f58d71f023a4f0a27d77cb96dcc5348a40816d0b", - "contentDigest": "e0ddc40ee80b64bb33940cd8654de17ec82f0d7227c86222cd812b3645446b22", + "contentDigest": "0e5c92fa1cd15cd18160e37d3be0604c36833776d7e5c05455e21a0456f76ebb", "publicationEligible": true } diff --git a/plugins/deixic-code-skills/skills/mcp-builder/scripts/evaluation.py b/plugins/deixic-code-skills/skills/mcp-builder/scripts/evaluation.py index 4177856..2a4bb26 100644 --- a/plugins/deixic-code-skills/skills/mcp-builder/scripts/evaluation.py +++ b/plugins/deixic-code-skills/skills/mcp-builder/scripts/evaluation.py @@ -220,7 +220,7 @@ async def evaluate_single_task( async def run_evaluation( eval_path: Path, connection: Any, - model: str = "claude-3-7-sonnet-20250219", + model: str = "claude-sonnet-5", ) -> str: """Run evaluation with MCP server tools.""" print("🚀 Starting Evaluation") @@ -315,13 +315,13 @@ async def main(): python evaluation.py -t sse -u https://example.com/mcp -H "Authorization: Bearer token" eval.xml # Evaluate an HTTP MCP server with custom model - python evaluation.py -t http -u https://example.com/mcp -m claude-3-5-sonnet-20241022 eval.xml + python evaluation.py -t http -u https://example.com/mcp -m claude-sonnet-4-6 eval.xml """, ) parser.add_argument("eval_file", type=Path, help="Path to evaluation XML file") parser.add_argument("-t", "--transport", choices=["stdio", "sse", "http"], default="stdio", help="Transport type (default: stdio)") - parser.add_argument("-m", "--model", default="claude-3-7-sonnet-20250219", help="Claude model to use (default: claude-3-7-sonnet-20250219)") + parser.add_argument("-m", "--model", default="claude-sonnet-5", help="Claude model to use (default: claude-sonnet-5)") stdio_group = parser.add_argument_group("stdio options") stdio_group.add_argument("-c", "--command", help="Command to run MCP server (stdio only)") From 1a3c7b0e2a6884a889526f201a524e58642fb91c Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Wed, 23 Sep 2026 18:32:51 +0000 Subject: [PATCH 11/12] chore: project plugins from Mono 3ccfbea716d8 --- .repository-projection.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index 3e943aa..fdb2ef4 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "f93f0d4fc432c034dffaf8d932247a2175f426f7", + "sourceSha": "3ccfbea716d8d52596980ca1f1f3b62166e7849d", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "15c5283100e5eba6f76afc9c263599b8015006ad", + "priorProjectedBase": "83339d33d0e9327ba1bce8a35eebc620fdaba043", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "f58d71f023a4f0a27d77cb96dcc5348a40816d0b", + "toolDigest": "898e8657d9153a2a51d7c283bf83bb3350b5d1e6", "contentDigest": "0e5c92fa1cd15cd18160e37d3be0604c36833776d7e5c05455e21a0456f76ebb", "publicationEligible": true } From 5216f8dcf0cfdc926b68ff3a59af5de2368edde6 Mon Sep 17 00:00:00 2001 From: dx-corp projector Date: Thu, 24 Sep 2026 18:50:51 +0000 Subject: [PATCH 12/12] chore: project plugins from Mono a971433d12b4 --- .repository-projection.json | 8 ++++---- scripts/distribution-validation.mjs | 16 ++-------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/.repository-projection.json b/.repository-projection.json index fdb2ef4..9c19b3e 100644 --- a/.repository-projection.json +++ b/.repository-projection.json @@ -3,11 +3,11 @@ "projection": "plugins", "projectionSchemaVersion": 1, "sourceRepository": "dx-corp/mono", - "sourceSha": "3ccfbea716d8d52596980ca1f1f3b62166e7849d", + "sourceSha": "a971433d12b40d9042b3a64c2c074fa8fc398e69", "destinationRepository": "dx-corp/plugins", - "priorProjectedBase": "83339d33d0e9327ba1bce8a35eebc620fdaba043", + "priorProjectedBase": "750156a6ea714eab0b6011e5482fb0e5efbaccea", "definitionDigest": "b705140f4a8c5318b8a64dbeaa441df76d7cfb137de6940ae79004107d9a2b2e", - "toolDigest": "898e8657d9153a2a51d7c283bf83bb3350b5d1e6", - "contentDigest": "0e5c92fa1cd15cd18160e37d3be0604c36833776d7e5c05455e21a0456f76ebb", + "toolDigest": "ff02edcbb40b0028af10ab01a101e918341f157a", + "contentDigest": "b1748f369e9a04281f189ac58733f011c7ae40ebff1956864ad8419bef91f8df", "publicationEligible": true } diff --git a/scripts/distribution-validation.mjs b/scripts/distribution-validation.mjs index 13c5b1b..2fbd4e1 100644 --- a/scripts/distribution-validation.mjs +++ b/scripts/distribution-validation.mjs @@ -20,16 +20,7 @@ const HEX = /^[0-9a-f]{64}$/; // `dx-corp/capobara` fails `invalid provenance toolDigest` against a // perfectly correct tree. const TOOL_DIGEST = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/; -const PROTO = [ - "agentruntime/v1/runtime.proto", "agents/v1/agents.proto", "codex/v1/codex.proto", - "common/v1/analytics.proto", "common/v1/authz.proto", "common/v1/classification.proto", - "common/v1/delivery.proto", "common/v1/entity.proto", "common/v1/risk.proto", - "common/v1/surface.proto", "connectors/v1/connectors.proto", "console/v1/console.proto", - "deixic/v1/deixic.proto", "memory/v1/memory.proto", "meter/v1/meter.proto", - "objectives/v1/objectives.proto", "orbcontrol/v1/orb_control.proto", - "platform/v1/platform.proto", "remoterunner/v1/remoterunner.proto", - "toolexecution/v1/toolexecution.proto", "traces/v1/traces.proto", "vfs/v1/filesystem.proto", -].sort(); +const PROTO = ["deixicpublic/v1/sdk.proto"]; const SKILLS = [ "doc-coauthoring", "frontend-design", "incident-triage", "install-code-review", "mcp-builder", "openai-agent-browser-verify", "pr-review", "release-verification", "security-review", "skill-creator", @@ -154,12 +145,9 @@ async function validateApi(root, files) { } } const surface = JSON.parse(await readFile(join(root, "contracts", "public-surface.json"), "utf8")); - requireValue(surface.service === "deixic.v1.DeixicService" && surface.operations?.length === 8, "Deixic public facade contract changed"); + requireValue(surface.service === "deixicpublic.v1.DeixicPublicService" && surface.operations?.length === 8, "Deixic public facade contract changed"); const rpcs = surface.operations.map(item => item.rpc).sort(); requireValue(new Set(rpcs).size === 8 && surface.operations.filter(item => item.kind === "mutation").every(item => item.requiresIdempotencyKey), "Deixic public operations are invalid"); - const lock = await readFile(join(root, "buf.lock"), "utf8"); - requireValue(lock.includes("buf.build/bufbuild/protovalidate") && lock.includes("buf.build/googleapis/googleapis") - && (lock.match(/digest:\s*b5:[0-9a-f]+/g) ?? []).length === 2, "Buf dependencies are not pinned"); const generation = await readFile(join(root, "buf.gen.yaml"), "utf8"); requireValue(generation.includes("sudorandom-connect-openapi:v0.19.1") && !generation.includes("./scripts/"), "public codegen config is not pinned or is private"); run("buf", ["build"], root);