traderclaw-cli 1.0.83 → 1.0.84
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.
|
@@ -1082,7 +1082,7 @@ function configureGatewayScheduling(modeConfig, configPath = CONFIG_FILE) {
|
|
|
1082
1082
|
if (typeof console !== "undefined") {
|
|
1083
1083
|
console.warn(
|
|
1084
1084
|
"[traderclaw] QMD binary not found. Memory engine will fall back to SQLite (no vector search, no temporal decay, no MMR).\n" +
|
|
1085
|
-
"Install QMD:
|
|
1085
|
+
"Install QMD: npm install -g @tobilu/qmd\n" +
|
|
1086
1086
|
"Then restart the gateway: openclaw gateway restart"
|
|
1087
1087
|
);
|
|
1088
1088
|
}
|
|
@@ -1791,6 +1791,11 @@ function verifyInstallation(modeConfig, apiKey) {
|
|
|
1791
1791
|
ok: heartbeatInWorkspace,
|
|
1792
1792
|
note: heartbeatInWorkspace ? workspaceRoot : `expected ${join(workspaceRoot, "HEARTBEAT.md")}`,
|
|
1793
1793
|
},
|
|
1794
|
+
{
|
|
1795
|
+
label: "QMD memory engine (vector search)",
|
|
1796
|
+
ok: commandExists("qmd"),
|
|
1797
|
+
note: "not installed — memory uses keyword search only. Install: npm install -g @tobilu/qmd",
|
|
1798
|
+
},
|
|
1794
1799
|
];
|
|
1795
1800
|
}
|
|
1796
1801
|
|
|
@@ -2264,6 +2269,32 @@ export class InstallerStepEngine {
|
|
|
2264
2269
|
await this.runStep("openclaw_global_deps", "Ensuring OpenClaw global package dependencies", async () =>
|
|
2265
2270
|
ensureOpenClawGlobalPackageDependencies(),
|
|
2266
2271
|
);
|
|
2272
|
+
await this.runStep("install_qmd", "Installing QMD memory engine (vector search)", async () => {
|
|
2273
|
+
if (commandExists("qmd")) {
|
|
2274
|
+
const ver = getCommandOutput("qmd --version");
|
|
2275
|
+
this.emitLog("install_qmd", "info", `QMD already installed: ${ver}`);
|
|
2276
|
+
return { alreadyInstalled: true, version: ver };
|
|
2277
|
+
}
|
|
2278
|
+
this.emitLog("install_qmd", "info", "Installing @tobilu/qmd globally for vector search memory...");
|
|
2279
|
+
try {
|
|
2280
|
+
await runCommandWithEvents("npm", ["install", "-g", "--ignore-scripts", "--registry", "https://registry.npmjs.org/", "@tobilu/qmd"], {
|
|
2281
|
+
onEvent: (evt) => this.emitLog("install_qmd", evt.type === "stderr" ? "warn" : "info", evt.text, evt.urls || []),
|
|
2282
|
+
});
|
|
2283
|
+
} catch (err) {
|
|
2284
|
+
this.emitLog(
|
|
2285
|
+
"install_qmd",
|
|
2286
|
+
"warn",
|
|
2287
|
+
`QMD install failed (non-fatal): ${err?.message || err}. Memory will use keyword search only. You can install manually later: npm install -g @tobilu/qmd`,
|
|
2288
|
+
);
|
|
2289
|
+
return { installed: false, error: err?.message || String(err) };
|
|
2290
|
+
}
|
|
2291
|
+
const available = commandExists("qmd");
|
|
2292
|
+
const ver = available ? getCommandOutput("qmd --version") : null;
|
|
2293
|
+
if (!available) {
|
|
2294
|
+
this.emitLog("install_qmd", "warn", "QMD installed but not on PATH. Memory will use keyword search only.");
|
|
2295
|
+
}
|
|
2296
|
+
return { installed: available, version: ver };
|
|
2297
|
+
});
|
|
2267
2298
|
await this.runStep(
|
|
2268
2299
|
"activate_openclaw_plugin",
|
|
2269
2300
|
"Installing and enabling TraderClaw inside OpenClaw",
|
|
@@ -2371,6 +2402,17 @@ export class InstallerStepEngine {
|
|
|
2371
2402
|
this.emitLog("gateway_scheduling", "warn", "Removed legacy 'cron.jobs' from openclaw.json to keep config validation compatible.");
|
|
2372
2403
|
}
|
|
2373
2404
|
this.emitLog("gateway_scheduling", "info", `Webhook hooks: ${result.hooksConfigured}`);
|
|
2405
|
+
if (!result.qmdAvailable) {
|
|
2406
|
+
this.emitLog(
|
|
2407
|
+
"gateway_scheduling",
|
|
2408
|
+
"warn",
|
|
2409
|
+
"QMD binary not found — memory will use SQLite keyword search only (no vector search, no temporal decay, no MMR). " +
|
|
2410
|
+
"Vector search makes the agent's memory significantly more effective. " +
|
|
2411
|
+
"Install: npm install -g @tobilu/qmd — then restart the gateway: openclaw gateway restart",
|
|
2412
|
+
);
|
|
2413
|
+
} else {
|
|
2414
|
+
this.emitLog("gateway_scheduling", "info", `QMD memory engine: ${result.qmdVersion || "installed"}`);
|
|
2415
|
+
}
|
|
2374
2416
|
const restart = await restartGateway();
|
|
2375
2417
|
return { ...result, restart };
|
|
2376
2418
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "traderclaw-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.84",
|
|
4
4
|
"description": "Global TraderClaw CLI (install --wizard, setup, precheck). Installs solana-traderclaw as a dependency for OpenClaw plugin files.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"node": ">=22"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"solana-traderclaw": "^1.0.
|
|
20
|
+
"solana-traderclaw": "^1.0.84"
|
|
21
21
|
},
|
|
22
22
|
"keywords": [
|
|
23
23
|
"traderclaw",
|