fix(runner): bundle the Claude ACP runtime and explain missing packages

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-11 14:43:49 -05:00
1 parent bfe7c6357d
commit 2d81789c14
19 files changed
+180 -9

No files matched your search

+13
View File
@@ -176,6 +176,19 @@ test("published packages preserve the patched ACPX runtime", () => {
assert.equal(cliEsbuildConfig.external.includes("acpx"), false);
});
test("published Claude bridge pins its qualified SDK and provider dependency closure", () => {
const published = materializePublishManifest(serverPackage);
const { installManifest } = configureBundledProviderOverrides(
createBundledInstallManifest(published, serverPackage.bundleDependencies),
serverPackage.bundleDependencies, rootPackage, profileData,
);
assert.deepEqual(installManifest.overrides["@agentclientprotocol/claude-agent-acp@0.73.0"], {
"@anthropic-ai/claude-agent-sdk": "0.3.286",
"@agentclientprotocol/sdk": "1.4.0",
zod: "4.4.3",
});
});
test("published Codex bridge uses its qualified producer closure without consumer overrides", () => {
const published = materializePublishManifest(serverPackage);
const { installManifest, profiles } = configureBundledProviderOverrides(
+8 -3
View File
@@ -51,13 +51,14 @@ export function createBundledInstallManifest(publishManifest, bundledDependencie
}
// npm consumers cannot inherit the workspace's pnpm overrides or patches.
// Materialize the already-qualified Codex bridge closure in the tarball,
// Materialize the already-qualified provider bridge closures in the tarball,
// with overrides confined to the temporary, scripts-disabled producer graph.
export function configureBundledProviderOverrides(installManifest, bundledDependencies, rootPackage, profileData) {
const result = structuredClone(installManifest);
const selected = [];
for (const [agent, serverPackage, runtimePackage] of [
["codex", "@agentclientprotocol/codex-acp", "@openai/codex"],
["claude", "@agentclientprotocol/claude-agent-acp", "@anthropic-ai/claude-agent-sdk"],
]) {
if (!bundledDependencies.includes(serverPackage)) continue;
const profile = profileData?.profiles?.[agent];
@@ -75,9 +76,13 @@ export function configureBundledProviderOverrides(installManifest, bundledDepend
if (result.overrides?.[npmSelector] !== undefined) {
throw new Error(`Bundled ${agent} runtime has a conflicting producer override`);
}
const overrides = { [runtimePackage]: profile.agentRuntimeVersion };
const overrides = { [runtimePackage]: profile.agentRuntimeVersion,
...(agent === "claude" ? { "@agentclientprotocol/sdk": "1.4.0", zod: "4.4.3" } : {}),
};
result.overrides = { ...result.overrides, [npmSelector]: overrides };
selected.push({ agent, ...profile });
// Codex delegates its platform aliases below. Claude retains the SDK
// platform dependencies in its ordinary bundled provider closure.
if (agent === "codex") selected.push({ agent, ...profile });
}
return { installManifest: result, profiles: selected };
}