@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.
Files changed (57) hide show
  1. package/README.md +10 -3
  2. package/SETUP.md +3 -0
  3. package/dist/assets/skills/bankrbot/SKILL.md +24 -0
  4. package/dist/assets/skills/oracle-agentic-crypto/SKILL.md +39 -0
  5. package/dist/assets/skills/oracle-chain-graphs-telegram-cards/SKILL.md +2 -0
  6. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  7. package/dist/assets/skills/oracle-uniswap-v4-hooks/SKILL.md +31 -0
  8. package/dist/assets/skills/oracle-x402/SKILL.md +30 -0
  9. package/dist/bin/desk-server.mjs +28 -26
  10. package/dist/bin/oracle-data-mcp.mjs +32 -12
  11. package/dist/bin/oracle-gateway.mjs +39 -26
  12. package/dist/bin/oracle-mev-arb-shadow.mjs +5 -5
  13. package/dist/bin/oracle-mev-shadow.mjs +5 -5
  14. package/dist/bin/oracle-public-server.mjs +4 -4
  15. package/dist/bin/oracle-route.mjs +15 -15
  16. package/dist/bin/oracle-scan.mjs +11 -11
  17. package/dist/bin/oracle.mjs +4 -3
  18. package/dist/cli/commands/auth.mjs +6 -6
  19. package/dist/cli/commands/chat.mjs +155 -155
  20. package/dist/cli/commands/doctor.mjs +1 -1
  21. package/dist/cli/commands/eval.mjs +77 -77
  22. package/dist/cli/commands/harness.mjs +4 -4
  23. package/dist/cli/commands/model.mjs +157 -157
  24. package/dist/cli/commands/receipt.mjs +1 -1
  25. package/dist/cli/commands/setup.mjs +23 -23
  26. package/dist/cli/commands/signer.mjs +8 -8
  27. package/dist/cli/commands/snipe.mjs +24 -0
  28. package/dist/cli/commands/swap.mjs +25 -25
  29. package/dist/cli/commands/venues.mjs +1 -1
  30. package/dist/control/approval-binding.mjs +1 -0
  31. package/dist/control/finality.mjs +1 -0
  32. package/dist/control-plane/index.mjs +6 -0
  33. package/dist/data/desk-data.mjs +26 -24
  34. package/dist/governance-prepare.mjs +2 -0
  35. package/dist/index.mjs +44 -31
  36. package/dist/local-marketplace.mjs +3 -0
  37. package/dist/local-pack-registry.mjs +3 -0
  38. package/dist/local-signer/index.mjs +3 -3
  39. package/dist/local-signer/runtime.mjs +8 -8
  40. package/dist/local-x402.mjs +3 -0
  41. package/dist/nft/index.mjs +1 -1
  42. package/dist/notifications/index.mjs +3 -0
  43. package/dist/position-health.mjs +2 -0
  44. package/dist/router/index.mjs +2 -2
  45. package/dist/router/prepare-bridge.mjs +2 -2
  46. package/dist/safety-intelligence.mjs +1 -0
  47. package/dist/scanner/index.mjs +3 -3
  48. package/dist/task.d.mts +130 -0
  49. package/dist/task.mjs +2 -0
  50. package/dist/tax-lots.mjs +5 -0
  51. package/dist/tenant-rbac.mjs +1 -0
  52. package/dist/workflow-telemetry.mjs +1 -0
  53. package/package.json +17 -2
  54. package/public/agent-connect/index.html +2 -2
  55. package/public/install.sh +2 -2
  56. package/public/oracle-splash/index.html +2 -2
  57. 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
- **88 provider modules** in the read/quote catalog, covering **220 unique
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.27`
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