@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
package/src/tui/input.mjs DELETED
@@ -1,501 +0,0 @@
1
- const EMPTY = Buffer.alloc(0);
2
-
3
- const SPECIAL_NAMES = new Set([
4
- "return",
5
- "backspace",
6
- "tab",
7
- "escape",
8
- "up",
9
- "down",
10
- "left",
11
- "right",
12
- "home",
13
- "end",
14
- "delete",
15
- "insert",
16
- "pageup",
17
- "pagedown",
18
- "unknown",
19
- ]);
20
-
21
- const CSI_FINALS = {
22
- A: "up",
23
- B: "down",
24
- C: "right",
25
- D: "left",
26
- H: "home",
27
- F: "end",
28
- P: "f1",
29
- Q: "f2",
30
- R: "f3",
31
- S: "f4",
32
- };
33
-
34
- const TILDE_CODES = {
35
- 1: "home",
36
- 2: "insert",
37
- 3: "delete",
38
- 4: "end",
39
- 5: "pageup",
40
- 6: "pagedown",
41
- 7: "home",
42
- 8: "end",
43
- };
44
-
45
- function makeKey({ name = null, ctrl = false, meta = false, shift = false, sequence = "" }) {
46
- return { name, ctrl, meta, shift, sequence };
47
- }
48
-
49
- function utf8Length(lead) {
50
- if (lead < 0x80) return 1;
51
- if (lead >= 0xf0) return 4;
52
- if (lead >= 0xe0) return 3;
53
- if (lead >= 0xc0) return 2;
54
- return 1;
55
- }
56
-
57
- function isFinalByte(b) {
58
- return b >= 0x40 && b <= 0x7e;
59
- }
60
-
61
- function charKey(text) {
62
- const lower = text.toLowerCase();
63
- return makeKey({
64
- name: lower,
65
- shift: text !== lower,
66
- sequence: text,
67
- });
68
- }
69
-
70
- function controlKey(b) {
71
- if (b === 0x0d) return makeKey({ name: "return", sequence: "\r" });
72
- if (b === 0x0a) return makeKey({ name: "return", sequence: "\n" });
73
- if (b === 0x09) return makeKey({ name: "tab", sequence: "\t" });
74
- if (b === 0x7f) return makeKey({ name: "backspace", sequence: "\u007f" });
75
- if (b === 0x08) return makeKey({ name: "backspace", sequence: "\b" });
76
- if (b >= 0x01 && b <= 0x1a) {
77
- return makeKey({
78
- name: String.fromCharCode(b + 0x60),
79
- ctrl: true,
80
- sequence: String.fromCharCode(b),
81
- });
82
- }
83
- return makeKey({ name: "unknown", sequence: String.fromCharCode(b) });
84
- }
85
-
86
- function csiKey(sequence) {
87
- const match = /^\u001b[\[O](\d*)(?:;(\d+))?(.)$/s.exec(sequence);
88
- if (!match) return makeKey({ name: "unknown", sequence });
89
- const first = match[1] === "" ? null : Number(match[1]);
90
- const second = match[2] === undefined ? null : Number(match[2]);
91
- const final = match[3];
92
-
93
- let name = null;
94
- let modifier = second;
95
- if (final === "~") {
96
- name = TILDE_CODES[first] ?? null;
97
- } else {
98
- name = CSI_FINALS[final] ?? null;
99
- if (modifier === null && first !== null && first > 1) modifier = first;
100
- }
101
- if (!name) return makeKey({ name: "unknown", sequence });
102
-
103
- const bits = modifier === null ? 0 : Math.max(0, modifier - 1);
104
- return makeKey({
105
- name,
106
- shift: (bits & 1) !== 0,
107
- meta: (bits & 2) !== 0,
108
- ctrl: (bits & 4) !== 0,
109
- sequence,
110
- });
111
- }
112
-
113
- function decodeEscape(buf, start, keys, flush) {
114
- const escape = () => {
115
- keys.push(makeKey({ name: "escape", sequence: "\u001b" }));
116
- return 1;
117
- };
118
- if (start + 1 >= buf.length) return flush ? escape() : 0;
119
-
120
- const next = buf[start + 1];
121
- if (next === 0x5b || next === 0x4f) {
122
- let j = start + 2;
123
- while (j < buf.length && !isFinalByte(buf[j])) j += 1;
124
- if (j >= buf.length) return flush ? escape() : 0;
125
- keys.push(csiKey(buf.toString("utf8", start, j + 1)));
126
- return j + 1 - start;
127
- }
128
- if (next === 0x1b) return escape();
129
-
130
- const width = utf8Length(next);
131
- if (start + 1 + width > buf.length) return flush ? escape() : 0;
132
- const text = buf.toString("utf8", start + 1, start + 1 + width);
133
- const lower = text.toLowerCase();
134
- keys.push(makeKey({
135
- name: lower,
136
- meta: true,
137
- shift: text !== lower,
138
- sequence: `\u001b${text}`,
139
- }));
140
- return 1 + width;
141
- }
142
-
143
- function decodeChunk(buf, flush) {
144
- const keys = [];
145
- let i = 0;
146
- while (i < buf.length) {
147
- const b = buf[i];
148
- if (b === 0x1b) {
149
- const consumed = decodeEscape(buf, i, keys, flush);
150
- if (consumed === 0) return { keys, rest: Buffer.from(buf.subarray(i)) };
151
- i += consumed;
152
- continue;
153
- }
154
- if (b < 0x20 || b === 0x7f) {
155
- keys.push(controlKey(b));
156
- i += 1;
157
- continue;
158
- }
159
- const width = utf8Length(b);
160
- if (i + width > buf.length) {
161
- if (!flush) return { keys, rest: Buffer.from(buf.subarray(i)) };
162
- keys.push(charKey(buf.toString("utf8", i)));
163
- return { keys, rest: EMPTY };
164
- }
165
- keys.push(charKey(buf.toString("utf8", i, i + width)));
166
- i += width;
167
- }
168
- return { keys, rest: EMPTY };
169
- }
170
-
171
- function toBuffer(chunk) {
172
- if (Buffer.isBuffer(chunk)) return chunk;
173
- if (chunk === null || chunk === undefined) return EMPTY;
174
- if (typeof chunk === "string") return Buffer.from(chunk, "utf8");
175
- return Buffer.from(chunk);
176
- }
177
-
178
- let decodeKeysPending = EMPTY;
179
-
180
- export function decodeKeys(chunk) {
181
- const buf = decodeKeysPending.length === 0
182
- ? toBuffer(chunk)
183
- : Buffer.concat([decodeKeysPending, toBuffer(chunk)]);
184
- const { keys, rest } = decodeChunk(buf, false);
185
- if (rest.length === 1 && rest[0] === 0x1b) {
186
- decodeKeysPending = EMPTY;
187
- return [...keys, makeKey({ name: "escape", sequence: "\u001b" })];
188
- }
189
- decodeKeysPending = rest;
190
- return keys;
191
- }
192
-
193
- export function createDecoder() {
194
- let pending = EMPTY;
195
- return {
196
- push(chunk) {
197
- const buf = pending.length === 0
198
- ? toBuffer(chunk)
199
- : Buffer.concat([pending, toBuffer(chunk)]);
200
- const { keys, rest } = decodeChunk(buf, false);
201
- pending = rest;
202
- return keys;
203
- },
204
- flush() {
205
- if (pending.length === 0) return [];
206
- const { keys } = decodeChunk(pending, true);
207
- pending = EMPTY;
208
- return keys;
209
- },
210
- get pending() {
211
- return pending.length;
212
- },
213
- };
214
- }
215
-
216
- export function createEditorState({ history = [] } = {}) {
217
- const entries = [...history];
218
- return {
219
- buffer: "",
220
- cursor: 0,
221
- history: entries,
222
- historyIndex: entries.length,
223
- draft: "",
224
- };
225
- }
226
-
227
- function stepLeft(text, index) {
228
- if (index <= 0) return 0;
229
- const prev = index - 1;
230
- const code = text.charCodeAt(prev);
231
- if (code >= 0xdc00 && code <= 0xdfff && prev > 0) {
232
- const lead = text.charCodeAt(prev - 1);
233
- if (lead >= 0xd800 && lead <= 0xdbff) return prev - 1;
234
- }
235
- return prev;
236
- }
237
-
238
- function stepRight(text, index) {
239
- if (index >= text.length) return text.length;
240
- const code = text.charCodeAt(index);
241
- if (code >= 0xd800 && code <= 0xdbff && index + 1 < text.length) return index + 2;
242
- return index + 1;
243
- }
244
-
245
- function next(state, patch) {
246
- return { ...state, ...patch };
247
- }
248
-
249
- function live(state, patch) {
250
- return next(state, { ...patch, historyIndex: state.history.length, draft: "" });
251
- }
252
-
253
- function isPrintable(key) {
254
- if (key.ctrl || key.meta) return false;
255
- if (!key.sequence) return false;
256
- if (SPECIAL_NAMES.has(key.name)) return false;
257
- for (const ch of key.sequence) {
258
- const code = ch.codePointAt(0);
259
- if (code < 0x20 || code === 0x7f) return false;
260
- }
261
- return true;
262
- }
263
-
264
- function killPrevWord(text, cursor) {
265
- let i = cursor;
266
- while (i > 0 && /\s/.test(text[i - 1])) i -= 1;
267
- while (i > 0 && !/\s/.test(text[i - 1])) i -= 1;
268
- return i;
269
- }
270
-
271
- function historyUp(state) {
272
- if (state.historyIndex <= 0) return { state: next(state, {}), action: null };
273
- const atLive = state.historyIndex >= state.history.length;
274
- const index = state.historyIndex - 1;
275
- const buffer = state.history[index] ?? "";
276
- return {
277
- state: next(state, {
278
- buffer,
279
- cursor: buffer.length,
280
- historyIndex: index,
281
- draft: atLive ? state.buffer : state.draft,
282
- }),
283
- action: null,
284
- };
285
- }
286
-
287
- function historyDown(state) {
288
- if (state.historyIndex >= state.history.length) return { state: next(state, {}), action: null };
289
- const index = state.historyIndex + 1;
290
- const restored = index >= state.history.length;
291
- const buffer = restored ? state.draft : (state.history[index] ?? "");
292
- return {
293
- state: next(state, {
294
- buffer,
295
- cursor: buffer.length,
296
- historyIndex: index,
297
- draft: restored ? "" : state.draft,
298
- }),
299
- action: null,
300
- };
301
- }
302
-
303
- function submit(state) {
304
- const value = state.buffer.trim();
305
- if (value === "") {
306
- return {
307
- state: live(state, { buffer: "", cursor: 0 }),
308
- action: null,
309
- };
310
- }
311
- const history = state.history[state.history.length - 1] === value
312
- ? [...state.history]
313
- : [...state.history, value];
314
- return {
315
- state: next(state, {
316
- buffer: "",
317
- cursor: 0,
318
- history,
319
- historyIndex: history.length,
320
- draft: "",
321
- }),
322
- action: { type: "submit", value },
323
- };
324
- }
325
-
326
- export function applyKey(state, key) {
327
- if (!key) return { state: next(state, {}), action: null };
328
- const { buffer, cursor } = state;
329
-
330
- if (key.ctrl && !key.meta) {
331
- switch (key.name) {
332
- case "c":
333
- return { state: live(state, { buffer: "", cursor: 0 }), action: { type: "cancel" } };
334
- case "d":
335
- if (buffer === "") return { state: next(state, {}), action: { type: "eof" } };
336
- return { state: next(state, {}), action: null };
337
- case "l":
338
- return { state: next(state, {}), action: { type: "clear" } };
339
- case "a":
340
- return { state: next(state, { cursor: 0 }), action: null };
341
- case "e":
342
- return { state: next(state, { cursor: buffer.length }), action: null };
343
- case "u":
344
- return {
345
- state: next(state, { buffer: buffer.slice(cursor), cursor: 0 }),
346
- action: null,
347
- };
348
- case "k":
349
- return { state: next(state, { buffer: buffer.slice(0, cursor) }), action: null };
350
- case "w": {
351
- const start = killPrevWord(buffer, cursor);
352
- return {
353
- state: next(state, {
354
- buffer: buffer.slice(0, start) + buffer.slice(cursor),
355
- cursor: start,
356
- }),
357
- action: null,
358
- };
359
- }
360
- case "b":
361
- return { state: next(state, { cursor: stepLeft(buffer, cursor) }), action: null };
362
- case "f":
363
- return { state: next(state, { cursor: stepRight(buffer, cursor) }), action: null };
364
- default:
365
- return { state: next(state, {}), action: null };
366
- }
367
- }
368
-
369
- switch (key.name) {
370
- case "return":
371
- return submit(state);
372
- case "left":
373
- return { state: next(state, { cursor: stepLeft(buffer, cursor) }), action: null };
374
- case "right":
375
- return { state: next(state, { cursor: stepRight(buffer, cursor) }), action: null };
376
- case "home":
377
- return { state: next(state, { cursor: 0 }), action: null };
378
- case "end":
379
- return { state: next(state, { cursor: buffer.length }), action: null };
380
- case "up":
381
- return historyUp(state);
382
- case "down":
383
- return historyDown(state);
384
- case "backspace": {
385
- if (cursor === 0) return { state: next(state, {}), action: null };
386
- const start = stepLeft(buffer, cursor);
387
- return {
388
- state: next(state, {
389
- buffer: buffer.slice(0, start) + buffer.slice(cursor),
390
- cursor: start,
391
- }),
392
- action: null,
393
- };
394
- }
395
- case "delete": {
396
- if (cursor >= buffer.length) return { state: next(state, {}), action: null };
397
- const end = stepRight(buffer, cursor);
398
- return {
399
- state: next(state, { buffer: buffer.slice(0, cursor) + buffer.slice(end) }),
400
- action: null,
401
- };
402
- }
403
- default:
404
- break;
405
- }
406
-
407
- if (isPrintable(key)) {
408
- const text = key.sequence;
409
- return {
410
- state: next(state, {
411
- buffer: buffer.slice(0, cursor) + text + buffer.slice(cursor),
412
- cursor: cursor + text.length,
413
- }),
414
- action: null,
415
- };
416
- }
417
-
418
- return { state: next(state, {}), action: null };
419
- }
420
-
421
- export function createInput(options = {}) {
422
- const {
423
- stdin,
424
- stdout,
425
- history = [],
426
- onSubmit,
427
- onCancel,
428
- onEof,
429
- onClear,
430
- onRender,
431
- } = options;
432
-
433
- const input = stdin ?? process.stdin;
434
- const output = stdout ?? process.stdout;
435
- const decoder = createDecoder();
436
- const handlers = {
437
- submit: onSubmit,
438
- cancel: onCancel,
439
- eof: onEof,
440
- clear: onClear,
441
- };
442
-
443
- let state = createEditorState({ history });
444
- let started = false;
445
- let rawApplied = false;
446
- let priorRaw = false;
447
-
448
- const emit = (action) => {
449
- if (!action) return;
450
- const handler = handlers[action.type];
451
- if (typeof handler === "function") handler(action.value, state);
452
- };
453
-
454
- const onData = (chunk) => {
455
- for (const key of decoder.push(chunk)) {
456
- const result = applyKey(state, key);
457
- state = result.state;
458
- emit(result.action);
459
- if (typeof onRender === "function") onRender(state);
460
- }
461
- };
462
-
463
- return {
464
- start() {
465
- if (started) return;
466
- started = true;
467
- if (input.isTTY && typeof input.setRawMode === "function") {
468
- priorRaw = input.isRaw === true;
469
- input.setRawMode(true);
470
- rawApplied = true;
471
- }
472
- if (typeof input.resume === "function") input.resume();
473
- input.on("data", onData);
474
- if (typeof onRender === "function") onRender(state);
475
- },
476
- stop() {
477
- if (!started) return;
478
- started = false;
479
- if (typeof input.off === "function") input.off("data", onData);
480
- else if (typeof input.removeListener === "function") input.removeListener("data", onData);
481
- if (rawApplied && typeof input.setRawMode === "function") {
482
- input.setRawMode(priorRaw);
483
- rawApplied = false;
484
- }
485
- if (typeof input.pause === "function") input.pause();
486
- },
487
- getState() {
488
- return state;
489
- },
490
- setState(nextState) {
491
- state = nextState;
492
- return state;
493
- },
494
- write(text) {
495
- if (output && typeof output.write === "function") output.write(text);
496
- },
497
- get isRunning() {
498
- return started;
499
- },
500
- };
501
- }