@reefclaw/connect 0.1.11 → 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 (397) hide show
  1. package/assets/bridge/gateway/heartbeat-cron.d.ts +27 -0
  2. package/assets/bridge/gateway/heartbeat-cron.js +85 -0
  3. package/assets/bridge/providers/gateway.d.ts +2 -0
  4. package/assets/bridge/providers/gateway.js +57 -16
  5. package/assets/bridge/setup.js +6 -51
  6. package/dist/deps.js +2 -2
  7. package/dist/plugin.js +35 -7
  8. package/package.json +1 -1
  9. package/assets/plugin/audit/mode-transition-audit.d.ts +0 -11
  10. package/assets/plugin/audit/mode-transition-audit.js +0 -29
  11. package/assets/plugin/balance-utils.d.ts +0 -36
  12. package/assets/plugin/balance-utils.js +0 -98
  13. package/assets/plugin/ccxt/binance-ban-gate.d.ts +0 -47
  14. package/assets/plugin/ccxt/binance-ban-gate.js +0 -420
  15. package/assets/plugin/ccxt/binance-private.d.ts +0 -346
  16. package/assets/plugin/ccxt/binance-private.js +0 -1525
  17. package/assets/plugin/ccxt/binance-public.d.ts +0 -34
  18. package/assets/plugin/ccxt/binance-public.js +0 -180
  19. package/assets/plugin/ccxt/intel-public.d.ts +0 -25
  20. package/assets/plugin/ccxt/intel-public.js +0 -80
  21. package/assets/plugin/ccxt/public-market-data-api.d.ts +0 -26
  22. package/assets/plugin/ccxt/public-market-data-api.js +0 -23
  23. package/assets/plugin/config/agent-config-client.d.ts +0 -77
  24. package/assets/plugin/config/agent-config-client.js +0 -188
  25. package/assets/plugin/config/agent-config-poller.d.ts +0 -32
  26. package/assets/plugin/config/agent-config-poller.js +0 -101
  27. package/assets/plugin/config/brackets-config.d.ts +0 -22
  28. package/assets/plugin/config/brackets-config.js +0 -58
  29. package/assets/plugin/config/entitlement-gate.d.ts +0 -51
  30. package/assets/plugin/config/entitlement-gate.js +0 -137
  31. package/assets/plugin/config/gate-store.d.ts +0 -18
  32. package/assets/plugin/config/gate-store.js +0 -61
  33. package/assets/plugin/config/plugin-config-io.d.ts +0 -222
  34. package/assets/plugin/config/plugin-config-io.js +0 -126
  35. package/assets/plugin/config/position-review-config.d.ts +0 -35
  36. package/assets/plugin/config/position-review-config.js +0 -105
  37. package/assets/plugin/config/tool-gate.d.ts +0 -53
  38. package/assets/plugin/config/tool-gate.js +0 -128
  39. package/assets/plugin/config/user-data-stream-config.d.ts +0 -89
  40. package/assets/plugin/config/user-data-stream-config.js +0 -239
  41. package/assets/plugin/connector-supervisor.d.ts +0 -36
  42. package/assets/plugin/connector-supervisor.js +0 -149
  43. package/assets/plugin/exchange-adapter.d.ts +0 -65
  44. package/assets/plugin/exchange-adapter.js +0 -4
  45. package/assets/plugin/index.d.ts +0 -30
  46. package/assets/plugin/index.js +0 -2756
  47. package/assets/plugin/ingest/pending-entry-metadata.d.ts +0 -74
  48. package/assets/plugin/ingest/pending-entry-metadata.js +0 -236
  49. package/assets/plugin/ingest/position-auto-capture.d.ts +0 -171
  50. package/assets/plugin/ingest/position-auto-capture.js +0 -709
  51. package/assets/plugin/ingest/position-decisions-client.d.ts +0 -327
  52. package/assets/plugin/ingest/position-decisions-client.js +0 -306
  53. package/assets/plugin/ingest/readiness-reporter.d.ts +0 -42
  54. package/assets/plugin/ingest/readiness-reporter.js +0 -163
  55. package/assets/plugin/ingest/reconcile-db-vs-exchange.d.ts +0 -51
  56. package/assets/plugin/ingest/reconcile-db-vs-exchange.js +0 -170
  57. package/assets/plugin/ingest/reconciler-cleanup.d.ts +0 -37
  58. package/assets/plugin/ingest/reconciler-cleanup.js +0 -147
  59. package/assets/plugin/ingest/rest-gap-filler.d.ts +0 -191
  60. package/assets/plugin/ingest/rest-gap-filler.js +0 -565
  61. package/assets/plugin/ingest/touched-symbols-store.d.ts +0 -25
  62. package/assets/plugin/ingest/touched-symbols-store.js +0 -96
  63. package/assets/plugin/ingest/trade-store-client.d.ts +0 -40
  64. package/assets/plugin/ingest/trade-store-client.js +0 -125
  65. package/assets/plugin/ingest/ws-ingest.d.ts +0 -43
  66. package/assets/plugin/ingest/ws-ingest.js +0 -126
  67. package/assets/plugin/learning/setup-family.d.ts +0 -21
  68. package/assets/plugin/learning/setup-family.js +0 -103
  69. package/assets/plugin/lifecycle/install-signal-handlers.d.ts +0 -33
  70. package/assets/plugin/lifecycle/install-signal-handlers.js +0 -112
  71. package/assets/plugin/lifecycle/shutdown-coordinator.d.ts +0 -43
  72. package/assets/plugin/lifecycle/shutdown-coordinator.js +0 -131
  73. package/assets/plugin/lifecycle/trading-operation-lock.d.ts +0 -17
  74. package/assets/plugin/lifecycle/trading-operation-lock.js +0 -14
  75. package/assets/plugin/live/bracket-id.d.ts +0 -26
  76. package/assets/plugin/live/bracket-id.js +0 -112
  77. package/assets/plugin/live/bracket-ledger.d.ts +0 -54
  78. package/assets/plugin/live/bracket-ledger.js +0 -267
  79. package/assets/plugin/live/bracket-manager.d.ts +0 -82
  80. package/assets/plugin/live/bracket-manager.js +0 -478
  81. package/assets/plugin/live/bracket-params.d.ts +0 -22
  82. package/assets/plugin/live/bracket-params.js +0 -124
  83. package/assets/plugin/live/bracket-reconciler.d.ts +0 -95
  84. package/assets/plugin/live/bracket-reconciler.js +0 -573
  85. package/assets/plugin/live/bracket-types.d.ts +0 -102
  86. package/assets/plugin/live/bracket-types.js +0 -8
  87. package/assets/plugin/live/deposit-tracker.d.ts +0 -62
  88. package/assets/plugin/live/deposit-tracker.js +0 -97
  89. package/assets/plugin/live/emergency-controls.d.ts +0 -32
  90. package/assets/plugin/live/emergency-controls.js +0 -226
  91. package/assets/plugin/live/exchange-errors.d.ts +0 -12
  92. package/assets/plugin/live/exchange-errors.js +0 -130
  93. package/assets/plugin/live/exchange-info-cache.d.ts +0 -37
  94. package/assets/plugin/live/exchange-info-cache.js +0 -134
  95. package/assets/plugin/live/fact-subscriber.d.ts +0 -78
  96. package/assets/plugin/live/fact-subscriber.js +0 -182
  97. package/assets/plugin/live/fill-price.d.ts +0 -13
  98. package/assets/plugin/live/fill-price.js +0 -37
  99. package/assets/plugin/live/intent-journal.d.ts +0 -42
  100. package/assets/plugin/live/intent-journal.js +0 -122
  101. package/assets/plugin/live/listen-key-manager.d.ts +0 -70
  102. package/assets/plugin/live/listen-key-manager.js +0 -169
  103. package/assets/plugin/live/live-adapter.d.ts +0 -319
  104. package/assets/plugin/live/live-adapter.js +0 -1906
  105. package/assets/plugin/live/live-balance-enricher.d.ts +0 -32
  106. package/assets/plugin/live/live-balance-enricher.js +0 -104
  107. package/assets/plugin/live/live-bracket-api.d.ts +0 -13
  108. package/assets/plugin/live/live-bracket-api.js +0 -20
  109. package/assets/plugin/live/live-state-store.d.ts +0 -194
  110. package/assets/plugin/live/live-state-store.js +0 -450
  111. package/assets/plugin/live/local-signal-service.d.ts +0 -57
  112. package/assets/plugin/live/local-signal-service.js +0 -151
  113. package/assets/plugin/live/local-strategy-evaluator.d.ts +0 -62
  114. package/assets/plugin/live/local-strategy-evaluator.js +0 -131
  115. package/assets/plugin/live/microstructure-assembler.d.ts +0 -54
  116. package/assets/plugin/live/microstructure-assembler.js +0 -148
  117. package/assets/plugin/live/order-poller.d.ts +0 -29
  118. package/assets/plugin/live/order-poller.js +0 -125
  119. package/assets/plugin/live/position-state-store.d.ts +0 -87
  120. package/assets/plugin/live/position-state-store.js +0 -237
  121. package/assets/plugin/live/proposal-decision-listener.d.ts +0 -70
  122. package/assets/plugin/live/proposal-decision-listener.js +0 -292
  123. package/assets/plugin/live/proposal-manager.d.ts +0 -76
  124. package/assets/plugin/live/proposal-manager.js +0 -140
  125. package/assets/plugin/live/rate-limiter.d.ts +0 -47
  126. package/assets/plugin/live/rate-limiter.js +0 -159
  127. package/assets/plugin/live/reconciler.d.ts +0 -39
  128. package/assets/plugin/live/reconciler.js +0 -175
  129. package/assets/plugin/live/setup-buckets.d.ts +0 -7
  130. package/assets/plugin/live/setup-buckets.js +0 -33
  131. package/assets/plugin/live/slippage-tracker.d.ts +0 -45
  132. package/assets/plugin/live/slippage-tracker.js +0 -78
  133. package/assets/plugin/live/stop-watcher.d.ts +0 -67
  134. package/assets/plugin/live/stop-watcher.js +0 -218
  135. package/assets/plugin/live/user-data-active-probe.d.ts +0 -54
  136. package/assets/plugin/live/user-data-active-probe.js +0 -180
  137. package/assets/plugin/live/user-data-stream-controller.d.ts +0 -200
  138. package/assets/plugin/live/user-data-stream-controller.js +0 -579
  139. package/assets/plugin/live/user-data-stream-ws.d.ts +0 -22
  140. package/assets/plugin/live/user-data-stream-ws.js +0 -63
  141. package/assets/plugin/live/user-data-stream.d.ts +0 -243
  142. package/assets/plugin/live/user-data-stream.js +0 -704
  143. package/assets/plugin/logger.d.ts +0 -2
  144. package/assets/plugin/logger.js +0 -2
  145. package/assets/plugin/mfe.d.ts +0 -21
  146. package/assets/plugin/mfe.js +0 -68
  147. package/assets/plugin/onboarding/mode-ladder.d.ts +0 -1
  148. package/assets/plugin/onboarding/mode-ladder.js +0 -3
  149. package/assets/plugin/onboarding/runtime.d.ts +0 -90
  150. package/assets/plugin/onboarding/runtime.js +0 -184
  151. package/assets/plugin/openclaw.plugin.json +0 -92
  152. package/assets/plugin/paper-adapter.d.ts +0 -24
  153. package/assets/plugin/paper-adapter.js +0 -91
  154. package/assets/plugin/persistence/state-manager.d.ts +0 -66
  155. package/assets/plugin/persistence/state-manager.js +0 -222
  156. package/assets/plugin/pinned-plan.d.ts +0 -9
  157. package/assets/plugin/pinned-plan.js +0 -23
  158. package/assets/plugin/portfolio/reentry-tracker.d.ts +0 -36
  159. package/assets/plugin/portfolio/reentry-tracker.js +0 -127
  160. package/assets/plugin/portfolio/wave9-admission.d.ts +0 -67
  161. package/assets/plugin/portfolio/wave9-admission.js +0 -262
  162. package/assets/plugin/portfolio/wave9-policy.d.ts +0 -36
  163. package/assets/plugin/portfolio/wave9-policy.js +0 -183
  164. package/assets/plugin/risk/pre-trade-check.d.ts +0 -38
  165. package/assets/plugin/risk/pre-trade-check.js +0 -345
  166. package/assets/plugin/risk/pre-trade-types.d.ts +0 -60
  167. package/assets/plugin/risk/pre-trade-types.js +0 -3
  168. package/assets/plugin/shadow/shadow-tracker.d.ts +0 -36
  169. package/assets/plugin/shadow/shadow-tracker.js +0 -151
  170. package/assets/plugin/shadow/types.d.ts +0 -42
  171. package/assets/plugin/shadow/types.js +0 -20
  172. package/assets/plugin/shared/indicators-extended.d.ts +0 -52
  173. package/assets/plugin/shared/indicators-extended.js +0 -291
  174. package/assets/plugin/shared/indicators.d.ts +0 -15
  175. package/assets/plugin/shared/indicators.js +0 -114
  176. package/assets/plugin/signals/conditions/registry.d.ts +0 -16
  177. package/assets/plugin/signals/conditions/registry.js +0 -1333
  178. package/assets/plugin/signals/conditions/types.d.ts +0 -1
  179. package/assets/plugin/signals/conditions/types.js +0 -4
  180. package/assets/plugin/signals/direction-rules.d.ts +0 -3
  181. package/assets/plugin/signals/direction-rules.js +0 -24
  182. package/assets/plugin/signals/entry-rules.d.ts +0 -6
  183. package/assets/plugin/signals/entry-rules.js +0 -33
  184. package/assets/plugin/signals/serialize-context.d.ts +0 -4
  185. package/assets/plugin/signals/serialize-context.js +0 -39
  186. package/assets/plugin/signals/stop-rules.d.ts +0 -3
  187. package/assets/plugin/signals/stop-rules.js +0 -48
  188. package/assets/plugin/signals/strategy-adapter.d.ts +0 -47
  189. package/assets/plugin/signals/strategy-adapter.js +0 -209
  190. package/assets/plugin/signals/types.d.ts +0 -1
  191. package/assets/plugin/signals/types.js +0 -8
  192. package/assets/plugin/simulator/exchange-simulator.d.ts +0 -105
  193. package/assets/plugin/simulator/exchange-simulator.js +0 -759
  194. package/assets/plugin/simulator/fill-engine.d.ts +0 -53
  195. package/assets/plugin/simulator/fill-engine.js +0 -280
  196. package/assets/plugin/simulator/paper-market-feed.d.ts +0 -26
  197. package/assets/plugin/simulator/paper-market-feed.js +0 -104
  198. package/assets/plugin/simulator/realistic-fills.d.ts +0 -59
  199. package/assets/plugin/simulator/realistic-fills.js +0 -175
  200. package/assets/plugin/simulator/types.d.ts +0 -228
  201. package/assets/plugin/simulator/types.js +0 -43
  202. package/assets/plugin/strategy/builtin-strategies.d.ts +0 -2
  203. package/assets/plugin/strategy/builtin-strategies.js +0 -113
  204. package/assets/plugin/strategy/condition-registry.d.ts +0 -3
  205. package/assets/plugin/strategy/condition-registry.js +0 -153
  206. package/assets/plugin/strategy/evaluator.d.ts +0 -70
  207. package/assets/plugin/strategy/evaluator.js +0 -98
  208. package/assets/plugin/tools/assessment-validation.d.ts +0 -141
  209. package/assets/plugin/tools/assessment-validation.js +0 -473
  210. package/assets/plugin/tools/attach-brackets.d.ts +0 -39
  211. package/assets/plugin/tools/attach-brackets.js +0 -564
  212. package/assets/plugin/tools/audit-bracket-protection.d.ts +0 -49
  213. package/assets/plugin/tools/audit-bracket-protection.js +0 -683
  214. package/assets/plugin/tools/bracket-control.d.ts +0 -12
  215. package/assets/plugin/tools/bracket-control.js +0 -35
  216. package/assets/plugin/tools/cancel-all-orders.d.ts +0 -9
  217. package/assets/plugin/tools/cancel-all-orders.js +0 -8
  218. package/assets/plugin/tools/cancel-order.d.ts +0 -14
  219. package/assets/plugin/tools/cancel-order.js +0 -60
  220. package/assets/plugin/tools/check-position-health.d.ts +0 -46
  221. package/assets/plugin/tools/check-position-health.js +0 -194
  222. package/assets/plugin/tools/clear-exchange-credentials.d.ts +0 -24
  223. package/assets/plugin/tools/clear-exchange-credentials.js +0 -70
  224. package/assets/plugin/tools/close-position.d.ts +0 -45
  225. package/assets/plugin/tools/close-position.js +0 -722
  226. package/assets/plugin/tools/create-order.d.ts +0 -82
  227. package/assets/plugin/tools/create-order.js +0 -1544
  228. package/assets/plugin/tools/exit-gate.d.ts +0 -58
  229. package/assets/plugin/tools/exit-gate.js +0 -162
  230. package/assets/plugin/tools/fetch-balance.d.ts +0 -5
  231. package/assets/plugin/tools/fetch-balance.js +0 -4
  232. package/assets/plugin/tools/fetch-ohlcv.d.ts +0 -11
  233. package/assets/plugin/tools/fetch-ohlcv.js +0 -8
  234. package/assets/plugin/tools/fetch-open-orders.d.ts +0 -7
  235. package/assets/plugin/tools/fetch-open-orders.js +0 -4
  236. package/assets/plugin/tools/fetch-positions.d.ts +0 -7
  237. package/assets/plugin/tools/fetch-positions.js +0 -4
  238. package/assets/plugin/tools/fetch-ticker.d.ts +0 -11
  239. package/assets/plugin/tools/fetch-ticker.js +0 -5
  240. package/assets/plugin/tools/get-agent-profile.d.ts +0 -4
  241. package/assets/plugin/tools/get-agent-profile.js +0 -6
  242. package/assets/plugin/tools/get-analytics.d.ts +0 -6
  243. package/assets/plugin/tools/get-analytics.js +0 -7
  244. package/assets/plugin/tools/get-backtest.d.ts +0 -12
  245. package/assets/plugin/tools/get-backtest.js +0 -91
  246. package/assets/plugin/tools/get-basis.d.ts +0 -7
  247. package/assets/plugin/tools/get-basis.js +0 -7
  248. package/assets/plugin/tools/get-bracket-config.d.ts +0 -11
  249. package/assets/plugin/tools/get-bracket-config.js +0 -24
  250. package/assets/plugin/tools/get-cascade-risk.d.ts +0 -7
  251. package/assets/plugin/tools/get-cascade-risk.js +0 -8
  252. package/assets/plugin/tools/get-crypto-metrics.d.ts +0 -18
  253. package/assets/plugin/tools/get-crypto-metrics.js +0 -62
  254. package/assets/plugin/tools/get-cvd.d.ts +0 -6
  255. package/assets/plugin/tools/get-cvd.js +0 -6
  256. package/assets/plugin/tools/get-divergences.d.ts +0 -6
  257. package/assets/plugin/tools/get-divergences.js +0 -6
  258. package/assets/plugin/tools/get-funding-context.d.ts +0 -6
  259. package/assets/plugin/tools/get-funding-context.js +0 -16
  260. package/assets/plugin/tools/get-liquidation-levels.d.ts +0 -7
  261. package/assets/plugin/tools/get-liquidation-levels.js +0 -7
  262. package/assets/plugin/tools/get-liquidation-pulse.d.ts +0 -9
  263. package/assets/plugin/tools/get-liquidation-pulse.js +0 -22
  264. package/assets/plugin/tools/get-market-breadth.d.ts +0 -6
  265. package/assets/plugin/tools/get-market-breadth.js +0 -8
  266. package/assets/plugin/tools/get-market-intel.d.ts +0 -19
  267. package/assets/plugin/tools/get-market-intel.js +0 -116
  268. package/assets/plugin/tools/get-market-structure.d.ts +0 -47
  269. package/assets/plugin/tools/get-market-structure.js +0 -198
  270. package/assets/plugin/tools/get-my-mined-patterns.d.ts +0 -20
  271. package/assets/plugin/tools/get-my-mined-patterns.js +0 -61
  272. package/assets/plugin/tools/get-my-proposed-learnings.d.ts +0 -20
  273. package/assets/plugin/tools/get-my-proposed-learnings.js +0 -55
  274. package/assets/plugin/tools/get-my-recent-reviews.d.ts +0 -22
  275. package/assets/plugin/tools/get-my-recent-reviews.js +0 -66
  276. package/assets/plugin/tools/get-orderbook.d.ts +0 -21
  277. package/assets/plugin/tools/get-orderbook.js +0 -32
  278. package/assets/plugin/tools/get-pattern-scan.d.ts +0 -7
  279. package/assets/plugin/tools/get-pattern-scan.js +0 -8
  280. package/assets/plugin/tools/get-regime.d.ts +0 -6
  281. package/assets/plugin/tools/get-regime.js +0 -7
  282. package/assets/plugin/tools/get-relevant-learnings.d.ts +0 -21
  283. package/assets/plugin/tools/get-relevant-learnings.js +0 -65
  284. package/assets/plugin/tools/get-resting-liquidity.d.ts +0 -6
  285. package/assets/plugin/tools/get-resting-liquidity.js +0 -11
  286. package/assets/plugin/tools/get-risk-scenario.d.ts +0 -29
  287. package/assets/plugin/tools/get-risk-scenario.js +0 -47
  288. package/assets/plugin/tools/get-risk-summary.d.ts +0 -51
  289. package/assets/plugin/tools/get-risk-summary.js +0 -118
  290. package/assets/plugin/tools/get-sentiment.d.ts +0 -4
  291. package/assets/plugin/tools/get-sentiment.js +0 -6
  292. package/assets/plugin/tools/get-session-review.d.ts +0 -7
  293. package/assets/plugin/tools/get-session-review.js +0 -8
  294. package/assets/plugin/tools/get-setup-detail.d.ts +0 -7
  295. package/assets/plugin/tools/get-setup-detail.js +0 -322
  296. package/assets/plugin/tools/get-signals.d.ts +0 -15
  297. package/assets/plugin/tools/get-signals.js +0 -54
  298. package/assets/plugin/tools/get-sizing.d.ts +0 -6
  299. package/assets/plugin/tools/get-sizing.js +0 -6
  300. package/assets/plugin/tools/get-trade-feedback.d.ts +0 -7
  301. package/assets/plugin/tools/get-trade-feedback.js +0 -8
  302. package/assets/plugin/tools/get-trade-flow.d.ts +0 -7
  303. package/assets/plugin/tools/get-trade-flow.js +0 -7
  304. package/assets/plugin/tools/get-volume-analysis.d.ts +0 -21
  305. package/assets/plugin/tools/get-volume-analysis.js +0 -74
  306. package/assets/plugin/tools/get-volume-profile.d.ts +0 -7
  307. package/assets/plugin/tools/get-volume-profile.js +0 -7
  308. package/assets/plugin/tools/get-wave9-status.d.ts +0 -127
  309. package/assets/plugin/tools/get-wave9-status.js +0 -796
  310. package/assets/plugin/tools/helpers.d.ts +0 -26
  311. package/assets/plugin/tools/helpers.js +0 -39
  312. package/assets/plugin/tools/intel-api.d.ts +0 -34
  313. package/assets/plugin/tools/intel-api.js +0 -119
  314. package/assets/plugin/tools/intel-cache.d.ts +0 -25
  315. package/assets/plugin/tools/intel-cache.js +0 -148
  316. package/assets/plugin/tools/list-strategies.d.ts +0 -17
  317. package/assets/plugin/tools/list-strategies.js +0 -23
  318. package/assets/plugin/tools/modify-stop.d.ts +0 -21
  319. package/assets/plugin/tools/modify-stop.js +0 -120
  320. package/assets/plugin/tools/modify-target.d.ts +0 -21
  321. package/assets/plugin/tools/modify-target.js +0 -110
  322. package/assets/plugin/tools/propose-learning.d.ts +0 -22
  323. package/assets/plugin/tools/propose-learning.js +0 -65
  324. package/assets/plugin/tools/query-review-outcomes.d.ts +0 -30
  325. package/assets/plugin/tools/query-review-outcomes.js +0 -64
  326. package/assets/plugin/tools/query-trades.d.ts +0 -21
  327. package/assets/plugin/tools/query-trades.js +0 -37
  328. package/assets/plugin/tools/record-position-reviews.d.ts +0 -38
  329. package/assets/plugin/tools/record-position-reviews.js +0 -147
  330. package/assets/plugin/tools/save-strategy.d.ts +0 -16
  331. package/assets/plugin/tools/save-strategy.js +0 -46
  332. package/assets/plugin/tools/scan-pairs.d.ts +0 -22
  333. package/assets/plugin/tools/scan-pairs.js +0 -234
  334. package/assets/plugin/tools/score-setup.d.ts +0 -31
  335. package/assets/plugin/tools/score-setup.js +0 -268
  336. package/assets/plugin/tools/set-bracket-requirement.d.ts +0 -18
  337. package/assets/plugin/tools/set-bracket-requirement.js +0 -81
  338. package/assets/plugin/tools/set-exchange-credentials.d.ts +0 -25
  339. package/assets/plugin/tools/set-exchange-credentials.js +0 -80
  340. package/assets/plugin/tools/set-trading-mode.d.ts +0 -26
  341. package/assets/plugin/tools/set-trading-mode.js +0 -135
  342. package/assets/plugin/tools/test-exchange-credentials.d.ts +0 -16
  343. package/assets/plugin/tools/test-exchange-credentials.js +0 -100
  344. package/assets/plugin/tools/toggle-strategy.d.ts +0 -8
  345. package/assets/plugin/tools/toggle-strategy.js +0 -15
  346. package/assets/plugin/trading-params-cache.d.ts +0 -26
  347. package/assets/plugin/trading-params-cache.js +0 -52
  348. package/assets/plugin/types.d.ts +0 -134
  349. package/assets/plugin/types.js +0 -7
  350. package/assets/plugin/util/plugin-paths.d.ts +0 -3
  351. package/assets/plugin/util/plugin-paths.js +0 -15
  352. package/assets/plugin/venues/hyperliquid/hl-balance.d.ts +0 -116
  353. package/assets/plugin/venues/hyperliquid/hl-balance.js +0 -145
  354. package/assets/plugin/venues/hyperliquid/hl-bracket-coordinator.d.ts +0 -123
  355. package/assets/plugin/venues/hyperliquid/hl-bracket-coordinator.js +0 -533
  356. package/assets/plugin/venues/hyperliquid/hl-brackets.d.ts +0 -102
  357. package/assets/plugin/venues/hyperliquid/hl-brackets.js +0 -172
  358. package/assets/plugin/venues/hyperliquid/hl-cloid.d.ts +0 -22
  359. package/assets/plugin/venues/hyperliquid/hl-cloid.js +0 -82
  360. package/assets/plugin/venues/hyperliquid/hl-info-cache.d.ts +0 -46
  361. package/assets/plugin/venues/hyperliquid/hl-info-cache.js +0 -125
  362. package/assets/plugin/venues/hyperliquid/hl-live-adapter.d.ts +0 -146
  363. package/assets/plugin/venues/hyperliquid/hl-live-adapter.js +0 -728
  364. package/assets/plugin/venues/hyperliquid/hl-precision.d.ts +0 -61
  365. package/assets/plugin/venues/hyperliquid/hl-precision.js +0 -176
  366. package/assets/plugin/venues/hyperliquid/hl-private.d.ts +0 -88
  367. package/assets/plugin/venues/hyperliquid/hl-private.js +0 -357
  368. package/assets/plugin/venues/hyperliquid/hl-public.d.ts +0 -79
  369. package/assets/plugin/venues/hyperliquid/hl-public.js +0 -436
  370. package/assets/plugin/venues/hyperliquid/hl-rate-gate.d.ts +0 -57
  371. package/assets/plugin/venues/hyperliquid/hl-rate-gate.js +0 -220
  372. package/assets/plugin/venues/hyperliquid/hl-user-stream.d.ts +0 -90
  373. package/assets/plugin/venues/hyperliquid/hl-user-stream.js +0 -220
  374. package/assets/plugin/venues/registry.d.ts +0 -38
  375. package/assets/plugin/venues/registry.js +0 -46
  376. package/assets/plugin/venues/symbols.d.ts +0 -43
  377. package/assets/plugin/venues/symbols.js +0 -107
  378. package/assets/plugin/wave9/live-account-capture.d.ts +0 -67
  379. package/assets/plugin/wave9/live-account-capture.js +0 -435
  380. package/assets/plugin/wave9/live-autonomous-protection.d.ts +0 -39
  381. package/assets/plugin/wave9/live-autonomous-protection.js +0 -112
  382. package/assets/plugin/wave9/live-durable-reconciliation-scheduler.d.ts +0 -33
  383. package/assets/plugin/wave9/live-durable-reconciliation-scheduler.js +0 -115
  384. package/assets/plugin/wave9/live-execution-ledger.d.ts +0 -107
  385. package/assets/plugin/wave9/live-execution-ledger.js +0 -498
  386. package/assets/plugin/wave9/live-position-confirmation.d.ts +0 -18
  387. package/assets/plugin/wave9/live-position-confirmation.js +0 -111
  388. package/assets/plugin/wave9/live-residual-protection.d.ts +0 -18
  389. package/assets/plugin/wave9/live-residual-protection.js +0 -250
  390. package/assets/plugin/wave9/live-startup-reconciliation.d.ts +0 -38
  391. package/assets/plugin/wave9/live-startup-reconciliation.js +0 -454
  392. package/assets/plugin/wave9/live-symbol-ownership.d.ts +0 -20
  393. package/assets/plugin/wave9/live-symbol-ownership.js +0 -132
  394. package/assets/plugin/wave9/paper-admission-guard.d.ts +0 -199
  395. package/assets/plugin/wave9/paper-admission-guard.js +0 -650
  396. package/assets/plugin/wave9/usdm-evidence-provider.d.ts +0 -42
  397. package/assets/plugin/wave9/usdm-evidence-provider.js +0 -133
@@ -1,66 +0,0 @@
1
- // Tool: get_my_recent_reviews — Phase 1 of the Agent Learning Loop.
2
- //
3
- // Returns, for each currently-open position (or just the requested symbol),
4
- // the agent's last N reviews + a verdict-streak counter + recent same-symbol
5
- // re-entry context. The agent calls this BEFORE record_position_reviews each
6
- // heartbeat so it can reference its prior reasoning instead of re-deriving in
7
- // isolation. Without this surface the journal is write-only — the agent files
8
- // reviews but never reads them, and "stale hold" remains structurally invisible
9
- // (the WIF 8.7h-underwater pattern from 2026-05-03).
10
- //
11
- // Resolves position UUIDs from the local PositionStateStore so callers don't
12
- // need to know about webappPositionId — the tool only returns context for
13
- // positions currently open on this plugin instance.
14
- //
15
- // See docs/AGENT_LEARNING_LOOP_PLAN.md §3 Phase 1.
16
- import { logger, formatError } from '../logger.js';
17
- import { normalizeBracketSymbol } from '../live/bracket-ledger.js';
18
- const TAG = 'get-my-recent-reviews';
19
- const DEFAULT_LIMIT = 3;
20
- const MAX_LIMIT = 10;
21
- export async function getMyRecentReviewsTool(args, deps) {
22
- if (!deps.decisionsClient || !deps.userId || !deps.stateStore) {
23
- // Mirrors record_position_reviews off-mode behaviour — tool callable, but
24
- // without ingest wiring there is nothing to read.
25
- return {
26
- ok: true,
27
- positions: [],
28
- note: 'Position-decisions ingest is not configured; no reviews available.',
29
- };
30
- }
31
- const limit = clampLimit(args.review_limit);
32
- const allEntries = deps.stateStore.getAll();
33
- const eligible = allEntries.filter((e) => typeof e.webappPositionId === 'string');
34
- const targets = args.symbol
35
- ? eligible.filter((e) => e.symbol === normalizeBracketSymbol(args.symbol))
36
- : eligible;
37
- if (targets.length === 0) {
38
- return {
39
- ok: true,
40
- positions: [],
41
- note: args.symbol
42
- ? `No open position for ${args.symbol} (or it has not yet upserted to webapp).`
43
- : 'No open positions with persisted webapp ids.',
44
- };
45
- }
46
- const positionIds = targets.map((e) => e.webappPositionId);
47
- let response;
48
- try {
49
- response = await deps.decisionsClient.getRecentReviews(deps.userId, positionIds, limit);
50
- }
51
- catch (err) {
52
- logger.warn(TAG, `getRecentReviews threw: ${formatError(err)}`);
53
- return { error: 'Failed to fetch reviews from webapp.' };
54
- }
55
- if (!response) {
56
- return { error: 'Webapp /api/internal/position-reviews/recent returned no result.' };
57
- }
58
- return { ok: true, positions: response.positions };
59
- }
60
- function clampLimit(raw) {
61
- if (raw === undefined || raw === null)
62
- return DEFAULT_LIMIT;
63
- if (!Number.isFinite(raw) || raw <= 0)
64
- return DEFAULT_LIMIT;
65
- return Math.min(Math.floor(raw), MAX_LIMIT);
66
- }
@@ -1,21 +0,0 @@
1
- import type { PublicMarketDataApi } from '../ccxt/public-market-data-api.js';
2
- export interface OrderbookResult {
3
- symbol: string;
4
- bids: [number, number][];
5
- asks: [number, number][];
6
- midPrice: number;
7
- spread: number;
8
- spreadBps: number;
9
- bidVolume: number;
10
- askVolume: number;
11
- imbalance: number;
12
- timestamp: string;
13
- }
14
- export declare function getOrderbookTool(args: {
15
- symbol: string;
16
- depth?: number;
17
- }, deps: {
18
- binanceApi: PublicMarketDataApi;
19
- }): Promise<OrderbookResult | {
20
- error: string;
21
- }>;
@@ -1,32 +0,0 @@
1
- // Tool: get_orderbook — fetches L2 order book depth from Binance.
2
- // Returns top N bids/asks with prices and quantities, plus computed
3
- // metrics: spread, mid-price, bid/ask volume, imbalance ratio.
4
- export async function getOrderbookTool(args, deps) {
5
- const { symbol, depth = 20 } = args;
6
- const limit = Math.min(Math.max(depth, 5), 100);
7
- const book = await deps.binanceApi.fetchOrderBook(symbol, limit);
8
- if (!book || book.bids.length === 0 || book.asks.length === 0) {
9
- return { error: `Failed to fetch order book for ${symbol}` };
10
- }
11
- const bestBid = book.bids[0][0];
12
- const bestAsk = book.asks[0][0];
13
- const midPrice = (bestBid + bestAsk) / 2;
14
- const spread = bestAsk - bestBid;
15
- const spreadBps = (spread / midPrice) * 10_000;
16
- const bidVolume = book.bids.reduce((sum, [, qty]) => sum + qty, 0);
17
- const askVolume = book.asks.reduce((sum, [, qty]) => sum + qty, 0);
18
- const totalVolume = bidVolume + askVolume;
19
- const imbalance = totalVolume > 0 ? (bidVolume - askVolume) / totalVolume : 0;
20
- return {
21
- symbol,
22
- bids: book.bids,
23
- asks: book.asks,
24
- midPrice: +midPrice.toFixed(2),
25
- spread: +spread.toFixed(2),
26
- spreadBps: +spreadBps.toFixed(2),
27
- bidVolume: +bidVolume.toFixed(4),
28
- askVolume: +askVolume.toFixed(4),
29
- imbalance: +imbalance.toFixed(4),
30
- timestamp: new Date().toISOString(),
31
- };
32
- }
@@ -1,7 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export declare function getPatternScanTool(args: {
3
- symbol: string;
4
- timeframe?: string;
5
- }, deps: IntelApiDeps): Promise<Record<string, unknown> | {
6
- error: string;
7
- }>;
@@ -1,8 +0,0 @@
1
- // Tool: get_pattern_scan — automated chart pattern recognition from OHLCV data.
2
- // Calls Intelligence API for swing points, trendlines, and 10 pattern types.
3
- import { fetchIntelApi, enc, resolveIntelSymbol } from './intel-api.js';
4
- export async function getPatternScanTool(args, deps) {
5
- const intelSymbol = resolveIntelSymbol(deps, args.symbol);
6
- const timeframe = args.timeframe ?? '1h';
7
- return fetchIntelApi(`/api/patterns/${enc(intelSymbol)}?timeframe=${enc(timeframe)}&lookback=200`, deps);
8
- }
@@ -1,6 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export declare function getRegimeTool(args: {
3
- symbol: string;
4
- }, deps: IntelApiDeps): Promise<Record<string, unknown> | {
5
- error: string;
6
- }>;
@@ -1,7 +0,0 @@
1
- // Tool: get_regime — fetches regime classification from the Intelligence API.
2
- // Returns current market regime (trend_up, trend_down, range_tight, etc.)
3
- // with confidence, probabilities, and contributing features.
4
- import { fetchIntelApi, enc, resolveIntelSymbol } from './intel-api.js';
5
- export async function getRegimeTool(args, deps) {
6
- return fetchIntelApi(`/api/regime/${enc(resolveIntelSymbol(deps, args.symbol))}`, deps);
7
- }
@@ -1,21 +0,0 @@
1
- import type { PositionDecisionsClient, RelevantLearning } from '../ingest/position-decisions-client.js';
2
- export interface GetRelevantLearningsArgs {
3
- applies_at: 'entry' | 'heartbeat' | 'close';
4
- setup_type?: string;
5
- regime?: string;
6
- verdict?: 'hold' | 'add_on' | 'close_recommended';
7
- }
8
- export interface GetRelevantLearningsDeps {
9
- decisionsClient?: PositionDecisionsClient;
10
- userId?: string;
11
- }
12
- export type GetRelevantLearningsResult = {
13
- ok: true;
14
- learnings: RelevantLearning[];
15
- total_candidates: number;
16
- returned_count: number;
17
- note?: string;
18
- } | {
19
- error: string;
20
- };
21
- export declare function getRelevantLearningsTool(args: GetRelevantLearningsArgs, deps: GetRelevantLearningsDeps): Promise<GetRelevantLearningsResult>;
@@ -1,65 +0,0 @@
1
- // Tool: get_relevant_learnings — Phase 4 of the Agent Learning Loop.
2
- //
3
- // Returns operator-curated `confirmed` learnings whose trigger_condition
4
- // matches the current decision context. The agent calls this at decision
5
- // time (before create_order, before record_position_reviews, before
6
- // close_position) to read the small set of curated rules that apply NOW.
7
- //
8
- // Output capped at 5 learnings per call (server-side enforced) — per
9
- // docs/AGENT_LEARNING_LOOP_PLAN.md §7 cognitive-load mitigation.
10
- //
11
- // Agency-preserving: this is a READ surface. The agent reads, the agent
12
- // decides. There is no validator that forces compliance. Per
13
- // memory/feedback_agent_agency_over_hardcoding.md, learnings inform,
14
- // they don't gate.
15
- import { logger, formatError } from '../logger.js';
16
- const TAG = 'get-relevant-learnings';
17
- const VALID_APPLIES_AT = new Set(['entry', 'heartbeat', 'close']);
18
- export async function getRelevantLearningsTool(args, deps) {
19
- if (!deps.decisionsClient || !deps.userId) {
20
- // Ingest not wired — return empty, callable. Same shape as
21
- // get_my_recent_reviews under the same condition.
22
- return {
23
- ok: true,
24
- learnings: [],
25
- total_candidates: 0,
26
- returned_count: 0,
27
- note: 'Position-decisions ingest is not configured; no learnings available.',
28
- };
29
- }
30
- if (!args.applies_at || !VALID_APPLIES_AT.has(args.applies_at)) {
31
- return {
32
- error: "applies_at is required and must be one of: 'entry', 'heartbeat', 'close'.",
33
- };
34
- }
35
- let response;
36
- try {
37
- response = await deps.decisionsClient.getRelevantLearnings(deps.userId, {
38
- appliesAt: args.applies_at,
39
- setupType: args.setup_type,
40
- regime: args.regime,
41
- verdict: args.verdict,
42
- });
43
- }
44
- catch (err) {
45
- logger.warn(TAG, `getRelevantLearnings threw: ${formatError(err)}`);
46
- return { error: 'Failed to fetch learnings from webapp.' };
47
- }
48
- if (!response) {
49
- // Network/server failure — degrade quietly to empty. The agent should
50
- // proceed; missing learnings is not a hard stop.
51
- return {
52
- ok: true,
53
- learnings: [],
54
- total_candidates: 0,
55
- returned_count: 0,
56
- note: 'Webapp /api/internal/learnings returned no result; proceeding without curated learnings.',
57
- };
58
- }
59
- return {
60
- ok: true,
61
- learnings: response.learnings,
62
- total_candidates: response.totalCandidates,
63
- returned_count: response.returnedCount,
64
- };
65
- }
@@ -1,6 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export declare function getRestingLiquidityTool(args: {
3
- symbol: string;
4
- }, deps: IntelApiDeps): Promise<Record<string, unknown> | {
5
- error: string;
6
- }>;
@@ -1,11 +0,0 @@
1
- // Tool: get_resting_liquidity — banded resting limit-order liquidity for a
2
- // symbol, sourced from the latest order_book_snapshots row. Returns USD
3
- // notional resting on each side at the 0.2 / 0.5 / 1.0 / 1.5 % bands plus
4
- // `coverage_pct` (the % range depth-20 actually reaches on this symbol).
5
- //
6
- // Returns `{ enabled: false, reason }` when the intel-side
7
- // `microstructure.bandedLiquidity` flag is off (= columns are NULL).
8
- import { fetchIntelApi, enc, resolveIntelSymbol } from './intel-api.js';
9
- export async function getRestingLiquidityTool(args, deps) {
10
- return fetchIntelApi(`/api/resting-liquidity/${enc(resolveIntelSymbol(deps, args.symbol))}`, deps);
11
- }
@@ -1,29 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- /** Matches simulator Position type */
3
- interface SimPosition {
4
- symbol: string;
5
- side: 'long' | 'short';
6
- entryPrice: number;
7
- quantity: number;
8
- }
9
- /** Matches simulator Wallet shape */
10
- interface SimWallet {
11
- [currency: string]: {
12
- total: number;
13
- available: number;
14
- locked: number;
15
- };
16
- }
17
- export interface RiskScenarioDeps {
18
- getPositions(): SimPosition[];
19
- getWallet(): SimWallet;
20
- getLastPrice(symbol: string): number | null;
21
- intelApiDeps: IntelApiDeps;
22
- }
23
- export declare function getRiskScenarioTool(args: {
24
- symbol: string;
25
- moves?: string;
26
- }, deps: RiskScenarioDeps): Promise<Record<string, unknown> | {
27
- error: string;
28
- }>;
29
- export {};
@@ -1,47 +0,0 @@
1
- // Tool: get_risk_scenario — stress test current positions against hypothetical price moves.
2
- // Fetches positions + balance from simulator state, then calls Intelligence API for scenario analysis.
3
- // Returns: per-scenario P&L, heat, drawdown zone, stops triggered, limits breached.
4
- import { enc } from './intel-api.js';
5
- import { fetchIntelApi, resolveIntelSymbol } from './intel-api.js';
6
- export async function getRiskScenarioTool(args, deps) {
7
- const positions = deps.getPositions();
8
- const wallet = deps.getWallet();
9
- const balance = wallet.USDT?.total ?? 0;
10
- if (balance <= 0) {
11
- return { error: 'No balance found. Cannot compute risk scenarios.' };
12
- }
13
- // Build positions for the API
14
- const apiPositions = positions.map(pos => {
15
- const currentPrice = deps.getLastPrice(pos.symbol) ?? pos.entryPrice;
16
- const side = pos.side === 'long' ? 'LONG' : 'SHORT';
17
- // Default stop: 2% from entry (no stop data in simulator positions)
18
- const stopPrice = side === 'LONG' ? pos.entryPrice * 0.98 : pos.entryPrice * 1.02;
19
- return {
20
- symbol: pos.symbol,
21
- side,
22
- entryPrice: pos.entryPrice,
23
- currentPrice,
24
- stopPrice,
25
- quantity: pos.quantity,
26
- notional: pos.quantity * currentPrice,
27
- };
28
- });
29
- // Parse custom moves if provided
30
- let scenarios;
31
- if (args.moves) {
32
- scenarios = args.moves.split(',').map(s => ({
33
- movePct: parseFloat(s.trim()),
34
- })).filter(s => !isNaN(s.movePct));
35
- }
36
- // Normalize symbol for intelligence API (BTC/USDT → BTCUSDT)
37
- const intelSymbol = resolveIntelSymbol(deps.intelApiDeps, args.symbol);
38
- const body = {
39
- positions: apiPositions,
40
- balance,
41
- ...(scenarios && scenarios.length > 0 && { scenarios }),
42
- };
43
- return fetchIntelApi(`/api/risk-scenario/${enc(intelSymbol)}`, deps.intelApiDeps, {
44
- method: 'POST',
45
- body,
46
- });
47
- }
@@ -1,51 +0,0 @@
1
- import type { ExchangeSimulator } from '../simulator/exchange-simulator.js';
2
- import type { ShadowTracker } from '../shadow/shadow-tracker.js';
3
- import type { IExchangeAdapter } from '../exchange-adapter.js';
4
- import type { TradingMode } from '../types.js';
5
- export interface RiskSummaryResult {
6
- tradingMode: TradingMode;
7
- totalEquity: number;
8
- availableBalance: number;
9
- lockedBalance: number;
10
- grossExposure: number;
11
- grossExposurePercent: number;
12
- netExposure: number;
13
- netExposurePercent: number;
14
- positionCount: number;
15
- unrealizedPnl: number;
16
- unrealizedPnlPercent: number;
17
- positions: Array<{
18
- symbol: string;
19
- side: 'long' | 'short';
20
- quantity: number;
21
- entryPrice: number;
22
- markPrice: number;
23
- notional: number;
24
- unrealizedPnl: number;
25
- portfolioPercent: number;
26
- }>;
27
- heatScore: number;
28
- heatLevel: 'low' | 'moderate' | 'elevated' | 'high' | 'critical';
29
- executionStats?: {
30
- totalTrades: number;
31
- avgSlippageBps: number;
32
- worstSlippageBps: number;
33
- totalFeesPaid: number;
34
- avgLatencyMs: number;
35
- };
36
- shadowMetrics?: {
37
- totalShadowTrades: number;
38
- avgDeltaBps: number;
39
- worstDeltaBps: number;
40
- tradingDays: number;
41
- readyForUpgrade: boolean;
42
- upgradeBlockers: string[];
43
- };
44
- timestamp: string;
45
- }
46
- export declare function getRiskSummaryTool(_args: Record<string, never>, deps: {
47
- simulator: ExchangeSimulator;
48
- tradingMode?: TradingMode;
49
- shadowTracker?: ShadowTracker | null;
50
- adapter?: IExchangeAdapter;
51
- }): Promise<RiskSummaryResult>;
@@ -1,118 +0,0 @@
1
- // Tool: get_risk_summary — current portfolio risk metrics
2
- // Returns exposure, drawdown, heat score, position count — everything
3
- // the agent needs for risk-aware decision making.
4
- import { getQuoteBalance, getQuoteWalletBalance } from '../balance-utils.js';
5
- export async function getRiskSummaryTool(_args, deps) {
6
- // In live modes, use real exchange data instead of simulator
7
- let balance;
8
- let positions;
9
- if (deps.adapter?.isLive) {
10
- [balance, positions] = await Promise.all([
11
- deps.adapter.getBalance(),
12
- deps.adapter.getPositions(),
13
- ]);
14
- }
15
- else {
16
- balance = deps.simulator.getBalance();
17
- positions = deps.simulator.getPositions();
18
- }
19
- // Wallet values — totalEquity uses BNFCR-aware reader for Binance Futures
20
- // multi-asset accounts; free/used stay map-based (those are derived
21
- // cross-margin numbers that don't compose the same way).
22
- const totalEquity = getQuoteWalletBalance(balance);
23
- const availableBalance = getQuoteBalance(balance.free);
24
- const lockedBalance = getQuoteBalance(balance.used);
25
- // Exposure calculations
26
- let grossExposure = 0;
27
- let longExposure = 0;
28
- let shortExposure = 0;
29
- let totalUnrealizedPnl = 0;
30
- const positionDetails = positions.map((pos) => {
31
- const notional = Math.abs(pos.notional);
32
- grossExposure += notional;
33
- if (pos.side === 'long')
34
- longExposure += notional;
35
- else
36
- shortExposure += notional;
37
- totalUnrealizedPnl += pos.unrealizedPnl;
38
- return {
39
- symbol: pos.symbol,
40
- side: pos.side,
41
- quantity: pos.contracts,
42
- entryPrice: +pos.entryPrice.toFixed(2),
43
- markPrice: +pos.markPrice.toFixed(2),
44
- notional: +notional.toFixed(2),
45
- unrealizedPnl: +pos.unrealizedPnl.toFixed(2),
46
- portfolioPercent: totalEquity > 0 ? +((notional / totalEquity) * 100).toFixed(1) : 0,
47
- };
48
- });
49
- const netExposure = longExposure - shortExposure;
50
- const grossExposurePercent = totalEquity > 0 ? (grossExposure / totalEquity) * 100 : 0;
51
- const netExposurePercent = totalEquity > 0 ? (netExposure / totalEquity) * 100 : 0;
52
- const unrealizedPnlPercent = totalEquity > 0 ? (totalUnrealizedPnl / totalEquity) * 100 : 0;
53
- // Heat score: 0-100 composite
54
- // Components: gross exposure (40%), unrealized loss (30%), position concentration (30%)
55
- const exposureHeat = Math.min(grossExposurePercent / 100, 1) * 40; // 100% exposure = 40 heat
56
- const lossHeat = totalUnrealizedPnl < 0
57
- ? Math.min(Math.abs(unrealizedPnlPercent) / 5, 1) * 30 // 5% loss = 30 heat
58
- : 0;
59
- const concentrationHeat = positions.length > 0
60
- ? Math.min(positions.length / 5, 1) * 30 // 5+ positions = 30 heat
61
- : 0;
62
- const heatScore = Math.round(exposureHeat + lossHeat + concentrationHeat);
63
- let heatLevel;
64
- if (heatScore >= 80)
65
- heatLevel = 'critical';
66
- else if (heatScore >= 60)
67
- heatLevel = 'high';
68
- else if (heatScore >= 40)
69
- heatLevel = 'elevated';
70
- else if (heatScore >= 20)
71
- heatLevel = 'moderate';
72
- else
73
- heatLevel = 'low';
74
- // Execution quality stats (Phase 9a)
75
- const execStats = deps.simulator.getExecutionStats();
76
- const executionStats = execStats && execStats.totalTrades > 0
77
- ? {
78
- totalTrades: execStats.totalTrades,
79
- avgSlippageBps: +execStats.avgSlippageBps.toFixed(2),
80
- worstSlippageBps: +execStats.worstSlippageBps.toFixed(2),
81
- totalFeesPaid: +execStats.totalFeesPaid.toFixed(2),
82
- avgLatencyMs: +execStats.avgLatencyMs.toFixed(0),
83
- }
84
- : undefined;
85
- // Shadow metrics (Phase 9b)
86
- let shadowMetrics;
87
- if (deps.shadowTracker) {
88
- const sm = deps.shadowTracker.getMetrics();
89
- const upgrade = deps.shadowTracker.isReadyForUpgrade();
90
- shadowMetrics = {
91
- totalShadowTrades: sm.totalShadowTrades,
92
- avgDeltaBps: +sm.avgDeltaBps.toFixed(2),
93
- worstDeltaBps: +sm.worstDeltaBps.toFixed(2),
94
- tradingDays: sm.tradingDays,
95
- readyForUpgrade: upgrade.ready,
96
- upgradeBlockers: upgrade.reasons,
97
- };
98
- }
99
- return {
100
- tradingMode: deps.tradingMode ?? 'PAPER',
101
- totalEquity: +totalEquity.toFixed(2),
102
- availableBalance: +availableBalance.toFixed(2),
103
- lockedBalance: +lockedBalance.toFixed(2),
104
- grossExposure: +grossExposure.toFixed(2),
105
- grossExposurePercent: +grossExposurePercent.toFixed(1),
106
- netExposure: +netExposure.toFixed(2),
107
- netExposurePercent: +netExposurePercent.toFixed(1),
108
- positionCount: positions.length,
109
- unrealizedPnl: +totalUnrealizedPnl.toFixed(2),
110
- unrealizedPnlPercent: +unrealizedPnlPercent.toFixed(2),
111
- positions: positionDetails,
112
- heatScore,
113
- heatLevel,
114
- executionStats,
115
- shadowMetrics,
116
- timestamp: new Date().toISOString(),
117
- };
118
- }
@@ -1,4 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export declare function getSentimentTool(_args: Record<string, never>, deps: IntelApiDeps): Promise<Record<string, unknown> | {
3
- error: string;
4
- }>;
@@ -1,6 +0,0 @@
1
- // Tool: get_sentiment — free Fear & Greed Index + BTC dominance + global market data.
2
- // No Pro subscription required. Calls free public APIs via the intelligence service.
3
- import { fetchIntelApi } from './intel-api.js';
4
- export async function getSentimentTool(_args, deps) {
5
- return fetchIntelApi('/api/sentiment', deps);
6
- }
@@ -1,7 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export declare function getSessionReviewTool(args: {
3
- symbol: string;
4
- hours?: number;
5
- }, deps: IntelApiDeps): Promise<Record<string, unknown> | {
6
- error: string;
7
- }>;
@@ -1,8 +0,0 @@
1
- // Tool: get_session_review — automated end-of-session performance summary.
2
- // Calls Intelligence API for trade stats, setup/regime breakdown, lessons, and session-over-session comparison.
3
- import { fetchIntelApi, enc, resolveIntelSymbol } from './intel-api.js';
4
- export async function getSessionReviewTool(args, deps) {
5
- const intelSymbol = resolveIntelSymbol(deps, args.symbol);
6
- const hours = args.hours ?? 24;
7
- return fetchIntelApi(`/api/session-review/${enc(intelSymbol)}?hours=${hours}`, deps);
8
- }
@@ -1,7 +0,0 @@
1
- import type { IntelApiDeps } from './intel-api.js';
2
- export interface GetSetupDetailArgs {
3
- symbol: string;
4
- }
5
- export declare function getSetupDetailTool(args: GetSetupDetailArgs, deps: IntelApiDeps): Promise<Record<string, unknown> | {
6
- error: string;
7
- }>;