mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-17 03:00:43 +00:00
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
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");
|
|
});
|
|
});
|