@oracle-agent/oracle 0.10.0 → 0.12.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.
- package/LICENSE +115 -201
- package/README.md +82 -91
- package/SECURITY.md +37 -12
- package/SETUP.md +207 -272
- package/dist/action-receipts.mjs +1 -0
- package/dist/action-semantics.mjs +1 -0
- package/dist/address-book.mjs +2 -0
- package/dist/bin/desk-server.mjs +14 -0
- package/dist/bin/oracle-data-mcp.mjs +8 -0
- package/dist/bin/oracle-init.mjs +24 -0
- package/dist/bin/oracle-public-server.mjs +5 -0
- package/dist/bin/oracle-route.mjs +22 -0
- package/dist/bin/oracle-scan.mjs +18 -0
- package/dist/bin/oracle-upgrade.mjs +21 -0
- package/dist/bin/oracle.mjs +68 -0
- package/dist/chains.mjs +1 -0
- package/dist/cli/commands/auth.mjs +16 -0
- package/dist/cli/commands/bootstrap.mjs +18 -0
- package/dist/cli/commands/chain.mjs +21 -0
- package/dist/cli/commands/chat.mjs +35 -0
- package/dist/cli/commands/credential.mjs +1 -0
- package/dist/cli/commands/data-mcp.mjs +2 -0
- package/dist/cli/commands/data.mjs +12 -0
- package/dist/cli/commands/doctor.mjs +5 -0
- package/dist/cli/commands/gate.mjs +13 -0
- package/dist/cli/commands/help.mjs +1 -0
- package/dist/cli/commands/init.mjs +3 -0
- package/dist/cli/commands/mcp.mjs +33 -0
- package/dist/cli/commands/model.mjs +44 -0
- package/dist/cli/commands/prepare.mjs +2 -0
- package/dist/cli/commands/public.mjs +3 -0
- package/dist/cli/commands/route.mjs +2 -0
- package/dist/cli/commands/runner.mjs +1 -0
- package/dist/cli/commands/scan.mjs +2 -0
- package/dist/cli/commands/setup.mjs +34 -0
- package/dist/cli/commands/sign.mjs +4 -0
- package/dist/cli/commands/signer.mjs +1 -0
- package/dist/cli/commands/upgrade.mjs +2 -0
- package/dist/cli/commands/vault.mjs +1 -0
- package/dist/cli/commands/version.mjs +2 -0
- package/dist/data/desk-data.mjs +12 -0
- package/dist/index.mjs +17 -0
- package/dist/nft-gas-war-guard.mjs +1 -0
- package/dist/onboarding/harness-configs.mjs +4 -0
- package/dist/portfolio-risk.mjs +1 -0
- package/dist/prepare-envelope.mjs +1 -0
- package/dist/public-control/policy-schema.mjs +1 -0
- package/dist/router/index.mjs +2 -0
- package/dist/scanner/index.mjs +4 -0
- package/dist/signals/index.mjs +1 -0
- package/dist/watch-preferences.mjs +1 -0
- package/package.json +27 -65
- package/public/oracle-splash/assets/cli-chain-hyperliquid.jpg +0 -0
- package/public/oracle-splash/brand/aave.webp +0 -0
- package/public/oracle-splash/brand/aavev2.webp +0 -0
- package/public/oracle-splash/brand/aborean.webp +0 -0
- package/public/oracle-splash/brand/across.webp +0 -0
- package/public/oracle-splash/brand/aerodrome.webp +0 -0
- package/public/oracle-splash/brand/afi.webp +0 -0
- package/public/oracle-splash/brand/arcus.webp +0 -0
- package/public/oracle-splash/brand/aster.webp +0 -0
- package/public/oracle-splash/brand/avant.webp +0 -0
- package/public/oracle-splash/brand/balancer.webp +0 -0
- package/public/oracle-splash/brand/beefy.webp +0 -0
- package/public/oracle-splash/brand/benqi.webp +0 -0
- package/public/oracle-splash/brand/bestinslot.ico +0 -0
- package/public/oracle-splash/brand/bitfi.webp +0 -0
- package/public/oracle-splash/brand/bonkswap.webp +0 -0
- package/public/oracle-splash/brand/bouncebit.webp +0 -0
- package/public/oracle-splash/brand/camelot.webp +0 -0
- package/public/oracle-splash/brand/compound.webp +0 -0
- package/public/oracle-splash/brand/concrete.webp +0 -0
- package/public/oracle-splash/brand/cow.webp +0 -0
- package/public/oracle-splash/brand/curve.webp +0 -0
- package/public/oracle-splash/brand/derive.webp +0 -0
- package/public/oracle-splash/brand/dolomite.webp +0 -0
- package/public/oracle-splash/brand/eigenlayer.webp +0 -0
- package/public/oracle-splash/brand/ekubo.webp +0 -0
- package/public/oracle-splash/brand/ethena.webp +0 -0
- package/public/oracle-splash/brand/etherfi.webp +0 -0
- package/public/oracle-splash/brand/etherfiborrow.webp +0 -0
- package/public/oracle-splash/brand/felix.webp +0 -0
- package/public/oracle-splash/brand/fluid.webp +0 -0
- package/public/oracle-splash/brand/fluxbeam.webp +0 -0
- package/public/oracle-splash/brand/folks.webp +0 -0
- package/public/oracle-splash/brand/fortyacres.webp +0 -0
- package/public/oracle-splash/brand/gainsnetwork.webp +0 -0
- package/public/oracle-splash/brand/gassss.webp +0 -0
- package/public/oracle-splash/brand/gmx.webp +0 -0
- package/public/oracle-splash/brand/harmonix.webp +0 -0
- package/public/oracle-splash/brand/hlorderbook.webp +0 -0
- package/public/oracle-splash/brand/hlp.webp +0 -0
- package/public/oracle-splash/brand/hop.webp +0 -0
- package/public/oracle-splash/brand/hyperbeat.webp +0 -0
- package/public/oracle-splash/brand/hyperlend.webp +0 -0
- package/public/oracle-splash/brand/hyperliquid.webp +0 -0
- package/public/oracle-splash/brand/hyperliquidhpl.webp +0 -0
- package/public/oracle-splash/brand/hyperliquidspot.webp +0 -0
- package/public/oracle-splash/brand/hyperswap.webp +0 -0
- package/public/oracle-splash/brand/hypha.webp +0 -0
- package/public/oracle-splash/brand/joedex.webp +0 -0
- package/public/oracle-splash/brand/jupiter.webp +0 -0
- package/public/oracle-splash/brand/kelp.webp +0 -0
- package/public/oracle-splash/brand/kinetiq.webp +0 -0
- package/public/oracle-splash/brand/kmhype.webp +0 -0
- package/public/oracle-splash/brand/kona.webp +0 -0
- package/public/oracle-splash/brand/konalend.webp +0 -0
- package/public/oracle-splash/brand/lfj.webp +0 -0
- package/public/oracle-splash/brand/lido.webp +0 -0
- package/public/oracle-splash/brand/lifi.webp +0 -0
- package/public/oracle-splash/brand/lighter.webp +0 -0
- package/public/oracle-splash/brand/lista.webp +0 -0
- package/public/oracle-splash/brand/loopedhype.webp +0 -0
- package/public/oracle-splash/brand/lorenzo.webp +0 -0
- package/public/oracle-splash/brand/magic-eden.webp +0 -0
- package/public/oracle-splash/brand/magiceden.webp +0 -0
- package/public/oracle-splash/brand/mempool.png +0 -0
- package/public/oracle-splash/brand/meteora.webp +0 -0
- package/public/oracle-splash/brand/morpho.webp +0 -0
- package/public/oracle-splash/brand/myriad.webp +0 -0
- package/public/oracle-splash/brand/noxa.webp +0 -0
- package/public/oracle-splash/brand/odos.webp +0 -0
- package/public/oracle-splash/brand/oneinch.webp +0 -0
- package/public/oracle-splash/brand/openbook.webp +0 -0
- package/public/oracle-splash/brand/opensea.webp +0 -0
- package/public/oracle-splash/brand/orca.webp +0 -0
- package/public/oracle-splash/brand/ordinals.png +0 -0
- package/public/oracle-splash/brand/ostium.webp +0 -0
- package/public/oracle-splash/brand/pancakeswap.webp +0 -0
- package/public/oracle-splash/brand/pendle.webp +0 -0
- package/public/oracle-splash/brand/perena.webp +0 -0
- package/public/oracle-splash/brand/pharaoh.webp +0 -0
- package/public/oracle-splash/brand/phoenix.webp +0 -0
- package/public/oracle-splash/brand/polymarket.webp +0 -0
- package/public/oracle-splash/brand/polynomial.webp +0 -0
- package/public/oracle-splash/brand/projectx.webp +0 -0
- package/public/oracle-splash/brand/pumpfun.webp +0 -0
- package/public/oracle-splash/brand/quickswap.webp +0 -0
- package/public/oracle-splash/brand/rain.webp +0 -0
- package/public/oracle-splash/brand/raydium.webp +0 -0
- package/public/oracle-splash/brand/relay.webp +0 -0
- package/public/oracle-splash/brand/rocketpool.webp +0 -0
- package/public/oracle-splash/brand/saber.webp +0 -0
- package/public/oracle-splash/brand/sakuraswap.webp +0 -0
- package/public/oracle-splash/brand/sanctum.webp +0 -0
- package/public/oracle-splash/brand/satflow.png +0 -0
- package/public/oracle-splash/brand/sierra.webp +0 -0
- package/public/oracle-splash/brand/sky.webp +0 -0
- package/public/oracle-splash/brand/solv.webp +0 -0
- package/public/oracle-splash/brand/spark.webp +0 -0
- package/public/oracle-splash/brand/sparksavings.webp +0 -0
- package/public/oracle-splash/brand/sphere.webp +0 -0
- package/public/oracle-splash/brand/ssv.webp +0 -0
- package/public/oracle-splash/brand/stabble.webp +0 -0
- package/public/oracle-splash/brand/stableswap.webp +0 -0
- package/public/oracle-splash/brand/stakewise.webp +0 -0
- package/public/oracle-splash/brand/stargate.webp +0 -0
- package/public/oracle-splash/brand/sthype.webp +0 -0
- package/public/oracle-splash/brand/sushiswap.webp +0 -0
- package/public/oracle-splash/brand/unisat.png +0 -0
- package/public/oracle-splash/brand/uniswap.webp +0 -0
- package/public/oracle-splash/brand/uniswapv2.webp +0 -0
- package/public/oracle-splash/brand/uniswapv4.webp +0 -0
- package/public/oracle-splash/brand/unit.webp +0 -0
- package/public/oracle-splash/brand/velodrome.webp +0 -0
- package/public/oracle-splash/brand/velora.webp +0 -0
- package/public/oracle-splash/brand/venus.webp +0 -0
- package/public/oracle-splash/brand/wbeth.webp +0 -0
- package/public/oracle-splash/brand/xsy.webp +0 -0
- package/public/oracle-splash/brand/yieldyak.webp +0 -0
- package/public/oracle-splash/brand/zerobase.webp +0 -0
- package/public/oracle-splash/brand/zerox.webp +0 -0
- package/public/oracle-splash/index.html +246 -169
- package/CONTRIBUTING.md +0 -98
- package/bin/desk-server.mjs +0 -440
- package/bin/oracle-data-mcp.mjs +0 -1010
- package/bin/oracle-init.mjs +0 -496
- package/bin/oracle-public-server.mjs +0 -36
- package/bin/oracle-route.mjs +0 -254
- package/bin/oracle-scan.mjs +0 -192
- package/bin/oracle-upgrade.mjs +0 -42
- package/bin/oracle.mjs +0 -33
- package/docs/adding-a-chain.md +0 -229
- package/docs/architecture.md +0 -136
- package/docs/cli.md +0 -47
- package/docs/connectors.md +0 -13
- package/docs/oracle-pack-standard.md +0 -29
- package/docs/profiles.md +0 -154
- package/examples/add-a-chain.mjs +0 -65
- package/examples/oracle-pack-template.mjs +0 -38
- package/examples/research-a-token.mjs +0 -70
- package/plugins/oracle-owner-gate/__init__.py +0 -227
- package/plugins/oracle-owner-gate/plugin.yaml +0 -9
- package/profiles/_template/SOUL.md +0 -54
- package/profiles/_template/profile.json +0 -22
- package/profiles/bitcoin-agent/SOUL.md +0 -31
- package/profiles/bitcoin-agent/profile.json +0 -32
- package/profiles/hyperliquid-agent/SOUL.md +0 -34
- package/profiles/hyperliquid-agent/profile.json +0 -37
- package/profiles/oracle/SOUL.md +0 -107
- package/profiles/oracle/profile.json +0 -39
- package/profiles/polymarket-agent/SOUL.md +0 -35
- package/profiles/polymarket-agent/profile.json +0 -34
- package/profiles/profile.schema.json +0 -90
- package/profiles/protocol-builder/SOUL.md +0 -57
- package/profiles/protocol-builder/profile.json +0 -39
- package/profiles/robinhood-agent/SOUL.md +0 -53
- package/profiles/robinhood-agent/profile.json +0 -40
- package/profiles/solana-agent/SOUL.md +0 -37
- package/profiles/solana-agent/profile.json +0 -37
- package/profiles/stable-agent/SOUL.md +0 -43
- package/profiles/stable-agent/profile.json +0 -37
- package/protocols/templates/safe-erc20/SECURITY.md +0 -16
- package/protocols/templates/safe-erc20/foundry.toml +0 -12
- package/protocols/templates/safe-erc20/remappings.txt +0 -2
- package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
- package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
- package/scripts/adversarial-bench.mjs +0 -114
- package/scripts/build-inscription.py +0 -230
- package/scripts/check-doc-drift.mjs +0 -112
- package/scripts/check-test-count.mjs +0 -105
- package/scripts/e2e-hl-markets.mjs +0 -21
- package/scripts/e2e-hl-perps.mjs +0 -48
- package/scripts/e2e-hypercore-staking.mjs +0 -128
- package/scripts/e2e-solana-bitcoin.mjs +0 -183
- package/scripts/protocol-template-gate.mjs +0 -15
- package/scripts/public-api-scan.mjs +0 -23
- package/scripts/secret-scan.mjs +0 -181
- package/scripts/verify-v3-venues.mjs +0 -192
- package/skills/balance/SKILL.md +0 -176
- package/skills/oracle-action-semantics/SKILL.md +0 -40
- package/skills/oracle-best-execution/SKILL.md +0 -127
- package/skills/oracle-bitcoin/SKILL.md +0 -53
- package/skills/oracle-chain-graphs-telegram-cards/SKILL.md +0 -59
- package/skills/oracle-chat/SKILL.md +0 -61
- package/skills/oracle-chat/chain.SKILL.md +0 -31
- package/skills/oracle-chat/setup.SKILL.md +0 -37
- package/skills/oracle-circuit-breaker/SKILL.md +0 -51
- package/skills/oracle-contract-research/SKILL.md +0 -55
- package/skills/oracle-desk/SKILL.md +0 -58
- package/skills/oracle-dex-launch/SKILL.md +0 -38
- package/skills/oracle-grants/SKILL.md +0 -69
- package/skills/oracle-hypercore-staking/SKILL.md +0 -57
- package/skills/oracle-hyperliquid/SKILL.md +0 -56
- package/skills/oracle-meme-token-sniper/SKILL.md +0 -73
- package/skills/oracle-multichain-nft-launch/SKILL.md +0 -338
- package/skills/oracle-multichain-token-launch/SKILL.md +0 -300
- package/skills/oracle-nft-gacha-launch/SKILL.md +0 -48
- package/skills/oracle-nft-mint-gas-war/SKILL.md +0 -63
- package/skills/oracle-polymarket/SKILL.md +0 -60
- package/skills/oracle-protocol-builder/SKILL.md +0 -59
- package/skills/oracle-protocol-security/SKILL.md +0 -60
- package/skills/oracle-public-product/SKILL.md +0 -44
- package/skills/oracle-receipts/SKILL.md +0 -52
- package/skills/oracle-rfq-tokenized-assets/SKILL.md +0 -69
- package/skills/oracle-smart-wallet-scanner/SKILL.md +0 -49
- package/skills/oracle-solana/SKILL.md +0 -65
- package/skills/oracle-solana-nft/SKILL.md +0 -54
- package/skills/oracle-token-research/SKILL.md +0 -67
- package/skins/oracle.yaml +0 -56
- package/src/action-receipts.mjs +0 -168
- package/src/action-semantics.mjs +0 -62
- package/src/address-book.mjs +0 -208
- package/src/agent-auth.mjs +0 -206
- package/src/approval-guard.mjs +0 -282
- package/src/attestation-secret.mjs +0 -88
- package/src/audit-log.mjs +0 -196
- package/src/auth/oauth.mjs +0 -672
- package/src/auto-slippage.mjs +0 -378
- package/src/capability-posture.mjs +0 -125
- package/src/chains.mjs +0 -62
- package/src/cli/chain-catalog.mjs +0 -215
- package/src/cli/chain-state.mjs +0 -74
- package/src/cli/commands/auth.mjs +0 -193
- package/src/cli/commands/bootstrap.mjs +0 -87
- package/src/cli/commands/chain.mjs +0 -143
- package/src/cli/commands/chat.mjs +0 -434
- package/src/cli/commands/credential.mjs +0 -9
- package/src/cli/commands/data-mcp.mjs +0 -18
- package/src/cli/commands/data.mjs +0 -73
- package/src/cli/commands/doctor.mjs +0 -126
- package/src/cli/commands/help.mjs +0 -7
- package/src/cli/commands/init.mjs +0 -27
- package/src/cli/commands/mcp.mjs +0 -142
- package/src/cli/commands/model.mjs +0 -99
- package/src/cli/commands/prepare.mjs +0 -12
- package/src/cli/commands/public.mjs +0 -20
- package/src/cli/commands/route.mjs +0 -12
- package/src/cli/commands/runner.mjs +0 -9
- package/src/cli/commands/scan.mjs +0 -12
- package/src/cli/commands/setup.mjs +0 -275
- package/src/cli/commands/sign.mjs +0 -21
- package/src/cli/commands/signer.mjs +0 -9
- package/src/cli/commands/upgrade.mjs +0 -12
- package/src/cli/commands/vault.mjs +0 -9
- package/src/cli/commands/version.mjs +0 -22
- package/src/cli/first-run.mjs +0 -23
- package/src/cli/kernel.mjs +0 -239
- package/src/cli/mcp-targets/chatgpt.mjs +0 -51
- package/src/cli/mcp-targets/claude-code.mjs +0 -39
- package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
- package/src/cli/mcp-targets/codex.mjs +0 -41
- package/src/cli/mcp-targets/shared.mjs +0 -61
- package/src/cli/messaging-platforms.mjs +0 -209
- package/src/cli/model-config.mjs +0 -70
- package/src/cli/operator-dispatch.mjs +0 -258
- package/src/cli/oracle-harness.py +0 -415
- package/src/cli/paths.mjs +0 -83
- package/src/cli/runtime.mjs +0 -351
- package/src/cli/setup-state.mjs +0 -168
- package/src/cli/spawn-child.mjs +0 -43
- package/src/data/catalog.mjs +0 -554
- package/src/data/desk-data.mjs +0 -683
- package/src/data/http.mjs +0 -253
- package/src/data/provider-endpoint.mjs +0 -94
- package/src/data/providers/aerodrome.mjs +0 -245
- package/src/data/providers/balancer.mjs +0 -209
- package/src/data/providers/bitcoin-esplora.mjs +0 -216
- package/src/data/providers/bitcoin-meta.mjs +0 -378
- package/src/data/providers/blockscout.mjs +0 -14
- package/src/data/providers/bridges.mjs +0 -242
- package/src/data/providers/cowswap.mjs +0 -415
- package/src/data/providers/curve.mjs +0 -201
- package/src/data/providers/defillama.mjs +0 -88
- package/src/data/providers/dexscreener.mjs +0 -43
- package/src/data/providers/evm-rpc.mjs +0 -222
- package/src/data/providers/geckoterminal.mjs +0 -34
- package/src/data/providers/gmx.mjs +0 -496
- package/src/data/providers/hl-assets.mjs +0 -165
- package/src/data/providers/hl-info.mjs +0 -108
- package/src/data/providers/hl-markets.mjs +0 -210
- package/src/data/providers/hl-outcome.mjs +0 -61
- package/src/data/providers/hl-perps.mjs +0 -387
- package/src/data/providers/hl-staking.mjs +0 -353
- package/src/data/providers/hl-ws.mjs +0 -119
- package/src/data/providers/hyperevm-dex.mjs +0 -49
- package/src/data/providers/jupiter.mjs +0 -183
- package/src/data/providers/lifi.mjs +0 -151
- package/src/data/providers/magiceden-sol.mjs +0 -393
- package/src/data/providers/morpho.mjs +0 -173
- package/src/data/providers/nft-gallery.mjs +0 -163
- package/src/data/providers/nft-portfolio.mjs +0 -494
- package/src/data/providers/odos.mjs +0 -156
- package/src/data/providers/oneinch.mjs +0 -174
- package/src/data/providers/opensea-multichain.mjs +0 -136
- package/src/data/providers/opensea-nft.mjs +0 -371
- package/src/data/providers/paraswap.mjs +0 -118
- package/src/data/providers/pendle.mjs +0 -187
- package/src/data/providers/poly-clob.mjs +0 -283
- package/src/data/providers/poly-public.mjs +0 -96
- package/src/data/providers/poly-ws.mjs +0 -103
- package/src/data/providers/portfolio-history.mjs +0 -394
- package/src/data/providers/portfolio.mjs +0 -594
- package/src/data/providers/rfq.mjs +0 -15
- package/src/data/providers/rh-agent.mjs +0 -59
- package/src/data/providers/satflow.mjs +0 -338
- package/src/data/providers/solana-rpc.mjs +0 -197
- package/src/data/providers/uniswap-v3.mjs +0 -320
- package/src/data/providers/zerox.mjs +0 -167
- package/src/data/public-api-scan.mjs +0 -61
- package/src/data/quote-placeholder.mjs +0 -31
- package/src/exact-integer.mjs +0 -72
- package/src/exec-policy.mjs +0 -455
- package/src/flags.mjs +0 -15
- package/src/fresh-window.mjs +0 -76
- package/src/gmx-attestation.mjs +0 -176
- package/src/index.mjs +0 -100
- package/src/nft-gas-war-guard.mjs +0 -139
- package/src/onboarding/agent-keys.mjs +0 -161
- package/src/onboarding/harness-configs.mjs +0 -102
- package/src/onboarding/index.mjs +0 -18
- package/src/onboarding/tiers.mjs +0 -139
- package/src/oracle-env.mjs +0 -47
- package/src/portfolio-risk.mjs +0 -170
- package/src/prepare-envelope.mjs +0 -186
- package/src/profile-upgrade.mjs +0 -277
- package/src/protocol-execution.mjs +0 -84
- package/src/protocol-templates/gate.mjs +0 -179
- package/src/protocol-templates/prepare-deploy.mjs +0 -81
- package/src/public-api/buzz-integration.mjs +0 -256
- package/src/public-api/connect-agent.mjs +0 -416
- package/src/public-api/grants.mjs +0 -142
- package/src/public-api/http.mjs +0 -389
- package/src/public-control/aa-adapter.mjs +0 -402
- package/src/public-control/build-registry.mjs +0 -227
- package/src/public-control/bundler-client.mjs +0 -357
- package/src/public-control/grant-indexer.mjs +0 -296
- package/src/public-control/policy-render.mjs +0 -69
- package/src/public-control/policy-schema.mjs +0 -318
- package/src/public-control/runtime-config.mjs +0 -275
- package/src/public-control/session-key-model.mjs +0 -374
- package/src/public-control/session-orchestrator.mjs +0 -412
- package/src/rfq/intent.mjs +0 -180
- package/src/rfq/sources.mjs +0 -181
- package/src/route-attestation.mjs +0 -132
- package/src/router/best-execution.mjs +0 -326
- package/src/router/index.mjs +0 -226
- package/src/router/prepare-bridge.mjs +0 -289
- package/src/router/prepare-route.mjs +0 -381
- package/src/router/proposal.mjs +0 -311
- package/src/router/risk-classifier.mjs +0 -119
- package/src/router/route-sources.mjs +0 -329
- package/src/scanner/chains.config.mjs +0 -430
- package/src/scanner/contract.mjs +0 -270
- package/src/scanner/evm-scanner.mjs +0 -394
- package/src/scanner/index.mjs +0 -9
- package/src/scanner/v2-venue.mjs +0 -335
- package/src/scanner/v3-venue.mjs +0 -290
- package/src/scopes.mjs +0 -44
- package/src/sell-simulation.mjs +0 -167
- package/src/signals/engine.mjs +0 -146
- package/src/signals/index.mjs +0 -1
- package/src/token-transfer-guard.mjs +0 -188
- package/src/tui/app.mjs +0 -438
- package/src/tui/backend.mjs +0 -145
- package/src/tui/format.mjs +0 -272
- package/src/tui/gateway-client.mjs +0 -177
- package/src/tui/input.mjs +0 -501
- package/src/tui/renderer.mjs +0 -443
- package/src/tui/standalone-client.mjs +0 -666
- package/src/tui/theme.mjs +0 -81
- package/src/vault-attestation.mjs +0 -146
- package/src/venues.mjs +0 -206
- package/src/watch-preferences.mjs +0 -85
|
@@ -143,7 +143,8 @@ main{position:relative;z-index:2;padding-top:84px}
|
|
|
143
143
|
background:linear-gradient(180deg, rgba(124,196,255,.65), transparent);
|
|
144
144
|
transform-origin:50% 0;animation:drop-line 2.8s var(--ease) infinite;
|
|
145
145
|
}
|
|
146
|
-
.home-inner{max-width:min(
|
|
146
|
+
.home-inner{max-width:min(920px,100%);width:100%;margin:0 auto;position:relative}
|
|
147
|
+
.hero-primary{min-width:0;display:flex;flex-direction:column;align-items:center}
|
|
147
148
|
.home-kicker{
|
|
148
149
|
font-family:var(--mono);font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--blue);
|
|
149
150
|
margin-bottom:6px;position:relative;z-index:3;
|
|
@@ -192,7 +193,7 @@ main{position:relative;z-index:2;padding-top:84px}
|
|
|
192
193
|
.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}
|
|
193
194
|
.home-title{
|
|
194
195
|
position:relative;z-index:2;
|
|
195
|
-
font-family:var(--display);font-weight:300;font-size:clamp(
|
|
196
|
+
font-family:var(--display);font-weight:300;font-size:clamp(72px,10vw,150px);line-height:.9;letter-spacing:-.045em;
|
|
196
197
|
text-transform:uppercase;color:var(--ink);
|
|
197
198
|
text-shadow:0 2px 30px rgba(0,0,0,.6);
|
|
198
199
|
}
|
|
@@ -391,6 +392,47 @@ main{position:relative;z-index:2;padding-top:84px}
|
|
|
391
392
|
.moat-card h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,2.2vw,26px)}
|
|
392
393
|
.moat-card p{color:#C9DAEC;font-size:15px;line-height:1.55;max-width:44ch}
|
|
393
394
|
@media (max-width:860px){.moat-grid{grid-template-columns:1fr}}
|
|
395
|
+
|
|
396
|
+
.strategy-surface{
|
|
397
|
+
margin-top:clamp(30px,5vw,52px);border:1px solid var(--line);border-radius:20px;overflow:hidden;
|
|
398
|
+
background:linear-gradient(145deg,rgba(124,196,255,.07),rgba(17,25,37,.92) 40%,rgba(11,16,24,.98));
|
|
399
|
+
}
|
|
400
|
+
.strategy-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:clamp(22px,3vw,34px);border-bottom:1px solid var(--line)}
|
|
401
|
+
.strategy-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue)}
|
|
402
|
+
.strategy-head h3{font-family:var(--display);font-weight:400;font-size:clamp(28px,4vw,42px);line-height:1.05;margin-top:8px}
|
|
403
|
+
.strategy-head p{max-width:50ch;color:#C9DAEC;font-size:14px;line-height:1.6}
|
|
404
|
+
.strategy-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line)}
|
|
405
|
+
.strategy-card{min-height:205px;padding:clamp(20px,2.6vw,28px);background:rgba(11,16,24,.96);display:flex;flex-direction:column;gap:11px}
|
|
406
|
+
.strategy-card .mode{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue2)}
|
|
407
|
+
.strategy-card h4{font-family:var(--display);font-weight:400;font-size:clamp(23px,2.5vw,30px)}
|
|
408
|
+
.strategy-card p{color:#C9DAEC;font-size:14px;line-height:1.6}
|
|
409
|
+
.strategy-posture{padding:14px clamp(20px,3vw,34px);border-top:1px solid var(--line);font-family:var(--mono);font-size:9px;line-height:1.6;letter-spacing:.11em;text-transform:uppercase;color:var(--mute)}
|
|
410
|
+
.strategy-posture b{color:var(--blue2);font-weight:500}
|
|
411
|
+
@media (max-width:1180px){.strategy-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
|
412
|
+
@media (max-width:980px){.strategy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-head{align-items:start;flex-direction:column}}
|
|
413
|
+
@media (max-width:620px){.strategy-grid{grid-template-columns:1fr}.strategy-card{min-height:0}}
|
|
414
|
+
|
|
415
|
+
/* actual Oracle CLI */
|
|
416
|
+
.convert-grid{display:grid;grid-template-columns:1fr;gap:clamp(18px,3vw,28px);align-items:stretch;margin-top:8px}
|
|
417
|
+
.convert-copy{display:flex;flex-direction:column;gap:14px;text-align:left;max-width:780px}
|
|
418
|
+
.convert-copy h3{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,34px);line-height:1.1}
|
|
419
|
+
.convert-copy p{color:#C9DAEC;font-size:15px;line-height:1.65;max-width:54ch}
|
|
420
|
+
.convert-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
|
|
421
|
+
.convert-pills span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(124,196,255,.28);border-radius:999px;padding:8px 12px;color:var(--blue2)}
|
|
422
|
+
.platform-beta{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--cool)}
|
|
423
|
+
.platform-beta b{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#071018;background:var(--blue2);border-radius:999px;padding:5px 8px}
|
|
424
|
+
.cli-install{margin:0 0 22px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
|
|
425
|
+
.cli-install-cmd{padding:16px 20px;border-radius:12px;border:1px solid rgba(124,196,255,.34);background:rgba(17,25,37,.9);max-width:100%;overflow-x:auto}
|
|
426
|
+
.cli-install-cmd code{font-family:var(--mono);font-size:15px;letter-spacing:.02em;color:var(--blue2);white-space:nowrap}
|
|
427
|
+
.cli-install-gate{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--cool);margin:0;max-width:62ch;line-height:1.7}
|
|
428
|
+
.cli-install-gate b{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#071018;background:var(--blue2);border-radius:999px;padding:5px 8px;white-space:nowrap}
|
|
429
|
+
.cli-install-gate a{color:var(--blue2);text-decoration:underline;text-underline-offset:3px}
|
|
430
|
+
.cli-frame{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0d1420;box-shadow:0 24px 60px rgba(0,0,0,.35)}
|
|
431
|
+
.cli-frame img{display:block;width:100%;height:auto}
|
|
432
|
+
.cli-cap{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-top:10px;text-align:left}
|
|
433
|
+
.cli-code{margin-top:14px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(17,25,37,.9);font-family:var(--mono);font-size:12px;line-height:1.55;color:var(--cool);overflow-x:auto;text-align:left}
|
|
434
|
+
.cli-code b{color:var(--blue2);font-weight:500}
|
|
435
|
+
|
|
394
436
|
.evolve-rail{
|
|
395
437
|
display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
|
|
396
438
|
padding:14px 16px 4px;
|
|
@@ -498,8 +540,8 @@ main{position:relative;z-index:2;padding-top:84px}
|
|
|
498
540
|
.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
541
|
.marquee:hover .track{animation-play-state:paused}
|
|
500
542
|
.marquee + .marquee{border-top:1px solid rgba(124,196,255,.08)}
|
|
501
|
-
.track{display:inline-flex;gap:26px;padding:12px 0;animation:scroll 240s linear infinite;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}
|
|
502
|
-
.marquee.rev .track{animation-direction:reverse
|
|
543
|
+
.track{display:inline-flex;gap:26px;padding:12px 0;animation:scroll var(--marquee-duration,240s) linear infinite;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}
|
|
544
|
+
.marquee.rev .track{animation-direction:reverse}
|
|
503
545
|
a.chip{text-decoration:none;color:inherit}
|
|
504
546
|
.chip{
|
|
505
547
|
display:inline-flex;align-items:center;gap:10px;
|
|
@@ -516,9 +558,6 @@ a.chip:hover{border-color:rgba(124,196,255,.3);background:rgba(21,32,49,.6);tran
|
|
|
516
558
|
.chip img.wm.mono{filter:brightness(0) invert(1)}
|
|
517
559
|
|
|
518
560
|
.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}
|
|
519
|
-
.chip .cap{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding-left:8px;border-left:1px solid rgba(124,196,255,.14)}
|
|
520
|
-
.chip .cap.t4{color:var(--blue)}
|
|
521
|
-
.chip .cap.t3{color:var(--cool)}
|
|
522
561
|
.proto-uniswap{--proto-font:"Inter",var(--sans);--proto-color:#ff4dcb;--proto-weight:850}
|
|
523
562
|
.proto-hyperliquid{--proto-font:var(--display);--proto-style:italic;--proto-color:#50d2c1;--proto-weight:500;--proto-track:.01em}
|
|
524
563
|
.proto-polymarket{--proto-font:"Manrope",var(--sans);--proto-color:#7aa7ff;--proto-weight:800;--proto-track:-.035em}
|
|
@@ -572,6 +611,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
572
611
|
.js .rv.done{transform:none;will-change:auto}
|
|
573
612
|
|
|
574
613
|
@media (max-width:960px){
|
|
614
|
+
.home-inner{max-width:760px}
|
|
575
615
|
.hero-stage{min-height:clamp(300px,44vh,460px)}.home-title{font-size:clamp(80px,20vw,150px)}
|
|
576
616
|
.nav-chip{display:none}
|
|
577
617
|
.nav-links .hide-sm{display:none}
|
|
@@ -683,7 +723,9 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
683
723
|
</span>
|
|
684
724
|
oracle</a>
|
|
685
725
|
<nav class="nav-links" aria-label="Primary">
|
|
686
|
-
<a class="hide-sm" href="#
|
|
726
|
+
<a class="hide-sm" href="#cli">CLI</a>
|
|
727
|
+
<a class="hide-sm" href="#orchestration">Profiles</a>
|
|
728
|
+
<a class="hide-sm" href="#strategies">Strategies</a>
|
|
687
729
|
<a class="hide-sm" href="#chains">Chains</a>
|
|
688
730
|
</nav>
|
|
689
731
|
</header>
|
|
@@ -694,37 +736,73 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
694
736
|
|
|
695
737
|
<section class="home" id="home">
|
|
696
738
|
<div class="home-inner">
|
|
697
|
-
<div class="hero-
|
|
698
|
-
<div class="hero-
|
|
699
|
-
<
|
|
700
|
-
<
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
<
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
739
|
+
<div class="hero-primary">
|
|
740
|
+
<div class="hero-stage">
|
|
741
|
+
<div class="hero-art" aria-hidden="true">
|
|
742
|
+
<video id="orb-vid" muted loop playsinline preload="none" hidden>
|
|
743
|
+
<source src="assets/hero/orb.webm" type="video/webm">
|
|
744
|
+
</video>
|
|
745
|
+
<div class="hero-orb" id="hero-orb">
|
|
746
|
+
<span class="lat l1"></span><span class="lat l2"></span><span class="lat l3"></span><span class="lat l4"></span>
|
|
747
|
+
<span class="par p1"></span><span class="par p2"></span><span class="par p3"></span>
|
|
748
|
+
<span class="eq"></span>
|
|
749
|
+
<span class="core-glow"></span>
|
|
750
|
+
<span class="orbit-dot"></span>
|
|
751
|
+
</div>
|
|
752
|
+
</div>
|
|
753
|
+
<div class="hero-lockup" id="hero-title">
|
|
754
|
+
<h1 class="home-title">OR<em>ACLE</em></h1>
|
|
708
755
|
</div>
|
|
709
756
|
</div>
|
|
710
|
-
<div class="
|
|
711
|
-
<
|
|
757
|
+
<div class="home-copy">
|
|
758
|
+
<p class="home-kicker">self-custody agent control</p>
|
|
759
|
+
<p>One control plane for Hyperliquid, Polymarket, EVM, Bitcoin, Solana, Stable, Robinhood Chain, and new protocol builds. Cross-chain research, trade, protocol interactions, NFT listing and buying. The all-in-one crypto agent. The future is agentic.</p>
|
|
760
|
+
<div class="home-actions">
|
|
761
|
+
<a class="enter-cta" href="#cli">See the CLI</a>
|
|
762
|
+
<a class="enter-cta" href="#orchestration" style="margin-left:10px;opacity:.85">See profiles</a>
|
|
763
|
+
</div>
|
|
712
764
|
</div>
|
|
713
765
|
</div>
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
766
|
+
</div>
|
|
767
|
+
</section>
|
|
768
|
+
|
|
769
|
+
<section class="section cli-section" id="cli">
|
|
770
|
+
<p class="section-label rv">Oracle CLI</p>
|
|
771
|
+
<h2 class="section-title rv">One surface. <em>Every chain.</em></h2>
|
|
772
|
+
<div class="cli-install rv">
|
|
773
|
+
<div class="cli-install-cmd"><code>npm i -g @oracle-agent/oracle</code></div>
|
|
774
|
+
<p class="cli-install-gate"><b>Locals Only access</b> Oracle unlocks when your agent wallet, or a wallet you import, holds a <a href="https://opensea.io/collection/locals-only-hyperevm" target="_blank" rel="noopener noreferrer">Locals Only</a> NFT.</p>
|
|
775
|
+
</div>
|
|
776
|
+
<p class="section-lede rv">The real Oracle shell, isolated from desktop chrome. Pin the active surface with <code style="color:var(--blue2)">/chain hyperliquid</code>, switch models with <code style="color:var(--blue2)">/model</code>, then ask naturally.</p>
|
|
777
|
+
<div class="convert-grid rv">
|
|
778
|
+
<div>
|
|
779
|
+
<figure class="cli-frame">
|
|
780
|
+
<img src="assets/cli-chain-hyperliquid.jpg?v=cli-visible" alt="Oracle CLI selecting Hyperliquid with the /chain hyperliquid command" width="1600" height="900" loading="eager" fetchpriority="high" />
|
|
781
|
+
</figure>
|
|
782
|
+
<p class="cli-cap">actual oracle shell // /chain hyperliquid</p>
|
|
783
|
+
</div>
|
|
784
|
+
<div class="convert-copy">
|
|
785
|
+
<h3>The actual Oracle CLI</h3>
|
|
786
|
+
<p>The active chain follows each read, quote, prepare, and bounded execution path.</p>
|
|
787
|
+
<div class="convert-pills">
|
|
788
|
+
<span>HyperCore + HyperEVM</span>
|
|
789
|
+
<span>multichain routing</span>
|
|
790
|
+
<span>self-custody</span>
|
|
791
|
+
</div>
|
|
792
|
+
<p class="platform-beta"><b>Beta</b> Linux, Windows, and macOS desktop apps are in beta and not yet downloadable. The CLI runs on all three today.</p>
|
|
793
|
+
<div class="cli-code">
|
|
794
|
+
<div><b>oracle ›</b> /chain hyperliquid</div>
|
|
795
|
+
<div><b>oracle ›</b> /chain show</div>
|
|
796
|
+
<div><b>oracle ›</b> what can you do on hyperliquid?</div>
|
|
719
797
|
</div>
|
|
720
798
|
</div>
|
|
721
799
|
</div>
|
|
722
800
|
</section>
|
|
723
801
|
|
|
724
802
|
<section class="section" id="orchestration">
|
|
725
|
-
<p class="section-label rv">
|
|
803
|
+
<p class="section-label rv">Profiles</p>
|
|
726
804
|
<h2 class="section-title rv">Multi-profile. <em>Customizable.</em></h2>
|
|
727
|
-
<p class="section-lede rv">
|
|
805
|
+
<p class="section-lede rv">Input / Command hits the Oracle control plane, then routes across venue profiles, multi-chain EVM, Bitcoin, Solana, and the protocol builder. Any MCP harness can drive a single agent.</p>
|
|
728
806
|
|
|
729
807
|
<div class="graph-shell rv">
|
|
730
808
|
<div class="graph-top">
|
|
@@ -737,98 +815,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
737
815
|
<span class="evolve-pill on">more chains</span>
|
|
738
816
|
</div>
|
|
739
817
|
|
|
740
|
-
<div class="venue-rail-head">solana venues routed · <b id="sol-count">101</b> programs verified on-chain · 88 venues</div>
|
|
741
|
-
<div class="evolve-rail venue-rail" id="sol-venue-rail">
|
|
742
|
-
<span class="evolve-pill on">1DEX</span>
|
|
743
|
-
<span class="evolve-pill on">Aldrin</span>
|
|
744
|
-
<span class="evolve-pill on">AlphaQ</span>
|
|
745
|
-
<span class="evolve-pill on">Aquifer</span>
|
|
746
|
-
<span class="evolve-pill on">BinaryFi</span>
|
|
747
|
-
<span class="evolve-pill on">BisonFi</span>
|
|
748
|
-
<span class="evolve-pill on">Bonkswap</span>
|
|
749
|
-
<span class="evolve-pill on">Boop.fun</span>
|
|
750
|
-
<span class="evolve-pill on">Byreal</span>
|
|
751
|
-
<span class="evolve-pill on">Carrot</span>
|
|
752
|
-
<span class="evolve-pill on">Crema</span>
|
|
753
|
-
<span class="evolve-pill on">Cropper</span>
|
|
754
|
-
<span class="evolve-pill on">DefiTuna</span>
|
|
755
|
-
<span class="evolve-pill on">Denali</span>
|
|
756
|
-
<span class="evolve-pill on">Deriverse</span>
|
|
757
|
-
<span class="evolve-pill on">DexLab</span>
|
|
758
|
-
<span class="evolve-pill on">Dynamic Bonding Curve</span>
|
|
759
|
-
<span class="evolve-pill on">Flint</span>
|
|
760
|
-
<span class="evolve-pill on">Flux</span>
|
|
761
|
-
<span class="evolve-pill on">FluxBeam</span>
|
|
762
|
-
<span class="evolve-pill on">GatorSwap</span>
|
|
763
|
-
<span class="evolve-pill on">Gavel</span>
|
|
764
|
-
<span class="evolve-pill on">GoonFi</span>
|
|
765
|
-
<span class="evolve-pill on">GooseFX GAMMA</span>
|
|
766
|
-
<span class="evolve-pill on">Guacswap</span>
|
|
767
|
-
<span class="evolve-pill on">Hadron</span>
|
|
768
|
-
<span class="evolve-pill on">Heaven</span>
|
|
769
|
-
<span class="evolve-pill on">Helium Network</span>
|
|
770
|
-
<span class="evolve-pill on">Huma</span>
|
|
771
|
-
<span class="evolve-pill on">HumidiFi</span>
|
|
772
|
-
<span class="evolve-pill on">Hylo Exchange</span>
|
|
773
|
-
<span class="evolve-pill on">Hylo Stability</span>
|
|
774
|
-
<span class="evolve-pill on">Invariant</span>
|
|
775
|
-
<span class="evolve-pill on">Jupiter Lend</span>
|
|
776
|
-
<span class="evolve-pill on">JupiterRfqV2</span>
|
|
777
|
-
<span class="evolve-pill on">JupLend</span>
|
|
778
|
-
<span class="evolve-pill on">Kipseli</span>
|
|
779
|
-
<span class="evolve-pill on">LemmingsFi</span>
|
|
780
|
-
<span class="evolve-pill on">M Swap</span>
|
|
781
|
-
<span class="evolve-pill on">Manifest</span>
|
|
782
|
-
<span class="evolve-pill on">Mercurial</span>
|
|
783
|
-
<span class="evolve-pill on">MetaDAO</span>
|
|
784
|
-
<span class="evolve-pill on">Meteora</span>
|
|
785
|
-
<span class="evolve-pill on">Meteora DAMM</span>
|
|
786
|
-
<span class="evolve-pill on">Metric</span>
|
|
787
|
-
<span class="evolve-pill on">Moonit</span>
|
|
788
|
-
<span class="evolve-pill on">Obric</span>
|
|
789
|
-
<span class="evolve-pill on">Obsidian</span>
|
|
790
|
-
<span class="evolve-pill on">Omnipair</span>
|
|
791
|
-
<span class="evolve-pill on">OpenBook</span>
|
|
792
|
-
<span class="evolve-pill on">Orca</span>
|
|
793
|
-
<span class="evolve-pill on">PancakeSwap</span>
|
|
794
|
-
<span class="evolve-pill on">Penguin</span>
|
|
795
|
-
<span class="evolve-pill on">Perena</span>
|
|
796
|
-
<span class="evolve-pill on">Perena Star</span>
|
|
797
|
-
<span class="evolve-pill on">Perps</span>
|
|
798
|
-
<span class="evolve-pill on">Phoenix</span>
|
|
799
|
-
<span class="evolve-pill on">Pump.fun</span>
|
|
800
|
-
<span class="evolve-pill on">Quantum</span>
|
|
801
|
-
<span class="evolve-pill on">Raydium</span>
|
|
802
|
-
<span class="evolve-pill on">Riptide</span>
|
|
803
|
-
<span class="evolve-pill on">RunnerRodeo</span>
|
|
804
|
-
<span class="evolve-pill on">Saber</span>
|
|
805
|
-
<span class="evolve-pill on">Saber (Decimals)</span>
|
|
806
|
-
<span class="evolve-pill on">Sanctum</span>
|
|
807
|
-
<span class="evolve-pill on">Sanctum Infinity</span>
|
|
808
|
-
<span class="evolve-pill on">Saros</span>
|
|
809
|
-
<span class="evolve-pill on">Scale</span>
|
|
810
|
-
<span class="evolve-pill on">Scale Vmm</span>
|
|
811
|
-
<span class="evolve-pill on">Scorch</span>
|
|
812
|
-
<span class="evolve-pill on">Solayer</span>
|
|
813
|
-
<span class="evolve-pill on">SolFi</span>
|
|
814
|
-
<span class="evolve-pill on">Stabble</span>
|
|
815
|
-
<span class="evolve-pill on">Stabble Stable Swap</span>
|
|
816
|
-
<span class="evolve-pill on">Stabble Weighted Swap</span>
|
|
817
|
-
<span class="evolve-pill on">StepN</span>
|
|
818
|
-
<span class="evolve-pill on">TaurusFi</span>
|
|
819
|
-
<span class="evolve-pill on">TesseraV</span>
|
|
820
|
-
<span class="evolve-pill on">Token Swap</span>
|
|
821
|
-
<span class="evolve-pill on">Trends</span>
|
|
822
|
-
<span class="evolve-pill on">VaultLiquidUnstake</span>
|
|
823
|
-
<span class="evolve-pill on">Virtuals</span>
|
|
824
|
-
<span class="evolve-pill on">Voltr</span>
|
|
825
|
-
<span class="evolve-pill on">WhaleStreet</span>
|
|
826
|
-
<span class="evolve-pill on">Whirlpool</span>
|
|
827
|
-
<span class="evolve-pill on">Woofi</span>
|
|
828
|
-
<span class="evolve-pill on">XOrca</span>
|
|
829
|
-
<span class="evolve-pill on">ZeroFi</span>
|
|
830
|
-
</div>
|
|
831
|
-
|
|
832
818
|
<div class="graph-canvas">
|
|
833
819
|
<div class="orch" aria-label="Oracle multi-profile graph">
|
|
834
820
|
<div class="row">
|
|
@@ -901,7 +887,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
901
887
|
<div class="tag">profile</div>
|
|
902
888
|
<div class="name">solana agent</div>
|
|
903
889
|
<div class="sub">jup · nfts · dexs</div>
|
|
904
|
-
<div class="chains"><span class="ch">Solana <img src="https://icons.llamao.fi/icons/chains/rsz_solana?w=24&h=24" alt="" loading="lazy"></span
|
|
890
|
+
<div class="chains"><span class="ch">Solana <img src="https://icons.llamao.fi/icons/chains/rsz_solana?w=24&h=24" alt="" loading="lazy"></span></div>
|
|
905
891
|
</div>
|
|
906
892
|
<div class="node route p-btc">
|
|
907
893
|
<div class="tag">profile</div>
|
|
@@ -921,12 +907,6 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
921
907
|
<div class="sub">launches · memecoins</div>
|
|
922
908
|
<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>
|
|
923
909
|
</div>
|
|
924
|
-
<div class="node add">
|
|
925
|
-
<div class="tag">open slot</div>
|
|
926
|
-
<div class="name">+ add agent</div>
|
|
927
|
-
<div class="sub">new chain · new venue · your rules</div>
|
|
928
|
-
<div class="chains" style="margin-top:12px;font-family:var(--mono);font-size:10px;color:var(--blue2)">sits beside stable · same custody</div>
|
|
929
|
-
</div>
|
|
930
910
|
</div>
|
|
931
911
|
|
|
932
912
|
<div class="wires funnel" aria-hidden="true">
|
|
@@ -1047,20 +1027,10 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1047
1027
|
<span class="chip-s">unsigned deploy</span>
|
|
1048
1028
|
</div>
|
|
1049
1029
|
</article>
|
|
1050
|
-
<article class="route-card p-add">
|
|
1051
|
-
<div class="where">+ add agent →</div>
|
|
1052
|
-
<h3>Next chain</h3>
|
|
1053
|
-
<p>Drop in another profile for a new chain or venue. Same custody model, your wallet, your limits, your revoke.</p>
|
|
1054
|
-
<div class="chips">
|
|
1055
|
-
<span class="chip-s">custom profile</span>
|
|
1056
|
-
<span class="chip-s">more chains</span>
|
|
1057
|
-
<span class="chip-s">same custody</span>
|
|
1058
|
-
</div>
|
|
1059
|
-
</article>
|
|
1060
1030
|
</div>
|
|
1061
1031
|
|
|
1062
1032
|
<div class="why-band">
|
|
1063
|
-
<p>The model proposes. Policy bounds. You own signatures. Multi-profile desks
|
|
1033
|
+
<p>The model proposes. Policy bounds. You own signatures. Multi-profile desks route each request to the right surface. Vaults, perps, bridges, and protocol scaffolds, not just swaps. Empty allowlists refuse everything until you configure them.</p>
|
|
1064
1034
|
</div>
|
|
1065
1035
|
</div>
|
|
1066
1036
|
|
|
@@ -1096,7 +1066,45 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1096
1066
|
<p>A fresh install signs nothing. Every lane refuses while its allowlists are empty, so nothing moves until you set the bounds.</p>
|
|
1097
1067
|
</article>
|
|
1098
1068
|
</div>
|
|
1099
|
-
|
|
1069
|
+
|
|
1070
|
+
<div class="strategy-surface rv" id="strategies" aria-labelledby="strategies-title">
|
|
1071
|
+
<div class="strategy-head">
|
|
1072
|
+
<div>
|
|
1073
|
+
<div class="strategy-kicker">Agentic strategies</div>
|
|
1074
|
+
<h3 id="strategies-title">Move liquidity. Bound the risk.</h3>
|
|
1075
|
+
</div>
|
|
1076
|
+
<p>Oracle reads the position, models the route and costs, then prepares only the steps the selected lane can actually support.</p>
|
|
1077
|
+
</div>
|
|
1078
|
+
<div class="strategy-grid">
|
|
1079
|
+
<article class="strategy-card">
|
|
1080
|
+
<div class="mode">read · model · prepare</div>
|
|
1081
|
+
<h4>LP rebalancing</h4>
|
|
1082
|
+
<p>Read concentrated-liquidity positions, model new ranges and fee drag, then prepare collect, swap and redeploy steps on supported venues. You sign each step.</p>
|
|
1083
|
+
</article>
|
|
1084
|
+
<article class="strategy-card">
|
|
1085
|
+
<div class="mode">monitor · shadow · simulate</div>
|
|
1086
|
+
<h4>MEV</h4>
|
|
1087
|
+
<p>Monitor cross-venue divergence and simulate net edge after gas, slippage and lender costs. Public mode is shadow analysis, not autonomous execution.</p>
|
|
1088
|
+
</article>
|
|
1089
|
+
<article class="strategy-card">
|
|
1090
|
+
<div class="mode">simulate · policy-check</div>
|
|
1091
|
+
<h4>Flash loans</h4>
|
|
1092
|
+
<p>Build bounded atomic loan routes and test premium, calldata, gas and minimum-profit gates. Public live execution remains disabled.</p>
|
|
1093
|
+
</article>
|
|
1094
|
+
<article class="strategy-card">
|
|
1095
|
+
<div class="mode">read · quote · prepare</div>
|
|
1096
|
+
<h4>Staking</h4>
|
|
1097
|
+
<p>Compare validators, staking vaults, rewards and unlock periods, then prepare supported stake, withdraw and delegate actions for your signature.</p>
|
|
1098
|
+
</article>
|
|
1099
|
+
<article class="strategy-card">
|
|
1100
|
+
<div class="mode">discover · compare · prepare</div>
|
|
1101
|
+
<h4>Yield</h4>
|
|
1102
|
+
<p>Rank lending, staking, vault and LP opportunities by net APY after fees, liquidity, lockups and smart-contract risk, then prepare supported deposits or migrations for your signature.</p>
|
|
1103
|
+
</article>
|
|
1104
|
+
</div>
|
|
1105
|
+
<div class="strategy-posture"><b>Public posture:</b> research, simulation and unsigned preparation. MEV and flash-loan broadcast stays off; supported staking, LP and yield actions require the user wallet to sign.</div>
|
|
1106
|
+
</div>
|
|
1107
|
+
</section>
|
|
1100
1108
|
|
|
1101
1109
|
<section class="section" id="chains">
|
|
1102
1110
|
<p class="section-label rv">Chains</p>
|
|
@@ -1115,7 +1123,7 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1115
1123
|
</div>
|
|
1116
1124
|
</div>
|
|
1117
1125
|
<div class="venues rv">
|
|
1118
|
-
<div class="venues-head"><span>protocols // venues</span
|
|
1126
|
+
<div class="venues-head"><span>protocols // venues</span></div>
|
|
1119
1127
|
<div class="marquee"><div class="track" id="proto-track-a"></div></div>
|
|
1120
1128
|
<div class="marquee rev"><div class="track" id="proto-track-b"></div></div>
|
|
1121
1129
|
</div>
|
|
@@ -1187,15 +1195,15 @@ footer{margin-top:clamp(72px,12vh,120px);border-top:1px solid var(--line);paddin
|
|
|
1187
1195
|
var WM = "assets/wordmarks/";
|
|
1188
1196
|
var BRAND = "brand/";
|
|
1189
1197
|
var PROTOS_A = [
|
|
1190
|
-
{ n: "Uniswap V3",
|
|
1191
|
-
{ n: "Aerodrome Slipstream",
|
|
1192
|
-
{ n: "Pancake V3",
|
|
1198
|
+
{ n: "Uniswap V3", wm: "uniswap.svg", cap: "read + quote + prepare + policy", u: "https://app.uniswap.org/" },
|
|
1199
|
+
{ n: "Aerodrome Slipstream", wm: "aerodrome.svg", cap: "read + quote + prepare", u: "https://aerodrome.finance/" },
|
|
1200
|
+
{ n: "Pancake V3", wm: "pancakeswap.svg", cap: "read + quote", u: "https://pancakeswap.finance/swap" },
|
|
1193
1201
|
{ n: "LFJ Liquidity Book", img: "lfj", cap: "read + quote", u: "https://lfj.gg/avalanche/trade" },
|
|
1194
1202
|
{ n: "Curve RouterNG", img: "curve", cap: "read + quote + prepare + policy", u: "https://curve.finance" },
|
|
1195
1203
|
{ n: "Pendle Router", img: "pendle", cap: "read + quote + prepare + policy", u: "https://pendle.finance/" },
|
|
1196
|
-
{ n: "Morpho vaults",
|
|
1204
|
+
{ n: "Morpho vaults", wm: "morpho.svg", cap: "read + deposit prepare", u: "https://app.morpho.org/" },
|
|
1197
1205
|
{ n: "Lido stETH", img: "lido", cap: "read + stake prepare + policy", u: "https://lido.fi/" },
|
|
1198
|
-
{ n: "Kinetiq kHYPE",
|
|
1206
|
+
{ n: "Kinetiq kHYPE", wm: "kinetiq.svg", tall: 1, cap: "read + quote + stake prepare + policy", u: "https://kinetiq.xyz/stake" },
|
|
1199
1207
|
{ n: "Project X", img: "projectx", cap: "read", u: "https://www.prjx.com" },
|
|
1200
1208
|
{ n: "Uniswap V4", img: "uniswapv4", cap: "read + quote", u: "https://app.uniswap.org/" },
|
|
1201
1209
|
{ n: "Aborean CL", img: "aborean", cap: "read + quote", u: "https://aborean.finance/" },
|
|
@@ -1219,9 +1227,9 @@ var BRAND = "brand/";
|
|
|
1219
1227
|
{ n: "Pharaoh V3", img: "pharaoh", cap: "read + quote", u: "https://www.phar.gg/" },
|
|
1220
1228
|
{ n: "Polymarket", img: "polymarket", cap: "read", u: "https://polymarket.com/" },
|
|
1221
1229
|
{ n: "XSY", img: "xsy", cap: "read", u: "https://xsy.fi" },
|
|
1222
|
-
{ n: "Balancer V2",
|
|
1230
|
+
{ n: "Balancer V2", wm: "balancer.svg", cap: "read + quote", u: "https://balancer.fi/" },
|
|
1223
1231
|
{ n: "Harmonix", img: "harmonix", cap: "read + quote", u: "https://app.harmonix.fi/" },
|
|
1224
|
-
{ n: "Hyperliquid HLP",
|
|
1232
|
+
{ n: "Hyperliquid HLP", wm: "hyperliquid.svg", cap: "read", u: "https://app.hyperliquid.xyz" },
|
|
1225
1233
|
{ n: "stHYPE + wstHYPE", img: "sthype", cap: "read + quote", u: "https://app.valantis.xyz" },
|
|
1226
1234
|
{ n: "Arcus Perps", img: "arcus", cap: "read", u: "https://arcus.xyz/" },
|
|
1227
1235
|
{ n: "NOXA Fun", img: "noxa", cap: "read + quote", u: "https://fun.noxa.eth.limo/" },
|
|
@@ -1238,17 +1246,17 @@ var BRAND = "brand/";
|
|
|
1238
1246
|
{ n: "Hypha", img: "hypha", cap: "read + quote", u: "https://www.hypha.sh/" },
|
|
1239
1247
|
{ n: "40 Acres", img: "fortyacres", cap: "read + quote", u: "https://www.40acres.finance/" },
|
|
1240
1248
|
{ n: "Hyperbeat", img: "hyperbeat", cap: "read + quote", u: "https://app.hyperbeat.org/" },
|
|
1241
|
-
{ n: "GMX V2",
|
|
1242
|
-
{ n: "Relay",
|
|
1243
|
-
{ n: "Odos",
|
|
1244
|
-
{ n: "Jupiter",
|
|
1245
|
-
{ n: "Stargate",
|
|
1249
|
+
{ n: "GMX V2", wm: "gmx.svg", cap: "read + order attestation", u: "https://gmx.io/" },
|
|
1250
|
+
{ n: "Relay", wm: "relay.svg", cap: "route source", u: "https://relay.link/" },
|
|
1251
|
+
{ n: "Odos", wm: "odos.svg", cap: "read + route source", u: "https://app.odos.xyz" },
|
|
1252
|
+
{ n: "Jupiter", wm: "jupiter.svg", cap: "solana route source", u: "https://jup.ag/" },
|
|
1253
|
+
{ n: "Stargate", wm: "stargate.svg", cap: "read + bridge route", u: "https://stargate.finance/" }
|
|
1246
1254
|
];
|
|
1247
1255
|
var PROTOS_B = [
|
|
1248
1256
|
{ n: "Uniswap V3 LP", img: "uniswap", cap: "preview + mint/collect prepare", u: "https://app.uniswap.org/" },
|
|
1249
|
-
{ n: "Velodrome V2",
|
|
1257
|
+
{ n: "Velodrome V2", wm: "velodrome.svg", cap: "read + quote", u: "https://velodrome.finance/" },
|
|
1250
1258
|
{ n: "QuickSwap", img: "quickswap", cap: "read + quote", u: "https://quickswap.exchange/" },
|
|
1251
|
-
{ n: "HyperSwap V3",
|
|
1259
|
+
{ n: "HyperSwap V3", wm: "hyperswap.svg", cap: "read + quote", u: "https://app.hyperswap.exchange/" },
|
|
1252
1260
|
{ n: "Balancer V3", img: "balancer", cap: "read + quote + prepare + policy", u: "https://balancer.fi/" },
|
|
1253
1261
|
{ n: "Aave V3", img: "aave", cap: "read + supply/withdraw prepare + policy", u: "https://aave.com/" },
|
|
1254
1262
|
{ n: "Morpho Blue", img: "morpho", cap: "read", u: "https://app.morpho.org" },
|
|
@@ -1297,8 +1305,8 @@ var PROTOS_B = [
|
|
|
1297
1305
|
{ n: "Looped Hype", img: "loopedhype", cap: "read + quote", u: "https://www.loopingcollective.org/" },
|
|
1298
1306
|
{ n: "LI.FI", img: "lifi", cap: "read + route source", u: "https://li.fi/" },
|
|
1299
1307
|
{ n: "Velora", img: "velora", cap: "read + route source", u: "https://app.velora.xyz" },
|
|
1300
|
-
{ n: "CoW Swap",
|
|
1301
|
-
{ n: "Across",
|
|
1308
|
+
{ n: "CoW Swap", wm: "cowswap.svg", cap: "read + route source", u: "https://cow.fi/" },
|
|
1309
|
+
{ n: "Across", wm: "across.svg", cap: "read + bridge route", u: "https://across.to" }
|
|
1302
1310
|
];
|
|
1303
1311
|
|
|
1304
1312
|
// Equalize optical weight: constant target area, clamped, then width-capped.
|
|
@@ -1311,29 +1319,91 @@ var PROTOS_B = [
|
|
|
1311
1319
|
img.style.height = h.toFixed(1) + "px";
|
|
1312
1320
|
}
|
|
1313
1321
|
function wireMarks(root) {
|
|
1314
|
-
root.querySelectorAll("img.wm
|
|
1315
|
-
if (img.complete
|
|
1316
|
-
|
|
1322
|
+
root.querySelectorAll("img.wm").forEach(function (img) {
|
|
1323
|
+
if (img.complete) {
|
|
1324
|
+
if (!img.classList.contains("tall") && img.naturalWidth) normalizeMark(img);
|
|
1325
|
+
return;
|
|
1326
|
+
}
|
|
1327
|
+
img.addEventListener("load", function () {
|
|
1328
|
+
if (!img.classList.contains("tall")) normalizeMark(img);
|
|
1329
|
+
syncMarqueeVelocity();
|
|
1330
|
+
}, { once: true });
|
|
1331
|
+
});
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
var MARQUEE_PX_PER_SECOND = 20;
|
|
1335
|
+
var marqueeResizeTimer = 0;
|
|
1336
|
+
function syncMarqueeVelocity() {
|
|
1337
|
+
document.querySelectorAll(".track").forEach(function (track) {
|
|
1338
|
+
var distance = track.scrollWidth / 2;
|
|
1339
|
+
if (distance > 0) {
|
|
1340
|
+
track.style.setProperty("--marquee-duration", Math.max(30, distance / MARQUEE_PX_PER_SECOND).toFixed(2) + "s");
|
|
1341
|
+
}
|
|
1317
1342
|
});
|
|
1318
1343
|
}
|
|
1319
1344
|
|
|
1345
|
+
function protocolName(name) {
|
|
1346
|
+
var label = name.replace(/\s+(?:DEX\s+)?V\d+(?:\s+LP)?\b/gi, "").trim();
|
|
1347
|
+
var aliases = [
|
|
1348
|
+
[/^Aerodrome\b/i, "Aerodrome"],
|
|
1349
|
+
[/^Pancake(?:Swap)?\b/i, "PancakeSwap"],
|
|
1350
|
+
[/^LFJ\b/i, "LFJ"],
|
|
1351
|
+
[/^Curve\b/i, "Curve"],
|
|
1352
|
+
[/^Pendle\b/i, "Pendle"],
|
|
1353
|
+
[/^Morpho\b/i, "Morpho"],
|
|
1354
|
+
[/^Lido\b/i, "Lido"],
|
|
1355
|
+
[/^Kinetiq\b/i, "Kinetiq"],
|
|
1356
|
+
[/^Aborean\b/i, "Aborean"],
|
|
1357
|
+
[/^Stable Swap\b/i, "Stable"],
|
|
1358
|
+
[/^Ethena\b/i, "Ethena"],
|
|
1359
|
+
[/^Benqi\b/i, "Benqi"],
|
|
1360
|
+
[/^Fluid\b/i, "Fluid"],
|
|
1361
|
+
[/^Lista\b/i, "Lista"],
|
|
1362
|
+
[/^Hyperliquid\b/i, "Hyperliquid"],
|
|
1363
|
+
[/^Arcus\b/i, "Arcus"],
|
|
1364
|
+
[/^NOXA\b/i, "NOXA"],
|
|
1365
|
+
[/^Kona\b/i, "Kona"],
|
|
1366
|
+
[/^Velodrome\b/i, "Velodrome"],
|
|
1367
|
+
[/^SakuraSwap\b/i, "SakuraSwap"],
|
|
1368
|
+
[/^Spark(?:Lend|\b)/i, "Spark"],
|
|
1369
|
+
[/^(?:ether\.fi|EtherFi)\b/i, "EtherFi"],
|
|
1370
|
+
[/^Sky\b/i, "Sky"],
|
|
1371
|
+
[/^Binance\b/i, "Binance"],
|
|
1372
|
+
[/^Avant\b/i, "Avant"],
|
|
1373
|
+
[/^Aster\b/i, "Aster"],
|
|
1374
|
+
[/^Lighter\b/i, "Lighter"],
|
|
1375
|
+
[/^stHYPE \+ wstHYPE$/i, "Valantis"]
|
|
1376
|
+
];
|
|
1377
|
+
for (var i = 0; i < aliases.length; i++) {
|
|
1378
|
+
if (aliases[i][0].test(label)) return aliases[i][1];
|
|
1379
|
+
}
|
|
1380
|
+
return label;
|
|
1381
|
+
}
|
|
1382
|
+
function uniqueProtocols(list, seen) {
|
|
1383
|
+
return list.filter(function (x) {
|
|
1384
|
+
var label = protocolName(x.n);
|
|
1385
|
+
if (seen[label]) return false;
|
|
1386
|
+
seen[label] = true;
|
|
1387
|
+
return true;
|
|
1388
|
+
});
|
|
1389
|
+
}
|
|
1320
1390
|
function chipRow(list) {
|
|
1321
1391
|
var seq = list.concat(list);
|
|
1322
1392
|
return seq.map(function (x) {
|
|
1323
|
-
var
|
|
1393
|
+
var label = protocolName(x.n);
|
|
1324
1394
|
var body = x.img
|
|
1325
|
-
? '<img class="wm tall" src="' + BRAND + x.img + '.webp" alt="' +
|
|
1326
|
-
'<span class="wordmark">' +
|
|
1327
|
-
'<span class="cap' + tier + '">' + x.cap + '</span>'
|
|
1395
|
+
? '<img class="wm tall" src="' + BRAND + x.img + '.webp" alt="' + label + '" decoding="async">' +
|
|
1396
|
+
'<span class="wordmark">' + label + '</span>'
|
|
1328
1397
|
: x.wm
|
|
1329
|
-
? '<img class="' + (x.tall ? 'wm tall' : 'wm') + (x.mono ? ' mono' : '') + '" src="' + WM + x.wm + '" alt="' +
|
|
1330
|
-
(x.tall ? '<span class="wordmark">' +
|
|
1331
|
-
: '<span class="wordmark">' +
|
|
1332
|
-
return '<a class="chip wm-chip" href="' + x.u + '" target="_blank" rel="noopener noreferrer" aria-label="' +
|
|
1398
|
+
? '<img class="' + (x.tall ? 'wm tall' : 'wm') + (x.mono ? ' mono' : '') + '" src="' + WM + x.wm + '" alt="' + label + '" decoding="async">' +
|
|
1399
|
+
(x.tall ? '<span class="wordmark">' + label + '</span>' : '')
|
|
1400
|
+
: '<span class="wordmark">' + label + '</span>';
|
|
1401
|
+
return '<a class="chip wm-chip" href="' + x.u + '" target="_blank" rel="noopener noreferrer" aria-label="' + label + '">' + body + '</a>';
|
|
1333
1402
|
}).join("");
|
|
1334
1403
|
}
|
|
1335
|
-
|
|
1336
|
-
document.getElementById("proto-track-
|
|
1404
|
+
var visibleProtocols = Object.create(null);
|
|
1405
|
+
document.getElementById("proto-track-a").innerHTML = chipRow(uniqueProtocols(PROTOS_A, visibleProtocols));
|
|
1406
|
+
document.getElementById("proto-track-b").innerHTML = chipRow(uniqueProtocols(PROTOS_B, visibleProtocols));
|
|
1337
1407
|
|
|
1338
1408
|
var LM = "assets/llms/";
|
|
1339
1409
|
var LLMS = [
|
|
@@ -1359,6 +1429,13 @@ var PROTOS_B = [
|
|
|
1359
1429
|
wireMarks(document.getElementById("proto-track-a"));
|
|
1360
1430
|
wireMarks(document.getElementById("proto-track-b"));
|
|
1361
1431
|
wireMarks(document.getElementById("llm-track"));
|
|
1432
|
+
syncMarqueeVelocity();
|
|
1433
|
+
if (document.fonts && document.fonts.ready) document.fonts.ready.then(syncMarqueeVelocity);
|
|
1434
|
+
window.addEventListener("load", syncMarqueeVelocity);
|
|
1435
|
+
window.addEventListener("resize", function () {
|
|
1436
|
+
clearTimeout(marqueeResizeTimer);
|
|
1437
|
+
marqueeResizeTimer = setTimeout(syncMarqueeVelocity, 120);
|
|
1438
|
+
});
|
|
1362
1439
|
|
|
1363
1440
|
var loader = document.getElementById("loader");
|
|
1364
1441
|
var fill = document.getElementById("loader-fill");
|