@oracle-agent/oracle 0.22.1 → 0.22.3

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 (35) hide show
  1. package/README.md +4 -4
  2. package/artifacts/specialist-packs/oracle-full-crypto.json +1 -1
  3. package/dist/assets/profiles/oracle/SOUL.md +12 -21
  4. package/dist/assets/skills/multichain-prepare-desk.md +29 -0
  5. package/dist/assets/skills/oracle-chat/SKILL.md +9 -13
  6. package/dist/assets/skills/oracle-desk.md +1 -1
  7. package/dist/bin/desk-server.mjs +11 -11
  8. package/dist/bin/oracle-data-mcp.mjs +5 -5
  9. package/dist/bin/oracle-gateway.mjs +16 -16
  10. package/dist/bin/oracle-route.mjs +12 -12
  11. package/dist/bin/oracle-upgrade.mjs +7 -15
  12. package/dist/bin/oracle.mjs +13 -33
  13. package/dist/cli/commands/browser-use-runner.sh +13 -0
  14. package/dist/cli/commands/chat.mjs +85 -65
  15. package/dist/cli/commands/doctor.mjs +4 -5
  16. package/dist/cli/commands/init.mjs +3 -3
  17. package/dist/cli/commands/mcp.mjs +36 -45
  18. package/dist/cli/commands/model.mjs +91 -71
  19. package/dist/cli/commands/swap.mjs +4 -4
  20. package/dist/cli/commands/version.mjs +2 -2
  21. package/dist/data/desk-data.mjs +5 -5
  22. package/dist/index.mjs +16 -16
  23. package/dist/router/index.mjs +1 -1
  24. package/dist/router/prepare-bridge.mjs +1 -1
  25. package/package.json +3 -3
  26. package/public/oracle-console/app.js +1 -1
  27. package/public/oracle-console/bitcoin-wallets.js +48 -111
  28. package/public/oracle-console/index.html +1 -1
  29. package/dist/assets/skills/multichain-exec-desk.md +0 -33
  30. package/dist/cli/commands/credential.mjs +0 -1
  31. package/dist/cli/commands/runner.mjs +0 -1
  32. package/dist/cli/commands/sign.mjs +0 -5
  33. package/dist/cli/commands/signer.mjs +0 -1
  34. package/dist/cli/commands/vault.mjs +0 -1
  35. package/dist/gateway/telegram-exact-action-callbacks.mjs +0 -1
package/README.md CHANGED
@@ -384,10 +384,10 @@ oracle setup # telegram / discord / slack messaging
384
384
  ```
385
385
 
386
386
  Terminal and configured messaging channels are transports into the same Hermes
387
- `oracle` profile. When a local operator/MCP is configured, an explicit owner
388
- trade instruction can execute from either interface. The selected model never
389
- bypasses signer-owned grants, allowlists, caps, MAC checks, simulation, or
390
- receipt verification.
387
+ `oracle` profile. Both interfaces are read/prepare-only in this package. They
388
+ can return the same unsigned artifact for review, but neither can discover or
389
+ invoke a signer, vault, control MCP, or broadcaster. Signing stays in the user
390
+ wallet or separately installed private owner infrastructure.
391
391
 
392
392
  Lanes: `oracle` (router), `polymarket-agent`, `hyperliquid-agent`,
393
393
  `robinhood-agent`, `solana-agent`, `bitcoin-agent`, `stable-agent`,
@@ -34,7 +34,7 @@
34
34
  ],
35
35
  "execution_prepare": [
36
36
  "self-custodial-onchain-execution",
37
- "multichain-exec-desk",
37
+ "multichain-prepare-desk",
38
38
  "trade-loop-circuit-breaker",
39
39
  "protocol-api-key-integration",
40
40
  "oracle-bitcoin",
@@ -58,23 +58,14 @@ the data plane). If it stays ambiguous, ask. Do not guess a chain.
58
58
  margin call for different decisions. If `rankedOn` is `gross`, gas was NOT
59
59
  accounted for — say so. See the `oracle-best-execution` skill.
60
60
 
61
- 1. **The public router never signs.** It prepares, simulates, and explains; ordinary
62
- EVM artifacts require the user's wallet signature. Do not turn that public-plane
63
- boundary into the false claim that EVM execution is universally impossible. The
64
- generic unattended signer exposes six bounded surfaces (`hl`, `poly`, `evm-swap`,
65
- `evm-bridge`, `btc`, `sol`), each of which decodes its own envelope and refuses
66
- while its allowlists are empty; a deployment may also
67
- separately expose a same-host, owner-gated EVM executor. Verify that executor
68
- before describing it as available.
61
+ 1. **The public package never signs.** It reads, simulates, and prepares wallet-signable
62
+ artifacts. It does not import keys, expose a signer or vault, arm an executor, or
63
+ broadcast transactions. A separately provisioned owner-controlled executor may
64
+ consume a prepared artifact, but it is outside this package. Never describe one as
65
+ available without live verification and explicit owner authorization.
69
66
  `watch`, `watch this`, and `ping me` always mean `actionMode: alert_only`.
70
- Only an explicit `arm` may mean `actionMode: execute`, and only for one exact,
71
- bounded owner-authorized action.
72
-
73
- **Arming is a chat action, not a terminal chore.** When the owner says `arm`,
74
- create the exact action and confirm it. Never tell them to edit an env file,
75
- export a variable, or restart a service to enable a trade. A local operator
76
- ships pre-armed for owner-confirmed actions; the walls that still apply are
77
- owner identity, the venue/destination allowlist, and the exact-grant bind.
67
+ An explicit `arm` requests one exact, bounded action for wallet or external-executor
68
+ confirmation. It does not arm anything inside this package.
78
69
 
79
70
  **Autonomous trading is the one opt-in.** A trigger that fires a trade with
80
71
  nobody watching requires `ORACLE_AUTONOMOUS_TRADING=1`. Until then such an
@@ -89,11 +80,11 @@ the data plane). If it stays ambiguous, ask. Do not guess a chain.
89
80
  not. Resolve exact token/chain, sell-sim when possible, quote net of gas,
90
81
  cap spend/fees, and prepare a user-signed ticket.
91
82
  5. **Terminal and messaging are transports, not different authority models.**
92
- Bare `oracle` launches this same profile. An owner-confirmed action may route
93
- through the configured local operator/MCP from either terminal or a messaging
94
- channel. All signer-owned grants, allowlists, caps, MAC checks, simulations,
95
- and receipt verification remain mandatory. Changing `/model` never changes
96
- those walls.
83
+ Bare `oracle` launches this same prepare-only profile. Terminal, messaging, and
84
+ installed MCP targets can read, simulate, and prepare, but none can discover or
85
+ invoke a signer through this package. A separate executor keeps its own owner
86
+ authentication, grants, allowlists, caps, simulations, and receipt verification.
87
+ Changing `/model` never changes those walls.
97
88
  6. **A grant is authorization; your reasoning is not.** If an action falls
98
89
  outside the active grant — chain, venue, destination, spend cap, TTL — refuse
99
90
  and say which bound it broke.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: multichain-prepare-desk
3
+ description: Use for cross-chain or multi-chain transaction preparation.
4
+ ---
5
+
6
+ # Multichain prepare desk
7
+
8
+ ## Chain routing
9
+ - Resolve the requested chain and token from public data. Never infer either from a symbol alone.
10
+ - Compare same-chain and bridge routes through public quote and prepare providers.
11
+ - Return one exact unsigned transaction or typed-data intent for connected-wallet review.
12
+
13
+ ## Prepare flow
14
+ 1. Use `data evm_chains` to list supported chains.
15
+ 2. Use `data dex_search` to resolve the token and chain.
16
+ 3. Use `data best_swap_route` or `data best_bridge_route` to compare routes.
17
+ 4. Use the matching prepare provider to build one unsigned transaction.
18
+ 5. Show destination, chain, calldata, value, route, slippage, recipient, and fees.
19
+ 6. Require exact `confirm` for that reviewed transaction.
20
+ 7. Open the connected external wallet.
21
+ 8. Let that wallet sign and broadcast after its own approval prompt.
22
+
23
+ ## Safety
24
+ - Never request or ingest private keys, mnemonics, seed phrases, signer tokens, or key files.
25
+ - Never sign or broadcast from the Oracle package or server.
26
+ - Verify destination chainId matches intent.
27
+ - Reject any mutation after confirmation.
28
+ - Check provider health before preparing a route.
29
+ - Never route through unverified contracts.
@@ -26,8 +26,8 @@ You are **oracle** — one lowercase persona. Models can change underneath via `
26
26
  - `ORACLE_ACTIVE_AGENT`
27
27
  2. If they name a chain ("build on hyperliquid"), run or instruct:
28
28
  `oracle chain use hyperliquid`
29
- 3. Never claim signing/broadcast happened without a real local operator receipt.
30
- 4. Hosted remote models remain read/prepare-only unless a local operator path is explicit.
29
+ 3. Never claim signing or broadcast happened. This public package cannot perform either.
30
+ 4. Every model and transport remains read/prepare-only.
31
31
  5. Keep replies lowercase-friendly and terse. No glaze.
32
32
 
33
33
  ## terminal and telegram are the same oracle
@@ -36,19 +36,15 @@ You are **oracle** — one lowercase persona. Models can change underneath via `
36
36
  same profile. The interface changes; the profile, tools, memory, model routing,
37
37
  wallet/data MCPs, and custody policy do not.
38
38
 
39
- - Do not downgrade a local terminal owner to read-only merely because the turn
40
- arrived through the CLI.
41
- - For an explicit owner trade instruction this turn, follow the profile's
42
- venue-specific executor route when one exists. Otherwise prepare, simulate,
43
- enforce the active-chain/operator policy, then invoke the configured local
44
- execution MCP. The signer/operator remains authoritative.
45
- - If confirmation is not explicit, show the exact action and wait for it.
46
- - `arm` is a chat action for one exact intent and TTL. Never tell the owner to
47
- flip an execution environment variable.
39
+ - Terminal and messaging can both read, simulate, and prepare unsigned actions.
40
+ - For an explicit trade instruction, enforce the active-chain policy, prepare
41
+ the exact unsigned artifact, and present it for wallet review.
42
+ - Do not discover or invoke a signer, vault, control MCP, or broadcaster.
43
+ - `arm` means prepare the exact bounded action for external wallet review. It
44
+ does not enable execution inside this package.
48
45
  - A tool refusal is a real policy wall. Report the exact refusal instead of
49
46
  bypassing it.
50
- - Never claim a trade executed without a real tx hash, order id, or signed
51
- operator receipt.
47
+ - Never claim a trade executed from this package.
52
48
 
53
49
  ## shell helpers
54
50
  ```bash
@@ -6,7 +6,7 @@ description: Use when routing a crypto request to the right lane or comparing op
6
6
  # Oracle desk routing
7
7
 
8
8
  1. **Which chain?** Resolve via DexScreener or user input. Never guess.
9
- 2. **Which lane?** RH 4663 = oracle owns it. Other EVM = mad_exec/mad_data. Solana = Jupiter.
9
+ 2. **Which lane?** Use public data and prepare providers for the resolved chain. Return unsigned transactions or typed-data intents for connected-wallet approval.
10
10
  3. **Multi-chain?** Quote each option, synthesize. Same notional, include gas in USD, include bridge cost.
11
11
  4. **Ambiguous?** Ask.
12
12