mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-16 12:30:49 +00:00
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import type { AgentTool, AgentToolResult } from "@mariozechner/pi-agent-core";
|
|
import { describe, expect, it } from "vitest";
|
|
import { splitSdkTools } from "./pi-embedded-runner.js";
|
|
|
|
function createStubTool(name: string): AgentTool<unknown, unknown> {
|
|
return {
|
|
name,
|
|
label: name,
|
|
description: "",
|
|
parameters: {},
|
|
execute: async () => ({}) as AgentToolResult<unknown>,
|
|
};
|
|
}
|
|
|
|
describe("splitSdkTools", () => {
|
|
const tools = [
|
|
createStubTool("read"),
|
|
createStubTool("exec"),
|
|
createStubTool("edit"),
|
|
createStubTool("write"),
|
|
createStubTool("browser"),
|
|
];
|
|
|
|
it("routes all tools to customTools when sandboxed", () => {
|
|
const { builtInTools, customTools } = splitSdkTools({
|
|
tools,
|
|
sandboxEnabled: true,
|
|
});
|
|
expect(builtInTools).toEqual([]);
|
|
expect(customTools.map((tool) => tool.name)).toEqual([
|
|
"read",
|
|
"exec",
|
|
"edit",
|
|
"write",
|
|
"browser",
|
|
]);
|
|
});
|
|
|
|
it("routes all tools to customTools even when not sandboxed", () => {
|
|
const { builtInTools, customTools } = splitSdkTools({
|
|
tools,
|
|
sandboxEnabled: false,
|
|
});
|
|
expect(builtInTools).toEqual([]);
|
|
expect(customTools.map((tool) => tool.name)).toEqual([
|
|
"read",
|
|
"exec",
|
|
"edit",
|
|
"write",
|
|
"browser",
|
|
]);
|
|
});
|
|
});
|