traderclaw-cli 1.0.86 → 1.0.88

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.
@@ -748,6 +748,12 @@ async function establishSession(orchestratorUrl, pluginConfig, walletPrivateKeyI
748
748
  }
749
749
 
750
750
  pluginConfig.refreshToken = tokens.refreshToken;
751
+ // If the server returned a recovery secret alongside the session (e.g. for existing accounts
752
+ // that completed a wallet-proof challenge), store it so the gateway can re-authenticate via
753
+ // recover-secret when the refresh token expires — without needing TRADERCLAW_WALLET_PRIVATE_KEY.
754
+ if (tokens.recoverySecret) {
755
+ pluginConfig.recoverySecret = tokens.recoverySecret;
756
+ }
751
757
  printSuccess(" Session established");
752
758
  printInfo(` Tier: ${tokens.session?.tier || "unknown"}`);
753
759
  printInfo(` Scopes: ${(tokens.session?.scopes || []).join(", ")}`);
@@ -2215,11 +2221,11 @@ function wizardHtml(defaults) {
2215
2221
  </div>
2216
2222
  <div style="margin-top:12px;" id="llmOauthBlock" class="hidden">
2217
2223
  <p class="muted" style="margin-bottom:12px;">
2218
- OAuth here is fully guided. After you choose OAuth, we start OpenClaw login automatically. Use the sign-in button below, then complete ChatGPT in this browser. You should not need to copy any code.
2224
+ OAuth here is fully guided. After you choose OAuth, we start OpenClaw login automatically. Use the sign-in button below, then complete ChatGPT in this browser. If the redirect does not land automatically, you will be asked to paste the callback URL.
2219
2225
  </p>
2220
2226
  <div class="oauth-guide">
2221
2227
  <p class="muted" style="margin-top:0;">
2222
- <strong>Important:</strong> Complete the ChatGPT sign-in in this browser, then return to this tab. The wizard detects the result automatically.
2228
+ <strong>Important:</strong> Complete the ChatGPT sign-in in this browser, then return to this tab. If the redirect does not finish on its own, paste the callback URL using the box below.
2223
2229
  </p>
2224
2230
  <p class="muted" style="margin-top:4px;font-size:13px;color:#7a8ba8;">
2225
2231
  <strong>Remote VPS?</strong> Forward port <code>1455</code> alongside the wizard port:
@@ -2229,13 +2235,13 @@ function wizardHtml(defaults) {
2229
2235
  <li class="oauth-step pending" id="oauthStepPrepare">Preparing ChatGPT sign-in...</li>
2230
2236
  <li class="oauth-step pending" id="oauthStepOpen">Open ChatGPT sign-in in this browser.</li>
2231
2237
  <li class="oauth-step pending" id="oauthStepComplete">Finish ChatGPT approval, then return here.</li>
2232
- <li class="oauth-step pending" id="oauthStepVerify">We detect completion automatically.</li>
2238
+ <li class="oauth-step pending" id="oauthStepVerify">If the redirect does not complete, paste the callback URL below.</li>
2233
2239
  </ol>
2234
2240
  <div class="oauth-actions">
2235
2241
  <a id="oauthOpenUrlBtn" class="secondary" href="#" target="_blank" rel="noopener noreferrer" style="display:inline-block;padding:10px 14px;border-radius:8px;background:#2d7dff;color:#fff;text-decoration:none;font-weight:600;opacity:.55;pointer-events:none;">Open ChatGPT sign-in</a>
2236
2242
  <button type="button" id="oauthRetryBtn" class="secondary hidden">Try sign-in again</button>
2237
2243
  </div>
2238
- <p id="oauthFlowStatus" class="muted" style="margin-top:8px;" aria-live="polite">Choose OAuth and wait a moment. We will prepare your sign-in automatically.</p>
2244
+ <p id="oauthFlowStatus" class="muted" style="margin-top:8px;" aria-live="polite">Choose OAuth and wait a moment. We will prepare your sign-in link.</p>
2239
2245
  <div id="oauthFallbackPaste" class="hidden" style="margin-top:12px;padding:12px;background:#111827;border:1px solid #334a87;border-radius:8px;">
2240
2246
  <p class="muted" style="margin:0 0 8px;font-size:13px;color:#ffcc70;">
2241
2247
  <strong>Redirect didn't reach us?</strong> Copy the full URL from the error page in your browser (it starts with <code>http://localhost:1455/auth/callback?code=…</code>) and paste it below.
@@ -2525,7 +2531,7 @@ function wizardHtml(defaults) {
2525
2531
  setOauthStep(oauthStepOpen, "pending");
2526
2532
  setOauthStep(oauthStepComplete, "pending");
2527
2533
  setOauthStep(oauthStepVerify, "pending");
2528
- setOauthStatus("Choose OAuth and wait a moment. We will prepare your sign-in automatically.");
2534
+ setOauthStatus("Choose OAuth and wait a moment. We will prepare your sign-in link.");
2529
2535
  }
2530
2536
 
2531
2537
  (function initLlmAuthDefaults() {
@@ -2598,7 +2604,7 @@ function wizardHtml(defaults) {
2598
2604
  setOauthStep(oauthStepComplete, "error");
2599
2605
  setOauthStep(oauthStepVerify, "error");
2600
2606
  setOauthStatus(
2601
- "Automatic OAuth session expired. This flow requires the wizard and OpenClaw on the same machine and the same browser. Click Try sign-in again.",
2607
+ "OAuth session expired. This flow requires the wizard and OpenClaw on the same machine and browser. Click Try sign-in again.",
2602
2608
  true,
2603
2609
  );
2604
2610
  } else {
@@ -2618,7 +2624,7 @@ function wizardHtml(defaults) {
2618
2624
  const elapsed = oauthFlowStartedAtMs > 0 ? Math.floor((Date.now() - oauthFlowStartedAtMs) / 1000) : 0;
2619
2625
  if (elapsed >= 90) {
2620
2626
  setOauthStatus(
2621
- "Still waiting for callback. Keep using this same browser on this same machine. If you opened OAuth on another computer, this automatic flow cannot complete.",
2627
+ "Still waiting for the callback. Make sure you are using this same browser and the 1455 port is forwarded (ssh -L 1455:127.0.0.1:1455). If the redirect does not land, paste the localhost:1455/auth/callback?… URL using the box below.",
2622
2628
  true,
2623
2629
  );
2624
2630
  if (oauthRetryBtn) oauthRetryBtn.classList.remove("hidden");
@@ -2653,7 +2659,7 @@ function wizardHtml(defaults) {
2653
2659
  setOauthStep(oauthStepComplete, "error");
2654
2660
  setOauthStep(oauthStepVerify, "error");
2655
2661
  setOauthStatus(
2656
- errorText + " Automatic mode only works on the same machine and browser. Click Try sign-in again.",
2662
+ errorText + " Make sure you are using the same browser and the 1455 port is forwarded. Click Try sign-in again.",
2657
2663
  true,
2658
2664
  );
2659
2665
  setOauthOpenButton("");
@@ -3179,7 +3185,7 @@ function wizardHtml(defaults) {
3179
3185
  setOauthStep(oauthStepOpen, "done");
3180
3186
  setOauthStep(oauthStepComplete, "active");
3181
3187
  setOauthStep(oauthStepVerify, "active");
3182
- setOauthStatus("Complete ChatGPT approval in this browser, then return here. We detect completion automatically.");
3188
+ setOauthStatus("After approval, return here. If the tab does not finish, paste the localhost:1455/auth/callback?… URL using the box below.");
3183
3189
  showFallbackPasteAfterDelay(15_000);
3184
3190
  });
3185
3191
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traderclaw-cli",
3
- "version": "1.0.86",
3
+ "version": "1.0.88",
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.86"
20
+ "solana-traderclaw": "^1.0.88"
21
21
  },
22
22
  "keywords": [
23
23
  "traderclaw",