Satisfy Pi distribution policy and refresh candidate fixtures

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-09-28 15:14:57 -05:00
1 parent 74641130bd
commit e65b828648
7 files changed
+24 -9

No files matched your search

+1 -1
View File
@@ -224,7 +224,7 @@ initialization and the missing-credential admission path without a model call.
The exact reported `currentModelId` and billable receipt still need credentialed
local and Linux/Daytona qualification.
Profile version 2 declaration digest: `sha256:c577a771778febe24b920388da77f6143971b8eec29e1ba9a433dac5b76de3cd`. It hashes the versioned
Profile version 2 declaration digest: `sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1`. It hashes the versioned
profile domain, patched wrapper source and platform closure pins. Every native
closure remains independently checked at launch. Version 1 warm sessions cannot
be reused with this integration.
@@ -170,7 +170,7 @@ impl AcpxProviderDescriptor {
"0.0.33",
Some("@earendil-works/pi-coding-agent"),
Some("0.84.2"),
"sha256:c577a771778febe24b920388da77f6143971b8eec29e1ba9a433dac5b76de3cd",
"sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1",
),
"cursor" => (
self.model.as_str(),
@@ -2461,7 +2461,7 @@ mod tests {
"pi",
"pi-acp",
"0.0.33",
"sha256:c577a771778febe24b920388da77f6143971b8eec29e1ba9a433dac5b76de3cd",
"sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1",
Some("@earendil-works/pi-coding-agent"),
Some("0.84.2"),
"openrouter/deepseek/deepseek-v4-flash-0731",
@@ -12,6 +12,9 @@
"@earendil-works/pi-coding-agent": "0.84.2",
"pi-acp": "0.0.33",
"zod": "3.25.76"
},
"engines": {
"node": ">=24.11.0"
}
},
"node_modules/@agentclientprotocol/sdk": {
@@ -8,5 +8,8 @@
"@earendil-works/pi-coding-agent": "0.84.2",
"pi-acp": "0.0.33",
"zod": "3.25.76"
},
"engines": {
"node": ">=24.11.0"
}
}
@@ -33,6 +33,7 @@ import {
import { createNativeSessionBackend } from "../index.js";
import { createCodexNativeSessionBackend } from "./codex-native-backend.js";
import { createOpenCodeNativeSessionBackend } from "./opencode-native-backend.js";
import { QUALIFIED_ACPX_PROFILES } from "../drivers/acpx/qualified-profiles.js";
function execution(
provider: NativeExecutionInput["provider"] = {
@@ -111,7 +112,7 @@ function acpxExecution(
protocolVersion: 1,
acpxVersion: "0.13.1",
agent,
agentProfileVersion: 1,
agentProfileVersion: agent === "pi" ? QUALIFIED_ACPX_PROFILES.pi.agentProfileVersion : 1,
agentServerPackage:
agent === "codex"
? "@agentclientprotocol/codex-acp"
@@ -132,7 +133,7 @@ function acpxExecution(
agent === "codex"
? "sha256:c4538599d1ab767db5dff50934f13bb5ba313a59d9c4a83e993fac4617ea63d3"
: agent === "pi"
? "sha256:8c696f38296d53d0061fa11534570c5ddd951b63532aed30e0f1fcc676dc169f"
? QUALIFIED_ACPX_PROFILES.pi.commandDigest
: "sha256:9d73d1f0f121fb96cc8badb28c22d5bff02d8582eb2e40360a81c189e1b9422a",
},
},
@@ -534,6 +535,14 @@ describe("native backend factory", () => {
})).toThrow("ACPX candidate direct execution requires completed qualification");
});
it("rejects a Pi version 1 warm snapshot after the rich ACP upgrade", () => {
const input = acpxExecution("pi");
if (input.provider.kind !== "acpx") throw new Error("invalid fixture");
input.provider.profile.agentProfileVersion = 1;
expect(() => createNativeSessionBackend(input, { acpxRuntimeDirectory: "/runtime" }))
.toThrow("does not match the qualified agentProfileVersion");
});
it("rejects a Codex ACPX snapshot that drifts from its qualified profile", () => {
const input = acpxExecution();
if (input.provider.kind !== "acpx") throw new Error("invalid fixture");
@@ -6,7 +6,7 @@
* three pins. Never accept a digest supplied only by an installed manifest.
*/
export const PI_DISTRIBUTION_CLOSURE_SHA256 = Object.freeze({
"darwin-arm64": "a26e98fe3f4d3d93c13beffdb4e8b778d438dd1b3bca8a9b1610154342382681",
"darwin-x64": "9423812469c8aedba369c581b23a4302e4d86aac06e98e3d14d95d5e875597f0",
"linux-x64": "892085f1f22c0813e4d722c37ddaa343a01aecfeff360d8ca6d5b201dd3f01f5",
"darwin-arm64": "b30047dce9c4c25e1fbc88a1aa828690a6a11ebdc3f6fcc083875986eb2d9585",
"darwin-x64": "3bff53a334f7226bd14adb6a91e6e3603281bec7b93e7dd62aa5599483df8bba",
"linux-x64": "482e648e5b8890971fdf326a936fddc01ae89c335159d7133ddff70b49ed3d3d",
});
@@ -54,7 +54,7 @@ export const QUALIFIED_ACPX_PROFILES: Readonly<
agentRuntimePackage: "@earendil-works/pi-coding-agent",
agentRuntimeVersion: "0.84.2",
commandDigest:
"sha256:c577a771778febe24b920388da77f6143971b8eec29e1ba9a433dac5b76de3cd",
"sha256:0f687e38cb3c607a01fab80f03e19bbbf5cb53a8afb1fc40d71f9ab54551cff1",
qualificationModel: "openrouter/deepseek/deepseek-v4-flash-0731",
reportedModelId: "openrouter/deepseek/deepseek-v4-flash-0731",
permissionPolicy: "interactive",