@senpi/trading-runtime 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (535) hide show
  1. package/README.md +117 -0
  2. package/dist/actions/decision-engine.d.ts +28 -0
  3. package/dist/actions/decision-engine.d.ts.map +1 -0
  4. package/dist/actions/decision-engine.js +65 -0
  5. package/dist/actions/decision-engine.js.map +1 -0
  6. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts +12 -0
  7. package/dist/actions/llm-decision/anthropic-llm-decision.d.ts.map +1 -0
  8. package/dist/actions/llm-decision/anthropic-llm-decision.js +74 -0
  9. package/dist/actions/llm-decision/anthropic-llm-decision.js.map +1 -0
  10. package/dist/actions/llm-decision/factory.d.ts +17 -0
  11. package/dist/actions/llm-decision/factory.d.ts.map +1 -0
  12. package/dist/actions/llm-decision/factory.js +29 -0
  13. package/dist/actions/llm-decision/factory.js.map +1 -0
  14. package/dist/actions/llm-decision/index.d.ts +8 -0
  15. package/dist/actions/llm-decision/index.d.ts.map +1 -0
  16. package/dist/actions/llm-decision/index.js +5 -0
  17. package/dist/actions/llm-decision/index.js.map +1 -0
  18. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts +14 -0
  19. package/dist/actions/llm-decision/openclaw-llm-decision.d.ts.map +1 -0
  20. package/dist/actions/llm-decision/openclaw-llm-decision.js +58 -0
  21. package/dist/actions/llm-decision/openclaw-llm-decision.js.map +1 -0
  22. package/dist/actions/llm-decision/shared.d.ts +41 -0
  23. package/dist/actions/llm-decision/shared.d.ts.map +1 -0
  24. package/dist/actions/llm-decision/shared.js +117 -0
  25. package/dist/actions/llm-decision/shared.js.map +1 -0
  26. package/dist/actions/open-position/open-position.action.d.ts +15 -0
  27. package/dist/actions/open-position/open-position.action.d.ts.map +1 -0
  28. package/dist/actions/open-position/open-position.action.js +302 -0
  29. package/dist/actions/open-position/open-position.action.js.map +1 -0
  30. package/dist/actions/types.d.ts +123 -0
  31. package/dist/actions/types.d.ts.map +1 -0
  32. package/dist/actions/types.js +3 -0
  33. package/dist/actions/types.js.map +1 -0
  34. package/dist/cli/guide-commands.d.ts +26 -0
  35. package/dist/cli/guide-commands.d.ts.map +1 -0
  36. package/dist/cli/guide-commands.js +332 -0
  37. package/dist/cli/guide-commands.js.map +1 -0
  38. package/dist/cli/senpi-commands.d.ts +22 -0
  39. package/dist/cli/senpi-commands.d.ts.map +1 -0
  40. package/dist/cli/senpi-commands.js +138 -0
  41. package/dist/cli/senpi-commands.js.map +1 -0
  42. package/dist/constants/dsl/index.d.ts +39 -0
  43. package/dist/constants/dsl/index.d.ts.map +1 -0
  44. package/dist/constants/dsl/index.js +39 -0
  45. package/dist/constants/dsl/index.js.map +1 -0
  46. package/dist/context/context-builder.d.ts +14 -0
  47. package/dist/context/context-builder.d.ts.map +1 -0
  48. package/dist/context/context-builder.js +36 -0
  49. package/dist/context/context-builder.js.map +1 -0
  50. package/dist/context/index.d.ts +5 -0
  51. package/dist/context/index.d.ts.map +1 -0
  52. package/dist/context/index.js +5 -0
  53. package/dist/context/index.js.map +1 -0
  54. package/dist/context/interpolate.d.ts +6 -0
  55. package/dist/context/interpolate.d.ts.map +1 -0
  56. package/dist/context/interpolate.js +15 -0
  57. package/dist/context/interpolate.js.map +1 -0
  58. package/dist/context/providers/asset-trend.provider.d.ts +42 -0
  59. package/dist/context/providers/asset-trend.provider.d.ts.map +1 -0
  60. package/dist/context/providers/asset-trend.provider.js +94 -0
  61. package/dist/context/providers/asset-trend.provider.js.map +1 -0
  62. package/dist/context/providers/index.d.ts +5 -0
  63. package/dist/context/providers/index.d.ts.map +1 -0
  64. package/dist/context/providers/index.js +5 -0
  65. package/dist/context/providers/index.js.map +1 -0
  66. package/dist/context/providers/regime.provider.d.ts +14 -0
  67. package/dist/context/providers/regime.provider.d.ts.map +1 -0
  68. package/dist/context/providers/regime.provider.js +29 -0
  69. package/dist/context/providers/regime.provider.js.map +1 -0
  70. package/dist/context/providers/signal.provider.d.ts +11 -0
  71. package/dist/context/providers/signal.provider.d.ts.map +1 -0
  72. package/dist/context/providers/signal.provider.js +27 -0
  73. package/dist/context/providers/signal.provider.js.map +1 -0
  74. package/dist/context/providers/strategy.provider.d.ts +14 -0
  75. package/dist/context/providers/strategy.provider.d.ts.map +1 -0
  76. package/dist/context/providers/strategy.provider.js +68 -0
  77. package/dist/context/providers/strategy.provider.js.map +1 -0
  78. package/dist/context/types.d.ts +30 -0
  79. package/dist/context/types.d.ts.map +1 -0
  80. package/dist/context/types.js +2 -0
  81. package/dist/context/types.js.map +1 -0
  82. package/dist/dsl/config/index.d.ts +43 -0
  83. package/dist/dsl/config/index.d.ts.map +1 -0
  84. package/dist/dsl/config/index.js +108 -0
  85. package/dist/dsl/config/index.js.map +1 -0
  86. package/dist/dsl/constants/index.d.ts +3 -0
  87. package/dist/dsl/constants/index.d.ts.map +1 -0
  88. package/dist/dsl/constants/index.js +3 -0
  89. package/dist/dsl/constants/index.js.map +1 -0
  90. package/dist/dsl/engine/index.d.ts +7 -0
  91. package/dist/dsl/engine/index.d.ts.map +1 -0
  92. package/dist/dsl/engine/index.js +123 -0
  93. package/dist/dsl/engine/index.js.map +1 -0
  94. package/dist/dsl/events/bus-types.d.ts +7 -0
  95. package/dist/dsl/events/bus-types.d.ts.map +1 -0
  96. package/dist/dsl/events/bus-types.js +6 -0
  97. package/dist/dsl/events/bus-types.js.map +1 -0
  98. package/dist/dsl/events/guards.d.ts +17 -0
  99. package/dist/dsl/events/guards.d.ts.map +1 -0
  100. package/dist/dsl/events/guards.js +94 -0
  101. package/dist/dsl/events/guards.js.map +1 -0
  102. package/dist/dsl/events/handlers.d.ts +15 -0
  103. package/dist/dsl/events/handlers.d.ts.map +1 -0
  104. package/dist/dsl/events/handlers.js +229 -0
  105. package/dist/dsl/events/handlers.js.map +1 -0
  106. package/dist/dsl/events/index.d.ts +4 -0
  107. package/dist/dsl/events/index.d.ts.map +1 -0
  108. package/dist/dsl/events/index.js +4 -0
  109. package/dist/dsl/events/index.js.map +1 -0
  110. package/dist/dsl/index.d.ts +13 -0
  111. package/dist/dsl/index.d.ts.map +1 -0
  112. package/dist/dsl/index.js +35 -0
  113. package/dist/dsl/index.js.map +1 -0
  114. package/dist/dsl/monitor/index.d.ts +18 -0
  115. package/dist/dsl/monitor/index.d.ts.map +1 -0
  116. package/dist/dsl/monitor/index.js +296 -0
  117. package/dist/dsl/monitor/index.js.map +1 -0
  118. package/dist/dsl/plugin/index.d.ts +29 -0
  119. package/dist/dsl/plugin/index.d.ts.map +1 -0
  120. package/dist/dsl/plugin/index.js +85 -0
  121. package/dist/dsl/plugin/index.js.map +1 -0
  122. package/dist/dsl/types/index.d.ts +3 -0
  123. package/dist/dsl/types/index.d.ts.map +1 -0
  124. package/dist/dsl/types/index.js +3 -0
  125. package/dist/dsl/types/index.js.map +1 -0
  126. package/dist/health/index.d.ts +9 -0
  127. package/dist/health/index.d.ts.map +1 -0
  128. package/dist/health/index.js +9 -0
  129. package/dist/health/index.js.map +1 -0
  130. package/dist/index.d.ts +94 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +218 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/risk/index.d.ts +9 -0
  135. package/dist/risk/index.d.ts.map +1 -0
  136. package/dist/risk/index.js +9 -0
  137. package/dist/risk/index.js.map +1 -0
  138. package/dist/runtime/action-registry.d.ts +12 -0
  139. package/dist/runtime/action-registry.d.ts.map +1 -0
  140. package/dist/runtime/action-registry.js +18 -0
  141. package/dist/runtime/action-registry.js.map +1 -0
  142. package/dist/runtime/build-action-scan-payload.d.ts +20 -0
  143. package/dist/runtime/build-action-scan-payload.d.ts.map +1 -0
  144. package/dist/runtime/build-action-scan-payload.js +52 -0
  145. package/dist/runtime/build-action-scan-payload.js.map +1 -0
  146. package/dist/runtime/bus.d.ts +6 -0
  147. package/dist/runtime/bus.d.ts.map +1 -0
  148. package/dist/runtime/bus.js +19 -0
  149. package/dist/runtime/bus.js.map +1 -0
  150. package/dist/runtime/create-action-context.d.ts +34 -0
  151. package/dist/runtime/create-action-context.d.ts.map +1 -0
  152. package/dist/runtime/create-action-context.js +22 -0
  153. package/dist/runtime/create-action-context.js.map +1 -0
  154. package/dist/runtime/create-actions.d.ts +30 -0
  155. package/dist/runtime/create-actions.d.ts.map +1 -0
  156. package/dist/runtime/create-actions.js +78 -0
  157. package/dist/runtime/create-actions.js.map +1 -0
  158. package/dist/runtime/create-runtime-context.d.ts +33 -0
  159. package/dist/runtime/create-runtime-context.d.ts.map +1 -0
  160. package/dist/runtime/create-runtime-context.js +32 -0
  161. package/dist/runtime/create-runtime-context.js.map +1 -0
  162. package/dist/runtime/create-scanner-module.d.ts +14 -0
  163. package/dist/runtime/create-scanner-module.d.ts.map +1 -0
  164. package/dist/runtime/create-scanner-module.js +26 -0
  165. package/dist/runtime/create-scanner-module.js.map +1 -0
  166. package/dist/runtime/create-scanner-providers-for-run.d.ts +20 -0
  167. package/dist/runtime/create-scanner-providers-for-run.d.ts.map +1 -0
  168. package/dist/runtime/create-scanner-providers-for-run.js +34 -0
  169. package/dist/runtime/create-scanner-providers-for-run.js.map +1 -0
  170. package/dist/runtime/default-state-dir.d.ts +10 -0
  171. package/dist/runtime/default-state-dir.d.ts.map +1 -0
  172. package/dist/runtime/default-state-dir.js +22 -0
  173. package/dist/runtime/default-state-dir.js.map +1 -0
  174. package/dist/runtime/env-resolve.d.ts +17 -0
  175. package/dist/runtime/env-resolve.d.ts.map +1 -0
  176. package/dist/runtime/env-resolve.js +45 -0
  177. package/dist/runtime/env-resolve.js.map +1 -0
  178. package/dist/runtime/hook-system.d.ts +7 -0
  179. package/dist/runtime/hook-system.d.ts.map +1 -0
  180. package/dist/runtime/hook-system.js +16 -0
  181. package/dist/runtime/hook-system.js.map +1 -0
  182. package/dist/runtime/index.d.ts +37 -0
  183. package/dist/runtime/index.d.ts.map +1 -0
  184. package/dist/runtime/index.js +26 -0
  185. package/dist/runtime/index.js.map +1 -0
  186. package/dist/runtime/load-trading-strategy.d.ts +18 -0
  187. package/dist/runtime/load-trading-strategy.d.ts.map +1 -0
  188. package/dist/runtime/load-trading-strategy.js +51 -0
  189. package/dist/runtime/load-trading-strategy.js.map +1 -0
  190. package/dist/runtime/map-exit-config.d.ts +12 -0
  191. package/dist/runtime/map-exit-config.d.ts.map +1 -0
  192. package/dist/runtime/map-exit-config.js +89 -0
  193. package/dist/runtime/map-exit-config.js.map +1 -0
  194. package/dist/runtime/map-strategies-registration.d.ts +12 -0
  195. package/dist/runtime/map-strategies-registration.d.ts.map +1 -0
  196. package/dist/runtime/map-strategies-registration.js +52 -0
  197. package/dist/runtime/map-strategies-registration.js.map +1 -0
  198. package/dist/runtime/map-strategies.d.ts +12 -0
  199. package/dist/runtime/map-strategies.d.ts.map +1 -0
  200. package/dist/runtime/map-strategies.js +46 -0
  201. package/dist/runtime/map-strategies.js.map +1 -0
  202. package/dist/runtime/notifications.d.ts +10 -0
  203. package/dist/runtime/notifications.d.ts.map +1 -0
  204. package/dist/runtime/notifications.js +14 -0
  205. package/dist/runtime/notifications.js.map +1 -0
  206. package/dist/runtime/parse-interval.d.ts +11 -0
  207. package/dist/runtime/parse-interval.d.ts.map +1 -0
  208. package/dist/runtime/parse-interval.js +35 -0
  209. package/dist/runtime/parse-interval.js.map +1 -0
  210. package/dist/runtime/reconcile-state.d.ts +25 -0
  211. package/dist/runtime/reconcile-state.d.ts.map +1 -0
  212. package/dist/runtime/reconcile-state.js +114 -0
  213. package/dist/runtime/reconcile-state.js.map +1 -0
  214. package/dist/runtime/risk-guard.d.ts +6 -0
  215. package/dist/runtime/risk-guard.d.ts.map +1 -0
  216. package/dist/runtime/risk-guard.js +14 -0
  217. package/dist/runtime/risk-guard.js.map +1 -0
  218. package/dist/runtime/run.d.ts +21 -0
  219. package/dist/runtime/run.d.ts.map +1 -0
  220. package/dist/runtime/run.js +43 -0
  221. package/dist/runtime/run.js.map +1 -0
  222. package/dist/runtime/runtime.d.ts +40 -0
  223. package/dist/runtime/runtime.d.ts.map +1 -0
  224. package/dist/runtime/runtime.js +249 -0
  225. package/dist/runtime/runtime.js.map +1 -0
  226. package/dist/runtime/scanner-registry.d.ts +22 -0
  227. package/dist/runtime/scanner-registry.d.ts.map +1 -0
  228. package/dist/runtime/scanner-registry.js +72 -0
  229. package/dist/runtime/scanner-registry.js.map +1 -0
  230. package/dist/runtime/strategy-registry.d.ts +49 -0
  231. package/dist/runtime/strategy-registry.d.ts.map +1 -0
  232. package/dist/runtime/strategy-registry.js +150 -0
  233. package/dist/runtime/strategy-registry.js.map +1 -0
  234. package/dist/runtime/trading-strategy-config.d.ts +6 -0
  235. package/dist/runtime/trading-strategy-config.d.ts.map +1 -0
  236. package/dist/runtime/trading-strategy-config.js +5 -0
  237. package/dist/runtime/trading-strategy-config.js.map +1 -0
  238. package/dist/runtime/trading-strategy-schema.d.ts +19757 -0
  239. package/dist/runtime/trading-strategy-schema.d.ts.map +1 -0
  240. package/dist/runtime/trading-strategy-schema.js +107 -0
  241. package/dist/runtime/trading-strategy-schema.js.map +1 -0
  242. package/dist/scanners/__tests__/fixtures/index.d.ts +3 -0
  243. package/dist/scanners/__tests__/fixtures/index.d.ts.map +1 -0
  244. package/dist/scanners/__tests__/fixtures/index.js +3 -0
  245. package/dist/scanners/__tests__/fixtures/index.js.map +1 -0
  246. package/dist/scanners/__tests__/fixtures/scan-results.d.ts +23 -0
  247. package/dist/scanners/__tests__/fixtures/scan-results.d.ts.map +1 -0
  248. package/dist/scanners/__tests__/fixtures/scan-results.js +128 -0
  249. package/dist/scanners/__tests__/fixtures/scan-results.js.map +1 -0
  250. package/dist/scanners/__tests__/fixtures/signals.d.ts +18 -0
  251. package/dist/scanners/__tests__/fixtures/signals.d.ts.map +1 -0
  252. package/dist/scanners/__tests__/fixtures/signals.js +84 -0
  253. package/dist/scanners/__tests__/fixtures/signals.js.map +1 -0
  254. package/dist/scanners/__tests__/test-helpers.d.ts +4 -0
  255. package/dist/scanners/__tests__/test-helpers.d.ts.map +1 -0
  256. package/dist/scanners/__tests__/test-helpers.js +23 -0
  257. package/dist/scanners/__tests__/test-helpers.js.map +1 -0
  258. package/dist/scanners/artifacts.d.ts +119 -0
  259. package/dist/scanners/artifacts.d.ts.map +1 -0
  260. package/dist/scanners/artifacts.js +72 -0
  261. package/dist/scanners/artifacts.js.map +1 -0
  262. package/dist/scanners/create-scanner.d.ts +13 -0
  263. package/dist/scanners/create-scanner.d.ts.map +1 -0
  264. package/dist/scanners/create-scanner.js +11 -0
  265. package/dist/scanners/create-scanner.js.map +1 -0
  266. package/dist/scanners/engine/config-validator.d.ts +7 -0
  267. package/dist/scanners/engine/config-validator.d.ts.map +1 -0
  268. package/dist/scanners/engine/config-validator.js +16 -0
  269. package/dist/scanners/engine/config-validator.js.map +1 -0
  270. package/dist/scanners/engine/data-providers.d.ts +43 -0
  271. package/dist/scanners/engine/data-providers.d.ts.map +1 -0
  272. package/dist/scanners/engine/data-providers.js +8 -0
  273. package/dist/scanners/engine/data-providers.js.map +1 -0
  274. package/dist/scanners/engine/engine.d.ts +76 -0
  275. package/dist/scanners/engine/engine.d.ts.map +1 -0
  276. package/dist/scanners/engine/engine.js +399 -0
  277. package/dist/scanners/engine/engine.js.map +1 -0
  278. package/dist/scanners/engine/index.d.ts +9 -0
  279. package/dist/scanners/engine/index.d.ts.map +1 -0
  280. package/dist/scanners/engine/index.js +7 -0
  281. package/dist/scanners/engine/index.js.map +1 -0
  282. package/dist/scanners/engine/input-resolver.d.ts +21 -0
  283. package/dist/scanners/engine/input-resolver.d.ts.map +1 -0
  284. package/dist/scanners/engine/input-resolver.js +140 -0
  285. package/dist/scanners/engine/input-resolver.js.map +1 -0
  286. package/dist/scanners/engine/lifecycle.d.ts +21 -0
  287. package/dist/scanners/engine/lifecycle.d.ts.map +1 -0
  288. package/dist/scanners/engine/lifecycle.js +2 -0
  289. package/dist/scanners/engine/lifecycle.js.map +1 -0
  290. package/dist/scanners/engine/result-builder.d.ts +30 -0
  291. package/dist/scanners/engine/result-builder.d.ts.map +1 -0
  292. package/dist/scanners/engine/result-builder.js +129 -0
  293. package/dist/scanners/engine/result-builder.js.map +1 -0
  294. package/dist/scanners/engine/strategy-registry.d.ts +45 -0
  295. package/dist/scanners/engine/strategy-registry.d.ts.map +1 -0
  296. package/dist/scanners/engine/strategy-registry.js +93 -0
  297. package/dist/scanners/engine/strategy-registry.js.map +1 -0
  298. package/dist/scanners/events.d.ts +41 -0
  299. package/dist/scanners/events.d.ts.map +1 -0
  300. package/dist/scanners/events.js +33 -0
  301. package/dist/scanners/events.js.map +1 -0
  302. package/dist/scanners/implementations/emerging-movers.d.ts +212 -0
  303. package/dist/scanners/implementations/emerging-movers.d.ts.map +1 -0
  304. package/dist/scanners/implementations/emerging-movers.js +702 -0
  305. package/dist/scanners/implementations/emerging-movers.js.map +1 -0
  306. package/dist/scanners/implementations/index.d.ts +8 -0
  307. package/dist/scanners/implementations/index.d.ts.map +1 -0
  308. package/dist/scanners/implementations/index.js +8 -0
  309. package/dist/scanners/implementations/index.js.map +1 -0
  310. package/dist/scanners/implementations/indicators.d.ts +40 -0
  311. package/dist/scanners/implementations/indicators.d.ts.map +1 -0
  312. package/dist/scanners/implementations/indicators.js +114 -0
  313. package/dist/scanners/implementations/indicators.js.map +1 -0
  314. package/dist/scanners/implementations/market-regime.d.ts +52 -0
  315. package/dist/scanners/implementations/market-regime.d.ts.map +1 -0
  316. package/dist/scanners/implementations/market-regime.js +201 -0
  317. package/dist/scanners/implementations/market-regime.js.map +1 -0
  318. package/dist/scanners/implementations/momentum.d.ts +21 -0
  319. package/dist/scanners/implementations/momentum.d.ts.map +1 -0
  320. package/dist/scanners/implementations/momentum.js +128 -0
  321. package/dist/scanners/implementations/momentum.js.map +1 -0
  322. package/dist/scanners/implementations/oi-tracker.d.ts +13 -0
  323. package/dist/scanners/implementations/oi-tracker.d.ts.map +1 -0
  324. package/dist/scanners/implementations/oi-tracker.js +67 -0
  325. package/dist/scanners/implementations/oi-tracker.js.map +1 -0
  326. package/dist/scanners/implementations/opportunity.d.ts +104 -0
  327. package/dist/scanners/implementations/opportunity.d.ts.map +1 -0
  328. package/dist/scanners/implementations/opportunity.js +441 -0
  329. package/dist/scanners/implementations/opportunity.js.map +1 -0
  330. package/dist/scanners/implementations/prescreener.d.ts +20 -0
  331. package/dist/scanners/implementations/prescreener.d.ts.map +1 -0
  332. package/dist/scanners/implementations/prescreener.js +97 -0
  333. package/dist/scanners/implementations/prescreener.js.map +1 -0
  334. package/dist/scanners/implementations/sm-flip.d.ts +43 -0
  335. package/dist/scanners/implementations/sm-flip.d.ts.map +1 -0
  336. package/dist/scanners/implementations/sm-flip.js +200 -0
  337. package/dist/scanners/implementations/sm-flip.js.map +1 -0
  338. package/dist/scanners/index.d.ts +24 -0
  339. package/dist/scanners/index.d.ts.map +1 -0
  340. package/dist/scanners/index.js +17 -0
  341. package/dist/scanners/index.js.map +1 -0
  342. package/dist/scanners/input-descriptors.d.ts +49 -0
  343. package/dist/scanners/input-descriptors.d.ts.map +1 -0
  344. package/dist/scanners/input-descriptors.js +35 -0
  345. package/dist/scanners/input-descriptors.js.map +1 -0
  346. package/dist/scanners/protocol/context.d.ts +71 -0
  347. package/dist/scanners/protocol/context.d.ts.map +1 -0
  348. package/dist/scanners/protocol/context.js +2 -0
  349. package/dist/scanners/protocol/context.js.map +1 -0
  350. package/dist/scanners/protocol/hooks.d.ts +18 -0
  351. package/dist/scanners/protocol/hooks.d.ts.map +1 -0
  352. package/dist/scanners/protocol/hooks.js +12 -0
  353. package/dist/scanners/protocol/hooks.js.map +1 -0
  354. package/dist/scanners/protocol/index.d.ts +5 -0
  355. package/dist/scanners/protocol/index.d.ts.map +1 -0
  356. package/dist/scanners/protocol/index.js +2 -0
  357. package/dist/scanners/protocol/index.js.map +1 -0
  358. package/dist/scanners/protocol/scanner.d.ts +47 -0
  359. package/dist/scanners/protocol/scanner.d.ts.map +1 -0
  360. package/dist/scanners/protocol/scanner.js +2 -0
  361. package/dist/scanners/protocol/scanner.js.map +1 -0
  362. package/dist/scanners/providers/adapter.d.ts +23 -0
  363. package/dist/scanners/providers/adapter.d.ts.map +1 -0
  364. package/dist/scanners/providers/adapter.js +227 -0
  365. package/dist/scanners/providers/adapter.js.map +1 -0
  366. package/dist/scanners/providers/cache.d.ts +20 -0
  367. package/dist/scanners/providers/cache.d.ts.map +1 -0
  368. package/dist/scanners/providers/cache.js +61 -0
  369. package/dist/scanners/providers/cache.js.map +1 -0
  370. package/dist/scanners/providers/client.d.ts +53 -0
  371. package/dist/scanners/providers/client.d.ts.map +1 -0
  372. package/dist/scanners/providers/client.js +174 -0
  373. package/dist/scanners/providers/client.js.map +1 -0
  374. package/dist/scanners/providers/factory.d.ts +42 -0
  375. package/dist/scanners/providers/factory.d.ts.map +1 -0
  376. package/dist/scanners/providers/factory.js +156 -0
  377. package/dist/scanners/providers/factory.js.map +1 -0
  378. package/dist/scanners/providers/types.d.ts +61 -0
  379. package/dist/scanners/providers/types.d.ts.map +1 -0
  380. package/dist/scanners/providers/types.js +6 -0
  381. package/dist/scanners/providers/types.js.map +1 -0
  382. package/dist/scanners/runtime-module.d.ts +54 -0
  383. package/dist/scanners/runtime-module.d.ts.map +1 -0
  384. package/dist/scanners/runtime-module.js +94 -0
  385. package/dist/scanners/runtime-module.js.map +1 -0
  386. package/dist/scanners/scanner-definition.d.ts +58 -0
  387. package/dist/scanners/scanner-definition.d.ts.map +1 -0
  388. package/dist/scanners/scanner-definition.js +19 -0
  389. package/dist/scanners/scanner-definition.js.map +1 -0
  390. package/dist/scanners/schema-utils.d.ts +6 -0
  391. package/dist/scanners/schema-utils.d.ts.map +1 -0
  392. package/dist/scanners/schema-utils.js +14 -0
  393. package/dist/scanners/schema-utils.js.map +1 -0
  394. package/dist/scanners/score-utils.d.ts +19 -0
  395. package/dist/scanners/score-utils.d.ts.map +1 -0
  396. package/dist/scanners/score-utils.js +47 -0
  397. package/dist/scanners/score-utils.js.map +1 -0
  398. package/dist/scanners/store/fs-utils.d.ts +12 -0
  399. package/dist/scanners/store/fs-utils.d.ts.map +1 -0
  400. package/dist/scanners/store/fs-utils.js +47 -0
  401. package/dist/scanners/store/fs-utils.js.map +1 -0
  402. package/dist/scanners/store/index.d.ts +5 -0
  403. package/dist/scanners/store/index.d.ts.map +1 -0
  404. package/dist/scanners/store/index.js +5 -0
  405. package/dist/scanners/store/index.js.map +1 -0
  406. package/dist/scanners/store/runtime-store.d.ts +50 -0
  407. package/dist/scanners/store/runtime-store.d.ts.map +1 -0
  408. package/dist/scanners/store/runtime-store.js +91 -0
  409. package/dist/scanners/store/runtime-store.js.map +1 -0
  410. package/dist/scanners/store/shared-artifact-store.d.ts +31 -0
  411. package/dist/scanners/store/shared-artifact-store.d.ts.map +1 -0
  412. package/dist/scanners/store/shared-artifact-store.js +89 -0
  413. package/dist/scanners/store/shared-artifact-store.js.map +1 -0
  414. package/dist/scanners/store/signal-store.d.ts +36 -0
  415. package/dist/scanners/store/signal-store.d.ts.map +1 -0
  416. package/dist/scanners/store/signal-store.js +135 -0
  417. package/dist/scanners/store/signal-store.js.map +1 -0
  418. package/dist/scanners/types.d.ts +115 -0
  419. package/dist/scanners/types.d.ts.map +1 -0
  420. package/dist/scanners/types.js +3 -0
  421. package/dist/scanners/types.js.map +1 -0
  422. package/dist/scripts/run-dsl-standalone-live.d.ts +27 -0
  423. package/dist/scripts/run-dsl-standalone-live.d.ts.map +1 -0
  424. package/dist/scripts/run-dsl-standalone-live.js +207 -0
  425. package/dist/scripts/run-dsl-standalone-live.js.map +1 -0
  426. package/dist/scripts/run-dsl-standalone-mock.d.ts +13 -0
  427. package/dist/scripts/run-dsl-standalone-mock.d.ts.map +1 -0
  428. package/dist/scripts/run-dsl-standalone-mock.js +255 -0
  429. package/dist/scripts/run-dsl-standalone-mock.js.map +1 -0
  430. package/dist/senpi/client.d.ts +70 -0
  431. package/dist/senpi/client.d.ts.map +1 -0
  432. package/dist/senpi/client.js +482 -0
  433. package/dist/senpi/client.js.map +1 -0
  434. package/dist/senpi/constants.d.ts +7 -0
  435. package/dist/senpi/constants.d.ts.map +1 -0
  436. package/dist/senpi/constants.js +7 -0
  437. package/dist/senpi/constants.js.map +1 -0
  438. package/dist/senpi/index.d.ts +3 -0
  439. package/dist/senpi/index.d.ts.map +1 -0
  440. package/dist/senpi/index.js +2 -0
  441. package/dist/senpi/index.js.map +1 -0
  442. package/dist/senpi/types.d.ts +132 -0
  443. package/dist/senpi/types.d.ts.map +1 -0
  444. package/dist/senpi/types.js +3 -0
  445. package/dist/senpi/types.js.map +1 -0
  446. package/dist/state/index.d.ts +3 -0
  447. package/dist/state/index.d.ts.map +1 -0
  448. package/dist/state/index.js +3 -0
  449. package/dist/state/index.js.map +1 -0
  450. package/dist/state/paths.d.ts +8 -0
  451. package/dist/state/paths.d.ts.map +1 -0
  452. package/dist/state/paths.js +19 -0
  453. package/dist/state/paths.js.map +1 -0
  454. package/dist/state/state-manager.d.ts +56 -0
  455. package/dist/state/state-manager.d.ts.map +1 -0
  456. package/dist/state/state-manager.js +213 -0
  457. package/dist/state/state-manager.js.map +1 -0
  458. package/dist/strategy/index.d.ts +2 -0
  459. package/dist/strategy/index.d.ts.map +1 -0
  460. package/dist/strategy/index.js +2 -0
  461. package/dist/strategy/index.js.map +1 -0
  462. package/dist/strategy/strategy-state.d.ts +47 -0
  463. package/dist/strategy/strategy-state.d.ts.map +1 -0
  464. package/dist/strategy/strategy-state.js +179 -0
  465. package/dist/strategy/strategy-state.js.map +1 -0
  466. package/dist/types/action.d.ts +15 -0
  467. package/dist/types/action.d.ts.map +1 -0
  468. package/dist/types/action.js +2 -0
  469. package/dist/types/action.js.map +1 -0
  470. package/dist/types/dsl/index.d.ts +156 -0
  471. package/dist/types/dsl/index.d.ts.map +1 -0
  472. package/dist/types/dsl/index.js +5 -0
  473. package/dist/types/dsl/index.js.map +1 -0
  474. package/dist/types/event-bus.d.ts +11 -0
  475. package/dist/types/event-bus.d.ts.map +1 -0
  476. package/dist/types/event-bus.js +6 -0
  477. package/dist/types/event-bus.js.map +1 -0
  478. package/dist/types/hooks.d.ts +27 -0
  479. package/dist/types/hooks.d.ts.map +1 -0
  480. package/dist/types/hooks.js +15 -0
  481. package/dist/types/hooks.js.map +1 -0
  482. package/dist/types/index.d.ts +6 -0
  483. package/dist/types/index.d.ts.map +1 -0
  484. package/dist/types/index.js +6 -0
  485. package/dist/types/index.js.map +1 -0
  486. package/dist/types/notification.d.ts +4 -0
  487. package/dist/types/notification.d.ts.map +1 -0
  488. package/dist/types/notification.js +3 -0
  489. package/dist/types/notification.js.map +1 -0
  490. package/dist/types/runtime.d.ts +16 -0
  491. package/dist/types/runtime.d.ts.map +1 -0
  492. package/dist/types/runtime.js +2 -0
  493. package/dist/types/runtime.js.map +1 -0
  494. package/dist/types/scanner.d.ts +59 -0
  495. package/dist/types/scanner.d.ts.map +1 -0
  496. package/dist/types/scanner.js +13 -0
  497. package/dist/types/scanner.js.map +1 -0
  498. package/dist/types/strategy.d.ts +97 -0
  499. package/dist/types/strategy.d.ts.map +1 -0
  500. package/dist/types/strategy.js +2 -0
  501. package/dist/types/strategy.js.map +1 -0
  502. package/dist/utils/logger/dsl.d.ts +8 -0
  503. package/dist/utils/logger/dsl.d.ts.map +1 -0
  504. package/dist/utils/logger/dsl.js +7 -0
  505. package/dist/utils/logger/dsl.js.map +1 -0
  506. package/dist/utils/logger.d.ts +13 -0
  507. package/dist/utils/logger.d.ts.map +1 -0
  508. package/dist/utils/logger.js +65 -0
  509. package/dist/utils/logger.js.map +1 -0
  510. package/dist/utils/response.d.ts +14 -0
  511. package/dist/utils/response.d.ts.map +1 -0
  512. package/dist/utils/response.js +44 -0
  513. package/dist/utils/response.js.map +1 -0
  514. package/dist/version.d.ts +2 -0
  515. package/dist/version.d.ts.map +1 -0
  516. package/dist/version.js +2 -0
  517. package/dist/version.js.map +1 -0
  518. package/examples/.env.example +15 -0
  519. package/examples/README.md +75 -0
  520. package/examples/scanners-consumer-quickstart.mjs +134 -0
  521. package/examples/scanners-emerging-movers-v4.mjs +285 -0
  522. package/examples/scanners-live-mcp.mjs +208 -0
  523. package/examples/scanners-multi-strategy.mjs +165 -0
  524. package/examples/scanners-scheduled-events.mjs +95 -0
  525. package/examples/scanners-senpi-provider-client.mjs +182 -0
  526. package/examples/scanners-single-strategy.mjs +198 -0
  527. package/examples/strategies/README.md +45 -0
  528. package/examples/strategies/dsl-showcase.yaml +62 -0
  529. package/examples/strategies/fox.yaml +55 -0
  530. package/examples/strategies/minimal.yaml +41 -0
  531. package/examples/strategies/viper.yaml +63 -0
  532. package/examples/strategies/wolf.yaml +60 -0
  533. package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +111 -0
  534. package/openclaw.plugin.json +15 -0
  535. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-dsl-standalone-mock.js","sourceRoot":"","sources":["../../src/scripts/run-dsl-standalone-mock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { McpTransport, SenpiClientConfig, CreatePositionRequest, CreatePositionResult, EditPositionResult, GetPositionResult, OpenPosition, GetStrategyResult, GetOpenOrdersResult, GetTraderHistoryOptions, TraderHistoryEntry, StrategyFundResult, ClosePositionsRequest, GetPnlHistoryOptions } from './types.js';
2
+ export declare class SenpiClient {
3
+ private readonly injectedTransport;
4
+ private readonly config;
5
+ private mcpClient;
6
+ constructor(transportOrConfig: McpTransport | SenpiClientConfig);
7
+ connect(): Promise<void>;
8
+ disconnect(): Promise<void>;
9
+ private callTool;
10
+ /**
11
+ * Returns an adapter compatible with SenpiToolClient so the same connection
12
+ * can be used for scanner provider MCP tool calls (e.g. leaderboard_get_markets).
13
+ */
14
+ asToolClient(): {
15
+ callTool(name: string, args: Record<string, unknown>): Promise<unknown>;
16
+ };
17
+ createPosition(request: CreatePositionRequest): Promise<CreatePositionResult>;
18
+ /**
19
+ * Fetch market prices. Main DEX is passed as dex: ""; use dex: "xyz" for xyz.
20
+ * If assets is omitted, the MCP returns all asset prices for that dex.
21
+ */
22
+ getMarketPrices(params: {
23
+ dex: string;
24
+ assets?: string[];
25
+ }): Promise<Record<string, number> | null>;
26
+ /**
27
+ * Set/update SL (and optionally TP) on an open position. Uses MCP edit_position.
28
+ * For XYZ DEX pass dex: "xyz" so coin is sent as "xyz:COIN"; otherwise main DEX uses plain coin.
29
+ */
30
+ editPosition(wallet: string, payload: {
31
+ coin: string;
32
+ dex?: string;
33
+ stopLoss?: {
34
+ triggerPx: number;
35
+ };
36
+ }): Promise<EditPositionResult>;
37
+ getOrderStatus(wallet: string, orderId: number): Promise<{
38
+ filled?: boolean;
39
+ } | null>;
40
+ /**
41
+ * Fetch full clearing house state for a wallet (main + xyz DEXes) from MCP.
42
+ * Uses strategy_get_clearinghouse_state (Senpi/Hyperliquid MCP). Use getPosition(wallet, coin, dex?) to resolve a single position from this state.
43
+ */
44
+ getClearingHouseState(wallet: string): Promise<Record<string, unknown> | null>;
45
+ /**
46
+ * Fetch position (szi, entryPx, leverage) from clearing house for a wallet+coin.
47
+ * Uses getClearingHouseState so one MCP call returns both main and xyz (and other) DEX positions;
48
+ * then looks up the position for the given coin (and optional dex).
49
+ */
50
+ getPosition(wallet: string, coin: string, dex?: string): Promise<GetPositionResult | null>;
51
+ closePosition(wallet: string, coin: string, params: {
52
+ reason: string;
53
+ dex?: string;
54
+ }): Promise<unknown>;
55
+ /**
56
+ * List open positions for a wallet (for reconciliation). Calls MCP tool list_open_positions.
57
+ * If the tool is not implemented or fails, returns [] so reconciliation can continue.
58
+ */
59
+ listOpenPositions(wallet: string): Promise<OpenPosition[]>;
60
+ getStrategy(wallet: string): Promise<GetStrategyResult | null>;
61
+ getOpenOrders(wallet: string): Promise<GetOpenOrdersResult[]>;
62
+ getTraderHistory(wallet: string, opts?: GetTraderHistoryOptions): Promise<TraderHistoryEntry[]>;
63
+ topUp(wallet: string, amount: number): Promise<StrategyFundResult>;
64
+ withdrawFunds(wallet: string, amount: number): Promise<StrategyFundResult>;
65
+ closeStrategy(wallet: string): Promise<StrategyFundResult>;
66
+ closePositions(wallet: string, positions: ClosePositionsRequest[]): Promise<unknown>;
67
+ cancelOrder(wallet: string, orderId: number): Promise<unknown>;
68
+ getPnlHistory(wallet: string, opts?: GetPnlHistoryOptions): Promise<unknown>;
69
+ }
70
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/senpi/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,482 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
3
+ import { MCP_BASE_URL } from "./constants.js";
4
+ import { isRecord, unwrapEnvelope, asString, asNumber } from "../utils/response.js";
5
+ import { createLogger } from "../utils/logger.js";
6
+ const logger = createLogger("[senpi][client]");
7
+ export class SenpiClient {
8
+ // Injected mode
9
+ injectedTransport;
10
+ // Self-managed mode
11
+ config;
12
+ mcpClient = null;
13
+ constructor(transportOrConfig) {
14
+ if (typeof transportOrConfig === 'function') {
15
+ this.injectedTransport = transportOrConfig;
16
+ this.config = null;
17
+ }
18
+ else {
19
+ this.injectedTransport = null;
20
+ this.config = transportOrConfig;
21
+ }
22
+ }
23
+ async connect() {
24
+ if (this.injectedTransport)
25
+ return; // no-op in injected mode
26
+ const apiKey = this.config?.apiKey?.trim() ||
27
+ process.env.SENPI_API_KEY?.trim() ||
28
+ '';
29
+ if (!apiKey) {
30
+ throw new Error('SenpiClient requires apiKey or SENPI_API_KEY env var');
31
+ }
32
+ const url = this.config?.mcpUrl
33
+ ? new URL(this.config.mcpUrl)
34
+ : process.env.SENPI_MCP_URL
35
+ ? new URL(process.env.SENPI_MCP_URL)
36
+ : new URL(MCP_BASE_URL);
37
+ const transport = new StreamableHTTPClientTransport(url, {
38
+ requestInit: {
39
+ headers: { Authorization: `Bearer ${apiKey}` },
40
+ },
41
+ });
42
+ const client = new Client({
43
+ name: this.config?.clientName ?? 'senpi-client',
44
+ version: this.config?.clientVersion ?? '0.0.1',
45
+ });
46
+ await client.connect(transport);
47
+ this.mcpClient = client;
48
+ }
49
+ async disconnect() {
50
+ if (this.injectedTransport)
51
+ return; // no-op in injected mode
52
+ if (this.mcpClient) {
53
+ try {
54
+ this.mcpClient.close();
55
+ }
56
+ catch {
57
+ // ignore on teardown
58
+ }
59
+ this.mcpClient = null;
60
+ }
61
+ }
62
+ async callTool(toolName, args) {
63
+ // Injected mode: delegate directly
64
+ if (this.injectedTransport) {
65
+ return this.injectedTransport(toolName, args);
66
+ }
67
+ // Self-managed mode: call via MCP client
68
+ if (!this.mcpClient) {
69
+ throw new Error('SenpiClient not connected — call connect() first');
70
+ }
71
+ const result = await this.mcpClient.callTool({ name: toolName, arguments: args });
72
+ if (result.content && Array.isArray(result.content) && result.content.length > 0) {
73
+ const part = result.content[0];
74
+ if (part && 'text' in part && typeof part.text === 'string') {
75
+ try {
76
+ return JSON.parse(part.text);
77
+ }
78
+ catch {
79
+ return part.text;
80
+ }
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Returns an adapter compatible with SenpiToolClient so the same connection
87
+ * can be used for scanner provider MCP tool calls (e.g. leaderboard_get_markets).
88
+ */
89
+ asToolClient() {
90
+ return {
91
+ callTool: (name, args) => this.callTool(name, args),
92
+ };
93
+ }
94
+ async createPosition(request) {
95
+ console.log('[SenpiClient] createPosition request:', JSON.stringify(request, null, 2));
96
+ const raw = await this.callTool('create_position', {
97
+ strategyWalletAddress: request.strategyWalletAddress,
98
+ orders: request.orders,
99
+ ...(request.reason != null ? { reason: request.reason } : {}),
100
+ });
101
+ console.log('[SenpiClient] createPosition raw response:', JSON.stringify(raw, null, 2));
102
+ return parseCreatePositionResult(raw);
103
+ }
104
+ /**
105
+ * Fetch market prices. Main DEX is passed as dex: ""; use dex: "xyz" for xyz.
106
+ * If assets is omitted, the MCP returns all asset prices for that dex.
107
+ */
108
+ async getMarketPrices(params) {
109
+ const raw = await this.callTool("market_get_prices", {
110
+ dex: params.dex || "",
111
+ ...(params.assets != null && params.assets.length > 0 ? { assets: params.assets } : {}),
112
+ });
113
+ const unwrapped = unwrapEnvelope(raw) ?? raw;
114
+ if (unwrapped == null || typeof unwrapped !== "object")
115
+ return null;
116
+ const obj = unwrapped;
117
+ const prices = (obj.prices ?? obj);
118
+ const out = {};
119
+ for (const [k, v] of Object.entries(prices)) {
120
+ const n = typeof v === "number" ? v : typeof v === "string" ? Number(v) : NaN;
121
+ if (Number.isFinite(n))
122
+ out[k] = n;
123
+ }
124
+ return Object.keys(out).length > 0 ? out : null;
125
+ }
126
+ /**
127
+ * Set/update SL (and optionally TP) on an open position. Uses MCP edit_position.
128
+ * For XYZ DEX pass dex: "xyz" so coin is sent as "xyz:COIN"; otherwise main DEX uses plain coin.
129
+ */
130
+ async editPosition(wallet, payload) {
131
+ const coin = payload.dex === "xyz" && payload.coin && !payload.coin.startsWith("xyz:")
132
+ ? `xyz:${payload.coin}`
133
+ : payload.coin;
134
+ const stopLoss = payload.stopLoss != null
135
+ ? { price: payload.stopLoss.triggerPx }
136
+ : undefined;
137
+ const args = {
138
+ strategyWalletAddress: wallet,
139
+ coin,
140
+ ...(stopLoss != null ? { stopLoss } : {}),
141
+ };
142
+ const raw = await this.callTool("edit_position", args);
143
+ logger.info("edit_position raw response", {
144
+ wallet,
145
+ coin,
146
+ rawKeys: isRecord(raw) ? Object.keys(raw) : [],
147
+ rawShape: isRecord(raw) ? JSON.stringify(raw).slice(0, 500) : String(raw),
148
+ });
149
+ const result = (unwrapEnvelope(raw) ?? raw);
150
+ if (result && typeof result === "object" && !Array.isArray(result)) {
151
+ const ro = result;
152
+ const slOrderId = extractSlOrderId(ro, raw);
153
+ logger.info("edit_position parsed", {
154
+ wallet,
155
+ coin,
156
+ slOrderId,
157
+ unwrappedKeys: Object.keys(ro),
158
+ hasStopLossOrderResult: "StopLossOrderResult" in ro || "stopLossOrderResult" in ro,
159
+ });
160
+ if (slOrderId != null && Number.isFinite(slOrderId)) {
161
+ return { ...result, slOrderId };
162
+ }
163
+ const actions = ro.actionsPerformed;
164
+ if (Array.isArray(actions) && (actions.includes("stop_loss_updated") || actions.includes("stop_loss_placed"))) {
165
+ logger.warn("edit_position reported SL update but slOrderId not found in response; state will have slOrderId=null", {
166
+ keys: Object.keys(ro),
167
+ rawKeys: isRecord(raw) ? Object.keys(raw) : [],
168
+ });
169
+ }
170
+ }
171
+ return result;
172
+ }
173
+ async getOrderStatus(wallet, orderId) {
174
+ const raw = await this.callTool("execution_get_order_status", { user: wallet, orderId });
175
+ if (raw == null || typeof raw !== "object")
176
+ return null;
177
+ const obj = raw;
178
+ const filled = obj.filled ?? obj.status;
179
+ return {
180
+ filled: filled === true || (typeof filled === "string" && filled.toUpperCase() === "FILLED"),
181
+ };
182
+ }
183
+ /**
184
+ * Fetch full clearing house state for a wallet (main + xyz DEXes) from MCP.
185
+ * Uses strategy_get_clearinghouse_state (Senpi/Hyperliquid MCP). Use getPosition(wallet, coin, dex?) to resolve a single position from this state.
186
+ */
187
+ async getClearingHouseState(wallet) {
188
+ const raw = await this.callTool("strategy_get_clearinghouse_state", { strategy_wallet: wallet });
189
+ const unwrapped = unwrapEnvelope(raw);
190
+ if (unwrapped == null || typeof unwrapped !== "object")
191
+ return null;
192
+ return unwrapped;
193
+ }
194
+ /**
195
+ * Fetch position (szi, entryPx, leverage) from clearing house for a wallet+coin.
196
+ * Uses getClearingHouseState so one MCP call returns both main and xyz (and other) DEX positions;
197
+ * then looks up the position for the given coin (and optional dex).
198
+ */
199
+ async getPosition(wallet, coin, dex) {
200
+ const state = await this.getClearingHouseState(wallet);
201
+ if (state == null)
202
+ return null;
203
+ return findPositionInClearingHouseState(state, coin, dex);
204
+ }
205
+ async closePosition(wallet, coin, params) {
206
+ const effectiveCoin = params.dex === "xyz" && coin && !coin.startsWith("xyz:") ? `xyz:${coin}` : coin;
207
+ return this.callTool("close_position", {
208
+ strategyWalletAddress: wallet,
209
+ coin: effectiveCoin,
210
+ ...(params.reason ? { reason: params.reason } : {}),
211
+ });
212
+ }
213
+ /**
214
+ * List open positions for a wallet (for reconciliation). Calls MCP tool list_open_positions.
215
+ * If the tool is not implemented or fails, returns [] so reconciliation can continue.
216
+ */
217
+ async listOpenPositions(wallet) {
218
+ try {
219
+ const raw = await this.callTool("list_open_positions", { wallet });
220
+ if (!Array.isArray(raw))
221
+ return [];
222
+ return raw.filter((p) => p != null && typeof p === "object" && typeof p.coin === "string");
223
+ }
224
+ catch {
225
+ return [];
226
+ }
227
+ }
228
+ // ─── New MCP methods ────────────────────────────────────────────────────────
229
+ async getStrategy(wallet) {
230
+ const raw = await this.callTool("strategy_get", { strategy_wallet: wallet });
231
+ const data = unwrapEnvelope(raw);
232
+ if (!isRecord(data))
233
+ return null;
234
+ return {
235
+ strategyId: asString(data.strategyId) ?? asString(data.id) ?? "",
236
+ name: asString(data.name) ?? "",
237
+ status: asString(data.status) ?? "",
238
+ traderAddress: asString(data.traderAddress) ?? "",
239
+ initialBudget: asNumber(data.initialBudget) ?? 0,
240
+ totalPnl: asNumber(data.totalPnl) ?? 0,
241
+ pnlPercentage: asNumber(data.pnlPercentage) ?? 0,
242
+ createdAt: asString(data.createdAt) ?? "",
243
+ };
244
+ }
245
+ async getOpenOrders(wallet) {
246
+ const raw = await this.callTool("strategy_get_open_orders", { strategy_wallet: wallet });
247
+ const data = unwrapEnvelope(raw);
248
+ const arr = Array.isArray(data) ? data : (isRecord(data) && Array.isArray(data.orders) ? data.orders : []);
249
+ return arr.filter(isRecord).map((o) => ({
250
+ orderId: asNumber(o.orderId) ?? 0,
251
+ coin: asString(o.coin) ?? "",
252
+ side: (asString(o.side) ?? "BUY"),
253
+ size: asNumber(o.size) ?? asNumber(o.sz) ?? 0,
254
+ price: asNumber(o.price) ?? asNumber(o.limitPx) ?? 0,
255
+ orderType: asString(o.orderType) ?? asString(o.type) ?? "",
256
+ status: asString(o.status) ?? "",
257
+ timestamp: asNumber(o.timestamp) ?? 0,
258
+ }));
259
+ }
260
+ async getTraderHistory(wallet, opts) {
261
+ const args = { traderAddress: wallet, latest: true };
262
+ if (opts?.limit != null)
263
+ args.limit = opts.limit;
264
+ if (opts?.offset != null)
265
+ args.offset = opts.offset;
266
+ if (opts?.sort_by != null)
267
+ args.sort_by = opts.sort_by;
268
+ if (opts?.sort_direction != null)
269
+ args.sort_direction = opts.sort_direction;
270
+ const raw = await this.callTool("discovery_get_trader_history", args);
271
+ const data = unwrapEnvelope(raw);
272
+ const arr = Array.isArray(data) ? data : (isRecord(data) && Array.isArray(data.trades) ? data.trades : []);
273
+ return arr.filter(isRecord).map((t) => {
274
+ const szi = asNumber(t.szi) ?? 0;
275
+ return {
276
+ coin: asString(t.coin) ?? "",
277
+ direction: (szi >= 0 ? "LONG" : "SHORT"),
278
+ entryPx: asNumber(t.entryPx) ?? 0,
279
+ closePx: asNumber(t.closePx) ?? 0,
280
+ szi,
281
+ realizedPnl: asNumber(t.realizedPnl) ?? 0,
282
+ closedTime: asNumber(t.closedTime) ?? asNumber(t.closeTime) ?? 0,
283
+ openTime: asNumber(t.openTime) ?? 0,
284
+ totalFees: asNumber(t.totalFees) ?? 0,
285
+ };
286
+ });
287
+ }
288
+ async topUp(wallet, amount) {
289
+ const raw = await this.callTool("strategy_top_up", { strategy_wallet: wallet, amount });
290
+ const data = unwrapEnvelope(raw);
291
+ if (!isRecord(data))
292
+ return { success: false };
293
+ return { success: data.success === true, message: asString(data.message) ?? undefined };
294
+ }
295
+ async withdrawFunds(wallet, amount) {
296
+ const raw = await this.callTool("strategy_withdraw_funds", { strategy_wallet: wallet, amount });
297
+ const data = unwrapEnvelope(raw);
298
+ if (!isRecord(data))
299
+ return { success: false };
300
+ return { success: data.success === true, message: asString(data.message) ?? undefined };
301
+ }
302
+ async closeStrategy(wallet) {
303
+ const raw = await this.callTool("strategy_close", { strategy_wallet: wallet });
304
+ const data = unwrapEnvelope(raw);
305
+ if (!isRecord(data))
306
+ return { success: false };
307
+ return { success: data.success === true, message: asString(data.message) ?? undefined };
308
+ }
309
+ async closePositions(wallet, positions) {
310
+ return this.callTool("strategy_close_positions", {
311
+ strategy_wallet: wallet,
312
+ positions,
313
+ });
314
+ }
315
+ async cancelOrder(wallet, orderId) {
316
+ return this.callTool("cancel_order", {
317
+ strategyWalletAddress: wallet,
318
+ orderId,
319
+ });
320
+ }
321
+ async getPnlHistory(wallet, opts) {
322
+ const args = { strategy_wallet: wallet };
323
+ if (opts?.period != null)
324
+ args.period = opts.period;
325
+ return this.callTool("strategy_get_pnl_and_account_value_history", args);
326
+ }
327
+ }
328
+ // ─── Response parsing ────────────────────────────────────────────────────────
329
+ /**
330
+ * Extract SL order ID from edit_position response. Tries multiple common shapes
331
+ * so state gets slOrderId even when MCP returns it under different keys.
332
+ * MCP may return: data.ordersUpdated.stopLoss.orderId or StopLossOrderResult.orderId.
333
+ */
334
+ function extractSlOrderId(unwrapped, raw) {
335
+ const from = (v) => (v != null && Number.isFinite(asNumber(v)) ? asNumber(v) : null);
336
+ const fromObj = (obj, key) => obj && typeof obj === "object" && key in obj ? from(obj[key]) : null;
337
+ const ou = unwrapped.ordersUpdated;
338
+ const stopLossObj = ou && typeof ou === "object" && "stopLoss" in ou ? ou.stopLoss : undefined;
339
+ let n = from(unwrapped.slOrderId)
340
+ ?? (ou && "slOrderId" in ou ? from(ou.slOrderId) : null)
341
+ ?? from(unwrapped.stopLossOrderId)
342
+ ?? from(ou?.stopLossOrderId)
343
+ ?? fromObj(stopLossObj, "orderId")
344
+ ?? fromObj(unwrapped.StopLossOrderResult, "orderId")
345
+ ?? fromObj(unwrapped.stopLossOrderResult, "orderId");
346
+ if (n != null)
347
+ return n;
348
+ if (isRecord(raw) && isRecord(raw.data)) {
349
+ const data = raw.data;
350
+ const dataOu = data.ordersUpdated;
351
+ const dataStopLoss = dataOu && typeof dataOu === "object" && "stopLoss" in dataOu ? dataOu.stopLoss : undefined;
352
+ n =
353
+ from(data.slOrderId)
354
+ ?? from(dataOu?.slOrderId)
355
+ ?? from(data.stopLossOrderId)
356
+ ?? fromObj(dataStopLoss, "orderId")
357
+ ?? fromObj(data.StopLossOrderResult, "orderId")
358
+ ?? fromObj(data.stopLossOrderResult, "orderId");
359
+ if (n != null)
360
+ return n;
361
+ }
362
+ return null;
363
+ }
364
+ function parseCreatePositionResult(raw) {
365
+ const data = unwrapEnvelope(raw);
366
+ if (!isRecord(data)) {
367
+ return { success: false, orders: [], error: 'Invalid response shape' };
368
+ }
369
+ const success = typeof data.success === 'boolean' ? data.success : false;
370
+ const error = typeof data.error === 'string' ? data.error
371
+ : typeof data.message === 'string' ? data.message
372
+ : null;
373
+ const rawOrders = Array.isArray(data.results) ? data.results : (Array.isArray(data.orders) ? data.orders : []);
374
+ const orders = [];
375
+ for (const row of rawOrders) {
376
+ if (!isRecord(row))
377
+ continue;
378
+ // MCP response nests fill data under mainOrder
379
+ const mainOrder = isRecord(row.mainOrder) ? row.mainOrder : row;
380
+ // error can be an object { code, description } or a string
381
+ const rowError = isRecord(row.error)
382
+ ? asString(row.error.description) ?? asString(row.error.code)
383
+ : asString(row.error);
384
+ orders.push({
385
+ coin: asString(row.coin) ?? asString(mainOrder.coin) ?? '',
386
+ direction: asDirection(row.direction) ?? asDirection(mainOrder.direction) ?? 'LONG',
387
+ leverage: asNumber(row.leverage) ?? asNumber(mainOrder.leverage) ?? 0,
388
+ marginAmount: asNumber(row.marginAmount) ?? asNumber(row.marginUsed) ?? 0,
389
+ entryPrice: asNumber(mainOrder.avgPrice) ?? asNumber(mainOrder.entryPrice) ?? asNumber(row.avgPrice),
390
+ size: asNumber(mainOrder.filledSize) ?? asNumber(mainOrder.size) ?? asNumber(row.filledSize),
391
+ filled: String(mainOrder.status).toUpperCase() === 'FILLED' || (typeof row.filled === 'boolean' ? row.filled : false),
392
+ orderId: stringifyId(mainOrder.orderId) ?? stringifyId(row.orderId),
393
+ executionAsMaker: typeof mainOrder.executionAsMaker === 'boolean' ? mainOrder.executionAsMaker : null,
394
+ error: rowError,
395
+ });
396
+ }
397
+ return { success, orders, error };
398
+ }
399
+ // ─── Clearing house state lookup ─────────────────────────────────────────────
400
+ function positionFromRaw(obj) {
401
+ const szi = asNumber(obj.szi) ?? asNumber(obj.size);
402
+ const entryPx = asNumber(obj.entryPx) ?? asNumber(obj.entryPrice) ?? asNumber(obj.avgPrice);
403
+ if (szi == null || entryPx == null || !Number.isFinite(szi) || !Number.isFinite(entryPx)) {
404
+ return null;
405
+ }
406
+ let leverage = asNumber(obj.leverage);
407
+ if (leverage == null && isRecord(obj.leverage) && typeof obj.leverage.value === "number") {
408
+ leverage = obj.leverage.value;
409
+ }
410
+ const result = { szi, entryPx };
411
+ if (leverage != null && Number.isFinite(leverage))
412
+ result.leverage = leverage;
413
+ return result;
414
+ }
415
+ function coinMatches(pos, coin) {
416
+ const c = asString(pos.coin) ?? asString(pos.asset) ?? "";
417
+ return c.toUpperCase() === coin.toUpperCase() || c === coin;
418
+ }
419
+ /**
420
+ * Find a position for the given coin (and optional dex) in clearing house state.
421
+ * Senpi MCP (strategy_get_clearinghouse_state) returns { main, xyz } where each value is
422
+ * ClearinghouseState: { assetPositions: [ { type, position: { coin, szi, entryPx, leverage } } ] }.
423
+ * Also supports flat { positions: [ { coin, dex?, ... } ] } or per-DEX arrays.
424
+ */
425
+ function findPositionInClearingHouseState(state, coin, dex) {
426
+ // Single flat list with optional dex on each item
427
+ const positions = state.positions ?? state.positionsList;
428
+ if (Array.isArray(positions)) {
429
+ for (const p of positions) {
430
+ if (!isRecord(p))
431
+ continue;
432
+ const pos = isRecord(p.position) ? p.position : p;
433
+ if (!coinMatches(pos, coin))
434
+ continue;
435
+ if (dex != null && dex !== "") {
436
+ const d = asString(p.dex) ?? "";
437
+ if (d !== dex)
438
+ continue;
439
+ }
440
+ const result = positionFromRaw(pos);
441
+ if (result)
442
+ return result;
443
+ }
444
+ return null;
445
+ }
446
+ // Per-DEX keys (main, xyz): each value is ClearinghouseState with assetPositions
447
+ const keysToSearch = dex != null && dex !== "" ? [dex] : Object.keys(state);
448
+ for (const key of keysToSearch) {
449
+ const dexState = state[key];
450
+ if (dexState == null || typeof dexState !== "object")
451
+ continue;
452
+ const dexObj = dexState;
453
+ const assetPositions = dexObj.assetPositions;
454
+ if (!Array.isArray(assetPositions))
455
+ continue;
456
+ for (const item of assetPositions) {
457
+ if (!isRecord(item))
458
+ continue;
459
+ const pos = isRecord(item.position) ? item.position : item;
460
+ if (!coinMatches(pos, coin))
461
+ continue;
462
+ const result = positionFromRaw(pos);
463
+ if (result)
464
+ return result;
465
+ }
466
+ }
467
+ return null;
468
+ }
469
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
470
+ function asDirection(value) {
471
+ if (value === 'LONG' || value === 'SHORT')
472
+ return value;
473
+ return null;
474
+ }
475
+ function stringifyId(value) {
476
+ if (typeof value === 'string')
477
+ return value;
478
+ if (typeof value === 'number' && Number.isFinite(value))
479
+ return String(value);
480
+ return null;
481
+ }
482
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/senpi/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Senpi MCP URL and skill constants (shared by client and DSL).
3
+ */
4
+ export declare const MCP_BASE_URL = "https://mcp.prod.senpi.ai/mcp";
5
+ export declare const MCP_SKILL_NAME = "dsl-plugin";
6
+ export declare const MCP_SKILL_VERSION_DEFAULT = "0.0.1";
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/senpi/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,kCAAkC,CAAC;AAC5D,eAAO,MAAM,cAAc,eAAe,CAAC;AAC3C,eAAO,MAAM,yBAAyB,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Senpi MCP URL and skill constants (shared by client and DSL).
3
+ */
4
+ export const MCP_BASE_URL = "https://mcp.prod.senpi.ai/mcp";
5
+ export const MCP_SKILL_NAME = "dsl-plugin";
6
+ export const MCP_SKILL_VERSION_DEFAULT = "0.0.1";
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/senpi/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC"}