mirror of
https://github.com/morluto/rea
synced 2026-10-26 14:25:49 -04:00
b5e98915c6
Remove REA permission grants, scope ceilings, approval confirmations, and inert settings. Preserve selected local evidence, accept caller-chosen commands and paths, and report actual runtime failures. Harden provider results, schema serialization, snapshot evidence binding, archive paths, source maps, native screenshots, managed EH parsing, and cancellation cleanup. Regenerate tool metadata and document direct invocation. BREAKING CHANGE: Removed permission configuration and policy commands, approval fields, filesystem scope inputs, and fixed confirmation options. Process capture inherits the host environment and accepts command names; callers must refresh tool schemas and migrate removed fields.
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { browserContext } from "./cliBrowserContext.js";
|
|
import { CdpBrowserProvider } from "./browser/CdpBrowserProvider.js";
|
|
import { HopperProvider } from "./hopper/HopperProvider.js";
|
|
import { silentLogger } from "./logger.js";
|
|
import { parseConfig } from "./config.js";
|
|
|
|
const config = (env: Record<string, string | undefined> = {}) => {
|
|
const parsed = parseConfig(env);
|
|
if (!parsed.ok) throw new Error("expected valid configuration");
|
|
return parsed.value;
|
|
};
|
|
|
|
describe("host platform is injected, not read from the ambient process", () => {
|
|
it("reports Hopper as unsupported for a platform it cannot run on", () => {
|
|
const provider = new HopperProvider(config(), silentLogger, "win32");
|
|
const availability = provider.inspectAvailability();
|
|
expect(availability).toMatchObject({
|
|
status: "unavailable",
|
|
code: "unsupported_host",
|
|
});
|
|
expect(JSON.stringify(availability)).toContain("win32");
|
|
});
|
|
|
|
it.each(["darwin", "linux"] as const)(
|
|
"does not gate Hopper as unsupported on %s",
|
|
(platform) => {
|
|
const provider = new HopperProvider(
|
|
config({ hopper_launcher_path: "/nonexistent/hopper-launcher" }),
|
|
silentLogger,
|
|
platform,
|
|
);
|
|
expect(provider.inspectAvailability().code).not.toBe("unsupported_host");
|
|
},
|
|
);
|
|
});
|
|
|
|
describe("browser CLI provider setup", () => {
|
|
it("does not require permission policy configuration", () => {
|
|
expect(browserContext().provider).toBeInstanceOf(CdpBrowserProvider);
|
|
});
|
|
});
|