@oracle-agent/oracle 0.24.8 → 0.24.10

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.
Files changed (53) hide show
  1. package/README.md +57 -49
  2. package/SECURITY.md +1 -1
  3. package/SETUP.md +16 -13
  4. package/dist/assets/profiles/_template/SOUL.md +2 -2
  5. package/dist/assets/profiles/oracle/SOUL.md +11 -13
  6. package/dist/assets/profiles/profile.schema.json +1 -1
  7. package/dist/assets/profiles/robinhood-agent/SOUL.md +5 -5
  8. package/dist/assets/skills/multi-venue-prepare-only-ranking/SKILL.md +1 -1
  9. package/dist/assets/skills/oracle-action-semantics/SKILL.md +5 -5
  10. package/dist/assets/skills/oracle-chat/SKILL.md +8 -8
  11. package/dist/assets/skills/oracle-desk-product/SKILL.md +3 -3
  12. package/dist/assets/skills/oracle-receipts/SKILL.md +2 -2
  13. package/dist/bin/desk-server.mjs +78 -34
  14. package/dist/bin/oracle-data-mcp.mjs +51 -7
  15. package/dist/bin/oracle-gateway.mjs +13 -15
  16. package/dist/bin/oracle-init.mjs +9 -9
  17. package/dist/bin/oracle-public-server.mjs +48 -4
  18. package/dist/bin/oracle-route.mjs +66 -22
  19. package/dist/bin/oracle-scan.mjs +58 -14
  20. package/dist/bin/oracle-upgrade.mjs +9 -9
  21. package/dist/bin/oracle.mjs +6 -6
  22. package/dist/cli/commands/chat.mjs +140 -96
  23. package/dist/cli/commands/doctor.mjs +5 -5
  24. package/dist/cli/commands/eval.mjs +17 -17
  25. package/dist/cli/commands/farm.mjs +72 -28
  26. package/dist/cli/commands/follow.mjs +61 -17
  27. package/dist/cli/commands/model.mjs +147 -103
  28. package/dist/cli/commands/receipt.mjs +3 -3
  29. package/dist/cli/commands/resolve.mjs +55 -11
  30. package/dist/cli/commands/setup.mjs +27 -27
  31. package/dist/cli/commands/sign.mjs +14 -13
  32. package/dist/cli/commands/signer.mjs +14 -17
  33. package/dist/cli/commands/strategy.mjs +50 -6
  34. package/dist/cli/commands/swap.mjs +72 -29
  35. package/dist/cli/commands/venues.mjs +3 -3
  36. package/dist/data/desk-data.mjs +78 -34
  37. package/dist/data/names.mjs +46 -2
  38. package/dist/data/providers/farming.mjs +46 -2
  39. package/dist/index.mjs +80 -36
  40. package/dist/local-signer/index.mjs +3 -1
  41. package/dist/router/index.mjs +46 -2
  42. package/dist/router/prepare-bridge.mjs +46 -2
  43. package/dist/scanner/index.mjs +48 -4
  44. package/dist/strategy/index.mjs +47 -3
  45. package/package.json +6 -3
  46. package/public/install.ps1 +1 -1
  47. package/public/install.sh +5 -4
  48. package/public/oracle-splash/_variants/ice.html +3 -3
  49. package/public/oracle-splash/_variants/ivory.html +3 -3
  50. package/public/oracle-splash/downloads/index.html +5 -5
  51. package/public/oracle-splash/index.html +7 -7
  52. package/public/oracle-splash/install.ps1 +1 -1
  53. package/public/oracle-splash/install.sh +5 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oracle-agent/oracle",
3
- "version": "0.24.8",
3
+ "version": "0.24.10",
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",
@@ -66,18 +66,21 @@
66
66
  "@noble/curves": "^2.2.0",
67
67
  "@noble/hashes": "^2.2.0",
68
68
  "@scure/base": "^2.2.0",
69
+ "@scure/btc-signer": "2.3.0",
70
+ "@solana/addresses": "^7.0.0",
71
+ "@solana/transaction-messages": "7.0.0",
69
72
  "ethers": "^6.16.0",
70
73
  "sharp": "^0.35.3",
71
74
  "sql.js": "^1.13.0",
72
75
  "viem": "^2.55.8"
73
76
  },
74
77
  "peerDependencies": {
78
+ "@browserbasehq/stagehand": "*",
75
79
  "discord.js": "*",
76
80
  "grammy": "*",
77
81
  "playwright-core": "*",
78
82
  "qrcode-terminal": "*",
79
- "whatsapp-web.js": "*",
80
- "@browserbasehq/stagehand": "*"
83
+ "whatsapp-web.js": "*"
81
84
  },
82
85
  "peerDependenciesMeta": {
83
86
  "grammy": {
@@ -92,7 +92,7 @@ function Install-Desktop {
92
92
  Fail "SHA-256 mismatch (got $got want $want). Refusing to run."
93
93
  }
94
94
  Log "checksum ok"
95
- Log "launching desktop installer (Oracle never asks for a private key or seed)"
95
+ Log "launching desktop installer (this installer never asks for a private key or seed)"
96
96
  Start-Process -FilePath $exe -ArgumentList "/S" -Wait
97
97
  }
98
98
 
package/public/install.sh CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # Oracle public installer — prepare-only crypto agent control plane.
2
+ # Oracle public installer — hosted/default stays prepare-only.
3
3
  #
4
4
  # curl -fsSL https://oracle.demi.la/install.sh | bash
5
5
  # curl -fsSL https://oracle.demi.la/install.sh | bash -s -- --version latest
@@ -10,10 +10,11 @@
10
10
  # - puts `oracle` on PATH via ~/.local/bin (or --prefix/bin)
11
11
  # - never asks for keys, seeds, or wallet approval
12
12
  #
13
- # What this never does:
13
+ # What this installer never does:
14
14
  # - sign or broadcast transactions
15
- # - install a private signer/executor
15
+ # - start a signer or import a key
16
16
  # - require Hermes or any other agent harness
17
+ # An explicit later `oracle signer` setup is a separate operator step.
17
18
  set -euo pipefail
18
19
 
19
20
  ORACLE_INSTALL_VERSION="${ORACLE_INSTALL_VERSION:-latest}"
@@ -259,7 +260,7 @@ verify() {
259
260
  print_next() {
260
261
  cat <<EOF
261
262
 
262
- Oracle ready (prepare-only · your wallet signs).
263
+ Oracle ready (hosted/default prepare-only · your wallet signs).
263
264
 
264
265
  oracle --version
265
266
  oracle setup model
@@ -1281,13 +1281,13 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1281
1281
  </article>
1282
1282
  <article class="moat-card">
1283
1283
  <div class="n">bounded surfaces</div>
1284
- <h3>Six lanes, each with its own decoder</h3>
1285
- <p>hl, poly, evm-swap, evm-bridge, btc, sol. Each decodes its own envelope, proves every value-moving field, and refuses while its allowlists are empty.</p>
1284
+ <h3>Three local-signer lanes, each with its own decoder</h3>
1285
+ <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>
1286
1286
  </article>
1287
1287
  <article class="moat-card">
1288
1288
  <div class="n">evidence</div>
1289
1289
  <h3>Decoded before you sign, receipted after</h3>
1290
- <p>minOut, impact, spender, and decoded calldata before approval; tx hash, receipt status, balance delta, and allowance state after. Unsigned artifacts export to hardware wallets. No “looks filled.”</p>
1290
+ <p>minOut, impact, spender, and decoded calldata before approval; tx hash, receipt status, balance delta when verified, and allowance state after. Unsigned artifacts export to hardware wallets. No “looks filled.”</p>
1291
1291
  </article>
1292
1292
  <article class="moat-card">
1293
1293
  <div class="n">fail closed</div>
@@ -1283,13 +1283,13 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1283
1283
  </article>
1284
1284
  <article class="moat-card">
1285
1285
  <div class="n">bounded surfaces</div>
1286
- <h3>Six lanes, each with its own decoder</h3>
1287
- <p>hl, poly, evm-swap, evm-bridge, btc, sol. Each decodes its own envelope, proves every value-moving field, and refuses while its allowlists are empty.</p>
1286
+ <h3>Three local-signer lanes, each with its own decoder</h3>
1287
+ <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>
1288
1288
  </article>
1289
1289
  <article class="moat-card">
1290
1290
  <div class="n">evidence</div>
1291
1291
  <h3>Decoded before you sign, receipted after</h3>
1292
- <p>minOut, impact, spender, and decoded calldata before approval; tx hash, receipt status, balance delta, and allowance state after. Unsigned artifacts export to hardware wallets. No “looks filled.”</p>
1292
+ <p>minOut, impact, spender, and decoded calldata before approval; tx hash, receipt status, balance delta when verified, and allowance state after. Unsigned artifacts export to hardware wallets. No “looks filled.”</p>
1293
1293
  </article>
1294
1294
  <article class="moat-card">
1295
1295
  <div class="n">fail closed</div>
@@ -25,17 +25,17 @@ section{padding-top:72px;scroll-margin-top:90px}.sub{color:var(--muted);line-hei
25
25
  <body>
26
26
  <nav class="nav"><div class="nav-inner"><a class="brand" href="/"><span class="mark" aria-hidden="true"></span>oracle</a><a class="back" href="/">Back to site</a></div></nav>
27
27
  <main class="wrap">
28
- <header><p class="eyebrow">Public release</p><h1>Install Oracle.<br><em>Your wallet signs.</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
- <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, arm execution, waive provider or network costs, or change the keyless prepare-only custody boundary.</p></aside>
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>keyless</span><span>prepare-only</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>
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
+ <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
+ <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
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
32
  <section id="desktop"><p class="eyebrow">Desktop beta · 0.4.3</p><h2>Native installers</h2><p class="sub">Each installer bundles the same public runtime. Download directly, then verify it against the published SHA-256 manifest.</p><div class="artifacts">
33
33
  <div class="artifact" data-artifact="Oracle-0.4.3.AppImage"><div><h3>Linux</h3><small>AppImage · x64</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.3 beta</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.3.AppImage" download>Download</a></div>
34
34
  <div class="artifact" data-artifact="Oracle-0.4.3-arm64.dmg"><div><h3>macOS</h3><small>DMG · Apple silicon</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.3 beta</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-0.4.3-arm64.dmg" download>Download</a></div>
35
35
  <div class="artifact" data-artifact="Oracle-Setup-0.4.3.exe"><div><h3>Windows</h3><small>NSIS installer · x64</small></div><div class="artifact-meta"><span class="build">Oracle 0.4.3 beta</span></div><code class="hash" data-hash>checksum loading</code><a class="dl-btn" href="/downloads/artifacts/Oracle-Setup-0.4.3.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. Oracle never asks for a private key, seed phrase, or wallet approval.</p></section>
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>
37
37
  </main>
38
- <footer><div class="nav-inner"><span>oracle · locals only labs</span><span>public / self-custody / prepare-only</span></div></footer>
38
+ <footer><div class="nav-inner"><span>oracle · locals only labs</span><span>public / self-custody / local signer</span></div></footer>
39
39
  <script>
40
40
  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
41
  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"}});
@@ -1475,8 +1475,8 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1475
1475
  </article>
1476
1476
  <article class="moat-card">
1477
1477
  <div class="n">bounded surfaces</div>
1478
- <h3>Six lanes, each with its own decoder</h3>
1479
- <p>hl, poly, evm-swap, evm-bridge, btc, sol. Each decodes its own envelope, proves every value-moving field, and refuses while its allowlists are empty.</p>
1478
+ <h3>Three local-signer lanes, each with its own decoder</h3>
1479
+ <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>
1480
1480
  </article>
1481
1481
  <article class="moat-card">
1482
1482
  <div class="n">evidence</div>
@@ -1552,7 +1552,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1552
1552
  <noscript><p class="agent-ask">move 5k usdc into weth, cheapest route</p></noscript>
1553
1553
  </figure>
1554
1554
  </div>
1555
- <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. Prepare-only everywhere: Oracle never holds your keys.</p>
1555
+ <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 execution runs through the local signer.</p>
1556
1556
  <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>
1557
1557
  <div class="venues rv">
1558
1558
  <div class="venues-head"><span>models // harnesses</span><span><b>bring your own model</b> · oracle is the control plane</span></div>
@@ -1567,12 +1567,12 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1567
1567
  <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>
1568
1568
  </div>
1569
1569
  <div>
1570
- <h4>Your keys never reach Oracle</h4>
1571
- <p>The shipped package contains no signer, no vault, and no key material. Whatever key you use stays where you already keep it, in your wallet extension or on your hardware device, under that tool&rsquo;s own protection. A boundary test walks the real import graph on every build and fails if a public module so much as reaches toward signer code.</p>
1570
+ <h4>Hosted keys never reach Oracle</h4>
1571
+ <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>
1572
1572
  </div>
1573
1573
  <div>
1574
- <h4>Your wallet signs, not Oracle</h4>
1575
- <p>Oracle prepares an unsigned transaction and hands it to your browser extension or hardware wallet. It cannot broadcast. If you close the prompt, nothing happened.</p>
1574
+ <h4>Hosted wallets sign outside Oracle</h4>
1575
+ <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>
1576
1576
  </div>
1577
1577
  <div>
1578
1578
  <h4>Nothing to seize, nothing to leak</h4>
@@ -92,7 +92,7 @@ function Install-Desktop {
92
92
  Fail "SHA-256 mismatch (got $got want $want). Refusing to run."
93
93
  }
94
94
  Log "checksum ok"
95
- Log "launching desktop installer (Oracle never asks for a private key or seed)"
95
+ Log "launching desktop installer (this installer never asks for a private key or seed)"
96
96
  Start-Process -FilePath $exe -ArgumentList "/S" -Wait
97
97
  }
98
98
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # Oracle public installer — prepare-only crypto agent control plane.
2
+ # Oracle public installer — hosted/default stays prepare-only.
3
3
  #
4
4
  # curl -fsSL https://oracle.demi.la/install.sh | bash
5
5
  # curl -fsSL https://oracle.demi.la/install.sh | bash -s -- --version latest
@@ -10,10 +10,11 @@
10
10
  # - puts `oracle` on PATH via ~/.local/bin (or --prefix/bin)
11
11
  # - never asks for keys, seeds, or wallet approval
12
12
  #
13
- # What this never does:
13
+ # What this installer never does:
14
14
  # - sign or broadcast transactions
15
- # - install a private signer/executor
15
+ # - start a signer or import a key
16
16
  # - require Hermes or any other agent harness
17
+ # An explicit later `oracle signer` setup is a separate operator step.
17
18
  set -euo pipefail
18
19
 
19
20
  ORACLE_INSTALL_VERSION="${ORACLE_INSTALL_VERSION:-latest}"
@@ -259,7 +260,7 @@ verify() {
259
260
  print_next() {
260
261
  cat <<EOF
261
262
 
262
- Oracle ready (prepare-only · your wallet signs).
263
+ Oracle ready (hosted/default prepare-only · your wallet signs).
263
264
 
264
265
  oracle --version
265
266
  oracle setup model