@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,74 +0,0 @@
1
- import type { PositionMetadata } from '../simulator/types.js';
2
- export interface PendingEntry {
3
- /** Primary lookup key. Initially the client order id (the stash happens
4
- * BEFORE submission, when no exchange orderId exists yet); promote()
5
- * re-keys it to the exchange-issued orderId once the REST ack returns. */
6
- orderId: string;
7
- /** Client order id (idempotency key) — secondary lookup key. The WS
8
- * ORDER_TRADE_UPDATE carries it (`o.c`), so a fill that arrives BEFORE
9
- * the REST response (routine for market orders) still finds the stash. */
10
- clientOrderId?: string;
11
- /** Canonical (un-suffixed) symbol. */
12
- symbol: string;
13
- /** Side the agent intended at create_order time. */
14
- side: 'buy' | 'sell';
15
- metadata: PositionMetadata;
16
- createdAt: number;
17
- /** Epoch ms after which this entry is dropped. */
18
- expiresAt: number;
19
- }
20
- export type NowFn = () => number;
21
- export interface PendingEntryStoreOptions {
22
- pluginId?: string;
23
- basePath?: string;
24
- now?: NowFn;
25
- ttlMs?: number;
26
- }
27
- export declare class PendingEntryStore {
28
- private readonly filePath;
29
- private readonly dir;
30
- private readonly now;
31
- private readonly ttlMs;
32
- private entries;
33
- /** clientOrderId → primary key in `entries`. Lets WS fills that beat the
34
- * REST ack (no exchange orderId known yet) find the stash by cid. */
35
- private cidIndex;
36
- constructor(opts?: PendingEntryStoreOptions);
37
- /** Stash metadata until the WS fill for this order arrives. Keyed by
38
- * `orderId`; when `clientOrderId` is provided the entry is also findable
39
- * by it (pre-submission stashes pass the cid as BOTH — see create_order). */
40
- put(input: {
41
- orderId: string;
42
- clientOrderId?: string;
43
- symbol: string;
44
- side: 'buy' | 'sell';
45
- metadata: PositionMetadata;
46
- }): void;
47
- /** Re-key a pre-submission stash (keyed by clientOrderId) to the
48
- * exchange-issued orderId once the REST ack returns. The cid alias keeps
49
- * working. No-op when the entry is gone (already consumed by a WS fill
50
- * that beat the REST response, or expired). */
51
- promote(fromKey: string, exchangeOrderId: string): void;
52
- /** Retrieve metadata stashed for an orderId (or clientOrderId alias).
53
- * Does NOT remove the entry — callers should call `consume(orderId)` to
54
- * remove on first match, since multiple partial fills on the same limit
55
- * order all share one orderId and the FIRST fill is the entry; subsequent
56
- * are scale-ins of an already-registered position (state-store branch
57
- * handles those). */
58
- get(orderId: string): PendingEntry | undefined;
59
- /** Atomic get + remove (accepts orderId or clientOrderId). Use this when
60
- * you've already consumed the metadata to post an entry row and don't
61
- * want it picked up again. */
62
- consume(orderId: string): PendingEntry | undefined;
63
- /** Remove an entry without retrieval (e.g. on cancel). */
64
- drop(orderId: string): boolean;
65
- /** Resolve a lookup key that may be an orderId or a clientOrderId alias. */
66
- private resolveKey;
67
- private deleteEntry;
68
- size(): number;
69
- getFilePath(): string;
70
- private pruneExpired;
71
- private loadOrInit;
72
- private persist;
73
- private validateFile;
74
- }
@@ -1,236 +0,0 @@
1
- // Pending-entry metadata cache.
2
- //
3
- // When the agent calls create_order with v2.10.0 metadata (thesis, setup_type,
4
- // regime, scorecard_verdict, confluence_score, etc.) for a LIMIT order that
5
- // doesn't fill immediately, the metadata is stashed here keyed by the
6
- // exchange's orderId. When the WS-driven fill arrives later (could be seconds
7
- // or hours), `onWsFillObserved` looks up the metadata and posts the entry /
8
- // scale-in decision row with the original rationale intact.
9
- //
10
- // Without this cache, limit-order entries land in `position_entries` with
11
- // thesis='(no thesis recorded)' / setupType='unknown' — useless for Phase 2
12
- // outcome attribution and Phase 3 mining.
13
- //
14
- // Persistence: same atomic-rename pattern as bracket-ledger / position-state-
15
- // store. File at ~/.openclaw/plugins/<pluginId>/pending-entry-metadata.json.
16
- //
17
- // TTL: entries auto-expire 24 hours after creation (limit orders rarely live
18
- // longer; expired entries are pruned on every load + every write to keep the
19
- // file bounded).
20
- import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
21
- import { join } from 'node:path';
22
- import { resolvePluginsBaseDir } from '../util/plugin-paths.js';
23
- import { logger, formatError } from '../logger.js';
24
- const TAG = 'pending-entry-metadata';
25
- const DEFAULT_PLUGIN_ID = 'reefclaw-paper-trading';
26
- const STATE_FILENAME = 'pending-entry-metadata.json';
27
- const SCHEMA_VERSION = 1;
28
- const DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;
29
- const defaultNow = () => Date.now();
30
- export class PendingEntryStore {
31
- filePath;
32
- dir;
33
- now;
34
- ttlMs;
35
- entries = new Map();
36
- /** clientOrderId → primary key in `entries`. Lets WS fills that beat the
37
- * REST ack (no exchange orderId known yet) find the stash by cid. */
38
- cidIndex = new Map();
39
- constructor(opts) {
40
- const base = resolvePluginsBaseDir(opts?.basePath);
41
- this.dir = join(base, opts?.pluginId ?? DEFAULT_PLUGIN_ID);
42
- this.filePath = join(this.dir, STATE_FILENAME);
43
- this.now = opts?.now ?? defaultNow;
44
- this.ttlMs = opts?.ttlMs ?? DEFAULT_TTL_MS;
45
- if (!existsSync(this.dir))
46
- mkdirSync(this.dir, { recursive: true });
47
- this.loadOrInit();
48
- }
49
- /** Stash metadata until the WS fill for this order arrives. Keyed by
50
- * `orderId`; when `clientOrderId` is provided the entry is also findable
51
- * by it (pre-submission stashes pass the cid as BOTH — see create_order). */
52
- put(input) {
53
- const ts = this.now();
54
- this.entries.set(input.orderId, {
55
- orderId: input.orderId,
56
- ...(input.clientOrderId ? { clientOrderId: input.clientOrderId } : {}),
57
- symbol: input.symbol,
58
- side: input.side,
59
- metadata: input.metadata,
60
- createdAt: ts,
61
- expiresAt: ts + this.ttlMs,
62
- });
63
- if (input.clientOrderId)
64
- this.cidIndex.set(input.clientOrderId, input.orderId);
65
- this.persist();
66
- }
67
- /** Re-key a pre-submission stash (keyed by clientOrderId) to the
68
- * exchange-issued orderId once the REST ack returns. The cid alias keeps
69
- * working. No-op when the entry is gone (already consumed by a WS fill
70
- * that beat the REST response, or expired). */
71
- promote(fromKey, exchangeOrderId) {
72
- const key = this.resolveKey(fromKey);
73
- if (key === undefined || key === exchangeOrderId)
74
- return;
75
- const entry = this.entries.get(key);
76
- if (!entry)
77
- return;
78
- this.entries.delete(key);
79
- entry.orderId = exchangeOrderId;
80
- this.entries.set(exchangeOrderId, entry);
81
- if (entry.clientOrderId)
82
- this.cidIndex.set(entry.clientOrderId, exchangeOrderId);
83
- this.persist();
84
- }
85
- /** Retrieve metadata stashed for an orderId (or clientOrderId alias).
86
- * Does NOT remove the entry — callers should call `consume(orderId)` to
87
- * remove on first match, since multiple partial fills on the same limit
88
- * order all share one orderId and the FIRST fill is the entry; subsequent
89
- * are scale-ins of an already-registered position (state-store branch
90
- * handles those). */
91
- get(orderId) {
92
- this.pruneExpired();
93
- const key = this.resolveKey(orderId);
94
- return key === undefined ? undefined : this.entries.get(key);
95
- }
96
- /** Atomic get + remove (accepts orderId or clientOrderId). Use this when
97
- * you've already consumed the metadata to post an entry row and don't
98
- * want it picked up again. */
99
- consume(orderId) {
100
- this.pruneExpired();
101
- const key = this.resolveKey(orderId);
102
- if (key === undefined)
103
- return undefined;
104
- const entry = this.entries.get(key);
105
- if (!entry)
106
- return undefined;
107
- this.deleteEntry(key, entry);
108
- this.persist();
109
- return entry;
110
- }
111
- /** Remove an entry without retrieval (e.g. on cancel). */
112
- drop(orderId) {
113
- const key = this.resolveKey(orderId);
114
- if (key === undefined)
115
- return false;
116
- const entry = this.entries.get(key);
117
- if (!entry)
118
- return false;
119
- this.deleteEntry(key, entry);
120
- this.persist();
121
- return true;
122
- }
123
- /** Resolve a lookup key that may be an orderId or a clientOrderId alias. */
124
- resolveKey(k) {
125
- if (this.entries.has(k))
126
- return k;
127
- const viaCid = this.cidIndex.get(k);
128
- return viaCid !== undefined && this.entries.has(viaCid) ? viaCid : undefined;
129
- }
130
- deleteEntry(key, entry) {
131
- this.entries.delete(key);
132
- if (entry.clientOrderId)
133
- this.cidIndex.delete(entry.clientOrderId);
134
- }
135
- size() {
136
- return this.entries.size;
137
- }
138
- getFilePath() {
139
- return this.filePath;
140
- }
141
- // ---- Internals ----
142
- pruneExpired() {
143
- const ts = this.now();
144
- let pruned = false;
145
- for (const [orderId, entry] of this.entries) {
146
- if (entry.expiresAt <= ts) {
147
- this.deleteEntry(orderId, entry);
148
- pruned = true;
149
- }
150
- }
151
- if (pruned)
152
- this.persist();
153
- }
154
- loadOrInit() {
155
- if (!existsSync(this.filePath)) {
156
- logger.info(TAG, `No state file at ${this.filePath}; starting empty`);
157
- return;
158
- }
159
- let raw;
160
- try {
161
- raw = readFileSync(this.filePath, 'utf8');
162
- }
163
- catch (err) {
164
- throw new Error(`pending-entry-metadata: failed to read ${this.filePath}: ${formatError(err)}`);
165
- }
166
- let parsed;
167
- try {
168
- parsed = JSON.parse(raw);
169
- }
170
- catch (err) {
171
- throw new Error(`pending-entry-metadata: ${this.filePath} is not valid JSON: ${formatError(err)}`);
172
- }
173
- const file = this.validateFile(parsed);
174
- const ts = this.now();
175
- let kept = 0;
176
- let dropped = 0;
177
- for (const entry of file.entries) {
178
- if (entry.expiresAt > ts) {
179
- this.entries.set(entry.orderId, entry);
180
- if (entry.clientOrderId)
181
- this.cidIndex.set(entry.clientOrderId, entry.orderId);
182
- kept++;
183
- }
184
- else {
185
- dropped++;
186
- }
187
- }
188
- logger.info(TAG, `Loaded ${kept} pending entries from ${this.filePath}` +
189
- (dropped > 0 ? ` (pruned ${dropped} expired)` : ''));
190
- if (dropped > 0)
191
- this.persist();
192
- }
193
- persist() {
194
- const file = {
195
- schemaVersion: SCHEMA_VERSION,
196
- entries: Array.from(this.entries.values()),
197
- };
198
- const tempPath = `${this.filePath}.tmp`;
199
- writeFileSync(tempPath, JSON.stringify(file, null, 2));
200
- renameSync(tempPath, this.filePath);
201
- }
202
- validateFile(raw) {
203
- if (!isRecord(raw))
204
- throw new Error('pending-entry-metadata: file root is not an object');
205
- if (raw.schemaVersion !== SCHEMA_VERSION) {
206
- throw new Error(`pending-entry-metadata: unsupported schemaVersion ${String(raw.schemaVersion)} (expected ${SCHEMA_VERSION})`);
207
- }
208
- if (!Array.isArray(raw.entries))
209
- throw new Error('pending-entry-metadata: entries is not an array');
210
- const entries = [];
211
- for (const e of raw.entries) {
212
- if (!isRecord(e))
213
- throw new Error('pending-entry-metadata: entry is not an object');
214
- if (typeof e.orderId !== 'string' || e.orderId.length === 0) {
215
- throw new Error('pending-entry-metadata: entry missing orderId');
216
- }
217
- if (e.clientOrderId !== undefined && (typeof e.clientOrderId !== 'string' || e.clientOrderId.length === 0)) {
218
- throw new Error('pending-entry-metadata: invalid clientOrderId');
219
- }
220
- if (typeof e.symbol !== 'string' || e.symbol.length === 0) {
221
- throw new Error('pending-entry-metadata: entry missing symbol');
222
- }
223
- if (e.side !== 'buy' && e.side !== 'sell') {
224
- throw new Error(`pending-entry-metadata: bad side ${String(e.side)}`);
225
- }
226
- if (typeof e.expiresAt !== 'number' || !Number.isFinite(e.expiresAt)) {
227
- throw new Error('pending-entry-metadata: missing/invalid expiresAt');
228
- }
229
- entries.push(e);
230
- }
231
- return { schemaVersion: SCHEMA_VERSION, entries };
232
- }
233
- }
234
- function isRecord(v) {
235
- return typeof v === 'object' && v !== null && !Array.isArray(v);
236
- }
@@ -1,103 +0,0 @@
1
- import type { PositionDecisionsClient } from './position-decisions-client.js';
2
- import type { PositionStateStore } from '../live/position-state-store.js';
3
- import type { CcxtOrder } from '../types.js';
4
- import type { PositionMetadata } from '../simulator/types.js';
5
- import type { PendingEntryStore } from './pending-entry-metadata.js';
6
- export interface AutoCaptureContext {
7
- decisionsClient?: PositionDecisionsClient;
8
- stateStore?: PositionStateStore;
9
- /** Stash for create_order metadata that arrives BEFORE the fill (limit
10
- * orders that don't fill immediately). Looked up by exchangeOrderId when
11
- * the WS fill arrives via `onWsFillObserved`. */
12
- pendingEntries?: PendingEntryStore;
13
- userId?: string;
14
- /** When true, a reduce-only fill that takes a journaled position flat is
15
- * auto-captured as an exact close (bracket SL/TP fill or other close that
16
- * bypassed close_position). Default behaviour when unset is the legacy
17
- * no-op (reduce-only fills ignored). Env kill-switch: RC_JOURNAL_CLOSE_ON_FILL
18
- * (set 'off' to disable). See docs/CLAUDE/position-journal.md (close-bypass). */
19
- closeOnReduceOnlyFill?: boolean;
20
- /** Resolve the active trading book ('paper' | 'live') at capture time, read
21
- * from the current adapter (so it follows a runtime reconnect). Tags the
22
- * journal position row so paper and live entries can be segregated. */
23
- resolveMode?: () => 'paper' | 'live';
24
- /** Venue this gateway trades ('binance' | 'hyperliquid'). Static per process
25
- * — changing venue requires a config edit + restart (plan §5.2), so unlike
26
- * `resolveMode` this is a plain value, not a resolver. Tags journal rows
27
- * (positions.exchange, migration 0058). */
28
- venue?: 'binance' | 'hyperliquid';
29
- }
30
- export interface CreateOrderInputs {
31
- symbol: string;
32
- side: 'buy' | 'sell';
33
- metadata?: PositionMetadata;
34
- }
35
- /** Called after a successful adapter.createOrder().
36
- *
37
- * For PR 1, we treat any non-zero `filled` quantity as an entry event and
38
- * upsert the parent position + post the entry decision row. Limit orders that
39
- * haven't filled yet are skipped (caller can call us again from the WS-ingest
40
- * pipeline once they fill — that wiring is the follow-up).
41
- *
42
- * Always-fail-open: webapp errors are logged but never thrown.
43
- */
44
- export declare function onCreateOrderFilled(ctx: AutoCaptureContext, inputs: CreateOrderInputs, order: CcxtOrder): Promise<void>;
45
- export interface ClosePositionInputs {
46
- symbol: string;
47
- closeReason: string;
48
- closeAssessment: Record<string, unknown>;
49
- /** Optional v2.10.0 inputs the agent may have passed alongside reason+assessment. */
50
- scorecardVerdict?: string;
51
- confluenceScore?: number;
52
- regime?: string;
53
- regimeConfidence?: number;
54
- }
55
- /** Called after a successful adapter.closePosition() with the v2.10.0 reason +
56
- * assessment from close_position.ts. Looks up the cached position UUID, posts
57
- * the close decision row, and drops the local state entry. */
58
- export declare function onClosePositionFilled(ctx: AutoCaptureContext, inputs: ClosePositionInputs, order: CcxtOrder): Promise<void>;
59
- /** WS-driven fill observed. Resolves the PR1 deferral that limit-order fills
60
- * + scale-ins were silently dropped. Branches on three cases:
61
- *
62
- * - reduceOnly fill → ignored here (close path runs from close_position
63
- * tool with v2.10.0 reason+assessment; bracket SL/TP
64
- * fills also reduce-only and the legacy bracket
65
- * handler covers those).
66
- * - new-symbol entry → no state-store row → register the position +
67
- * post entry decision row (uses pending metadata
68
- * from the cache, or '(no thesis recorded)' fallback).
69
- * - same-side fill on → state-store row exists with same side → SCALE-IN.
70
- * existing position Posts a position_entries row with is_scale_in=true.
71
- * Does NOT create a new positions row (single parent
72
- * per open exposure).
73
- * - opposite-side fill → state-store has same symbol but opposite side.
74
- * on existing position Treated as a manual flatten that bypassed the
75
- * close_position tool — skip (cleaner to require
76
- * close_position for proper rationale capture).
77
- *
78
- * Dedup: when create_order's market-order path already captured an entry
79
- * synchronously, the state-store entry's `openedFromExchangeTradeId` matches
80
- * this fill's orderId. We detect that and skip to avoid double-posting. */
81
- export interface WsFillInputs {
82
- symbol: string;
83
- side: 'buy' | 'sell';
84
- exchangeOrderId: string;
85
- exchangeTradeId: string;
86
- fillPrice: number;
87
- fillSize: number;
88
- reduceOnly: boolean;
89
- /** Binance-exact realised PnL on this specific fill (`o.rp`). Used to sum the
90
- * position's realised PnL when a reduce-only fill takes it flat. */
91
- realizedPnl?: number;
92
- /** Client order id of the fill. Lets the reduce-only close handler tag a
93
- * bracket SL/TP fill (cid is a bracket cid) vs an external reduce-only close. */
94
- clientOrderId?: string;
95
- /** Timestamp from the exchange. Falls back to Date.now() if not provided. */
96
- exchangeTimeMs?: number;
97
- }
98
- export declare function onWsFillObserved(ctx: AutoCaptureContext, fill: WsFillInputs): Promise<void>;
99
- /** Pinned-plan subset persisted to position_entries.metadata (free-form JSONB).
100
- * Keys are snake_case per the canonical-JSONB-key rule (CLAUDE.md learning-loop:
101
- * a camelCase mismatch previously broke learning matching). Returns undefined
102
- * when neither field is present so we never write an empty object. */
103
- export declare function buildEntryPlanMetadata(md: PositionMetadata | undefined): Record<string, unknown> | undefined;