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 =
|
|
1175
|
-
|
|
1176
|
-
|
|
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
|
-
|
|
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++;
|
package/bin/openclaw-trader.mjs
CHANGED
|
@@ -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>
|
|
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.
|
|
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.
|
|
20
|
+
"solana-traderclaw": "^1.0.70"
|
|
21
21
|
},
|
|
22
22
|
"keywords": [
|
|
23
23
|
"traderclaw",
|