@oracle-agent/oracle 0.11.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 (487) hide show
  1. package/LICENSE +115 -201
  2. package/README.md +13 -516
  3. package/bin/oracle.mjs +19 -27
  4. package/package.json +15 -98
  5. package/CONTRIBUTING.md +0 -98
  6. package/SECURITY.md +0 -89
  7. package/SETUP.md +0 -381
  8. package/artifacts/inscription/oracle-was-here-preview.png +0 -0
  9. package/artifacts/inscription/oracle-was-here.svg +0 -1
  10. package/artifacts/specialist-packs/oracle-full-crypto.json +0 -295
  11. package/bin/desk-server.mjs +0 -440
  12. package/bin/oracle-data-mcp.mjs +0 -1019
  13. package/bin/oracle-init.mjs +0 -496
  14. package/bin/oracle-public-server.mjs +0 -36
  15. package/bin/oracle-route.mjs +0 -254
  16. package/bin/oracle-scan.mjs +0 -192
  17. package/bin/oracle-upgrade.mjs +0 -42
  18. package/docs/adding-a-chain.md +0 -229
  19. package/docs/architecture.md +0 -138
  20. package/docs/cli.md +0 -47
  21. package/docs/connectors.md +0 -13
  22. package/docs/oracle-pack-standard.md +0 -29
  23. package/docs/profiles.md +0 -151
  24. package/docs/public-surface.md +0 -133
  25. package/examples/add-a-chain.mjs +0 -65
  26. package/examples/oracle-pack-template.mjs +0 -38
  27. package/examples/research-a-token.mjs +0 -70
  28. package/plugins/oracle-owner-gate/__init__.py +0 -227
  29. package/plugins/oracle-owner-gate/plugin.yaml +0 -9
  30. package/profiles/_template/SOUL.md +0 -54
  31. package/profiles/_template/profile.json +0 -22
  32. package/profiles/bitcoin-agent/SOUL.md +0 -31
  33. package/profiles/bitcoin-agent/profile.json +0 -32
  34. package/profiles/hyperliquid-agent/SOUL.md +0 -34
  35. package/profiles/hyperliquid-agent/profile.json +0 -37
  36. package/profiles/oracle/SOUL.md +0 -107
  37. package/profiles/oracle/profile.json +0 -39
  38. package/profiles/polymarket-agent/SOUL.md +0 -35
  39. package/profiles/polymarket-agent/profile.json +0 -34
  40. package/profiles/profile.schema.json +0 -90
  41. package/profiles/protocol-builder/SOUL.md +0 -57
  42. package/profiles/protocol-builder/profile.json +0 -39
  43. package/profiles/robinhood-agent/SOUL.md +0 -53
  44. package/profiles/robinhood-agent/profile.json +0 -40
  45. package/profiles/solana-agent/SOUL.md +0 -37
  46. package/profiles/solana-agent/profile.json +0 -37
  47. package/profiles/stable-agent/SOUL.md +0 -43
  48. package/profiles/stable-agent/profile.json +0 -37
  49. package/protocols/templates/safe-erc20/SECURITY.md +0 -16
  50. package/protocols/templates/safe-erc20/foundry.toml +0 -12
  51. package/protocols/templates/safe-erc20/remappings.txt +0 -2
  52. package/protocols/templates/safe-erc20/src/SafeERC20.sol +0 -53
  53. package/protocols/templates/safe-erc20/test/SafeERC20.t.sol +0 -72
  54. package/public/agent-connect/app.js +0 -84
  55. package/public/agent-connect/index.html +0 -83
  56. package/public/agent-connect/styles.css +0 -70
  57. package/public/index.html +0 -12
  58. package/public/oracle-console/app.js +0 -272
  59. package/public/oracle-console/bitcoin-wallets.js +0 -206
  60. package/public/oracle-console/index.html +0 -91
  61. package/public/oracle-console/styles.css +0 -239
  62. package/public/oracle-splash/assets/cli-chain-hyperliquid.jpg +0 -0
  63. package/public/oracle-splash/assets/hero/orb.avif +0 -0
  64. package/public/oracle-splash/assets/hero/orb.webm +0 -0
  65. package/public/oracle-splash/assets/llms/claude.svg +0 -1
  66. package/public/oracle-splash/assets/llms/codex-icon.svg +0 -1
  67. package/public/oracle-splash/assets/llms/codex.svg +0 -1
  68. package/public/oracle-splash/assets/llms/cursor-icon.svg +0 -12
  69. package/public/oracle-splash/assets/llms/cursor.svg +0 -17
  70. package/public/oracle-splash/assets/llms/deepseek.svg +0 -1
  71. package/public/oracle-splash/assets/llms/gemini-icon.svg +0 -1
  72. package/public/oracle-splash/assets/llms/gemini.svg +0 -1
  73. package/public/oracle-splash/assets/llms/grok.svg +0 -8
  74. package/public/oracle-splash/assets/llms/hermes.png +0 -0
  75. package/public/oracle-splash/assets/llms/kimi-icon.svg +0 -1
  76. package/public/oracle-splash/assets/llms/kimi.svg +0 -1
  77. package/public/oracle-splash/assets/llms/manus.svg +0 -18
  78. package/public/oracle-splash/assets/llms/openclaw.svg +0 -22
  79. package/public/oracle-splash/assets/llms/perplexity.svg +0 -1
  80. package/public/oracle-splash/assets/llms/qwen.svg +0 -1
  81. package/public/oracle-splash/assets/llms/windsurf.svg +0 -1
  82. package/public/oracle-splash/assets/protocols/abcdex.png +0 -0
  83. package/public/oracle-splash/assets/protocols/across.png +0 -0
  84. package/public/oracle-splash/assets/protocols/aerodrome.png +0 -0
  85. package/public/oracle-splash/assets/protocols/balancer.png +0 -0
  86. package/public/oracle-splash/assets/protocols/cowswap.png +0 -0
  87. package/public/oracle-splash/assets/protocols/curve.png +0 -0
  88. package/public/oracle-splash/assets/protocols/dreamcash.png +0 -0
  89. package/public/oracle-splash/assets/protocols/felix.png +0 -0
  90. package/public/oracle-splash/assets/protocols/gmx.png +0 -0
  91. package/public/oracle-splash/assets/protocols/hyena.png +0 -0
  92. package/public/oracle-splash/assets/protocols/hyperbeat.png +0 -0
  93. package/public/oracle-splash/assets/protocols/hyperliquid.png +0 -0
  94. package/public/oracle-splash/assets/protocols/hyperswap.png +0 -0
  95. package/public/oracle-splash/assets/protocols/jupiter.png +0 -0
  96. package/public/oracle-splash/assets/protocols/kinetiq.png +0 -0
  97. package/public/oracle-splash/assets/protocols/lfj.png +0 -0
  98. package/public/oracle-splash/assets/protocols/lifi.png +0 -0
  99. package/public/oracle-splash/assets/protocols/magic-eden.png +0 -0
  100. package/public/oracle-splash/assets/protocols/morpho.png +0 -0
  101. package/public/oracle-splash/assets/protocols/odos.png +0 -0
  102. package/public/oracle-splash/assets/protocols/oneinch.png +0 -0
  103. package/public/oracle-splash/assets/protocols/opensea.png +0 -0
  104. package/public/oracle-splash/assets/protocols/pancakeswap.png +0 -0
  105. package/public/oracle-splash/assets/protocols/paragon.png +0 -0
  106. package/public/oracle-splash/assets/protocols/paraswap.png +0 -0
  107. package/public/oracle-splash/assets/protocols/pendle.png +0 -0
  108. package/public/oracle-splash/assets/protocols/polymarket.png +0 -0
  109. package/public/oracle-splash/assets/protocols/quickswap.png +0 -0
  110. package/public/oracle-splash/assets/protocols/relay.png +0 -0
  111. package/public/oracle-splash/assets/protocols/stargate.png +0 -0
  112. package/public/oracle-splash/assets/protocols/tradexyz.png +0 -0
  113. package/public/oracle-splash/assets/protocols/uniswap.png +0 -0
  114. package/public/oracle-splash/assets/protocols/velodrome.png +0 -0
  115. package/public/oracle-splash/assets/protocols/ventuals.png +0 -0
  116. package/public/oracle-splash/assets/wordmarks/across-icon.webp +0 -0
  117. package/public/oracle-splash/assets/wordmarks/across.svg +0 -4
  118. package/public/oracle-splash/assets/wordmarks/aerodrome.svg +0 -23
  119. package/public/oracle-splash/assets/wordmarks/balancer.svg +0 -3
  120. package/public/oracle-splash/assets/wordmarks/cowswap.svg +0 -1
  121. package/public/oracle-splash/assets/wordmarks/curve.png +0 -0
  122. package/public/oracle-splash/assets/wordmarks/gmx.svg +0 -13
  123. package/public/oracle-splash/assets/wordmarks/hop-icon.webp +0 -0
  124. package/public/oracle-splash/assets/wordmarks/hyena.svg +0 -7
  125. package/public/oracle-splash/assets/wordmarks/hyperliquid.svg +0 -21
  126. package/public/oracle-splash/assets/wordmarks/hyperswap.svg +0 -13
  127. package/public/oracle-splash/assets/wordmarks/jupiter.svg +0 -35
  128. package/public/oracle-splash/assets/wordmarks/kinetiq.svg +0 -1
  129. package/public/oracle-splash/assets/wordmarks/lfj.webp +0 -0
  130. package/public/oracle-splash/assets/wordmarks/lifi.png +0 -0
  131. package/public/oracle-splash/assets/wordmarks/magic-eden.svg +0 -1
  132. package/public/oracle-splash/assets/wordmarks/markets.svg +0 -1
  133. package/public/oracle-splash/assets/wordmarks/morpho.svg +0 -1
  134. package/public/oracle-splash/assets/wordmarks/odos.svg +0 -3
  135. package/public/oracle-splash/assets/wordmarks/oneinch-icon.webp +0 -0
  136. package/public/oracle-splash/assets/wordmarks/oneinch.svg +0 -6
  137. package/public/oracle-splash/assets/wordmarks/opensea-icon.svg +0 -17
  138. package/public/oracle-splash/assets/wordmarks/opensea.svg +0 -1
  139. package/public/oracle-splash/assets/wordmarks/outcome.svg +0 -16
  140. package/public/oracle-splash/assets/wordmarks/pancakeswap.svg +0 -18
  141. package/public/oracle-splash/assets/wordmarks/paragon.svg +0 -9
  142. package/public/oracle-splash/assets/wordmarks/paraswap.svg +0 -16
  143. package/public/oracle-splash/assets/wordmarks/pendle.png +0 -0
  144. package/public/oracle-splash/assets/wordmarks/polymarket.png +0 -0
  145. package/public/oracle-splash/assets/wordmarks/quickswap.png +0 -0
  146. package/public/oracle-splash/assets/wordmarks/relay.svg +0 -8
  147. package/public/oracle-splash/assets/wordmarks/satflow-icon.png +0 -0
  148. package/public/oracle-splash/assets/wordmarks/stargate-icon.webp +0 -0
  149. package/public/oracle-splash/assets/wordmarks/stargate.svg +0 -15
  150. package/public/oracle-splash/assets/wordmarks/uniswap.svg +0 -18
  151. package/public/oracle-splash/assets/wordmarks/velodrome.svg +0 -84
  152. package/public/oracle-splash/assets/wordmarks/xyz.svg +0 -12
  153. package/public/oracle-splash/assets/wordmarks/zerox-icon.webp +0 -0
  154. package/public/oracle-splash/brand/aave.webp +0 -0
  155. package/public/oracle-splash/brand/aavev2.webp +0 -0
  156. package/public/oracle-splash/brand/aborean.webp +0 -0
  157. package/public/oracle-splash/brand/across.webp +0 -0
  158. package/public/oracle-splash/brand/aerodrome.webp +0 -0
  159. package/public/oracle-splash/brand/afi.webp +0 -0
  160. package/public/oracle-splash/brand/arcus.webp +0 -0
  161. package/public/oracle-splash/brand/aster.webp +0 -0
  162. package/public/oracle-splash/brand/avant.webp +0 -0
  163. package/public/oracle-splash/brand/balancer.webp +0 -0
  164. package/public/oracle-splash/brand/beefy.webp +0 -0
  165. package/public/oracle-splash/brand/benqi.webp +0 -0
  166. package/public/oracle-splash/brand/bestinslot.ico +0 -0
  167. package/public/oracle-splash/brand/bitfi.webp +0 -0
  168. package/public/oracle-splash/brand/bonkswap.webp +0 -0
  169. package/public/oracle-splash/brand/bouncebit.webp +0 -0
  170. package/public/oracle-splash/brand/camelot.webp +0 -0
  171. package/public/oracle-splash/brand/compound.webp +0 -0
  172. package/public/oracle-splash/brand/concrete.webp +0 -0
  173. package/public/oracle-splash/brand/cow.webp +0 -0
  174. package/public/oracle-splash/brand/curve.webp +0 -0
  175. package/public/oracle-splash/brand/derive.webp +0 -0
  176. package/public/oracle-splash/brand/dolomite.webp +0 -0
  177. package/public/oracle-splash/brand/eigenlayer.webp +0 -0
  178. package/public/oracle-splash/brand/ekubo.webp +0 -0
  179. package/public/oracle-splash/brand/ethena.webp +0 -0
  180. package/public/oracle-splash/brand/etherfi.webp +0 -0
  181. package/public/oracle-splash/brand/etherfiborrow.webp +0 -0
  182. package/public/oracle-splash/brand/felix.webp +0 -0
  183. package/public/oracle-splash/brand/fluid.webp +0 -0
  184. package/public/oracle-splash/brand/fluxbeam.webp +0 -0
  185. package/public/oracle-splash/brand/folks.webp +0 -0
  186. package/public/oracle-splash/brand/fortyacres.webp +0 -0
  187. package/public/oracle-splash/brand/gainsnetwork.webp +0 -0
  188. package/public/oracle-splash/brand/gassss.webp +0 -0
  189. package/public/oracle-splash/brand/gmx.webp +0 -0
  190. package/public/oracle-splash/brand/harmonix.webp +0 -0
  191. package/public/oracle-splash/brand/hlorderbook.webp +0 -0
  192. package/public/oracle-splash/brand/hlp.webp +0 -0
  193. package/public/oracle-splash/brand/hop.webp +0 -0
  194. package/public/oracle-splash/brand/hyperbeat.webp +0 -0
  195. package/public/oracle-splash/brand/hyperlend.webp +0 -0
  196. package/public/oracle-splash/brand/hyperliquid.webp +0 -0
  197. package/public/oracle-splash/brand/hyperliquidhpl.webp +0 -0
  198. package/public/oracle-splash/brand/hyperliquidspot.webp +0 -0
  199. package/public/oracle-splash/brand/hyperswap.webp +0 -0
  200. package/public/oracle-splash/brand/hypha.webp +0 -0
  201. package/public/oracle-splash/brand/joedex.webp +0 -0
  202. package/public/oracle-splash/brand/jupiter.webp +0 -0
  203. package/public/oracle-splash/brand/kelp.webp +0 -0
  204. package/public/oracle-splash/brand/kinetiq.webp +0 -0
  205. package/public/oracle-splash/brand/kmhype.webp +0 -0
  206. package/public/oracle-splash/brand/kona.webp +0 -0
  207. package/public/oracle-splash/brand/konalend.webp +0 -0
  208. package/public/oracle-splash/brand/lfj.webp +0 -0
  209. package/public/oracle-splash/brand/lido.webp +0 -0
  210. package/public/oracle-splash/brand/lifi.webp +0 -0
  211. package/public/oracle-splash/brand/lighter.webp +0 -0
  212. package/public/oracle-splash/brand/lista.webp +0 -0
  213. package/public/oracle-splash/brand/loopedhype.webp +0 -0
  214. package/public/oracle-splash/brand/lorenzo.webp +0 -0
  215. package/public/oracle-splash/brand/magic-eden.webp +0 -0
  216. package/public/oracle-splash/brand/magiceden.webp +0 -0
  217. package/public/oracle-splash/brand/mempool.png +0 -0
  218. package/public/oracle-splash/brand/meteora.webp +0 -0
  219. package/public/oracle-splash/brand/morpho.webp +0 -0
  220. package/public/oracle-splash/brand/myriad.webp +0 -0
  221. package/public/oracle-splash/brand/noxa.webp +0 -0
  222. package/public/oracle-splash/brand/odos.webp +0 -0
  223. package/public/oracle-splash/brand/oneinch.webp +0 -0
  224. package/public/oracle-splash/brand/openbook.webp +0 -0
  225. package/public/oracle-splash/brand/opensea.webp +0 -0
  226. package/public/oracle-splash/brand/orca.webp +0 -0
  227. package/public/oracle-splash/brand/ordinals.png +0 -0
  228. package/public/oracle-splash/brand/ostium.webp +0 -0
  229. package/public/oracle-splash/brand/pancakeswap.webp +0 -0
  230. package/public/oracle-splash/brand/pendle.webp +0 -0
  231. package/public/oracle-splash/brand/perena.webp +0 -0
  232. package/public/oracle-splash/brand/pharaoh.webp +0 -0
  233. package/public/oracle-splash/brand/phoenix.webp +0 -0
  234. package/public/oracle-splash/brand/polymarket.webp +0 -0
  235. package/public/oracle-splash/brand/polynomial.webp +0 -0
  236. package/public/oracle-splash/brand/projectx.webp +0 -0
  237. package/public/oracle-splash/brand/pumpfun.webp +0 -0
  238. package/public/oracle-splash/brand/quickswap.webp +0 -0
  239. package/public/oracle-splash/brand/rain.webp +0 -0
  240. package/public/oracle-splash/brand/raydium.webp +0 -0
  241. package/public/oracle-splash/brand/relay.webp +0 -0
  242. package/public/oracle-splash/brand/rocketpool.webp +0 -0
  243. package/public/oracle-splash/brand/saber.webp +0 -0
  244. package/public/oracle-splash/brand/sakuraswap.webp +0 -0
  245. package/public/oracle-splash/brand/sanctum.webp +0 -0
  246. package/public/oracle-splash/brand/satflow.png +0 -0
  247. package/public/oracle-splash/brand/sierra.webp +0 -0
  248. package/public/oracle-splash/brand/sky.webp +0 -0
  249. package/public/oracle-splash/brand/solv.webp +0 -0
  250. package/public/oracle-splash/brand/spark.webp +0 -0
  251. package/public/oracle-splash/brand/sparksavings.webp +0 -0
  252. package/public/oracle-splash/brand/sphere.webp +0 -0
  253. package/public/oracle-splash/brand/ssv.webp +0 -0
  254. package/public/oracle-splash/brand/stabble.webp +0 -0
  255. package/public/oracle-splash/brand/stableswap.webp +0 -0
  256. package/public/oracle-splash/brand/stakewise.webp +0 -0
  257. package/public/oracle-splash/brand/stargate.webp +0 -0
  258. package/public/oracle-splash/brand/sthype.webp +0 -0
  259. package/public/oracle-splash/brand/sushiswap.webp +0 -0
  260. package/public/oracle-splash/brand/unisat.png +0 -0
  261. package/public/oracle-splash/brand/uniswap.webp +0 -0
  262. package/public/oracle-splash/brand/uniswapv2.webp +0 -0
  263. package/public/oracle-splash/brand/uniswapv4.webp +0 -0
  264. package/public/oracle-splash/brand/unit.webp +0 -0
  265. package/public/oracle-splash/brand/velodrome.webp +0 -0
  266. package/public/oracle-splash/brand/velora.webp +0 -0
  267. package/public/oracle-splash/brand/venus.webp +0 -0
  268. package/public/oracle-splash/brand/wbeth.webp +0 -0
  269. package/public/oracle-splash/brand/xsy.webp +0 -0
  270. package/public/oracle-splash/brand/yieldyak.webp +0 -0
  271. package/public/oracle-splash/brand/zerobase.webp +0 -0
  272. package/public/oracle-splash/brand/zerox.webp +0 -0
  273. package/public/oracle-splash/favicon.ico +0 -0
  274. package/public/oracle-splash/favicon.svg +0 -6
  275. package/public/oracle-splash/index.html +0 -1558
  276. package/public/oracle-splash/mesh-graph.png +0 -0
  277. package/public/oracle-splash/mesh-graph.svg +0 -216
  278. package/scripts/adversarial-bench.mjs +0 -114
  279. package/scripts/build-inscription.py +0 -230
  280. package/scripts/check-doc-drift.mjs +0 -123
  281. package/scripts/check-test-count.mjs +0 -105
  282. package/scripts/e2e-hl-markets.mjs +0 -21
  283. package/scripts/e2e-hl-perps.mjs +0 -48
  284. package/scripts/e2e-hypercore-staking.mjs +0 -128
  285. package/scripts/e2e-solana-bitcoin.mjs +0 -183
  286. package/scripts/protocol-template-gate.mjs +0 -15
  287. package/scripts/public-api-scan.mjs +0 -23
  288. package/scripts/secret-scan.mjs +0 -181
  289. package/scripts/verify-v3-venues.mjs +0 -192
  290. package/skills/balance/SKILL.md +0 -176
  291. package/skills/oracle-action-semantics/SKILL.md +0 -40
  292. package/skills/oracle-best-execution/SKILL.md +0 -127
  293. package/skills/oracle-bitcoin/SKILL.md +0 -53
  294. package/skills/oracle-chain-graphs-telegram-cards/SKILL.md +0 -59
  295. package/skills/oracle-chat/SKILL.md +0 -61
  296. package/skills/oracle-chat/chain.SKILL.md +0 -31
  297. package/skills/oracle-chat/setup.SKILL.md +0 -37
  298. package/skills/oracle-circuit-breaker/SKILL.md +0 -51
  299. package/skills/oracle-contract-research/SKILL.md +0 -55
  300. package/skills/oracle-desk/SKILL.md +0 -58
  301. package/skills/oracle-dex-launch/SKILL.md +0 -38
  302. package/skills/oracle-grants/SKILL.md +0 -69
  303. package/skills/oracle-hypercore-staking/SKILL.md +0 -57
  304. package/skills/oracle-hyperliquid/SKILL.md +0 -56
  305. package/skills/oracle-meme-token-sniper/SKILL.md +0 -73
  306. package/skills/oracle-multichain-nft-launch/SKILL.md +0 -338
  307. package/skills/oracle-multichain-token-launch/SKILL.md +0 -300
  308. package/skills/oracle-nft-gacha-launch/SKILL.md +0 -48
  309. package/skills/oracle-nft-mint-gas-war/SKILL.md +0 -63
  310. package/skills/oracle-polymarket/SKILL.md +0 -60
  311. package/skills/oracle-protocol-builder/SKILL.md +0 -59
  312. package/skills/oracle-protocol-security/SKILL.md +0 -60
  313. package/skills/oracle-public-product/SKILL.md +0 -44
  314. package/skills/oracle-receipts/SKILL.md +0 -52
  315. package/skills/oracle-rfq-tokenized-assets/SKILL.md +0 -69
  316. package/skills/oracle-smart-wallet-scanner/SKILL.md +0 -49
  317. package/skills/oracle-solana/SKILL.md +0 -65
  318. package/skills/oracle-solana-nft/SKILL.md +0 -54
  319. package/skills/oracle-token-research/SKILL.md +0 -67
  320. package/skins/oracle.yaml +0 -56
  321. package/src/action-receipts.mjs +0 -265
  322. package/src/action-semantics.mjs +0 -62
  323. package/src/address-book.mjs +0 -208
  324. package/src/agent-auth.mjs +0 -206
  325. package/src/approval-guard.mjs +0 -282
  326. package/src/attestation-secret.mjs +0 -88
  327. package/src/audit-log.mjs +0 -196
  328. package/src/auth/oauth.mjs +0 -672
  329. package/src/auto-slippage.mjs +0 -378
  330. package/src/capability-posture.mjs +0 -125
  331. package/src/chains.mjs +0 -62
  332. package/src/cli/chain-catalog.mjs +0 -215
  333. package/src/cli/chain-state.mjs +0 -74
  334. package/src/cli/commands/auth.mjs +0 -193
  335. package/src/cli/commands/bootstrap.mjs +0 -87
  336. package/src/cli/commands/chain.mjs +0 -143
  337. package/src/cli/commands/chat.mjs +0 -434
  338. package/src/cli/commands/credential.mjs +0 -9
  339. package/src/cli/commands/data-mcp.mjs +0 -18
  340. package/src/cli/commands/data.mjs +0 -75
  341. package/src/cli/commands/doctor.mjs +0 -136
  342. package/src/cli/commands/help.mjs +0 -7
  343. package/src/cli/commands/init.mjs +0 -27
  344. package/src/cli/commands/mcp.mjs +0 -142
  345. package/src/cli/commands/model.mjs +0 -99
  346. package/src/cli/commands/prepare.mjs +0 -12
  347. package/src/cli/commands/public.mjs +0 -20
  348. package/src/cli/commands/route.mjs +0 -12
  349. package/src/cli/commands/runner.mjs +0 -9
  350. package/src/cli/commands/scan.mjs +0 -12
  351. package/src/cli/commands/setup.mjs +0 -275
  352. package/src/cli/commands/sign.mjs +0 -21
  353. package/src/cli/commands/signer.mjs +0 -9
  354. package/src/cli/commands/upgrade.mjs +0 -12
  355. package/src/cli/commands/vault.mjs +0 -9
  356. package/src/cli/commands/version.mjs +0 -22
  357. package/src/cli/first-run.mjs +0 -23
  358. package/src/cli/kernel.mjs +0 -239
  359. package/src/cli/mcp-targets/chatgpt.mjs +0 -51
  360. package/src/cli/mcp-targets/claude-code.mjs +0 -39
  361. package/src/cli/mcp-targets/claude-desktop.mjs +0 -24
  362. package/src/cli/mcp-targets/codex.mjs +0 -41
  363. package/src/cli/mcp-targets/shared.mjs +0 -61
  364. package/src/cli/messaging-platforms.mjs +0 -209
  365. package/src/cli/model-config.mjs +0 -70
  366. package/src/cli/operator-dispatch.mjs +0 -258
  367. package/src/cli/oracle-harness.py +0 -415
  368. package/src/cli/paths.mjs +0 -83
  369. package/src/cli/runtime.mjs +0 -351
  370. package/src/cli/setup-state.mjs +0 -168
  371. package/src/cli/spawn-child.mjs +0 -43
  372. package/src/data/catalog.mjs +0 -585
  373. package/src/data/desk-data.mjs +0 -695
  374. package/src/data/http.mjs +0 -253
  375. package/src/data/provider-endpoint.mjs +0 -94
  376. package/src/data/providers/aerodrome.mjs +0 -245
  377. package/src/data/providers/balancer.mjs +0 -209
  378. package/src/data/providers/bitcoin-esplora.mjs +0 -216
  379. package/src/data/providers/bitcoin-meta.mjs +0 -378
  380. package/src/data/providers/blockscout.mjs +0 -14
  381. package/src/data/providers/bridges.mjs +0 -242
  382. package/src/data/providers/cowswap.mjs +0 -415
  383. package/src/data/providers/curve.mjs +0 -201
  384. package/src/data/providers/defillama.mjs +0 -88
  385. package/src/data/providers/dexscreener.mjs +0 -43
  386. package/src/data/providers/evm-rpc.mjs +0 -225
  387. package/src/data/providers/geckoterminal.mjs +0 -34
  388. package/src/data/providers/gmx.mjs +0 -496
  389. package/src/data/providers/hl-assets.mjs +0 -165
  390. package/src/data/providers/hl-info.mjs +0 -108
  391. package/src/data/providers/hl-markets.mjs +0 -210
  392. package/src/data/providers/hl-outcome.mjs +0 -61
  393. package/src/data/providers/hl-perps.mjs +0 -387
  394. package/src/data/providers/hl-staking.mjs +0 -353
  395. package/src/data/providers/hl-ws.mjs +0 -119
  396. package/src/data/providers/hyperevm-dex.mjs +0 -49
  397. package/src/data/providers/jupiter-venues.mjs +0 -119
  398. package/src/data/providers/jupiter.mjs +0 -315
  399. package/src/data/providers/lifi.mjs +0 -151
  400. package/src/data/providers/magiceden-sol.mjs +0 -406
  401. package/src/data/providers/morpho.mjs +0 -177
  402. package/src/data/providers/nft-gallery.mjs +0 -163
  403. package/src/data/providers/nft-portfolio.mjs +0 -494
  404. package/src/data/providers/odos.mjs +0 -156
  405. package/src/data/providers/oneinch.mjs +0 -174
  406. package/src/data/providers/opensea-multichain.mjs +0 -136
  407. package/src/data/providers/opensea-nft.mjs +0 -371
  408. package/src/data/providers/paraswap.mjs +0 -118
  409. package/src/data/providers/pendle.mjs +0 -188
  410. package/src/data/providers/poly-clob.mjs +0 -283
  411. package/src/data/providers/poly-public.mjs +0 -96
  412. package/src/data/providers/poly-ws.mjs +0 -103
  413. package/src/data/providers/portfolio-history.mjs +0 -394
  414. package/src/data/providers/portfolio.mjs +0 -594
  415. package/src/data/providers/rfq.mjs +0 -15
  416. package/src/data/providers/rh-agent.mjs +0 -59
  417. package/src/data/providers/satflow.mjs +0 -341
  418. package/src/data/providers/signed-material-guard.mjs +0 -108
  419. package/src/data/providers/solana-rpc.mjs +0 -197
  420. package/src/data/providers/uniswap-v3.mjs +0 -349
  421. package/src/data/providers/uniswap-v4.mjs +0 -414
  422. package/src/data/providers/zerox.mjs +0 -167
  423. package/src/data/public-api-scan.mjs +0 -61
  424. package/src/data/quote-placeholder.mjs +0 -31
  425. package/src/exact-integer.mjs +0 -72
  426. package/src/exec-policy.mjs +0 -455
  427. package/src/flags.mjs +0 -15
  428. package/src/fresh-window.mjs +0 -76
  429. package/src/gmx-attestation.mjs +0 -176
  430. package/src/index.mjs +0 -100
  431. package/src/nft-gas-war-guard.mjs +0 -139
  432. package/src/onboarding/agent-keys.mjs +0 -161
  433. package/src/onboarding/harness-configs.mjs +0 -102
  434. package/src/onboarding/index.mjs +0 -18
  435. package/src/onboarding/tiers.mjs +0 -139
  436. package/src/oracle-env.mjs +0 -47
  437. package/src/portfolio-risk.mjs +0 -170
  438. package/src/prepare-envelope.mjs +0 -204
  439. package/src/profile-upgrade.mjs +0 -277
  440. package/src/protocol-execution.mjs +0 -84
  441. package/src/protocol-templates/gate.mjs +0 -179
  442. package/src/protocol-templates/prepare-deploy.mjs +0 -81
  443. package/src/public-api/buzz-integration.mjs +0 -256
  444. package/src/public-api/connect-agent.mjs +0 -416
  445. package/src/public-api/grants.mjs +0 -142
  446. package/src/public-api/http.mjs +0 -389
  447. package/src/public-control/aa-adapter.mjs +0 -402
  448. package/src/public-control/build-registry.mjs +0 -227
  449. package/src/public-control/bundler-client.mjs +0 -357
  450. package/src/public-control/grant-indexer.mjs +0 -296
  451. package/src/public-control/policy-render.mjs +0 -69
  452. package/src/public-control/policy-schema.mjs +0 -318
  453. package/src/public-control/runtime-config.mjs +0 -275
  454. package/src/public-control/session-key-model.mjs +0 -374
  455. package/src/public-control/session-orchestrator.mjs +0 -412
  456. package/src/rfq/intent.mjs +0 -180
  457. package/src/rfq/sources.mjs +0 -181
  458. package/src/route-attestation.mjs +0 -132
  459. package/src/router/best-execution.mjs +0 -326
  460. package/src/router/index.mjs +0 -226
  461. package/src/router/prepare-bridge.mjs +0 -289
  462. package/src/router/prepare-route.mjs +0 -398
  463. package/src/router/proposal.mjs +0 -311
  464. package/src/router/risk-classifier.mjs +0 -119
  465. package/src/router/route-sources.mjs +0 -364
  466. package/src/scanner/chains.config.mjs +0 -430
  467. package/src/scanner/contract.mjs +0 -270
  468. package/src/scanner/evm-scanner.mjs +0 -394
  469. package/src/scanner/index.mjs +0 -9
  470. package/src/scanner/v2-venue.mjs +0 -335
  471. package/src/scanner/v3-venue.mjs +0 -290
  472. package/src/scopes.mjs +0 -44
  473. package/src/sell-simulation.mjs +0 -167
  474. package/src/signals/engine.mjs +0 -146
  475. package/src/signals/index.mjs +0 -1
  476. package/src/token-transfer-guard.mjs +0 -188
  477. package/src/tui/app.mjs +0 -438
  478. package/src/tui/backend.mjs +0 -145
  479. package/src/tui/format.mjs +0 -272
  480. package/src/tui/gateway-client.mjs +0 -177
  481. package/src/tui/input.mjs +0 -501
  482. package/src/tui/renderer.mjs +0 -443
  483. package/src/tui/standalone-client.mjs +0 -666
  484. package/src/tui/theme.mjs +0 -81
  485. package/src/vault-attestation.mjs +0 -146
  486. package/src/venues.mjs +0 -206
  487. package/src/watch-preferences.mjs +0 -85
@@ -1,37 +0,0 @@
1
- {
2
- "$schema": "./profile.schema.json",
3
- "id": "solana-agent",
4
- "label": "solana agent",
5
- "role": "venue",
6
- "color": "#9945FF",
7
- "description": "Solana: token research, launch/meme-token scans, Jupiter routes, SPL accounts, Magic Eden NFT reads, unsigned swap and NFT buy/list/mint preparation.",
8
- "model": {
9
- "note": "Mixed research and route math; a balanced general model fits.",
10
- "suggested": "balanced"
11
- },
12
- "skills": [
13
- "oracle-solana",
14
- "oracle-receipts",
15
- "oracle-circuit-breaker",
16
- "oracle-best-execution",
17
- "oracle-meme-token-sniper",
18
- "oracle-chain-graphs-telegram-cards",
19
- "oracle-rfq-tokenized-assets",
20
- "oracle-solana-nft"
21
- ],
22
- "mcp": [
23
- "oracle-data"
24
- ],
25
- "chains": [],
26
- "nonEvm": "solana-mainnet",
27
- "posture": {
28
- "default": "DISARMED",
29
- "grantActions": [
30
- "read:chain",
31
- "simulate:tx",
32
- "prepare:swap"
33
- ],
34
- "signing": "user-wallet",
35
- "rationale": "Separate signing plane from EVM by design: a Solana grant must never be satisfiable by an EVM key."
36
- }
37
- }
@@ -1,43 +0,0 @@
1
- # stable agent
2
-
3
- You cover **Stable mainnet** (chain 988), where the stablecoin *is* the gas token.
4
-
5
- ## What you own
6
-
7
- Balances, bridge-in routes, DEX pools (often forks), and contract verification on
8
- a young chain.
9
-
10
- ## The quirks that break assumptions
11
-
12
- **Gas is USDT0, 18 decimals native.** The same balance shows up twice: as native
13
- via `getBalance`, and as an ERC-20 mirror via `balanceOf` with a 6-decimal
14
- interface. It is **one balance**. Do not sum them.
15
-
16
- **"Listed on a bridge" is not "routable."** A young chain has no relayer
17
- inventory, so liquidity-pool bridges return `INSUFFICIENT_LIQUIDITY / max $0`
18
- even while the chain appears supported. Always quote the actual route. When pool
19
- bridges are dry, the rail that works is the token's native OFT mesh.
20
-
21
- **A token bridge delivers the token, not gas.** After a bridge lands the wallet
22
- often has zero native to pay for the next transaction. Plan the gas leg
23
- separately, before it's needed.
24
-
25
- **DEX forks are not Uniswap.** A fork's router may require an off-chain signed
26
- quote you cannot forge, while the underlying pair is standard V2. Verify what you
27
- are actually calling.
28
-
29
- ## Hard rules
30
-
31
- 1. **Verify every venue on-chain before use** — `eth_getCode` must return real
32
- bytecode. A named contract on an explorer is not verification.
33
- 2. **Quote each leg of a multi-hop before firing the first**, or funds strand
34
- mid-journey.
35
- 3. **Never size against a launchpad token's own virtual reserves.** Find the real
36
- pair.
37
- 4. **You do not sign.** Swaps are prepared for the user's wallet.
38
- 5. **Receipts or it didn't happen.**
39
-
40
- ## Voice
41
-
42
- Say what you verified and how. On a chain this young, `unknown` is often the
43
- honest answer — give it.
@@ -1,37 +0,0 @@
1
- {
2
- "$schema": "./profile.schema.json",
3
- "id": "stable-agent",
4
- "label": "stable agent",
5
- "role": "venue",
6
- "color": "#F0B90B",
7
- "description": "Stable mainnet (988): USDT-native gas, bridge-in routes, DEX-fork pools, launch/meme-token scans.",
8
- "model": {
9
- "note": "New-chain work is full of surprises; wants a careful model that verifies rather than assumes.",
10
- "suggested": "careful-verifier"
11
- },
12
- "skills": [
13
- "oracle-contract-research",
14
- "oracle-receipts",
15
- "oracle-circuit-breaker",
16
- "oracle-best-execution",
17
- "oracle-meme-token-sniper",
18
- "oracle-chain-graphs-telegram-cards",
19
- "oracle-rfq-tokenized-assets"
20
- ],
21
- "mcp": [
22
- "oracle-data"
23
- ],
24
- "chains": [
25
- 988
26
- ],
27
- "posture": {
28
- "default": "DISARMED",
29
- "grantActions": [
30
- "read:chain",
31
- "simulate:tx",
32
- "prepare:swap"
33
- ],
34
- "signing": "user-wallet",
35
- "rationale": "A young chain has thin liquidity and unverified forks. Every venue needs on-chain verification before use."
36
- }
37
- }
@@ -1,16 +0,0 @@
1
- # SafeERC20 template security notice
2
-
3
- **Not a paid security-firm audit.**
4
-
5
- This template is:
6
- - fixed-supply ERC20
7
- - Ownable2Step + pause
8
- - no tax / blacklist / upgrade proxy
9
- - covered by Foundry unit tests in `test/`
10
-
11
- Before mainnet capital:
12
- 1. Keep or expand Foundry tests green
13
- 2. Run static analysis (Slither/Aderyn) if available
14
- 3. Book an independent Solidity auditor for any real TVL
15
-
16
- Oracle only prepares unsigned deploys after the JS gate confirms `forge test` passes.
@@ -1,12 +0,0 @@
1
- [profile.default]
2
- src = "src"
3
- out = "out"
4
- libs = ["lib"]
5
- solc = "0.8.24"
6
- optimizer = true
7
- optimizer_runs = 200
8
- ffi = false
9
- fs_permissions = [{ access = "read", path = "./" }]
10
-
11
- [fmt]
12
- line_length = 100
@@ -1,2 +0,0 @@
1
- @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
2
- forge-std/=lib/forge-std/src/
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.24;
3
-
4
- import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
- import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
6
- import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";
7
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
8
- import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
9
-
10
- /**
11
- * @title SafeERC20
12
- * @notice Opinionated fixed-supply ERC20 for Oracle protocol-builder v1.
13
- *
14
- * Security posture (templates, NOT a firm audit):
15
- * - Fixed supply minted once to `initialHolder` in constructor (no hidden mint).
16
- * - Ownable2Step ownership (no single-tx accidental transfer).
17
- * - Pausable emergency stop (owner only).
18
- * - No transfer tax, no blacklist, no max-tx, no trading cooldown.
19
- * - No upgradeability / no proxy.
20
- * - Burn optional by holders only (ERC20Burnable).
21
- *
22
- * This is a reviewed starter template with Foundry tests. It is NOT a paid
23
- * security-firm audit. Do not put mainnet TVL on custom forks without one.
24
- */
25
- contract SafeERC20 is ERC20, ERC20Burnable, ERC20Pausable, Ownable2Step {
26
- constructor(
27
- string memory name_,
28
- string memory symbol_,
29
- uint256 initialSupply,
30
- address initialHolder,
31
- address initialOwner
32
- ) ERC20(name_, symbol_) Ownable(initialOwner) {
33
- require(initialHolder != address(0), "SafeERC20: holder zero");
34
- require(initialOwner != address(0), "SafeERC20: owner zero");
35
- require(initialSupply > 0, "SafeERC20: supply zero");
36
- _mint(initialHolder, initialSupply);
37
- }
38
-
39
- function pause() external onlyOwner {
40
- _pause();
41
- }
42
-
43
- function unpause() external onlyOwner {
44
- _unpause();
45
- }
46
-
47
- function _update(address from, address to, uint256 value)
48
- internal
49
- override(ERC20, ERC20Pausable)
50
- {
51
- super._update(from, to, value);
52
- }
53
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.24;
3
-
4
- import {Test} from "forge-std/Test.sol";
5
- import {SafeERC20} from "../src/SafeERC20.sol";
6
-
7
- contract SafeERC20Test is Test {
8
- SafeERC20 internal token;
9
- address internal owner = makeAddr("owner");
10
- address internal holder = makeAddr("holder");
11
- address internal alice = makeAddr("alice");
12
- address internal bob = makeAddr("bob");
13
-
14
- uint256 internal constant SUPPLY = 1_000_000 ether;
15
-
16
- function setUp() public {
17
- token = new SafeERC20("Safe", "SAFE", SUPPLY, holder, owner);
18
- }
19
-
20
- function test_fixedSupply_noHiddenMint() public view {
21
- assertEq(token.totalSupply(), SUPPLY);
22
- assertEq(token.balanceOf(holder), SUPPLY);
23
- assertEq(token.balanceOf(owner), 0);
24
- }
25
-
26
- function test_transfer_noTax() public {
27
- vm.prank(holder);
28
- token.transfer(alice, 100 ether);
29
- assertEq(token.balanceOf(alice), 100 ether);
30
- assertEq(token.balanceOf(holder), SUPPLY - 100 ether);
31
- }
32
-
33
- function test_pause_blocksTransfers() public {
34
- vm.prank(owner);
35
- token.pause();
36
- vm.prank(holder);
37
- vm.expectRevert();
38
- token.transfer(alice, 1 ether);
39
- }
40
-
41
- function test_onlyOwner_canPause() public {
42
- vm.prank(alice);
43
- vm.expectRevert();
44
- token.pause();
45
- }
46
-
47
- function test_ownable2Step_requiresAccept() public {
48
- vm.prank(owner);
49
- token.transferOwnership(alice);
50
- // still owner until accept
51
- assertEq(token.owner(), owner);
52
- vm.prank(alice);
53
- token.acceptOwnership();
54
- assertEq(token.owner(), alice);
55
- }
56
-
57
- function test_burn_reducesSupply() public {
58
- vm.prank(holder);
59
- token.burn(10 ether);
60
- assertEq(token.totalSupply(), SUPPLY - 10 ether);
61
- }
62
-
63
- function test_rejectZeroHolder() public {
64
- vm.expectRevert(bytes("SafeERC20: holder zero"));
65
- new SafeERC20("X", "X", SUPPLY, address(0), owner);
66
- }
67
-
68
- function test_rejectZeroSupply() public {
69
- vm.expectRevert(bytes("SafeERC20: supply zero"));
70
- new SafeERC20("X", "X", 0, holder, owner);
71
- }
72
- }
@@ -1,84 +0,0 @@
1
- (() => {
2
- "use strict";
3
-
4
- const PACKAGE = "@oracle-agent/oracle";
5
- const COMMAND = "npx";
6
- const ARGS = ["-y", "--package", PACKAGE, "oracle-data-mcp"];
7
- const INIT_COMMAND = "npx -y --package @oracle-agent/oracle oracle-init";
8
-
9
- const apiUrl = document.querySelector("#api-url");
10
- const apiKey = document.querySelector("#api-key");
11
- const walletAddress = document.querySelector("#wallet-address");
12
- const output = document.querySelector("#config-output");
13
- const label = document.querySelector("#config-label");
14
- const status = document.querySelector("#copy-status");
15
- const tabs = [...document.querySelectorAll("[data-harness]")];
16
- let selected = "hermes";
17
-
18
- const cleanUrl = () => apiUrl.value.trim().replace(/\/+$/, "");
19
- const env = () => {
20
- const values = {
21
- ORACLE_DATA_URL: cleanUrl() || "https://api.oracle-agent.dev",
22
- ORACLE_AGENT_KEY: apiKey.value.trim() || "YOUR_AGENT_KEY"
23
- };
24
- if (walletAddress.value.trim()) values.ORACLE_WALLET_ADDRESS = walletAddress.value.trim();
25
- return values;
26
- };
27
-
28
- const server = () => ({ command: COMMAND, args: [...ARGS], env: env() });
29
-
30
- const configs = {
31
- hermes: () => ({
32
- mcpServers: { oracle: server() }
33
- }),
34
- claude: () => ({
35
- mcpServers: { oracle: server() }
36
- }),
37
- codex: () => {
38
- const values = env();
39
- const lines = [
40
- "[mcp_servers.oracle]",
41
- `command = ${JSON.stringify(COMMAND)}`,
42
- `args = [${ARGS.map((arg) => JSON.stringify(arg)).join(", ")}]`,
43
- "",
44
- "[mcp_servers.oracle.env]",
45
- ...Object.entries(values).map(([key, value]) => `${key} = ${JSON.stringify(value)}`)
46
- ];
47
- return lines.join("\n");
48
- },
49
- cursor: () => ({
50
- mcpServers: { oracle: server() }
51
- }),
52
- mcp: () => ({
53
- mcpServers: { oracle: server() }
54
- })
55
- };
56
-
57
- const names = { hermes: "Hermes", claude: "Claude Code", codex: "Codex", cursor: "Cursor", mcp: "Generic MCP" };
58
-
59
- function render() {
60
- const config = configs[selected]();
61
- output.textContent = typeof config === "string" ? config : JSON.stringify(config, null, 2);
62
- label.textContent = `${names[selected]} config`;
63
- status.textContent = "";
64
- }
65
-
66
- async function copy(text, message) {
67
- try {
68
- await navigator.clipboard.writeText(text);
69
- status.textContent = message;
70
- } catch {
71
- status.textContent = "Copy was blocked. Select the text and copy it manually.";
72
- }
73
- }
74
-
75
- tabs.forEach((tab) => tab.addEventListener("click", () => {
76
- selected = tab.dataset.harness;
77
- tabs.forEach((item) => item.setAttribute("aria-selected", String(item === tab)));
78
- render();
79
- }));
80
- [apiUrl, apiKey, walletAddress].forEach((input) => input.addEventListener("input", render));
81
- document.querySelector("#copy-button").addEventListener("click", () => copy(output.textContent, `${names[selected]} config copied.`));
82
- document.querySelector("#copy-install").addEventListener("click", () => copy(INIT_COMMAND, "Local operator install command copied."));
83
- render();
84
- })();
@@ -1,83 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <meta name="description" content="Connect your agent harness to Oracle read tools without giving up custody." />
7
- <title>Oracle Agent Connect</title>
8
- <link rel="stylesheet" href="styles.css" />
9
- </head>
10
- <body>
11
- <main class="shell">
12
- <header class="hero">
13
- <a class="wordmark" href="/">ORACLE</a>
14
- <p class="eyebrow">AGENT CONNECT</p>
15
- <h1>Give your agent market context.<br /><span>Keep custody local.</span></h1>
16
- <p class="lede">Connect a read-only Oracle API to your preferred harness. The model proposes actions; you review and authorize them through your local operator.</p>
17
- </header>
18
-
19
- <section class="card setup" aria-labelledby="connection-title">
20
- <div class="section-heading">
21
- <span class="step">01</span>
22
- <div>
23
- <h2 id="connection-title">Your connection</h2>
24
- <p>These values stay in this browser and are only used to build the config below.</p>
25
- </div>
26
- </div>
27
- <div class="fields">
28
- <label>Agent API URL
29
- <input id="api-url" type="url" value="https://api.oracle-agent.dev" spellcheck="false" autocomplete="url" />
30
- </label>
31
- <label>Read API key
32
- <input id="api-key" type="password" placeholder="Your read-only API key" spellcheck="false" autocomplete="off" />
33
- <span class="hint">Use only a user-owned, read-only API credential.</span>
34
- </label>
35
- <label>Public wallet address <span class="optional">optional</span>
36
- <input id="wallet-address" type="text" placeholder="0x... or a public Solana address" spellcheck="false" autocomplete="off" />
37
- <span class="hint">Used to personalize portfolio reads. No wallet connection or signature.</span>
38
- </label>
39
- </div>
40
- </section>
41
-
42
- <section class="card config" aria-labelledby="config-title">
43
- <div class="section-heading">
44
- <span class="step">02</span>
45
- <div>
46
- <h2 id="config-title">Choose your harness</h2>
47
- <p>Copy a ready-to-paste cloud/read MCP configuration.</p>
48
- </div>
49
- </div>
50
- <div class="tabs" role="tablist" aria-label="Agent harness">
51
- <button role="tab" aria-selected="true" data-harness="hermes">Hermes</button>
52
- <button role="tab" aria-selected="false" data-harness="claude">Claude Code</button>
53
- <button role="tab" aria-selected="false" data-harness="codex">Codex</button>
54
- <button role="tab" aria-selected="false" data-harness="cursor">Cursor</button>
55
- <button role="tab" aria-selected="false" data-harness="mcp">Generic MCP</button>
56
- </div>
57
- <div class="code-wrap">
58
- <div class="code-bar">
59
- <span id="config-label">Hermes config</span>
60
- <button id="copy-button" class="copy" type="button">Copy config</button>
61
- </div>
62
- <pre><code id="config-output"></code></pre>
63
- </div>
64
- <p id="copy-status" class="status" aria-live="polite"></p>
65
- </section>
66
-
67
- <section class="operator" aria-labelledby="operator-title">
68
- <div class="operator-mark" aria-hidden="true">LOCAL</div>
69
- <div>
70
- <p class="eyebrow">SEPARATE EXECUTION LANE</p>
71
- <h2 id="operator-title">Install the local operator to execute</h2>
72
- <p>The cloud/read MCP can research, quote, simulate, and prepare. Execution belongs in a separate local process under your policy and approval controls.</p>
73
- <div class="command"><code>npx @oracle-agent/oracle init</code><button id="copy-install" type="button">Copy</button></div>
74
- </div>
75
- </section>
76
-
77
- <footer>
78
- <p><strong>Custody stays local.</strong> The model proposes; the owner authorizes. This page never connects a wallet, requests a signature, or sends the values you enter.</p>
79
- </footer>
80
- </main>
81
- <script src="app.js"></script>
82
- </body>
83
- </html>
@@ -1,70 +0,0 @@
1
- :root {
2
- color-scheme: dark;
3
- --ink: #07110f;
4
- --panel: #0d1a17;
5
- --panel-high: #12231f;
6
- --line: #26443d;
7
- --mint: #55e6c1;
8
- --paper: #edf8f4;
9
- --muted: #9bb8b0;
10
- }
11
-
12
- * { box-sizing: border-box; }
13
-
14
- body {
15
- margin: 0;
16
- background:
17
- radial-gradient(circle at 85% 8%, rgba(85, 230, 193, 0.12), transparent 25rem),
18
- linear-gradient(rgba(85, 230, 193, 0.025) 1px, transparent 1px),
19
- linear-gradient(90deg, rgba(85, 230, 193, 0.025) 1px, transparent 1px),
20
- var(--ink);
21
- background-size: auto, 48px 48px, 48px 48px, auto;
22
- color: var(--paper);
23
- font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
24
- min-height: 100vh;
25
- }
26
-
27
- button, input { font: inherit; }
28
- .shell { width: min(980px, calc(100% - 32px)); margin: auto; padding: 56px 0 32px; }
29
- .hero { max-width: 780px; margin-bottom: 42px; }
30
- .wordmark { color: var(--paper); text-decoration: none; font-size: 14px; font-weight: 800; letter-spacing: .28em; }
31
- .eyebrow { margin: 36px 0 10px; color: var(--mint); font: 700 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .18em; }
32
- h1 { margin: 0; font-size: clamp(40px, 7vw, 76px); line-height: .98; letter-spacing: -.055em; }
33
- h1 span { color: var(--mint); }
34
- .lede { max-width: 660px; margin: 24px 0 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
35
- .card { background: rgba(13, 26, 23, .92); border: 1px solid var(--line); border-radius: 18px; padding: clamp(22px, 4vw, 38px); margin-top: 18px; box-shadow: 0 22px 70px rgba(0, 0, 0, .22); }
36
- .section-heading { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 28px; }
37
- .step { display: grid; place-items: center; min-width: 42px; height: 42px; border: 1px solid var(--mint); border-radius: 50%; color: var(--mint); font: 700 12px ui-monospace, monospace; }
38
- h2 { margin: 0; font-size: 24px; letter-spacing: -.02em; }
39
- .section-heading p, .operator p { color: var(--muted); margin: 6px 0 0; line-height: 1.55; }
40
- .fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
41
- label { display: flex; flex-direction: column; gap: 9px; color: var(--paper); font-size: 13px; font-weight: 700; }
42
- label:first-child { grid-column: 1 / -1; }
43
- .optional { color: var(--muted); font-weight: 400; }
44
- input { width: 100%; color: var(--paper); background: var(--ink); border: 1px solid var(--line); border-radius: 9px; padding: 13px 14px; outline: none; }
45
- input:focus { border-color: var(--mint); box-shadow: 0 0 0 3px rgba(85, 230, 193, .1); }
46
- .hint { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.4; }
47
- .tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
48
- .tabs button { flex: 0 0 auto; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 999px; padding: 9px 15px; cursor: pointer; }
49
- .tabs button[aria-selected="true"] { color: var(--ink); background: var(--mint); border-color: var(--mint); font-weight: 700; }
50
- .code-wrap { margin-top: 18px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--ink); }
51
- .code-bar { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; }
52
- .copy, .command button { color: var(--mint); background: transparent; border: 0; cursor: pointer; font-weight: 700; }
53
- pre { min-height: 270px; margin: 0; padding: 20px; overflow: auto; color: #c8f7e9; font: 12px/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
54
- .status { min-height: 20px; margin: 10px 0 0; color: var(--mint); font-size: 12px; }
55
- .operator { display: grid; grid-template-columns: 120px 1fr; gap: 30px; margin: 54px 0; padding: 0 20px; align-items: center; }
56
- .operator .eyebrow { margin: 0 0 8px; }
57
- .operator-mark { display: grid; place-items: center; aspect-ratio: 1; border: 1px solid var(--mint); border-radius: 50%; color: var(--mint); font: 700 12px ui-monospace, monospace; letter-spacing: .15em; box-shadow: inset 0 0 30px rgba(85, 230, 193, .09); }
58
- .command { display: flex; justify-content: space-between; max-width: 520px; margin-top: 18px; padding: 13px 16px; background: var(--panel-high); border: 1px solid var(--line); border-radius: 9px; }
59
- .command code { overflow: auto; }
60
- footer { border-top: 1px solid var(--line); padding: 25px 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
61
- footer strong { color: var(--paper); }
62
-
63
- @media (max-width: 640px) {
64
- .shell { padding-top: 30px; }
65
- .fields { grid-template-columns: 1fr; }
66
- label:first-child { grid-column: auto; }
67
- .operator { grid-template-columns: 1fr; padding: 0; }
68
- .operator-mark { width: 88px; }
69
- pre { min-height: 320px; }
70
- }
package/public/index.html DELETED
@@ -1,12 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8"/>
5
- <meta http-equiv="refresh" content="0; url=./oracle-splash/"/>
6
- <link rel="canonical" href="./oracle-splash/"/>
7
- <title>Oracle</title>
8
- </head>
9
- <body>
10
- <p><a href="./oracle-splash/">Oracle splash</a></p>
11
- </body>
12
- </html>