@reefclaw/connect 0.1.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 (415) hide show
  1. package/assets/bridge/bridge.d.ts +96 -0
  2. package/assets/bridge/bridge.js +969 -0
  3. package/assets/bridge/config.d.ts +43 -0
  4. package/assets/bridge/config.js +176 -0
  5. package/assets/bridge/connector.d.ts +52 -0
  6. package/assets/bridge/connector.js +293 -0
  7. package/assets/bridge/event-replay-buffer.d.ts +43 -0
  8. package/assets/bridge/event-replay-buffer.js +109 -0
  9. package/assets/bridge/gateway/event-parser.d.ts +209 -0
  10. package/assets/bridge/gateway/event-parser.js +793 -0
  11. package/assets/bridge/gateway/gateway-config.d.ts +39 -0
  12. package/assets/bridge/gateway/gateway-config.js +86 -0
  13. package/assets/bridge/gateway/gateway-http-client.d.ts +50 -0
  14. package/assets/bridge/gateway/gateway-http-client.js +165 -0
  15. package/assets/bridge/gateway/gateway-ws-client.d.ts +116 -0
  16. package/assets/bridge/gateway/gateway-ws-client.js +417 -0
  17. package/assets/bridge/gateway/poller.d.ts +146 -0
  18. package/assets/bridge/gateway/poller.js +505 -0
  19. package/assets/bridge/gateway/tool-discovery.d.ts +25 -0
  20. package/assets/bridge/gateway/tool-discovery.js +198 -0
  21. package/assets/bridge/index.d.ts +2 -0
  22. package/assets/bridge/index.js +253 -0
  23. package/assets/bridge/logger.d.ts +2 -0
  24. package/assets/bridge/logger.js +2 -0
  25. package/assets/bridge/provider.d.ts +156 -0
  26. package/assets/bridge/provider.js +2 -0
  27. package/assets/bridge/providers/emergency-commands.d.ts +54 -0
  28. package/assets/bridge/providers/emergency-commands.js +235 -0
  29. package/assets/bridge/providers/gateway.d.ts +322 -0
  30. package/assets/bridge/providers/gateway.js +2302 -0
  31. package/assets/bridge/providers/mock.d.ts +37 -0
  32. package/assets/bridge/providers/mock.js +385 -0
  33. package/assets/bridge/providers/onboarding-commands.d.ts +83 -0
  34. package/assets/bridge/providers/onboarding-commands.js +213 -0
  35. package/assets/bridge/providers/risk-calculator.d.ts +96 -0
  36. package/assets/bridge/providers/risk-calculator.js +369 -0
  37. package/assets/bridge/setup.d.ts +32 -0
  38. package/assets/bridge/setup.js +226 -0
  39. package/assets/bridge/types.d.ts +584 -0
  40. package/assets/bridge/types.js +50 -0
  41. package/assets/bridge/utils/reconnect.d.ts +6 -0
  42. package/assets/bridge/utils/reconnect.js +6 -0
  43. package/assets/bridge/utils/skill-signing.d.ts +51 -0
  44. package/assets/bridge/utils/skill-signing.js +138 -0
  45. package/assets/bridge/utils/skill-version.d.ts +17 -0
  46. package/assets/bridge/utils/skill-version.js +71 -0
  47. package/assets/plugin/audit/mode-transition-audit.d.ts +11 -0
  48. package/assets/plugin/audit/mode-transition-audit.js +29 -0
  49. package/assets/plugin/balance-utils.d.ts +36 -0
  50. package/assets/plugin/balance-utils.js +98 -0
  51. package/assets/plugin/ccxt/binance-ban-gate.d.ts +47 -0
  52. package/assets/plugin/ccxt/binance-ban-gate.js +409 -0
  53. package/assets/plugin/ccxt/binance-private.d.ts +325 -0
  54. package/assets/plugin/ccxt/binance-private.js +1415 -0
  55. package/assets/plugin/ccxt/binance-public.d.ts +18 -0
  56. package/assets/plugin/ccxt/binance-public.js +147 -0
  57. package/assets/plugin/config/agent-config-client.d.ts +55 -0
  58. package/assets/plugin/config/agent-config-client.js +145 -0
  59. package/assets/plugin/config/agent-config-poller.d.ts +25 -0
  60. package/assets/plugin/config/agent-config-poller.js +100 -0
  61. package/assets/plugin/config/brackets-config.d.ts +22 -0
  62. package/assets/plugin/config/brackets-config.js +58 -0
  63. package/assets/plugin/config/gate-store.d.ts +18 -0
  64. package/assets/plugin/config/gate-store.js +61 -0
  65. package/assets/plugin/config/plugin-config-io.d.ts +175 -0
  66. package/assets/plugin/config/plugin-config-io.js +84 -0
  67. package/assets/plugin/config/position-review-config.d.ts +35 -0
  68. package/assets/plugin/config/position-review-config.js +105 -0
  69. package/assets/plugin/config/tool-gate.d.ts +53 -0
  70. package/assets/plugin/config/tool-gate.js +125 -0
  71. package/assets/plugin/config/user-data-stream-config.d.ts +85 -0
  72. package/assets/plugin/config/user-data-stream-config.js +224 -0
  73. package/assets/plugin/exchange-adapter.d.ts +49 -0
  74. package/assets/plugin/exchange-adapter.js +4 -0
  75. package/assets/plugin/index.d.ts +30 -0
  76. package/assets/plugin/index.js +1989 -0
  77. package/assets/plugin/ingest/pending-entry-metadata.d.ts +52 -0
  78. package/assets/plugin/ingest/pending-entry-metadata.js +182 -0
  79. package/assets/plugin/ingest/position-auto-capture.d.ts +98 -0
  80. package/assets/plugin/ingest/position-auto-capture.js +394 -0
  81. package/assets/plugin/ingest/position-decisions-client.d.ts +318 -0
  82. package/assets/plugin/ingest/position-decisions-client.js +296 -0
  83. package/assets/plugin/ingest/reconcile-db-vs-exchange.d.ts +13 -0
  84. package/assets/plugin/ingest/reconcile-db-vs-exchange.js +114 -0
  85. package/assets/plugin/ingest/reconciler-cleanup.d.ts +37 -0
  86. package/assets/plugin/ingest/reconciler-cleanup.js +147 -0
  87. package/assets/plugin/ingest/rest-gap-filler.d.ts +191 -0
  88. package/assets/plugin/ingest/rest-gap-filler.js +565 -0
  89. package/assets/plugin/ingest/touched-symbols-store.d.ts +25 -0
  90. package/assets/plugin/ingest/touched-symbols-store.js +96 -0
  91. package/assets/plugin/ingest/trade-store-client.d.ts +40 -0
  92. package/assets/plugin/ingest/trade-store-client.js +125 -0
  93. package/assets/plugin/ingest/ws-ingest.d.ts +43 -0
  94. package/assets/plugin/ingest/ws-ingest.js +126 -0
  95. package/assets/plugin/learning/setup-family.d.ts +21 -0
  96. package/assets/plugin/learning/setup-family.js +103 -0
  97. package/assets/plugin/lifecycle/install-signal-handlers.d.ts +33 -0
  98. package/assets/plugin/lifecycle/install-signal-handlers.js +112 -0
  99. package/assets/plugin/lifecycle/shutdown-coordinator.d.ts +43 -0
  100. package/assets/plugin/lifecycle/shutdown-coordinator.js +131 -0
  101. package/assets/plugin/live/bracket-id.d.ts +18 -0
  102. package/assets/plugin/live/bracket-id.js +81 -0
  103. package/assets/plugin/live/bracket-ledger.d.ts +54 -0
  104. package/assets/plugin/live/bracket-ledger.js +267 -0
  105. package/assets/plugin/live/bracket-manager.d.ts +82 -0
  106. package/assets/plugin/live/bracket-manager.js +478 -0
  107. package/assets/plugin/live/bracket-params.d.ts +22 -0
  108. package/assets/plugin/live/bracket-params.js +124 -0
  109. package/assets/plugin/live/bracket-reconciler.d.ts +95 -0
  110. package/assets/plugin/live/bracket-reconciler.js +573 -0
  111. package/assets/plugin/live/bracket-types.d.ts +102 -0
  112. package/assets/plugin/live/bracket-types.js +8 -0
  113. package/assets/plugin/live/deposit-tracker.d.ts +62 -0
  114. package/assets/plugin/live/deposit-tracker.js +97 -0
  115. package/assets/plugin/live/emergency-controls.d.ts +32 -0
  116. package/assets/plugin/live/emergency-controls.js +226 -0
  117. package/assets/plugin/live/exchange-errors.d.ts +12 -0
  118. package/assets/plugin/live/exchange-errors.js +130 -0
  119. package/assets/plugin/live/exchange-info-cache.d.ts +35 -0
  120. package/assets/plugin/live/exchange-info-cache.js +119 -0
  121. package/assets/plugin/live/fact-subscriber.d.ts +78 -0
  122. package/assets/plugin/live/fact-subscriber.js +182 -0
  123. package/assets/plugin/live/intent-journal.d.ts +42 -0
  124. package/assets/plugin/live/intent-journal.js +122 -0
  125. package/assets/plugin/live/listen-key-manager.d.ts +70 -0
  126. package/assets/plugin/live/listen-key-manager.js +169 -0
  127. package/assets/plugin/live/live-adapter.d.ts +264 -0
  128. package/assets/plugin/live/live-adapter.js +1665 -0
  129. package/assets/plugin/live/live-balance-enricher.d.ts +32 -0
  130. package/assets/plugin/live/live-balance-enricher.js +104 -0
  131. package/assets/plugin/live/live-bracket-api.d.ts +13 -0
  132. package/assets/plugin/live/live-bracket-api.js +20 -0
  133. package/assets/plugin/live/live-state-store.d.ts +194 -0
  134. package/assets/plugin/live/live-state-store.js +450 -0
  135. package/assets/plugin/live/local-signal-service.d.ts +57 -0
  136. package/assets/plugin/live/local-signal-service.js +146 -0
  137. package/assets/plugin/live/local-strategy-evaluator.d.ts +62 -0
  138. package/assets/plugin/live/local-strategy-evaluator.js +127 -0
  139. package/assets/plugin/live/microstructure-assembler.d.ts +54 -0
  140. package/assets/plugin/live/microstructure-assembler.js +148 -0
  141. package/assets/plugin/live/order-poller.d.ts +29 -0
  142. package/assets/plugin/live/order-poller.js +125 -0
  143. package/assets/plugin/live/position-state-store.d.ts +83 -0
  144. package/assets/plugin/live/position-state-store.js +237 -0
  145. package/assets/plugin/live/proposal-decision-listener.d.ts +64 -0
  146. package/assets/plugin/live/proposal-decision-listener.js +288 -0
  147. package/assets/plugin/live/proposal-manager.d.ts +76 -0
  148. package/assets/plugin/live/proposal-manager.js +140 -0
  149. package/assets/plugin/live/rate-limiter.d.ts +47 -0
  150. package/assets/plugin/live/rate-limiter.js +159 -0
  151. package/assets/plugin/live/reconciler.d.ts +39 -0
  152. package/assets/plugin/live/reconciler.js +175 -0
  153. package/assets/plugin/live/setup-buckets.d.ts +7 -0
  154. package/assets/plugin/live/setup-buckets.js +33 -0
  155. package/assets/plugin/live/slippage-tracker.d.ts +45 -0
  156. package/assets/plugin/live/slippage-tracker.js +78 -0
  157. package/assets/plugin/live/stop-watcher.d.ts +34 -0
  158. package/assets/plugin/live/stop-watcher.js +158 -0
  159. package/assets/plugin/live/user-data-active-probe.d.ts +54 -0
  160. package/assets/plugin/live/user-data-active-probe.js +180 -0
  161. package/assets/plugin/live/user-data-stream-controller.d.ts +200 -0
  162. package/assets/plugin/live/user-data-stream-controller.js +579 -0
  163. package/assets/plugin/live/user-data-stream-ws.d.ts +22 -0
  164. package/assets/plugin/live/user-data-stream-ws.js +63 -0
  165. package/assets/plugin/live/user-data-stream.d.ts +243 -0
  166. package/assets/plugin/live/user-data-stream.js +704 -0
  167. package/assets/plugin/logger.d.ts +2 -0
  168. package/assets/plugin/logger.js +2 -0
  169. package/assets/plugin/mfe.d.ts +21 -0
  170. package/assets/plugin/mfe.js +68 -0
  171. package/assets/plugin/onboarding/mode-ladder.d.ts +1 -0
  172. package/assets/plugin/onboarding/mode-ladder.js +3 -0
  173. package/assets/plugin/onboarding/runtime.d.ts +71 -0
  174. package/assets/plugin/onboarding/runtime.js +153 -0
  175. package/assets/plugin/openclaw.plugin.json +91 -0
  176. package/assets/plugin/paper-adapter.d.ts +24 -0
  177. package/assets/plugin/paper-adapter.js +91 -0
  178. package/assets/plugin/persistence/state-manager.d.ts +42 -0
  179. package/assets/plugin/persistence/state-manager.js +164 -0
  180. package/assets/plugin/pinned-plan.d.ts +9 -0
  181. package/assets/plugin/pinned-plan.js +23 -0
  182. package/assets/plugin/risk/pre-trade-check.d.ts +38 -0
  183. package/assets/plugin/risk/pre-trade-check.js +345 -0
  184. package/assets/plugin/risk/pre-trade-types.d.ts +60 -0
  185. package/assets/plugin/risk/pre-trade-types.js +3 -0
  186. package/assets/plugin/shadow/shadow-tracker.d.ts +36 -0
  187. package/assets/plugin/shadow/shadow-tracker.js +151 -0
  188. package/assets/plugin/shadow/types.d.ts +42 -0
  189. package/assets/plugin/shadow/types.js +20 -0
  190. package/assets/plugin/shared/indicators-extended.d.ts +52 -0
  191. package/assets/plugin/shared/indicators-extended.js +291 -0
  192. package/assets/plugin/shared/indicators.d.ts +15 -0
  193. package/assets/plugin/shared/indicators.js +114 -0
  194. package/assets/plugin/signals/conditions/registry.d.ts +16 -0
  195. package/assets/plugin/signals/conditions/registry.js +1274 -0
  196. package/assets/plugin/signals/conditions/types.d.ts +1 -0
  197. package/assets/plugin/signals/conditions/types.js +4 -0
  198. package/assets/plugin/signals/direction-rules.d.ts +3 -0
  199. package/assets/plugin/signals/direction-rules.js +24 -0
  200. package/assets/plugin/signals/entry-rules.d.ts +6 -0
  201. package/assets/plugin/signals/entry-rules.js +33 -0
  202. package/assets/plugin/signals/serialize-context.d.ts +4 -0
  203. package/assets/plugin/signals/serialize-context.js +39 -0
  204. package/assets/plugin/signals/stop-rules.d.ts +3 -0
  205. package/assets/plugin/signals/stop-rules.js +48 -0
  206. package/assets/plugin/signals/strategy-adapter.d.ts +14 -0
  207. package/assets/plugin/signals/strategy-adapter.js +122 -0
  208. package/assets/plugin/signals/types.d.ts +1 -0
  209. package/assets/plugin/signals/types.js +8 -0
  210. package/assets/plugin/simulator/exchange-simulator.d.ts +93 -0
  211. package/assets/plugin/simulator/exchange-simulator.js +684 -0
  212. package/assets/plugin/simulator/fill-engine.d.ts +53 -0
  213. package/assets/plugin/simulator/fill-engine.js +276 -0
  214. package/assets/plugin/simulator/paper-market-feed.d.ts +26 -0
  215. package/assets/plugin/simulator/paper-market-feed.js +104 -0
  216. package/assets/plugin/simulator/realistic-fills.d.ts +59 -0
  217. package/assets/plugin/simulator/realistic-fills.js +175 -0
  218. package/assets/plugin/simulator/types.d.ts +219 -0
  219. package/assets/plugin/simulator/types.js +43 -0
  220. package/assets/plugin/strategy/builtin-strategies.d.ts +2 -0
  221. package/assets/plugin/strategy/builtin-strategies.js +109 -0
  222. package/assets/plugin/strategy/condition-registry.d.ts +3 -0
  223. package/assets/plugin/strategy/condition-registry.js +153 -0
  224. package/assets/plugin/strategy/evaluator.d.ts +67 -0
  225. package/assets/plugin/strategy/evaluator.js +93 -0
  226. package/assets/plugin/tools/assessment-validation.d.ts +118 -0
  227. package/assets/plugin/tools/assessment-validation.js +415 -0
  228. package/assets/plugin/tools/attach-brackets.d.ts +34 -0
  229. package/assets/plugin/tools/attach-brackets.js +363 -0
  230. package/assets/plugin/tools/audit-bracket-protection.d.ts +49 -0
  231. package/assets/plugin/tools/audit-bracket-protection.js +527 -0
  232. package/assets/plugin/tools/cancel-all-orders.d.ts +7 -0
  233. package/assets/plugin/tools/cancel-all-orders.js +5 -0
  234. package/assets/plugin/tools/cancel-order.d.ts +10 -0
  235. package/assets/plugin/tools/cancel-order.js +14 -0
  236. package/assets/plugin/tools/check-position-health.d.ts +46 -0
  237. package/assets/plugin/tools/check-position-health.js +194 -0
  238. package/assets/plugin/tools/clear-exchange-credentials.d.ts +24 -0
  239. package/assets/plugin/tools/clear-exchange-credentials.js +70 -0
  240. package/assets/plugin/tools/close-position.d.ts +22 -0
  241. package/assets/plugin/tools/close-position.js +449 -0
  242. package/assets/plugin/tools/create-order.d.ts +54 -0
  243. package/assets/plugin/tools/create-order.js +338 -0
  244. package/assets/plugin/tools/exit-gate.d.ts +58 -0
  245. package/assets/plugin/tools/exit-gate.js +162 -0
  246. package/assets/plugin/tools/fetch-balance.d.ts +5 -0
  247. package/assets/plugin/tools/fetch-balance.js +4 -0
  248. package/assets/plugin/tools/fetch-ohlcv.d.ts +11 -0
  249. package/assets/plugin/tools/fetch-ohlcv.js +8 -0
  250. package/assets/plugin/tools/fetch-open-orders.d.ts +7 -0
  251. package/assets/plugin/tools/fetch-open-orders.js +4 -0
  252. package/assets/plugin/tools/fetch-positions.d.ts +7 -0
  253. package/assets/plugin/tools/fetch-positions.js +4 -0
  254. package/assets/plugin/tools/fetch-ticker.d.ts +11 -0
  255. package/assets/plugin/tools/fetch-ticker.js +5 -0
  256. package/assets/plugin/tools/get-agent-profile.d.ts +4 -0
  257. package/assets/plugin/tools/get-agent-profile.js +6 -0
  258. package/assets/plugin/tools/get-analytics.d.ts +6 -0
  259. package/assets/plugin/tools/get-analytics.js +7 -0
  260. package/assets/plugin/tools/get-backtest.d.ts +12 -0
  261. package/assets/plugin/tools/get-backtest.js +91 -0
  262. package/assets/plugin/tools/get-basis.d.ts +7 -0
  263. package/assets/plugin/tools/get-basis.js +7 -0
  264. package/assets/plugin/tools/get-bracket-config.d.ts +11 -0
  265. package/assets/plugin/tools/get-bracket-config.js +24 -0
  266. package/assets/plugin/tools/get-cascade-risk.d.ts +7 -0
  267. package/assets/plugin/tools/get-cascade-risk.js +8 -0
  268. package/assets/plugin/tools/get-crypto-metrics.d.ts +18 -0
  269. package/assets/plugin/tools/get-crypto-metrics.js +45 -0
  270. package/assets/plugin/tools/get-cvd.d.ts +6 -0
  271. package/assets/plugin/tools/get-cvd.js +6 -0
  272. package/assets/plugin/tools/get-divergences.d.ts +6 -0
  273. package/assets/plugin/tools/get-divergences.js +6 -0
  274. package/assets/plugin/tools/get-funding-context.d.ts +6 -0
  275. package/assets/plugin/tools/get-funding-context.js +16 -0
  276. package/assets/plugin/tools/get-liquidation-levels.d.ts +7 -0
  277. package/assets/plugin/tools/get-liquidation-levels.js +7 -0
  278. package/assets/plugin/tools/get-liquidation-pulse.d.ts +9 -0
  279. package/assets/plugin/tools/get-liquidation-pulse.js +22 -0
  280. package/assets/plugin/tools/get-market-breadth.d.ts +6 -0
  281. package/assets/plugin/tools/get-market-breadth.js +8 -0
  282. package/assets/plugin/tools/get-market-intel.d.ts +19 -0
  283. package/assets/plugin/tools/get-market-intel.js +116 -0
  284. package/assets/plugin/tools/get-market-structure.d.ts +47 -0
  285. package/assets/plugin/tools/get-market-structure.js +198 -0
  286. package/assets/plugin/tools/get-my-mined-patterns.d.ts +20 -0
  287. package/assets/plugin/tools/get-my-mined-patterns.js +61 -0
  288. package/assets/plugin/tools/get-my-proposed-learnings.d.ts +20 -0
  289. package/assets/plugin/tools/get-my-proposed-learnings.js +55 -0
  290. package/assets/plugin/tools/get-my-recent-reviews.d.ts +22 -0
  291. package/assets/plugin/tools/get-my-recent-reviews.js +66 -0
  292. package/assets/plugin/tools/get-orderbook.d.ts +21 -0
  293. package/assets/plugin/tools/get-orderbook.js +32 -0
  294. package/assets/plugin/tools/get-pattern-scan.d.ts +7 -0
  295. package/assets/plugin/tools/get-pattern-scan.js +8 -0
  296. package/assets/plugin/tools/get-regime.d.ts +6 -0
  297. package/assets/plugin/tools/get-regime.js +7 -0
  298. package/assets/plugin/tools/get-relevant-learnings.d.ts +21 -0
  299. package/assets/plugin/tools/get-relevant-learnings.js +65 -0
  300. package/assets/plugin/tools/get-resting-liquidity.d.ts +6 -0
  301. package/assets/plugin/tools/get-resting-liquidity.js +11 -0
  302. package/assets/plugin/tools/get-risk-scenario.d.ts +29 -0
  303. package/assets/plugin/tools/get-risk-scenario.js +47 -0
  304. package/assets/plugin/tools/get-risk-summary.d.ts +51 -0
  305. package/assets/plugin/tools/get-risk-summary.js +118 -0
  306. package/assets/plugin/tools/get-sentiment.d.ts +4 -0
  307. package/assets/plugin/tools/get-sentiment.js +6 -0
  308. package/assets/plugin/tools/get-session-review.d.ts +7 -0
  309. package/assets/plugin/tools/get-session-review.js +8 -0
  310. package/assets/plugin/tools/get-setup-detail.d.ts +7 -0
  311. package/assets/plugin/tools/get-setup-detail.js +303 -0
  312. package/assets/plugin/tools/get-signals.d.ts +15 -0
  313. package/assets/plugin/tools/get-signals.js +54 -0
  314. package/assets/plugin/tools/get-sizing.d.ts +6 -0
  315. package/assets/plugin/tools/get-sizing.js +6 -0
  316. package/assets/plugin/tools/get-trade-feedback.d.ts +7 -0
  317. package/assets/plugin/tools/get-trade-feedback.js +8 -0
  318. package/assets/plugin/tools/get-trade-flow.d.ts +7 -0
  319. package/assets/plugin/tools/get-trade-flow.js +7 -0
  320. package/assets/plugin/tools/get-volume-analysis.d.ts +21 -0
  321. package/assets/plugin/tools/get-volume-analysis.js +74 -0
  322. package/assets/plugin/tools/get-volume-profile.d.ts +7 -0
  323. package/assets/plugin/tools/get-volume-profile.js +7 -0
  324. package/assets/plugin/tools/helpers.d.ts +25 -0
  325. package/assets/plugin/tools/helpers.js +38 -0
  326. package/assets/plugin/tools/intel-api.d.ts +14 -0
  327. package/assets/plugin/tools/intel-api.js +52 -0
  328. package/assets/plugin/tools/intel-cache.d.ts +25 -0
  329. package/assets/plugin/tools/intel-cache.js +133 -0
  330. package/assets/plugin/tools/list-strategies.d.ts +7 -0
  331. package/assets/plugin/tools/list-strategies.js +6 -0
  332. package/assets/plugin/tools/modify-stop.d.ts +17 -0
  333. package/assets/plugin/tools/modify-stop.js +81 -0
  334. package/assets/plugin/tools/modify-target.d.ts +17 -0
  335. package/assets/plugin/tools/modify-target.js +71 -0
  336. package/assets/plugin/tools/propose-learning.d.ts +22 -0
  337. package/assets/plugin/tools/propose-learning.js +65 -0
  338. package/assets/plugin/tools/query-review-outcomes.d.ts +30 -0
  339. package/assets/plugin/tools/query-review-outcomes.js +64 -0
  340. package/assets/plugin/tools/query-trades.d.ts +21 -0
  341. package/assets/plugin/tools/query-trades.js +37 -0
  342. package/assets/plugin/tools/record-position-reviews.d.ts +38 -0
  343. package/assets/plugin/tools/record-position-reviews.js +147 -0
  344. package/assets/plugin/tools/save-strategy.d.ts +16 -0
  345. package/assets/plugin/tools/save-strategy.js +46 -0
  346. package/assets/plugin/tools/scan-pairs.d.ts +18 -0
  347. package/assets/plugin/tools/scan-pairs.js +220 -0
  348. package/assets/plugin/tools/score-setup.d.ts +31 -0
  349. package/assets/plugin/tools/score-setup.js +268 -0
  350. package/assets/plugin/tools/set-bracket-requirement.d.ts +18 -0
  351. package/assets/plugin/tools/set-bracket-requirement.js +81 -0
  352. package/assets/plugin/tools/set-exchange-credentials.d.ts +25 -0
  353. package/assets/plugin/tools/set-exchange-credentials.js +80 -0
  354. package/assets/plugin/tools/set-trading-mode.d.ts +26 -0
  355. package/assets/plugin/tools/set-trading-mode.js +135 -0
  356. package/assets/plugin/tools/test-exchange-credentials.d.ts +16 -0
  357. package/assets/plugin/tools/test-exchange-credentials.js +100 -0
  358. package/assets/plugin/tools/toggle-strategy.d.ts +8 -0
  359. package/assets/plugin/tools/toggle-strategy.js +8 -0
  360. package/assets/plugin/trading-params-cache.d.ts +26 -0
  361. package/assets/plugin/trading-params-cache.js +52 -0
  362. package/assets/plugin/types.d.ts +110 -0
  363. package/assets/plugin/types.js +7 -0
  364. package/assets/plugin/util/plugin-paths.d.ts +3 -0
  365. package/assets/plugin/util/plugin-paths.js +15 -0
  366. package/assets/shared/fills.d.ts +36 -0
  367. package/assets/shared/fills.js +20 -0
  368. package/assets/shared/index.d.ts +10 -0
  369. package/assets/shared/index.js +5 -0
  370. package/assets/shared/logger.d.ts +10 -0
  371. package/assets/shared/logger.js +34 -0
  372. package/assets/shared/protocol.d.ts +29 -0
  373. package/assets/shared/protocol.js +14 -0
  374. package/assets/shared/redact.d.ts +6 -0
  375. package/assets/shared/redact.js +31 -0
  376. package/assets/shared/shared/indicators-extended.d.ts +52 -0
  377. package/assets/shared/shared/indicators-extended.js +284 -0
  378. package/assets/shared/shared/indicators.d.ts +15 -0
  379. package/assets/shared/shared/indicators.js +107 -0
  380. package/assets/shared/signals/conditions/registry.d.ts +16 -0
  381. package/assets/shared/signals/conditions/registry.js +1267 -0
  382. package/assets/shared/signals/conditions/types.d.ts +65 -0
  383. package/assets/shared/signals/conditions/types.js +8 -0
  384. package/assets/shared/signals/direction-rules.d.ts +3 -0
  385. package/assets/shared/signals/direction-rules.js +18 -0
  386. package/assets/shared/signals/entry-rules.d.ts +6 -0
  387. package/assets/shared/signals/entry-rules.js +26 -0
  388. package/assets/shared/signals/indicators-extended.d.ts +52 -0
  389. package/assets/shared/signals/indicators-extended.js +284 -0
  390. package/assets/shared/signals/indicators.d.ts +15 -0
  391. package/assets/shared/signals/indicators.js +107 -0
  392. package/assets/shared/signals/serialize-context.d.ts +4 -0
  393. package/assets/shared/signals/serialize-context.js +41 -0
  394. package/assets/shared/signals/stop-rules.d.ts +3 -0
  395. package/assets/shared/signals/stop-rules.js +41 -0
  396. package/assets/shared/signals/strategy-adapter.d.ts +14 -0
  397. package/assets/shared/signals/strategy-adapter.js +117 -0
  398. package/assets/shared/signals/types.d.ts +187 -0
  399. package/assets/shared/signals/types.js +9 -0
  400. package/assets/shared/trading-mode.d.ts +16 -0
  401. package/assets/shared/trading-mode.js +49 -0
  402. package/assets/skill/SKILL.md +1357 -0
  403. package/dist/bridge.js +25 -0
  404. package/dist/bundle.js +33 -0
  405. package/dist/cli.js +120 -0
  406. package/dist/daemon.js +104 -0
  407. package/dist/deps.js +41 -0
  408. package/dist/exec.js +28 -0
  409. package/dist/openclaw.js +153 -0
  410. package/dist/paths.js +23 -0
  411. package/dist/plugin.js +48 -0
  412. package/dist/skill.js +35 -0
  413. package/dist/ui.js +29 -0
  414. package/dist/validate.js +28 -0
  415. package/package.json +32 -0
@@ -0,0 +1,37 @@
1
+ import type { OpenClawProvider, ProviderEvents, ProviderEventName } from '../provider.js';
2
+ import type { EmergencyAction, ReconciliationSnapshot } from '../types.js';
3
+ export declare class MockProvider implements OpenClawProvider {
4
+ private btcPrice;
5
+ private position;
6
+ private orderSeq;
7
+ private riskCycle;
8
+ private agentMode;
9
+ private startTime;
10
+ private marketInterval;
11
+ private agentInterval;
12
+ private readonly listeners;
13
+ private readonly RISK_LIMITS;
14
+ start(): void;
15
+ stop(): void;
16
+ executeEmergency(action: EmergencyAction): Promise<{
17
+ action: string;
18
+ executed: boolean;
19
+ timestamp: string;
20
+ }>;
21
+ handleChat(content: string): Promise<{
22
+ received: boolean;
23
+ }>;
24
+ closePosition(symbol: string): Promise<{
25
+ closed: boolean;
26
+ symbol: string;
27
+ error?: string;
28
+ }>;
29
+ getSnapshot(): Promise<ReconciliationSnapshot>;
30
+ on<E extends ProviderEventName>(event: E, listener: ProviderEvents[E]): void;
31
+ off<E extends ProviderEventName>(event: E, listener: ProviderEvents[E]): void;
32
+ private fire;
33
+ private simulateMarketTick;
34
+ private simulateRandomTrade;
35
+ private emitAgentState;
36
+ private emitRiskUpdate;
37
+ }
@@ -0,0 +1,385 @@
1
+ // MockProvider — simulates an OpenClaw agent for standalone testing.
2
+ // Extracted from relay/scripts/mock-skill.ts into the provider interface.
3
+ import { logger } from '../logger.js';
4
+ import { redactTokens } from '@reefclaw/shared';
5
+ const TAG = 'mock';
6
+ export class MockProvider {
7
+ // ---- Simulated market state ----
8
+ btcPrice = 65_000;
9
+ position = null;
10
+ orderSeq = 0;
11
+ riskCycle = 0;
12
+ agentMode = 'ACTIVE';
13
+ startTime = Date.now();
14
+ // ---- Timers ----
15
+ marketInterval = null;
16
+ agentInterval = null;
17
+ // ---- Event listeners ----
18
+ listeners = {
19
+ ticker: new Set(),
20
+ candle: new Set(),
21
+ orderUpdate: new Set(),
22
+ agentState: new Set(),
23
+ riskUpdate: new Set(),
24
+ chatMessage: new Set(),
25
+ chatMessageStart: new Set(),
26
+ chatMessageChunk: new Set(),
27
+ chatMessageEnd: new Set(),
28
+ chatStreamingKeepAlive: new Set(),
29
+ marketStructure: new Set(),
30
+ cryptoMetrics: new Set(),
31
+ volumeAnalysis: new Set(),
32
+ tradeJournal: new Set(),
33
+ regimeUpdate: new Set(),
34
+ signalUpdate: new Set(),
35
+ missionUpdate: new Set(),
36
+ analyticsUpdate: new Set(),
37
+ fillError: new Set(),
38
+ shadowComparison: new Set(),
39
+ tradingModeUpdate: new Set(),
40
+ decisionTraceUpdate: new Set(),
41
+ };
42
+ // ---- Risk limits ----
43
+ RISK_LIMITS = {
44
+ position: {
45
+ maxPositionSize: 10_000,
46
+ maxOpenPositions: 5,
47
+ maxGrossExposure: 1.5,
48
+ maxNetExposure: 1.5,
49
+ },
50
+ loss: {
51
+ maxDailyDrawdown: -0.03,
52
+ maxPerTradeLoss: -500,
53
+ maxDailyLoss: -2000,
54
+ },
55
+ rate: { maxOrdersPerMinute: 60, maxCancelsPerMinute: 30 },
56
+ };
57
+ // ---- Provider interface ----
58
+ start() {
59
+ logger.info(TAG, 'Starting mock provider');
60
+ this.startTime = Date.now();
61
+ // Emit initial state immediately
62
+ this.emitAgentState();
63
+ this.emitRiskUpdate();
64
+ // Market data every 500ms
65
+ this.marketInterval = setInterval(() => {
66
+ this.simulateMarketTick();
67
+ this.simulateRandomTrade();
68
+ }, 500);
69
+ // Agent state + risk every 5s
70
+ this.agentInterval = setInterval(() => {
71
+ this.emitAgentState();
72
+ this.emitRiskUpdate();
73
+ }, 5_000);
74
+ }
75
+ stop() {
76
+ logger.info(TAG, 'Stopping mock provider');
77
+ if (this.marketInterval)
78
+ clearInterval(this.marketInterval);
79
+ if (this.agentInterval)
80
+ clearInterval(this.agentInterval);
81
+ this.marketInterval = null;
82
+ this.agentInterval = null;
83
+ }
84
+ async executeEmergency(action) {
85
+ logger.info(TAG, `Emergency ${action} executed`);
86
+ switch (action) {
87
+ case 'kill':
88
+ this.agentMode = 'STOPPED';
89
+ this.position = null;
90
+ break;
91
+ case 'flatten':
92
+ this.position = null;
93
+ break;
94
+ case 'pause':
95
+ this.agentMode = 'PAUSED';
96
+ break;
97
+ case 'resume':
98
+ this.agentMode = 'ACTIVE';
99
+ break;
100
+ }
101
+ // Emit updated state immediately
102
+ this.emitAgentState();
103
+ return {
104
+ action,
105
+ executed: true,
106
+ timestamp: new Date().toISOString(),
107
+ };
108
+ }
109
+ async handleChat(content) {
110
+ // Mirror the bridge's redaction: never log a raw rc_* token, even in mock
111
+ // mode. If the redactor changed the string, surface that — mock mode is
112
+ // sometimes used for end-to-end QA where a real token might land here.
113
+ const safeForLog = redactTokens(content);
114
+ if (safeForLog !== content) {
115
+ logger.warn(TAG, 'Chat contained a connection token — mock provider does not auto-revoke.');
116
+ }
117
+ logger.info(TAG, `Chat: "${safeForLog}"`);
118
+ // Echo back a mock response after a short delay. Use the redacted form so
119
+ // the synthesized agent reply doesn't contain a raw token either.
120
+ setTimeout(() => {
121
+ const responses = [
122
+ `Understood. Monitoring market conditions for "${safeForLog}".`,
123
+ `Acknowledged. Current BTC price is ${this.btcPrice.toFixed(2)}.`,
124
+ `Roger that. Strategy MockScalper v1.0.0 is active.`,
125
+ `Processing your instruction. All systems nominal.`,
126
+ ];
127
+ this.fire('chatMessage', {
128
+ message: {
129
+ id: `agent-msg-${Date.now()}`,
130
+ role: 'agent',
131
+ content: responses[Math.floor(Math.random() * responses.length)],
132
+ timestamp: new Date().toISOString(),
133
+ },
134
+ });
135
+ }, 500 + Math.random() * 1000);
136
+ return { received: true };
137
+ }
138
+ async closePosition(symbol) {
139
+ logger.info(TAG, `Close position: ${symbol}`);
140
+ if (this.position) {
141
+ this.position = null;
142
+ return { closed: true, symbol };
143
+ }
144
+ return { closed: false, symbol, error: 'No position to close' };
145
+ }
146
+ async getSnapshot() {
147
+ logger.info(TAG, 'Reconciliation snapshot requested');
148
+ const posSize = this.position ? this.position.qty * this.btcPrice : 0;
149
+ return {
150
+ positions: this.position
151
+ ? [
152
+ {
153
+ symbol: 'BTC/USDT',
154
+ side: this.position.side,
155
+ quantity: this.position.qty,
156
+ entryPrice: this.position.entry,
157
+ currentPrice: this.btcPrice,
158
+ unrealizedPnl: 0,
159
+ unrealizedPnlPercent: 0,
160
+ portfolioPercent: 100,
161
+ },
162
+ ]
163
+ : [],
164
+ balance: {
165
+ currency: 'USDT',
166
+ total: 10_000,
167
+ available: 8_000,
168
+ locked: 2_000,
169
+ },
170
+ openOrders: [],
171
+ agentState: {
172
+ mode: this.agentMode,
173
+ strategy: { name: 'MockScalper', version: '1.0.0' },
174
+ health: {
175
+ uptime: Math.floor((Date.now() - this.startTime) / 1000),
176
+ lastDecision: new Date().toISOString(),
177
+ lastTrade: null,
178
+ errorRate: 0,
179
+ thinkingInterval: 30,
180
+ },
181
+ },
182
+ riskMetrics: {
183
+ limits: this.RISK_LIMITS,
184
+ utilization: {
185
+ currentPositionSize: posSize > 0 ? { 'BTC/USDT': +posSize.toFixed(2) } : {},
186
+ openPositionCount: this.position ? 1 : 0,
187
+ grossExposure: 0,
188
+ netExposure: 0,
189
+ dailyDrawdown: 0,
190
+ dailyLoss: 0,
191
+ ordersPerMinute: 0,
192
+ cancelsPerMinute: 0,
193
+ },
194
+ activeBreaches: [],
195
+ },
196
+ gapFill: [],
197
+ sessionStartNav: 10_000,
198
+ };
199
+ }
200
+ on(event, listener) {
201
+ this.listeners[event].add(listener);
202
+ }
203
+ off(event, listener) {
204
+ this.listeners[event].delete(listener);
205
+ }
206
+ // ---- Simulation logic ----
207
+ fire(event, ...args) {
208
+ for (const listener of this.listeners[event]) {
209
+ listener(...args);
210
+ }
211
+ }
212
+ simulateMarketTick() {
213
+ // Random walk
214
+ this.btcPrice += (Math.random() - 0.5) * 50;
215
+ this.btcPrice = Math.max(60_000, Math.min(70_000, this.btcPrice));
216
+ // Ticker
217
+ this.fire('ticker', {
218
+ symbol: 'BTC/USDT',
219
+ lastPrice: +this.btcPrice.toFixed(2),
220
+ bidPrice: +(this.btcPrice - 0.5).toFixed(2),
221
+ askPrice: +(this.btcPrice + 0.5).toFixed(2),
222
+ volume24h: 12345.67,
223
+ change24h: +(this.btcPrice - 65_000).toFixed(2),
224
+ change24hPercent: +(((this.btcPrice - 65_000) / 65_000) * 100).toFixed(4),
225
+ timestamp: new Date().toISOString(),
226
+ });
227
+ // Candle (1s candles for demo)
228
+ const now = Math.floor(Date.now() / 1000);
229
+ this.fire('candle', {
230
+ symbol: 'BTC/USDT',
231
+ candle: {
232
+ time: now,
233
+ open: +(this.btcPrice - 5).toFixed(2),
234
+ high: +(this.btcPrice + 10).toFixed(2),
235
+ low: +(this.btcPrice - 10).toFixed(2),
236
+ close: +this.btcPrice.toFixed(2),
237
+ volume: +(Math.random() * 10).toFixed(4),
238
+ },
239
+ timestamp: new Date().toISOString(),
240
+ });
241
+ }
242
+ simulateRandomTrade() {
243
+ if (this.agentMode !== 'ACTIVE')
244
+ return;
245
+ if (Math.random() > 0.05)
246
+ return; // ~5% chance per tick
247
+ const orderId = `mock-order-${++this.orderSeq}`;
248
+ if (!this.position) {
249
+ // Open a position
250
+ const side = Math.random() > 0.5 ? 'BUY' : 'SELL';
251
+ const qty = +(Math.random() * 0.1 + 0.01).toFixed(4);
252
+ this.fire('orderUpdate', {
253
+ orderId,
254
+ status: 'FILLED',
255
+ order: {
256
+ id: orderId,
257
+ symbol: 'BTC/USDT',
258
+ side,
259
+ type: 'MARKET',
260
+ status: 'FILLED',
261
+ quantity: qty,
262
+ filledQuantity: qty,
263
+ averageFillPrice: this.btcPrice,
264
+ timeInForce: 'IOC',
265
+ createdAt: new Date().toISOString(),
266
+ updatedAt: new Date().toISOString(),
267
+ },
268
+ fill: {
269
+ id: `fill-${this.orderSeq}`,
270
+ orderId,
271
+ symbol: 'BTC/USDT',
272
+ side,
273
+ quantity: qty,
274
+ price: this.btcPrice,
275
+ expectedPrice: this.btcPrice,
276
+ slippage: 0,
277
+ slippageBps: 0,
278
+ fee: +(qty * this.btcPrice * 0.001).toFixed(4),
279
+ feeCurrency: 'USDT',
280
+ timestamp: new Date().toISOString(),
281
+ },
282
+ timestamp: new Date().toISOString(),
283
+ });
284
+ this.position = {
285
+ side: side === 'BUY' ? 'LONG' : 'SHORT',
286
+ qty,
287
+ entry: this.btcPrice,
288
+ };
289
+ logger.info(TAG, `Opened ${this.position.side} ${qty} BTC @ ${this.btcPrice.toFixed(2)}`);
290
+ }
291
+ else {
292
+ // Close the position
293
+ const closeSide = this.position.side === 'LONG' ? 'SELL' : 'BUY';
294
+ const slippage = +(Math.random() * 2 - 1).toFixed(2);
295
+ this.fire('orderUpdate', {
296
+ orderId,
297
+ status: 'FILLED',
298
+ order: {
299
+ id: orderId,
300
+ symbol: 'BTC/USDT',
301
+ side: closeSide,
302
+ type: 'MARKET',
303
+ status: 'FILLED',
304
+ quantity: this.position.qty,
305
+ filledQuantity: this.position.qty,
306
+ averageFillPrice: this.btcPrice + slippage,
307
+ timeInForce: 'IOC',
308
+ createdAt: new Date().toISOString(),
309
+ updatedAt: new Date().toISOString(),
310
+ },
311
+ fill: {
312
+ id: `fill-${this.orderSeq}`,
313
+ orderId,
314
+ symbol: 'BTC/USDT',
315
+ side: closeSide,
316
+ quantity: this.position.qty,
317
+ price: this.btcPrice + slippage,
318
+ expectedPrice: this.btcPrice,
319
+ slippage,
320
+ slippageBps: +((slippage / this.btcPrice) * 10000).toFixed(2),
321
+ fee: +(this.position.qty * this.btcPrice * 0.001).toFixed(4),
322
+ feeCurrency: 'USDT',
323
+ timestamp: new Date().toISOString(),
324
+ },
325
+ timestamp: new Date().toISOString(),
326
+ });
327
+ const pnl = this.position.side === 'LONG'
328
+ ? (this.btcPrice - this.position.entry) * this.position.qty
329
+ : (this.position.entry - this.btcPrice) * this.position.qty;
330
+ logger.info(TAG, `Closed ${this.position.side} ${this.position.qty} BTC @ ${this.btcPrice.toFixed(2)} (PnL: ${pnl.toFixed(2)})`);
331
+ this.position = null;
332
+ }
333
+ }
334
+ emitAgentState() {
335
+ this.fire('agentState', {
336
+ state: {
337
+ mode: this.agentMode,
338
+ strategy: { name: 'MockScalper', version: '1.0.0' },
339
+ health: {
340
+ uptime: Math.floor((Date.now() - this.startTime) / 1000),
341
+ lastDecision: new Date().toISOString(),
342
+ lastTrade: new Date().toISOString(),
343
+ errorRate: 0,
344
+ thinkingInterval: 30,
345
+ },
346
+ },
347
+ timestamp: new Date().toISOString(),
348
+ });
349
+ }
350
+ emitRiskUpdate() {
351
+ const phase = this.riskCycle % 12;
352
+ const t = phase < 8 ? phase / 8 : 1 - (phase - 8) / 4;
353
+ this.riskCycle++;
354
+ const posSize = this.position ? this.position.qty * this.btcPrice : 0;
355
+ const activeBreaches = [];
356
+ if (phase === 7) {
357
+ activeBreaches.push({
358
+ metric: 'dailyDrawdown',
359
+ limit: -0.03,
360
+ current: -(t * 0.035),
361
+ level: 'CRITICAL',
362
+ action: 'AUTO_PAUSE',
363
+ timestamp: new Date().toISOString(),
364
+ });
365
+ }
366
+ this.fire('riskUpdate', {
367
+ event: 'risk_update',
368
+ metrics: {
369
+ limits: this.RISK_LIMITS,
370
+ utilization: {
371
+ currentPositionSize: posSize > 0 ? { 'BTC/USDT': +posSize.toFixed(2) } : {},
372
+ openPositionCount: this.position ? 1 : 0,
373
+ grossExposure: +(t * 1.2).toFixed(3),
374
+ netExposure: +(t * 0.35).toFixed(3),
375
+ dailyDrawdown: -(t * 0.025),
376
+ dailyLoss: -(t * 1500),
377
+ ordersPerMinute: Math.round(t * 45),
378
+ cancelsPerMinute: Math.round(t * 20),
379
+ },
380
+ activeBreaches,
381
+ },
382
+ timestamp: new Date().toISOString(),
383
+ });
384
+ }
385
+ }
@@ -0,0 +1,83 @@
1
+ import type { GatewayHttpClient } from '../gateway/gateway-http-client.js';
2
+ import type { ToolMap } from '../gateway/tool-discovery.js';
3
+ import type { TradingMode } from '@reefclaw/shared';
4
+ export interface SetTradingModeOutcome {
5
+ ok: boolean;
6
+ message: string;
7
+ previousMode: TradingMode;
8
+ mode: TradingMode;
9
+ readiness: string;
10
+ reason?: string;
11
+ }
12
+ export interface SetExchangeCredentialsOutcome {
13
+ ok: boolean;
14
+ message: string;
15
+ fingerprint: string;
16
+ reconnected: boolean;
17
+ mode: TradingMode;
18
+ readiness: string;
19
+ }
20
+ export interface TestExchangeCredentialsOutcome {
21
+ ok: boolean;
22
+ message: string;
23
+ fingerprint: string;
24
+ canReadBalance: boolean;
25
+ canReadPositions: boolean;
26
+ balanceUSDT: number | null;
27
+ testnet: boolean;
28
+ errors: string[];
29
+ }
30
+ export interface ClearExchangeCredentialsOutcome {
31
+ ok: boolean;
32
+ message: string;
33
+ modeBefore: TradingMode;
34
+ mode: TradingMode;
35
+ rolledBackToPaper: boolean;
36
+ readiness: string;
37
+ }
38
+ export interface OnboardingContext {
39
+ http: GatewayHttpClient | null;
40
+ toolMap: ToolMap;
41
+ }
42
+ export type BracketMode = 'off' | 'observe' | 'enforce';
43
+ export type BracketRequirementFlag = 'requireStopLoss' | 'requireTakeProfit';
44
+ export interface GetBracketConfigOutcome {
45
+ ok: boolean;
46
+ message?: string;
47
+ mode: BracketMode;
48
+ requireStopLoss: boolean;
49
+ requireTakeProfit: boolean;
50
+ }
51
+ export interface SetBracketRequirementOutcome {
52
+ ok: boolean;
53
+ flag: BracketRequirementFlag;
54
+ previousValue: boolean;
55
+ value: boolean;
56
+ warning?: string;
57
+ error?: string;
58
+ message?: string;
59
+ }
60
+ /** Forward a set_trading_mode invocation to the plugin via HTTP. */
61
+ export declare function executeSetTradingMode(ctx: OnboardingContext, mode: TradingMode, acknowledged: boolean | undefined): Promise<SetTradingModeOutcome>;
62
+ /** Forward a test_exchange_credentials invocation to the plugin. The plugin
63
+ * does a throwaway read-only call to verify permissions without persisting
64
+ * the keys. Error messages are scrubbed of the raw secret before logging
65
+ * (same approach as the set path). */
66
+ export declare function executeTestExchangeCredentials(ctx: OnboardingContext, apiKey: string, secret: string, testnet: boolean | undefined): Promise<TestExchangeCredentialsOutcome>;
67
+ /** Forward a clear_exchange_credentials invocation to the plugin. Sends
68
+ * `confirm: true` unconditionally — the skill RPC only accepts the call
69
+ * at all when the bridge has decided it's legitimate, so the plugin-side
70
+ * safety gate is always satisfied when we reach this function. */
71
+ export declare function executeClearExchangeCredentials(ctx: OnboardingContext): Promise<ClearExchangeCredentialsOutcome>;
72
+ /** Forward a get_bracket_config invocation to the plugin. Returns safe
73
+ * defaults if the tool isn't available (bracket feature not enabled or
74
+ * plugin is older than v2.7) so the dashboard can still render. */
75
+ export declare function executeGetBracketConfig(ctx: OnboardingContext): Promise<GetBracketConfigOutcome>;
76
+ /** Forward a set_bracket_requirement invocation to the plugin. The plugin
77
+ * side enforces flag + boolean validation; the skill layer just forwards. */
78
+ export declare function executeSetBracketRequirement(ctx: OnboardingContext, flag: BracketRequirementFlag, value: boolean): Promise<SetBracketRequirementOutcome>;
79
+ /** Forward a set_exchange_credentials invocation to the plugin via HTTP.
80
+ * The raw secret is sent once over TLS and never retained here — no
81
+ * caching, no log lines with the raw value. Errors are scrubbed of the
82
+ * secret before logging in case it ever appears in an error chain. */
83
+ export declare function executeSetExchangeCredentials(ctx: OnboardingContext, apiKey: string, secret: string, testnet: boolean | undefined): Promise<SetExchangeCredentialsOutcome>;