feat: package Pi extensions as Bun workspaces

This commit is contained in:
jb
2026-09-01 17:24:46 -04:00
parent 90f8090f61
commit 118b5bee06
214 changed files with 19566 additions and 5876 deletions
+94
View File
@@ -0,0 +1,94 @@
import assert from "node:assert/strict";
import test from "node:test";
import { isValidContextContinuation } from "./continuation.ts";
function state(overrides: Record<string, unknown> = {}) {
return {
revision: 5,
status: "waiting",
planArtifact: { revision: 2 },
openGate: {
id: "gate-1",
kind: "implementation-context",
status: "open",
},
implementationContext: {
gateId: "gate-1",
runRevision: 4,
planRevision: 2,
activeParentSessionId: "session-1",
strategy: "fresh-session",
status: "handoff-pending",
method: "fresh-session",
},
assignments: [],
...overrides,
};
}
test("continuation requires every persisted binding and the active parent", () => {
assert.equal(isValidContextContinuation(state(), "session-1"), true);
assert.equal(isValidContextContinuation(state(), "session-2"), false);
assert.equal(isValidContextContinuation(state({ status: "running" }), "session-1"), false);
assert.equal(
isValidContextContinuation(
state({
assignments: [
{
status: "queued",
executionToken: "active-token",
},
],
}),
"session-1",
),
false,
);
assert.equal(
isValidContextContinuation(
state({
revision: 6,
}),
"session-1",
),
false,
);
assert.equal(
isValidContextContinuation(
state({
implementationContext: {
...state().implementationContext,
strategy: "smart-compact",
},
}),
"session-1",
),
false,
);
});
test("normal compaction continuation requires unavailable smart compaction state", () => {
const context = {
...state().implementationContext,
strategy: "smart-compact",
status: "normal-compact-pending",
method: "smart_compact",
outcome: "unavailable",
};
assert.equal(
isValidContextContinuation(
state({ implementationContext: context }),
"session-1",
),
true,
);
assert.equal(
isValidContextContinuation(
state({
implementationContext: { ...context, outcome: "failed" },
}),
"session-1",
),
false,
);
});