@oracle-agent/oracle 0.7.0 → 0.9.0

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 (36) hide show
  1. package/README.md +6 -4
  2. package/SETUP.md +1 -0
  3. package/bin/desk-server.mjs +2 -2
  4. package/docs/cli.md +2 -2
  5. package/package.json +1 -1
  6. package/profiles/oracle/SOUL.md +2 -2
  7. package/protocols/templates/safe-erc20/README.md +9 -0
  8. package/public/oracle-splash/assets/llms/codex-icon.svg +1 -0
  9. package/public/oracle-splash/assets/llms/gemini-icon.svg +1 -0
  10. package/public/oracle-splash/assets/wordmarks/across-icon.webp +0 -0
  11. package/public/oracle-splash/assets/wordmarks/hop-icon.webp +0 -0
  12. package/public/oracle-splash/assets/wordmarks/markets.svg +1 -0
  13. package/public/oracle-splash/assets/wordmarks/oneinch-icon.webp +0 -0
  14. package/public/oracle-splash/assets/wordmarks/opensea-icon.svg +17 -0
  15. package/public/oracle-splash/assets/wordmarks/satflow-icon.png +0 -0
  16. package/public/oracle-splash/assets/wordmarks/stargate-icon.webp +0 -0
  17. package/public/oracle-splash/assets/wordmarks/zerox-icon.webp +0 -0
  18. package/public/oracle-splash/favicon.ico +0 -0
  19. package/public/oracle-splash/favicon.svg +6 -0
  20. package/public/oracle-splash/index.html +153 -96
  21. package/scripts/check-doc-drift.mjs +1 -0
  22. package/skills/oracle-chat/setup.SKILL.md +2 -2
  23. package/skins/oracle.yaml +45 -41
  24. package/src/cli/commands/bootstrap.mjs +87 -0
  25. package/src/cli/commands/chat.mjs +140 -25
  26. package/src/cli/commands/doctor.mjs +5 -10
  27. package/src/cli/commands/model.mjs +19 -13
  28. package/src/cli/commands/setup.mjs +11 -19
  29. package/src/cli/first-run.mjs +2 -2
  30. package/src/cli/kernel.mjs +5 -4
  31. package/src/cli/messaging-platforms.mjs +1 -1
  32. package/src/cli/oracle-harness.py +226 -70
  33. package/src/cli/runtime.mjs +351 -0
  34. package/src/data/catalog.mjs +17 -2
  35. package/src/public-api/http.mjs +16 -1
  36. package/src/public-control/runtime-config.mjs +11 -1
@@ -4,7 +4,9 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>ORACLE</title>
7
- <meta name="description" content="Oracle multichain agent control. Prepare-only public plane. Self-custody. Powered by Hermes." />
7
+ <link rel="icon" href="/favicon.svg" type="image/svg+xml">
8
+ <link rel="shortcut icon" href="/favicon.ico">
9
+ <meta name="description" content="ORACLE is a self-custodial agent control plane for wallets, markets, and protocol routes.">
8
10
  <meta name="theme-color" content="#0B1018" />
9
11
  <meta name="robots" content="noindex,nofollow" />
10
12
  <link rel="preconnect" href="https://fonts.googleapis.com" />
@@ -37,7 +39,7 @@
37
39
  --max:1100px;
38
40
  }
39
41
  *{box-sizing:border-box;margin:0;padding:0}
40
- html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
42
+ html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
41
43
  body{
42
44
  min-height:100dvh;background:var(--bg);color:var(--ink);position:relative;isolation:isolate;
43
45
  font-family:var(--sans);font-weight:400;overflow-x:hidden;
@@ -64,7 +66,9 @@ img{display:inline-block}
64
66
  .orbital .core{fill:var(--blue);animation:core-pulse 3.2s var(--ease) infinite}
65
67
  .orbital .halo{fill:none;stroke:rgba(124,196,255,.22);stroke-width:5;filter:blur(3px)}
66
68
  @keyframes orb-spin{to{transform:rotate(360deg)}}
67
- @keyframes core-pulse{0%,100%{opacity:1}50%{opacity:.55}}
69
+ @keyframes core-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.06)}}
70
+ @keyframes core-billboard{from{transform:rotateY(0deg) rotateX(-18deg) rotateZ(8deg)}to{transform:rotateY(-360deg) rotateX(-18deg) rotateZ(8deg)}}
71
+ @keyframes orbit-travel{from{transform:rotateX(76deg) rotateZ(0deg) translateX(clamp(170px,23vw,280px))}to{transform:rotateX(76deg) rotateZ(360deg) translateX(clamp(170px,23vw,280px))}}
68
72
 
69
73
  .loader{
70
74
  position:fixed;inset:0;z-index:50;background:var(--bg);
@@ -153,23 +157,39 @@ main{position:relative;z-index:2;padding-top:84px}
153
157
  width:clamp(380px,50vw,640px);aspect-ratio:1;position:relative;transform-style:preserve-3d;
154
158
  animation:orb-slew 22s linear infinite;
155
159
  }
156
- .hero-orb .lat{position:absolute;inset:0;border-radius:50%;border:1.4px solid rgba(124,196,255,.5);transform-style:preserve-3d;box-shadow:0 0 26px rgba(124,196,255,.12)}
157
- .hero-orb .lat.l1{transform:rotateY(0deg)}
160
+ .hero-orb .lat{position:absolute;inset:0;border-radius:50%;border:1.2px solid rgba(124,196,255,.42);transform-style:preserve-3d;box-shadow:0 0 26px rgba(124,196,255,.1), inset 0 0 34px rgba(124,196,255,.07)}
161
+ .hero-orb .lat.l1{transform:rotateY(0deg);border-color:rgba(167,216,255,.62)}
158
162
  .hero-orb .lat.l2{transform:rotateY(45deg)}
159
- .hero-orb .lat.l3{transform:rotateY(90deg)}
163
+ .hero-orb .lat.l3{transform:rotateY(90deg);border-color:rgba(167,216,255,.58)}
160
164
  .hero-orb .lat.l4{transform:rotateY(135deg)}
161
- .hero-orb .par{position:absolute;left:50%;top:50%;border-radius:50%;border:1.2px solid rgba(124,196,255,.38);transform-style:preserve-3d}
165
+ .hero-orb .par{position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgba(124,196,255,.3);transform-style:preserve-3d;box-shadow:inset 0 0 24px rgba(124,196,255,.06)}
162
166
  .hero-orb .par.p1{width:96%;height:96%;transform:translate(-50%,-50%) rotateX(90deg)}
163
167
  .hero-orb .par.p2{width:78%;height:78%;transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(clamp(380px,50vw,640px) * .31))}
164
168
  .hero-orb .par.p3{width:78%;height:78%;transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(clamp(380px,50vw,640px) * -.31))}
165
- .hero-orb .eq{position:absolute;inset:-4%;border-radius:50%;border:2px solid rgba(167,216,255,.75);transform:rotateX(76deg);box-shadow:0 0 40px rgba(124,196,255,.35)}
169
+ .hero-orb .eq{position:absolute;inset:-4%;border-radius:50%;border:1.8px solid rgba(190,228,255,.82);transform:rotateX(76deg);box-shadow:0 0 44px rgba(124,196,255,.4), inset 0 0 30px rgba(167,216,255,.14)}
166
170
  .hero-orb .core-glow{
167
- position:absolute;inset:33%;border-radius:50%;
168
- background:radial-gradient(circle at 40% 36%, rgba(232,241,250,.9), rgba(124,196,255,.65) 34%, rgba(124,196,255,.12) 68%, transparent);
169
- box-shadow:0 0 46px rgba(124,196,255,.45), 0 0 110px rgba(124,196,255,.18);
171
+ position:absolute;inset:38%;border-radius:50%;
172
+ transform:rotateZ(8deg) rotateX(-18deg);
173
+ animation:core-billboard 22s linear infinite;
174
+ background:
175
+ radial-gradient(circle at 36% 30%, rgba(255,255,255,.95) 0%, rgba(214,238,255,.8) 12%, rgba(140,204,255,.55) 32%, rgba(74,150,214,.34) 56%, rgba(28,74,124,.22) 78%, rgba(14,34,62,.12) 100%);
176
+ box-shadow:
177
+ inset -12px -15px 34px rgba(6,16,32,.5),
178
+ inset 8px 10px 26px rgba(210,238,255,.2),
179
+ 0 0 60px rgba(124,196,255,.5),
180
+ 0 0 140px rgba(124,196,255,.2);
181
+ }
182
+ .hero-orb .core-glow::before{
183
+ content:"";position:absolute;left:22%;top:16%;width:26%;height:20%;border-radius:50%;
184
+ background:radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.9), rgba(255,255,255,.28) 44%, transparent 74%);
185
+ transform:rotate(-24deg);
186
+ }
187
+ .hero-orb .core-glow::after{
188
+ content:"";position:absolute;inset:-6%;border-radius:50%;pointer-events:none;
189
+ background:radial-gradient(circle at 50% 50%, rgba(124,196,255,.3) 0%, rgba(124,196,255,.09) 46%, transparent 68%);
170
190
  animation:core-pulse 3.4s var(--ease) infinite;
171
191
  }
172
- .hero-orb .orbit-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--blue2);box-shadow:0 0 20px rgba(167,216,255,.9);left:calc(50% - 5px);top:calc(50% - 5px);transform:rotateX(76deg) translateX(clamp(170px,23vw,280px));animation:none}
192
+ .hero-orb .orbit-dot{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 38% 34%, #fff, var(--blue2) 55%, rgba(124,196,255,.5));box-shadow:0 0 22px rgba(167,216,255,.95), 0 0 44px rgba(124,196,255,.4);left:calc(50% - 4.5px);top:calc(50% - 4.5px);transform-style:preserve-3d;animation:orbit-travel 14s linear infinite}
173
193
  .home-title{
174
194
  position:relative;z-index:2;
175
195
  font-family:var(--display);font-weight:300;font-size:clamp(96px,17vw,230px);line-height:.9;letter-spacing:-.045em;
@@ -250,9 +270,9 @@ main{position:relative;z-index:2;padding-top:84px}
250
270
  .node{
251
271
  border:1px solid rgba(124,196,255,.42);border-radius:14px;background:rgba(21,32,49,.92);
252
272
  padding:14px 12px;text-align:center;
253
- transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;
273
+ transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
254
274
  }
255
- .node:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.28)}
275
+ .node:hover{transform:translate3d(0,-3px,0);box-shadow:0 14px 34px rgba(0,0,0,.32)}
256
276
  .node.hub{
257
277
  width:min(300px,100%);
258
278
  border-color:rgba(124,196,255,.5);
@@ -453,9 +473,9 @@ main{position:relative;z-index:2;padding-top:84px}
453
473
  border:1px solid var(--line);border-radius:14px;padding:16px;
454
474
  background:linear-gradient(180deg, rgba(124,196,255,.06), transparent 55%), rgba(17,25,37,.94);
455
475
  min-height:100px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;
456
- transition:border-color .3s,transform .3s var(--ease);
476
+ transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);
457
477
  }
458
- .chain:hover{border-color:rgba(124,196,255,.35);transform:translateY(-2px)}
478
+ .chain:hover{border-color:rgba(124,196,255,.45);transform:translate3d(0,-3px,0)}
459
479
  .chain-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
460
480
  .chain .nm{font-family:var(--display);font-size:20px;display:flex;align-items:center;gap:8px}
461
481
  .chain .nm img{width:18px;height:18px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.06)}
@@ -475,21 +495,25 @@ main{position:relative;z-index:2;padding-top:84px}
475
495
  display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;
476
496
  }
477
497
  .venues-head b{color:var(--blue);font-weight:500}
478
- .marquee{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
498
+ .marquee{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
499
+ .marquee:hover .track{animation-play-state:paused}
479
500
  .marquee + .marquee{border-top:1px solid rgba(124,196,255,.08)}
480
- .track{display:inline-flex;gap:26px;padding:12px 0;animation:scroll 48s linear infinite;will-change:transform}
481
- .marquee.rev .track{animation-direction:reverse;animation-duration:56s}
501
+ .track{display:inline-flex;gap:26px;padding:12px 0;animation:scroll 75s linear infinite;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}
502
+ .marquee.rev .track{animation-direction:reverse;animation-duration:88s}
482
503
  a.chip{text-decoration:none;color:inherit}
483
504
  .chip{
484
505
  display:inline-flex;align-items:center;gap:10px;
485
506
  font-size:15px;letter-spacing:-.015em;text-transform:none;color:var(--proto-color,var(--cool));
486
507
  padding:8px 13px;border:1px solid rgba(124,196,255,.1);border-radius:999px;background:rgba(11,16,24,.38);
487
508
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
509
+ transition:border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease);
488
510
  }
511
+ a.chip:hover{border-color:rgba(124,196,255,.3);background:rgba(21,32,49,.6);transform:translate3d(0,-2px,0)}
489
512
  .chip img{width:18px;height:18px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.06)}
490
- .chip.wm-chip{padding:10px 16px}
491
- .chip img.wm{width:auto;height:20px;max-width:150px;border-radius:0;object-fit:contain;background:none;opacity:1}
492
- .chip img.wm.tall{height:22px;max-width:26px}
513
+ .chip.wm-chip{padding:11px 18px}
514
+ .chip img.wm{width:auto;height:27px;max-width:180px;border-radius:0;object-fit:contain;background:none;opacity:1}
515
+ .chip img.wm.tall{height:28px;max-width:32px}
516
+ .chip img.wm.mono{filter:brightness(0) invert(1)}
493
517
 
494
518
  .chip .wordmark{font-family:var(--proto-font,var(--sans));font-weight:var(--proto-weight,750);font-style:var(--proto-style,normal);text-transform:var(--proto-transform,none);letter-spacing:var(--proto-track,-.025em);line-height:1.2}
495
519
  .proto-uniswap{--proto-font:"Inter",var(--sans);--proto-color:#ff4dcb;--proto-weight:850}
@@ -515,29 +539,8 @@ a.chip{text-decoration:none;color:inherit}
515
539
  .proto-across{--proto-font:"Manrope",var(--sans);--proto-color:#ff6b9b;--proto-weight:800}
516
540
  .proto-stargate{--proto-font:"Sora",var(--sans);--proto-color:#9ddcff;--proto-weight:700}
517
541
  .proto-magic-eden{--proto-font:"Archivo Black",var(--sans);--proto-color:#dfc7ff;--proto-weight:800;--proto-track:.01em}
518
- @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
542
+ @keyframes scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
519
543
 
520
- .wallet-grid{
521
- display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
522
- gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;
523
- margin-top:8px;
524
- }
525
- .wallet-card{
526
- background:rgba(17,25,37,.94);padding:clamp(22px,3vw,30px);
527
- display:flex;flex-direction:column;gap:12px;min-height:170px;
528
- transition:background .35s;
529
- }
530
- .wallet-card:hover{background:var(--panel-2)}
531
- .wallet-card .n{
532
- font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);
533
- }
534
- .wallet-card h3{
535
- font-family:var(--display);font-weight:400;font-size:clamp(22px,2.4vw,28px);letter-spacing:-.01em;
536
- }
537
- .wallet-card p{color:var(--cool);font-size:14px;line-height:1.55;max-width:32ch}
538
- @media (max-width:860px){
539
- .wallet-grid{grid-template-columns:1fr}
540
- }
541
544
 
542
545
  footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);padding:32px var(--pad) 40px;position:relative;z-index:2}
543
546
  .labs-link{font-family:"UnifrakturCook","Old English Text MT","Lucida Blackletter",serif;font-size:16px;letter-spacing:.04em;text-transform:none;color:var(--blue2)}
@@ -561,8 +564,8 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
561
564
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
562
565
  }
563
566
 
564
- .js .rv{opacity:0;transform:translateY(18px)}
565
- .js .rv.in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform .9s var(--ease)}
567
+ .js .rv{opacity:0;transform:translate3d(0,22px,0);will-change:opacity,transform}
568
+ .js .rv.in{opacity:1;transform:translate3d(0,0,0);transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
566
569
  .js .rv.done{transform:none;will-change:auto}
567
570
 
568
571
  @media (max-width:960px){
@@ -571,13 +574,68 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
571
574
  .nav-links .hide-sm{display:none}
572
575
  .route-strip{grid-template-columns:1fr}
573
576
  .chain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
574
- .orch{min-width:680px}
575
577
  .row.profiles{grid-template-columns:repeat(2,minmax(0,1fr))}
576
578
  }
579
+ @media (max-width:720px){
580
+ :root{--pad:clamp(16px,5vw,24px)}
581
+ main{padding-top:68px}
582
+ .nav{padding:12px var(--pad)}
583
+ .brand{font-size:22px}
584
+ .brand .orbital{width:24px;height:24px}
585
+ .home{min-height:auto;padding-top:22px;padding-bottom:58px}
586
+ .home::after{bottom:8px;height:48px}
587
+ .hero-stage{min-height:240px}
588
+ #orb-vid,.hero-orb{width:min(78vw,300px)}
589
+ .hero-orb .orbit-dot{animation-name:orbit-travel-mobile}
590
+ @keyframes orbit-travel-mobile{from{transform:rotateX(76deg) rotateZ(0deg) translateX(min(30vw,128px))}to{transform:rotateX(76deg) rotateZ(360deg) translateX(min(30vw,128px))}}
591
+ .home-title{font-size:clamp(64px,19vw,82px);letter-spacing:-.05em}
592
+ .hero-byline{margin-top:8px;font-size:9px;letter-spacing:.2em}
593
+ .home-kicker{font-size:9px;letter-spacing:.22em}
594
+ .home-copy p:not(.home-kicker){max-width:34ch;font-size:15px;line-height:1.58;margin-top:14px}
595
+ .home-actions{width:100%;margin-top:22px}
596
+ .enter-cta{width:100%;max-width:280px;min-height:48px;justify-content:center;padding:13px 18px}
597
+ .section{padding:clamp(44px,8vh,72px) var(--pad) 0}
598
+ .section-label{letter-spacing:.22em}
599
+ .section-title{font-size:clamp(30px,11vw,42px);max-width:12ch}
600
+ .section-lede{font-size:15px;line-height:1.6;margin-bottom:24px}
601
+ .graph-top{justify-content:flex-start;padding:12px;font-size:9px;line-height:1.55;letter-spacing:.12em}
602
+ .evolve-rail{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:12px;-webkit-overflow-scrolling:touch}
603
+ .evolve-pill{white-space:nowrap;flex:0 0 auto}
604
+ .graph-canvas{overflow:visible;padding:22px 12px 24px}
605
+ .orch{width:100%;min-width:0}
606
+ .row{gap:10px}
607
+ .row>.node[style]{width:100%!important;max-width:260px}
608
+ .node.hub{width:100%;max-width:260px}
609
+ .row.profiles{grid-template-columns:1fr}
610
+ .node.route,.node.add,.node.builder-sink{min-height:auto}
611
+ .node.route .chains{line-height:1.55}
612
+ .wires{height:34px;overflow:hidden}
613
+ .wires.funnel{height:42px}
614
+ .builder-row{margin-top:4px}
615
+ .route-card{min-height:auto;padding:20px 16px;background:rgba(17,25,37,.94)}
616
+ .route-card h3{font-size:23px;line-height:1.05;flex-wrap:wrap}
617
+ .why-band{padding:20px 16px 22px}
618
+ .hl-surface{padding:16px}
619
+ .chain .id{white-space:normal;text-align:right}
620
+ .venues-head{font-size:9px;letter-spacing:.12em;line-height:1.5}
621
+ .marquee{overflow-x:auto;overflow-y:hidden;mask-image:none;-webkit-mask-image:none;scrollbar-width:none;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
622
+ .marquee::-webkit-scrollbar{display:none}
623
+ .marquee .track,.marquee.rev .track{min-width:max-content;animation:none;transform:none;will-change:auto}
624
+ .track{gap:16px}
625
+ .chip{font-size:14px;padding:8px 11px}
626
+ .chip.wm-chip{padding:10px 14px}
627
+ .chip img.wm{height:24px;max-width:132px}
628
+ footer{padding:28px var(--pad) 34px}
629
+ .foot-row,.foot-meta{justify-content:center;text-align:center}
630
+ .foot-links{flex-wrap:wrap;justify-content:center;gap:12px 16px}
631
+ }
577
632
  @media (max-width:560px){
578
- .home{min-height:auto;padding-top:36px}.hero-stage{min-height:280px}.hero-orb{width:min(84vw,340px)}
579
633
  .chain-grid{grid-template-columns:1fr}
580
- .row.profiles{grid-template-columns:1fr}
634
+ }
635
+ @media (max-width:380px){
636
+ .home-title{font-size:62px}
637
+ .hero-stage{min-height:220px}
638
+ .section-title{font-size:30px}
581
639
  }
582
640
  @media (prefers-reduced-motion:reduce){
583
641
  html{scroll-behavior:auto}
@@ -623,7 +681,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
623
681
  oracle</a>
624
682
  <nav class="nav-links" aria-label="Primary">
625
683
  <a class="hide-sm" href="#orchestration">How it works</a>
626
- <a class="hide-sm" href="#wallets">Wallets</a>
627
684
  <a class="hide-sm" href="#chains">Chains</a>
628
685
  </nav>
629
686
  </header>
@@ -665,7 +722,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
665
722
  <section class="section" id="orchestration">
666
723
  <p class="section-label rv">How it works</p>
667
724
  <h2 class="section-title rv">Multi-profile. <em>Customizable.</em></h2>
668
- <p class="section-lede rv">Not one bot. A mesh with profile routing via Hermes: Input / Command hits the oracle control plane, then fans out across venue profiles, multi-chain EVM, Bitcoin, Solana, and a protocol builder. Any MCP harness can drive a single agent. The public plane is prepare-only. Your wallet signs.</p>
725
+ <p class="section-lede rv">Not one bot. A mesh with profile routing via Hermes: Input / Command hits the oracle control plane, then fans out across venue profiles, multi-chain EVM, Bitcoin, Solana, and a protocol builder. Any MCP harness can drive a single agent.</p>
669
726
 
670
727
  <div class="graph-shell rv">
671
728
  <div class="graph-top">
@@ -743,7 +800,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
743
800
  <div class="node route p-rh">
744
801
  <div class="tag">profile</div>
745
802
  <div class="name">robinhood agent</div>
746
- <div class="sub">markets · nfts · names</div>
803
+ <div class="sub">markets · memecoins · nfts</div>
747
804
  <div class="chains"><span class="ch">Robinhood Chain <img src="https://icons.llamao.fi/icons/chains/rsz_robinhood?w=24&h=24" alt="" loading="lazy"></span></div>
748
805
  </div>
749
806
  <div class="node route p-sol">
@@ -762,13 +819,13 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
762
819
  <div class="tag">profile</div>
763
820
  <div class="name">evm / bridge agent</div>
764
821
  <div class="sub">swaps · bridges · defi</div>
765
- <div class="chains"><span class="ch">ETH <img src="https://icons.llamao.fi/icons/chains/rsz_ethereum?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Base <img src="https://icons.llamao.fi/icons/chains/rsz_base?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Arb <img src="https://icons.llamao.fi/icons/chains/rsz_arbitrum?w=24&h=24" alt="" loading="lazy"></span><span class="ch">OP <img src="https://icons.llamao.fi/icons/chains/rsz_optimism?w=24&h=24" alt="" loading="lazy"></span><span class="ch">BNB <img src="https://icons.llamao.fi/icons/chains/rsz_binance?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Polygon <img src="https://icons.llamao.fi/icons/chains/rsz_polygon?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Avax <img src="https://icons.llamao.fi/icons/chains/rsz_avalanche?w=24&h=24" alt="" loading="lazy"></span></div>
822
+ <div class="chains"><span class="ch">ETH <img src="https://icons.llamao.fi/icons/chains/rsz_ethereum?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Base <img src="https://icons.llamao.fi/icons/chains/rsz_base?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Arb <img src="https://icons.llamao.fi/icons/chains/rsz_arbitrum?w=24&h=24" alt="" loading="lazy"></span><span class="ch">OP <img src="https://icons.llamao.fi/icons/chains/rsz_optimism?w=24&h=24" alt="" loading="lazy"></span><span class="ch">BNB <img src="https://icons.llamao.fi/icons/chains/rsz_binance?w=24&h=24" alt="" loading="lazy"></span><span class="ch">Avax <img src="https://icons.llamao.fi/icons/chains/rsz_avalanche?w=24&h=24" alt="" loading="lazy"></span></div>
766
823
  </div>
767
824
  <div class="node route p-stable">
768
825
  <div class="tag">profile</div>
769
826
  <div class="name">stable agent</div>
770
- <div class="sub">launches · venue ops</div>
771
- <div class="chains"><span class="ch">Stable 988 <img src="https://icons.llamao.fi/icons/chains/rsz_stable?w=24&h=24" alt="" loading="lazy"></span></div>
827
+ <div class="sub">launches · memecoins</div>
828
+ <div class="chains"><span class="ch">Stable <img src="https://icons.llamao.fi/icons/chains/rsz_stable?w=24&h=24" alt="" loading="lazy"></span></div>
772
829
  </div>
773
830
  <div class="node add">
774
831
  <div class="tag">open slot</div>
@@ -827,9 +884,10 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
827
884
  <article class="route-card p-rh">
828
885
  <div class="where">robinhood agent →</div>
829
886
  <h3>Robinhood <img src="https://icons.llamao.fi/icons/chains/rsz_robinhood?w=40&h=40" alt="Robinhood Chain" loading="lazy"></h3>
830
- <p>RH Chain markets, NFTs, names, token scans, and chain-local routing.</p>
887
+ <p>RH Chain markets, memecoins, NFTs, names, token scans, and chain-local routing.</p>
831
888
  <div class="chips">
832
889
  <span class="chip-s">markets</span>
890
+ <span class="chip-s">memecoins</span>
833
891
  <span class="chip-s">NFTs</span>
834
892
  <span class="chip-s">rh chain</span>
835
893
  </div>
@@ -857,7 +915,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
857
915
  <article class="route-card p-evm">
858
916
  <div class="where">evm / bridge agent →</div>
859
917
  <h3>Multi-chain EVM <img src="https://icons.llamao.fi/icons/chains/rsz_ethereum?w=40&h=40" alt="Ethereum" loading="lazy"></h3>
860
- <p>DEX routes, LI.FI and Relay bridges, DeFi across ETH and L2s. Bounded evm-swap and evm-bridge lanes, prepare-only until you sign.</p>
918
+ <p>DEX routes, LI.FI and Relay bridges, DeFi across ETH and L2s. Bounded evm-swap and evm-bridge lanes.</p>
861
919
  <div class="chips">
862
920
  <span class="chip-s">evm-swap</span>
863
921
  <span class="chip-s">evm-bridge</span>
@@ -877,9 +935,11 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
877
935
  <article class="route-card p-stable">
878
936
  <div class="where">stable agent →</div>
879
937
  <h3>Stable <img src="https://icons.llamao.fi/icons/chains/rsz_stable?w=40&h=40" alt="Stable" loading="lazy"></h3>
880
- <p>Stable mainnet launch radar and venue ops, scanned straight from the chain's own logs.</p>
938
+ <p>Stable mainnet launch radar, memecoins, USDT0 gas, and venue ops, scanned straight from the chain's own logs.</p>
881
939
  <div class="chips">
882
940
  <span class="chip-s">launches</span>
941
+ <span class="chip-s">memecoins</span>
942
+ <span class="chip-s">USDT0 gas</span>
883
943
  <span class="chip-s">Stable</span>
884
944
  </div>
885
945
  </article>
@@ -907,7 +967,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
907
967
 
908
968
  <div class="why-band">
909
969
  <p>The model proposes. Policy bounds. You own signatures. Multi-profile desks, not one omniscient chatbot. Vaults, perps, bridges, and protocol scaffolds, not just swaps. Empty allowlists refuse everything until you configure them.</p>
910
- <span>claims without receipts don't count</span>
911
970
  </div>
912
971
  </div>
913
972
 
@@ -924,7 +983,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
924
983
  </article>
925
984
  <article class="moat-card">
926
985
  <div class="n">receipts</div>
927
- <h3>Claims without receipts don't count</h3>
986
+ <h3>Every action ends in a receipt</h3>
928
987
  <p>Prepared actions ship as stamped, hash-bound envelopes. Money claims end in tx hash, receipt status, balance delta, and allowance state. No “looks filled.”</p>
929
988
  </article>
930
989
  <article class="moat-card">
@@ -945,37 +1004,13 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
945
1004
  </div>
946
1005
  </section>
947
1006
 
948
- <section class="section" id="wallets">
949
- <p class="section-label rv">Wallets</p>
950
- <h2 class="section-title rv">Your wallets. <em>Your limits.</em></h2>
951
- <p class="section-lede rv">Use one wallet everywhere, or separate wallets per chain. Permissions are per wallet. Change them, tighten them, or revoke them anytime.</p>
952
-
953
- <div class="wallet-grid rv">
954
- <article class="wallet-card">
955
- <div class="n">setup</div>
956
- <h3>Single or multi</h3>
957
- <p>One wallet across chains, or a dedicated wallet per chain. Same desk either way.</p>
958
- </article>
959
- <article class="wallet-card">
960
- <div class="n">control</div>
961
- <h3>Limit per wallet</h3>
962
- <p>Caps, allowed actions, and scopes sit on each wallet, not a global free pass.</p>
963
- </article>
964
- <article class="wallet-card">
965
- <div class="n">lifecycle</div>
966
- <h3>Change · revoke</h3>
967
- <p>Edit permissions when risk changes. Revoke a wallet's access without killing the whole account.</p>
968
- </article>
969
- </div>
970
- </section>
971
-
972
1007
  <section class="section" id="chains">
973
1008
  <p class="section-label rv">Chains</p>
974
1009
  <h2 class="section-title rv">Where you can <em>operate.</em></h2>
975
1010
  <p class="section-lede rv">Live coverage grows with the profile mesh. Each chain maps to an agent, and new agents can join.</p>
976
1011
  <div class="chain-grid" id="chain-grid"></div>
977
1012
  <div class="hl-surface rv">
978
- <div class="venues-head"><span>hyperliquid // what oracle actually does</span><span><b>prepare-only</b> · your wallet signs</span></div>
1013
+ <div class="venues-head"><span>hyperliquid // what oracle actually does</span></div>
979
1014
  <div class="hl-grid">
980
1015
  <article><h3>Perps</h3><p>Asset info, order + bracket prepare, cancel, leverage and isolated-margin updates. Tick and lot sizing enforced to 5 sig figs.</p></article>
981
1016
  <article><h3>Spot &amp; markets</h3><p>Spot meta, mids, L2 book, candles, market and coin datapoints, leaderboards.</p></article>
@@ -986,7 +1021,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
986
1021
  </div>
987
1022
  </div>
988
1023
  <div class="venues rv">
989
- <div class="venues-head"><span>protocols // venues</span><span><b>routed by name</b> · quotes ranked · prepare-only</span></div>
1024
+ <div class="venues-head"><span>protocols // venues</span><span><b>routed by name</b> · quotes ranked</span></div>
990
1025
  <div class="marquee"><div class="track" id="proto-track-a"></div></div>
991
1026
  <div class="marquee rev"><div class="track" id="proto-track-b"></div></div>
992
1027
  </div>
@@ -1039,7 +1074,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1039
1074
  { name: "Base", id: "8453", logo: "chains/rsz_base", note: "evm / bridge agent", badge: "live" },
1040
1075
  { name: "Arbitrum", id: "42161", logo: "chains/rsz_arbitrum", note: "evm / bridge agent", badge: "live" },
1041
1076
  { name: "Optimism", id: "10", logo: "chains/rsz_optimism", note: "evm / bridge agent", badge: "live" },
1042
- { name: "Polygon", id: "137", logo: "chains/rsz_polygon", note: "evm / bridge agent", badge: "live" },
1043
1077
  { name: "BNB Chain", id: "56", logo: "chains/rsz_binance", note: "evm / bridge agent", badge: "live" },
1044
1078
  { name: "Avalanche", id: "43114", logo: "chains/rsz_avalanche", note: "evm / bridge agent", badge: "live" },
1045
1079
  { name: "Hyperliquid", id: "999", logo: "chains/rsz_hyperliquid", note: "hyperliquid agent", badge: "live" },
@@ -1061,9 +1095,9 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1061
1095
  { n: "Hyperliquid", wm: "hyperliquid.svg", u: "https://hyperliquid.xyz" },
1062
1096
  { n: "Outcome", wm: "outcome.svg", u: "https://outcome.xyz" },
1063
1097
  { n: "XYZ", wm: "xyz.svg", u: "https://trade.xyz" },
1064
- { n: "Markets By Kinetiq", wm: "kinetiq.svg", tall: 1, u: "https://kinetiq.xyz" },
1098
+ { n: "Markets", wm: "markets.svg", tall: 1, u: "https://markets.xyz" },
1065
1099
  { n: "HyENA", wm: "hyena.svg", u: "https://hyena.trade" },
1066
- { n: "Paragon", wm: "paragon.svg", tall: 1, u: "https://paragon.trade" },
1100
+ { n: "Paragon", wm: "paragon.svg", tall: 1, mono: 1, u: "https://paragon.trade" },
1067
1101
  { n: "HyperSwap", wm: "hyperswap.svg", u: "https://hyperswap.exchange" },
1068
1102
  { n: "Uniswap", wm: "uniswap.svg", u: "https://uniswap.org" },
1069
1103
  { n: "Polymarket", wm: "polymarket.png", u: "https://polymarket.com" },
@@ -1083,20 +1117,39 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1083
1117
  { n: "Relay", wm: "relay.svg", u: "https://relay.link" },
1084
1118
  { n: "Velora", wm: "paraswap.svg", u: "https://velora.xyz" },
1085
1119
  { n: "Odos", wm: "odos.svg", u: "https://odos.xyz" },
1120
+ { n: "0x", wm: "zerox-icon.webp", tall: 1, u: "https://0x.org" },
1121
+ { n: "Hop", wm: "hop-icon.webp", tall: 1, u: "https://hop.exchange" },
1122
+ { n: "Satflow", wm: "satflow-icon.png", tall: 1, u: "https://satflow.com" },
1086
1123
  { n: "CoW Swap", wm: "cowswap.svg", u: "https://cow.fi" },
1087
1124
  { n: "1inch", wm: "oneinch.svg", u: "https://1inch.io" },
1088
1125
  { n: "Jupiter", wm: "jupiter.svg", u: "https://jup.ag" },
1089
- { n: "OpenSea", wm: "opensea.svg", u: "https://opensea.io" },
1090
- { n: "Across", wm: "across.svg", u: "https://across.to" },
1091
- { n: "Stargate", wm: "stargate.svg", u: "https://stargate.finance" },
1126
+ { n: "OpenSea", wm: "opensea-icon.svg", tall: 1, u: "https://opensea.io" },
1127
+ { n: "Across", wm: "across-icon.webp", tall: 1, u: "https://across.to" },
1128
+ { n: "Stargate", wm: "stargate-icon.webp", tall: 1, u: "https://stargate.finance" },
1092
1129
  { n: "Magic Eden", wm: "magic-eden.svg", u: "https://magiceden.io" }
1093
1130
  ];
1094
1131
 
1132
+ // Equalize optical weight: constant target area, clamped, then width-capped.
1133
+ function normalizeMark(img) {
1134
+ var ar = img.naturalWidth / img.naturalHeight;
1135
+ if (!isFinite(ar) || ar <= 0) return;
1136
+ var h = Math.sqrt(2600 / ar);
1137
+ h = Math.max(22, Math.min(34, h));
1138
+ if (h * ar > 170) h = 170 / ar;
1139
+ img.style.height = h.toFixed(1) + "px";
1140
+ }
1141
+ function wireMarks(root) {
1142
+ root.querySelectorAll("img.wm:not(.tall)").forEach(function (img) {
1143
+ if (img.complete && img.naturalWidth) normalizeMark(img);
1144
+ else img.addEventListener("load", function () { normalizeMark(img); }, { once: true });
1145
+ });
1146
+ }
1147
+
1095
1148
  function chipRow(list) {
1096
1149
  var seq = list.concat(list);
1097
1150
  return seq.map(function (x) {
1098
1151
  var body = x.wm
1099
- ? '<img class="' + (x.tall ? 'wm tall' : 'wm') + '" src="' + WM + x.wm + '" alt="' + x.n + '" decoding="async">' +
1152
+ ? '<img class="' + (x.tall ? 'wm tall' : 'wm') + (x.mono ? ' mono' : '') + '" src="' + WM + x.wm + '" alt="' + x.n + '" loading="lazy" decoding="async" fetchpriority="low">' +
1100
1153
  (x.tall ? '<span class="wordmark">' + x.n + '</span>' : '')
1101
1154
  : '<span class="wordmark">' + x.n + '</span>';
1102
1155
  return '<a class="chip wm-chip" href="' + x.u + '" target="_blank" rel="noopener noreferrer" aria-label="' + x.n + '">' + body + '</a>';
@@ -1110,8 +1163,8 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1110
1163
  { n: "Hermes Agent", wm: "hermes.png", tall: 1, u: "https://hermes.nousresearch.com" },
1111
1164
  { n: "Claude", wm: "claude.svg", u: "https://claude.ai" },
1112
1165
  { n: "Grok", wm: "grok.svg", u: "https://grok.com" },
1113
- { n: "Codex", wm: "codex.svg", u: "https://openai.com/codex" },
1114
- { n: "Gemini", wm: "gemini.svg", u: "https://gemini.google.com" },
1166
+ { n: "Codex", wm: "codex-icon.svg", tall: 1, u: "https://openai.com/codex" },
1167
+ { n: "Gemini", wm: "gemini-icon.svg", tall: 1, u: "https://gemini.google.com" },
1115
1168
  { n: "OpenClaw", wm: "openclaw.svg", tall: 1, u: "https://openclaw.ai" },
1116
1169
  { n: "Perplexity", wm: "perplexity.svg", u: "https://perplexity.ai" },
1117
1170
  { n: "Manus", wm: "manus.svg", u: "https://manus.im" },
@@ -1123,9 +1176,13 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
1123
1176
  ];
1124
1177
  document.getElementById("llm-track").innerHTML = LLMS.concat(LLMS).map(function (x) {
1125
1178
  var cls = x.tall ? "wm tall" : "wm";
1126
- return '<a class="chip wm-chip" href="' + x.u + '" target="_blank" rel="noopener noreferrer" aria-label="' + x.n + '"><img class="' + cls + '" src="' + LM + x.wm + '" alt="' + x.n + '" decoding="async">' + (x.tall ? '<span class="wordmark">' + x.n + '</span>' : '') + '</a>';
1179
+ return '<a class="chip wm-chip" href="' + x.u + '" target="_blank" rel="noopener noreferrer" aria-label="' + x.n + '"><img class="' + cls + '" src="' + LM + x.wm + '" alt="' + x.n + '" loading="lazy" decoding="async" fetchpriority="low">' + (x.tall ? '<span class="wordmark">' + x.n + '</span>' : '') + '</a>';
1127
1180
  }).join("");
1128
1181
 
1182
+ wireMarks(document.getElementById("proto-track-a"));
1183
+ wireMarks(document.getElementById("proto-track-b"));
1184
+ wireMarks(document.getElementById("llm-track"));
1185
+
1129
1186
  var loader = document.getElementById("loader");
1130
1187
  var fill = document.getElementById("loader-fill");
1131
1188
  requestAnimationFrame(function () { fill.style.width = "100%"; });
@@ -39,6 +39,7 @@ const STALE_CLAIMS = [
39
39
  { re: /ORACLE_SIGNER_SURFACES=hl,poly\s*$/i, why: "quickstart freezes ORACLE_SIGNER_SURFACES at hl,poly" },
40
40
  { re: /ORACLE_AUTONOMOUS_TRADING=1.*(?:or\s+run\s+the\s+signer\s+daemon|same(?:-tier)?).*oracle-signer/i, why: "frames direct exec and oracle-signer as equivalent agent paths" },
41
41
  { re: /(?:or\s+run\s+the\s+signer\s+daemon|same(?:-tier)?).*oracle-signer.*ORACLE_AUTONOMOUS_TRADING=1/i, why: "frames direct exec and oracle-signer as equivalent agent paths" },
42
+ { re: /ORACLE_AUTONOMOUS=1/i, why: "names the dead autonomous env var instead of ORACLE_AUTONOMOUS_TRADING" },
42
43
  ];
43
44
 
44
45
  // Version pins that go stale the moment a release ships. The audit found the
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: setup
3
- description: "Use when the user types /setup or wants to connect telegram, discord, slack, or other hermes messaging platforms to oracle."
3
+ description: "Use when the user types /setup or wants to connect telegram, discord, slack, or another messaging platform to oracle."
4
4
  version: 1.0.0
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
8
8
  # /setup
9
9
 
10
- Configure hermes messaging for the oracle profile. Secrets stay local.
10
+ Configure messaging for the oracle profile. Secrets stay local.
11
11
 
12
12
  ```bash
13
13
  # menu + status (never prints tokens)
package/skins/oracle.yaml CHANGED
@@ -1,52 +1,56 @@
1
1
  name: oracle
2
- description: plain lowercase ascii oracle
2
+ description: filled lowercase oracle in the classic boxed layout
3
3
  colors:
4
- banner_border: "#30363d"
5
- banner_title: "#e6edf3"
6
- banner_accent: "#e6edf3"
7
- banner_dim: "#7d8590"
8
- banner_text: "#b1bac4"
9
- ui_accent: "#e6edf3"
10
- ui_label: "#b1bac4"
11
- ui_ok: "#7ee787"
12
- ui_error: "#ff7b72"
13
- ui_warn: "#d29922"
14
- prompt: "#e6edf3"
15
- input_rule: "#30363d"
16
- response_border: "#30363d"
17
- status_bar_bg: "#0d1117"
18
- status_bar_text: "#b1bac4"
19
- status_bar_strong: "#e6edf3"
20
- status_bar_dim: "#7d8590"
21
- status_bar_good: "#7ee787"
22
- status_bar_warn: "#d29922"
23
- status_bar_bad: "#ff7b72"
24
- status_bar_critical: "#ff7b72"
25
- session_label: "#b1bac4"
26
- session_border: "#30363d"
27
- voice_status_bg: "#0d1117"
28
- selection_bg: "#21262d"
29
- completion_menu_bg: "#0d1117"
30
- completion_menu_current_bg: "#21262d"
31
- completion_menu_meta_bg: "#0d1117"
32
- completion_menu_meta_current_bg: "#21262d"
4
+ banner_border: "#455867"
5
+ banner_title: "#B8F0FF"
6
+ banner_accent: "#91C2D7"
7
+ banner_dim: "#60717F"
8
+ banner_text: "#EAF2F8"
9
+ ui_accent: "#B8F0FF"
10
+ ui_label: "#A5D9EB"
11
+ ui_ok: "#7EE7B5"
12
+ ui_error: "#FF7B7B"
13
+ ui_warn: "#F0C674"
14
+ prompt: "#B8F0FF"
15
+ input_rule: "#455867"
16
+ response_border: "#91C2D7"
17
+ status_bar_bg: "#11161B"
18
+ status_bar_text: "#91A2B1"
19
+ status_bar_strong: "#EAF2F8"
20
+ status_bar_dim: "#60717F"
21
+ status_bar_good: "#7EE7B5"
22
+ status_bar_warn: "#F0C674"
23
+ status_bar_bad: "#FF9B71"
24
+ status_bar_critical: "#FF7B7B"
25
+ session_label: "#B8F0FF"
26
+ session_border: "#455867"
27
+ voice_status_bg: "#11161B"
28
+ selection_bg: "#23313B"
29
+ completion_menu_bg: "#11161B"
30
+ completion_menu_current_bg: "#23313B"
31
+ completion_menu_meta_bg: "#11161B"
32
+ completion_menu_meta_current_bg: "#23313B"
33
33
  spinner:
34
- waiting_faces: [".", "..", "..."]
35
- thinking_faces: [".", "..", "..."]
36
- thinking_verbs: ["working", "reading", "checking", "routing"]
34
+ waiting_faces: ["·", "··", "···"]
35
+ thinking_faces: ["", "", "", "◈"]
36
+ thinking_verbs: ["thinking", "reading", "checking", "routing"]
37
37
  wings: [["", ""]]
38
38
  branding:
39
39
  agent_name: "oracle"
40
40
  welcome: ""
41
41
  goodbye: "exit"
42
- response_label: "oracle"
43
- prompt_symbol: ">"
42
+ response_label: " oracle "
43
+ prompt_symbol: ""
44
44
  help_header: "oracle"
45
- tool_prefix: ">"
45
+ tool_prefix: ""
46
46
  banner_logo: |
47
- [#e6edf3] _[/]
48
- [#e6edf3] ___ _ _ __ _ __| |___[/]
49
- [#e6edf3]/ _ \ '_/ _` / _| / -_)[/]
50
- [#e6edf3]\___/_| \__,_\__|_\___|[/]
47
+ [bold #B8F0FF] ████[/]
48
+ [bold #B8F0FF] ░░███[/]
49
+ [bold #ACDEEF] ██████ ████████ ██████ ██████ ░███ ██████[/]
50
+ [bold #A5D9EB] ███░░███░░███░░███ ░░░░░███ ███░░███ ░███ ███░░███[/]
51
+ [bold #9FCBDD]░███ ░███ ░███ ░░░ ███████ ░███ ░░░ ░███ ░███████[/]
52
+ [bold #9FCBDD]░███ ░███ ░███ ███░░███ ░███ ███ ░███ ░███░░░[/]
53
+ [bold #ACDEEF]░░██████ █████ ░░████████░░██████ █████░░██████[/]
54
+ [bold #B8F0FF] ░░░░░░ ░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░ ░░░░░░[/]
51
55
  banner_hero: |
52
- [#e6edf3]oracle[/]
56
+ [bold #EAF2F8]THE FUTURE IS AGENTIC[/]