refactor(agents): dedupe config and truncation guards

This commit is contained in:
Peter Steinberger
2026-02-22 17:54:42 +00:00
parent 409a02691f
commit 3286791316
12 changed files with 325 additions and 318 deletions

View File

@@ -0,0 +1,53 @@
import { describe, expect, it } from "vitest";
import { evaluateRuntimeEligibility } from "./config-eval.js";
describe("evaluateRuntimeEligibility", () => {
it("rejects entries when required OS does not match local or remote", () => {
const result = evaluateRuntimeEligibility({
os: ["definitely-not-a-runtime-platform"],
remotePlatforms: [],
hasBin: () => true,
hasEnv: () => true,
isConfigPathTruthy: () => true,
});
expect(result).toBe(false);
});
it("accepts entries when remote platform satisfies OS requirements", () => {
const result = evaluateRuntimeEligibility({
os: ["linux"],
remotePlatforms: ["linux"],
hasBin: () => true,
hasEnv: () => true,
isConfigPathTruthy: () => true,
});
expect(result).toBe(true);
});
it("bypasses runtime requirements when always=true", () => {
const result = evaluateRuntimeEligibility({
always: true,
requires: { env: ["OPENAI_API_KEY"] },
hasBin: () => false,
hasEnv: () => false,
isConfigPathTruthy: () => false,
});
expect(result).toBe(true);
});
it("evaluates runtime requirements when always is false", () => {
const result = evaluateRuntimeEligibility({
requires: {
bins: ["node"],
anyBins: ["bun", "node"],
env: ["OPENAI_API_KEY"],
config: ["browser.enabled"],
},
hasBin: (bin) => bin === "node",
hasAnyRemoteBin: () => false,
hasEnv: (name) => name === "OPENAI_API_KEY",
isConfigPathTruthy: (path) => path === "browser.enabled",
});
expect(result).toBe(true);
});
});