@oracle-agent/oracle 0.35.18 → 0.35.20
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/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
- package/dist/bin/oracle-data-mcp.mjs +12 -11
- package/dist/bin/oracle-gateway.mjs +3 -3
- package/dist/bin/oracle-telegram-mcp.mjs +5 -5
- package/dist/cli/commands/chat.mjs +177 -177
- package/dist/cli/commands/doctor.mjs +7 -7
- package/dist/cli/commands/eval.mjs +110 -110
- package/dist/cli/commands/model.mjs +183 -183
- package/dist/cli/commands/quickstart.mjs +6 -6
- package/dist/cli/commands/sign.mjs +12 -12
- package/dist/cli/commands/signer.mjs +23 -17
- package/dist/cli/commands/swap.mjs +10 -10
- package/dist/cli/commands/telegram.mjs +6 -6
- package/dist/cli/commands/venues.mjs +2 -2
- package/dist/local-signer/anvil-attestation-worker.mjs +1 -1
- package/dist/local-signer/index.mjs +3 -3
- package/dist/local-signer/runtime.mjs +20 -14
- package/package.json +1 -1
- package/public/eval-report.json +23 -9
- package/public/oracle-splash/index.html +43 -22
- package/server.json +2 -2
package/package.json
CHANGED
package/public/eval-report.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"surface": "oracle-public-eval",
|
|
3
3
|
"version": 1,
|
|
4
|
-
"generatedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-26T03:16:16.859799+00:00",
|
|
5
5
|
"source": {
|
|
6
|
-
"commit": "
|
|
7
|
-
"dirty":
|
|
6
|
+
"commit": "96d67d6a7d652950f3ecdc7b845376820922a580",
|
|
7
|
+
"dirty": true,
|
|
8
8
|
"node": "v26.7.0"
|
|
9
9
|
},
|
|
10
10
|
"package": "@oracle-agent/oracle",
|
|
11
|
-
"packageVersion": "0.35.
|
|
11
|
+
"packageVersion": "0.35.20",
|
|
12
12
|
"methodology": "Reproduce locally: npx @oracle-agent/oracle eval guards|adversarial|fidelity --json. Dated, commit-stamped output; no chain state or live keys involved. A report is evidence of the pinned commit only.",
|
|
13
13
|
"suites": {
|
|
14
14
|
"guards": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
{
|
|
21
21
|
"name": "version",
|
|
22
22
|
"ok": true,
|
|
23
|
-
"detail": "oracle 0.35.
|
|
23
|
+
"detail": "oracle 0.35.20"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "help-loads",
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"adversarial": {
|
|
48
48
|
"ok": true,
|
|
49
49
|
"status": "passed",
|
|
50
|
+
"blocked": false,
|
|
50
51
|
"packageTests": {
|
|
51
52
|
"total": 159,
|
|
52
53
|
"pass": 159,
|
|
@@ -70,11 +71,24 @@
|
|
|
70
71
|
"expectedFiles": 9,
|
|
71
72
|
"failures": []
|
|
72
73
|
},
|
|
73
|
-
"
|
|
74
|
-
|
|
74
|
+
"coverage": [
|
|
75
|
+
"exact-confirmation",
|
|
76
|
+
"artifact-mutation",
|
|
77
|
+
"replay-idempotency",
|
|
78
|
+
"receipt-finality",
|
|
79
|
+
"autonomous-mint-gates",
|
|
80
|
+
"exact-nft-contract",
|
|
81
|
+
"hyperliquid-position-drift"
|
|
82
|
+
]
|
|
75
83
|
},
|
|
76
84
|
"fidelity": {
|
|
77
|
-
"ok": true
|
|
85
|
+
"ok": true,
|
|
86
|
+
"status": "passed",
|
|
87
|
+
"blocked": false,
|
|
88
|
+
"code": 0,
|
|
89
|
+
"signal": null,
|
|
90
|
+
"summary": "summary: 3/3 ok, 0 prepare-fail, 0 structural-fail, 0 sim-fail, 3 simulated",
|
|
91
|
+
"tail": "prepare-fidelity eval taker=0x70997970... generated=2026-08-26T03:15:52.383Z\nid status artifact sim liq% notes\nethereum-weth-usdc ok unsigned-transactionnofund 100% execution reverted: STF\nbase-weth-usdc ok unsigned-transactionnofund 100% execution reverted: STF\narbitrum-weth-usdc ok unsigned-transactionnofund 100% execution reverted: STF\nsummary: 3/3 ok, 0 prepare-fail, 0 structural-fail, 0 sim-fail, 3 simulated\n\n"
|
|
78
92
|
}
|
|
79
93
|
},
|
|
80
94
|
"adversarialClassesCovered": [
|
|
@@ -84,4 +98,4 @@
|
|
|
84
98
|
"exact-confirm",
|
|
85
99
|
"receipt"
|
|
86
100
|
]
|
|
87
|
-
}
|
|
101
|
+
}
|
|
@@ -110,11 +110,7 @@ img{display:inline-block}
|
|
|
110
110
|
.scene-rail{position:fixed;right:18px;top:50%;z-index:29;transform:translateY(-50%);display:grid;gap:11px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:rgba(201,218,236,.44)}
|
|
111
111
|
.scene-rail span{position:relative;display:grid;place-items:center;width:30px;height:22px;border:1px solid rgba(124,196,255,.12);border-radius:999px;background:rgba(11,16,24,.40);transition:color .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease)}
|
|
112
112
|
body[data-scene="home"] .scene-rail span[data-scene-dot="home"],body[data-scene="orchestration"] .scene-rail span[data-scene-dot="orchestration"],body[data-scene="chains"] .scene-rail span[data-scene-dot="chains"],body[data-scene="cli"] .scene-rail span[data-scene-dot="cli"],body[data-scene="fees"] .scene-rail span[data-scene-dot="fees"]{color:#071018;border-color:rgba(184,240,255,.82);background:linear-gradient(180deg,var(--scene-a),var(--scene-b));transform:translateX(-4px)}
|
|
113
|
-
body[data-scene="home"]{--scene-a:#7CC4FF;--scene-b:#50D2C1;--scene-soft:rgba(124,196,255,.16)}
|
|
114
|
-
body[data-scene="orchestration"]{--scene-a:#A7D8FF;--scene-b:#9945FF;--scene-soft:rgba(153,69,255,.12)}
|
|
115
|
-
body[data-scene="chains"]{--scene-a:#50D2C1;--scene-b:#D7FF4D;--scene-soft:rgba(80,210,193,.13)}
|
|
116
|
-
body[data-scene="cli"]{--scene-a:#F4F9FE;--scene-b:#7CC4FF;--scene-soft:rgba(244,249,254,.12)}
|
|
117
|
-
body[data-scene="fees"]{--scene-a:#D7FF4D;--scene-b:#F0B90B;--scene-soft:rgba(240,185,11,.12)}
|
|
113
|
+
body[data-scene="home"],body[data-scene="orchestration"],body[data-scene="chains"],body[data-scene="cli"],body[data-scene="fees"]{--scene-a:#7CC4FF;--scene-b:#50D2C1;--scene-soft:rgba(124,196,255,.16)}
|
|
118
114
|
|
|
119
115
|
/* ── orbital oracle mark ───────────────────────────── */
|
|
120
116
|
.orbital{position:relative;display:inline-block}
|
|
@@ -1117,6 +1113,10 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1117
1113
|
.js .rv{opacity:0;transform:translate3d(0,22px,0);will-change:opacity,transform}
|
|
1118
1114
|
.js .rv.in{opacity:1;transform:translate3d(0,0,0);transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
|
|
1119
1115
|
.js .rv.done{transform:none;will-change:auto}
|
|
1116
|
+
.js .home-kicker.rv.in{transition-delay:.04s}
|
|
1117
|
+
.js .home-title.rv.in{transition-delay:.14s}
|
|
1118
|
+
.js .hero-sub.rv.in{transition-delay:.26s}
|
|
1119
|
+
.js .home-stats.rv.in{transition-delay:.34s}
|
|
1120
1120
|
|
|
1121
1121
|
|
|
1122
1122
|
.section{position:relative}
|
|
@@ -1272,7 +1272,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1272
1272
|
<div class="hero-split">
|
|
1273
1273
|
<div class="hero-lede">
|
|
1274
1274
|
<p class="home-kicker rv">self-custody agent control</p>
|
|
1275
|
-
<h1 class="home-title rv">Trade every chain<br>from <em>one</em> agent</h1>
|
|
1275
|
+
<h1 class="home-title rv" data-split>Trade every chain<br>from <em>one</em> agent</h1>
|
|
1276
1276
|
<p class="hero-sub rv">Hyperliquid, EVM, Bitcoin, Solana, Stable and Robinhood Chain in a single control plane. Oracle reads state, prices routes and prepares the transaction. Your wallet signs it.</p>
|
|
1277
1277
|
<div class="home-actions">
|
|
1278
1278
|
<a class="enter-cta primary" href="#cli">Download</a>
|
|
@@ -1333,7 +1333,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1333
1333
|
</section>
|
|
1334
1334
|
<section class="section" id="orchestration">
|
|
1335
1335
|
<p class="section-label rv">Profiles</p>
|
|
1336
|
-
<h2 class="section-title rv">Multi-profile. <em>Customizable.</em></h2>
|
|
1336
|
+
<h2 class="section-title rv" data-split>Multi-profile. <em>Customizable.</em></h2>
|
|
1337
1337
|
<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>
|
|
1338
1338
|
|
|
1339
1339
|
<div class="graph-shell rv">
|
|
@@ -1670,7 +1670,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1670
1670
|
</div>
|
|
1671
1671
|
|
|
1672
1672
|
<p class="section-label rv">Self-custodial agents</p>
|
|
1673
|
-
<h2 class="section-title rv">No third party holds your keys. Not even Oracle.</h2>
|
|
1673
|
+
<h2 class="section-title rv" data-split>No third party holds your keys. Not even Oracle.</h2>
|
|
1674
1674
|
<div class="selfcustody-grid">
|
|
1675
1675
|
<div>
|
|
1676
1676
|
<h4>Everything runs on your machine</h4>
|
|
@@ -1885,7 +1885,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1885
1885
|
|
|
1886
1886
|
<section class="section" id="chains">
|
|
1887
1887
|
<p class="section-label rv">Chains</p>
|
|
1888
|
-
<h2 class="section-title rv">Where you can <em>operate.</em></h2>
|
|
1888
|
+
<h2 class="section-title rv" data-split>Where you can <em>operate.</em></h2>
|
|
1889
1889
|
<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>
|
|
1890
1890
|
<div class="chain-grid" id="chain-grid"></div>
|
|
1891
1891
|
<div class="hl-surface rv">
|
|
@@ -1902,7 +1902,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1902
1902
|
</section>
|
|
1903
1903
|
<section class="section cli-section" id="cli">
|
|
1904
1904
|
<p class="section-label rv">Oracle CLI</p>
|
|
1905
|
-
<h2 class="section-title rv">One surface. <em>Every chain.</em></h2>
|
|
1905
|
+
<h2 class="section-title rv" data-split>One surface. <em>Every chain.</em></h2>
|
|
1906
1906
|
<div class="cli-install rv">
|
|
1907
1907
|
<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>
|
|
1908
1908
|
</div>
|
|
@@ -1940,7 +1940,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1940
1940
|
|
|
1941
1941
|
<section class="section" id="fees">
|
|
1942
1942
|
<p class="section-label rv">Fees</p>
|
|
1943
|
-
<h2 class="section-title rv">5 bps. <em>Holders zero.</em></h2>
|
|
1943
|
+
<h2 class="section-title rv" data-split>5 bps. <em>Holders zero.</em></h2>
|
|
1944
1944
|
<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>
|
|
1945
1945
|
<div class="moat-grid rv" style="margin-top:28px">
|
|
1946
1946
|
<article class="moat-card">
|
|
@@ -2480,10 +2480,28 @@ var activeLenis = null;
|
|
|
2480
2480
|
root.querySelectorAll("[data-split]").forEach(function (el) {
|
|
2481
2481
|
if (el.dataset.splitDone) return;
|
|
2482
2482
|
el.dataset.splitDone = "1";
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2483
|
+
function wrap(node) {
|
|
2484
|
+
var frag = document.createDocumentFragment();
|
|
2485
|
+
Array.prototype.slice.call(node.childNodes).forEach(function (child) {
|
|
2486
|
+
if (child.nodeType === 3) {
|
|
2487
|
+
child.textContent.split(/(\s+)/).forEach(function (w) {
|
|
2488
|
+
if (!w) return;
|
|
2489
|
+
if (/^\s+$/.test(w)) { frag.appendChild(document.createTextNode(w)); return; }
|
|
2490
|
+
var m = document.createElement("span"); m.className = "word-mask";
|
|
2491
|
+
var s = document.createElement("span"); s.textContent = w;
|
|
2492
|
+
m.appendChild(s); frag.appendChild(m);
|
|
2493
|
+
});
|
|
2494
|
+
} else if (child.nodeType === 1) {
|
|
2495
|
+
var clone = child.cloneNode(false);
|
|
2496
|
+
clone.appendChild(wrap(child));
|
|
2497
|
+
frag.appendChild(clone);
|
|
2498
|
+
}
|
|
2499
|
+
});
|
|
2500
|
+
return frag;
|
|
2501
|
+
}
|
|
2502
|
+
var out = wrap(el);
|
|
2503
|
+
el.innerHTML = "";
|
|
2504
|
+
el.appendChild(out);
|
|
2487
2505
|
});
|
|
2488
2506
|
}
|
|
2489
2507
|
function initPremiumMotion() {
|
|
@@ -2499,14 +2517,17 @@ var activeLenis = null;
|
|
|
2499
2517
|
}
|
|
2500
2518
|
splitWords(document);
|
|
2501
2519
|
if (window.ScrollTrigger) {
|
|
2502
|
-
|
|
2520
|
+
document.querySelectorAll("[data-split]").forEach(function (el) {
|
|
2521
|
+
el.classList.add("in", "done");
|
|
2522
|
+
gsap.fromTo(el.querySelectorAll(".word-mask > span"), { yPercent:112 }, { yPercent:0, duration:1.05, ease:"power4.out", stagger:.04, scrollTrigger:{ trigger:el, start:"top 82%" }, clearProps:"transform" });
|
|
2523
|
+
});
|
|
2503
2524
|
gsap.to(".hero-art", { yPercent:18, scale:.9, ease:"none", scrollTrigger:{ trigger:".home", start:"top top", end:"bottom top", scrub:true } });
|
|
2504
|
-
gsap.fromTo(".hero-installer", { y:
|
|
2505
|
-
gsap.fromTo(".motion-card", { y:
|
|
2506
|
-
gsap.to(".motion-command", { y:-54,
|
|
2507
|
-
gsap.fromTo(".chain", { y:
|
|
2508
|
-
gsap.fromTo(".strategy-card", { y:
|
|
2509
|
-
gsap.fromTo(".cli-proof", { scale:.
|
|
2525
|
+
gsap.fromTo(".hero-installer", { y:26, filter:"brightness(.92)" }, { y:0, filter:"brightness(1)", duration:1.1, ease:"power4.out", scrollTrigger:{ trigger:".hero-installer", start:"top 88%" }, clearProps:"transform,filter" });
|
|
2526
|
+
gsap.fromTo(".motion-card", { y:44, scale:.97 }, { y:0, scale:1, duration:1.15, ease:"power4.out", stagger:.07, scrollTrigger:{ trigger:".operator-grid", start:"top 82%" }, clearProps:"transform" });
|
|
2527
|
+
gsap.to(".motion-command", { y:-54, ease:"none", scrollTrigger:{ trigger:".motion-lab", start:"top 76%", end:"bottom top", scrub:true } });
|
|
2528
|
+
gsap.fromTo(".chain", { y:28, opacity:.55 }, { y:0, opacity:1, duration:.85, ease:"power3.out", stagger:.03, scrollTrigger:{ trigger:"#chains", start:"top 76%" }, clearProps:"transform,opacity" });
|
|
2529
|
+
gsap.fromTo(".strategy-card", { y:30, opacity:.58 }, { y:0, opacity:1, duration:.95, ease:"power3.out", stagger:.025, scrollTrigger:{ trigger:".strategy-grid", start:"top 78%" }, clearProps:"transform,opacity" });
|
|
2530
|
+
gsap.fromTo(".cli-proof", { scale:.96, y:30 }, { scale:1, y:0, ease:"none", scrollTrigger:{ trigger:".cli-proof", start:"top 86%", end:"bottom 38%", scrub:1 }, clearProps:"transform" });
|
|
2510
2531
|
gsap.to(".route-tree", { scale:1.018, ease:"none", transformOrigin:"50% 50%", scrollTrigger:{ trigger:".route-tree", start:"top 82%", end:"bottom 40%", scrub:1 } });
|
|
2511
2532
|
gsap.to(".mega-oracle", { xPercent:-14, letterSpacing:".02em", ease:"none", scrollTrigger:{ trigger:".mega-oracle", start:"top bottom", end:"bottom top", scrub:true } });
|
|
2512
2533
|
}
|
package/server.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "io.github.demi-hl/oracle",
|
|
4
4
|
"description": "Keyless multichain crypto desk: chain reads + prepare-only unsigned txs. Your wallet signs.",
|
|
5
5
|
"websiteUrl": "https://oracle.demi.la",
|
|
6
|
-
"version": "0.35.
|
|
6
|
+
"version": "0.35.20",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "@oracle-agent/oracle",
|
|
11
|
-
"version": "0.35.
|
|
11
|
+
"version": "0.35.20",
|
|
12
12
|
"transport": {
|
|
13
13
|
"type": "stdio"
|
|
14
14
|
},
|