@oracle-agent/oracle 0.12.0 → 0.13.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.
Files changed (279) hide show
  1. package/README.md +13 -498
  2. package/bin/oracle.mjs +25 -0
  3. package/package.json +16 -61
  4. package/SECURITY.md +0 -114
  5. package/SETUP.md +0 -316
  6. package/artifacts/inscription/oracle-was-here-preview.png +0 -0
  7. package/artifacts/inscription/oracle-was-here.svg +0 -1
  8. package/artifacts/specialist-packs/oracle-full-crypto.json +0 -295
  9. package/dist/action-receipts.mjs +0 -1
  10. package/dist/action-semantics.mjs +0 -1
  11. package/dist/address-book.mjs +0 -2
  12. package/dist/bin/desk-server.mjs +0 -14
  13. package/dist/bin/oracle-data-mcp.mjs +0 -8
  14. package/dist/bin/oracle-init.mjs +0 -24
  15. package/dist/bin/oracle-public-server.mjs +0 -5
  16. package/dist/bin/oracle-route.mjs +0 -22
  17. package/dist/bin/oracle-scan.mjs +0 -18
  18. package/dist/bin/oracle-upgrade.mjs +0 -21
  19. package/dist/bin/oracle.mjs +0 -68
  20. package/dist/chains.mjs +0 -1
  21. package/dist/cli/commands/auth.mjs +0 -16
  22. package/dist/cli/commands/bootstrap.mjs +0 -18
  23. package/dist/cli/commands/chain.mjs +0 -21
  24. package/dist/cli/commands/chat.mjs +0 -35
  25. package/dist/cli/commands/credential.mjs +0 -1
  26. package/dist/cli/commands/data-mcp.mjs +0 -2
  27. package/dist/cli/commands/data.mjs +0 -12
  28. package/dist/cli/commands/doctor.mjs +0 -5
  29. package/dist/cli/commands/gate.mjs +0 -13
  30. package/dist/cli/commands/help.mjs +0 -1
  31. package/dist/cli/commands/init.mjs +0 -3
  32. package/dist/cli/commands/mcp.mjs +0 -33
  33. package/dist/cli/commands/model.mjs +0 -44
  34. package/dist/cli/commands/prepare.mjs +0 -2
  35. package/dist/cli/commands/public.mjs +0 -3
  36. package/dist/cli/commands/route.mjs +0 -2
  37. package/dist/cli/commands/runner.mjs +0 -1
  38. package/dist/cli/commands/scan.mjs +0 -2
  39. package/dist/cli/commands/setup.mjs +0 -34
  40. package/dist/cli/commands/sign.mjs +0 -4
  41. package/dist/cli/commands/signer.mjs +0 -1
  42. package/dist/cli/commands/upgrade.mjs +0 -2
  43. package/dist/cli/commands/vault.mjs +0 -1
  44. package/dist/cli/commands/version.mjs +0 -2
  45. package/dist/data/desk-data.mjs +0 -12
  46. package/dist/index.mjs +0 -17
  47. package/dist/nft-gas-war-guard.mjs +0 -1
  48. package/dist/onboarding/harness-configs.mjs +0 -4
  49. package/dist/portfolio-risk.mjs +0 -1
  50. package/dist/prepare-envelope.mjs +0 -1
  51. package/dist/public-control/policy-schema.mjs +0 -1
  52. package/dist/router/index.mjs +0 -2
  53. package/dist/scanner/index.mjs +0 -4
  54. package/dist/signals/index.mjs +0 -1
  55. package/dist/watch-preferences.mjs +0 -1
  56. package/public/agent-connect/app.js +0 -84
  57. package/public/agent-connect/index.html +0 -83
  58. package/public/agent-connect/styles.css +0 -70
  59. package/public/index.html +0 -12
  60. package/public/oracle-console/app.js +0 -272
  61. package/public/oracle-console/bitcoin-wallets.js +0 -206
  62. package/public/oracle-console/index.html +0 -91
  63. package/public/oracle-console/styles.css +0 -239
  64. package/public/oracle-splash/assets/cli-chain-hyperliquid.jpg +0 -0
  65. package/public/oracle-splash/assets/hero/orb.avif +0 -0
  66. package/public/oracle-splash/assets/hero/orb.webm +0 -0
  67. package/public/oracle-splash/assets/llms/claude.svg +0 -1
  68. package/public/oracle-splash/assets/llms/codex-icon.svg +0 -1
  69. package/public/oracle-splash/assets/llms/codex.svg +0 -1
  70. package/public/oracle-splash/assets/llms/cursor-icon.svg +0 -12
  71. package/public/oracle-splash/assets/llms/cursor.svg +0 -17
  72. package/public/oracle-splash/assets/llms/deepseek.svg +0 -1
  73. package/public/oracle-splash/assets/llms/gemini-icon.svg +0 -1
  74. package/public/oracle-splash/assets/llms/gemini.svg +0 -1
  75. package/public/oracle-splash/assets/llms/grok.svg +0 -8
  76. package/public/oracle-splash/assets/llms/hermes.png +0 -0
  77. package/public/oracle-splash/assets/llms/kimi-icon.svg +0 -1
  78. package/public/oracle-splash/assets/llms/kimi.svg +0 -1
  79. package/public/oracle-splash/assets/llms/manus.svg +0 -18
  80. package/public/oracle-splash/assets/llms/openclaw.svg +0 -22
  81. package/public/oracle-splash/assets/llms/perplexity.svg +0 -1
  82. package/public/oracle-splash/assets/llms/qwen.svg +0 -1
  83. package/public/oracle-splash/assets/llms/windsurf.svg +0 -1
  84. package/public/oracle-splash/assets/protocols/abcdex.png +0 -0
  85. package/public/oracle-splash/assets/protocols/across.png +0 -0
  86. package/public/oracle-splash/assets/protocols/aerodrome.png +0 -0
  87. package/public/oracle-splash/assets/protocols/balancer.png +0 -0
  88. package/public/oracle-splash/assets/protocols/cowswap.png +0 -0
  89. package/public/oracle-splash/assets/protocols/curve.png +0 -0
  90. package/public/oracle-splash/assets/protocols/dreamcash.png +0 -0
  91. package/public/oracle-splash/assets/protocols/felix.png +0 -0
  92. package/public/oracle-splash/assets/protocols/gmx.png +0 -0
  93. package/public/oracle-splash/assets/protocols/hyena.png +0 -0
  94. package/public/oracle-splash/assets/protocols/hyperbeat.png +0 -0
  95. package/public/oracle-splash/assets/protocols/hyperliquid.png +0 -0
  96. package/public/oracle-splash/assets/protocols/hyperswap.png +0 -0
  97. package/public/oracle-splash/assets/protocols/jupiter.png +0 -0
  98. package/public/oracle-splash/assets/protocols/kinetiq.png +0 -0
  99. package/public/oracle-splash/assets/protocols/lfj.png +0 -0
  100. package/public/oracle-splash/assets/protocols/lifi.png +0 -0
  101. package/public/oracle-splash/assets/protocols/magic-eden.png +0 -0
  102. package/public/oracle-splash/assets/protocols/morpho.png +0 -0
  103. package/public/oracle-splash/assets/protocols/odos.png +0 -0
  104. package/public/oracle-splash/assets/protocols/oneinch.png +0 -0
  105. package/public/oracle-splash/assets/protocols/opensea.png +0 -0
  106. package/public/oracle-splash/assets/protocols/pancakeswap.png +0 -0
  107. package/public/oracle-splash/assets/protocols/paragon.png +0 -0
  108. package/public/oracle-splash/assets/protocols/paraswap.png +0 -0
  109. package/public/oracle-splash/assets/protocols/pendle.png +0 -0
  110. package/public/oracle-splash/assets/protocols/polymarket.png +0 -0
  111. package/public/oracle-splash/assets/protocols/quickswap.png +0 -0
  112. package/public/oracle-splash/assets/protocols/relay.png +0 -0
  113. package/public/oracle-splash/assets/protocols/stargate.png +0 -0
  114. package/public/oracle-splash/assets/protocols/tradexyz.png +0 -0
  115. package/public/oracle-splash/assets/protocols/uniswap.png +0 -0
  116. package/public/oracle-splash/assets/protocols/velodrome.png +0 -0
  117. package/public/oracle-splash/assets/protocols/ventuals.png +0 -0
  118. package/public/oracle-splash/assets/wordmarks/across-icon.webp +0 -0
  119. package/public/oracle-splash/assets/wordmarks/across.svg +0 -4
  120. package/public/oracle-splash/assets/wordmarks/aerodrome.svg +0 -23
  121. package/public/oracle-splash/assets/wordmarks/balancer.svg +0 -3
  122. package/public/oracle-splash/assets/wordmarks/cowswap.svg +0 -1
  123. package/public/oracle-splash/assets/wordmarks/curve.png +0 -0
  124. package/public/oracle-splash/assets/wordmarks/gmx.svg +0 -13
  125. package/public/oracle-splash/assets/wordmarks/hop-icon.webp +0 -0
  126. package/public/oracle-splash/assets/wordmarks/hyena.svg +0 -7
  127. package/public/oracle-splash/assets/wordmarks/hyperliquid.svg +0 -21
  128. package/public/oracle-splash/assets/wordmarks/hyperswap.svg +0 -13
  129. package/public/oracle-splash/assets/wordmarks/jupiter.svg +0 -35
  130. package/public/oracle-splash/assets/wordmarks/kinetiq.svg +0 -1
  131. package/public/oracle-splash/assets/wordmarks/lfj.webp +0 -0
  132. package/public/oracle-splash/assets/wordmarks/lifi.png +0 -0
  133. package/public/oracle-splash/assets/wordmarks/magic-eden.svg +0 -1
  134. package/public/oracle-splash/assets/wordmarks/markets.svg +0 -1
  135. package/public/oracle-splash/assets/wordmarks/morpho.svg +0 -1
  136. package/public/oracle-splash/assets/wordmarks/odos.svg +0 -3
  137. package/public/oracle-splash/assets/wordmarks/oneinch-icon.webp +0 -0
  138. package/public/oracle-splash/assets/wordmarks/oneinch.svg +0 -6
  139. package/public/oracle-splash/assets/wordmarks/opensea-icon.svg +0 -17
  140. package/public/oracle-splash/assets/wordmarks/opensea.svg +0 -1
  141. package/public/oracle-splash/assets/wordmarks/outcome.svg +0 -16
  142. package/public/oracle-splash/assets/wordmarks/pancakeswap.svg +0 -18
  143. package/public/oracle-splash/assets/wordmarks/paragon.svg +0 -9
  144. package/public/oracle-splash/assets/wordmarks/paraswap.svg +0 -16
  145. package/public/oracle-splash/assets/wordmarks/pendle.png +0 -0
  146. package/public/oracle-splash/assets/wordmarks/polymarket.png +0 -0
  147. package/public/oracle-splash/assets/wordmarks/quickswap.png +0 -0
  148. package/public/oracle-splash/assets/wordmarks/relay.svg +0 -8
  149. package/public/oracle-splash/assets/wordmarks/satflow-icon.png +0 -0
  150. package/public/oracle-splash/assets/wordmarks/stargate-icon.webp +0 -0
  151. package/public/oracle-splash/assets/wordmarks/stargate.svg +0 -15
  152. package/public/oracle-splash/assets/wordmarks/uniswap.svg +0 -18
  153. package/public/oracle-splash/assets/wordmarks/velodrome.svg +0 -84
  154. package/public/oracle-splash/assets/wordmarks/xyz.svg +0 -12
  155. package/public/oracle-splash/assets/wordmarks/zerox-icon.webp +0 -0
  156. package/public/oracle-splash/brand/aave.webp +0 -0
  157. package/public/oracle-splash/brand/aavev2.webp +0 -0
  158. package/public/oracle-splash/brand/aborean.webp +0 -0
  159. package/public/oracle-splash/brand/across.webp +0 -0
  160. package/public/oracle-splash/brand/aerodrome.webp +0 -0
  161. package/public/oracle-splash/brand/afi.webp +0 -0
  162. package/public/oracle-splash/brand/arcus.webp +0 -0
  163. package/public/oracle-splash/brand/aster.webp +0 -0
  164. package/public/oracle-splash/brand/avant.webp +0 -0
  165. package/public/oracle-splash/brand/balancer.webp +0 -0
  166. package/public/oracle-splash/brand/beefy.webp +0 -0
  167. package/public/oracle-splash/brand/benqi.webp +0 -0
  168. package/public/oracle-splash/brand/bestinslot.ico +0 -0
  169. package/public/oracle-splash/brand/bitfi.webp +0 -0
  170. package/public/oracle-splash/brand/bonkswap.webp +0 -0
  171. package/public/oracle-splash/brand/bouncebit.webp +0 -0
  172. package/public/oracle-splash/brand/camelot.webp +0 -0
  173. package/public/oracle-splash/brand/compound.webp +0 -0
  174. package/public/oracle-splash/brand/concrete.webp +0 -0
  175. package/public/oracle-splash/brand/cow.webp +0 -0
  176. package/public/oracle-splash/brand/curve.webp +0 -0
  177. package/public/oracle-splash/brand/derive.webp +0 -0
  178. package/public/oracle-splash/brand/dolomite.webp +0 -0
  179. package/public/oracle-splash/brand/eigenlayer.webp +0 -0
  180. package/public/oracle-splash/brand/ekubo.webp +0 -0
  181. package/public/oracle-splash/brand/ethena.webp +0 -0
  182. package/public/oracle-splash/brand/etherfi.webp +0 -0
  183. package/public/oracle-splash/brand/etherfiborrow.webp +0 -0
  184. package/public/oracle-splash/brand/felix.webp +0 -0
  185. package/public/oracle-splash/brand/fluid.webp +0 -0
  186. package/public/oracle-splash/brand/fluxbeam.webp +0 -0
  187. package/public/oracle-splash/brand/folks.webp +0 -0
  188. package/public/oracle-splash/brand/fortyacres.webp +0 -0
  189. package/public/oracle-splash/brand/gainsnetwork.webp +0 -0
  190. package/public/oracle-splash/brand/gassss.webp +0 -0
  191. package/public/oracle-splash/brand/gmx.webp +0 -0
  192. package/public/oracle-splash/brand/harmonix.webp +0 -0
  193. package/public/oracle-splash/brand/hlorderbook.webp +0 -0
  194. package/public/oracle-splash/brand/hlp.webp +0 -0
  195. package/public/oracle-splash/brand/hop.webp +0 -0
  196. package/public/oracle-splash/brand/hyperbeat.webp +0 -0
  197. package/public/oracle-splash/brand/hyperlend.webp +0 -0
  198. package/public/oracle-splash/brand/hyperliquid.webp +0 -0
  199. package/public/oracle-splash/brand/hyperliquidhpl.webp +0 -0
  200. package/public/oracle-splash/brand/hyperliquidspot.webp +0 -0
  201. package/public/oracle-splash/brand/hyperswap.webp +0 -0
  202. package/public/oracle-splash/brand/hypha.webp +0 -0
  203. package/public/oracle-splash/brand/joedex.webp +0 -0
  204. package/public/oracle-splash/brand/jupiter.webp +0 -0
  205. package/public/oracle-splash/brand/kelp.webp +0 -0
  206. package/public/oracle-splash/brand/kinetiq.webp +0 -0
  207. package/public/oracle-splash/brand/kmhype.webp +0 -0
  208. package/public/oracle-splash/brand/kona.webp +0 -0
  209. package/public/oracle-splash/brand/konalend.webp +0 -0
  210. package/public/oracle-splash/brand/lfj.webp +0 -0
  211. package/public/oracle-splash/brand/lido.webp +0 -0
  212. package/public/oracle-splash/brand/lifi.webp +0 -0
  213. package/public/oracle-splash/brand/lighter.webp +0 -0
  214. package/public/oracle-splash/brand/lista.webp +0 -0
  215. package/public/oracle-splash/brand/loopedhype.webp +0 -0
  216. package/public/oracle-splash/brand/lorenzo.webp +0 -0
  217. package/public/oracle-splash/brand/magic-eden.webp +0 -0
  218. package/public/oracle-splash/brand/magiceden.webp +0 -0
  219. package/public/oracle-splash/brand/mempool.png +0 -0
  220. package/public/oracle-splash/brand/meteora.webp +0 -0
  221. package/public/oracle-splash/brand/morpho.webp +0 -0
  222. package/public/oracle-splash/brand/myriad.webp +0 -0
  223. package/public/oracle-splash/brand/noxa.webp +0 -0
  224. package/public/oracle-splash/brand/odos.webp +0 -0
  225. package/public/oracle-splash/brand/oneinch.webp +0 -0
  226. package/public/oracle-splash/brand/openbook.webp +0 -0
  227. package/public/oracle-splash/brand/opensea.webp +0 -0
  228. package/public/oracle-splash/brand/orca.webp +0 -0
  229. package/public/oracle-splash/brand/ordinals.png +0 -0
  230. package/public/oracle-splash/brand/ostium.webp +0 -0
  231. package/public/oracle-splash/brand/pancakeswap.webp +0 -0
  232. package/public/oracle-splash/brand/pendle.webp +0 -0
  233. package/public/oracle-splash/brand/perena.webp +0 -0
  234. package/public/oracle-splash/brand/pharaoh.webp +0 -0
  235. package/public/oracle-splash/brand/phoenix.webp +0 -0
  236. package/public/oracle-splash/brand/polymarket.webp +0 -0
  237. package/public/oracle-splash/brand/polynomial.webp +0 -0
  238. package/public/oracle-splash/brand/projectx.webp +0 -0
  239. package/public/oracle-splash/brand/pumpfun.webp +0 -0
  240. package/public/oracle-splash/brand/quickswap.webp +0 -0
  241. package/public/oracle-splash/brand/rain.webp +0 -0
  242. package/public/oracle-splash/brand/raydium.webp +0 -0
  243. package/public/oracle-splash/brand/relay.webp +0 -0
  244. package/public/oracle-splash/brand/rocketpool.webp +0 -0
  245. package/public/oracle-splash/brand/saber.webp +0 -0
  246. package/public/oracle-splash/brand/sakuraswap.webp +0 -0
  247. package/public/oracle-splash/brand/sanctum.webp +0 -0
  248. package/public/oracle-splash/brand/satflow.png +0 -0
  249. package/public/oracle-splash/brand/sierra.webp +0 -0
  250. package/public/oracle-splash/brand/sky.webp +0 -0
  251. package/public/oracle-splash/brand/solv.webp +0 -0
  252. package/public/oracle-splash/brand/spark.webp +0 -0
  253. package/public/oracle-splash/brand/sparksavings.webp +0 -0
  254. package/public/oracle-splash/brand/sphere.webp +0 -0
  255. package/public/oracle-splash/brand/ssv.webp +0 -0
  256. package/public/oracle-splash/brand/stabble.webp +0 -0
  257. package/public/oracle-splash/brand/stableswap.webp +0 -0
  258. package/public/oracle-splash/brand/stakewise.webp +0 -0
  259. package/public/oracle-splash/brand/stargate.webp +0 -0
  260. package/public/oracle-splash/brand/sthype.webp +0 -0
  261. package/public/oracle-splash/brand/sushiswap.webp +0 -0
  262. package/public/oracle-splash/brand/unisat.png +0 -0
  263. package/public/oracle-splash/brand/uniswap.webp +0 -0
  264. package/public/oracle-splash/brand/uniswapv2.webp +0 -0
  265. package/public/oracle-splash/brand/uniswapv4.webp +0 -0
  266. package/public/oracle-splash/brand/unit.webp +0 -0
  267. package/public/oracle-splash/brand/velodrome.webp +0 -0
  268. package/public/oracle-splash/brand/velora.webp +0 -0
  269. package/public/oracle-splash/brand/venus.webp +0 -0
  270. package/public/oracle-splash/brand/wbeth.webp +0 -0
  271. package/public/oracle-splash/brand/xsy.webp +0 -0
  272. package/public/oracle-splash/brand/yieldyak.webp +0 -0
  273. package/public/oracle-splash/brand/zerobase.webp +0 -0
  274. package/public/oracle-splash/brand/zerox.webp +0 -0
  275. package/public/oracle-splash/favicon.ico +0 -0
  276. package/public/oracle-splash/favicon.svg +0 -6
  277. package/public/oracle-splash/index.html +0 -1568
  278. package/public/oracle-splash/mesh-graph.png +0 -0
  279. package/public/oracle-splash/mesh-graph.svg +0 -216
@@ -1,295 +0,0 @@
1
- {
2
- "id": "oracle-full-crypto",
3
- "name": "Oracle Full Crypto Pack",
4
- "version": 4,
5
- "audience": "public-users",
6
- "description": "Default capability set for public Oracle: trader, builder, analyzer, deterministic /balance aggregation, multichain scanner, meme-token sniping, RFQ routing, tokenized-asset buys, NFT mint gas-war limits, Solana, Bitcoin inscriptions, chain-family token/NFT collections, gacha/DEX launches, and protocol build under bound grants. User signs everything.",
7
- "posture": {
8
- "default": "DISARMED",
9
- "custody": "self-custodial",
10
- "signing": "user-wallet-only",
11
- "broadcast": "user-or-explicit-grant-only",
12
- "never": [
13
- "operator-hot-wallet-by-default",
14
- "private-executor-custody",
15
- "house-custody",
16
- "unguarded-broadcast",
17
- "uncapped-gas-war-mints"
18
- ]
19
- },
20
- "includes_protocol_build": true,
21
- "skill_packs": {
22
- "research": [
23
- "oracle-token-research",
24
- "oracle-contract-research",
25
- "oracle-smart-wallet-scanner",
26
- "oracle-meme-token-sniper",
27
- "oracle-bitcoin",
28
- "oracle-solana",
29
- "hyperliquid",
30
- "polymarket",
31
- "oracle-chain-graphs-telegram-cards",
32
- "oracle-rfq-tokenized-assets",
33
- "oracle-hypercore-staking"
34
- ],
35
- "execution_prepare": [
36
- "self-custodial-onchain-execution",
37
- "multichain-exec-desk",
38
- "trade-loop-circuit-breaker",
39
- "protocol-api-key-integration",
40
- "oracle-bitcoin",
41
- "oracle-best-execution",
42
- "oracle-rfq-tokenized-assets",
43
- "oracle-meme-token-sniper",
44
- "oracle-nft-mint-gas-war",
45
- "oracle-solana-nft",
46
- "oracle-hypercore-staking"
47
- ],
48
- "venues": [
49
- "oracle-solana",
50
- "oracle-bitcoin",
51
- "hyperliquid",
52
- "polymarket",
53
- "rh-token-research",
54
- "rh-token-swap",
55
- "rh-token-chart",
56
- "oracle-meme-token-sniper",
57
- "oracle-rfq-tokenized-assets",
58
- "oracle-solana-nft",
59
- "oracle-hypercore-staking"
60
- ],
61
- "protocol_build": [
62
- "oracle-protocol-builder",
63
- "oracle-contract-research",
64
- "oracle-protocol-security",
65
- "oracle-multichain-token-launch",
66
- "oracle-multichain-nft-launch",
67
- "oracle-nft-gacha-launch",
68
- "oracle-dex-launch",
69
- "protocol-api-key-integration",
70
- "oracle-nft-mint-gas-war"
71
- ],
72
- "product_law": [
73
- "oracle-public-product",
74
- "oracle-grants",
75
- "oracle-receipts",
76
- "trade-loop-circuit-breaker",
77
- "oracle-chain-graphs-telegram-cards",
78
- "oracle-nft-mint-gas-war"
79
- ],
80
- "launch_build": [
81
- "oracle-protocol-builder",
82
- "oracle-nft-gacha-launch",
83
- "oracle-dex-launch",
84
- "oracle-protocol-security",
85
- "oracle-multichain-token-launch",
86
- "oracle-multichain-nft-launch",
87
- "oracle-nft-mint-gas-war"
88
- ],
89
- "analysis": [
90
- "oracle-token-research",
91
- "oracle-contract-research",
92
- "oracle-smart-wallet-scanner",
93
- "oracle-meme-token-sniper",
94
- "oracle-best-execution",
95
- "balance",
96
- "oracle-chain-graphs-telegram-cards",
97
- "oracle-rfq-tokenized-assets"
98
- ]
99
- },
100
- "excluded_from_public": [
101
- "private deploy ops",
102
- "private executor ops",
103
- "private chain ops",
104
- "operator infrastructure access",
105
- "any skill that requires an operator wallet or server root access"
106
- ],
107
- "protocol_build": {
108
- "enabled": true,
109
- "modes": [
110
- "research-existing-protocol",
111
- "scaffold-contracts",
112
- "scaffold-nft-or-gacha",
113
- "scaffold-dex-or-launchpad",
114
- "write-deploy-scripts",
115
- "prepare-unsigned-deploy-txs",
116
- "security-checklist",
117
- "launchpad-public-surface",
118
- "multichain-token-launch",
119
- "multichain-nft-collection-launch"
120
- ],
121
- "user_signs": true,
122
- "grant_actions_example": [
123
- "read:chain",
124
- "simulate:tx",
125
- "prepare:deploy",
126
- "prepare:verify"
127
- ],
128
- "targets": "user-provided factory/router/implementations only unless added to destination allowlist",
129
- "copy": "Oracle can classify and prepare chain-family token, NFT collection, protocol, gacha, and DEX launches. Unsupported adapters fail closed. You still sign every side effect."
130
- },
131
- "profiles": [
132
- {
133
- "id": "polymarket-agent",
134
- "skills": [
135
- "polymarket",
136
- "polymarket-trade-journal",
137
- "trade-loop-circuit-breaker",
138
- "oracle-chain-graphs-telegram-cards"
139
- ],
140
- "description": "Polymarket prediction markets: public event pricing/cards plus prepared order intents when user CLOB/API keys are configured."
141
- },
142
- {
143
- "id": "hyperliquid-agent",
144
- "skills": [
145
- "hyperliquid",
146
- "hyperliquid-hip4-outcome-markets",
147
- "trade-loop-circuit-breaker",
148
- "oracle-chain-graphs-telegram-cards",
149
- "oracle-rfq-tokenized-assets",
150
- "oracle-hypercore-staking"
151
- ],
152
- "description": "Hyperliquid perps/spot, HyperEVM, HIP-3 builder dexs, HIP-4 outcome markets, and HyperCore HYPE staking/delegation prepares. API-key actions activate only with user-provided keys."
153
- },
154
- {
155
- "id": "robinhood-agent",
156
- "skills": [
157
- "rh-public-token-research",
158
- "rh-token-research",
159
- "rh-token-chart",
160
- "rh-token-swap",
161
- "oracle-meme-token-sniper",
162
- "oracle-chain-graphs-telegram-cards",
163
- "oracle-rfq-tokenized-assets"
164
- ],
165
- "description": "Robinhood Chain tokens/NFTs plus tokenized Robinhood-style assets when chain/contract/route is verified."
166
- },
167
- {
168
- "id": "solana-agent",
169
- "skills": [
170
- "oracle-solana",
171
- "oracle-receipts",
172
- "oracle-circuit-breaker",
173
- "oracle-best-execution",
174
- "oracle-meme-token-sniper",
175
- "oracle-chain-graphs-telegram-cards",
176
- "oracle-rfq-tokenized-assets",
177
- "oracle-solana-nft"
178
- ],
179
- "label": "solana agent",
180
- "description": "Solana research, SPL accounts, Jupiter quotes, live simulation, Magic Eden NFT reads plus unsigned buy/list/mint tickets, launch/meme-token scanning, and unsigned swap preparation."
181
- },
182
- {
183
- "id": "bitcoin-agent",
184
- "skills": [
185
- "oracle-bitcoin",
186
- "oracle-receipts",
187
- "oracle-circuit-breaker",
188
- "oracle-smart-wallet-scanner"
189
- ],
190
- "label": "bitcoin agent",
191
- "description": "Bitcoin L1, Ordinals/runes research, Satflow PSBTs, and inscription preparation."
192
- },
193
- {
194
- "id": "stable-agent",
195
- "skills": [
196
- "evm-contract-research",
197
- "self-custodial-onchain-execution",
198
- "oracle-meme-token-sniper",
199
- "oracle-chain-graphs-telegram-cards",
200
- "oracle-rfq-tokenized-assets"
201
- ]
202
- },
203
- {
204
- "id": "protocol-builder",
205
- "skills": [
206
- "oracle-protocol-builder",
207
- "oracle-contract-research",
208
- "oracle-protocol-security",
209
- "oracle-nft-gacha-launch",
210
- "oracle-dex-launch",
211
- "oracle-receipts",
212
- "oracle-multichain-token-launch",
213
- "oracle-multichain-nft-launch"
214
- ],
215
- "label": "protocol builder",
216
- "description": "Classify by chain family, then scaffold, review, and prepare unsigned token, NFT collection, gacha, DEX, and protocol launches."
217
- }
218
- ],
219
- "default_tools": {
220
- "read": [
221
- "mad_data",
222
- "web_search",
223
- "evm_quote",
224
- "evm_simulate",
225
- "btc_health",
226
- "btc_fees",
227
- "btc_inscription_info",
228
- "solana_balance",
229
- "portfolio_balance",
230
- "portfolio_snapshot",
231
- "portfolio_history",
232
- "portfolio_value_graph",
233
- "nft_inventory",
234
- "nft_gallery",
235
- "nft_pnl"
236
- ],
237
- "prepare": [
238
- "evm_prepare",
239
- "evm_protocol_prepare",
240
- "evm_protocol_quote",
241
- "jupiter_quote",
242
- "jupiter_prepare",
243
- "bitcoin_inscribe_prepare",
244
- "nft_prepare_list"
245
- ],
246
- "never_public_default": [
247
- "evm_sign",
248
- "evm_send",
249
- "solana_sign",
250
- "solana_send",
251
- "bitcoin_sign",
252
- "bitcoin_send",
253
- "bitcoin_inscribe_sign_commit",
254
- "bitcoin_inscribe_sign_reveal"
255
- ]
256
- },
257
- "capabilities": [
258
- "trader",
259
- "builder",
260
- "analyzer",
261
- "solana-jupiter",
262
- "bitcoin-inscriptions",
263
- "nft-project-launch",
264
- "gacha-launch",
265
- "dex-launch",
266
- "meme-token-sniping",
267
- "onchain-scanner",
268
- "smart-wallet-scanner",
269
- "best-execution-routing",
270
- "bridges",
271
- "perps",
272
- "vaults",
273
- "prediction-markets",
274
- "ordinals-runes",
275
- "per-chain-graphs",
276
- "telegram-cards",
277
- "hip-3-builder-dex",
278
- "hip-4-outcome-markets",
279
- "polymarket-api-key-trading",
280
- "cross-chain-rfq",
281
- "rfq-best-execution",
282
- "tokenized-robinhood-assets",
283
- "nft-mint-gas-war-limits",
284
- "nft-mint-bot",
285
- "solana-nft-marketplace",
286
- "solana-nft-mint",
287
- "hypercore-hype-staking",
288
- "hypercore-validator-delegation",
289
- "multichain-token-launch",
290
- "multichain-nft-collection-launch",
291
- "multichain-balance",
292
- "nft-inventory-gallery-pnl",
293
- "portfolio-balance-history-graph"
294
- ]
295
- }
@@ -1 +0,0 @@
1
- import{createHash as m}from"node:crypto";import{wordlists as g}from"ethers";var A=1,E=new Set(["privatekey","privkey","secretkey","seedphrase","seed","mnemonic","passphrase","password","keystore","keymaterial","wif","xprv","xpriv","bearer","authorization","signature","apikey","credential"]),x=[/\b[5KL][1-9A-HJ-NP-Za-km-z]{50,51}\b/,/\bxprv[0-9A-Za-z]{50,}\b/],$=new Set([12,15,18,21,24]);function S(e){let t=String(e).trim().toLowerCase().split(/\s+/).filter(Boolean);return $.has(t.length)&&t.every(r=>g.en.getWordIndex(r)>=0)}var H=/^\s*(?:0x)?[0-9a-fA-F]{64}\s*$/,O=/(hash|digest|root|salt|nonce|proof|commitment|sig|id)(?:e?s)?$/i,j=new Set(["calldata","data","publickey","pubkey","message","payload","input","extradata"]);function T(e){let t=b(e);return j.has(t)||O.test(t)}var f=class extends Error{constructor(t){super(`action receipt refused: secret-bearing field at ${t}`),this.name="ActionReceiptSecretError",this.code="ACTION_RECEIPT_SECRET"}};function b(e){return String(e).replace(/[^a-z0-9]/gi,"").toLowerCase()}function C(e){let t=b(e);return[...E].some(r=>t.includes(r))}function _(e,t,r){if(typeof t=="string"){if(x.some(o=>o.test(t))||S(t))throw new f(r);if(H.test(t)&&!T(e))throw new f(r)}}function a(e,t="$",r=""){if(e==null||typeof e=="boolean")return e;if(typeof e=="string")return _(r,e,t),e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`action receipt: non-finite number at ${t}`);return e}if(typeof e=="bigint")return e.toString();if(Array.isArray(e))return e.map((n,i)=>a(n,`${t}[${i}]`,r));if(typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype)throw new TypeError(`action receipt: JSON-like value required at ${t}`);let o={};for(let n of Object.keys(e).sort()){let i=`${t}.${n}`;if(C(n))throw new f(i);e[n]!==void 0&&(o[n]=a(e[n],i,n))}return o}function L(e){return a(e)}function d(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(d).join(",")}]`:`{${Object.keys(e).map(t=>`${JSON.stringify(t)}:${d(e[t])}`).join(",")}}`}function R(e){return d(a(e))}function k(e){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("action receipt: object required");let{receiptId:t,summary:r,...o}=e;return m("sha256").update(R(o)).digest("hex")}function c(e,...t){for(let r of t)if(e[r]!==void 0)return e[r]}function s(e,t,r){let o=c(e,...t);if(o==null)throw new TypeError(`action receipt: ${r} required`);return o}function I(e){let t=c(e,"balances","balanceChanges"),r=c(e,"beforeBalances","balancesBefore","before"),o=c(e,"afterBalances","balancesAfter","after");return t!==void 0?{balances:t}:r===void 0&&o===void 0?{}:{balances:{...r===void 0?{}:{before:r},...o===void 0?{}:{after:o}}}}function N(e={}){if(!e||typeof e!="object"||Array.isArray(e))throw new TypeError("action receipt: input object required");a(e);let t=c(e,"txHash","transactionHash"),r=c(e,"phase","stage","resultType")??(t==null?"prepare":"execute");if(r!=="prepare"&&r!=="execute")throw new TypeError('action receipt: phase must be "prepare" or "execute"');let o={receiptVersion:A,phase:r,intent:s(e,["intent"],"intent"),route:s(e,["route"],"route"),decodedAction:s(e,["decodedAction","action"],"decodedAction"),policyChecks:s(e,["policyChecks","checks"],"policyChecks"),allowlistHits:s(e,["allowlistHits","allowlistMatches"],"allowlistHits"),prepareHash:s(e,["prepareHash"],"prepareHash"),...t==null?{}:{txHash:t},...I(e)},n=a(o);return Object.freeze({...n,receiptId:k(n)})}var q=N;function u(e,t=[]){if(typeof e=="string"||typeof e=="number")return String(e);for(let r of t)if(e?.[r]!=null)return String(e[r]);return"recorded"}function y(e){if(typeof e=="boolean")return e;if(e&&typeof e=="object"){if(typeof e.ok=="boolean")return e.ok;if(typeof e.allowed=="boolean")return e.allowed;if(typeof e.passed=="boolean")return e.passed}return null}function z(e){if(!e||typeof e!="object")throw new TypeError("action receipt: object required");let t=u(e.decodedAction,["type","action","method","name"]),r=u(e.route,["name","provider","venue","id"]),o=Array.isArray(e.policyChecks)?e.policyChecks:Object.values(e.policyChecks||{}),n=o.filter(l=>y(l)===!0).length,i=o.filter(l=>y(l)===!1).length,p=Array.isArray(e.allowlistHits)?e.allowlistHits.length:Object.keys(e.allowlistHits||{}).length,h=e.txHash==null?"no transaction hash":`tx ${e.txHash}`,w=e.balances==null?"balances not provided":"before/after balances recorded";return`${e.phase} ${t} via ${r}; policy ${n} passed, ${i} failed; ${p} allowlist hit${p===1?"":"s"}; ${h}; ${w}; receipt ${e.receiptId}`}var F=z;export{A as ACTION_RECEIPT_VERSION,f as ActionReceiptSecretError,L as assertNoReceiptSecrets,R as canonicalReceiptJson,k as computeReceiptId,q as createActionReceipt,F as formatActionReceipt,N as normalizeActionReceipt,z as summarizeActionReceipt};
@@ -1 +0,0 @@
1
- var o=Object.freeze({ALERT_ONLY:"alert_only",EXECUTE:"execute"}),i=new Set(["watch","watch this","ping","ping me","alert","notify"]),r=new Set(["watching","armed"]);function a(t){if(typeof t!="string"||!t.trim())throw new TypeError("explicit action verb required");let e=t.trim().toLowerCase().replace(/\s+/g," ");if(i.has(e))return o.ALERT_ONLY;if(e==="arm")return o.EXECUTE;throw new TypeError(`unsupported action verb: ${e}`)}function c(t={}){let{verb:e,...n}=t;return{...n,active:!0,actionMode:a(e)}}function u(t){if(!t||typeof t!="object"||typeof t.active!="boolean")throw new TypeError("active must be boolean");if(!Object.values(o).includes(t.actionMode))throw new TypeError("actionMode must be alert_only or execute");return t}function E(t){return t?.active===!0&&t?.actionMode===o.ALERT_ONLY}function s(t){return t?.active===!0&&t?.actionMode===o.EXECUTE}function p(t={}){if(t.actionMode!==void 0&&t.actionMode!==o.ALERT_ONLY)throw new TypeError("non-alert record cannot enter alert-only watch migration");let e=typeof t.active=="boolean"?t.active:r.has(String(t.status||"").toLowerCase());return{...t,active:e,actionMode:o.ALERT_ONLY}}export{o as ACTION_MODES,a as actionModeForVerb,u as assertActionRecord,c as createActionRecord,E as isActiveAlert,s as isActiveExecution,p as migrateLegacyWatchRecord};
@@ -1,2 +0,0 @@
1
- import c from"node:fs";import d from"node:path";import{homedir as b}from"node:os";import{join as h}from"node:path";var w=h(b(),".config","oracle"),z=h(b(),".config","mad-desk");function m(e,r,t=""){let o=process.env[e];if(o!=null&&String(o).trim()!=="")return o;let n=r?process.env[r]:void 0;return n!=null&&String(n).trim()!==""?n:t}var g=/^0x[0-9a-fA-F]{40}$/,_=new Set(["privatekey","private_key","secret","seed","mnemonic","passphrase","signature","keystore"]),D=["privatekey","privkey","secretkey","secret","seedphrase","seed","mnemonic","passphrase","password","keystore","keymaterial","signature","wif","xprv","xpriv","apikey","bearer","credential"],O=[/\b[5KL][1-9A-HJ-NP-Za-km-z]{50,51}\b/,/\bxprv[0-9A-Za-z]{50,}\b/,/\b(?:[a-z]{3,8}\s+){11,}[a-z]{3,8}\b/i],y=/^\s*(?:0x)?[0-9a-fA-F]{64}\s*$/;function I(e){return String(e).toLowerCase().replace(/[^a-z0-9]/g,"")}function L(e,r){let t=I(e);if(_.has(String(e).toLowerCase())||D.some(o=>t.includes(o)))throw new Error(`address-book: ${r} is forbidden; the book stores labels, never key material`)}function N(e,r){if(typeof e=="string"&&(O.some(t=>t.test(e))||y.test(e)))throw new Error(`address-book: ${r} looks like key material; the book stores labels, never key material`)}function E(){let e=m("ORACLE_ADDRESS_BOOK","MAD_ADDRESS_BOOK","");if(e)return d.resolve(e);let r=m("ORACLE_CONFIG_DIR","MAD_CONFIG_DIR",w);return d.join(r,"address-book.json")}function p(e,r="field"){if(Array.isArray(e)){e.forEach((t,o)=>p(t,`${r}[${o}]`));return}if(!e||typeof e!="object"){N(e,r);return}for(let[t,o]of Object.entries(e))L(t,t),p(o,t)}function S(e){let r=String(e||"").trim();if(!g.test(r))throw new Error("address-book: address must be 0x + 40 hex characters");return r.toLowerCase()}function a(e,r){return e==null||e===""?null:String(e).slice(0,r)}function k(){return{version:1,updatedAt:null,entries:[]}}function x(e){return{address:String(e.address).toLowerCase(),label:a(e.label,80)||"unknown",who:a(e.who,120),role:a(e.role,40),chainIds:Array.isArray(e.chainIds)?e.chainIds.map(Number).filter(Number.isFinite):[],notes:a(e.notes,500),source:a(e.source,80),firstSeenAt:e.firstSeenAt||null,lastSeenAt:e.lastSeenAt||null}}function l(){try{let e=JSON.parse(c.readFileSync(E(),"utf8"));if(!e||typeof e!="object")return k();let r=Array.isArray(e.entries)?e.entries:[];return{version:1,updatedAt:e.updatedAt||null,entries:r.filter(t=>t&&typeof t=="object"&&g.test(String(t.address||""))).map(x)}}catch{return k()}}function v(e){let r=E();c.mkdirSync(d.dirname(r),{recursive:!0,mode:448});let t={...e,version:1,updatedAt:new Date().toISOString()},o=d.join(d.dirname(r),`.address-book.${process.pid}.tmp`);c.writeFileSync(o,`${JSON.stringify(t,null,2)}
2
- `,{mode:384}),c.renameSync(o,r);try{c.chmodSync(r,384)}catch{}return t}function G(e={}){let r=l(),t=r.entries;if(e.role&&(t=t.filter(o=>o.role===String(e.role))),e.who){let o=String(e.who).toLowerCase();t=t.filter(n=>(n.who||"").toLowerCase().includes(o)||(n.label||"").toLowerCase().includes(o))}if(e.q){let o=String(e.q).toLowerCase();t=t.filter(n=>n.address.includes(o)||(n.label||"").toLowerCase().includes(o)||(n.who||"").toLowerCase().includes(o)||(n.notes||"").toLowerCase().includes(o))}return{updatedAt:r.updatedAt,count:t.length,entries:t}}function P(e){let r=S(e),t=l().entries.filter(o=>o.address===r);return{address:r,found:t.length>0,entries:t}}function q(e={}){p(e);let r=S(e.address),t=a(e.label??e.role,80)||"wallet",o=new Date().toISOString(),n=l(),i=n.entries.findIndex(s=>s.address===r&&s.label===t),u=x({address:r,label:t,who:e.who,role:e.role,chainIds:e.chainIds,notes:e.notes,source:e.source||"agent",firstSeenAt:i>=0&&n.entries[i].firstSeenAt||o,lastSeenAt:o});i>=0?n.entries[i]=u:n.entries.push(u);let A=s=>s==="agent"?0:s==="owner"?1:2;n.entries.sort((s,f)=>A(s.role)-A(f.role)||s.label.localeCompare(f.label)||s.address.localeCompare(f.address));let C=v(n);return{ok:!0,entry:u,count:C.entries.length}}function Y(e,r=null){let t=S(e),o=l(),n=o.entries.length;return o.entries=o.entries.filter(i=>i.address!==t?!0:r==null?!1:i.label!==String(r)),v(o),{ok:!0,removed:n-o.entries.length,count:o.entries.length}}export{E as addressBookPath,Y as forgetAddress,G as listAddresses,P as lookupAddress,l as readAddressBook,q as rememberAddress};