@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oracle-agent/oracle",
3
- "version": "0.35.18",
3
+ "version": "0.35.20",
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,14 +1,14 @@
1
1
  {
2
2
  "surface": "oracle-public-eval",
3
3
  "version": 1,
4
- "generatedAt": "2026-08-25T09:38:08.579375+00:00",
4
+ "generatedAt": "2026-08-26T03:16:16.859799+00:00",
5
5
  "source": {
6
- "commit": "499888d3d953eb93b69a4282b55444a1f47bb82c",
7
- "dirty": false,
6
+ "commit": "96d67d6a7d652950f3ecdc7b845376820922a580",
7
+ "dirty": true,
8
8
  "node": "v26.7.0"
9
9
  },
10
10
  "package": "@oracle-agent/oracle",
11
- "packageVersion": "0.35.18",
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.18"
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
- "files": [],
74
- "cases": []
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
- el.innerHTML = el.textContent.split(/(\s+)/).map(function (w) {
2484
- if (/^\s+$/.test(w)) return w;
2485
- return '<span class="word-mask"><span>' + w + '</span></span>';
2486
- }).join("");
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
- gsap.fromTo("[data-split] .word-mask > span", { yPercent:112, rotate:2 }, { yPercent:0, rotate:0, duration:1.1, ease:"power4.out", stagger:.035, scrollTrigger:{ trigger:"[data-split]", start:"top 78%" }, clearProps:"transform" });
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:24, rotateX:2, filter:"brightness(.92)" }, { y:0, rotateX:0, filter:"brightness(1)", duration:1.1, ease:"power4.out", scrollTrigger:{ trigger:".hero-installer", start:"top 88%" }, clearProps:"transform,filter" });
2505
- gsap.fromTo(".motion-card", { y:80, rotateX:8, scale:.965 }, { y:0, rotateX:0, scale:1, duration:1.25, ease:"power4.out", stagger:.08, scrollTrigger:{ trigger:".operator-grid", start:"top 82%" }, clearProps:"transform" });
2506
- gsap.to(".motion-command", { y:-54, rotateX:4, rotateY:-5, ease:"none", scrollTrigger:{ trigger:".motion-lab", start:"top 76%", end:"bottom top", scrub:true } });
2507
- gsap.fromTo(".chain", { y:42, rotateX:6, opacity:.55 }, { y:0, rotateX:0, opacity:1, duration:.9, ease:"power3.out", stagger:.035, scrollTrigger:{ trigger:"#chains", start:"top 76%" }, clearProps:"transform,opacity" });
2508
- gsap.fromTo(".strategy-card", { y:46, rotateX:7, opacity:.58 }, { y:0, rotateX:0, opacity:1, duration:1.05, ease:"power3.out", stagger:.025, scrollTrigger:{ trigger:".strategy-grid", start:"top 78%" }, clearProps:"transform,opacity" });
2509
- gsap.fromTo(".cli-proof", { scale:.94, rotateX:3, y:40 }, { scale:1, rotateX:0, y:0, ease:"none", scrollTrigger:{ trigger:".cli-proof", start:"top 86%", end:"bottom 38%", scrub:1 }, clearProps:"transform" });
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.18",
6
+ "version": "0.35.20",
7
7
  "packages": [
8
8
  {
9
9
  "registryType": "npm",
10
10
  "identifier": "@oracle-agent/oracle",
11
- "version": "0.35.18",
11
+ "version": "0.35.20",
12
12
  "transport": {
13
13
  "type": "stdio"
14
14
  },