@oracle-agent/oracle 0.28.27 → 0.28.29
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/README.md +10 -3
- package/SETUP.md +3 -0
- package/dist/assets/skills/bankrbot/SKILL.md +24 -0
- package/dist/assets/skills/oracle-agentic-crypto/SKILL.md +39 -0
- package/dist/assets/skills/oracle-chain-graphs-telegram-cards/SKILL.md +2 -0
- package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
- package/dist/assets/skills/oracle-uniswap-v4-hooks/SKILL.md +31 -0
- package/dist/assets/skills/oracle-x402/SKILL.md +30 -0
- package/dist/bin/desk-server.mjs +28 -26
- package/dist/bin/oracle-data-mcp.mjs +32 -12
- package/dist/bin/oracle-gateway.mjs +39 -26
- package/dist/bin/oracle-mev-arb-shadow.mjs +5 -5
- package/dist/bin/oracle-mev-shadow.mjs +5 -5
- package/dist/bin/oracle-public-server.mjs +4 -4
- package/dist/bin/oracle-route.mjs +15 -15
- package/dist/bin/oracle-scan.mjs +11 -11
- package/dist/bin/oracle.mjs +4 -3
- package/dist/cli/commands/auth.mjs +6 -6
- package/dist/cli/commands/chat.mjs +155 -155
- package/dist/cli/commands/doctor.mjs +1 -1
- package/dist/cli/commands/eval.mjs +77 -77
- package/dist/cli/commands/harness.mjs +4 -4
- package/dist/cli/commands/model.mjs +157 -157
- package/dist/cli/commands/receipt.mjs +1 -1
- package/dist/cli/commands/setup.mjs +23 -23
- package/dist/cli/commands/signer.mjs +8 -8
- package/dist/cli/commands/snipe.mjs +24 -0
- package/dist/cli/commands/swap.mjs +25 -25
- package/dist/cli/commands/venues.mjs +1 -1
- package/dist/control/approval-binding.mjs +1 -0
- package/dist/control/finality.mjs +1 -0
- package/dist/control-plane/index.mjs +6 -0
- package/dist/data/desk-data.mjs +26 -24
- package/dist/governance-prepare.mjs +2 -0
- package/dist/index.mjs +44 -31
- package/dist/local-marketplace.mjs +3 -0
- package/dist/local-pack-registry.mjs +3 -0
- package/dist/local-signer/index.mjs +3 -3
- package/dist/local-signer/runtime.mjs +8 -8
- package/dist/local-x402.mjs +3 -0
- package/dist/nft/index.mjs +1 -1
- package/dist/notifications/index.mjs +3 -0
- package/dist/position-health.mjs +2 -0
- package/dist/router/index.mjs +2 -2
- package/dist/router/prepare-bridge.mjs +2 -2
- package/dist/safety-intelligence.mjs +1 -0
- package/dist/scanner/index.mjs +3 -3
- package/dist/task.d.mts +130 -0
- package/dist/task.mjs +2 -0
- package/dist/tax-lots.mjs +5 -0
- package/dist/tenant-rbac.mjs +1 -0
- package/dist/workflow-telemetry.mjs +1 -0
- package/package.json +17 -2
- package/public/agent-connect/index.html +2 -2
- package/public/install.sh +2 -2
- package/public/oracle-splash/index.html +2 -2
- package/public/oracle-splash/install.sh +2 -2
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ oracle doctor # verify local posture
|
|
|
13
13
|
|
|
14
14
|
`oracle setup model` offers Anthropic, OpenAI Codex, and Grok OAuth plus secure
|
|
15
15
|
API-key setup for OpenRouter, OpenAI, Anthropic, xAI, DeepSeek, Gemini, Kimi,
|
|
16
|
-
Mistral, Nous, and custom OpenAI-compatible providers. `oracle auth status` reports
|
|
16
|
+
Mistral, Nous Portal, Qwen, GLM, and custom OpenAI-compatible providers. `oracle auth status` reports
|
|
17
17
|
providers without printing credentials. Linux, Windows, and macOS apps are in beta.
|
|
18
18
|
|
|
19
19
|
The CLI, source, and desktop beta are public to everyone. Locals Only holders
|
|
@@ -83,6 +83,13 @@ const prepared = await data.call("hl-perps", "prepareOrder", {
|
|
|
83
83
|
// Oracle stops here. The user's wallet reviews, signs, and submits.
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
+
Hosts that need a prepare-only task turn can import
|
|
87
|
+
`createTaskAdapter` and its shared request/result types from
|
|
88
|
+
`@oracle-agent/oracle/task`. The entrypoint advertises only `oracle_cli` and
|
|
89
|
+
`trade_lifecycle`; the host injects both its model provider and read/prepare CLI
|
|
90
|
+
runner. It does not install an HTTP route or UI. See
|
|
91
|
+
[docs/task-adapter.md](docs/task-adapter.md).
|
|
92
|
+
|
|
86
93
|
See [SETUP.md](SETUP.md) for clean installation and troubleshooting,
|
|
87
94
|
[docs/locals-only-fee-waiver.md](docs/locals-only-fee-waiver.md) for the 0% holder fee, and
|
|
88
95
|
[docs/buzz-integration.md](docs/buzz-integration.md) for the Buzz HTTP contract.
|
|
@@ -242,7 +249,7 @@ known answer. This matters: the canonical QuoterV2 address also has bytecode on
|
|
|
242
249
|
Base, but does not price that chain's pairs. A codesize check would have
|
|
243
250
|
allowlisted the wrong contract.
|
|
244
251
|
|
|
245
|
-
**
|
|
252
|
+
**93 provider modules** in the read/quote catalog, covering **220 unique
|
|
246
253
|
protocols/venues** across EVM, Solana, and Bitcoin (115 EVM + cross-chain, 98
|
|
247
254
|
Solana venues backed by 101 verified Jupiter program IDs, 6 Bitcoin surfaces).
|
|
248
255
|
One module can cover many protocols: the Jupiter module alone routes 98 Solana
|
|
@@ -258,7 +265,7 @@ venues, so provider-module count and protocol count are different numbers.
|
|
|
258
265
|
| Perps / lending / yield | GMX v2, Morpho, Pendle |
|
|
259
266
|
| Bridges | Across, Hop, Relay |
|
|
260
267
|
| Venues | Hyperliquid (core perps + HIP-3 builder dexs + HIP-4 outcomes), Polymarket (read + local CLOB prepare) |
|
|
261
|
-
| NFT | OpenSea, Satflow, Magic Eden (Solana) |
|
|
268
|
+
| NFT | OpenSea, Satflow, Magic Eden (Solana); additive owner-local P2 catalog |
|
|
262
269
|
| Bitcoin | mempool/Esplora, Ordinals, Runes, UniSat, Best-in-Slot, Satflow |
|
|
263
270
|
|
|
264
271
|
Every provider and every scanner capability declares an honest tier —
|
package/SETUP.md
CHANGED
|
@@ -114,6 +114,9 @@ model. Use `--no-browser` when the browser must be opened manually.
|
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
116
|
oracle setup model openrouter
|
|
117
|
+
oracle setup model qwen
|
|
118
|
+
oracle setup model glm
|
|
119
|
+
oracle setup model nous
|
|
117
120
|
# also supported: openai, anthropic, xai, deepseek, gemini, kimi, mistral, nous, custom
|
|
118
121
|
```
|
|
119
122
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bankrbot
|
|
3
|
+
description: Use Bankr wallet data and swap quotes through Oracle's read-only adapter without giving Bankr execution authority.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BankrBot
|
|
7
|
+
|
|
8
|
+
Oracle integrates Bankr as a bounded Wallet API data source, not as its model, wallet executor, or signing backend.
|
|
9
|
+
|
|
10
|
+
Configure `BANKR_API_KEY` locally with a Bankr key restricted to read-only access and enable Wallet API access in Bankr. Never paste the key into chat. The endpoint is pinned to `https://api.bankr.bot`; a custom host does not receive the credential.
|
|
11
|
+
|
|
12
|
+
Available Oracle calls:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
oracle_cli data call bankr wallet
|
|
16
|
+
oracle_cli data call bankr portfolio
|
|
17
|
+
oracle_cli data call bankr swapQuote fromChain=<chain> fromToken=<token> toChain=<chain> toToken=<token> amount=<decimal> slippageBps=<10-2000>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`swapQuote` is research data only. Compare it against Oracle's native best-execution routes, gas, fees, slippage, minimum received, and custody path before recommending it.
|
|
21
|
+
|
|
22
|
+
Oracle deliberately excludes Bankr `/wallet/swap`, transfer, sign, submit, token-launch, automation, Agent API prompt, and LLM gateway surfaces. Do not use a Bankr response to bypass Oracle's prepare-only hosted plane or armed-local signer policy. A Bankr-managed wallet is vendor custody and must be labeled separately from Oracle's encrypted local vault and the user's connected wallet.
|
|
23
|
+
|
|
24
|
+
Sources: https://docs.bankr.bot/wallet-api/overview/, https://docs.bankr.bot/wallet-api/swap/, https://docs.bankr.bot/cli/, and https://github.com/BankrBot/skills/tree/main/bankr
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oracle-agentic-crypto
|
|
3
|
+
description: Choose current crypto-agent standards by leverage and custody risk instead of adopting every new primitive.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agentic crypto stack
|
|
7
|
+
|
|
8
|
+
Use the narrowest surface that completes the task.
|
|
9
|
+
|
|
10
|
+
## Available now
|
|
11
|
+
|
|
12
|
+
- Uniswap v4: quote and inspect hook permissions/code/pool state; prepare guarded unsigned Universal Router calldata only for static-fee, zero-hook pools.
|
|
13
|
+
- x402 v2: inspect `PAYMENT-REQUIRED` and prepare an exact-payment template under explicit network, asset, recipient, and atomic caps.
|
|
14
|
+
- ERC-8004: inspect and prepare agent identity metadata without inventing registry deployments.
|
|
15
|
+
- Permit2: surface the exact approval requirement for reviewed swap routes. Never infer unlimited approval.
|
|
16
|
+
- Intents and aggregators: compare CoW, 1inch, 0x, ParaSwap, LI.FI, Across, Relay, and native pools net of gas, fees, timing, and signing semantics.
|
|
17
|
+
- Simulation and receipts: simulate prepared EVM calls, bind guard data to calldata, then reconcile the real receipt after user-authorized execution.
|
|
18
|
+
|
|
19
|
+
## Next, only behind wallet capability checks
|
|
20
|
+
|
|
21
|
+
- EIP-5792 wallet call batches for wallet-mediated multi-call UX.
|
|
22
|
+
- EIP-7702 delegated EOAs and ERC-4337 smart accounts for scoped account behavior.
|
|
23
|
+
- ERC-7579 modules and ERC-7715 permissions for session-limited capabilities.
|
|
24
|
+
- EIP-7739 defensive typed-data validation for smart-account signatures.
|
|
25
|
+
- EIP-7710 delegation chains when x402 or wallet tooling can prove revocation, expiry, target, selector, token, and spend caps.
|
|
26
|
+
|
|
27
|
+
These are not execution-ready merely because a wallet or SDK advertises them. Before arming any of them, require chain support, exact implementation/version, revocation path, expiry, selector and destination allowlists, token caps, simulation, and receipt reconciliation.
|
|
28
|
+
|
|
29
|
+
## Decision rule
|
|
30
|
+
|
|
31
|
+
1. Read-only discovery first.
|
|
32
|
+
2. Prepare an unsigned or typed-data artifact with explicit bounds.
|
|
33
|
+
3. Keep hosted Oracle keyless and prepare-only.
|
|
34
|
+
4. Use armed-local signing only for a user-requested action through an already reviewed signer surface.
|
|
35
|
+
5. Treat unattended scheduling, session keys, delegated accounts, and recurring x402 payments as a separate risk class.
|
|
36
|
+
|
|
37
|
+
Avoid vendor AI gateways inside providers. Providers return deterministic external data or prepared artifacts; Prime/Oracle remains the reasoning harness.
|
|
38
|
+
|
|
39
|
+
Canonical references: https://eips.ethereum.org/EIPS/eip-5792, https://eips.ethereum.org/EIPS/eip-7702, https://eips.ethereum.org/EIPS/eip-4337, https://eips.ethereum.org/EIPS/eip-7579, https://eips.ethereum.org/EIPS/eip-7715, https://eips.ethereum.org/EIPS/eip-7739, https://eips.ethereum.org/EIPS/eip-7710, https://www.erc8004.org/, and https://docs.uniswap.org/contracts/permit2/overview
|
|
@@ -46,6 +46,8 @@ cards.
|
|
|
46
46
|
- `/approve` / `/deny` are owner-only fallbacks for WhatsApp, Discord, Signal,
|
|
47
47
|
and any chat that cannot render inline buttons. Do not prefer them on Telegram
|
|
48
48
|
when the card is available.
|
|
49
|
+
- Allow / `/approve` must execute on the local signer (sign + broadcast). A
|
|
50
|
+
confirmation nonce with no fill is not an approval.
|
|
49
51
|
|
|
50
52
|
## Graph schema
|
|
51
53
|
|
|
@@ -97,7 +97,7 @@ does not prove npm users receive it. A locally hosted model/data/policy loop doe
|
|
|
97
97
|
a bundled signer. A merged feature is not public until the npm artifact containing it is
|
|
98
98
|
published and inspected.
|
|
99
99
|
|
|
100
|
-
**Candidate release in this source tree:** public package `@oracle-agent/oracle@0.28.
|
|
100
|
+
**Candidate release in this source tree:** public package `@oracle-agent/oracle@0.28.29`
|
|
101
101
|
ships the encrypted local vault + short-lived loopback signer. Hosted/keyless
|
|
102
102
|
Oracle cannot hold keys or move funds. Self-host after `oracle sign init|import` is **auto-armed**
|
|
103
103
|
for user-initiated actions. Public still charges the disclosed fee card; Administrator
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oracle-uniswap-v4-hooks
|
|
3
|
+
description: Inspect and prepare Uniswap v4 hook pools without trusting arbitrary hook contracts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Uniswap v4 hooks
|
|
7
|
+
|
|
8
|
+
Inspect a nonzero hook before quoting it as usable or preparing calldata:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
oracle_cli data call uniswap-v4 inspectHook chainId=8453 tokenIn=<address> tokenOut=<address> fee=<uint24> tickSpacing=<int24> hooks=<hook>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Read `hook.permissions.enabled`, `hook.codePresent`, `pool.initialized`, `pool.dynamicFee`, and `risk`. Permission bits come from the deployed hook address. They describe which callbacks can run, not whether the code is safe.
|
|
15
|
+
|
|
16
|
+
Risk rules:
|
|
17
|
+
|
|
18
|
+
- No code or uninitialized pool: refuse.
|
|
19
|
+
- Any `ReturnsDelta` permission: high risk custom accounting.
|
|
20
|
+
- Swap or donate callbacks and dynamic fees: medium risk until contract-specific review.
|
|
21
|
+
- Every nonzero hook requires review. `risk.audited` is always false because bytecode presence and permission decoding are not an audit.
|
|
22
|
+
|
|
23
|
+
Preparation is currently restricted to static-fee, zero-hook pools after a fresh quote:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
oracle_cli data call uniswap-v4 prepare chainId=<id> tokenIn=<erc20> tokenOut=<erc20> amountIn=<raw> fee=<static-fee> tickSpacing=<spacing> hooks=0x0000000000000000000000000000000000000000 recipient=<wallet> slippageBps=<0-100> deadlineSeconds=<30-600>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Dynamic-fee, nonzero-hook, opaque-hookData, custom-accounting, native, multihop, exact-output, and PositionManager operations stay inspect/quote-only until a code-hash-specific adapter exists. Oracle keeps `hookData=0x`, builds unsigned Universal Router calldata only for the bounded zero-hook path, and never signs or broadcasts.
|
|
30
|
+
|
|
31
|
+
Sources: https://developers.uniswap.org/docs/protocols/v4/concepts/hooks and https://github.com/Uniswap/v4-core/blob/main/src/libraries/Hooks.sol
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oracle-x402
|
|
3
|
+
description: Inspect x402 payment requirements and prepare capped payment templates without signing or paying.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# x402
|
|
7
|
+
|
|
8
|
+
Use x402 only as an explicit payment negotiation step. Oracle supports version 2 `PAYMENT-REQUIRED` payloads and the `exact` scheme.
|
|
9
|
+
|
|
10
|
+
1. Decode and inspect the server's Base64 `PAYMENT-REQUIRED` header:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
oracle_cli data call x402 inspect paymentRequired=<base64-header>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. Require the user to state all four controls: `network`, `asset`, `payTo`, and `maxAmount` in atomic units.
|
|
17
|
+
|
|
18
|
+
3. Prepare the bounded template:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
oracle_cli data call x402 prepare paymentRequired=<base64-header> network=<caip-2> asset=<asset-id-or-address> payTo=<recipient> maxAmount=<atomic-cap>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The selected requirement must use `scheme=exact`, match every control, and fit under the cap. Re-inspect every new 402 response because requirements can change.
|
|
25
|
+
|
|
26
|
+
Oracle does not create `PAYMENT-SIGNATURE`, sign EIP-3009 or Permit2 payloads, contact a facilitator, retry the paid HTTP request, or broadcast anything. The prepared artifact has `paymentReady=false`, `signingReady=false`, and `broadcastReady=false`. A user-controlled wallet integration must handle the scheme-specific authorization separately.
|
|
27
|
+
|
|
28
|
+
Do not treat the public x402 facilitator as a production mainnet dependency. Verify the facilitator and scheme independently before any wallet integration.
|
|
29
|
+
|
|
30
|
+
Sources: https://docs.x402.org/core-concepts/client-server, https://docs.x402.org/schemes/exact, and https://docs.x402.org/core-concepts/facilitator
|