mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 21:07:01 -06:00
3a5cb3847c
* feat: @openclaw/daytona-sandbox inital version Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * feat: plugin config params extended Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * feat: implement ClawSweeper review notes Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * fix(daytona): honor abort signals and clean up remote staging on failure Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * fix(daytona): register launcher as knip entry and refresh manifest schema Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * fix(daytona): cancellable session transport and auto-stopped sandbox restart Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * fix(daytona): deny egress by default and arm launcher cleanup before startup Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> * fix(daytona): stop cancelled startup before submission * test(daytona): satisfy deferred race lint * test(release): update plugin publisher inventory * fix(daytona): close provisioning and PTY cleanup gaps * test(daytona): type PTY launcher mock * fix(acpx): avoid promise-returning line handler * fix(daytona): await PTY signal cleanup * fix(daytona): declare ClawHub install route * fix(daytona): forward PTY stdin EOF * fix(daytona): serialize PTY input * docs(daytona): document sandbox backend config --------- Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com> Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildExternalPluginLocalDist,
|
|
listExternalPluginLocalDistPackageDirs,
|
|
} from "../../scripts/build-external-plugin-local-dist.mts";
|
|
import {
|
|
collectRootPackageExcludedExtensionDirs,
|
|
DOCKER_SELECTED_PLUGIN_BUILD_IDS_ENV,
|
|
} from "../../scripts/lib/bundled-plugin-build-entries.mjs";
|
|
|
|
describe("external plugin local dist build", () => {
|
|
it("selects every externalized first-party plugin behind a package exclusion", () => {
|
|
const packageDirs = listExternalPluginLocalDistPackageDirs();
|
|
const excludedPluginIds = collectRootPackageExcludedExtensionDirs();
|
|
|
|
expect(packageDirs).toHaveLength(64);
|
|
expect(packageDirs).toEqual(
|
|
expect.arrayContaining([
|
|
"extensions/diffs",
|
|
"extensions/diffs-language-pack",
|
|
"extensions/slack",
|
|
"extensions/sms",
|
|
"extensions/mxc",
|
|
"extensions/daytona",
|
|
]),
|
|
);
|
|
expect(packageDirs).not.toContain("extensions/whatsapp");
|
|
expect(
|
|
packageDirs.every((packageDir) => excludedPluginIds.has(packageDir.split("/").at(-1) ?? "")),
|
|
).toBe(true);
|
|
});
|
|
|
|
it("leaves Docker-selected external plugin compilation on the unified build path", () => {
|
|
expect(
|
|
listExternalPluginLocalDistPackageDirs({
|
|
env: {
|
|
...process.env,
|
|
[DOCKER_SELECTED_PLUGIN_BUILD_IDS_ENV]: "slack",
|
|
},
|
|
}),
|
|
).toEqual([]);
|
|
});
|
|
|
|
it("performs no writes when Docker owns the selected build", async () => {
|
|
await expect(
|
|
buildExternalPluginLocalDist({
|
|
env: {
|
|
...process.env,
|
|
[DOCKER_SELECTED_PLUGIN_BUILD_IDS_ENV]: "slack",
|
|
},
|
|
logLevel: "silent",
|
|
}),
|
|
).resolves.toMatchObject({ pluginDirs: [] });
|
|
});
|
|
});
|