import { describe, expect, it } from "vitest" ;
import { splitSdkTools } from "./pi-embedded-runner.js" ;
import {
collectRegisteredToolNames,
toSessionToolAllowlist,
} from "./pi-embedded-runner/tool-name-allowlist.js" ;
import { createStubTool } from "./test-helpers/pi-tool-stubs.js" ;
describe("splitSdkTools" , () => {
const tools = [
createStubTool("read" ),
createStubTool("exec" ),
createStubTool("edit" ),
createStubTool("write" ),
createStubTool("browser" ),
];
it("routes all tools to customTools when sandboxed" , () => {
const { customTools } = splitSdkTools({
tools,
sandboxEnabled: true ,
});
expect(customTools.map((tool) => tool.name)).toEqual([
"read" ,
"exec" ,
"edit" ,
"write" ,
"browser" ,
]);
});
it("routes all tools to customTools even when not sandboxed" , () => {
const { customTools } = splitSdkTools({
tools,
sandboxEnabled: false ,
});
expect(customTools.map((tool) => tool.name)).toEqual([
"read" ,
"exec" ,
"edit" ,
"write" ,
"browser" ,
]);
});
it("keeps OpenClaw-managed custom tools in Pi's session allowlist" , () => {
const { customTools } = splitSdkTools({
tools: [createStubTool("read" ), createStubTool("sessions_spawn" )],
sandboxEnabled: true ,
});
const allowlist = toSessionToolAllowlist(collectRegisteredToolNames(customTools));
expect(customTools.map((tool) => tool.name)).toContain("sessions_spawn" );
expect(allowlist).toContain("sessions_spawn" );
});
});
Messung V0.5 in Prozent C=98 H=95 G=96
¤ Dauer der Verarbeitung: 0.25 Sekunden
(vorverarbeitet am 2026-05-26)
¤
*© Formatika GbR, Deutschland