traderclaw-cli 1.0.69 → 1.0.70

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.
@@ -993,6 +993,21 @@ function configureGatewayScheduling(modeConfig, configPath = CONFIG_FILE) {
993
993
  const cronStorePath = resolveCronJobsStorePath(config);
994
994
  const cronMerge = mergeTraderCronJobsIntoStore(cronStorePath, targetJobs);
995
995
 
996
+ let qmdAvailable = false;
997
+ let qmdVersion = null;
998
+ try { qmdAvailable = commandExists("qmd"); } catch {}
999
+ if (qmdAvailable) {
1000
+ qmdVersion = getCommandOutput("qmd --version");
1001
+ } else {
1002
+ if (typeof console !== "undefined") {
1003
+ console.warn(
1004
+ "[traderclaw] QMD binary not found. Memory engine will fall back to SQLite (no vector search, no temporal decay, no MMR).\n" +
1005
+ "Install QMD: bun install -g @tobilu/qmd\n" +
1006
+ "Then restart the gateway: openclaw gateway restart"
1007
+ );
1008
+ }
1009
+ }
1010
+
996
1011
  return {
997
1012
  configPath,
998
1013
  agentsConfigured: targetAgents.length,
@@ -1004,6 +1019,8 @@ function configureGatewayScheduling(modeConfig, configPath = CONFIG_FILE) {
1004
1019
  cronJobsStoreError: cronMerge.error,
1005
1020
  removedLegacyCronJobs,
1006
1021
  hooksConfigured: config.hooks.mappings.length,
1022
+ qmdAvailable,
1023
+ qmdVersion,
1007
1024
  isV2,
1008
1025
  };
1009
1026
  }
@@ -1171,13 +1188,23 @@ function seedXConfig(modeConfig, configPath = CONFIG_FILE, wizardOpts = {}) {
1171
1188
  entry.config.x.profiles = {};
1172
1189
  }
1173
1190
 
1174
- const agentIds = modeConfig.pluginId === "solana-trader-v2"
1175
- ? ["cto", "intern"]
1176
- : ["main"];
1191
+ const agentIds =
1192
+ modeConfig.pluginId === "solana-trader-v2"
1193
+ ? ["cto", "intern"]
1194
+ : modeConfig.pluginId === "solana-trader"
1195
+ ? ["main", "solana-trader"]
1196
+ : ["main"];
1177
1197
  let profilesFound = 0;
1178
1198
 
1179
1199
  for (const agentId of agentIds) {
1180
- const { at, ats } = getAccessPairForAgent(wizardOpts, agentId);
1200
+ let { at, ats } = getAccessPairForAgent(wizardOpts, agentId);
1201
+ if (
1202
+ modeConfig.pluginId === "solana-trader"
1203
+ && agentId === "solana-trader"
1204
+ && (!at || !ats)
1205
+ ) {
1206
+ ({ at, ats } = getAccessPairForAgent(wizardOpts, "main"));
1207
+ }
1181
1208
  if (at && ats) {
1182
1209
  entry.config.x.profiles[agentId] = { accessToken: at, accessTokenSecret: ats };
1183
1210
  profilesFound++;
@@ -858,7 +858,9 @@ async function cmdSetup(args) {
858
858
 
859
859
  const existingForRecovery = readConfig();
860
860
  const prevPlugin = getPluginConfig(existingForRecovery);
861
+ const prevSafe = prevPlugin && typeof prevPlugin === "object" ? { ...prevPlugin } : {};
861
862
  const pluginConfig = {
863
+ ...prevSafe,
862
864
  orchestratorUrl,
863
865
  walletId: null,
864
866
  apiKey,
@@ -2118,7 +2120,7 @@ function wizardHtml(defaults) {
2118
2120
  <input id="xAccessTokenMainSecret" type="password" autocomplete="off" />
2119
2121
  </div>
2120
2122
  </div>
2121
- <p class="muted">If you use X: create an app at <a href="https://developer.x.com" target="_blank" rel="noopener noreferrer">developer.x.com</a> with OAuth 1.0a Read and Write, and fill all four fields above (or leave all blank). Values are written to <code>openclaw.json</code> under the plugin <code>x</code> block.</p>
2123
+ <p class="muted">If you use X: create an app at <a href="https://developer.x.com" target="_blank" rel="noopener noreferrer">developer.x.com</a> with OAuth 1.0a Read and Write, and fill all four fields above (or leave all blank). Values are written to <code>openclaw.json</code> at <code>plugins.entries.solana-trader.config.x</code> (consumer key/secret plus <code>profiles.main</code> and <code>profiles.solana-trader</code>, same tokens unless you set <code>X_ACCESS_TOKEN_SOLANA_TRADER</code> / <code>_SECRET</code>).</p>
2122
2124
  </div>
2123
2125
  <div class="card" id="startCard">
2124
2126
  <div class="grid">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traderclaw-cli",
3
- "version": "1.0.69",
3
+ "version": "1.0.70",
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.69"
20
+ "solana-traderclaw": "^1.0.70"
21
21
  },
22
22
  "keywords": [
23
23
  "traderclaw",