@reefclaw/connect 0.1.10 → 0.1.12

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 (396) hide show
  1. package/assets/bridge/gateway/event-parser.d.ts +6 -1
  2. package/assets/bridge/gateway/event-parser.js +19 -2
  3. package/assets/bridge/gateway/heartbeat-cron.d.ts +27 -0
  4. package/assets/bridge/gateway/heartbeat-cron.js +85 -0
  5. package/assets/bridge/gateway/poller.d.ts +1 -0
  6. package/assets/bridge/gateway/poller.js +14 -2
  7. package/assets/bridge/providers/gateway.d.ts +24 -2
  8. package/assets/bridge/providers/gateway.js +124 -25
  9. package/assets/bridge/setup.js +6 -51
  10. package/assets/shared/signals/conditions/registry.js +11 -2
  11. package/assets/shared/signals/strategy-adapter.js +17 -7
  12. package/assets/skill/SKILL.md +2 -0
  13. package/dist/deps.js +2 -2
  14. package/dist/plugin.js +35 -7
  15. package/package.json +1 -1
  16. package/assets/plugin/audit/mode-transition-audit.d.ts +0 -11
  17. package/assets/plugin/audit/mode-transition-audit.js +0 -29
  18. package/assets/plugin/balance-utils.d.ts +0 -36
  19. package/assets/plugin/balance-utils.js +0 -98
  20. package/assets/plugin/ccxt/binance-ban-gate.d.ts +0 -47
  21. package/assets/plugin/ccxt/binance-ban-gate.js +0 -420
  22. package/assets/plugin/ccxt/binance-private.d.ts +0 -346
  23. package/assets/plugin/ccxt/binance-private.js +0 -1525
  24. package/assets/plugin/ccxt/binance-public.d.ts +0 -34
  25. package/assets/plugin/ccxt/binance-public.js +0 -180
  26. package/assets/plugin/ccxt/intel-public.d.ts +0 -25
  27. package/assets/plugin/ccxt/intel-public.js +0 -80
  28. package/assets/plugin/ccxt/public-market-data-api.d.ts +0 -12
  29. package/assets/plugin/ccxt/public-market-data-api.js +0 -9
  30. package/assets/plugin/config/agent-config-client.d.ts +0 -77
  31. package/assets/plugin/config/agent-config-client.js +0 -188
  32. package/assets/plugin/config/agent-config-poller.d.ts +0 -32
  33. package/assets/plugin/config/agent-config-poller.js +0 -101
  34. package/assets/plugin/config/brackets-config.d.ts +0 -22
  35. package/assets/plugin/config/brackets-config.js +0 -58
  36. package/assets/plugin/config/entitlement-gate.d.ts +0 -51
  37. package/assets/plugin/config/entitlement-gate.js +0 -137
  38. package/assets/plugin/config/gate-store.d.ts +0 -18
  39. package/assets/plugin/config/gate-store.js +0 -61
  40. package/assets/plugin/config/plugin-config-io.d.ts +0 -215
  41. package/assets/plugin/config/plugin-config-io.js +0 -111
  42. package/assets/plugin/config/position-review-config.d.ts +0 -35
  43. package/assets/plugin/config/position-review-config.js +0 -105
  44. package/assets/plugin/config/tool-gate.d.ts +0 -53
  45. package/assets/plugin/config/tool-gate.js +0 -128
  46. package/assets/plugin/config/user-data-stream-config.d.ts +0 -89
  47. package/assets/plugin/config/user-data-stream-config.js +0 -239
  48. package/assets/plugin/connector-supervisor.d.ts +0 -36
  49. package/assets/plugin/connector-supervisor.js +0 -149
  50. package/assets/plugin/exchange-adapter.d.ts +0 -65
  51. package/assets/plugin/exchange-adapter.js +0 -4
  52. package/assets/plugin/index.d.ts +0 -30
  53. package/assets/plugin/index.js +0 -2678
  54. package/assets/plugin/ingest/pending-entry-metadata.d.ts +0 -74
  55. package/assets/plugin/ingest/pending-entry-metadata.js +0 -236
  56. package/assets/plugin/ingest/position-auto-capture.d.ts +0 -103
  57. package/assets/plugin/ingest/position-auto-capture.js +0 -411
  58. package/assets/plugin/ingest/position-decisions-client.d.ts +0 -322
  59. package/assets/plugin/ingest/position-decisions-client.js +0 -296
  60. package/assets/plugin/ingest/readiness-reporter.d.ts +0 -42
  61. package/assets/plugin/ingest/readiness-reporter.js +0 -163
  62. package/assets/plugin/ingest/reconcile-db-vs-exchange.d.ts +0 -13
  63. package/assets/plugin/ingest/reconcile-db-vs-exchange.js +0 -114
  64. package/assets/plugin/ingest/reconciler-cleanup.d.ts +0 -37
  65. package/assets/plugin/ingest/reconciler-cleanup.js +0 -147
  66. package/assets/plugin/ingest/rest-gap-filler.d.ts +0 -191
  67. package/assets/plugin/ingest/rest-gap-filler.js +0 -565
  68. package/assets/plugin/ingest/touched-symbols-store.d.ts +0 -25
  69. package/assets/plugin/ingest/touched-symbols-store.js +0 -96
  70. package/assets/plugin/ingest/trade-store-client.d.ts +0 -40
  71. package/assets/plugin/ingest/trade-store-client.js +0 -125
  72. package/assets/plugin/ingest/ws-ingest.d.ts +0 -43
  73. package/assets/plugin/ingest/ws-ingest.js +0 -126
  74. package/assets/plugin/learning/setup-family.d.ts +0 -21
  75. package/assets/plugin/learning/setup-family.js +0 -103
  76. package/assets/plugin/lifecycle/install-signal-handlers.d.ts +0 -33
  77. package/assets/plugin/lifecycle/install-signal-handlers.js +0 -112
  78. package/assets/plugin/lifecycle/shutdown-coordinator.d.ts +0 -43
  79. package/assets/plugin/lifecycle/shutdown-coordinator.js +0 -131
  80. package/assets/plugin/lifecycle/trading-operation-lock.d.ts +0 -17
  81. package/assets/plugin/lifecycle/trading-operation-lock.js +0 -14
  82. package/assets/plugin/live/bracket-id.d.ts +0 -26
  83. package/assets/plugin/live/bracket-id.js +0 -112
  84. package/assets/plugin/live/bracket-ledger.d.ts +0 -54
  85. package/assets/plugin/live/bracket-ledger.js +0 -267
  86. package/assets/plugin/live/bracket-manager.d.ts +0 -82
  87. package/assets/plugin/live/bracket-manager.js +0 -478
  88. package/assets/plugin/live/bracket-params.d.ts +0 -22
  89. package/assets/plugin/live/bracket-params.js +0 -124
  90. package/assets/plugin/live/bracket-reconciler.d.ts +0 -95
  91. package/assets/plugin/live/bracket-reconciler.js +0 -573
  92. package/assets/plugin/live/bracket-types.d.ts +0 -102
  93. package/assets/plugin/live/bracket-types.js +0 -8
  94. package/assets/plugin/live/deposit-tracker.d.ts +0 -62
  95. package/assets/plugin/live/deposit-tracker.js +0 -97
  96. package/assets/plugin/live/emergency-controls.d.ts +0 -32
  97. package/assets/plugin/live/emergency-controls.js +0 -226
  98. package/assets/plugin/live/exchange-errors.d.ts +0 -12
  99. package/assets/plugin/live/exchange-errors.js +0 -130
  100. package/assets/plugin/live/exchange-info-cache.d.ts +0 -37
  101. package/assets/plugin/live/exchange-info-cache.js +0 -134
  102. package/assets/plugin/live/fact-subscriber.d.ts +0 -78
  103. package/assets/plugin/live/fact-subscriber.js +0 -182
  104. package/assets/plugin/live/intent-journal.d.ts +0 -42
  105. package/assets/plugin/live/intent-journal.js +0 -122
  106. package/assets/plugin/live/listen-key-manager.d.ts +0 -70
  107. package/assets/plugin/live/listen-key-manager.js +0 -169
  108. package/assets/plugin/live/live-adapter.d.ts +0 -287
  109. package/assets/plugin/live/live-adapter.js +0 -1777
  110. package/assets/plugin/live/live-balance-enricher.d.ts +0 -32
  111. package/assets/plugin/live/live-balance-enricher.js +0 -104
  112. package/assets/plugin/live/live-bracket-api.d.ts +0 -13
  113. package/assets/plugin/live/live-bracket-api.js +0 -20
  114. package/assets/plugin/live/live-state-store.d.ts +0 -194
  115. package/assets/plugin/live/live-state-store.js +0 -450
  116. package/assets/plugin/live/local-signal-service.d.ts +0 -57
  117. package/assets/plugin/live/local-signal-service.js +0 -151
  118. package/assets/plugin/live/local-strategy-evaluator.d.ts +0 -62
  119. package/assets/plugin/live/local-strategy-evaluator.js +0 -131
  120. package/assets/plugin/live/microstructure-assembler.d.ts +0 -54
  121. package/assets/plugin/live/microstructure-assembler.js +0 -148
  122. package/assets/plugin/live/order-poller.d.ts +0 -29
  123. package/assets/plugin/live/order-poller.js +0 -125
  124. package/assets/plugin/live/position-state-store.d.ts +0 -83
  125. package/assets/plugin/live/position-state-store.js +0 -237
  126. package/assets/plugin/live/proposal-decision-listener.d.ts +0 -70
  127. package/assets/plugin/live/proposal-decision-listener.js +0 -292
  128. package/assets/plugin/live/proposal-manager.d.ts +0 -76
  129. package/assets/plugin/live/proposal-manager.js +0 -140
  130. package/assets/plugin/live/rate-limiter.d.ts +0 -47
  131. package/assets/plugin/live/rate-limiter.js +0 -159
  132. package/assets/plugin/live/reconciler.d.ts +0 -39
  133. package/assets/plugin/live/reconciler.js +0 -175
  134. package/assets/plugin/live/setup-buckets.d.ts +0 -7
  135. package/assets/plugin/live/setup-buckets.js +0 -33
  136. package/assets/plugin/live/slippage-tracker.d.ts +0 -45
  137. package/assets/plugin/live/slippage-tracker.js +0 -78
  138. package/assets/plugin/live/stop-watcher.d.ts +0 -60
  139. package/assets/plugin/live/stop-watcher.js +0 -215
  140. package/assets/plugin/live/user-data-active-probe.d.ts +0 -54
  141. package/assets/plugin/live/user-data-active-probe.js +0 -180
  142. package/assets/plugin/live/user-data-stream-controller.d.ts +0 -200
  143. package/assets/plugin/live/user-data-stream-controller.js +0 -579
  144. package/assets/plugin/live/user-data-stream-ws.d.ts +0 -22
  145. package/assets/plugin/live/user-data-stream-ws.js +0 -63
  146. package/assets/plugin/live/user-data-stream.d.ts +0 -243
  147. package/assets/plugin/live/user-data-stream.js +0 -704
  148. package/assets/plugin/logger.d.ts +0 -2
  149. package/assets/plugin/logger.js +0 -2
  150. package/assets/plugin/mfe.d.ts +0 -21
  151. package/assets/plugin/mfe.js +0 -68
  152. package/assets/plugin/onboarding/mode-ladder.d.ts +0 -1
  153. package/assets/plugin/onboarding/mode-ladder.js +0 -3
  154. package/assets/plugin/onboarding/runtime.d.ts +0 -84
  155. package/assets/plugin/onboarding/runtime.js +0 -173
  156. package/assets/plugin/openclaw.plugin.json +0 -92
  157. package/assets/plugin/paper-adapter.d.ts +0 -24
  158. package/assets/plugin/paper-adapter.js +0 -91
  159. package/assets/plugin/persistence/state-manager.d.ts +0 -66
  160. package/assets/plugin/persistence/state-manager.js +0 -222
  161. package/assets/plugin/pinned-plan.d.ts +0 -9
  162. package/assets/plugin/pinned-plan.js +0 -23
  163. package/assets/plugin/portfolio/wave9-admission.d.ts +0 -67
  164. package/assets/plugin/portfolio/wave9-admission.js +0 -262
  165. package/assets/plugin/portfolio/wave9-policy.d.ts +0 -36
  166. package/assets/plugin/portfolio/wave9-policy.js +0 -183
  167. package/assets/plugin/risk/pre-trade-check.d.ts +0 -38
  168. package/assets/plugin/risk/pre-trade-check.js +0 -345
  169. package/assets/plugin/risk/pre-trade-types.d.ts +0 -60
  170. package/assets/plugin/risk/pre-trade-types.js +0 -3
  171. package/assets/plugin/shadow/shadow-tracker.d.ts +0 -36
  172. package/assets/plugin/shadow/shadow-tracker.js +0 -151
  173. package/assets/plugin/shadow/types.d.ts +0 -42
  174. package/assets/plugin/shadow/types.js +0 -20
  175. package/assets/plugin/shared/indicators-extended.d.ts +0 -52
  176. package/assets/plugin/shared/indicators-extended.js +0 -291
  177. package/assets/plugin/shared/indicators.d.ts +0 -15
  178. package/assets/plugin/shared/indicators.js +0 -114
  179. package/assets/plugin/signals/conditions/registry.d.ts +0 -16
  180. package/assets/plugin/signals/conditions/registry.js +0 -1324
  181. package/assets/plugin/signals/conditions/types.d.ts +0 -1
  182. package/assets/plugin/signals/conditions/types.js +0 -4
  183. package/assets/plugin/signals/direction-rules.d.ts +0 -3
  184. package/assets/plugin/signals/direction-rules.js +0 -24
  185. package/assets/plugin/signals/entry-rules.d.ts +0 -6
  186. package/assets/plugin/signals/entry-rules.js +0 -33
  187. package/assets/plugin/signals/serialize-context.d.ts +0 -4
  188. package/assets/plugin/signals/serialize-context.js +0 -39
  189. package/assets/plugin/signals/stop-rules.d.ts +0 -3
  190. package/assets/plugin/signals/stop-rules.js +0 -48
  191. package/assets/plugin/signals/strategy-adapter.d.ts +0 -47
  192. package/assets/plugin/signals/strategy-adapter.js +0 -199
  193. package/assets/plugin/signals/types.d.ts +0 -1
  194. package/assets/plugin/signals/types.js +0 -8
  195. package/assets/plugin/simulator/exchange-simulator.d.ts +0 -93
  196. package/assets/plugin/simulator/exchange-simulator.js +0 -689
  197. package/assets/plugin/simulator/fill-engine.d.ts +0 -53
  198. package/assets/plugin/simulator/fill-engine.js +0 -280
  199. package/assets/plugin/simulator/paper-market-feed.d.ts +0 -26
  200. package/assets/plugin/simulator/paper-market-feed.js +0 -104
  201. package/assets/plugin/simulator/realistic-fills.d.ts +0 -59
  202. package/assets/plugin/simulator/realistic-fills.js +0 -175
  203. package/assets/plugin/simulator/types.d.ts +0 -224
  204. package/assets/plugin/simulator/types.js +0 -43
  205. package/assets/plugin/strategy/builtin-strategies.d.ts +0 -2
  206. package/assets/plugin/strategy/builtin-strategies.js +0 -113
  207. package/assets/plugin/strategy/condition-registry.d.ts +0 -3
  208. package/assets/plugin/strategy/condition-registry.js +0 -153
  209. package/assets/plugin/strategy/evaluator.d.ts +0 -70
  210. package/assets/plugin/strategy/evaluator.js +0 -98
  211. package/assets/plugin/tools/assessment-validation.d.ts +0 -120
  212. package/assets/plugin/tools/assessment-validation.js +0 -415
  213. package/assets/plugin/tools/attach-brackets.d.ts +0 -39
  214. package/assets/plugin/tools/attach-brackets.js +0 -399
  215. package/assets/plugin/tools/audit-bracket-protection.d.ts +0 -49
  216. package/assets/plugin/tools/audit-bracket-protection.js +0 -527
  217. package/assets/plugin/tools/cancel-all-orders.d.ts +0 -9
  218. package/assets/plugin/tools/cancel-all-orders.js +0 -8
  219. package/assets/plugin/tools/cancel-order.d.ts +0 -14
  220. package/assets/plugin/tools/cancel-order.js +0 -60
  221. package/assets/plugin/tools/check-position-health.d.ts +0 -46
  222. package/assets/plugin/tools/check-position-health.js +0 -194
  223. package/assets/plugin/tools/clear-exchange-credentials.d.ts +0 -24
  224. package/assets/plugin/tools/clear-exchange-credentials.js +0 -70
  225. package/assets/plugin/tools/close-position.d.ts +0 -45
  226. package/assets/plugin/tools/close-position.js +0 -722
  227. package/assets/plugin/tools/create-order.d.ts +0 -82
  228. package/assets/plugin/tools/create-order.js +0 -1516
  229. package/assets/plugin/tools/exit-gate.d.ts +0 -58
  230. package/assets/plugin/tools/exit-gate.js +0 -162
  231. package/assets/plugin/tools/fetch-balance.d.ts +0 -5
  232. package/assets/plugin/tools/fetch-balance.js +0 -4
  233. package/assets/plugin/tools/fetch-ohlcv.d.ts +0 -11
  234. package/assets/plugin/tools/fetch-ohlcv.js +0 -8
  235. package/assets/plugin/tools/fetch-open-orders.d.ts +0 -7
  236. package/assets/plugin/tools/fetch-open-orders.js +0 -4
  237. package/assets/plugin/tools/fetch-positions.d.ts +0 -7
  238. package/assets/plugin/tools/fetch-positions.js +0 -4
  239. package/assets/plugin/tools/fetch-ticker.d.ts +0 -11
  240. package/assets/plugin/tools/fetch-ticker.js +0 -5
  241. package/assets/plugin/tools/get-agent-profile.d.ts +0 -4
  242. package/assets/plugin/tools/get-agent-profile.js +0 -6
  243. package/assets/plugin/tools/get-analytics.d.ts +0 -6
  244. package/assets/plugin/tools/get-analytics.js +0 -7
  245. package/assets/plugin/tools/get-backtest.d.ts +0 -12
  246. package/assets/plugin/tools/get-backtest.js +0 -91
  247. package/assets/plugin/tools/get-basis.d.ts +0 -7
  248. package/assets/plugin/tools/get-basis.js +0 -7
  249. package/assets/plugin/tools/get-bracket-config.d.ts +0 -11
  250. package/assets/plugin/tools/get-bracket-config.js +0 -24
  251. package/assets/plugin/tools/get-cascade-risk.d.ts +0 -7
  252. package/assets/plugin/tools/get-cascade-risk.js +0 -8
  253. package/assets/plugin/tools/get-crypto-metrics.d.ts +0 -18
  254. package/assets/plugin/tools/get-crypto-metrics.js +0 -62
  255. package/assets/plugin/tools/get-cvd.d.ts +0 -6
  256. package/assets/plugin/tools/get-cvd.js +0 -6
  257. package/assets/plugin/tools/get-divergences.d.ts +0 -6
  258. package/assets/plugin/tools/get-divergences.js +0 -6
  259. package/assets/plugin/tools/get-funding-context.d.ts +0 -6
  260. package/assets/plugin/tools/get-funding-context.js +0 -16
  261. package/assets/plugin/tools/get-liquidation-levels.d.ts +0 -7
  262. package/assets/plugin/tools/get-liquidation-levels.js +0 -7
  263. package/assets/plugin/tools/get-liquidation-pulse.d.ts +0 -9
  264. package/assets/plugin/tools/get-liquidation-pulse.js +0 -22
  265. package/assets/plugin/tools/get-market-breadth.d.ts +0 -6
  266. package/assets/plugin/tools/get-market-breadth.js +0 -8
  267. package/assets/plugin/tools/get-market-intel.d.ts +0 -19
  268. package/assets/plugin/tools/get-market-intel.js +0 -116
  269. package/assets/plugin/tools/get-market-structure.d.ts +0 -47
  270. package/assets/plugin/tools/get-market-structure.js +0 -198
  271. package/assets/plugin/tools/get-my-mined-patterns.d.ts +0 -20
  272. package/assets/plugin/tools/get-my-mined-patterns.js +0 -61
  273. package/assets/plugin/tools/get-my-proposed-learnings.d.ts +0 -20
  274. package/assets/plugin/tools/get-my-proposed-learnings.js +0 -55
  275. package/assets/plugin/tools/get-my-recent-reviews.d.ts +0 -22
  276. package/assets/plugin/tools/get-my-recent-reviews.js +0 -66
  277. package/assets/plugin/tools/get-orderbook.d.ts +0 -21
  278. package/assets/plugin/tools/get-orderbook.js +0 -32
  279. package/assets/plugin/tools/get-pattern-scan.d.ts +0 -7
  280. package/assets/plugin/tools/get-pattern-scan.js +0 -8
  281. package/assets/plugin/tools/get-regime.d.ts +0 -6
  282. package/assets/plugin/tools/get-regime.js +0 -7
  283. package/assets/plugin/tools/get-relevant-learnings.d.ts +0 -21
  284. package/assets/plugin/tools/get-relevant-learnings.js +0 -65
  285. package/assets/plugin/tools/get-resting-liquidity.d.ts +0 -6
  286. package/assets/plugin/tools/get-resting-liquidity.js +0 -11
  287. package/assets/plugin/tools/get-risk-scenario.d.ts +0 -29
  288. package/assets/plugin/tools/get-risk-scenario.js +0 -47
  289. package/assets/plugin/tools/get-risk-summary.d.ts +0 -51
  290. package/assets/plugin/tools/get-risk-summary.js +0 -118
  291. package/assets/plugin/tools/get-sentiment.d.ts +0 -4
  292. package/assets/plugin/tools/get-sentiment.js +0 -6
  293. package/assets/plugin/tools/get-session-review.d.ts +0 -7
  294. package/assets/plugin/tools/get-session-review.js +0 -8
  295. package/assets/plugin/tools/get-setup-detail.d.ts +0 -7
  296. package/assets/plugin/tools/get-setup-detail.js +0 -311
  297. package/assets/plugin/tools/get-signals.d.ts +0 -15
  298. package/assets/plugin/tools/get-signals.js +0 -54
  299. package/assets/plugin/tools/get-sizing.d.ts +0 -6
  300. package/assets/plugin/tools/get-sizing.js +0 -6
  301. package/assets/plugin/tools/get-trade-feedback.d.ts +0 -7
  302. package/assets/plugin/tools/get-trade-feedback.js +0 -8
  303. package/assets/plugin/tools/get-trade-flow.d.ts +0 -7
  304. package/assets/plugin/tools/get-trade-flow.js +0 -7
  305. package/assets/plugin/tools/get-volume-analysis.d.ts +0 -21
  306. package/assets/plugin/tools/get-volume-analysis.js +0 -74
  307. package/assets/plugin/tools/get-volume-profile.d.ts +0 -7
  308. package/assets/plugin/tools/get-volume-profile.js +0 -7
  309. package/assets/plugin/tools/get-wave9-status.d.ts +0 -127
  310. package/assets/plugin/tools/get-wave9-status.js +0 -796
  311. package/assets/plugin/tools/helpers.d.ts +0 -26
  312. package/assets/plugin/tools/helpers.js +0 -39
  313. package/assets/plugin/tools/intel-api.d.ts +0 -34
  314. package/assets/plugin/tools/intel-api.js +0 -119
  315. package/assets/plugin/tools/intel-cache.d.ts +0 -25
  316. package/assets/plugin/tools/intel-cache.js +0 -148
  317. package/assets/plugin/tools/list-strategies.d.ts +0 -17
  318. package/assets/plugin/tools/list-strategies.js +0 -23
  319. package/assets/plugin/tools/modify-stop.d.ts +0 -21
  320. package/assets/plugin/tools/modify-stop.js +0 -120
  321. package/assets/plugin/tools/modify-target.d.ts +0 -21
  322. package/assets/plugin/tools/modify-target.js +0 -110
  323. package/assets/plugin/tools/propose-learning.d.ts +0 -22
  324. package/assets/plugin/tools/propose-learning.js +0 -65
  325. package/assets/plugin/tools/query-review-outcomes.d.ts +0 -30
  326. package/assets/plugin/tools/query-review-outcomes.js +0 -64
  327. package/assets/plugin/tools/query-trades.d.ts +0 -21
  328. package/assets/plugin/tools/query-trades.js +0 -37
  329. package/assets/plugin/tools/record-position-reviews.d.ts +0 -38
  330. package/assets/plugin/tools/record-position-reviews.js +0 -147
  331. package/assets/plugin/tools/save-strategy.d.ts +0 -16
  332. package/assets/plugin/tools/save-strategy.js +0 -46
  333. package/assets/plugin/tools/scan-pairs.d.ts +0 -18
  334. package/assets/plugin/tools/scan-pairs.js +0 -231
  335. package/assets/plugin/tools/score-setup.d.ts +0 -31
  336. package/assets/plugin/tools/score-setup.js +0 -268
  337. package/assets/plugin/tools/set-bracket-requirement.d.ts +0 -18
  338. package/assets/plugin/tools/set-bracket-requirement.js +0 -81
  339. package/assets/plugin/tools/set-exchange-credentials.d.ts +0 -25
  340. package/assets/plugin/tools/set-exchange-credentials.js +0 -80
  341. package/assets/plugin/tools/set-trading-mode.d.ts +0 -26
  342. package/assets/plugin/tools/set-trading-mode.js +0 -135
  343. package/assets/plugin/tools/test-exchange-credentials.d.ts +0 -16
  344. package/assets/plugin/tools/test-exchange-credentials.js +0 -100
  345. package/assets/plugin/tools/toggle-strategy.d.ts +0 -8
  346. package/assets/plugin/tools/toggle-strategy.js +0 -15
  347. package/assets/plugin/trading-params-cache.d.ts +0 -26
  348. package/assets/plugin/trading-params-cache.js +0 -52
  349. package/assets/plugin/types.d.ts +0 -134
  350. package/assets/plugin/types.js +0 -7
  351. package/assets/plugin/util/plugin-paths.d.ts +0 -3
  352. package/assets/plugin/util/plugin-paths.js +0 -15
  353. package/assets/plugin/venues/hyperliquid/hl-balance.d.ts +0 -116
  354. package/assets/plugin/venues/hyperliquid/hl-balance.js +0 -145
  355. package/assets/plugin/venues/hyperliquid/hl-brackets.d.ts +0 -102
  356. package/assets/plugin/venues/hyperliquid/hl-brackets.js +0 -172
  357. package/assets/plugin/venues/hyperliquid/hl-cloid.d.ts +0 -22
  358. package/assets/plugin/venues/hyperliquid/hl-cloid.js +0 -82
  359. package/assets/plugin/venues/hyperliquid/hl-info-cache.d.ts +0 -46
  360. package/assets/plugin/venues/hyperliquid/hl-info-cache.js +0 -125
  361. package/assets/plugin/venues/hyperliquid/hl-live-adapter.d.ts +0 -88
  362. package/assets/plugin/venues/hyperliquid/hl-live-adapter.js +0 -353
  363. package/assets/plugin/venues/hyperliquid/hl-precision.d.ts +0 -61
  364. package/assets/plugin/venues/hyperliquid/hl-precision.js +0 -176
  365. package/assets/plugin/venues/hyperliquid/hl-private.d.ts +0 -88
  366. package/assets/plugin/venues/hyperliquid/hl-private.js +0 -357
  367. package/assets/plugin/venues/hyperliquid/hl-public.d.ts +0 -79
  368. package/assets/plugin/venues/hyperliquid/hl-public.js +0 -429
  369. package/assets/plugin/venues/hyperliquid/hl-rate-gate.d.ts +0 -57
  370. package/assets/plugin/venues/hyperliquid/hl-rate-gate.js +0 -220
  371. package/assets/plugin/venues/hyperliquid/hl-user-stream.d.ts +0 -90
  372. package/assets/plugin/venues/hyperliquid/hl-user-stream.js +0 -220
  373. package/assets/plugin/venues/registry.d.ts +0 -38
  374. package/assets/plugin/venues/registry.js +0 -46
  375. package/assets/plugin/venues/symbols.d.ts +0 -43
  376. package/assets/plugin/venues/symbols.js +0 -107
  377. package/assets/plugin/wave9/live-account-capture.d.ts +0 -67
  378. package/assets/plugin/wave9/live-account-capture.js +0 -435
  379. package/assets/plugin/wave9/live-autonomous-protection.d.ts +0 -39
  380. package/assets/plugin/wave9/live-autonomous-protection.js +0 -112
  381. package/assets/plugin/wave9/live-durable-reconciliation-scheduler.d.ts +0 -33
  382. package/assets/plugin/wave9/live-durable-reconciliation-scheduler.js +0 -115
  383. package/assets/plugin/wave9/live-execution-ledger.d.ts +0 -107
  384. package/assets/plugin/wave9/live-execution-ledger.js +0 -498
  385. package/assets/plugin/wave9/live-position-confirmation.d.ts +0 -18
  386. package/assets/plugin/wave9/live-position-confirmation.js +0 -111
  387. package/assets/plugin/wave9/live-residual-protection.d.ts +0 -18
  388. package/assets/plugin/wave9/live-residual-protection.js +0 -250
  389. package/assets/plugin/wave9/live-startup-reconciliation.d.ts +0 -38
  390. package/assets/plugin/wave9/live-startup-reconciliation.js +0 -454
  391. package/assets/plugin/wave9/live-symbol-ownership.d.ts +0 -20
  392. package/assets/plugin/wave9/live-symbol-ownership.js +0 -132
  393. package/assets/plugin/wave9/paper-admission-guard.d.ts +0 -199
  394. package/assets/plugin/wave9/paper-admission-guard.js +0 -650
  395. package/assets/plugin/wave9/usdm-evidence-provider.d.ts +0 -42
  396. package/assets/plugin/wave9/usdm-evidence-provider.js +0 -133
@@ -1,80 +0,0 @@
1
- // set_exchange_credentials — operator-only plugin tool.
2
- //
3
- // Writes Binance API key + secret to ~/.reefclaw/plugin-config.json and
4
- // triggers an adapter reconnect if the current mode is live. The agent
5
- // should NOT call this tool; it's registered for the skill's operator RPC
6
- // path only. PR2 will enforce that via a skill-side scope gate (operator.write).
7
- //
8
- // Security:
9
- // - The secret is NEVER logged. Only a redacted fingerprint (first 4 + last 2
10
- // chars of the apiKey) goes to logs / audit.
11
- // - If the current mode is PAPER, credentials are written but NOT activated —
12
- // the operator must explicitly call set_trading_mode to move up the ladder.
13
- import { updatePluginConfig, redactCredential } from '../config/plugin-config-io.js';
14
- import { logger } from '../logger.js';
15
- const TAG = 'set-exchange-credentials';
16
- function validate(args) {
17
- if (typeof args.apiKey !== 'string' || args.apiKey.trim().length < 8) {
18
- return 'apiKey must be a string of at least 8 characters';
19
- }
20
- if (typeof args.secret !== 'string' || args.secret.trim().length < 8) {
21
- return 'secret must be a string of at least 8 characters';
22
- }
23
- if (args.testnet !== undefined && typeof args.testnet !== 'boolean') {
24
- return 'testnet must be a boolean when provided';
25
- }
26
- return null;
27
- }
28
- export async function setExchangeCredentialsTool(args, deps) {
29
- const validationError = validate(args);
30
- if (validationError) {
31
- return {
32
- ok: false,
33
- message: validationError,
34
- fingerprint: '(not-set)',
35
- reconnected: false,
36
- mode: deps.runtime.mode,
37
- readiness: deps.runtime.adapter.readiness,
38
- };
39
- }
40
- const exchange = {
41
- apiKey: args.apiKey.trim(),
42
- secret: args.secret.trim(),
43
- testnet: args.testnet ?? false,
44
- };
45
- const fingerprint = redactCredential(exchange.apiKey);
46
- try {
47
- updatePluginConfig({ exchange }, deps.configPath);
48
- }
49
- catch (err) {
50
- const msg = err instanceof Error ? err.message : String(err);
51
- logger.error(TAG, `Failed to write credentials: ${msg}`);
52
- return {
53
- ok: false,
54
- message: `Failed to persist credentials: ${msg}`,
55
- fingerprint,
56
- reconnected: false,
57
- mode: deps.runtime.mode,
58
- readiness: deps.runtime.adapter.readiness,
59
- };
60
- }
61
- logger.info(TAG, `Stored credentials (fingerprint: ${fingerprint}, testnet: ${exchange.testnet})`);
62
- // Only reconnect if we're already in a live mode — if the operator is still
63
- // in PAPER, activating the keys is a separate deliberate step via
64
- // set_trading_mode. This prevents accidentally going live by saving keys.
65
- let reconnected = false;
66
- if (deps.runtime.mode !== 'PAPER') {
67
- await deps.runtime.reconnect({ mode: deps.runtime.mode, exchange }, { adapterDeps: deps.adapterDeps });
68
- reconnected = true;
69
- }
70
- return {
71
- ok: true,
72
- message: reconnected
73
- ? `Credentials updated and ${deps.runtime.mode} adapter reconnected`
74
- : `Credentials stored (mode is PAPER — run set_trading_mode SHADOW to activate)`,
75
- fingerprint,
76
- reconnected,
77
- mode: deps.runtime.mode,
78
- readiness: deps.runtime.adapter.readiness,
79
- };
80
- }
@@ -1,26 +0,0 @@
1
- import type { PluginRuntime } from '../onboarding/runtime.js';
2
- import type { IExchangeAdapter } from '../exchange-adapter.js';
3
- import type { TradingMode } from '../types.js';
4
- export interface SetTradingModeArgs {
5
- mode: TradingMode;
6
- /** Optional acknowledgment flag for going live. The skill layer will set
7
- * this explicitly when the operator confirms the elevated confirmation. */
8
- acknowledged?: boolean;
9
- }
10
- export interface SetTradingModeResult {
11
- ok: boolean;
12
- message: string;
13
- previousMode: TradingMode;
14
- mode: TradingMode;
15
- readiness: string;
16
- reason?: string;
17
- }
18
- export interface SetTradingModeDeps {
19
- runtime: PluginRuntime;
20
- adapterDeps: {
21
- adapter: IExchangeAdapter;
22
- };
23
- /** Override the config file path — tests use this. */
24
- configPath?: string;
25
- }
26
- export declare function setTradingModeTool(args: SetTradingModeArgs, deps: SetTradingModeDeps): Promise<SetTradingModeResult>;
@@ -1,135 +0,0 @@
1
- // set_trading_mode — operator-only plugin tool.
2
- //
3
- // Moves the plugin between PAPER / MICRO_LIVE / LIVE, enforcing
4
- // the one-rung-at-a-time ladder. Requires valid exchange credentials for
5
- // any non-PAPER target. Rebuilds the adapter via runtime.reconnect().
6
- //
7
- // The agent should NOT call this tool; PR2 will enforce operator-only scope
8
- // in the skill. PR1 leaves the plugin-side handler functional but unguarded
9
- // because the caller chain is currently controlled end-to-end by the skill.
10
- import { readPluginConfig } from '../config/plugin-config-io.js';
11
- import { validateModeTransition, modeRequiresCredentials } from '../onboarding/mode-ladder.js';
12
- import { logger } from '../logger.js';
13
- import { recordModeTransition } from '../audit/mode-transition-audit.js';
14
- const TAG = 'set-trading-mode';
15
- const VALID_MODES = ['PAPER', 'MICRO_LIVE', 'LIVE'];
16
- export async function setTradingModeTool(args, deps) {
17
- const previousMode = deps.runtime.mode;
18
- if (!args || typeof args.mode !== 'string' || !VALID_MODES.includes(args.mode)) {
19
- return {
20
- ok: false,
21
- message: `Invalid mode. Must be one of: ${VALID_MODES.join(', ')}`,
22
- previousMode,
23
- mode: previousMode,
24
- readiness: deps.runtime.adapter.readiness,
25
- };
26
- }
27
- const target = args.mode;
28
- const acknowledged = args.acknowledged === true;
29
- // 1. Ladder check.
30
- const ladder = validateModeTransition(previousMode, target);
31
- if (!ladder.allowed) {
32
- recordModeTransition({ previousMode, targetMode: target, acknowledged, ok: false, reason: 'ladder' });
33
- return {
34
- ok: false,
35
- message: ladder.reason ?? 'Mode transition not allowed',
36
- previousMode,
37
- mode: previousMode,
38
- readiness: deps.runtime.adapter.readiness,
39
- reason: 'ladder',
40
- };
41
- }
42
- // 2. If already in the target mode, no-op (no audit entry — nothing happened).
43
- if (previousMode === target) {
44
- return {
45
- ok: true,
46
- message: `Already in ${target} mode`,
47
- previousMode,
48
- mode: previousMode,
49
- readiness: deps.runtime.adapter.readiness,
50
- };
51
- }
52
- // 3. Credential requirement check.
53
- let exchange = null;
54
- if (modeRequiresCredentials(target)) {
55
- try {
56
- const cfg = readPluginConfig(deps.configPath);
57
- if (cfg.exchange?.apiKey && cfg.exchange?.secret) {
58
- exchange = {
59
- apiKey: cfg.exchange.apiKey,
60
- secret: cfg.exchange.secret,
61
- testnet: cfg.exchange.testnet ?? false,
62
- };
63
- }
64
- }
65
- catch (err) {
66
- const msg = err instanceof Error ? err.message : String(err);
67
- recordModeTransition({ previousMode, targetMode: target, acknowledged, ok: false, reason: 'config_read_error' });
68
- return {
69
- ok: false,
70
- message: `Cannot read config: ${msg}`,
71
- previousMode,
72
- mode: previousMode,
73
- readiness: deps.runtime.adapter.readiness,
74
- reason: 'config_read_error',
75
- };
76
- }
77
- if (!exchange) {
78
- recordModeTransition({ previousMode, targetMode: target, acknowledged, ok: false, reason: 'missing_credentials' });
79
- return {
80
- ok: false,
81
- message: `${target} mode requires exchange credentials. Run set_exchange_credentials first.`,
82
- previousMode,
83
- mode: previousMode,
84
- readiness: deps.runtime.adapter.readiness,
85
- reason: 'missing_credentials',
86
- };
87
- }
88
- }
89
- // 4. Elevated confirmation for full LIVE.
90
- if (target === 'LIVE' && !acknowledged) {
91
- recordModeTransition({ previousMode, targetMode: target, acknowledged, ok: false, reason: 'acknowledgment_required' });
92
- return {
93
- ok: false,
94
- message: `Transition to LIVE requires explicit acknowledgment (acknowledged: true)`,
95
- previousMode,
96
- mode: previousMode,
97
- readiness: deps.runtime.adapter.readiness,
98
- reason: 'acknowledgment_required',
99
- };
100
- }
101
- // 5. Persist the new mode.
102
- try {
103
- const { updatePluginConfig } = await import('../config/plugin-config-io.js');
104
- updatePluginConfig({ tradingMode: target }, deps.configPath);
105
- }
106
- catch (err) {
107
- const msg = err instanceof Error ? err.message : String(err);
108
- recordModeTransition({ previousMode, targetMode: target, acknowledged, ok: false, reason: 'config_write_error' });
109
- return {
110
- ok: false,
111
- message: `Failed to persist mode: ${msg}`,
112
- previousMode,
113
- mode: previousMode,
114
- readiness: deps.runtime.adapter.readiness,
115
- reason: 'config_write_error',
116
- };
117
- }
118
- // 6. Swap the adapter.
119
- await deps.runtime.reconnect({ mode: target, exchange }, { adapterDeps: deps.adapterDeps });
120
- logger.info(TAG, `Transitioned ${previousMode} → ${target}`);
121
- recordModeTransition({
122
- previousMode,
123
- targetMode: target,
124
- acknowledged,
125
- ok: true,
126
- testnet: exchange?.testnet,
127
- });
128
- return {
129
- ok: true,
130
- message: `Trading mode changed from ${previousMode} to ${target}`,
131
- previousMode,
132
- mode: deps.runtime.mode,
133
- readiness: deps.runtime.adapter.readiness,
134
- };
135
- }
@@ -1,16 +0,0 @@
1
- export interface TestExchangeCredentialsArgs {
2
- apiKey: string;
3
- secret: string;
4
- testnet?: boolean;
5
- }
6
- export interface TestExchangeCredentialsResult {
7
- ok: boolean;
8
- message: string;
9
- fingerprint: string;
10
- canReadBalance: boolean;
11
- canReadPositions: boolean;
12
- balanceUSDT: number | null;
13
- testnet: boolean;
14
- errors: string[];
15
- }
16
- export declare function testExchangeCredentialsTool(args: TestExchangeCredentialsArgs): Promise<TestExchangeCredentialsResult>;
@@ -1,100 +0,0 @@
1
- // test_exchange_credentials — operator-only plugin tool.
2
- //
3
- // Takes a candidate Binance API key + secret and verifies them with a
4
- // transient, read-only call to the exchange (fetchBalance via
5
- // validatePermissions). Nothing is written to disk. Nothing is retained
6
- // after the call returns. This is the "pre-flight" check that lets the
7
- // dashboard say "yes these keys work, you can now click Store" before
8
- // the operator commits the credentials via set_exchange_credentials.
9
- //
10
- // Security:
11
- // - Builds a throwaway BinancePrivateApi instance scoped to one call.
12
- // - Never logs the secret — only a redacted fingerprint.
13
- // - Does not touch plugin-config.json at all.
14
- import { BinancePrivateApi } from '../ccxt/binance-private.js';
15
- import { redactCredential } from '../config/plugin-config-io.js';
16
- import { logger, formatError } from '../logger.js';
17
- const TAG = 'test-exchange-credentials';
18
- function validate(args) {
19
- if (typeof args.apiKey !== 'string' || args.apiKey.trim().length < 8) {
20
- return 'apiKey must be a string of at least 8 characters';
21
- }
22
- if (typeof args.secret !== 'string' || args.secret.trim().length < 8) {
23
- return 'secret must be a string of at least 8 characters';
24
- }
25
- return null;
26
- }
27
- export async function testExchangeCredentialsTool(args) {
28
- const fingerprint = redactCredential(args.apiKey);
29
- const err = validate(args);
30
- if (err) {
31
- return {
32
- ok: false,
33
- message: err,
34
- fingerprint,
35
- canReadBalance: false,
36
- canReadPositions: false,
37
- balanceUSDT: null,
38
- testnet: args.testnet ?? false,
39
- errors: [err],
40
- };
41
- }
42
- const config = {
43
- apiKey: args.apiKey.trim(),
44
- secret: args.secret.trim(),
45
- testnet: args.testnet ?? false,
46
- };
47
- logger.info(TAG, `Testing credentials (fingerprint: ${fingerprint}, testnet: ${config.testnet})`);
48
- let api;
49
- try {
50
- api = new BinancePrivateApi(config);
51
- }
52
- catch (e) {
53
- const msg = formatError(e);
54
- return {
55
- ok: false,
56
- message: `Could not initialize exchange client: ${msg}`,
57
- fingerprint,
58
- canReadBalance: false,
59
- canReadPositions: false,
60
- balanceUSDT: null,
61
- testnet: config.testnet ?? false,
62
- errors: [msg],
63
- };
64
- }
65
- const perms = await api.validatePermissions();
66
- // Opportunistically read the balance for the result payload — if
67
- // validatePermissions already proved it works, this is a no-op second
68
- // call that gives the user confidence ("connected, $123.45").
69
- // Supports both USDT and USDC (Binance USDⓈ-M settles in either).
70
- let balanceUSDT = null;
71
- if (perms.canReadBalance) {
72
- try {
73
- const bal = await api.fetchBalance();
74
- if (bal && typeof bal.total === 'object') {
75
- const usdt = bal.total.USDT ?? 0;
76
- const usdc = bal.total.USDC ?? 0;
77
- const sum = usdt + usdc;
78
- if (Number.isFinite(sum) && sum > 0)
79
- balanceUSDT = sum;
80
- }
81
- }
82
- catch {
83
- // Ignore — we already know canReadBalance is true, so this is cosmetic.
84
- }
85
- }
86
- const ok = perms.canReadBalance && perms.canReadPositions;
87
- const message = ok
88
- ? `Connection verified — USDT balance: ${balanceUSDT != null ? balanceUSDT.toFixed(2) : 'unknown'}`
89
- : `API permission check failed: ${perms.errors.join('; ')}`;
90
- return {
91
- ok,
92
- message,
93
- fingerprint,
94
- canReadBalance: perms.canReadBalance,
95
- canReadPositions: perms.canReadPositions,
96
- balanceUSDT,
97
- testnet: config.testnet ?? false,
98
- errors: perms.errors,
99
- };
100
- }
@@ -1,8 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export interface ToggleStrategyArgs {
3
- name: string;
4
- active: boolean;
5
- }
6
- export declare function toggleStrategyTool(args: ToggleStrategyArgs, deps: IntelApiDeps): Promise<Record<string, unknown> | {
7
- error: string;
8
- }>;
@@ -1,15 +0,0 @@
1
- // Tool: toggle_strategy — activate or deactivate a strategy.
2
- import { fetchIntelApi } from './intel-api.js';
3
- const WAVE9_OPERATOR_CONTROLLED_BUNDLE = 'wave9_28d_momentum_reversal';
4
- export async function toggleStrategyTool(args, deps) {
5
- if (args.name === WAVE9_OPERATOR_CONTROLLED_BUNDLE) {
6
- return {
7
- error: 'Wave 9 activation is operator-controlled. Do not change this toggle; ' +
8
- 'the operator must use the Strategies dashboard.',
9
- };
10
- }
11
- return fetchIntelApi(`/api/strategies/${encodeURIComponent(args.name)}/toggle`, deps, {
12
- method: 'PUT',
13
- body: { active: args.active },
14
- });
15
- }
@@ -1,26 +0,0 @@
1
- import { type IntelApiDeps } from './tools/intel-api.js';
2
- export interface TradingParameters {
3
- regimeConfidenceFloor: number;
4
- signalConfluenceThreshold: number;
5
- scorecardStrongGoThreshold: number;
6
- scorecardGoThreshold: number;
7
- scorecardMarginalThreshold: number;
8
- confidencePenaltyThreshold: number;
9
- unprovenSetupScore: number;
10
- rrWarningThreshold: number;
11
- lossStreakQuarterSize: number;
12
- lossStreakHalfSize: number;
13
- maxPositionSize: number;
14
- maxOpenPositions: number;
15
- maxGrossExposure: number;
16
- maxPerTradeLoss: number;
17
- drawdownYellow: number;
18
- drawdownOrange: number;
19
- drawdownRed: number;
20
- }
21
- /** Get trading parameters (from cache or fetch). Returns defaults on failure. */
22
- export declare function getTradingParams(deps: IntelApiDeps): Promise<TradingParameters>;
23
- /** Get cached params synchronously (for pure functions like preTradeRiskCheck). */
24
- export declare function getCachedTradingParams(): TradingParameters;
25
- /** Force-refresh the cache (call on plugin init). */
26
- export declare function refreshTradingParams(deps: IntelApiDeps): Promise<void>;
@@ -1,52 +0,0 @@
1
- // Trading parameters cache — fetches from intelligence API and caches locally.
2
- // Plugin tools (score-setup, pre-trade-check) read from this cache.
3
- import { fetchIntelApi } from './tools/intel-api.js';
4
- // Hardcoded defaults (same as intelligence/src/trading-params/types.ts)
5
- const DEFAULTS = {
6
- regimeConfidenceFloor: 0.35,
7
- signalConfluenceThreshold: 0.8,
8
- scorecardStrongGoThreshold: 7.5,
9
- scorecardGoThreshold: 5.5,
10
- scorecardMarginalThreshold: 4.0,
11
- confidencePenaltyThreshold: 0.35,
12
- unprovenSetupScore: 5,
13
- rrWarningThreshold: 1.5,
14
- lossStreakQuarterSize: 5,
15
- lossStreakHalfSize: 3,
16
- maxPositionSize: 10_000,
17
- maxOpenPositions: 5,
18
- maxGrossExposure: 1.5,
19
- maxPerTradeLoss: 500,
20
- drawdownYellow: -0.01,
21
- drawdownOrange: -0.02,
22
- drawdownRed: -0.025,
23
- };
24
- let cached = { ...DEFAULTS };
25
- let cacheExpiry = 0;
26
- const CACHE_TTL = 60_000; // 60s
27
- /** Get trading parameters (from cache or fetch). Returns defaults on failure. */
28
- export async function getTradingParams(deps) {
29
- const now = Date.now();
30
- if (now < cacheExpiry)
31
- return cached;
32
- try {
33
- const res = await fetchIntelApi('/api/trading-params', deps);
34
- if (!('error' in res) && res.params) {
35
- cached = { ...DEFAULTS, ...res.params };
36
- cacheExpiry = now + CACHE_TTL;
37
- }
38
- }
39
- catch {
40
- // Silently use cached/defaults on failure
41
- }
42
- return cached;
43
- }
44
- /** Get cached params synchronously (for pure functions like preTradeRiskCheck). */
45
- export function getCachedTradingParams() {
46
- return cached;
47
- }
48
- /** Force-refresh the cache (call on plugin init). */
49
- export async function refreshTradingParams(deps) {
50
- cacheExpiry = 0; // force refresh
51
- await getTradingParams(deps);
52
- }
@@ -1,134 +0,0 @@
1
- import type { RealizationRule } from './simulator/types.js';
2
- /** CCXT order — matches skill/src/gateway/event-parser.ts CcxtOrder */
3
- export interface CcxtOrder {
4
- id: string;
5
- symbol: string;
6
- side: 'buy' | 'sell';
7
- type: 'market' | 'limit';
8
- status: 'open' | 'closed' | 'canceled';
9
- amount: number;
10
- filled: number;
11
- remaining: number;
12
- average: number | null;
13
- price: number | null;
14
- cost: number;
15
- fee: {
16
- cost: number;
17
- currency: string;
18
- };
19
- timestamp: number;
20
- datetime: string;
21
- timeInForce: string;
22
- /** Client-supplied order id (Binance: `newClientOrderId`). Present on exchange
23
- * responses; used by bracket reconciliation to identify our orders on restart. */
24
- clientOrderId?: string;
25
- /** Raw upstream exchange response preserved verbatim. Binance algo endpoint
26
- * carries `orderType` (STOP_MARKET / TAKE_PROFIT_MARKET / TRAILING_STOP_MARKET)
27
- * and `algoType` (CONDITIONAL) fields that are authoritative for role
28
- * classification — more reliable than our CID-shape inference since they
29
- * also cover externally-placed stops (manual operator SL via Binance UI).
30
- * Top-level `type` stays narrow ('market'|'limit') for TS type safety;
31
- * consumers that need order subtype read `info.orderType`. */
32
- info?: Record<string, unknown>;
33
- }
34
- /** CCXT ticker — matches skill/src/gateway/event-parser.ts CcxtTicker */
35
- export interface CcxtTicker {
36
- symbol: string;
37
- last: number;
38
- bid: number;
39
- ask: number;
40
- baseVolume: number;
41
- quoteVolume: number;
42
- change: number;
43
- percentage: number;
44
- timestamp: number;
45
- datetime: string;
46
- }
47
- /** CCXT balance — compatible with skill/src/gateway/event-parser.ts CcxtBalance (stricter: named fields are required here, optional there) */
48
- export interface CcxtBalance {
49
- [currency: string]: {
50
- free: number;
51
- used: number;
52
- total: number;
53
- } | unknown;
54
- free: Record<string, number>;
55
- used: Record<string, number>;
56
- total: Record<string, number>;
57
- }
58
- /** CCXT position — returned by fetch_positions */
59
- export interface CcxtPosition {
60
- symbol: string;
61
- side: 'long' | 'short';
62
- contracts: number;
63
- contractSize: number;
64
- entryPrice: number;
65
- markPrice: number;
66
- notional: number;
67
- unrealizedPnl: number;
68
- percentage: number;
69
- timestamp: number;
70
- datetime: string;
71
- setupType?: string;
72
- missionId?: string;
73
- candidateId?: string;
74
- strategy?: 'tsmom_28d_long_flat_reversal_1d' | 'tsmom_28d_short_flat_reversal_1d';
75
- accruedFundingUsd?: number;
76
- fundingThroughTime?: string;
77
- thesis?: string;
78
- stopPrice?: number;
79
- targetPrice?: number;
80
- regime?: string;
81
- regimeConfidence?: number;
82
- scorecardVerdict?: string;
83
- confluenceScore?: number;
84
- originalStopPrice?: number;
85
- mfePeakPrice?: number;
86
- mfeR?: number;
87
- giveBackRatio?: number;
88
- invalidationPrice?: number;
89
- realizationRule?: RealizationRule;
90
- /** Derived: has the pinned invalidation price been reached at the current
91
- * mark? When false, the agent's own plan says the trade is still valid (a
92
- * salient anti-re-litigation cue). Undefined when no invalidation was pinned. */
93
- invalidationHit?: boolean;
94
- bracket?: {
95
- slPrice?: number;
96
- tpPrice?: number;
97
- state: string;
98
- };
99
- }
100
- /** CCXT OHLCV tuple: [timestamp, open, high, low, close, volume] */
101
- export type CcxtOHLCV = [number, number, number, number, number, number];
102
- /** Trading mode for the plugin. */
103
- export type TradingMode = 'PAPER' | 'SHADOW' | 'MICRO_LIVE' | 'LIVE';
104
- export interface PluginConfig {
105
- startingBalance: number;
106
- symbol: string;
107
- quoteCurrency: string;
108
- }
109
- export declare const DEFAULT_CONFIG: PluginConfig;
110
- /** Exchange credentials for shadow/live modes. Read from plugin-config.json's
111
- * `exchange` block (openclaw.json legacy fallback). Which fields matter
112
- * depends on `venue` (docs/HYPERLIQUID_INTEGRATION_PLAN.md §5.2):
113
- *
114
- * binance (default, and the only live-supported venue until Phase 3) —
115
- * apiKey + secret (HMAC pair) are required; walletAddress/agentPrivateKey
116
- * are ignored.
117
- * hyperliquid — walletAddress (MASTER wallet address, 0x…, used for
118
- * queries; never its private key) + agentPrivateKey (an approved
119
- * agent/API wallet's key — signs orders, cannot withdraw). apiKey/secret
120
- * are meaningless. Boot falls back to PAPER for this venue until the
121
- * Phase 3 adapter ships.
122
- *
123
- * apiKey/secret stay required at the type level because every constructed
124
- * instance today feeds BinancePrivateApi; the on-disk JSON is parsed, not
125
- * type-constructed, so an HL block without them is readable. Phase 3
126
- * restructures this into a per-venue discriminated union. */
127
- export interface ExchangeConfig {
128
- venue?: 'binance' | 'hyperliquid';
129
- apiKey: string;
130
- secret: string;
131
- testnet?: boolean;
132
- walletAddress?: string;
133
- agentPrivateKey?: string;
134
- }
@@ -1,7 +0,0 @@
1
- // Types for the ReefClaw Paper Trading plugin.
2
- // CCXT-compatible types that match what the GatewayProvider's event-parser expects.
3
- export const DEFAULT_CONFIG = {
4
- startingBalance: 10000,
5
- symbol: 'BTC/USDT',
6
- quoteCurrency: 'USDT',
7
- };
@@ -1,3 +0,0 @@
1
- /** Resolve the base directory where plugin state lives. The trailing
2
- * `plugins` segment is included so callers can append `<pluginId>`. */
3
- export declare function resolvePluginsBaseDir(explicitBase?: string): string;
@@ -1,15 +0,0 @@
1
- // Centralises the "where do plugin state files live" decision so test setup
2
- // can redirect every state writer with a single OPENCLAW_HOME env var.
3
- // Honors precedence: explicit override > OPENCLAW_HOME env > $HOME/.openclaw.
4
- import { homedir } from 'node:os';
5
- import { join } from 'node:path';
6
- /** Resolve the base directory where plugin state lives. The trailing
7
- * `plugins` segment is included so callers can append `<pluginId>`. */
8
- export function resolvePluginsBaseDir(explicitBase) {
9
- if (explicitBase)
10
- return explicitBase;
11
- const envBase = process.env.OPENCLAW_HOME;
12
- if (envBase)
13
- return join(envBase, 'plugins');
14
- return join(homedir(), '.openclaw', 'plugins');
15
- }