mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-31 20:01:36 +00:00
69 lines
1.7 KiB
TypeScript
69 lines
1.7 KiB
TypeScript
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
|
|
const BROWSER_FIXTURE_MANIFEST = {
|
|
id: "browser",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
};
|
|
|
|
const BROWSER_FIXTURE_ENTRY = `module.exports = {
|
|
id: "browser",
|
|
name: "Browser",
|
|
description: "Bundled browser fixture plugin",
|
|
configSchema: {
|
|
type: "object",
|
|
additionalProperties: false,
|
|
properties: {},
|
|
},
|
|
register(api) {
|
|
api.registerTool(() => ({
|
|
name: "browser",
|
|
label: "browser",
|
|
description: "browser fixture tool",
|
|
parameters: {
|
|
type: "object",
|
|
properties: {},
|
|
},
|
|
async execute() {
|
|
return {
|
|
content: [{ type: "text", text: "ok" }],
|
|
details: {},
|
|
};
|
|
},
|
|
}));
|
|
api.registerCli(({ program }) => {
|
|
program.command("browser");
|
|
}, { commands: ["browser"] });
|
|
api.registerGatewayMethod("browser.request", async () => ({ ok: true }), {
|
|
scope: "operator.write",
|
|
});
|
|
api.registerService({
|
|
id: "browser-control",
|
|
start() {},
|
|
});
|
|
},
|
|
};`;
|
|
|
|
export function createBundledBrowserPluginFixture(): { rootDir: string; cleanup: () => void } {
|
|
const rootDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-browser-bundled-"));
|
|
const pluginDir = path.join(rootDir, "browser");
|
|
fs.mkdirSync(pluginDir, { recursive: true });
|
|
fs.writeFileSync(
|
|
path.join(pluginDir, "openclaw.plugin.json"),
|
|
JSON.stringify(BROWSER_FIXTURE_MANIFEST, null, 2),
|
|
"utf8",
|
|
);
|
|
fs.writeFileSync(path.join(pluginDir, "index.js"), BROWSER_FIXTURE_ENTRY, "utf8");
|
|
return {
|
|
rootDir,
|
|
cleanup() {
|
|
fs.rmSync(rootDir, { recursive: true, force: true });
|
|
},
|
|
};
|
|
}
|