


































@@ -1,14 +1,11 @@
11import fs from "node:fs";
2-import { createRequire } from "node:module";
32import os from "node:os";
43import path from "node:path";
54import { pathToFileURL } from "node:url";
65import { afterEach, expect, it } from "vitest";
7687const tempDirs: string[] = [];
98const REPO_ROOT = process.cwd();
10-const require = createRequire(import.meta.url);
11-const JITI_ENTRY_PATH = require.resolve("jiti");
129const matrixWrapperGlobal = globalThis as typeof globalThis & {
1310__openclawMatrixWrapperJitiOptions?: unknown;
1411};
@@ -40,14 +37,6 @@ function writeFixtureFile(fixtureRoot: string, relativePath: string, value: stri
4037fs.writeFileSync(fullPath, value, "utf8");
4138}
423943-function writeJitiFixture(fixtureRoot: string) {
44-writeFixtureFile(
45-fixtureRoot,
46-"node_modules/jiti/index.js",
47-`module.exports = require(${JSON.stringify(JITI_ENTRY_PATH)});\n`,
48-);
49-}
50-5140function writeCapturingJitiFixture(fixtureRoot: string) {
5241writeFixtureFile(
5342fixtureRoot,
@@ -143,15 +132,19 @@ function writeTrustedOpenClawBinFixture(
143132writeFixtureFile(fixtureRoot, "dist/plugin-sdk/group-access.js", "export {};\n");
144133}
145134146-function writeSourceRuntimeWrapperFixture(fixtureRoot: string) {
135+function writeSourceRuntimeWrapperFixture(
136+fixtureRoot: string,
137+options: { runtimeExtension?: ".js" | ".ts" } = {},
138+) {
139+const runtimeExtension = options.runtimeExtension ?? ".js";
147140writeFixtureFile(
148141fixtureRoot,
149142"extensions/matrix/src/plugin-entry.runtime.js",
150143MATRIX_RUNTIME_WRAPPER_SOURCE,
151144);
152145writeFixtureFile(
153146fixtureRoot,
154-"extensions/matrix/plugin-entry.handlers.runtime.js",
147+`extensions/matrix/plugin-entry.handlers.runtime${runtimeExtension}`,
155148PACKAGED_RUNTIME_STUB,
156149);
157150}
@@ -174,7 +167,7 @@ function writeCapturingSourceRuntimeWrapperFixture(fixtureRoot: string) {
174167delete matrixWrapperGlobal.__openclawMatrixWrapperJitiOptions;
175168writeOpenClawAliasFixture(fixtureRoot);
176169writeCapturingJitiFixture(fixtureRoot);
177-writeSourceRuntimeWrapperFixture(fixtureRoot);
170+writeSourceRuntimeWrapperFixture(fixtureRoot, { runtimeExtension: ".ts" });
178171}
179172180173function expectSourcePluginSdkAliases(fixtureRoot: string) {
@@ -198,7 +191,6 @@ it("loads the source-checkout runtime wrapper through native ESM import", async
198191const fixtureRoot = makeFixtureRoot(".tmp-matrix-source-runtime-");
199192200193writeOpenClawPackageFixture(fixtureRoot);
201-writeJitiFixture(fixtureRoot);
202194writeSourceRuntimeWrapperFixture(fixtureRoot);
203195204196expectRuntimeWrapperExports(
@@ -210,7 +202,6 @@ it("loads the packaged runtime wrapper without recursing through the stable root
210202const fixtureRoot = makeFixtureRoot(".tmp-matrix-runtime-");
211203212204writeOpenClawPackageFixture(fixtureRoot);
213-writeJitiFixture(fixtureRoot);
214205writeFixtureFile(
215206fixtureRoot,
216207"dist/plugin-entry.runtime-C88YIa_v.js",
@@ -267,7 +258,7 @@ it("keeps wrapper plugin-sdk aliases deterministic and ignores unsafe subpaths",
267258writeFixtureFile(fixtureRoot, "src/plugin-sdk/alpha.ts", "export {};\n");
268259writeFixtureFile(fixtureRoot, "src/plugin-sdk/zeta.ts", "export {};\n");
269260writeCapturingJitiFixture(fixtureRoot);
270-writeSourceRuntimeWrapperFixture(fixtureRoot);
261+writeSourceRuntimeWrapperFixture(fixtureRoot, { runtimeExtension: ".ts" });
271262await importFixtureModule(fixtureRoot, "extensions/matrix/src/plugin-entry.runtime.js");
272263273264const aliasKeys = Object.keys(
@@ -317,7 +308,7 @@ it("ignores nearby untrusted openclaw package stubs when resolving the wrapper r
317308);
318309writeFixtureFile(fixtureRoot, "extensions/src/plugin-sdk/group-access.ts", "export {};\n");
319310writeCapturingJitiFixture(fixtureRoot);
320-writeSourceRuntimeWrapperFixture(fixtureRoot);
311+writeSourceRuntimeWrapperFixture(fixtureRoot, { runtimeExtension: ".ts" });
321312await importFixtureModule(fixtureRoot, "extensions/matrix/src/plugin-entry.runtime.js");
322313323314expectSourcePluginSdkAliases(fixtureRoot);
@@ -329,7 +320,7 @@ it("treats string bin hints case-insensitively when trusting wrapper package roo
329320delete matrixWrapperGlobal.__openclawMatrixWrapperJitiOptions;
330321writeTrustedOpenClawBinFixture(fixtureRoot, "OpenClaw.MJS");
331322writeCapturingJitiFixture(fixtureRoot);
332-writeSourceRuntimeWrapperFixture(fixtureRoot);
323+writeSourceRuntimeWrapperFixture(fixtureRoot, { runtimeExtension: ".ts" });
333324await importFixtureModule(fixtureRoot, "extensions/matrix/src/plugin-entry.runtime.js");
334325335326expect(matrixWrapperGlobal.__openclawMatrixWrapperJitiOptions).toMatchObject({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。