feat: package Pi extensions as Bun workspaces
This commit is contained in:
@@ -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,
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user