@oracle-agent/oracle 0.35.0 → 0.35.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oracle-agent/oracle",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "description": "Oracle: standalone multichain agent control plane with an optional encrypted, loopback-only self-hosted signer.",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -1,4 +1,4 @@
1
- # Oracle installer for Windows — CLI + desktop app.
1
+ # Oracle installer for Windows — CLI (desktop app: private beta, opt-in).
2
2
  #
3
3
  # iex (irm https://oracle.demi.la/install.ps1)
4
4
  #
@@ -12,7 +12,7 @@ $Base = if ($env:ORACLE_INSTALL_BASE) { $env:ORACLE_INSTALL_BASE.TrimEnd("/") }
12
12
  $Pkg = if ($env:ORACLE_NPM_PACKAGE) { $env:ORACLE_NPM_PACKAGE } else { "@oracle-agent/oracle" }
13
13
  $Ver = if ($env:ORACLE_INSTALL_VERSION) { $env:ORACLE_INSTALL_VERSION } else { "latest" }
14
14
  $SkipCli = $env:ORACLE_INSTALL_SKIP_CLI -eq "1"
15
- $SkipDesktop = $env:ORACLE_INSTALL_SKIP_DESKTOP -eq "1"
15
+ $SkipDesktop = $env:ORACLE_INSTALL_DESKTOP -ne "1"
16
16
  $SumsUrl = "$Base/downloads/artifacts/SHA256SUMS.txt"
17
17
  $Work = Join-Path $env:TEMP ("oracle-setup-" + [guid]::NewGuid().ToString("n"))
18
18
 
@@ -98,5 +98,5 @@ function Install-Desktop {
98
98
 
99
99
  if (-not $SkipCli) { Install-Cli }
100
100
  if (-not $SkipDesktop) { Install-Desktop }
101
- Log "done. CLI: oracle --version App: Start menu Oracle then: oracle setup model"
101
+ Log "done. CLI: oracle --version then: oracle setup model (desktop app: private beta)"
102
102
  if (-not $SkipCli) { Log "Telegram: set ORACLE_OWNER_TELEGRAM to your numeric id, then oracle gateway" }
@@ -28,27 +28,13 @@ section{padding-top:72px;scroll-margin-top:90px}.sub{color:var(--muted);line-hei
28
28
  <header><p class="eyebrow">Public release</p><h1>Install Oracle.<br><em>Hosted wallets sign outside Oracle.</em></h1><p class="lede">The CLI, desktop beta, source, research tools, and unsigned transaction preparation are public to everyone. No wallet connection or NFT is required to download or run Oracle.</p></header>
29
29
  <aside class="policy"><h2>Locals Only means 0% Oracle fees</h2><p>A Locals Only NFT waives the <b>Oracle integrator fee</b>. It does not unlock the product, waive provider or network costs, or change the hosted/keyless custody boundary. Self-host execution uses the local signer.</p></aside>
30
30
  <section id="cli"><p class="eyebrow">Oracle CLI</p><h2>Install with curl</h2><p class="sub">One line. Linux and macOS. Requires Node 20.19+ (the script checks and tells you how to get it). Installs into <code>~/.local</code> — no sudo, no global npm.</p><div class="install"><div class="cmd"><code id="cmd">curl -fsSL https://oracle.demi.la/install.sh | bash</code><button class="copy" id="copy" type="button">Copy</button></div><div class="meta"><span>curl install</span><span>hosted keyless</span><span>hosted wallet signs</span><span>user prefix</span></div></div><p class="sub" style="margin-top:18px">npm still works if you prefer: <code>npm i -g @oracle-agent/oracle</code></p></section>
31
- <section id="windows"><p class="eyebrow">Oracle app · Windows</p><h2>Install with PowerShell</h2><p class="sub">Same shape as Hermes: one line. Installs the CLI (<code>npm i -g @oracle-agent/oracle</code>) and the desktop NSIS build. SHA-256 checked. Never asks for a key or seed.</p><div class="install"><div class="cmd"><code id="cmd-win">iex (irm https://oracle.demi.la/install.ps1)</code><button class="copy" id="copy-win" type="button">Copy</button></div><div class="meta"><span>irm | iex</span><span>desktop app</span><span>SHA-256 checked</span></div></div></section>
32
- <section id="desktop"><p class="eyebrow">Desktop beta</p><h2>Native installers</h2><p class="sub">macOS, Linux, and Windows 0.4.10 bundle Oracle 0.28.7. These beta installers are not CA-signed, so platform warnings are expected. Download directly, then verify against the published SHA-256 manifest.</p><div class="artifacts">
33
- <div class="artifact" data-artifact="Oracle-0.4.10.AppImage"><div><h3>Linux</h3><small>AppImage · x64</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.10 beta · runtime 0.28.7</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.10.AppImage" download>Download</a></div>
34
- <div class="artifact" data-artifact="Oracle-0.4.10-arm64.dmg"><div><h3>macOS</h3><small>DMG · Apple silicon</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.10 beta · runtime 0.28.7</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.10-arm64.dmg" download>Download</a></div>
35
- <div class="artifact" data-artifact="Oracle-Setup-0.4.10.exe"><div><h3>Windows</h3><small>NSIS installer · x64</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.10 beta · runtime 0.28.7</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-Setup-0.4.10.exe" download>Download</a></div>
36
- </div><p class="platform-note">Checksums: <a class="checksum" href="/downloads/artifacts/SHA256SUMS.txt">SHA256SUMS.txt</a>. Beta installers may trigger macOS Gatekeeper or Windows SmartScreen when a build is not notarized or CA-signed. The installer never asks for a private key or seed. Hosted/keyless cannot hold keys. Self-host signer setup is a separate command.</p></section>
31
+ <section id="windows"><p class="eyebrow">Oracle CLI · Windows</p><h2>Install with PowerShell</h2><p class="sub">Same shape as Hermes: one line. Installs the CLI (<code>npm i -g @oracle-agent/oracle</code>). Never asks for a key or seed.</p><div class="install"><div class="cmd"><code id="cmd-win">iex (irm https://oracle.demi.la/install.ps1)</code><button class="copy" id="copy-win" type="button">Copy</button></div><div class="meta"><span>irm | iex</span><span>CLI only</span><span>no keys ever</span></div></div></section>
32
+ <section id="desktop"><p class="eyebrow">Desktop beta</p><h2>Private beta</h2><p class="sub">Desktop builds are in private beta while we finish the app. Public downloads return when it ships. The CLI above is the full product today.</p></section>
37
33
  </main>
38
34
  <footer><div class="nav-inner"><span>oracle · locals only labs</span><span>public / self-custody / local signer</span></div></footer>
39
35
  <script>
40
36
  document.getElementById("copy").addEventListener("click",async function(){try{await navigator.clipboard.writeText(document.getElementById("cmd").textContent.trim());this.textContent="Copied";var button=this;setTimeout(function(){button.textContent="Copy"},1400)}catch(_){this.textContent="Select command"}});
41
37
  document.getElementById("copy-win").addEventListener("click",async function(){try{await navigator.clipboard.writeText(document.getElementById("cmd-win").textContent.trim());this.textContent="Copied";var button=this;setTimeout(function(){button.textContent="Copy"},1400)}catch(_){this.textContent="Select command"}});
42
- (async function(){
43
- var rows=Array.from(document.querySelectorAll("[data-artifact]"));
44
- function unavailable(row){row.querySelector("[data-hash]").textContent="checksum unavailable";row.querySelector(".dl-btn").setAttribute("aria-disabled","true")}
45
- try{
46
- var response=await fetch("/downloads/artifacts/SHA256SUMS.txt",{cache:"no-store"});
47
- if(!response.ok)throw new Error("manifest unavailable");
48
- var sums=new Map((await response.text()).trim().split(/\r?\n/).map(function(line){var match=line.match(/^([a-f0-9]{64})\s+\*?(.+)$/i);return match?[match[2],match[1].toLowerCase()]:null}).filter(Boolean));
49
- rows.forEach(function(row){var sum=sums.get(row.dataset.artifact);if(!sum){unavailable(row);return}row.querySelector("[data-hash]").textContent=sum});
50
- }catch(_){rows.forEach(unavailable)}
51
- })();
52
38
  </script>
53
39
  </body>
54
40
  </html>
@@ -1041,14 +1041,13 @@ a.chip:hover{border-color:rgba(124,196,255,.3);background:rgba(21,32,49,.6);tran
1041
1041
  .hero-shot-orb video{display:none}
1042
1042
  .hero-shot-orb #orb-still{position:static;opacity:1}
1043
1043
  }
1044
- /* CLI section leads with the filled active-surface still. */
1044
+ /* CLI section leads with a real TUI capture; poster is the reduced-motion fallback. */
1045
1045
  .cli-proof{position:relative;aspect-ratio:auto;height:auto;min-height:0;padding:0;
1046
1046
  max-width:868px;margin-inline:auto;line-height:0;display:block}
1047
- .cli-proof #cli-still{display:block;width:100%;height:auto}
1048
- .cli-proof video.ready ~ #cli-still{position:absolute;inset:0;opacity:0;pointer-events:none}
1047
+ .cli-proof picture,.cli-proof img{display:block;width:100%;height:auto}
1048
+ .cli-proof figcaption{line-height:1.4}
1049
1049
  @media (prefers-reduced-motion:reduce){
1050
- .cli-proof video{display:none}
1051
- .cli-proof #cli-still{position:static;opacity:1}
1050
+ .cli-proof img{position:static;opacity:1}
1052
1051
  }
1053
1052
 
1054
1053
  /* Recorded session leads; the still is the fallback underneath it. */
@@ -1200,7 +1199,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1200
1199
  <circle class="core" cx="50" cy="50" r="11"/>
1201
1200
  </svg>
1202
1201
  </span>
1203
- oracle</a>
1202
+ oracle <span class="nav-chip">beta</span></a>
1204
1203
  <nav class="nav-links" aria-label="Primary">
1205
1204
  <a class="hide-sm" href="#cli">CLI</a>
1206
1205
  <a class="hide-sm" href="#orchestration">Profiles</a>
@@ -1251,42 +1250,35 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1251
1250
 
1252
1251
  <div class="hero-installer" data-install-tabs>
1253
1252
  <div class="hero-install-tabs" role="tablist" aria-label="Install Oracle">
1254
- <button class="hero-install-tab" id="install-tab-macos" type="button" role="tab" aria-selected="true" aria-controls="install-panel-macos" tabindex="0" data-install-tab="macos">macOS</button>
1255
- <button class="hero-install-tab" id="install-tab-linux" type="button" role="tab" aria-selected="false" aria-controls="install-panel-linux" tabindex="-1" data-install-tab="linux">Linux</button>
1253
+ <button class="hero-install-tab" id="install-tab-unix" type="button" role="tab" aria-selected="true" aria-controls="install-panel-unix" tabindex="0" data-install-tab="unix">macOS / Linux</button>
1256
1254
  <button class="hero-install-tab" id="install-tab-windows" type="button" role="tab" aria-selected="false" aria-controls="install-panel-windows" tabindex="-1" data-install-tab="windows">Windows</button>
1257
1255
  </div>
1258
- <div class="hero-install-panel" id="install-panel-macos" role="tabpanel" aria-labelledby="install-tab-macos" data-install-panel="macos">
1259
- <button class="hero-install-command" type="button" data-copy-install="curl -fsSL https://oracle.demi.la/install.sh | bash" aria-label="Copy the macOS install command">
1256
+ <div class="hero-install-panel" id="install-panel-unix" role="tabpanel" aria-labelledby="install-tab-unix" data-install-panel="unix">
1257
+ <button class="hero-install-command" type="button" data-copy-install="curl -fsSL https://oracle.demi.la/install.sh | bash" aria-label="Copy the macOS or Linux install command">
1260
1258
  <code>curl -fsSL https://oracle.demi.la/install.sh | bash</code><span class="hero-install-copy">Copy</span>
1261
1259
  </button>
1262
- <div class="hero-install-meta"><span>macOS · CLI</span><a href="/downloads/artifacts/Oracle-0.4.10-arm64.dmg">Download Oracle app · DMG</a></div>
1263
- </div>
1264
- <div class="hero-install-panel" id="install-panel-linux" role="tabpanel" aria-labelledby="install-tab-linux" data-install-panel="linux" hidden>
1265
- <button class="hero-install-command" type="button" data-copy-install="curl -fsSL https://oracle.demi.la/install.sh | bash" aria-label="Copy the Linux install command">
1266
- <code>curl -fsSL https://oracle.demi.la/install.sh | bash</code><span class="hero-install-copy">Copy</span>
1267
- </button>
1268
- <div class="hero-install-meta"><span>Linux · CLI</span><a href="/downloads/artifacts/Oracle-0.4.10.AppImage">Download Oracle app · AppImage</a></div>
1260
+ <div class="hero-install-meta"><span>macOS + Linux · CLI</span></div>
1269
1261
  </div>
1270
1262
  <div class="hero-install-panel" id="install-panel-windows" role="tabpanel" aria-labelledby="install-tab-windows" data-install-panel="windows" hidden>
1271
1263
  <button class="hero-install-command" type="button" data-copy-install="iex (irm https://oracle.demi.la/install.ps1)" aria-label="Copy the Windows install command">
1272
1264
  <code>iex (irm https://oracle.demi.la/install.ps1)</code><span class="hero-install-copy">Copy</span>
1273
1265
  </button>
1274
- <div class="hero-install-meta"><span>Windows · CLI + Oracle app</span><a href="/downloads/artifacts/Oracle-Setup-0.4.10.exe">Download installer · EXE</a></div>
1266
+ <div class="hero-install-meta"><span>Windows · CLI</span></div>
1275
1267
  </div>
1276
1268
  </div>
1277
1269
 
1278
1270
  <div class="home-stats rv" aria-label="Oracle surface metrics">
1279
- <div class="home-stat"><b id="hero-protocol-count" data-count="110">110</b><span>protocol entries wired</span></div>
1280
- <div class="home-stat"><b id="hero-provider-count" data-count="70">70</b><span>data providers</span></div>
1281
- <div class="home-stat"><b id="hero-op-count" data-count="322">322</b><span>data operations</span></div>
1282
- <div class="home-stat"><b id="hero-chain-count">13 + EVM</b><span>chains wired</span></div>
1271
+ <div class="home-stat"><b id="hero-protocol-count" data-count="220">220</b><span>protocols / venues wired</span></div>
1272
+ <div class="home-stat"><b id="hero-provider-count" data-count="109">109</b><span>data providers</span></div>
1273
+ <div class="home-stat"><b id="hero-op-count" data-count="467">467</b><span>data operations</span></div>
1274
+ <div class="home-stat"><b id="hero-chain-count">14 + EVM</b><span>chains wired</span></div>
1283
1275
  </div>
1284
1276
  </div>
1285
1277
  </section>
1286
1278
  <section class="section" id="orchestration">
1287
1279
  <p class="section-label rv">Profiles</p>
1288
1280
  <h2 class="section-title rv">Multi-profile. <em>Customizable.</em></h2>
1289
- <p class="section-lede rv">Input / Command hits the Oracle control plane, then routes across venue profiles, multi-chain EVM, Bitcoin, Solana, and the protocol builder. Any MCP harness can drive a single agent.</p>
1281
+ <p class="section-lede rv">Input hits the Oracle control plane and routes across venue profiles, multi-chain EVM, Bitcoin, Solana, and the protocol builder. Any MCP harness drives a single agent.</p>
1290
1282
 
1291
1283
  <div class="graph-shell rv">
1292
1284
  <div class="graph-top">
@@ -1358,7 +1350,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1358
1350
  <div class="node route p-hl">
1359
1351
  <div class="tag">profile</div>
1360
1352
  <div class="name">hyperliquid agent</div>
1361
- <div class="sub">perps · hip-3/4 · ta</div>
1353
+ <div class="sub">perps · hip-3/4 · funding</div>
1362
1354
  <div class="chains"><span class="ch">Hyperliquid <img src="https://icons.llamao.fi/icons/protocols/hyperliquid?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Hyperliquid 999 <img src="https://icons.llamao.fi/icons/chains/rsz_hyperliquid?w=24&h=24" alt="" loading="lazy"></span></div>
1363
1355
  </div>
1364
1356
  <div class="node route p-rh">
@@ -1440,7 +1432,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1440
1432
  <article class="route-card p-hl">
1441
1433
  <div class="where">hyperliquid agent →</div>
1442
1434
  <h3>Hyperliquid <img src="https://icons.llamao.fi/icons/protocols/hyperliquid?w=40&h=40" alt="Hyperliquid" loading="lazy"></h3>
1443
- <p>Native perps, HIP-3/4 asset resolve, TA, event risk, and Hyperliquid when you need HL's EVM surface.</p>
1435
+ <p>Native perps, HIP-3/4 asset resolve, funding, event risk, and Hyperliquid when you need HL's EVM surface.</p>
1444
1436
  <div class="chips">
1445
1437
  <span class="chip-s">perps</span>
1446
1438
  <span class="chip-s">HIP-3/4</span>
@@ -1461,7 +1453,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1461
1453
  <article class="route-card p-sol">
1462
1454
  <div class="where">solana agent →</div>
1463
1455
  <h3>Solana <img src="https://icons.llamao.fi/icons/chains/rsz_solana?w=40&h=40" alt="Solana" loading="lazy"></h3>
1464
- <p>Jupiter routes, Sanctum liquid-staking tokens, Solend lending, Kamino strategies, Meteora DLMM, Jito MEV, and Pyth feeds. The bounded lane decodes every instruction and bans delegation ops outright.</p>
1456
+ <p>Jupiter routes and one-shot swaps, Sanctum LSTs, Solend, Kamino, Meteora DLMM, Jito MEV, and Pyth feeds. The bounded lane decodes every instruction and bans delegation ops.</p>
1465
1457
  <div class="chips">
1466
1458
  <span class="chip-s">Jupiter</span>
1467
1459
  <span class="chip-s">swaps</span>
@@ -1471,7 +1463,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1471
1463
  <article class="route-card p-btc">
1472
1464
  <div class="where">bitcoin agent →</div>
1473
1465
  <h3>Bitcoin <img src="https://icons.llamao.fi/icons/chains/rsz_bitcoin?w=40&h=40" alt="Bitcoin" loading="lazy"></h3>
1474
- <p>Ordinals, runes, Babylon staking, Lightning topology, mining economics, and the Liquid and Stacks sidechains. Every PSBT input carries proven provenance, so fees are computed, not asserted.</p>
1466
+ <p>Ordinals, runes, Babylon staking, Lightning, mining economics, Liquid and Stacks. Every PSBT input carries proven provenance fees are computed, not asserted.</p>
1475
1467
  <div class="chips">
1476
1468
  <span class="chip-s">ordinals</span>
1477
1469
  <span class="chip-s">runes</span>
@@ -1481,7 +1473,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1481
1473
  <article class="route-card p-evm">
1482
1474
  <div class="where">evm / bridge agent →</div>
1483
1475
  <h3>Multi-chain EVM <img src="https://icons.llamao.fi/icons/chains/rsz_ethereum?w=40&h=40" alt="Ethereum" loading="lazy"></h3>
1484
- <p>Multi-chain routes, LI.FI and Relay bridges, Aave lending, Spark, Beefy, Symbiotic restaking, and CoW solver auctions. Bounded evm-swap and evm-bridge lanes.</p>
1476
+ <p>Multi-chain routes, LI.FI and Relay bridges, Aave, Spark, Beefy, Symbiotic restaking. 1inch limit posts, CoW posting, ERC-8004 agent identity, EIP-7702 last-mile execute and options typed-data. Bounded evm-swap and evm-bridge lanes.</p>
1485
1477
  <div class="chips">
1486
1478
  <span class="chip-s">evm-swap</span>
1487
1479
  <span class="chip-s">evm-bridge</span>
@@ -1491,7 +1483,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1491
1483
  <article class="route-card p-nft">
1492
1484
  <div class="where">nft agent →</div>
1493
1485
  <h3>Cross-chain NFTs <img src="assets/protocols/opensea.png" alt="OpenSea" loading="lazy"></h3>
1494
- <p>List across 22 EVM chains and Solana via OpenSea. Buy and list Ordinals through Satflow with proven PSBT provenance. Solana listings via Magic Eden. Floors, holdings and PnL are read first, then prepared for your signature.</p>
1486
+ <p>List across 22 EVM chains and Solana via OpenSea, Ordinals via Satflow with proven PSBT provenance, Solana via Magic Eden. Floors, holdings and PnL read first, then prepared for your signature.</p>
1495
1487
  <div class="chips">
1496
1488
  <span class="chip-s">list</span>
1497
1489
  <span class="chip-s">buy</span>
@@ -1521,7 +1513,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1521
1513
  </article>
1522
1514
  </div>
1523
1515
  <div class="why-band">
1524
- <p>The model proposes. Policy bounds. You own signatures. Multi-profile desks route each request to the right surface. Vaults, perps, bridges, and protocol scaffolds, not just swaps. Empty allowlists refuse everything until you configure them.</p>
1516
+ <p>The model proposes. Policy bounds. You own signatures. Profiles route each request to the right surface — vaults, perps, bridges, and protocol scaffolds. Empty allowlists refuse everything.</p>
1525
1517
  </div>
1526
1518
  </div>
1527
1519
 
@@ -1533,29 +1525,29 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1533
1525
  <article class="moat-card">
1534
1526
  <div class="n">bound grants</div>
1535
1527
  <h3>Wallet with temporary agent permission</h3>
1536
- <p>Max value, chain, venue, destinations, and TTL. Outside the grant = hard refuse, not an agent with a free wallet.</p>
1528
+ <p>Max value, chain, venue, destinations, and TTL. Local x402 budgets cap what an agent may spend. Outside the grant = hard refuse, not an agent with a free wallet.</p>
1537
1529
  </article>
1538
1530
  <article class="moat-card">
1539
1531
  <div class="n">bounded surfaces</div>
1540
1532
  <h3>Three local-signer lanes, each with its own decoder</h3>
1541
- <p>evm, btc, sol transfers. Hyperliquid, Polymarket, swaps, and bridges stay wallet-signed. Each local-signer lane decodes its own envelope, proves every value-moving field, and refuses while its allowlists are empty.</p>
1533
+ <p>evm, btc, sol transfers. Hyperliquid, Polymarket, swaps, and bridges stay wallet-signed. Each lane decodes its own envelope and proves every value-moving field. CEX execution ships sealed order routing with Coinbase order paths pinned.</p>
1542
1534
  </article>
1543
1535
  <article class="moat-card">
1544
1536
  <div class="n">evidence</div>
1545
1537
  <h3>See it before you approve. Prove it after.</h3>
1546
- <p>Before you approve, Oracle shows what you will receive, the expected cost, and which app gets permission to move your tokens. Afterward, it shows whether the transaction succeeded, what changed in your wallet, and whether any permission is still active. You can review unsigned transactions on a hardware wallet. Nothing is marked complete without proof.</p>
1538
+ <p>Before you approve: what you receive, the expected cost, and which app gets permission. After: whether it succeeded, what changed, and whether any permission is still active. Exact tax-lot records and observe-only finality reconciliation keep the ledger honest. Review unsigned transactions on a hardware wallet.</p>
1547
1539
  </article>
1548
1540
  <article class="moat-card">
1549
1541
  <div class="n">fail closed</div>
1550
1542
  <h3>Unconfigured means refused</h3>
1551
- <p>A fresh install signs nothing. Destination allowlists stop silent router drift, and every lane refuses while its allowlists are empty, so new contracts stay blocked until you add them.</p>
1543
+ <p>A fresh install signs nothing. Destination allowlists stop silent router drift; empty allowlists refuse everything until you add entries. Tenant RBAC scopes who may prepare what; governance votes prepare unsigned.</p>
1552
1544
  </article>
1553
1545
  </div>
1554
1546
 
1555
1547
  <div class="selfcustody rv">
1556
1548
  <p class="section-label rv">Works in any harness</p>
1557
1549
  <h2 class="section-title rv" data-split>Ask in <em>your</em> agent.</h2>
1558
- <p class="section-lede rv">Oracle installs as an MCP server, so Claude, Codex, Cursor and the rest get Oracle skills, live swap cards, quotes, and prepare. Type the request the way you would say it. With <code>oracle signer</code> running on this machine they can also fill through the local signer same path as Telegram Allow. Keys stay here. You authorize.</p>
1550
+ <p class="section-lede rv">Oracle installs as an MCP server Claude, Codex, Cursor and the rest get Oracle skills, live swap cards, quotes, and prepare. With <code>oracle signer</code> armed, fills queue for your ack and clear through the local signer, same path as Telegram Allow. Keys stay here. You authorize.</p>
1559
1551
  <div class="agent-install rv">
1560
1552
  <span>Add Oracle to your agent:</span>
1561
1553
  <div class="install-cmds">
@@ -1614,7 +1606,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1614
1606
  <noscript><p class="agent-ask">move 5k usdc into weth, cheapest route</p></noscript>
1615
1607
  </figure>
1616
1608
  </div>
1617
- <p class="agent-caption rv">Same tool from the terminal, the desktop app, any MCP client, or your agent on Telegram, Discord, WhatsApp and Signal. Buzz integration shipped. Hosted/keyless cannot hold keys. Self-host fill is MCP <code>signer_queue</code> then <code>signer_ack</code> on the local signer.</p>
1609
+ <p class="agent-caption rv">Same tool from the terminal, the desktop app, any MCP client, or your agent on Telegram, Discord, WhatsApp, Signal, Photon and Buzz. A multi-bot gateway runs role- and chain-scoped bots over an A2A bus, and Allow/Deny approval cards render natively on Telegram, Discord, WhatsApp and Photon. Hosted/keyless cannot hold keys; self-host fills through the local signer.</p>
1618
1610
  <div class="agent-icons rv" style="display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px"><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.07-.2-.08-.06-.19-.04-.27-.02-.12.03-1.96 1.25-5.54 3.66-.52.36-1 .53-1.42.52-.47-.01-1.37-.26-2.03-.48-.82-.27-1.47-.42-1.41-.87.03-.24.36-.49.99-.74 3.87-1.69 6.45-2.8 7.74-3.34 3.69-1.53 4.45-1.8 4.95-1.81.11 0 .36.03.52.17.14.12.18.28.2.4.02.11.04.37.01.56z" fill="#229ED9"/></svg>Telegram</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M19.27 5.33C17.94 4.71 14.48 3.26 10.68 4.77a27.98 27.98 0 0 0-6.02 3.13c-.87.51-1.3.9-1.23 1.44.07.46.57.73 1.42 1.12l.33.15c.85.38 1.28.57 1.43 1.01.08.23.07.6-.08 1.1-.15.51-.5 1.15-1.02 2.02-.34.57-.5.85-.37.99.14.15.48.11 1.09-.26 1.76-1.07 3.18-1.93 4.23-2.59 3.22-2.06 5.08-2.82 5.55-2.28.18.21.06.84-.34 1.85-.39 1.01-1.05 2.32-1.51 3.13-.24.43-.37.64-.45.74-.11.14-.2.16-.3.15-.3-.03-.73-.45-1.41-1.3-.5-.62-.94-1.08-1.26-1.25-.64-.34-1.08-.13-1.14.26-.05.29.14.61.56 1.02.43.41 1.15 1.06 1.56 1.5.53.58.82.98.85 1.28.02.24-.04.47-.46.75-.42.27-.86.41-1.34.41-.41 0-.86-.1-1.35-.29-1.7-.68-3.25-1.94-4.64-3.79a18.7 18.7 0 0 1-3.13-5.08c-.38-.79-.16-1.31.41-1.63.47-.27 1.12-.22 1.96.14a10.26 10.26 0 0 1 3.74 2.28c.36.35.68.52.96.52.21 0 .44-.07.69-.22.37-.22.65-.6.86-1.13.21-.53.34-1.14.34-1.57 0-.5-.15-.88-.45-1.12-.52-.42-1.44-.52-2.76-.3-1.71.28-3.62 1.03-5.72 2.24l-.86.49a6.72 6.72 0 0 1-1.02.51c-.37.14-.64.17-.81.09-.18-.1-.24-.29-.2-.58.04-.3.16-.56.36-.76z" fill="#5865F2"/></svg>Discord</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403-.008-.005h.008l.005-.002h-.005V19.5c0-.248.009-.498.005-.746l.003-.003c.009 0 .018.001.027.002h-.02l-.011.008-.004.024zm-.006-.225h-.003l-.008.003.003.011.003-.005a.018.018 0 0 1 .005-.009zm-.004.17h.003l-.005-.002.002.001v.001zm.02-.003.003.003-.002-.002-.001-.001zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0z" fill="#25D366"/></svg>WhatsApp</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7.64 15.52c-.38-.66-.6-1.41-.6-2.2 0-2.63 2.14-4.77 4.77-4.77 1.27 0 2.47.5 3.37 1.4.9.9 1.4 2.1 1.4 3.37 0 2.63-2.14 4.77-4.77 4.77-.79 0-1.54-.22-2.2-.6L7.5 18l.14-2.48z" fill="#3B82F6"/></svg>Signal</span><span style="display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:10px;color:var(--cool);letter-spacing:.08em"><svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" stroke="#7C4DFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>Buzz</span></div>
1619
1611
  <div class="venues rv">
1620
1612
  <div class="venues-head"><span>models // harnesses</span><span><b>bring your own model</b> · oracle is the control plane</span></div>
@@ -1626,19 +1618,19 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1626
1618
  <div class="selfcustody-grid">
1627
1619
  <div>
1628
1620
  <h4>Everything runs on your machine</h4>
1629
- <p>The CLI and the desktop app are the whole product. There is no Oracle account, no hosted wallet, and no server that brokers your trades. Reads go straight from your machine to public RPCs and venue APIs.</p>
1621
+ <p>The CLI and the desktop app are the whole product. No Oracle account, no hosted wallet, no broker server. Reads go straight to public RPCs and venue APIs.</p>
1630
1622
  </div>
1631
1623
  <div>
1632
1624
  <h4>Hosted keys never reach Oracle</h4>
1633
- <p>Hosted/keyless Oracle has no hosted wallet and no cloud key. A self-host setup keeps the user's key in an encrypted local vault and executes through a short-lived loopback signer. Public modules still cannot import private Administrator house-signer code; a boundary test fails the build if they do.</p>
1625
+ <p>Hosted/keyless Oracle holds no cloud key. Self-host keeps your key in an encrypted local vault behind a short-lived loopback signer. Public modules cannot import house-signer code a boundary test fails the build if they do.</p>
1634
1626
  </div>
1635
1627
  <div>
1636
1628
  <h4>Hosted wallets sign outside Oracle</h4>
1637
- <p>Hosted/keyless Oracle prepares an artifact for your browser extension or hardware wallet. Self-host Oracle can execute supported artifacts through the loopback signer under sealed local policy. If you close the prompt, nothing happened.</p>
1629
+ <p>Hosted/keyless Oracle prepares an artifact for your extension or hardware wallet; self-host executes through the loopback signer under sealed local policy. If you close the prompt, nothing happened.</p>
1638
1630
  </div>
1639
1631
  <div>
1640
1632
  <h4>Nothing to seize, nothing to leak</h4>
1641
- <p>No custody means no honeypot. There is no server holding user keys to breach, no operator who can freeze you, and no counterparty risk from Oracle itself. Delete the app and your funds never moved.</p>
1633
+ <p>No custody means no honeypot. No server of user keys to breach, no operator who can freeze you, no counterparty risk from Oracle itself. Delete the app and your funds never moved.</p>
1642
1634
  </div>
1643
1635
  </div>
1644
1636
  </div>
@@ -1690,7 +1682,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1690
1682
  <div class="strategy-kicker">Agentic strategies</div>
1691
1683
  <h3 id="strategies-title">Move liquidity. Bound the risk.</h3>
1692
1684
  </div>
1693
- <p>Oracle reads the position, models the route and costs, then prepares only the steps the selected lane can actually support.</p>
1685
+ <p>Oracle reads live markets, checks policy, and prepares unsigned actions. The cards below are the main shipped surfaces, not a roadmap.</p>
1694
1686
  </div>
1695
1687
  <figure class="route-proof rv">
1696
1688
  <video id="route-session" width="868" height="456"
@@ -1751,75 +1743,94 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1751
1743
 
1752
1744
  <div class="strategy-grid">
1753
1745
  <article class="strategy-card">
1754
- <div class="mode">read · model · prepare</div>
1755
- <h4>LP rebalancing</h4>
1756
- <p>Read concentrated-liquidity positions, model new ranges and fee drag, then prepare collect, swap and redeploy steps on supported venues. You sign each step.</p>
1746
+ <div class="mode">quote · route · prepare</div>
1747
+ <h4>Route engine</h4>
1748
+ <p>Price swaps across Paraswap, Cow, Uniswap, LI.FI and more. Oracle ranks net cost and returns unsigned steps.</p>
1749
+ </article>
1750
+ <article class="strategy-card">
1751
+ <div class="mode">bridge · revoke · sign</div>
1752
+ <h4>Cross-chain bridges</h4>
1753
+ <p>deBridge, ChangeNOW, LI.FI, Squid, Stargate, THORChain, Bungee, Connext, Wormhole and Across, with approval checks first.</p>
1754
+ </article>
1755
+ <article class="strategy-card">
1756
+ <div class="mode">perps · funding · hedge</div>
1757
+ <h4>Perps and funding</h4>
1758
+ <p>Hyperliquid, GMX, dYdX, Drift and Vertex. Funding, books, positions and unsigned order prep in one lane.</p>
1759
+ </article>
1760
+ <article class="strategy-card">
1761
+ <div class="mode">LP · vault · stake</div>
1762
+ <h4>LP and yield</h4>
1763
+ <p>Read positions, compare vaults, model fees and lockups, then prepare deposits, exits or range changes.</p>
1764
+ </article>
1765
+ <article class="strategy-card">
1766
+ <div class="mode">farm · hedge · exit</div>
1767
+ <h4>Farming playbooks</h4>
1768
+ <p>Stable loops, collateral-plus-perp hedges and LP incentives, each with exposure, monitor and exit rules.</p>
1757
1769
  </article>
1758
1770
  <article class="strategy-card">
1759
- <div class="mode">monitor · shadow · simulate</div>
1760
- <h4>MEV</h4>
1761
- <p>Monitor cross-venue divergence and simulate net edge after gas, slippage and lender costs. Public mode is shadow analysis, not autonomous execution.</p>
1771
+ <div class="mode">split · limit · dca</div>
1772
+ <h4>TWAP and limit orders</h4>
1773
+ <p>Split buys or sells into child orders, cap participation, or stage limit/DCA plans from live depth.</p>
1762
1774
  </article>
1763
1775
  <article class="strategy-card">
1764
- <div class="mode">simulate · policy-check</div>
1765
- <h4>Flash loans</h4>
1766
- <p>Build bounded atomic loan routes and test premium, calldata, gas and minimum-profit gates. Public live execution remains disabled.</p>
1776
+ <div class="mode">portfolio · history · pnl</div>
1777
+ <h4>Portfolio memory</h4>
1778
+ <p>Wallet balances, NFTs, known value, historical snapshots and typed workspace records persist locally.</p>
1767
1779
  </article>
1768
1780
  <article class="strategy-card">
1769
- <div class="mode">read · quote · prepare</div>
1770
- <h4>Staking</h4>
1771
- <p>Compare validators, staking vaults, rewards and unlock periods, then prepare supported stake, withdraw and delegate actions for your signature.</p>
1781
+ <div class="mode">scan · approve · revoke</div>
1782
+ <h4>Approval safety</h4>
1783
+ <p>Find risky allowances, bind exact approval digests, and prepare revokes without treating a scoped scan as full safety.</p>
1772
1784
  </article>
1773
1785
  <article class="strategy-card">
1774
- <div class="mode">discover · compare · prepare</div>
1775
- <h4>Yield</h4>
1776
- <p>Rank staking, vault and LP opportunities by net APY after fees, liquidity, lockups and smart-contract risk, then prepare supported deposits or migrations for your signature.</p>
1786
+ <div class="mode">source · flag · gate</div>
1787
+ <h4>Contract risk</h4>
1788
+ <p>Heuristic source checks flag access control, reentrancy shape, unlimited approvals, oracle risk and replay hazards.</p>
1777
1789
  </article>
1778
1790
  <article class="strategy-card">
1779
- <div class="mode">model · hedge · prepare</div>
1780
- <h4>Farming methods</h4>
1781
- <p>Six delta-aware playbooks, from stablecoin loops to collateral-plus-perp hedges and LP incentive hedges. Each one carries explicit exposure, hedge, monitoring and exit rules rather than a bare APR.</p>
1791
+ <div class="mode">snipe · nft · ordinals</div>
1792
+ <h4>Token and NFT radar</h4>
1793
+ <p>EVM token sniper, OpenSea, Magic Eden, Solana NFTs, Bitcoin ordinals and runes feed prepare-only plans.</p>
1782
1794
  </article>
1783
1795
  <article class="strategy-card">
1784
- <div class="mode">hedge · fund · rebalance</div>
1785
- <h4>Delta neutral</h4>
1786
- <p>Pair a spot or LP leg against a short perp so the position earns funding and fees without directional exposure. Oracle reads both legs, models funding, borrow and rebalance drag, then prepares each leg for your signature.</p>
1796
+ <div class="mode">events · clob · outcomes</div>
1797
+ <h4>Polymarket and outcomes</h4>
1798
+ <p>Polymarket CLOB, Kalshi data and Hyperliquid HIP-4 outcomes share one event-market research lane.</p>
1787
1799
  </article>
1788
1800
  <article class="strategy-card">
1789
- <div class="mode">split · schedule · prepare</div>
1790
- <h4>TWAP accumulate &amp; distribute</h4>
1791
- <p>Buy or sell over time instead of in one print. Oracle splits the notional into scheduled child orders, prices each against live venue depth, and prepares them individually so a single fill never moves the market against you. Same engine for distribution — size each tranche, cap participation, keep every child order unsigned.</p>
1801
+ <div class="mode">budget · pay · cap</div>
1802
+ <h4>x402 budgets</h4>
1803
+ <p>Decode payment requests and prepare exact capped spend. No signature, header or facilitator call is created by default.</p>
1792
1804
  </article>
1793
1805
  <article class="strategy-card">
1794
- <div class="mode">route · revoke · bridge</div>
1795
- <h4>deBridge · ChangeNOW · LI.FI · revoke.cash</h4>
1796
- <p>Bridge and cross-chain integration with deBridge, ChangeNOW, LI.FI, Squid, Stargate, THORChain, Bungee, Connext, Wormhole, and Across. Every route checks revoke.cash before execution — Oracle prepares the unsigned tx, you sign.</p>
1806
+ <div class="mode">mcp · plugins · tools</div>
1807
+ <h4>Agent harnesses</h4>
1808
+ <p>Claude, Codex, Cursor, ChatGPT and VS Code get the same Oracle tools through MCP and plugin installs.</p>
1797
1809
  </article>
1798
1810
  <article class="strategy-card">
1799
- <div class="mode">discover · score · rank</div>
1800
- <h4>Live farm discovery</h4>
1801
- <p>Scan live pools across chains and score each candidate on net APR after estimated borrow, funding and gas, minus a risk haircut for thin TVL. Ranked candidates feed straight into a prepare plan.</p>
1811
+ <div class="mode">xurl · vision · fence</div>
1812
+ <h4>Fenced web tools</h4>
1813
+ <p>xurl, vision and web helpers run through explicit allowlists. The public tool policy still has no shell tool.</p>
1802
1814
  </article>
1803
1815
  <article class="strategy-card">
1804
- <div class="mode">alert · shadow · notify</div>
1805
- <h4>Custom alerts + shadow trading</h4>
1806
- <p>Follow favorite chains, wallets, funds and deployer addresses, then get notified when one opens, rotates or exits. Run the playbook in shadow mode against live prices before you arm it for live execution.</p>
1816
+ <div class="mode">session · rename · fanout</div>
1817
+ <h4>Saved sessions</h4>
1818
+ <p>New chats are remembered, older chats resume from the picker, and selected sessions can rename, delete or fan out.</p>
1807
1819
  </article>
1808
1820
  <article class="strategy-card">
1809
- <div class="mode">shadow · simulate · execute</div>
1810
- <h4>Paper-trade until you go live</h4>
1811
- <p>Simulate every strategy against live venue data without committing capital. Track P&L, slippage, and fill quality in shadow mode — then arm it with one flag when you're ready. No gas, no exposure, no regret trades.</p>
1821
+ <div class="mode">chat · approve · notify</div>
1822
+ <h4>Chat approvals</h4>
1823
+ <p>Telegram, Discord, WhatsApp, Photon and Buzz receive scoped prompts, alerts and Allow/Deny approval cards.</p>
1812
1824
  </article>
1813
-
1814
1825
  </div>
1815
- <div class="strategy-posture"><b>Public posture:</b> research, simulation and unsigned preparation. MEV and flash-loan broadcast stays off; supported staking, LP, yield and farming actions require the user wallet to sign. Farm discovery reads live third-party yield data. Custom alerts and shadow loops notify or simulate first; live execution still requires arming and a user signature.</div>
1826
+ <div class="strategy-posture"><b>Public posture:</b> read, simulate, alert and prepare unsigned actions. Anything that moves value still needs explicit arming, local signer approval and your wallet signature.</div>
1816
1827
 
1817
1828
  </div>
1818
1829
 
1819
1830
  <section class="section" id="chains">
1820
1831
  <p class="section-label rv">Chains</p>
1821
1832
  <h2 class="section-title rv">Where you can <em>operate.</em></h2>
1822
- <p class="section-lede rv">Every built-in EVM chain exposes the full scanner capability set. <b>Route</b> means Oracle can price and prepare a swap there. Any additional EVM chain can be registered with a chain id and an RPC; unsupported paths fail closed rather than guessing a router.</p>
1833
+ <p class="section-lede rv">Every built-in EVM chain exposes the full scanner set. <b>Route</b> means Oracle can price and prepare a swap there. Register any extra EVM chain with a chain id and an RPC; unsupported paths fail closed.</p>
1823
1834
  <div class="chain-grid" id="chain-grid"></div>
1824
1835
  <div class="hl-surface rv">
1825
1836
  <div class="venues-head"><span>hyperliquid // what oracle actually does</span></div>
@@ -1839,28 +1850,34 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1839
1850
  <div class="cli-install rv">
1840
1851
  <div class="cli-install-cmd"><code>curl -fsSL https://oracle.demi.la/install.sh | bash</code> <span class="cli-install-hint">then oracle setup model && oracle chat</span></div>
1841
1852
  </div>
1842
- <p class="section-lede rv">The real Oracle shell, isolated from desktop chrome. No accounts, no servers. The CLI runs on your machine and reads straight from public RPCs.</p>
1843
- <p class="section-lede rv">Pin the active surface with <code style="color:var(--blue2)">/chain hyperliquid</code>, switch models, ask naturally. Oracle reads, prices, and prepares — you sign.</p>
1853
+ <p class="section-lede rv">The real Oracle shell, isolated from desktop chrome. No accounts, no servers it runs on your machine and reads straight from public RPCs. Session start greets you, file writes need explicit approval, and there is no shell tool at all.</p>
1854
+ <p class="section-lede rv">Pin the active surface with <code style="color:var(--blue2)">/chain hyperliquid</code>, pick any model with <code style="color:var(--blue2)">/model</code> — Qwen and GLM included — switch sessions in place, ask naturally. A guided setup wizard takes a fresh install to first quote. Oracle reads, prices, and prepares — you sign.</p>
1844
1855
  <div class="convert-grid rv">
1845
1856
  <div>
1846
1857
  <figure class="cli-frame cli-proof">
1847
- <img id="cli-still" src="assets/cli-chain-hyperliquid.jpg?v=cli-visible" alt="Oracle CLI selecting Hyperliquid with the /chain hyperliquid command, showing the active surface: chain, chain id, agent, HyperCore and HyperEVM" width="1600" height="900" loading="eager" fetchpriority="high" />
1858
+ <picture>
1859
+ <source srcset="assets/oracle-cli-v035.gif?v=20260823" type="image/gif" media="(prefers-reduced-motion: no-preference)">
1860
+ <img id="cli-still" src="assets/oracle-cli-v035-poster.jpg?v=20260823" alt="Oracle CLI TUI v0.35.0 with starfield, Hyperliquid context, and the ←/→ sessions picker affordance" width="1600" height="1282" loading="eager" fetchpriority="high" />
1861
+ </picture>
1848
1862
  </figure>
1849
1863
  <p class="cli-cap">actual oracle shell</p>
1850
1864
  </div>
1851
1865
  <div class="convert-copy">
1852
- <p>The active chain follows each read, quote, prepare, and bounded execution path.</p>
1866
+ <p>The active chain follows each read, quote, prepare, and bounded execution path. <code style="color:var(--blue2)">oracle doctor</code> checks the read plane before you trade, <code style="color:var(--blue2)">oracle equities</code> opens the HIP-3, Arcus, Robinhood Chain and Solana equities crossbook, and <code style="color:var(--blue2)">oracle plugins</code> installs Agent Plugins into any harness.</p>
1853
1867
  <div class="convert-pills">
1854
1868
  <span>HyperCore + HyperEVM</span>
1855
1869
  <span>multichain routing</span>
1856
1870
  <span>self-custody</span>
1871
+ <span>equities crossbook</span>
1872
+ <span>agent plugins</span>
1873
+ <span>read-plane doctor</span>
1857
1874
  </div>
1858
1875
  <h2 class="section-title app-shot-title">Oracle Desktop App <sup style="font-size:14px;color:var(--blue);font-weight:400">beta</sup></h2>
1859
1876
  <figure class="app-shot">
1860
1877
  <img src="assets/desktop-app.jpg" width="1736" height="959" loading="lazy" decoding="async" alt="Oracle desktop app showing the specialist mesh, with Portfolio, Approvals, Prepare, CLI, Farming Methods, Agent Connect, Receipts, Campaigns and Routes panes.">
1861
1878
  <figcaption>Portfolio, approvals, prepare, farming, receipts and routes in one pane.</figcaption>
1862
1879
  </figure>
1863
- <div class="os-dl"><a class="os-link" href="/downloads/artifacts/Oracle-0.4.10-arm64.dmg">macOS</a><a class="os-link" href="/downloads/artifacts/Oracle-0.4.10.AppImage">Linux</a><a class="os-link" href="/downloads/artifacts/Oracle-Setup-0.4.10.exe">Windows</a></div>
1880
+ <p class="platform-beta"><b>Private beta</b> Desktop builds are in private beta while we finish the app. Public downloads return when it ships. The CLI above is the full product today.</p>
1864
1881
  </div>
1865
1882
  </div>
1866
1883
  </section>
@@ -1868,7 +1885,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1868
1885
  <section class="section" id="fees">
1869
1886
  <p class="section-label rv">Fees</p>
1870
1887
  <h2 class="section-title rv">5 bps. <em>Holders zero.</em></h2>
1871
- <p class="section-lede rv">Oracle charges 5 basis points (0.05%) on swaps it routes. Eligible Hyperliquid orders can separately include a 1–2 bps builder fee after wallet approval. Both are shown before you sign.</p>
1888
+ <p class="section-lede rv">5 basis points (0.05%) on swaps Oracle routes. Eligible Hyperliquid orders can add a 1–2 bps builder fee after wallet approval. Both show before you sign.</p>
1872
1889
  <div class="moat-grid rv" style="margin-top:28px">
1873
1890
  <article class="moat-card">
1874
1891
  <div class="n">swap fee</div>
@@ -1,4 +1,4 @@
1
- # Oracle installer for Windows — CLI + desktop app.
1
+ # Oracle installer for Windows — CLI (desktop app: private beta, opt-in).
2
2
  #
3
3
  # iex (irm https://oracle.demi.la/install.ps1)
4
4
  #
@@ -12,7 +12,7 @@ $Base = if ($env:ORACLE_INSTALL_BASE) { $env:ORACLE_INSTALL_BASE.TrimEnd("/") }
12
12
  $Pkg = if ($env:ORACLE_NPM_PACKAGE) { $env:ORACLE_NPM_PACKAGE } else { "@oracle-agent/oracle" }
13
13
  $Ver = if ($env:ORACLE_INSTALL_VERSION) { $env:ORACLE_INSTALL_VERSION } else { "latest" }
14
14
  $SkipCli = $env:ORACLE_INSTALL_SKIP_CLI -eq "1"
15
- $SkipDesktop = $env:ORACLE_INSTALL_SKIP_DESKTOP -eq "1"
15
+ $SkipDesktop = $env:ORACLE_INSTALL_DESKTOP -ne "1"
16
16
  $SumsUrl = "$Base/downloads/artifacts/SHA256SUMS.txt"
17
17
  $Work = Join-Path $env:TEMP ("oracle-setup-" + [guid]::NewGuid().ToString("n"))
18
18
 
@@ -98,5 +98,5 @@ function Install-Desktop {
98
98
 
99
99
  if (-not $SkipCli) { Install-Cli }
100
100
  if (-not $SkipDesktop) { Install-Desktop }
101
- Log "done. CLI: oracle --version App: Start menu Oracle then: oracle setup model"
101
+ Log "done. CLI: oracle --version then: oracle setup model (desktop app: private beta)"
102
102
  if (-not $SkipCli) { Log "Telegram: set ORACLE_OWNER_TELEGRAM to your numeric id, then oracle gateway" }