// Cross-target: the MCP surface — connect with fully headless OAuth (DCR →// consent → code → token) and run code in the sandbox, exactly as an MCP// client (Claude, Cursor, …) would.import { expect } from "@effect/vitest";import { Effect } from "effect";import { scenario } from "../src/scenario";import { Mcp, Target } from "../src/services";scenario( "MCP · OAuth connect, then execute code in the sandbox", {}, Effect.gen(function* () { const target = yield* Target; const mcp = yield* Mcp; const identity = yield* target.newIdentity(); const session = mcp.session(identity); const tools = yield* session.listTools(); expect(tools, "the execute tool is advertised").toContain("execute"); const result = yield* session.call("execute", { code: "return 6 * 7;" }); expect(result.text, "the sandbox returns the value").toBe("42"); }),);scenario( "MCP · a syntax error returns a descriptive message, not an opaque internal error", {}, Effect.gen(function* () { const target = yield* Target; const mcp = yield* Mcp; const identity = yield* target.newIdentity(); const session = mcp.session(identity); // A genuine parse error (a `const` with no binding) is the user's own // mistake, surfaced before the code ever runs. The model needs the real // reason to self-correct, so the sandbox must report it descriptively // instead of collapsing it to "Internal tool error [id]". const result = yield* session.call("execute", { code: "const = 5; return 1;", }); expect(result.ok, "a syntax error is reported as an error result").toBe(false); expect(result.text, "the parser's reason reaches the model").toContain("Unexpected"); expect(result.text, "the opaque mask is not used for syntax errors").not.toContain( "Internal tool error", ); }),);
// Cross-target: the MCP surface — connect with fully headless OAuth (DCR →
// consent → code → token) and run code in the sandbox, exactly as an MCP
// client (Claude, Cursor, …) would.
import { expect } from "@effect/vitest";
import { Effect } from "effect";
import { scenario } from "../src/scenario";
import { Mcp, Target } from "../src/services";
scenario(
"MCP · OAuth connect, then execute code in the sandbox",
{},
Effect.gen(function* () {
const target = yield* Target;
const mcp = yield* Mcp;
const identity = yield* target.newIdentity();
const session = mcp.session(identity);
const tools = yield* session.listTools();
expect(tools, "the execute tool is advertised").toContain("execute");
const result = yield* session.call("execute", { code: "return 6 * 7;" });
expect(result.text, "the sandbox returns the value").toBe("42");
}),
);
scenario(
"MCP · a syntax error returns a descriptive message, not an opaque internal error",
{},
Effect.gen(function* () {
const target = yield* Target;
const mcp = yield* Mcp;
const identity = yield* target.newIdentity();
const session = mcp.session(identity);
// A genuine parse error (a `const` with no binding) is the user's own
// mistake, surfaced before the code ever runs. The model needs the real
// reason to self-correct, so the sandbox must report it descriptively
// instead of collapsing it to "Internal tool error [id]".
const result = yield* session.call("execute", {
code: "const = 5; return 1;",
});
expect(result.ok, "a syntax error is reported as an error result").toBe(false);
expect(result.text, "the parser's reason reaches the model").toContain("Unexpected");
expect(result.text, "the opaque mask is not used for syntax errors").not.toContain(
"Internal tool error",
);
}),
);