@clawstore/clawstore 1.0.2 → 1.0.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.
Files changed (47) hide show
  1. package/dist/src/cli.d.ts.map +1 -1
  2. package/dist/src/cli.js +11 -1
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/commands.d.ts.map +1 -1
  5. package/dist/src/commands.js +8 -1
  6. package/dist/src/commands.js.map +1 -1
  7. package/dist/src/core/agent-register.d.ts +6 -0
  8. package/dist/src/core/agent-register.d.ts.map +1 -0
  9. package/dist/src/core/agent-register.js +48 -0
  10. package/dist/src/core/agent-register.js.map +1 -0
  11. package/dist/src/core/api-health.d.ts +9 -0
  12. package/dist/src/core/api-health.d.ts.map +1 -0
  13. package/dist/src/core/api-health.js +17 -0
  14. package/dist/src/core/api-health.js.map +1 -0
  15. package/dist/src/core/diagnostics.d.ts +7 -0
  16. package/dist/src/core/diagnostics.d.ts.map +1 -0
  17. package/dist/src/core/diagnostics.js +145 -0
  18. package/dist/src/core/diagnostics.js.map +1 -0
  19. package/dist/src/core/openclaw-profile.d.ts +6 -0
  20. package/dist/src/core/openclaw-profile.d.ts.map +1 -0
  21. package/dist/src/core/openclaw-profile.js +12 -0
  22. package/dist/src/core/openclaw-profile.js.map +1 -0
  23. package/dist/src/core/workspace.d.ts +0 -9
  24. package/dist/src/core/workspace.d.ts.map +1 -1
  25. package/dist/src/core/workspace.js +7 -154
  26. package/dist/src/core/workspace.js.map +1 -1
  27. package/openclaw.plugin.json +1 -1
  28. package/package.json +18 -3
  29. package/src/cli.ts +12 -1
  30. package/src/commands.ts +9 -1
  31. package/src/core/agent-register.ts +57 -0
  32. package/src/core/api-health.ts +17 -0
  33. package/src/core/diagnostics.ts +163 -0
  34. package/src/core/openclaw-profile.ts +10 -0
  35. package/src/core/workspace.ts +7 -168
  36. package/clawstore-clawstore-1.0.2.tgz +0 -0
  37. package/dist/src/__tests__/cli-sim.test.d.ts +0 -9
  38. package/dist/src/__tests__/cli-sim.test.d.ts.map +0 -1
  39. package/dist/src/__tests__/cli-sim.test.js +0 -275
  40. package/dist/src/__tests__/cli-sim.test.js.map +0 -1
  41. package/dist/src/__tests__/e2e.test.d.ts +0 -10
  42. package/dist/src/__tests__/e2e.test.d.ts.map +0 -1
  43. package/dist/src/__tests__/e2e.test.js +0 -159
  44. package/dist/src/__tests__/e2e.test.js.map +0 -1
  45. package/src/__tests__/cli-sim.test.ts +0 -303
  46. package/src/__tests__/e2e.test.ts +0 -186
  47. package/tsconfig.json +0 -23
@@ -1,17 +1,13 @@
1
- import { readFile, access, readdir, stat } from "node:fs/promises";
1
+ import { readFile, access, readdir } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import {
5
5
  OPENCLAW_HOME,
6
6
  CLAWSTORE_DIR,
7
7
  DEFAULT_AGENT,
8
- REQUIRED_FILES,
9
- OPTIONAL_FILES,
10
8
  agentRegistryFile,
11
- agentSkillRegistryFile,
12
- agentBackupDir,
13
9
  } from "../constants.js";
14
- import type { DiagnosticCheck, DiagnosticReport } from "../types.js";
10
+ import { readOpenclawProfileLabel } from "./openclaw-profile.js";
15
11
 
16
12
  /**
17
13
  * Resolve the workspace directory for a given OpenClaw agent.
@@ -40,6 +36,10 @@ export async function resolveWorkspace(agent?: string): Promise<string> {
40
36
  workspace =
41
37
  config?.agents?.[target]?.workspace ??
42
38
  config?.agents?.entries?.[target]?.workspace;
39
+ if (!workspace && Array.isArray(config?.agents?.list)) {
40
+ const entry = config.agents.list.find((e: { id?: string }) => e?.id === target);
41
+ workspace = entry?.workspace;
42
+ }
43
43
  } else {
44
44
  workspace =
45
45
  config?.agents?.defaults?.workspace ??
@@ -54,7 +54,7 @@ export async function resolveWorkspace(agent?: string): Promise<string> {
54
54
  }
55
55
 
56
56
  if (target === DEFAULT_AGENT) {
57
- const profile = process.env.OPENCLAW_PROFILE ?? "default";
57
+ const profile = readOpenclawProfileLabel();
58
58
  if (profile !== "default") {
59
59
  return join(OPENCLAW_HOME, `workspace-${profile}`);
60
60
  }
@@ -79,12 +79,10 @@ function expandHome(p: string): string {
79
79
  export async function listClawstoreAgents(): Promise<string[]> {
80
80
  const agents: string[] = [];
81
81
 
82
- // "main" agent uses the root-level registry file
83
82
  if (await exists(agentRegistryFile(DEFAULT_AGENT))) {
84
83
  agents.push(DEFAULT_AGENT);
85
84
  }
86
85
 
87
- // Non-main agents live under clawstore/agents/<name>/
88
86
  const agentsDir = join(CLAWSTORE_DIR, "agents");
89
87
  if (await exists(agentsDir)) {
90
88
  const entries = await readdir(agentsDir, { withFileTypes: true });
@@ -108,162 +106,3 @@ async function exists(p: string): Promise<boolean> {
108
106
  return false;
109
107
  }
110
108
  }
111
-
112
- async function dirItemCount(p: string): Promise<number> {
113
- try {
114
- const entries = await readdir(p);
115
- return entries.length;
116
- } catch {
117
- return -1;
118
- }
119
- }
120
-
121
- /**
122
- * Run a full diagnostic for a specific OpenClaw agent.
123
- */
124
- export async function diagnose(apiBaseUrl?: string, agent?: string): Promise<DiagnosticReport> {
125
- const target = agent ?? DEFAULT_AGENT;
126
- const checks: DiagnosticCheck[] = [];
127
- let allOk = true;
128
- const workspace = await resolveWorkspace(target);
129
- const registryFile = agentRegistryFile(target);
130
- const backupDir = agentBackupDir(target);
131
-
132
- if (target !== DEFAULT_AGENT) {
133
- checks.push({
134
- label: "Target agent",
135
- status: "ok",
136
- detail: target,
137
- });
138
- }
139
-
140
- // 1. OpenClaw home
141
- const homeOk = await exists(OPENCLAW_HOME);
142
- checks.push({
143
- label: "OpenClaw home",
144
- path: OPENCLAW_HOME,
145
- status: homeOk ? "ok" : "fail",
146
- detail: homeOk ? undefined : "NOT FOUND",
147
- });
148
- if (!homeOk) allOk = false;
149
-
150
- // 2. Workspace
151
- const wsOk = await exists(workspace);
152
- checks.push({
153
- label: "Workspace",
154
- path: workspace,
155
- status: wsOk ? "ok" : "fail",
156
- detail: wsOk ? undefined : "NOT FOUND",
157
- });
158
- if (!wsOk) allOk = false;
159
-
160
- // 3. Workspace files
161
- for (const f of [...REQUIRED_FILES, ...OPTIONAL_FILES]) {
162
- const fp = join(workspace, f);
163
- const found = await exists(fp);
164
- checks.push({
165
- label: `Workspace file: ${f}`,
166
- path: fp,
167
- status: found ? "ok" : "warn",
168
- detail: found ? "found" : "missing",
169
- });
170
- }
171
-
172
- // 4. Registry
173
- const regOk = await exists(registryFile);
174
- if (regOk) {
175
- try {
176
- const raw = await readFile(registryFile, "utf-8");
177
- const reg = JSON.parse(raw);
178
- const count = Object.keys(reg.agents ?? {}).length;
179
- checks.push({
180
- label: "Agent registry",
181
- path: registryFile,
182
- status: "ok",
183
- detail: `${count} agent(s) registered`,
184
- });
185
- } catch {
186
- checks.push({
187
- label: "Agent registry",
188
- path: registryFile,
189
- status: "warn",
190
- detail: "exists but cannot be parsed",
191
- });
192
- }
193
- } else {
194
- checks.push({
195
- label: "Agent registry",
196
- path: registryFile,
197
- status: "ok",
198
- detail: "not created yet (OK for first run)",
199
- });
200
- }
201
-
202
- // 5. Skills directory
203
- const skillsDir = join(workspace, "skills");
204
- const skillCount = await dirItemCount(skillsDir);
205
- checks.push({
206
- label: "Skills directory",
207
- path: skillsDir,
208
- status: skillCount >= 0 ? "ok" : "warn",
209
- detail: skillCount >= 0 ? `${skillCount} skill(s)` : "NOT FOUND",
210
- });
211
-
212
- // 6. Backup directory
213
- const backupCount = await dirItemCount(backupDir);
214
- checks.push({
215
- label: "Backup directory",
216
- path: backupDir,
217
- status: "ok",
218
- detail: backupCount >= 0 ? `${backupCount} backup(s)` : "will be created on first install",
219
- });
220
-
221
- // 7. Cache directory
222
- const cacheCount = await dirItemCount(join(CLAWSTORE_DIR, "cache"));
223
- checks.push({
224
- label: "Cache directory",
225
- path: join(CLAWSTORE_DIR, "cache"),
226
- status: "ok",
227
- detail: cacheCount >= 0 ? `${cacheCount} item(s)` : "will be created on first install",
228
- });
229
-
230
- // 8. API connectivity (optional)
231
- if (apiBaseUrl) {
232
- try {
233
- const res = await fetch(`${apiBaseUrl}/health`, { signal: AbortSignal.timeout(5000) });
234
- checks.push({
235
- label: "Clawstore API",
236
- status: res.ok ? "ok" : "warn",
237
- detail: res.ok ? "reachable" : `HTTP ${res.status}`,
238
- });
239
- } catch (err) {
240
- checks.push({
241
- label: "Clawstore API",
242
- status: "warn",
243
- detail: `unreachable (${(err as Error).message})`,
244
- });
245
- }
246
- }
247
-
248
- return { checks, allOk };
249
- }
250
-
251
- /**
252
- * Format a diagnostic report for CLI output.
253
- */
254
- export function formatDiagnosticReport(report: DiagnosticReport): string {
255
- const lines: string[] = ["\n Clawstore Doctor\n"];
256
- for (const c of report.checks) {
257
- const icon = c.status === "ok" ? "OK" : c.status === "warn" ? "WARN" : "FAIL";
258
- const pathPart = c.path ? ` ${c.path}` : "";
259
- const detailPart = c.detail ? ` (${c.detail})` : "";
260
- lines.push(` ${c.label}:${pathPart} ... ${icon}${detailPart}`);
261
- }
262
- lines.push("");
263
- lines.push(
264
- report.allOk
265
- ? " All checks passed.\n"
266
- : " Some issues found. Run `openclaw setup` to initialize missing directories.\n"
267
- );
268
- return lines.join("\n");
269
- }
Binary file
@@ -1,9 +0,0 @@
1
- /**
2
- * CLI simulation test — walks through the full lifecycle:
3
- * install -> installed -> status -> disable -> enable -> pack -> doctor -> uninstall
4
- *
5
- * Uses the E-commerce Persona package as the test subject.
6
- * Run: npx tsx src/__tests__/cli-sim.test.ts
7
- */
8
- export {};
9
- //# sourceMappingURL=cli-sim.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-sim.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/cli-sim.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,275 +0,0 @@
1
- /**
2
- * CLI simulation test — walks through the full lifecycle:
3
- * install -> installed -> status -> disable -> enable -> pack -> doctor -> uninstall
4
- *
5
- * Uses the E-commerce Persona package as the test subject.
6
- * Run: npx tsx src/__tests__/cli-sim.test.ts
7
- */
8
- import { resolve, join } from "node:path";
9
- import { mkdir, rm, access } from "node:fs/promises";
10
- import { tmpdir } from "node:os";
11
- async function exists(p) {
12
- try {
13
- await access(p);
14
- return true;
15
- }
16
- catch {
17
- return false;
18
- }
19
- }
20
- // ─── Capture log output ─────────────────────────────────────────────
21
- function createLogger() {
22
- const output = [];
23
- return {
24
- log: (msg) => {
25
- output.push(msg);
26
- console.log(msg);
27
- },
28
- output,
29
- };
30
- }
31
- // ─── Main test flow ─────────────────────────────────────────────────
32
- async function main() {
33
- const PERSONA_ROOT = resolve(import.meta.dirname ?? ".", "../../../../Persona");
34
- const ECOMMERCE_PKG = join(PERSONA_ROOT, "E-commerce");
35
- const DIST_DIR = join(tmpdir(), `clawstore-cli-test-${Date.now()}`);
36
- console.log("╔════════════════════════════════════════════════════════════╗");
37
- console.log("║ Clawstore CLI Simulation Test ║");
38
- console.log("╚════════════════════════════════════════════════════════════╝");
39
- console.log(`\n Persona root: ${PERSONA_ROOT}`);
40
- console.log(` Test package: ${ECOMMERCE_PKG}`);
41
- console.log(` Temp dist: ${DIST_DIR}\n`);
42
- await mkdir(DIST_DIR, { recursive: true });
43
- // Dynamic imports
44
- const { installAgent } = await import("../core/package-installer.js");
45
- const { listInstalledAgents, getAgentStatus, enableAgent, disableAgent } = await import("../core/agent-manager.js");
46
- const { packAgent } = await import("../core/packager.js");
47
- const { diagnose, formatDiagnosticReport } = await import("../core/workspace.js");
48
- const { validatePackage } = await import("../core/package-installer.js");
49
- let step = 0;
50
- // ─────────────────────────────────────────────────────────────────
51
- // Step 1: openclaw clawstore doctor
52
- // ─────────────────────────────────────────────────────────────────
53
- step++;
54
- console.log(`\n${"─".repeat(60)}`);
55
- console.log(` Step ${step}: openclaw clawstore doctor`);
56
- console.log(`${"─".repeat(60)}`);
57
- const report = await diagnose();
58
- console.log(formatDiagnosticReport(report));
59
- // ─────────────────────────────────────────────────────────────────
60
- // Step 2: openclaw clawstore install ./Persona/E-commerce
61
- // ─────────────────────────────────────────────────────────────────
62
- step++;
63
- console.log(`\n${"─".repeat(60)}`);
64
- console.log(` Step ${step}: openclaw clawstore install ${ECOMMERCE_PKG}`);
65
- console.log(`${"─".repeat(60)}`);
66
- const installLogger = createLogger();
67
- const installResult = await installAgent({
68
- packagePath: ECOMMERCE_PKG,
69
- force: true,
70
- log: installLogger.log,
71
- });
72
- console.log(`\n >> Result state: ${installResult.state}`);
73
- if (installResult.error)
74
- console.log(` >> Error: ${installResult.error}`);
75
- // ─────────────────────────────────────────────────────────────────
76
- // Step 3: openclaw clawstore installed
77
- // ─────────────────────────────────────────────────────────────────
78
- step++;
79
- console.log(`\n${"─".repeat(60)}`);
80
- console.log(` Step ${step}: openclaw clawstore installed`);
81
- console.log(`${"─".repeat(60)}`);
82
- const agents = await listInstalledAgents();
83
- if (agents.length === 0) {
84
- console.log("\n No agents installed.");
85
- }
86
- else {
87
- console.log(`\n Installed agents: ${agents.length}\n`);
88
- agents.forEach((a, i) => {
89
- const status = a.enabled ? "enabled" : "disabled";
90
- console.log(` ${i + 1}. ${a.id}`);
91
- console.log(` ${a.name}`);
92
- console.log(` v${a.version} · ${a.category} · ${status}`);
93
- console.log(` Installed: ${a.installed_at.slice(0, 10)}`);
94
- console.log(` Files: ${a.files.length}`);
95
- console.log(` Skills: ${a.skills.join(", ") || "none"}`);
96
- console.log();
97
- });
98
- }
99
- // ─────────────────────────────────────────────────────────────────
100
- // Step 4: openclaw clawstore status sellex-ecommerce-ops
101
- // ─────────────────────────────────────────────────────────────────
102
- step++;
103
- console.log(`\n${"─".repeat(60)}`);
104
- console.log(` Step ${step}: openclaw clawstore status sellex-ecommerce-ops`);
105
- console.log(`${"─".repeat(60)}`);
106
- const agentStatus = await getAgentStatus("sellex-ecommerce-ops");
107
- if (agentStatus) {
108
- const { agent, fileHealth, skillHealth } = agentStatus;
109
- console.log(`\n Agent: ${agent.id}`);
110
- console.log(` Name: ${agent.name}`);
111
- console.log(` Version: ${agent.version}`);
112
- console.log(` Category: ${agent.category}`);
113
- console.log(` Status: ${agent.enabled ? "enabled" : "disabled"}`);
114
- console.log(` Installed: ${agent.installed_at}`);
115
- console.log(` Files:`);
116
- for (const f of fileHealth) {
117
- console.log(` - ${f.file} [${f.exists ? "OK" : "MISSING"}]`);
118
- }
119
- if (skillHealth.length > 0) {
120
- console.log(` Skills:`);
121
- for (const s of skillHealth) {
122
- console.log(` - ${s.skillId} [${s.installed ? "installed" : "not installed"}]`);
123
- }
124
- }
125
- if (agent.backup_path) {
126
- console.log(` Backup: ${agent.backup_path}`);
127
- }
128
- }
129
- // ─────────────────────────────────────────────────────────────────
130
- // Step 5: openclaw clawstore disable sellex-ecommerce-ops
131
- // ─────────────────────────────────────────────────────────────────
132
- step++;
133
- console.log(`\n${"─".repeat(60)}`);
134
- console.log(` Step ${step}: openclaw clawstore disable sellex-ecommerce-ops`);
135
- console.log(`${"─".repeat(60)}`);
136
- const disabledResult = await disableAgent("sellex-ecommerce-ops");
137
- if (disabledResult) {
138
- console.log(`\n Disabled: ${disabledResult.agent.name} (${disabledResult.agent.id})`);
139
- console.log(` Workspace files backed up and removed.`);
140
- console.log(` Backup: ${disabledResult.backupPath}`);
141
- }
142
- // ─────────────────────────────────────────────────────────────────
143
- // Step 6: openclaw clawstore enable sellex-ecommerce-ops
144
- // ─────────────────────────────────────────────────────────────────
145
- step++;
146
- console.log(`\n${"─".repeat(60)}`);
147
- console.log(` Step ${step}: openclaw clawstore enable sellex-ecommerce-ops`);
148
- console.log(`${"─".repeat(60)}`);
149
- const enabledResult = await enableAgent("sellex-ecommerce-ops");
150
- if (enabledResult) {
151
- console.log(`\n Enabled: ${enabledResult.name} (${enabledResult.id})`);
152
- }
153
- // ─────────────────────────────────────────────────────────────────
154
- // Step 7: openclaw clawstore pack ./Persona/E-commerce
155
- // ─────────────────────────────────────────────────────────────────
156
- step++;
157
- console.log(`\n${"─".repeat(60)}`);
158
- console.log(` Step ${step}: openclaw clawstore pack ${ECOMMERCE_PKG} --output ${DIST_DIR}`);
159
- console.log(`${"─".repeat(60)}`);
160
- const packLogger = createLogger();
161
- const packResult = await packAgent({
162
- packagePath: ECOMMERCE_PKG,
163
- outputDir: DIST_DIR,
164
- log: packLogger.log,
165
- });
166
- if (packResult) {
167
- console.log(`\n >> Pack result: ${packResult.zipPath}`);
168
- console.log(` >> Size: ${packResult.sizeKb.toFixed(1)} KB`);
169
- console.log(` >> Manifest ID: ${packResult.manifest.id}`);
170
- console.log(` >> Skills detected: ${packResult.manifest.skills.map(s => s.id).join(", ")}`);
171
- }
172
- // ─────────────────────────────────────────────────────────────────
173
- // Step 8: Verify the packed ZIP can be installed
174
- // ─────────────────────────────────────────────────────────────────
175
- if (packResult) {
176
- step++;
177
- console.log(`\n${"─".repeat(60)}`);
178
- console.log(` Step ${step}: openclaw clawstore install ${packResult.zipPath} (from ZIP)`);
179
- console.log(`${"─".repeat(60)}`);
180
- const zipLogger = createLogger();
181
- const zipResult = await installAgent({
182
- packagePath: packResult.zipPath,
183
- force: true,
184
- skipSkills: true, // ZIP re-install: skip skills since already attempted
185
- log: zipLogger.log,
186
- });
187
- console.log(`\n >> ZIP install result: ${zipResult.state}`);
188
- }
189
- // ─────────────────────────────────────────────────────────────────
190
- // Step 9: Install a second Persona to a DIFFERENT OpenClaw agent
191
- // (multi-agent support)
192
- // ─────────────────────────────────────────────────────────────────
193
- step++;
194
- const CROSSBORDER_PKG = join(PERSONA_ROOT, "Cross-border");
195
- const SECOND_AGENT = "sales";
196
- console.log(`\n${"─".repeat(60)}`);
197
- console.log(` Step ${step}: openclaw clawstore install ${CROSSBORDER_PKG} --agent ${SECOND_AGENT}`);
198
- console.log(`${"─".repeat(60)}`);
199
- const cb_logger = createLogger();
200
- await installAgent({
201
- packagePath: CROSSBORDER_PKG,
202
- force: true,
203
- skipSkills: true,
204
- agent: SECOND_AGENT,
205
- log: cb_logger.log,
206
- });
207
- // Show installed list per agent
208
- const mainAgents = await listInstalledAgents("main");
209
- const salesAgents = await listInstalledAgents(SECOND_AGENT);
210
- console.log(`\n Installed on "main": ${mainAgents.length}`);
211
- for (const a of mainAgents) {
212
- console.log(` - ${a.id} v${a.version} (${a.enabled ? "enabled" : "disabled"})`);
213
- }
214
- console.log(` Installed on "${SECOND_AGENT}": ${salesAgents.length}`);
215
- for (const a of salesAgents) {
216
- console.log(` - ${a.id} v${a.version} (${a.enabled ? "enabled" : "disabled"})`);
217
- }
218
- // ─────────────────────────────────────────────────────────────────
219
- // Step 10: openclaw clawstore uninstall sellex-ecommerce-ops
220
- // ─────────────────────────────────────────────────────────────────
221
- step++;
222
- console.log(`\n${"─".repeat(60)}`);
223
- console.log(` Step ${step}: openclaw clawstore uninstall sellex-ecommerce-ops`);
224
- console.log(`${"─".repeat(60)}`);
225
- const { unregisterAgent, backupCurrentWorkspace, removeAgentFiles, getInstalledAgent } = await import("../core/agent-manager.js");
226
- const agent = await getInstalledAgent("sellex-ecommerce-ops");
227
- if (agent) {
228
- console.log(`\n Uninstalling: ${agent.name} (${agent.id})`);
229
- console.log(` Version: ${agent.version}\n`);
230
- console.log(" [1/3] Creating safety backup ...");
231
- const backupPath = await backupCurrentWorkspace(agent.id, "uninstall");
232
- console.log(` [1/3] Creating safety backup ... OK (${backupPath})`);
233
- console.log(" [2/3] Removing agent files ...");
234
- const removed = await removeAgentFiles(agent);
235
- console.log(` [2/3] Removing agent files ... OK (${removed} files removed)`);
236
- console.log(" [3/3] Updating registry ...");
237
- await unregisterAgent(agent.id);
238
- console.log(" [3/3] Updating registry ... OK");
239
- console.log(`\n Uninstalled: ${agent.name}`);
240
- console.log(` Backup saved: ${backupPath}`);
241
- }
242
- // Final state
243
- const finalMainAgents = await listInstalledAgents("main");
244
- const finalSalesAgents = await listInstalledAgents(SECOND_AGENT);
245
- console.log(`\n Remaining on "main": ${finalMainAgents.length}`);
246
- for (const a of finalMainAgents) {
247
- console.log(` - ${a.id} v${a.version}`);
248
- }
249
- console.log(` Remaining on "${SECOND_AGENT}": ${finalSalesAgents.length}`);
250
- for (const a of finalSalesAgents) {
251
- console.log(` - ${a.id} v${a.version}`);
252
- }
253
- // ─────────────────────────────────────────────────────────────────
254
- // Cleanup all agents
255
- // ─────────────────────────────────────────────────────────────────
256
- for (const a of finalMainAgents) {
257
- await unregisterAgent(a.id, "main");
258
- }
259
- for (const a of finalSalesAgents) {
260
- await unregisterAgent(a.id, SECOND_AGENT);
261
- }
262
- // Cleanup temp
263
- try {
264
- await rm(DIST_DIR, { recursive: true, force: true });
265
- }
266
- catch { }
267
- console.log("\n╔════════════════════════════════════════════════════════════╗");
268
- console.log("║ All CLI simulation steps completed successfully! ║");
269
- console.log("╚════════════════════════════════════════════════════════════╝\n");
270
- }
271
- main().catch((err) => {
272
- console.error("\nTest failed:", err);
273
- process.exit(1);
274
- });
275
- //# sourceMappingURL=cli-sim.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-sim.test.js","sourceRoot":"","sources":["../../../src/__tests__/cli-sim.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * End-to-end test for the Clawstore plugin core modules.
3
- *
4
- * Verifies: workspace resolution, manifest validation, install/uninstall
5
- * flow, pack, and diagnostic report — all against the local Persona packages.
6
- *
7
- * Run: npx tsx src/__tests__/e2e.test.ts
8
- */
9
- export {};
10
- //# sourceMappingURL=e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}