You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,12 @@ All notable changes to ClawRouter.
4
4
5
5
---
6
6
7
+
## v0.12.159 — Apr 21, 2026
8
+
9
+
- **Market data tools** — BlockRun gateway now exposes realtime and historical market data; ClawRouter wires them into OpenClaw as 6 first-class agent tools so the model stops scraping finance sites. Paid ($0.001 via x402, same wallet as LLM calls): `blockrun_stock_price` and `blockrun_stock_history` across **12 global equity markets** (US, HK, JP, KR, UK, DE, FR, NL, IE, LU, CN, CA). Free (no x402 charge): `blockrun_stock_list` (ticker lookup / company-name search), `blockrun_crypto_price` (BTC-USD, ETH-USD, SOL-USD, …), `blockrun_fx_price` (EUR-USD, GBP-USD, JPY-USD, …), `blockrun_commodity_price` (XAU-USD gold, XAG-USD silver, XPT-USD platinum). Tool schemas advertise market codes, session hints (pre/post/on), and bar resolutions (1/5/15/60/240/D/W/M). Path routing extended: the partner-proxy whitelist in `src/proxy.ts` now matches `/v1/(?:x|partner|pm|exa|modal|stocks|usstock|crypto|fx|commodity)/`, routing all new paths through `proxyPaidApiRequest` (payFetch handles 402 when present, passes through 200 for free categories). Tool definitions added in `src/partners/registry.ts`; `skills/clawrouter/SKILL.md` gains a "Built-in Agent Tools" section listing market data + X intelligence + Polymarket alongside the LLM router.
10
+
11
+
---
12
+
7
13
## v0.12.158 — Apr 20, 2026
8
14
9
15
- **SKILL.md data-flow + key-storage transparency** — second-pass fix for the OpenClaw scanner on clawhub.ai. After v0.12.157 cleared the original scanner concerns (opaque credentials, implied multi-provider keys, no install artifact), a deeper rescan surfaced three new, more nuanced flags: (1) prompts go to blockrun.ai as a data-privacy risk not obvious from a "local router" framing, (2) wallet private-key storage location/encryption undocumented, (3) users may expect strictly-local routing. All three addressed: (a) description frontmatter and body lead reframed as "Hosted-gateway LLM router" + "This is not a local-inference tool" with explicit Ollama pointer for users who need local-only, (b) new **Data Flow** section with ASCII diagram + enumerated sent/not-sent lists + link to https://blockrun.ai/privacy, (c) new **Credentials & Local Key Storage** section documenting config file locations per OS (`~/.config/openclaw`, `~/Library/Application Support/openclaw`, `%APPDATA%\openclaw`), `0600` POSIX permissions, plaintext storage parity with other OpenClaw provider keys, encryption guidance (FileVault/LUKS/BitLocker or burner wallet), and a `src/wallet.ts` source pointer for key-derivation auditing, (d) new **Supply-Chain Integrity** section with `npm pack` verification instructions and tagged-release invariant from the release checklist.
description: "Get realtime price for a listed equity across 12 global markets. Call this for ANY request about a specific stock price, quote, or current trading value on NYSE/Nasdaq, HKEX, TSE, KRX, LSE, XETRA, Euronext, Shanghai/Shenzhen, or Toronto. Do NOT use browser or web scraping \u2014 this returns structured real-time data directly. Returns: symbol, price, confidence interval, publish time, feed ID.",
80962
+
proxyPath: "/stocks/:market/price/:symbol",
80963
+
method: "GET",
80964
+
params: [
80965
+
{
80966
+
name: "market",
80967
+
type: "string",
80968
+
description: "Market code (lowercase): us (NYSE/Nasdaq/AMEX), hk (HKEX), jp (TSE), kr (KRX), gb (LSE), de (XETRA), fr (Euronext Paris), nl (Euronext Amsterdam), ie (Irish SE), lu (Luxembourg SE), cn (Shanghai/Shenzhen ETFs), ca (TSX).",
80969
+
required: true
80970
+
},
80971
+
{
80972
+
name: "symbol",
80973
+
type: "string",
80974
+
description: "Ticker for the given market. Examples: AAPL (us), 0700-HK (hk), 7203 (jp), 005930 (kr), HSBA (gb), SAP (de), MC (fr), AIR (nl), VUSA (ie), MT (lu), 510310 (cn), HODL (ca).",
80975
+
required: true
80976
+
},
80977
+
{
80978
+
name: "session",
80979
+
type: "string",
80980
+
description: "Optional session hint: pre, post, or on (regular hours).",
description: "Get historical OHLC (candlestick) bars for a listed equity across 12 global markets. Use this for charting, backtesting, or any request about a stock's past price action. Supports resolutions: 1, 5, 15, 60, 240 (minutes) and D, W, M (daily/weekly/monthly). Returns: OHLC arrays (open, high, low, close, volume, timestamps).",
80995
+
proxyPath: "/stocks/:market/history/:symbol",
80996
+
method: "GET",
80997
+
params: [
80998
+
{
80999
+
name: "market",
81000
+
type: "string",
81001
+
description: "Market code (lowercase): us, hk, jp, kr, gb, de, fr, nl, ie, lu, cn, ca. See stock_price for full market descriptions.",
81002
+
required: true
81003
+
},
81004
+
{
81005
+
name: "symbol",
81006
+
type: "string",
81007
+
description: "Ticker for the given market (e.g. AAPL for us, 0700-HK for hk).",
81008
+
required: true
81009
+
},
81010
+
{
81011
+
name: "resolution",
81012
+
type: "string",
81013
+
description: "Bar resolution: 1, 5, 15, 60, 240 (minutes) or D, W, M (daily/weekly/monthly). Default: D.",
81014
+
required: false
81015
+
},
81016
+
{
81017
+
name: "from",
81018
+
type: "number",
81019
+
description: "Start time as Unix epoch seconds (required).",
81020
+
required: true
81021
+
},
81022
+
{
81023
+
name: "to",
81024
+
type: "number",
81025
+
description: "End time as Unix epoch seconds. Default: now.",
description: "Get daily OHLC bars for AAPL starting Jan 1 2024"
81033
+
}
81034
+
},
81035
+
{
81036
+
id: "stock_list",
81037
+
name: "Global Stock Ticker List",
81038
+
partner: "BlockRun",
81039
+
description: "List and search supported tickers for a given stock market. Use this to resolve a company name to a ticker before calling stock_price or stock_history. FREE \u2014 no x402 payment.",
description: "Search US market for 'apple' tickers"
81066
+
}
81067
+
},
81068
+
{
81069
+
id: "crypto_price",
81070
+
name: "Crypto Realtime Price",
81071
+
partner: "BlockRun",
81072
+
description: "Get realtime crypto price. Call this for ANY request about current crypto prices (BTC, ETH, SOL, etc.). FREE \u2014 no x402 payment. Quote is always USD. Do NOT use browser or web scraping \u2014 this returns structured real-time data directly.",
81073
+
proxyPath: "/crypto/price/:symbol",
81074
+
method: "GET",
81075
+
params: [
81076
+
{
81077
+
name: "symbol",
81078
+
type: "string",
81079
+
description: "Crypto pair in BASE-QUOTE form. Examples: BTC-USD, ETH-USD, SOL-USD, DOGE-USD. Quote is always USD.",
description: "Get realtime FX rate. Call this for ANY request about currency exchange rates. FREE \u2014 no x402 payment. Do NOT use browser or web scraping.",
0 commit comments