fix: restore pnpm check type safety

This commit is contained in:
Peter Steinberger
2026-04-06 01:02:48 +01:00
parent a79984eacf
commit fdc2f421e4
3 changed files with 18 additions and 6 deletions

View File

@@ -7,6 +7,16 @@ type BoundTaskFlow = ReturnType<
NonNullable<OpenClawPluginApi["runtime"]>["taskFlow"]["bindSession"]
>;
function expectManagedFlowFailure(
result: Awaited<ReturnType<typeof runManagedLobsterFlow | typeof resumeManagedLobsterFlow>>,
) {
expect(result.ok).toBe(false);
if (result.ok) {
throw new Error("Expected managed Lobster flow to fail");
}
return result;
}
function createFakeTaskFlow(overrides?: Partial<BoundTaskFlow>) {
const baseFlow = {
flowId: "flow-1",
@@ -160,8 +170,8 @@ describe("runManagedLobsterFlow", () => {
goal: "Run Lobster workflow",
});
expect(result.ok).toBe(false);
expect(result.error.message).toBe("boom");
const failure = expectManagedFlowFailure(result);
expect(failure.error.message).toBe("boom");
expect(taskFlow.fail).toHaveBeenCalledWith({
flowId: "flow-1",
expectedRevision: 1,
@@ -188,8 +198,8 @@ describe("runManagedLobsterFlow", () => {
goal: "Run Lobster workflow",
});
expect(result.ok).toBe(false);
expect(result.error.message).toBe("crashed");
const failure = expectManagedFlowFailure(result);
expect(failure.error.message).toBe("crashed");
expect(taskFlow.fail).toHaveBeenCalledWith({
flowId: "flow-1",
expectedRevision: 1,
@@ -264,8 +274,8 @@ describe("resumeManagedLobsterFlow", () => {
},
});
expect(result.ok).toBe(false);
expect(result.error.message).toMatch(/revision_conflict/);
const failure = expectManagedFlowFailure(result);
expect(failure.error.message).toMatch(/revision_conflict/);
expect(runner.run).not.toHaveBeenCalled();
});

View File

@@ -102,6 +102,7 @@ function toJsonLike(value: unknown, seen = new WeakSet<object>()): JsonLike {
return jsonObject;
}
}
return null;
}
function buildApprovalWaitState(envelope: Extract<LobsterEnvelope, { ok: true }>): JsonLike {

View File

@@ -13,6 +13,7 @@ import {
} from "../../plugins/provider-runtime.js";
import type { ProviderRuntimeModel } from "../../plugins/types.js";
import { resolveOpenClawAgentDir } from "../agent-paths.js";
import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js";
import { buildModelAliasLines } from "../model-alias-lines.js";
import { normalizeStaticProviderModelId } from "../model-ref-shared.js";
import { findNormalizedProviderValue, normalizeProviderId } from "../model-selection.js";