visionclaw 0.1.195-dev.feat-e2e-test-system.5 → 0.1.195-dev.feat-e2e-test-system.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/e2e/artifacts.d.ts +1 -0
- package/dist/e2e/artifacts.d.ts.map +1 -1
- package/dist/e2e/artifacts.js +7 -0
- package/dist/e2e/artifacts.js.map +1 -1
- package/dist/e2e/runner.d.ts.map +1 -1
- package/dist/e2e/runner.js +31 -7
- package/dist/e2e/runner.js.map +1 -1
- package/dist-agent/bundle.cjs +35 -8
- package/package.json +1 -1
package/dist/e2e/artifacts.d.ts
CHANGED
|
@@ -4,5 +4,6 @@ export declare function getE2ERunDir(runId: string): string;
|
|
|
4
4
|
export declare function ensureE2ERunDir(runId: string): string;
|
|
5
5
|
export declare function getE2EGuestTokensFile(): string;
|
|
6
6
|
export declare function getE2EOAuthSetupsDir(): string;
|
|
7
|
+
export declare function deleteE2ERunDir(runId: string): boolean;
|
|
7
8
|
export declare function listRecentRunIds(limit?: number): string[];
|
|
8
9
|
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/e2e/artifacts.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAK,GAAG,MAAM,EAAE,CASrD"}
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/e2e/artifacts.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAK,GAAG,MAAM,EAAE,CASrD"}
|
package/dist/e2e/artifacts.js
CHANGED
|
@@ -21,6 +21,13 @@ export function getE2EGuestTokensFile() {
|
|
|
21
21
|
export function getE2EOAuthSetupsDir() {
|
|
22
22
|
return path.join(getE2EDir(), "oauth-setups");
|
|
23
23
|
}
|
|
24
|
+
export function deleteE2ERunDir(runId) {
|
|
25
|
+
const dir = getE2ERunDir(runId);
|
|
26
|
+
if (!fs.existsSync(dir))
|
|
27
|
+
return false;
|
|
28
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
24
31
|
export function listRecentRunIds(limit = 10) {
|
|
25
32
|
const runsDir = getE2ERunsDir();
|
|
26
33
|
if (!fs.existsSync(runsDir))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/e2e/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAK,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAClG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/e2e/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAK,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAClG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/e2e/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/e2e/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAelF,wBAAsB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/e2e/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAelF,wBAAsB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,CA8FvF;AA2ED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,UAAQ,GAAG,MAAM,CAG1E"}
|
package/dist/e2e/runner.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { loadConfig } from "../config/index.js";
|
|
3
3
|
import { logger } from "../logger.js";
|
|
4
|
-
import { ensureE2ERunDir, listRecentRunIds } from "./artifacts.js";
|
|
4
|
+
import { ensureE2ERunDir, deleteE2ERunDir, listRecentRunIds } from "./artifacts.js";
|
|
5
5
|
import { getSuitesForMode } from "./registry.js";
|
|
6
6
|
import { aggregateStatus, formatE2EStartMessage, formatE2ESummary, writeReports } from "./reporter.js";
|
|
7
7
|
import { formatCleanupList, hasFailedCleanupItems, loadCleanupItems, runCleanupForRun, saveCleanupItems } from "./cleanup.js";
|
|
@@ -26,8 +26,10 @@ export async function runE2E(options) {
|
|
|
26
26
|
" browser — browser suite only",
|
|
27
27
|
" cua — CUA suite only (display + click/type)",
|
|
28
28
|
" google — Google Workspace suite only",
|
|
29
|
-
" cleanup —
|
|
30
|
-
" cleanup <runId> — clean up a specific run",
|
|
29
|
+
" cleanup — list runs and their cleanup state",
|
|
30
|
+
" cleanup <runId> — clean up and delete a specific run",
|
|
31
|
+
" cleanup latest — clean up and delete the most recent run",
|
|
32
|
+
" cleanup --all-stale — clean up and delete all runs",
|
|
31
33
|
" setup google-guest — start Google guest account setup",
|
|
32
34
|
" help — show this message",
|
|
33
35
|
"",
|
|
@@ -53,6 +55,7 @@ export async function runE2E(options) {
|
|
|
53
55
|
const artifactsDir = ensureE2ERunDir(runId);
|
|
54
56
|
const startedAt = new Date().toISOString();
|
|
55
57
|
const cleanupItems = [];
|
|
58
|
+
await cleanupPreviousRuns(config, runId);
|
|
56
59
|
logger.system(formatE2EStartMessage(runId, options.mode));
|
|
57
60
|
const context = {
|
|
58
61
|
runId,
|
|
@@ -91,6 +94,21 @@ export async function runE2E(options) {
|
|
|
91
94
|
writeReports(result);
|
|
92
95
|
return result;
|
|
93
96
|
}
|
|
97
|
+
async function cleanupPreviousRuns(config, currentRunId) {
|
|
98
|
+
const previousRunIds = listRecentRunIds(20).filter((id) => id !== currentRunId);
|
|
99
|
+
for (const id of previousRunIds) {
|
|
100
|
+
try {
|
|
101
|
+
await runCleanupForRun(config, id);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// best-effort
|
|
105
|
+
}
|
|
106
|
+
deleteE2ERunDir(id);
|
|
107
|
+
}
|
|
108
|
+
if (previousRunIds.length > 0) {
|
|
109
|
+
logger.system(`Auto-cleaned ${previousRunIds.length} previous e2e run(s)`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
94
112
|
async function handleCleanup(config, options) {
|
|
95
113
|
const target = options.cleanupTarget;
|
|
96
114
|
if (!target)
|
|
@@ -107,15 +125,21 @@ async function handleCleanup(config, options) {
|
|
|
107
125
|
const lines = [`Running cleanup for ${runIds.length} run(s)...`];
|
|
108
126
|
for (const id of runIds) {
|
|
109
127
|
const result = await runCleanupForRun(config, id);
|
|
110
|
-
|
|
128
|
+
deleteE2ERunDir(id);
|
|
129
|
+
lines.push(`- ${id}: ${result.status} (deleted)`);
|
|
111
130
|
}
|
|
112
131
|
return lines.join("\n");
|
|
113
132
|
}
|
|
114
133
|
const items = loadCleanupItems(runId);
|
|
115
|
-
if (items.length === 0)
|
|
116
|
-
|
|
134
|
+
if (items.length === 0) {
|
|
135
|
+
const deleted = deleteE2ERunDir(runId);
|
|
136
|
+
return deleted
|
|
137
|
+
? `Deleted run ${runId} (no cleanup items).`
|
|
138
|
+
: `Run ${runId} not found.`;
|
|
139
|
+
}
|
|
117
140
|
const result = await runCleanupForRun(config, runId);
|
|
118
|
-
|
|
141
|
+
deleteE2ERunDir(runId);
|
|
142
|
+
return `Cleanup for ${runId}: ${result.status} (deleted)${result.message ? `\n${result.message}` : ""}`;
|
|
119
143
|
}
|
|
120
144
|
async function handleSetup(config, options) {
|
|
121
145
|
if (options.setupKind === "google-guest-code") {
|
package/dist/e2e/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/e2e/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/e2e/runner.ts"],"names":[],"mappings":"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"}
|
package/dist-agent/bundle.cjs
CHANGED
|
@@ -20510,7 +20510,7 @@ var require_prompts3 = __commonJS({
|
|
|
20510
20510
|
|
|
20511
20511
|
// dist/utils/version-check.js
|
|
20512
20512
|
function isBundled() {
|
|
20513
|
-
const v15 = "0.1.195-dev.feat-e2e-test-system.
|
|
20513
|
+
const v15 = "0.1.195-dev.feat-e2e-test-system.7";
|
|
20514
20514
|
return typeof v15 === "string" && v15 !== "undefined";
|
|
20515
20515
|
}
|
|
20516
20516
|
function getPackageRoot() {
|
|
@@ -20527,7 +20527,7 @@ function getInstallationInfo() {
|
|
|
20527
20527
|
};
|
|
20528
20528
|
}
|
|
20529
20529
|
function getCurrentVersion() {
|
|
20530
|
-
const bundledVersion = "0.1.195-dev.feat-e2e-test-system.
|
|
20530
|
+
const bundledVersion = "0.1.195-dev.feat-e2e-test-system.7";
|
|
20531
20531
|
if (bundledVersion && bundledVersion !== "undefined") {
|
|
20532
20532
|
return bundledVersion;
|
|
20533
20533
|
}
|
|
@@ -1030089,6 +1030089,13 @@ function getE2EGuestTokensFile() {
|
|
|
1030089
1030089
|
function getE2EOAuthSetupsDir() {
|
|
1030090
1030090
|
return import_node_path59.default.join(getE2EDir(), "oauth-setups");
|
|
1030091
1030091
|
}
|
|
1030092
|
+
function deleteE2ERunDir(runId) {
|
|
1030093
|
+
const dir = getE2ERunDir(runId);
|
|
1030094
|
+
if (!import_node_fs58.default.existsSync(dir))
|
|
1030095
|
+
return false;
|
|
1030096
|
+
import_node_fs58.default.rmSync(dir, { recursive: true, force: true });
|
|
1030097
|
+
return true;
|
|
1030098
|
+
}
|
|
1030092
1030099
|
function listRecentRunIds(limit2 = 10) {
|
|
1030093
1030100
|
const runsDir = getE2ERunsDir();
|
|
1030094
1030101
|
if (!import_node_fs58.default.existsSync(runsDir))
|
|
@@ -1036303,8 +1036310,10 @@ async function runE2E(options3) {
|
|
|
1036303
1036310
|
" browser \u2014 browser suite only",
|
|
1036304
1036311
|
" cua \u2014 CUA suite only (display + click/type)",
|
|
1036305
1036312
|
" google \u2014 Google Workspace suite only",
|
|
1036306
|
-
" cleanup \u2014
|
|
1036307
|
-
" cleanup <runId> \u2014 clean up a specific run",
|
|
1036313
|
+
" cleanup \u2014 list runs and their cleanup state",
|
|
1036314
|
+
" cleanup <runId> \u2014 clean up and delete a specific run",
|
|
1036315
|
+
" cleanup latest \u2014 clean up and delete the most recent run",
|
|
1036316
|
+
" cleanup --all-stale \u2014 clean up and delete all runs",
|
|
1036308
1036317
|
" setup google-guest \u2014 start Google guest account setup",
|
|
1036309
1036318
|
" help \u2014 show this message",
|
|
1036310
1036319
|
"",
|
|
@@ -1036330,6 +1036339,7 @@ async function runE2E(options3) {
|
|
|
1036330
1036339
|
const artifactsDir = ensureE2ERunDir(runId);
|
|
1036331
1036340
|
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1036332
1036341
|
const cleanupItems = [];
|
|
1036342
|
+
await cleanupPreviousRuns(config2, runId);
|
|
1036333
1036343
|
logger.system(formatE2EStartMessage(runId, options3.mode));
|
|
1036334
1036344
|
const context = {
|
|
1036335
1036345
|
runId,
|
|
@@ -1036366,6 +1036376,19 @@ async function runE2E(options3) {
|
|
|
1036366
1036376
|
writeReports(result);
|
|
1036367
1036377
|
return result;
|
|
1036368
1036378
|
}
|
|
1036379
|
+
async function cleanupPreviousRuns(config2, currentRunId) {
|
|
1036380
|
+
const previousRunIds = listRecentRunIds(20).filter((id2) => id2 !== currentRunId);
|
|
1036381
|
+
for (const id2 of previousRunIds) {
|
|
1036382
|
+
try {
|
|
1036383
|
+
await runCleanupForRun(config2, id2);
|
|
1036384
|
+
} catch {
|
|
1036385
|
+
}
|
|
1036386
|
+
deleteE2ERunDir(id2);
|
|
1036387
|
+
}
|
|
1036388
|
+
if (previousRunIds.length > 0) {
|
|
1036389
|
+
logger.system(`Auto-cleaned ${previousRunIds.length} previous e2e run(s)`);
|
|
1036390
|
+
}
|
|
1036391
|
+
}
|
|
1036369
1036392
|
async function handleCleanup(config2, options3) {
|
|
1036370
1036393
|
const target = options3.cleanupTarget;
|
|
1036371
1036394
|
if (!target)
|
|
@@ -1036382,15 +1036405,19 @@ async function handleCleanup(config2, options3) {
|
|
|
1036382
1036405
|
const lines = [`Running cleanup for ${runIds.length} run(s)...`];
|
|
1036383
1036406
|
for (const id2 of runIds) {
|
|
1036384
1036407
|
const result2 = await runCleanupForRun(config2, id2);
|
|
1036385
|
-
|
|
1036408
|
+
deleteE2ERunDir(id2);
|
|
1036409
|
+
lines.push(`- ${id2}: ${result2.status} (deleted)`);
|
|
1036386
1036410
|
}
|
|
1036387
1036411
|
return lines.join("\n");
|
|
1036388
1036412
|
}
|
|
1036389
1036413
|
const items = loadCleanupItems(runId);
|
|
1036390
|
-
if (items.length === 0)
|
|
1036391
|
-
|
|
1036414
|
+
if (items.length === 0) {
|
|
1036415
|
+
const deleted = deleteE2ERunDir(runId);
|
|
1036416
|
+
return deleted ? `Deleted run ${runId} (no cleanup items).` : `Run ${runId} not found.`;
|
|
1036417
|
+
}
|
|
1036392
1036418
|
const result = await runCleanupForRun(config2, runId);
|
|
1036393
|
-
|
|
1036419
|
+
deleteE2ERunDir(runId);
|
|
1036420
|
+
return `Cleanup for ${runId}: ${result.status} (deleted)${result.message ? `
|
|
1036394
1036421
|
${result.message}` : ""}`;
|
|
1036395
1036422
|
}
|
|
1036396
1036423
|
async function handleSetup(config2, options3) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "visionclaw",
|
|
3
|
-
"version": "0.1.195-dev.feat-e2e-test-system.
|
|
3
|
+
"version": "0.1.195-dev.feat-e2e-test-system.7",
|
|
4
4
|
"description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|