@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
package/LICENSE
CHANGED
|
@@ -1,202 +1,116 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
1
2
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
wherever such third-party notices normally appear. The contents
|
|
117
|
-
of the NOTICE file are for informational purposes only and
|
|
118
|
-
do not modify the License. You may add Your own attribution
|
|
119
|
-
notices within Derivative Works that You distribute, alongside
|
|
120
|
-
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
-
that such additional attribution notices cannot be construed
|
|
122
|
-
as modifying the License.
|
|
123
|
-
|
|
124
|
-
You may add Your own copyright statement to Your modifications and
|
|
125
|
-
may provide additional or different license terms and conditions
|
|
126
|
-
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
-
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
-
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
-
the conditions stated in this License.
|
|
130
|
-
|
|
131
|
-
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
-
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
-
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
-
this License, without any additional terms or conditions.
|
|
135
|
-
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
-
the terms of any separate license agreement you may have executed
|
|
137
|
-
with Licensor regarding such Contributions.
|
|
138
|
-
|
|
139
|
-
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
-
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
-
except as required for reasonable and customary use in describing the
|
|
142
|
-
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
-
|
|
144
|
-
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
-
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
-
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
-
implied, including, without limitation, any warranties or conditions
|
|
149
|
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
-
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
-
appropriateness of using or redistributing the Work and assume any
|
|
152
|
-
risks associated with Your exercise of permissions under this License.
|
|
153
|
-
|
|
154
|
-
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
-
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
-
unless required by applicable law (such as deliberate and grossly
|
|
157
|
-
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
-
liable to You for damages, including any direct, indirect, special,
|
|
159
|
-
incidental, or consequential damages of any character arising as a
|
|
160
|
-
result of this License or out of the use or inability to use the
|
|
161
|
-
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
-
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
-
other commercial damages or losses), even if such Contributor
|
|
164
|
-
has been advised of the possibility of such damages.
|
|
165
|
-
|
|
166
|
-
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
-
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
-
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
-
or other liability obligations and/or rights consistent with this
|
|
170
|
-
License. However, in accepting such obligations, You may act only
|
|
171
|
-
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
-
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
-
defend, and hold each Contributor harmless for any liability
|
|
174
|
-
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
-
of your accepting any such warranty or additional liability.
|
|
176
|
-
|
|
177
|
-
END OF TERMS AND CONDITIONS
|
|
178
|
-
|
|
179
|
-
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
-
|
|
181
|
-
To apply the Apache License to your work, attach the following
|
|
182
|
-
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
-
replaced with your own identifying information. (Don't include
|
|
184
|
-
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
-
comment syntax for the file format. We also recommend that a
|
|
186
|
-
file or class name and description of purpose be included on the
|
|
187
|
-
same "printed page" as the copyright notice for easier
|
|
188
|
-
identification within third-party archives.
|
|
189
|
-
|
|
190
|
-
Copyright 2026 Oracle Agent contributors
|
|
191
|
-
|
|
192
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
-
you may not use this file except in compliance with the License.
|
|
194
|
-
You may obtain a copy of the License at
|
|
195
|
-
|
|
196
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
-
|
|
198
|
-
Unless required by applicable law or agreed to in writing, software
|
|
199
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
-
See the License for the specific language governing permissions and
|
|
202
|
-
limitations under the License.
|
|
3
|
+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
4
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
5
|
+
|
|
6
|
+
-----------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
Parameters
|
|
9
|
+
|
|
10
|
+
Licensor: Christopher Gervais
|
|
11
|
+
|
|
12
|
+
Licensed Work: @oracle-agent/oracle
|
|
13
|
+
The Licensed Work is (c) 2026 Christopher Gervais
|
|
14
|
+
|
|
15
|
+
Additional Use Grant: You may make use of the Licensed Work, provided that
|
|
16
|
+
you do not use the Licensed Work for a Competing
|
|
17
|
+
Offering.
|
|
18
|
+
|
|
19
|
+
A "Competing Offering" is a product or service offered
|
|
20
|
+
to third parties, on a paid or unpaid basis, that
|
|
21
|
+
provides the whole or substantially the whole of the
|
|
22
|
+
functionality of the Licensed Work, including but not
|
|
23
|
+
limited to any hosted, managed, or embedded service
|
|
24
|
+
that exposes the Licensed Work's protocol catalog,
|
|
25
|
+
prepare plane, or transaction-preparation interfaces
|
|
26
|
+
to third parties.
|
|
27
|
+
|
|
28
|
+
Internal use, evaluation, research, personal use, and
|
|
29
|
+
use within your own organization that is not offered
|
|
30
|
+
to third parties are expressly permitted.
|
|
31
|
+
|
|
32
|
+
Change Date: 2030-08-03
|
|
33
|
+
|
|
34
|
+
Change License: Apache License, Version 2.0
|
|
35
|
+
|
|
36
|
+
-----------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
Terms
|
|
39
|
+
|
|
40
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
41
|
+
works, redistribute, and make non-production use of the Licensed Work. The
|
|
42
|
+
Licensor may make an Additional Use Grant, above, permitting limited
|
|
43
|
+
production use.
|
|
44
|
+
|
|
45
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
46
|
+
available distribution of a specific version of the Licensed Work under this
|
|
47
|
+
License, whichever comes first, the Licensor hereby grants you rights under
|
|
48
|
+
the terms of the Change License, and the rights granted in the paragraph
|
|
49
|
+
above terminate.
|
|
50
|
+
|
|
51
|
+
If your use of the Licensed Work does not comply with the requirements
|
|
52
|
+
currently in effect as described in this License, you must purchase a
|
|
53
|
+
commercial license from the Licensor, its affiliated entities, or authorized
|
|
54
|
+
resellers, or you must refrain from using the Licensed Work.
|
|
55
|
+
|
|
56
|
+
All copies of the original and modified Licensed Work, and derivative works
|
|
57
|
+
of the Licensed Work, are subject to this License. This License applies
|
|
58
|
+
separately for each version of the Licensed Work and the Change Date may vary
|
|
59
|
+
for each version of the Licensed Work released by Licensor.
|
|
60
|
+
|
|
61
|
+
You must conspicuously display this License on each original or modified copy
|
|
62
|
+
of the Licensed Work. If you receive the Licensed Work in original or
|
|
63
|
+
modified form from a third party, the terms and conditions set forth in this
|
|
64
|
+
License apply to your use of that work.
|
|
65
|
+
|
|
66
|
+
Any use of the Licensed Work in violation of this License will automatically
|
|
67
|
+
terminate your rights under this License for the current and all other
|
|
68
|
+
versions of the Licensed Work.
|
|
69
|
+
|
|
70
|
+
This License does not grant you any right in any trademark or logo of
|
|
71
|
+
Licensor or its affiliates (provided that you may use a trademark or logo of
|
|
72
|
+
Licensor as expressly required by this License).
|
|
73
|
+
|
|
74
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
|
75
|
+
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
|
76
|
+
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
|
77
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
|
78
|
+
TITLE.
|
|
79
|
+
|
|
80
|
+
MariaDB hereby grants you permission to use this License's text to license
|
|
81
|
+
your works, and to refer to it using the trademark "Business Source License",
|
|
82
|
+
as long as you comply with the Covenants of Licensor below.
|
|
83
|
+
|
|
84
|
+
-----------------------------------------------------------------------------
|
|
85
|
+
|
|
86
|
+
Covenants of Licensor
|
|
87
|
+
|
|
88
|
+
In consideration of the right to use this License's text and the "Business
|
|
89
|
+
Source License" name and trademark, Licensor covenants to MariaDB, and to all
|
|
90
|
+
other recipients of the licensed work to be provided by Licensor:
|
|
91
|
+
|
|
92
|
+
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
|
93
|
+
or a license that is compatible with GPL Version 2.0 or a later version,
|
|
94
|
+
where "compatible" means that software provided under the Change License
|
|
95
|
+
can be included in a program with software provided under GPL Version 2.0
|
|
96
|
+
or a later version. Licensor may specify additional Change Licenses
|
|
97
|
+
without limitation.
|
|
98
|
+
|
|
99
|
+
2. To either: (a) specify an additional grant of rights to use that does not
|
|
100
|
+
impose any additional restriction on the right granted in this License, as
|
|
101
|
+
the Additional Use Grant; or (b) insert the text "None".
|
|
102
|
+
|
|
103
|
+
3. To specify a Change Date.
|
|
104
|
+
|
|
105
|
+
4. Not to modify this License in any other way.
|
|
106
|
+
|
|
107
|
+
-----------------------------------------------------------------------------
|
|
108
|
+
|
|
109
|
+
Notice
|
|
110
|
+
|
|
111
|
+
The Business Source License (this document, or the "License") is not an Open
|
|
112
|
+
Source license. However, the Licensed Work will eventually be made available
|
|
113
|
+
under an Open Source License, as stated in this License.
|
|
114
|
+
|
|
115
|
+
For information about alternative licensing arrangements for the Licensed
|
|
116
|
+
Work, contact the Licensor.
|
package/README.md
CHANGED
|
@@ -1,92 +1,71 @@
|
|
|
1
1
|
# Oracle
|
|
2
2
|
|
|
3
|
-
## Quickstart (
|
|
3
|
+
## Quickstart (standalone CLI)
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm i -g @oracle-agent/oracle
|
|
7
|
-
oracle
|
|
8
|
-
oracle
|
|
9
|
-
oracle
|
|
10
|
-
oracle
|
|
11
|
-
oracle doctor # verify
|
|
12
|
-
# optional, explicit second step: signing stays a separate local package
|
|
13
|
-
npm i -g @oracle-agent/operator
|
|
14
|
-
oracle sign init
|
|
6
|
+
npm i -g @oracle-agent/oracle@latest # Node >= 20.19
|
|
7
|
+
oracle --version
|
|
8
|
+
oracle auth login claude # or codex / grok
|
|
9
|
+
oracle # native Oracle chat
|
|
10
|
+
oracle doctor # verify local posture
|
|
15
11
|
```
|
|
16
12
|
|
|
13
|
+
Prefer an API key instead? `oracle auth api-key openrouter` accepts hidden
|
|
14
|
+
interactive input. `oracle auth status` reports providers without printing
|
|
15
|
+
credentials. Linux, Windows, and macOS apps are in beta.
|
|
16
|
+
|
|
17
17
|
|
|
18
18
|
**Prepare-only multichain agent control plane.** Policy-bounded intents; your wallet signs.
|
|
19
19
|
|
|
20
20
|
Specialist agent profiles, real protocol intents, self-custody by default,
|
|
21
21
|
receipts or it didn't happen.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
with
|
|
23
|
+
Built for [Hermes](https://github.com/NousResearch/hermes-agent), the
|
|
24
|
+
open-source agent runtime from [Nous Research](https://nousresearch.com), but
|
|
25
|
+
Hermes is optional.
|
|
26
|
+
|
|
27
|
+
Oracle can run standalone model auth directly with API keys or Claude, Codex,
|
|
28
|
+
and Grok OAuth. OAuth credentials use the OS keychain when available, with a
|
|
29
|
+
private `0600` local fallback when keychain storage is unavailable.
|
|
28
30
|
|
|
29
31
|
This package is **prepare-only**: it never takes a private key and never
|
|
30
|
-
broadcasts.
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
broadcasts. The owner-operated signer/executor is private infrastructure, is
|
|
33
|
+
not published on npm, and is not part of holder onboarding. Never paste a seed,
|
|
34
|
+
private key, vault passphrase, or signer token into Oracle chat.
|
|
33
35
|
|
|
34
36
|
---
|
|
35
37
|
|
|
36
|
-
## Start
|
|
38
|
+
## Start safely
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
1. Install the public CLI and authenticate a model provider as shown above.
|
|
41
|
+
2. Run `oracle chain list`, then `oracle chain use <name>`.
|
|
42
|
+
3. Use reads, research, quotes, simulations, and unsigned preparation.
|
|
43
|
+
4. Review every prepared artifact in the wallet that will sign it.
|
|
44
|
+
5. Treat only a confirmed transaction hash plus receipt as execution.
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
import { data } from "@oracle-agent/oracle";
|
|
46
|
-
const prepared = await data.call("hl-perps", "prepareOrder", { /* coin, side, size... */ });
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Path A — self-custody first:** review the prepared artifact and sign it with
|
|
50
|
-
the owner/main wallet, browser wallet, smart account, hardware wallet, or
|
|
51
|
-
protocol-native wallet. Oracle's public package stops at prepare: your wallet
|
|
52
|
-
authorizes and broadcasts.
|
|
46
|
+
Hermes is optional. To add its isolated runtime, specialist profiles, and local
|
|
47
|
+
read plane later:
|
|
53
48
|
|
|
54
49
|
```bash
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
mkdir -p ~/.config/oracle/keys && chmod 700 ~/.config/oracle/keys
|
|
60
|
-
# write key, then: npx oracle-vault encrypt ~/.config/oracle/keys/evm.key
|
|
61
|
-
export HL_KEY_FILE=~/.config/oracle/keys/evm.key.vault.json
|
|
62
|
-
export ORACLE_VAULT_PASSPHRASE='...' # signer shell only — never in the agent chat
|
|
50
|
+
oracle bootstrap
|
|
51
|
+
oracle init --apply # writes profiles + local HMAC attestation config; no wallet key
|
|
52
|
+
oracle data serve # loopback only: 127.0.0.1:8787
|
|
53
|
+
oracle doctor
|
|
63
54
|
```
|
|
64
55
|
|
|
56
|
+
Library users can prepare directly:
|
|
57
|
+
|
|
65
58
|
```js
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
await hlSignAndSubmit(prepared, {
|
|
70
|
-
keyFile: process.env.HL_KEY_FILE,
|
|
71
|
-
userInitiated: true,
|
|
59
|
+
import { data } from "@oracle-agent/oracle";
|
|
60
|
+
const prepared = await data.call("hl-perps", "prepareOrder", {
|
|
61
|
+
/* coin, side, size, owner wallet address */
|
|
72
62
|
});
|
|
63
|
+
// Oracle stops here. The user's wallet reviews, signs, and submits.
|
|
73
64
|
```
|
|
74
65
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
npx oracle-signer
|
|
79
|
-
#
|
|
80
|
-
# Daemon signing requires the SAME HMAC secret in the preparer and the signer,
|
|
81
|
-
# otherwise every sign fails with "ORACLE_STAMP_HMAC_SECRET missing in signer":
|
|
82
|
-
export ORACLE_STAMP_HMAC_SECRET='long-random-secret'
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
`ORACLE_AUTONOMOUS_TRADING=1` is only for trusted, owner-controlled direct-exec
|
|
86
|
-
code running locally with your policy and caps. It is not a permission bit for a
|
|
87
|
-
model or remote agent process; use `oracle-signer` for the agent-facing path.
|
|
88
|
-
|
|
89
|
-
Full vault / multi-chain / daemon detail → operator [SETUP](https://github.com/demi-hl/oracle-operator/blob/main/SETUP.md).
|
|
66
|
+
See [SETUP.md](SETUP.md) for clean installation and troubleshooting,
|
|
67
|
+
[docs/holder-beta.md](docs/holder-beta.md) for the Locals-only launch gate, and
|
|
68
|
+
[docs/buzz-integration.md](docs/buzz-integration.md) for the Buzz HTTP contract.
|
|
90
69
|
|
|
91
70
|
---
|
|
92
71
|
|
|
@@ -122,7 +101,7 @@ loop.
|
|
|
122
101
|
| Authority | prompt-level "be careful" | signed grant: chain, spend, targets, TTL — enforced by your wallet, not by us |
|
|
123
102
|
| Destinations | whatever the model emits | reviewed per-chain allowlist, fail-closed |
|
|
124
103
|
| Slippage | fixed % | live guard recomputed per leg, hard 100 bps cap |
|
|
125
|
-
| Proof | model says "done" | hash + receipt + balance delta or it failed |
|
|
104
|
+
| Proof | model says "done" | hash + verified successful on-chain receipt + expected balance delta or it failed |
|
|
126
105
|
| Surface | swap only | swaps, bridges, perps, vaults, yield, NFTs, intents |
|
|
127
106
|
|
|
128
107
|
## Architecture
|
|
@@ -150,9 +129,9 @@ Three planes, and the boundary between them is mechanically enforced:
|
|
|
150
129
|
- **Policy plane** (public) — destination allowlists, slippage guards, route and
|
|
151
130
|
vault attestations, grant schema. Holds no keys; constrains what a signer may
|
|
152
131
|
be asked to do.
|
|
153
|
-
- **Exec plane** (optional
|
|
154
|
-
|
|
155
|
-
|
|
132
|
+
- **Exec plane** (private, optional) — signing and broadcast live only in
|
|
133
|
+
separately operated owner infrastructure. It is not published on npm, not in
|
|
134
|
+
this artifact, and not available to holder installs.
|
|
156
135
|
|
|
157
136
|
`test/custody-boundary.test.mjs` walks the import graph and fails if any public
|
|
158
137
|
module reaches wallet key material or a house signer. The split is a test, not a
|
|
@@ -208,18 +187,24 @@ known answer. This matters: the canonical QuoterV2 address also has bytecode on
|
|
|
208
187
|
Base, but does not price that chain's pairs. A codesize check would have
|
|
209
188
|
allowlisted the wrong contract.
|
|
210
189
|
|
|
211
|
-
**
|
|
190
|
+
**42 provider modules** in the read/quote catalog, covering **219 unique
|
|
191
|
+
protocols/venues** across EVM, Solana, and Bitcoin (115 EVM + cross-chain, 98
|
|
192
|
+
Solana venues backed by 101 verified Jupiter program IDs, 6 Bitcoin surfaces).
|
|
193
|
+
One module can cover many protocols: the Jupiter module alone routes 98 Solana
|
|
194
|
+
venues, so provider-module count and protocol count are different numbers.
|
|
212
195
|
|
|
213
196
|
| Class | Providers |
|
|
214
197
|
|---|---|
|
|
215
198
|
| Chain / explorer | EVM JSON-RPC, Blockscout, Solana RPC, Bitcoin Esplora |
|
|
216
199
|
| Market data | DexScreener, GeckoTerminal, DeFiLlama |
|
|
217
|
-
| DEX / aggregator | Uniswap V3, Aerodrome, Curve, Balancer, LI.FI, ParaSwap, Odos, 0x, 1inch |
|
|
218
|
-
|
|
|
200
|
+
| DEX / aggregator | Uniswap V3/V4, Aerodrome, Curve, Balancer, LI.FI, ParaSwap, Odos, 0x, 1inch, HyperEVM DEXes |
|
|
201
|
+
| Solana | Jupiter (98 venue labels, 101 verified program IDs) |
|
|
202
|
+
| Intents | CoW Protocol, RFQ |
|
|
219
203
|
| Perps / lending / yield | GMX v2, Morpho, Pendle |
|
|
220
204
|
| Bridges | Across, Hop, Relay |
|
|
221
205
|
| Venues | Hyperliquid (core perps + HIP-3 builder dexs + HIP-4 outcomes), Polymarket (read + local CLOB prepare) |
|
|
222
206
|
| NFT | OpenSea, Satflow, Magic Eden (Solana) |
|
|
207
|
+
| Bitcoin | mempool/Esplora, Ordinals, Runes, UniSat, Best-in-Slot, Satflow |
|
|
223
208
|
|
|
224
209
|
Every provider and every scanner capability declares an honest tier —
|
|
225
210
|
`read-only`, `quote-only`, `prepare`, or `intent`. **API coverage is not execution
|
|
@@ -289,10 +274,11 @@ owner-local source lane.** The short version:
|
|
|
289
274
|
- Reads and quotes need **no keys**.
|
|
290
275
|
- The public package exposes no signer, key vault, or broadcast path.
|
|
291
276
|
- User wallets authorize prepared actions outside the public data plane.
|
|
292
|
-
- Owner-local signing
|
|
293
|
-
|
|
294
|
-
policy-bounded surfaces: `hl`,
|
|
295
|
-
`sol`, with explicit caps and
|
|
277
|
+
- Owner-local signing exists only in separately operated private infrastructure;
|
|
278
|
+
it is not published on npm and is not a holder capability. When installed by
|
|
279
|
+
the owner, its generic signer exposes six policy-bounded surfaces: `hl`,
|
|
280
|
+
`poly`, `evm-swap`, `evm-bridge`, `btc`, and `sol`, with explicit caps and
|
|
281
|
+
fail-closed allowlists.
|
|
296
282
|
|
|
297
283
|
### Action vocabulary and execution planes
|
|
298
284
|
|
|
@@ -301,9 +287,10 @@ Oracle keeps capability and authorization separate:
|
|
|
301
287
|
- Public Oracle reads, quotes, simulates, and prepares unsigned artifacts.
|
|
302
288
|
- **Path A:** owner/main, browser, smart-account, hardware, or protocol-native
|
|
303
289
|
wallets sign the prepared artifact. This is the default self-custody path.
|
|
304
|
-
- **Path B:** owner-local
|
|
305
|
-
|
|
306
|
-
|
|
290
|
+
- **Path B:** private owner-local infrastructure may sign on the same host with
|
|
291
|
+
the owner's key and policy. It is deployment-specific, unavailable to holder
|
|
292
|
+
installs, and must never expose a vault passphrase or signer credential to the
|
|
293
|
+
agent process.
|
|
307
294
|
- The generic unattended signer exposes six bounded surfaces: `hl`, `poly`,
|
|
308
295
|
`evm-swap`, `evm-bridge`, `btc`, `sol`. Each surface decodes its own
|
|
309
296
|
envelope, enforces its caps, and refuses while its allowlists are empty.
|
|
@@ -335,6 +322,10 @@ npm run start:public
|
|
|
335
322
|
# http://127.0.0.1:8799/
|
|
336
323
|
```
|
|
337
324
|
|
|
325
|
+
This is an unauthenticated loopback development server, not a holder gate or a
|
|
326
|
+
public deployment. Keep it off LAN/tailnet/public interfaces and place a tested
|
|
327
|
+
admission gateway in front of any hosted beta.
|
|
328
|
+
|
|
338
329
|
## Model providers
|
|
339
330
|
|
|
340
331
|
Oracle is a library. Drive it with Claude, GPT, Gemini, Grok, a local model, or
|
|
@@ -345,7 +336,7 @@ npx oracle-data # local read plane on 127.0.0.1:8787
|
|
|
345
336
|
npx oracle-data-mcp # MCP stdio server (any MCP client); needs oracle-data up
|
|
346
337
|
```
|
|
347
338
|
|
|
348
|
-
It is better under [Hermes](https://
|
|
339
|
+
It is better under [Hermes](https://hermes-agent.nousresearch.com/docs), because
|
|
349
340
|
a trading stack is several workloads with opposite needs and **per-profile
|
|
350
341
|
routing** gives each its own model, tools, and key scope: cheap wide context for
|
|
351
342
|
research, a fast model for execution where latency is money, the strongest model
|
|
@@ -387,9 +378,9 @@ only read, simulate, and prepare — and a test enforces that so widening custod
|
|
|
387
378
|
can't pass review quietly. An existing `SOUL.md` is never overwritten without
|
|
388
379
|
`--force`, and `--force` writes a timestamped backup first.
|
|
389
380
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
381
|
+
Oracle does not issue its own model credential. Standalone chat uses the OAuth
|
|
382
|
+
login or API key the user configured; Hermes mode uses whichever provider that
|
|
383
|
+
Hermes installation already supports.
|
|
393
384
|
|
|
394
385
|
**Why "built for Hermes" and not just "works anywhere":** Oracle's read plane is
|
|
395
386
|
an MCP server, so any MCP client can call it. But the *mesh* — per-lane memory,
|
|
@@ -500,18 +491,18 @@ oracle-data-mcp
|
|
|
500
491
|
|
|
501
492
|
## License
|
|
502
493
|
|
|
503
|
-
[
|
|
504
|
-
|
|
505
|
-
The code is open source. The **Oracle** name and marks are reserved; please
|
|
506
|
-
don't imply endorsement by an official deployment when shipping a fork.
|
|
494
|
+
[Business Source License 1.1](LICENSE) — source-available, not open source.
|
|
507
495
|
|
|
508
|
-
|
|
496
|
+
You may read, modify, self-host, and use Oracle freely for internal use,
|
|
497
|
+
evaluation, research, and personal use. What you may not do is offer Oracle,
|
|
498
|
+
or substantially its functionality, to third parties as a competing product
|
|
499
|
+
or hosted service without a commercial license.
|
|
509
500
|
|
|
510
|
-
|
|
501
|
+
Each version converts to **Apache-2.0** on its Change Date (four years after
|
|
502
|
+
release). Versions `0.1.0` through `0.11.0` were published under Apache-2.0
|
|
503
|
+
and remain under those terms.
|
|
511
504
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
# agent: ORACLE_SIGNER_URL + ORACLE_SIGNER_TOKEN only
|
|
515
|
-
```
|
|
505
|
+
The **Oracle** name and marks are reserved; please don't imply endorsement by
|
|
506
|
+
an official deployment when shipping a fork.
|
|
516
507
|
|
|
517
|
-
|
|
508
|
+
For commercial licensing, contact the maintainer.
|