@blockrun/clawrouter 0.12.81 → 0.12.82

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.
package/README.md CHANGED
@@ -410,15 +410,15 @@ You're here. 55+ models, local smart routing, x402 USDC payments — the only st
410
410
  </td>
411
411
  <td width="50%">
412
412
 
413
- ### 🦞 [SocialClaw](https://github.com/BlockRunAI/socialclaw)
413
+ ### 🤖 [BRCC](https://github.com/BlockRunAI/brcc)
414
414
 
415
- **Intelligence-as-a-function for X/Twitter**
415
+ **BlockRun for Claude Code**
416
416
 
417
- The first X analytics an agent can call. One function call = one intelligence report. $0.08, not $49/month. No dashboard, no login, no subscription.
417
+ Run Claude Code with 50+ models, no rate limits, no Anthropic account, no phone verification. Pay per request with USDC your wallet is your identity.
418
418
 
419
- `pip install blockrun-llm[solana]`
419
+ `curl -fsSL https://blockrun.ai/brcc-install | bash`
420
420
 
421
- [![GitHub](https://img.shields.io/github/stars/BlockRunAI/socialclaw?style=flat-square)](https://github.com/BlockRunAI/socialclaw)
421
+ [![GitHub](https://img.shields.io/github/stars/BlockRunAI/brcc?style=flat-square)](https://github.com/BlockRunAI/brcc)
422
422
 
423
423
  </td>
424
424
  </tr>
@@ -438,6 +438,17 @@ The first X analytics an agent can call. One function call = one intelligence re
438
438
  | [Configuration](docs/configuration.md) | Environment variables |
439
439
  | [Troubleshooting](docs/troubleshooting.md) | Common issues |
440
440
 
441
+ ### Blog
442
+
443
+ | Article | Topic |
444
+ | ------- | ----- |
445
+ | [11 Free AI Models, Zero Cost](docs/11-free-ai-models-zero-cost-blockrun.md) | How BlockRun gives developers top-tier LLMs for nothing |
446
+ | [ClawRouter Cuts LLM API Costs 500×](docs/clawrouter-cuts-llm-api-costs-500x.md) | Deep dive into cost savings |
447
+ | [ClawRouter vs OpenRouter](docs/clawrouter-vs-openrouter-llm-routing-comparison.md) | Head-to-head comparison |
448
+ | [Smart LLM Router: 14-Dimension Classifier](docs/smart-llm-router-14-dimension-classifier.md) | How the routing engine works |
449
+ | [LLM Router Benchmark: 46 Models, Sub-1ms](docs/llm-router-benchmark-46-models-sub-1ms-routing.md) | Performance benchmarks |
450
+ | [Anthropic Cost Savings](docs/anthropic-cost-savings.md) | Reducing Claude API spend |
451
+
441
452
  ---
442
453
 
443
454
  ## Frequently Asked Questions
@@ -464,7 +475,7 @@ ClawRouter integrates with OpenClaw (Claude Code), ElizaOS, and any agent that m
464
475
 
465
476
  ### Is ClawRouter free?
466
477
 
467
- ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and 11 NVIDIA models (DeepSeek V3.2, Nemotron Ultra 253B, Mistral Large 675B, Llama 4 Maverick, and more) are completely free. Use `/model free` for Nemotron Ultra 253B, or pick any free model by name.
478
+ ClawRouter itself is free and MIT licensed. You pay only for the LLM API calls routed through it — and 11 models (DeepSeek V3.2, Nemotron Ultra 253B, Mistral Large 675B, Llama 4 Maverick, and more) are completely free. Use `/model free` for Nemotron Ultra 253B, or pick any free model by name.
468
479
 
469
480
  ---
470
481
 
package/dist/cli.js CHANGED
@@ -49967,7 +49967,8 @@ async function collectWalletInfo() {
49967
49967
  balance: null,
49968
49968
  isLow: false,
49969
49969
  isEmpty: true,
49970
- source: null
49970
+ source: null,
49971
+ paymentChain: "base"
49971
49972
  };
49972
49973
  }
49973
49974
  let solanaAddress = null;
@@ -49977,9 +49978,17 @@ async function collectWalletInfo() {
49977
49978
  } catch {
49978
49979
  }
49979
49980
  }
49980
- const monitor = new BalanceMonitor(address2);
49981
+ const paymentChain = await resolvePaymentChain();
49981
49982
  try {
49982
- const balanceInfo = await monitor.checkBalance();
49983
+ let balanceInfo;
49984
+ if (paymentChain === "solana" && solanaAddress) {
49985
+ const { SolanaBalanceMonitor: SolanaBalanceMonitor2 } = await Promise.resolve().then(() => (init_solana_balance(), solana_balance_exports));
49986
+ const monitor = new SolanaBalanceMonitor2(solanaAddress);
49987
+ balanceInfo = await monitor.checkBalance();
49988
+ } else {
49989
+ const monitor = new BalanceMonitor(address2);
49990
+ balanceInfo = await monitor.checkBalance();
49991
+ }
49983
49992
  return {
49984
49993
  exists: true,
49985
49994
  valid: true,
@@ -49988,7 +49997,8 @@ async function collectWalletInfo() {
49988
49997
  balance: balanceInfo.balanceUSD,
49989
49998
  isLow: balanceInfo.isLow,
49990
49999
  isEmpty: balanceInfo.isEmpty,
49991
- source
50000
+ source,
50001
+ paymentChain
49992
50002
  };
49993
50003
  } catch {
49994
50004
  return {
@@ -49999,7 +50009,8 @@ async function collectWalletInfo() {
49999
50009
  balance: null,
50000
50010
  isLow: false,
50001
50011
  isEmpty: false,
50002
- source
50012
+ source,
50013
+ paymentChain
50003
50014
  };
50004
50015
  }
50005
50016
  } catch {
@@ -50011,7 +50022,8 @@ async function collectWalletInfo() {
50011
50022
  balance: null,
50012
50023
  isLow: false,
50013
50024
  isEmpty: true,
50014
- source: null
50025
+ source: null,
50026
+ paymentChain: "base"
50015
50027
  };
50016
50028
  }
50017
50029
  }
@@ -50066,7 +50078,11 @@ function identifyIssues(result) {
50066
50078
  issues.push("No wallet found");
50067
50079
  }
50068
50080
  if (result.wallet.isEmpty) {
50069
- issues.push("Wallet is empty - need to fund with USDC on Base");
50081
+ const chain3 = result.wallet.paymentChain === "solana" ? "Solana" : "Base";
50082
+ issues.push(`Wallet is empty - need to fund with USDC on ${chain3}`);
50083
+ if (result.wallet.paymentChain === "base" && result.wallet.solanaAddress) {
50084
+ issues.push("Tip: if you funded Solana, run /wallet solana to switch chains");
50085
+ }
50070
50086
  } else if (result.wallet.isLow) {
50071
50087
  issues.push("Wallet balance is low (< $1.00)");
50072
50088
  }
@@ -50093,8 +50109,13 @@ function printDiagnostics(result) {
50093
50109
  if (result.wallet.solanaAddress) {
50094
50110
  console.log(` ${green(`Solana Address: ${result.wallet.solanaAddress}`)}`);
50095
50111
  }
50112
+ const chainLabel = result.wallet.paymentChain === "solana" ? "Solana" : "Base";
50113
+ console.log(` ${green(`Chain: ${chainLabel}`)}`);
50096
50114
  if (result.wallet.isEmpty) {
50097
- console.log(` ${red(`Balance: $0.00 - NEED TO FUND!`)}`);
50115
+ console.log(` ${red(`Balance: $0.00 - NEED TO FUND WITH USDC ON ${chainLabel.toUpperCase()}!`)}`);
50116
+ if (result.wallet.paymentChain === "base" && result.wallet.solanaAddress) {
50117
+ console.log(` ${yellow(`Tip: funded Solana instead? Run /wallet solana to switch`)}`);
50118
+ }
50098
50119
  } else if (result.wallet.isLow) {
50099
50120
  console.log(` ${yellow(`Balance: ${result.wallet.balance} (low)`)}`);
50100
50121
  } else if (result.wallet.balance) {