jesse 3.2.1__tar.gz → 3.2.2__tar.gz

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 (1227) hide show
  1. {jesse-3.2.1/jesse.egg-info → jesse-3.2.2}/PKG-INFO +2 -2
  2. {jesse-3.2.1 → jesse-3.2.2}/jesse/cli.py +13 -4
  3. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/agent_rules.md +2 -2
  4. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/strategy.md +60 -0
  5. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/server.py +10 -2
  6. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/strategy.py +16 -0
  7. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/lsp.py +137 -123
  8. jesse-3.2.2/jesse/services/lsp_download.py +23 -0
  9. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/trading_hours.py +16 -14
  10. jesse-3.2.2/jesse/version.py +1 -0
  11. {jesse-3.2.1 → jesse-3.2.2/jesse.egg-info}/PKG-INFO +2 -2
  12. {jesse-3.2.1 → jesse-3.2.2}/jesse.egg-info/SOURCES.txt +1 -0
  13. {jesse-3.2.1 → jesse-3.2.2}/jesse.egg-info/requires.txt +1 -1
  14. {jesse-3.2.1 → jesse-3.2.2}/requirements.txt +1 -1
  15. {jesse-3.2.1 → jesse-3.2.2}/setup.py +1 -1
  16. jesse-3.2.1/jesse/version.py +0 -1
  17. {jesse-3.2.1 → jesse-3.2.2}/LICENSE +0 -0
  18. {jesse-3.2.1 → jesse-3.2.2}/MANIFEST.in +0 -0
  19. {jesse-3.2.1 → jesse-3.2.2}/README.md +0 -0
  20. {jesse-3.2.1 → jesse-3.2.2}/jesse/__init__.py +0 -0
  21. {jesse-3.2.1 → jesse-3.2.2}/jesse/candle_pipelines/__init__.py +0 -0
  22. {jesse-3.2.1 → jesse-3.2.2}/jesse/candle_pipelines/base_candles.py +0 -0
  23. {jesse-3.2.1 → jesse-3.2.2}/jesse/candle_pipelines/gaussian_noise.py +0 -0
  24. {jesse-3.2.1 → jesse-3.2.2}/jesse/candle_pipelines/gaussian_resampler.py +0 -0
  25. {jesse-3.2.1 → jesse-3.2.2}/jesse/candle_pipelines/moving_block_bootstrap.py +0 -0
  26. {jesse-3.2.1 → jesse-3.2.2}/jesse/config.py +0 -0
  27. {jesse-3.2.1 → jesse-3.2.2}/jesse/constants.py +0 -0
  28. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/__init__.py +0 -0
  29. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/ai_model_controller.py +0 -0
  30. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/auth_controller.py +0 -0
  31. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/backtest_controller.py +0 -0
  32. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/candles_controller.py +0 -0
  33. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/closed_trade_controller.py +0 -0
  34. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/config_controller.py +0 -0
  35. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/data_provider_credentials_controller.py +0 -0
  36. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/e2e_controller.py +0 -0
  37. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/exchange_controller.py +0 -0
  38. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/file_controller.py +0 -0
  39. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/live_controller.py +0 -0
  40. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/lsp_controller.py +0 -0
  41. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/monte_carlo_controller.py +0 -0
  42. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/notification_controller.py +0 -0
  43. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/optimization_controller.py +0 -0
  44. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/order_controller.py +0 -0
  45. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/period_templates_controller.py +0 -0
  46. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/route_templates_controller.py +0 -0
  47. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/significance_test_controller.py +0 -0
  48. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/strategy_controller.py +0 -0
  49. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/system_controller.py +0 -0
  50. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/tabs_controller.py +0 -0
  51. {jesse-3.2.1 → jesse-3.2.2}/jesse/controllers/websocket_controller.py +0 -0
  52. {jesse-3.2.1 → jesse-3.2.2}/jesse/enums/__init__.py +0 -0
  53. {jesse-3.2.1 → jesse-3.2.2}/jesse/exceptions/__init__.py +0 -0
  54. {jesse-3.2.1 → jesse-3.2.2}/jesse/exchanges/__init__.py +0 -0
  55. {jesse-3.2.1 → jesse-3.2.2}/jesse/exchanges/exchange.py +0 -0
  56. {jesse-3.2.1 → jesse-3.2.2}/jesse/exchanges/sandbox/Sandbox.py +0 -0
  57. {jesse-3.2.1 → jesse-3.2.2}/jesse/exchanges/sandbox/__init__.py +0 -0
  58. {jesse-3.2.1 → jesse-3.2.2}/jesse/factories/__init__.py +0 -0
  59. {jesse-3.2.1 → jesse-3.2.2}/jesse/factories/candle_factory.py +0 -0
  60. {jesse-3.2.1 → jesse-3.2.2}/jesse/factories/order_factory.py +0 -0
  61. {jesse-3.2.1 → jesse-3.2.2}/jesse/helpers.py +0 -0
  62. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/__init__.py +0 -0
  63. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/acosc.py +0 -0
  64. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ad.py +0 -0
  65. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/adosc.py +0 -0
  66. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/adx.py +0 -0
  67. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/adxr.py +0 -0
  68. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/alligator.py +0 -0
  69. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/alma.py +0 -0
  70. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ao.py +0 -0
  71. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/apo.py +0 -0
  72. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/aroon.py +0 -0
  73. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/aroonosc.py +0 -0
  74. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/atr.py +0 -0
  75. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/avgprice.py +0 -0
  76. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/bandpass.py +0 -0
  77. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/beta.py +0 -0
  78. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/bollinger_bands.py +0 -0
  79. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/bollinger_bands_width.py +0 -0
  80. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/bop.py +0 -0
  81. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cc.py +0 -0
  82. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cci.py +0 -0
  83. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cfo.py +0 -0
  84. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cg.py +0 -0
  85. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/chande.py +0 -0
  86. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/chop.py +0 -0
  87. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cksp.py +0 -0
  88. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cmo.py +0 -0
  89. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/correl.py +0 -0
  90. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/correlation_cycle.py +0 -0
  91. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cvi.py +0 -0
  92. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/cwma.py +0 -0
  93. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/damiani_volatmeter.py +0 -0
  94. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dec_osc.py +0 -0
  95. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/decycler.py +0 -0
  96. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dema.py +0 -0
  97. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/devstop.py +0 -0
  98. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/di.py +0 -0
  99. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dm.py +0 -0
  100. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/donchian.py +0 -0
  101. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dpo.py +0 -0
  102. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dti.py +0 -0
  103. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/dx.py +0 -0
  104. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/edcf.py +0 -0
  105. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/efi.py +0 -0
  106. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ema.py +0 -0
  107. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/emd.py +0 -0
  108. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/emv.py +0 -0
  109. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/epma.py +0 -0
  110. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/er.py +0 -0
  111. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/eri.py +0 -0
  112. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/fisher.py +0 -0
  113. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/fosc.py +0 -0
  114. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/frama.py +0 -0
  115. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/fwma.py +0 -0
  116. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/gatorosc.py +0 -0
  117. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/gauss.py +0 -0
  118. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/heikin_ashi_candles.py +0 -0
  119. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/high_pass.py +0 -0
  120. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/high_pass_2_pole.py +0 -0
  121. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/hma.py +0 -0
  122. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/hull_suit.py +0 -0
  123. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/hurst_exponent.py +0 -0
  124. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/hwma.py +0 -0
  125. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ichimoku_cloud.py +0 -0
  126. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ichimoku_cloud_seq.py +0 -0
  127. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ift_rsi.py +0 -0
  128. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/itrend.py +0 -0
  129. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/jma.py +0 -0
  130. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/jsa.py +0 -0
  131. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kama.py +0 -0
  132. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kaufmanstop.py +0 -0
  133. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kdj.py +0 -0
  134. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/keltner.py +0 -0
  135. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kst.py +0 -0
  136. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kurtosis.py +0 -0
  137. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/kvo.py +0 -0
  138. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/linearreg.py +0 -0
  139. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/linearreg_angle.py +0 -0
  140. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/linearreg_intercept.py +0 -0
  141. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/linearreg_slope.py +0 -0
  142. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/lrsi.py +0 -0
  143. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ma.py +0 -0
  144. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/maaq.py +0 -0
  145. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mab.py +0 -0
  146. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/macd.py +0 -0
  147. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mama.py +0 -0
  148. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/marketfi.py +0 -0
  149. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mass.py +0 -0
  150. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mcginley_dynamic.py +0 -0
  151. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mean_ad.py +0 -0
  152. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/median_ad.py +0 -0
  153. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/medprice.py +0 -0
  154. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mfi.py +0 -0
  155. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/midpoint.py +0 -0
  156. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/midprice.py +0 -0
  157. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/minmax.py +0 -0
  158. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mom.py +0 -0
  159. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/mwdx.py +0 -0
  160. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/natr.py +0 -0
  161. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/nma.py +0 -0
  162. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/nvi.py +0 -0
  163. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/obv.py +0 -0
  164. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/pfe.py +0 -0
  165. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/pivot.py +0 -0
  166. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/pma.py +0 -0
  167. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ppo.py +0 -0
  168. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/pvi.py +0 -0
  169. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/pwma.py +0 -0
  170. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/qstick.py +0 -0
  171. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/reflex.py +0 -0
  172. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rma.py +0 -0
  173. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/roc.py +0 -0
  174. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rocp.py +0 -0
  175. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rocr.py +0 -0
  176. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rocr100.py +0 -0
  177. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/roofing.py +0 -0
  178. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rsi.py +0 -0
  179. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rsmk.py +0 -0
  180. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rsx.py +0 -0
  181. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/rvi.py +0 -0
  182. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/safezonestop.py +0 -0
  183. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/sar.py +0 -0
  184. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/sinwma.py +0 -0
  185. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/skew.py +0 -0
  186. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/sma.py +0 -0
  187. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/smma.py +0 -0
  188. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/squeeze_momentum.py +0 -0
  189. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/sqwma.py +0 -0
  190. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/srsi.py +0 -0
  191. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/srwma.py +0 -0
  192. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/stc.py +0 -0
  193. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/stddev.py +0 -0
  194. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/stiffness.py +0 -0
  195. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/stochastic.py +0 -0
  196. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/stochf.py +0 -0
  197. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/supersmoother.py +0 -0
  198. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/supersmoother_3_pole.py +0 -0
  199. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/supertrend.py +0 -0
  200. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/support_resistance_with_break.py +0 -0
  201. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/swma.py +0 -0
  202. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/t3.py +0 -0
  203. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/tema.py +0 -0
  204. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/trange.py +0 -0
  205. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/trendflex.py +0 -0
  206. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/trima.py +0 -0
  207. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/trix.py +0 -0
  208. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/tsf.py +0 -0
  209. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/tsi.py +0 -0
  210. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ttm_squeeze.py +0 -0
  211. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ttm_trend.py +0 -0
  212. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/typprice.py +0 -0
  213. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ui.py +0 -0
  214. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/ultosc.py +0 -0
  215. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/var.py +0 -0
  216. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vi.py +0 -0
  217. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vidya.py +0 -0
  218. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vlma.py +0 -0
  219. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/volume.py +0 -0
  220. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vosc.py +0 -0
  221. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/voss.py +0 -0
  222. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vpci.py +0 -0
  223. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vpt.py +0 -0
  224. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vpwma.py +0 -0
  225. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vwap.py +0 -0
  226. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vwma.py +0 -0
  227. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/vwmacd.py +0 -0
  228. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/wad.py +0 -0
  229. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/waddah_attr_explosion.py +0 -0
  230. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/wclprice.py +0 -0
  231. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/wilders.py +0 -0
  232. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/willr.py +0 -0
  233. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/wma.py +0 -0
  234. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/wt.py +0 -0
  235. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/zlema.py +0 -0
  236. {jesse-3.2.1 → jesse-3.2.2}/jesse/indicators/zscore.py +0 -0
  237. {jesse-3.2.1 → jesse-3.2.2}/jesse/info.py +0 -0
  238. {jesse-3.2.1 → jesse-3.2.2}/jesse/libs/__init__.py +0 -0
  239. {jesse-3.2.1 → jesse-3.2.2}/jesse/libs/custom_json/__init__.py +0 -0
  240. {jesse-3.2.1 → jesse-3.2.2}/jesse/libs/dynamic_numpy_array/__init__.py +0 -0
  241. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/USAGE_LIMITS.md +0 -0
  242. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/__init__.py +0 -0
  243. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/agent_rules.py +0 -0
  244. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/manager.py +0 -0
  245. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/mcp_config.py +0 -0
  246. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/__init__.py +0 -0
  247. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/backtest_management.md +0 -0
  248. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/backtest_metrics.md +0 -0
  249. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/candle.md +0 -0
  250. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/charts.md +0 -0
  251. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/configuration.md +0 -0
  252. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/credentials.md +0 -0
  253. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/indicator.md +0 -0
  254. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/monte_carlo.md +0 -0
  255. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/optimization.md +0 -0
  256. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/position_risk.md +0 -0
  257. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/significance_test.md +0 -0
  258. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/strategy_examples.md +0 -0
  259. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/resources/utilities.md +0 -0
  260. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/test.py +0 -0
  261. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/__init__.py +0 -0
  262. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/backtest.py +0 -0
  263. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/candles.py +0 -0
  264. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/config.py +0 -0
  265. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/credentials.py +0 -0
  266. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/general.py +0 -0
  267. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/indicator.py +0 -0
  268. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/monte_carlo.py +0 -0
  269. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/optimization.py +0 -0
  270. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/__init__.py +0 -0
  271. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/auth.py +0 -0
  272. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/backtest.py +0 -0
  273. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/candles.py +0 -0
  274. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/config.py +0 -0
  275. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/credentials.py +0 -0
  276. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/general.py +0 -0
  277. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/indicator.py +0 -0
  278. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/monte_carlo.py +0 -0
  279. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/optimization.py +0 -0
  280. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/session_config.py +0 -0
  281. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/significance_test.py +0 -0
  282. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/services/strategy.py +0 -0
  283. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/tools/significance_test.py +0 -0
  284. {jesse-3.2.1 → jesse-3.2.2}/jesse/mcp/usage_limits.py +0 -0
  285. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/AiModel.py +0 -0
  286. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/BacktestSession.py +0 -0
  287. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Candle.py +0 -0
  288. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/ClosedTrade.py +0 -0
  289. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/DataProviderCredentials.py +0 -0
  290. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Exchange.py +0 -0
  291. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/ExchangeApiKeys.py +0 -0
  292. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/FuturesExchange.py +0 -0
  293. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/LiveChart.py +0 -0
  294. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/LiveEquitySnapshot.py +0 -0
  295. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/LiveSession.py +0 -0
  296. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Log.py +0 -0
  297. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/MonteCarloSession.py +0 -0
  298. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/NotificationApiKeys.py +0 -0
  299. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/OpenTab.py +0 -0
  300. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/OptimizationSession.py +0 -0
  301. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Option.py +0 -0
  302. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Order.py +0 -0
  303. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Orderbook.py +0 -0
  304. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/PeriodTemplate.py +0 -0
  305. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Position.py +0 -0
  306. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Route.py +0 -0
  307. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/RouteTemplate.py +0 -0
  308. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/SignificanceTestSession.py +0 -0
  309. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/SpotExchange.py +0 -0
  310. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Ticker.py +0 -0
  311. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/Trade.py +0 -0
  312. {jesse-3.2.1 → jesse-3.2.2}/jesse/models/__init__.py +0 -0
  313. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/__init__.py +0 -0
  314. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/backtest_mode.py +0 -0
  315. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/data_provider.py +0 -0
  316. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/exchange_api_keys.py +0 -0
  317. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/__init__.py +0 -0
  318. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetual.py +0 -0
  319. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualMain.py +0 -0
  320. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualTestnet.py +0 -0
  321. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/__init__.py +0 -0
  322. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/apex_omni_utils.py +0 -0
  323. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/__init__.py +0 -0
  324. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-arm.dylib +0 -0
  325. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-x86.dylib +0 -0
  326. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.dylib +0 -0
  327. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.so +0 -0
  328. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-arm.py +0 -0
  329. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-pc.py +0 -0
  330. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-x86.py +0 -0
  331. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.dll +0 -0
  332. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.py +0 -0
  333. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceMain.py +0 -0
  334. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFutures.py +0 -0
  335. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFuturesTestnet.py +0 -0
  336. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceSpot.py +0 -0
  337. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceUSSpot.py +0 -0
  338. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/__init__.py +0 -0
  339. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/binance_utils.py +0 -0
  340. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/BitfinexSpot.py +0 -0
  341. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/__init__.py +0 -0
  342. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/bitfinex_utils.py +0 -0
  343. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitMain.py +0 -0
  344. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpot.py +0 -0
  345. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpotTestnet.py +0 -0
  346. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetual.py +0 -0
  347. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetualTestnet.py +0 -0
  348. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetual.py +0 -0
  349. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetualTestnet.py +0 -0
  350. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/__init__.py +0 -0
  351. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/bybit_utils.py +0 -0
  352. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/CoinbaseSpot.py +0 -0
  353. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/__init__.py +0 -0
  354. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/coinbase_utils.py +0 -0
  355. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateSpot.py +0 -0
  356. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateSpotMain.py +0 -0
  357. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTMain.py +0 -0
  358. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTPerpetual.py +0 -0
  359. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/__init__.py +0 -0
  360. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/gate_utils.py +0 -0
  361. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetual.py +0 -0
  362. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualMain.py +0 -0
  363. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualTestnet.py +0 -0
  364. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/__init__.py +0 -0
  365. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/hyperliquid_utils.py +0 -0
  366. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetual.py +0 -0
  367. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualMain.py +0 -0
  368. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualTestnet.py +0 -0
  369. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpot.py +0 -0
  370. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpotMain.py +0 -0
  371. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/__init__.py +0 -0
  372. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/kraken_utils.py +0 -0
  373. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinFuturesMain.py +0 -0
  374. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpot.py +0 -0
  375. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpotMain.py +0 -0
  376. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinUSDTPerpetual.py +0 -0
  377. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/__init__.py +0 -0
  378. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/kucoin_utils.py +0 -0
  379. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterMain.py +0 -0
  380. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetual.py +0 -0
  381. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetualTestnet.py +0 -0
  382. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/__init__.py +0 -0
  383. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/lighter_utils.py +0 -0
  384. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/__init__.py +0 -0
  385. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-darwin-arm64.dylib +0 -0
  386. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-amd64.so +0 -0
  387. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-arm64.so +0 -0
  388. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-windows-amd64.dll +0 -0
  389. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/__init__.py +0 -0
  390. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/interface.py +0 -0
  391. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/monte_carlo_mode/MonteCarloRunner.py +0 -0
  392. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/monte_carlo_mode/__init__.py +0 -0
  393. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/notification_api_keys.py +0 -0
  394. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/optimize_mode/Optimize.py +0 -0
  395. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/optimize_mode/__init__.py +0 -0
  396. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/optimize_mode/fitness.py +0 -0
  397. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/significance_test_mode/SignificanceTestRunner.py +0 -0
  398. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/significance_test_mode/__init__.py +0 -0
  399. {jesse-3.2.1 → jesse-3.2.2}/jesse/modes/utils.py +0 -0
  400. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/__init__.py +0 -0
  401. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/candle_repository.py +0 -0
  402. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/closed_trade_repository.py +0 -0
  403. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/data_provider_credentials_repository.py +0 -0
  404. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/live_chart_repository.py +0 -0
  405. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/live_equity_repository.py +0 -0
  406. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/live_session_repository.py +0 -0
  407. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/open_tab_repository.py +0 -0
  408. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/order_repository.py +0 -0
  409. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/period_template_repository.py +0 -0
  410. {jesse-3.2.1 → jesse-3.2.2}/jesse/repositories/route_template_repository.py +0 -0
  411. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/__init__.py +0 -0
  412. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/backtest.py +0 -0
  413. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/candles.py +0 -0
  414. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/import_candles.py +0 -0
  415. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/ml.py +0 -0
  416. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/monte_carlo/__init__.py +0 -0
  417. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/monte_carlo/common.py +0 -0
  418. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/monte_carlo/monte_carlo_candles.py +0 -0
  419. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/monte_carlo/monte_carlo_trades.py +0 -0
  420. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/optimize/__init__.py +0 -0
  421. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/__init__.py +0 -0
  422. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/bootstrap.py +0 -0
  423. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/common.py +0 -0
  424. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/plots.py +0 -0
  425. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/rule_significance.py +0 -0
  426. {jesse-3.2.1 → jesse-3.2.2}/jesse/research/rule_significance_testing/simulator.py +0 -0
  427. {jesse-3.2.1 → jesse-3.2.2}/jesse/routes/__init__.py +0 -0
  428. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/__init__.py +0 -0
  429. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/api.py +0 -0
  430. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/auth.py +0 -0
  431. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/broker.py +0 -0
  432. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/cache.py +0 -0
  433. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/candle_service.py +0 -0
  434. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/charts.py +0 -0
  435. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/closed_trade_service.py +0 -0
  436. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/color.py +0 -0
  437. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/custom_candle_import.py +0 -0
  438. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/db.py +0 -0
  439. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/e2e_database.py +0 -0
  440. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/env.py +0 -0
  441. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/exchange_service.py +0 -0
  442. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/failure.py +0 -0
  443. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/file.py +0 -0
  444. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/general_info.py +0 -0
  445. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/__init__.py +0 -0
  446. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/contracts.py +0 -0
  447. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/credential_validation.py +0 -0
  448. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/errors.py +0 -0
  449. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/massive_stocks.py +0 -0
  450. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/providers/__init__.py +0 -0
  451. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/historical_data/registry.py +0 -0
  452. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/installer.py +0 -0
  453. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/jesse_trade.py +0 -0
  454. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/live_chart_service.py +0 -0
  455. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/logger.py +0 -0
  456. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/metrics.py +0 -0
  457. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/migrator.py +0 -0
  458. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/multiprocessing.py +0 -0
  459. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/notifier.py +0 -0
  460. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/order_service.py +0 -0
  461. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/position_service.py +0 -0
  462. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/progressbar.py +0 -0
  463. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/redis.py +0 -0
  464. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/report.py +0 -0
  465. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/simulation_assumptions.py +0 -0
  466. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/strategy_handler/ExampleStrategy/__init__.py +0 -0
  467. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/strategy_handler/__init__.py +0 -0
  468. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/strategy_service.py +0 -0
  469. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/symbol_catalog.py +0 -0
  470. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/table.py +0 -0
  471. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/transformers.py +0 -0
  472. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/validators.py +0 -0
  473. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/web.py +0 -0
  474. {jesse-3.2.1 → jesse-3.2.2}/jesse/services/ws_manager.py +0 -0
  475. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/200.html +0 -0
  476. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/404.html +0 -0
  477. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/08VXUWAP.js +0 -0
  478. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/0ONmXmPL.js +0 -0
  479. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/1XVEVF4R.js +0 -0
  480. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/1lwvrZu5.js +0 -0
  481. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/1uxVtXhK2.js +0 -0
  482. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/25FdeeAd.js +0 -0
  483. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/2IIEA8gg2.js +0 -0
  484. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/2k_QeT3T.js +0 -0
  485. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/32DixAac.js +0 -0
  486. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/35Gd1l6b.js +0 -0
  487. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/3KuTZQMl2.js +0 -0
  488. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/43DmfD332.js +0 -0
  489. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/4G7pJPwS2.js +0 -0
  490. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/5eyTD99u.js +0 -0
  491. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/6RTg0lbw.js +0 -0
  492. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/6d_DINYp2.js +0 -0
  493. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/6hrdeXKO.js +0 -0
  494. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/9SMx-Yg9.js +0 -0
  495. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/9SuGUQxQ.js +0 -0
  496. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/AGOgedFG2.js +0 -0
  497. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/AsfNJWWT.js +0 -0
  498. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B-yKKtcE2.js +0 -0
  499. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B01W0raW.js +0 -0
  500. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B02lME3Q.js +0 -0
  501. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B2-f6Wu2.js +0 -0
  502. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B2OO5cIa2.js +0 -0
  503. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B2kYdT-M.js +0 -0
  504. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B3Tmza7s2.js +0 -0
  505. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B4Wc4BFL2.js +0 -0
  506. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B4t1Dpxy.js +0 -0
  507. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B5-_aFwp.js +0 -0
  508. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B5W6OYN72.js +0 -0
  509. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B5e22D9r.js +0 -0
  510. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B68TUdTA.js +0 -0
  511. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B6UiomQj.js +0 -0
  512. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B8J7ngcE.js +0 -0
  513. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B8_r5oP7.js +0 -0
  514. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B8rOtbmR.js +0 -0
  515. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B8xNgNWT.js +0 -0
  516. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B9JPFI3C.js +0 -0
  517. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B9MRSN3q2.js +0 -0
  518. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BAlG784d2.js +0 -0
  519. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BBjHab7x.js +0 -0
  520. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BCixiDKj.js +0 -0
  521. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BD87b4dR2.js +0 -0
  522. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BDNMzG2s2.js +0 -0
  523. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BEEn4gHE.js +0 -0
  524. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BEtHBSE6.js +0 -0
  525. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BG8CfSEZ2.js +0 -0
  526. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BGMtTsN-.js +0 -0
  527. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BHWKrbxM.js +0 -0
  528. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BI3Y1cOA.js +0 -0
  529. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BJzMFF2L.js +0 -0
  530. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BKD0O2_Q.js +0 -0
  531. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BKFC8tTN.js +0 -0
  532. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BKPLz4po2.js +0 -0
  533. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BKcRqSit.js +0 -0
  534. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BKxtCVv1.js +0 -0
  535. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BLCaNkgi.js +0 -0
  536. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BLhvb9Y-.js +0 -0
  537. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BMrGqELX.js +0 -0
  538. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BN08jTvb.js +0 -0
  539. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BOotOW0E.js +0 -0
  540. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BQYoEE-E2.js +0 -0
  541. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BRSARzao2.js +0 -0
  542. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BRqV1csJ.js +0 -0
  543. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BSSBbjzH.js +0 -0
  544. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BSWPekZh2.js +0 -0
  545. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BSt81nX4.js +0 -0
  546. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BSu9_R8X2.js +0 -0
  547. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BT_Y9Qa72.js +0 -0
  548. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BTgcbkPe2.js +0 -0
  549. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BTkZN-kY.js +0 -0
  550. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BUvLBkUT2.js +0 -0
  551. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BVAhOJRw.js +0 -0
  552. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BWDSh1SW.js +0 -0
  553. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BWPQTe0t.js +0 -0
  554. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BXViO-2h.js +0 -0
  555. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BYdTN3Ud2.js +0 -0
  556. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BYgofb2h.js +0 -0
  557. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BYsxK_gZ.js +0 -0
  558. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BZ4HG2rr2.js +0 -0
  559. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BZCL-v6S.js +0 -0
  560. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B_-2JulU.js +0 -0
  561. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/B_tTalzw.js +0 -0
  562. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ba7i2nA0.js +0 -0
  563. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BacktestTabs.BhkXf2je.css +0 -0
  564. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BapWjBt9.js +0 -0
  565. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BcJ0KAXG.js +0 -0
  566. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bc_sGQ0U.js +0 -0
  567. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bdoqq8BI2.js +0 -0
  568. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BeGwcela.js +0 -0
  569. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Beywemwu.js +0 -0
  570. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BfbyNUB7.js +0 -0
  571. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bh7THQLS2.js +0 -0
  572. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BhKQO4Px.js +0 -0
  573. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BhPF9KW82.js +0 -0
  574. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BhjAJghj.js +0 -0
  575. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BiK3sWoz2.js +0 -0
  576. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BiX_3ZGn2.js +0 -0
  577. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BjSKRB-a2.js +0 -0
  578. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BjshL_xA2.js +0 -0
  579. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BkmU6oQY.js +0 -0
  580. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bkml37m-.js +0 -0
  581. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BldMJGpi.js +0 -0
  582. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bm3Qr25_2.js +0 -0
  583. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BmBupKYI2.js +0 -0
  584. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bmbr8zF3.js +0 -0
  585. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BnjxR4X6.js +0 -0
  586. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bnr-372i.js +0 -0
  587. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bnr-Ft3Y.js +0 -0
  588. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bo9Dl7tn.js +0 -0
  589. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BoEzQrVW.js +0 -0
  590. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BoK4YRpC2.js +0 -0
  591. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BolyLLo5.js +0 -0
  592. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BpBaBBm3.js +0 -0
  593. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BpJ9fpSU.js +0 -0
  594. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BqJ9I9M42.js +0 -0
  595. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bqx3koTc.js +0 -0
  596. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bri6UV-V.js +0 -0
  597. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BshRgckk.js +0 -0
  598. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BsuIFbdf2.js +0 -0
  599. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bt4sAq3f.js +0 -0
  600. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BtUnaqJ2.js +0 -0
  601. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Buu8uHmp2.js +0 -0
  602. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BvwLaU7c.js +0 -0
  603. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BvzEE6Lm.js +0 -0
  604. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bw1-c76v.js +0 -0
  605. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BwWrilGY2.js +0 -0
  606. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BwjZg7Kw2.js +0 -0
  607. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bx1FflLF.js +0 -0
  608. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bxkupp3x.js +0 -0
  609. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/By-L4I7w.js +0 -0
  610. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/By1ptfmn2.js +0 -0
  611. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Bz4Y3fRF.js +0 -0
  612. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/BzMNZVT72.js +0 -0
  613. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C-69Y6Pu.js +0 -0
  614. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C-LZuMrd.js +0 -0
  615. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C-RhCxcP2.js +0 -0
  616. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C-y9NEjX.js +0 -0
  617. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C25aelnV2.js +0 -0
  618. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C2shJFxU.js +0 -0
  619. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C3oCr-8k2.js +0 -0
  620. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C531GsRP2.js +0 -0
  621. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C5_-GSwl.js +0 -0
  622. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C5kJGiKi2.js +0 -0
  623. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C7h46wYY.js +0 -0
  624. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C8468PWD.js +0 -0
  625. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C8Ef5oNN.js +0 -0
  626. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C8q3xVCB.js +0 -0
  627. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C8r90Shi.js +0 -0
  628. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C96bnRGM.js +0 -0
  629. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C9St-qHN.js +0 -0
  630. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CAWjiWzg2.js +0 -0
  631. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CC-BCOei.js +0 -0
  632. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CC2rA5mh.js +0 -0
  633. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CC3Dc58n.js +0 -0
  634. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CC8GggWq2.js +0 -0
  635. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CCUjCBK52.js +0 -0
  636. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CD78tava2.js +0 -0
  637. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CDeNXAV0.js +0 -0
  638. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CFAvbRBv.js +0 -0
  639. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CFDCSoUG.js +0 -0
  640. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CH6Zxsf52.js +0 -0
  641. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CHKcdHUs2.js +0 -0
  642. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CHQ94UKr2.js +0 -0
  643. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CIPQ_RoX2.js +0 -0
  644. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CJ3rzSJv2.js +0 -0
  645. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CJ5SUZOH2.js +0 -0
  646. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CJNUlr67.js +0 -0
  647. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CLIur_dZ.js +0 -0
  648. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CMC9H7kb.js +0 -0
  649. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CMnkeXFt.js +0 -0
  650. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CO65HNi2.js +0 -0
  651. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/COtstiRA2.js +0 -0
  652. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/COyNsUt6.js +0 -0
  653. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CQRhyXHt.js +0 -0
  654. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CQUMS8QJ2.js +0 -0
  655. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CRal5XOA2.js +0 -0
  656. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CRfGWb83.js +0 -0
  657. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CRyZUaTi.js +0 -0
  658. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CTweb8Dz2.js +0 -0
  659. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CUKGrt9p2.js +0 -0
  660. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CUL-_UXV2.js +0 -0
  661. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CUP8soDG.js +0 -0
  662. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CVPISREU.js +0 -0
  663. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CVaqCwHa.js +0 -0
  664. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CW42rLZD.js +0 -0
  665. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CWDvEqlu2.js +0 -0
  666. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CXHoNUfW.js +0 -0
  667. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CXcZYQdg.js +0 -0
  668. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CXtmUGW6.js +0 -0
  669. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CXuuVbXE.js +0 -0
  670. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CZ3SG3_I2.js +0 -0
  671. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CZoCCMwk2.js +0 -0
  672. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CZsCp6_J.js +0 -0
  673. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CZymKofZ2.js +0 -0
  674. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/C_8bwKvT2.js +0 -0
  675. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CaLoWpdj2.js +0 -0
  676. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cb4Vim4T2.js +0 -0
  677. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CbKt6i1F2.js +0 -0
  678. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cba4tSYP.js +0 -0
  679. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CbdYpKc9.js +0 -0
  680. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CcEz-6AP2.js +0 -0
  681. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CcwsVR0C.js +0 -0
  682. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cd-sGgPF.js +0 -0
  683. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CdkpiU2Y2.js +0 -0
  684. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ceyelwdz.js +0 -0
  685. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cf85K_3V.js +0 -0
  686. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cf9Ao90m2.js +0 -0
  687. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CfSJPG6W2.js +0 -0
  688. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cfl0F_Ix.js +0 -0
  689. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CfvQ0GVj2.js +0 -0
  690. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ci7ol7o5.js +0 -0
  691. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cimd5fb32.js +0 -0
  692. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CioJR-lb.js +0 -0
  693. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CircleProgressbar.DG_Oo3ZB.css +0 -0
  694. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CjM6HreG.js +0 -0
  695. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CjSZG47B2.js +0 -0
  696. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ck9wOcVq.js +0 -0
  697. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CkJ3IzwM2.js +0 -0
  698. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CkN8TU5K.js +0 -0
  699. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CkRax0sH.js +0 -0
  700. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cl4KV_tk.js +0 -0
  701. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ClCothXP.js +0 -0
  702. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ClamHrr62.js +0 -0
  703. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cm7r79vr.js +0 -0
  704. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CnscBGsj2.js +0 -0
  705. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CoKYUvtC.js +0 -0
  706. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CoKk4mC0.js +0 -0
  707. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Con6PA_2.js +0 -0
  708. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CopQ2nXW2.js +0 -0
  709. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CowLSvep.js +0 -0
  710. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CpL23Fmb2.js +0 -0
  711. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CpdwwrfH.js +0 -0
  712. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CpzslTdj.js +0 -0
  713. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cr7JoK-F.js +0 -0
  714. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CrVSgIkM2.js +0 -0
  715. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cs2F2srj.js +0 -0
  716. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CsQS60Ue2.js +0 -0
  717. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CsvMBhTu.js +0 -0
  718. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cuy4t56v.js +0 -0
  719. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CximN0RY2.js +0 -0
  720. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CyQZr6J2.js +0 -0
  721. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CyiiZBUN2.js +0 -0
  722. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/CylTzRX72.js +0 -0
  723. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Cz7rf_X82.js +0 -0
  724. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Czk_mF82.js +0 -0
  725. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D-9WcGfc2.js +0 -0
  726. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D-V0WHGE2.js +0 -0
  727. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D-kcNTYM.js +0 -0
  728. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D-oSqn_W2.js +0 -0
  729. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D-ptJ9y-2.js +0 -0
  730. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D05T4iGw.js +0 -0
  731. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D0mw5jGK.js +0 -0
  732. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D1yN6wZY2.js +0 -0
  733. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D24BC_UT2.js +0 -0
  734. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D2ZwgM9U2.js +0 -0
  735. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D2mw--Fl2.js +0 -0
  736. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D2ymy_yS.js +0 -0
  737. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D3HTKQgj2.js +0 -0
  738. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D3hlyOfw2.js +0 -0
  739. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D4-rlkSU.js +0 -0
  740. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D5GhRiPb.js +0 -0
  741. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D5ROd09N2.js +0 -0
  742. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D5Retr0R2.js +0 -0
  743. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D5Z5IiLY2.js +0 -0
  744. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D8_NR6i12.js +0 -0
  745. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D94iqX0Y2.js +0 -0
  746. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DB-uxtVd.js +0 -0
  747. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DCQb3MpD.js +0 -0
  748. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DD7sRF69.js +0 -0
  749. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DDPgixDB.js +0 -0
  750. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DDe1Q-WN2.js +0 -0
  751. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DDpmG2fV2.js +0 -0
  752. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DDwmkQR0.js +0 -0
  753. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DEJw_qiA2.js +0 -0
  754. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DFBbRf0l.js +0 -0
  755. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DFfgcuRt.js +0 -0
  756. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DFwEHpFD.js +0 -0
  757. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DHBI_yxQ.js +0 -0
  758. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DHpiXF5c.js +0 -0
  759. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DIMkf-bt.js +0 -0
  760. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DISqw1ZD.js +0 -0
  761. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DItLkvgc2.js +0 -0
  762. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DK0GhfdP.js +0 -0
  763. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DKCQ3kY7.js +0 -0
  764. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DKSmMEZa2.js +0 -0
  765. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DLJdWeDZ2.js +0 -0
  766. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DLSXrvMj.js +0 -0
  767. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DMUM7wLl.js +0 -0
  768. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DMnEoi8l.js +0 -0
  769. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DNB37k3h2.js +0 -0
  770. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DOTl9kKz.js +0 -0
  771. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DOgf9of5.js +0 -0
  772. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DOwBwxAc2.js +0 -0
  773. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DP8dx3Mz.js +0 -0
  774. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DPDvM2ct.js +0 -0
  775. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DPJPAjQR.js +0 -0
  776. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DPUBG1Sa2.js +0 -0
  777. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DPZlj92U.js +0 -0
  778. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DQ-b8cau.js +0 -0
  779. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DQU07tlD.js +0 -0
  780. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DQUlB_uC.js +0 -0
  781. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DQwYfKfQ2.js +0 -0
  782. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DRFjx7u42.js +0 -0
  783. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DSh2HLQt2.js +0 -0
  784. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DT7zqm-g.js +0 -0
  785. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DTj74zXo2.js +0 -0
  786. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DV17i1UV2.js +0 -0
  787. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DV3o63ZY.js +0 -0
  788. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DVG0V4jx.js +0 -0
  789. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DVQuIRkW2.js +0 -0
  790. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DVvwPJMn2.js +0 -0
  791. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DWUE7pqF2.js +0 -0
  792. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DXG-b-1a.js +0 -0
  793. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DXgieCCJ.js +0 -0
  794. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DY43dlCC.js +0 -0
  795. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DYlRzrDj.js +0 -0
  796. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DZFCIeNp.js +0 -0
  797. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DZsh6Vsl2.js +0 -0
  798. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D_3yiDAS.js +0 -0
  799. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D_Lu-MrJ.js +0 -0
  800. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/D_Sm39l5.js +0 -0
  801. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DauUninz2.js +0 -0
  802. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DaxQctDl.js +0 -0
  803. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Db4fpp4X2.js +0 -0
  804. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DbInun42.js +0 -0
  805. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DcUUodPk.js +0 -0
  806. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DdJ6paNh.js +0 -0
  807. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DdL9SqIa.js +0 -0
  808. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/De02G7DS.js +0 -0
  809. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/De2hgUGE.js +0 -0
  810. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DezsRK8O.js +0 -0
  811. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Df2xbC6M.js +0 -0
  812. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DfC9-Oas2.js +0 -0
  813. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DgPtEepw2.js +0 -0
  814. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DgfQ8roX.js +0 -0
  815. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DhQhRRFW2.js +0 -0
  816. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DhmEMT882.js +0 -0
  817. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DiQii0fS.js +0 -0
  818. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DikR2-RP.js +0 -0
  819. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DipiWojk.js +0 -0
  820. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DjAgHZrJ2.js +0 -0
  821. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DkmNSMHY.js +0 -0
  822. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DkqhCAOL2.js +0 -0
  823. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dl3pNQBR2.js +0 -0
  824. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DlW2jO6L2.js +0 -0
  825. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DljXZpSz.js +0 -0
  826. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dm6T-vrV2.js +0 -0
  827. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DmHpPYUd2.js +0 -0
  828. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DmNVVboZ.js +0 -0
  829. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dmf8Y0ON2.js +0 -0
  830. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DnKPLd6d.js +0 -0
  831. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DnToyrRv2.js +0 -0
  832. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DoT8DRFX.js +0 -0
  833. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dp-2asp4.js +0 -0
  834. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DpFanUEy.js +0 -0
  835. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DpIdnCtC.js +0 -0
  836. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DpTtcPZs2.js +0 -0
  837. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DpW8JRZm.js +0 -0
  838. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DqJzYO7Y2.js +0 -0
  839. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DqT4cj-J.js +0 -0
  840. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DqXIJaHE.js +0 -0
  841. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DrH0SRf22.js +0 -0
  842. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ds29f9ZA.js +0 -0
  843. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Ds9iBrvx.js +0 -0
  844. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dsw3HnIE.js +0 -0
  845. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dt39crSB.js +0 -0
  846. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dt9aNFbE.js +0 -0
  847. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DtGle1nz2.js +0 -0
  848. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DtX02f_x2.js +0 -0
  849. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DuT2u1M92.js +0 -0
  850. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DxSv1ANE2.js +0 -0
  851. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dxp_UTNE.js +0 -0
  852. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DyeqKBoC.js +0 -0
  853. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Dyqgk9ID2.js +0 -0
  854. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/DytYwiiF.js +0 -0
  855. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/EUqPIrTm.js +0 -0
  856. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/EZH7P6f9.js +0 -0
  857. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/EoqKQiEy2.js +0 -0
  858. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/FIalSC7A.js +0 -0
  859. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/FXfnIlgg2.js +0 -0
  860. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/FvmIjYaQ2.js +0 -0
  861. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/HSRijeU2.js +0 -0
  862. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/HclGiUj8.js +0 -0
  863. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/HlOV9je9.js +0 -0
  864. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Hsn-rFuA.js +0 -0
  865. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Hza2DNlp.js +0 -0
  866. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/IXshMDJQ.js +0 -0
  867. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/IliqAppL.js +0 -0
  868. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Inter-VariableFont_slnt_wght.Cl4AQHp9.ttf +0 -0
  869. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/JVoApnG_.js +0 -0
  870. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/JaHKEXQh.js +0 -0
  871. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/JgXkd7uo2.js +0 -0
  872. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/JjuYFqoF.js +0 -0
  873. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/JpkrmRYq2.js +0 -0
  874. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/KfYW7BGn.js +0 -0
  875. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/KgIFLbLy.js +0 -0
  876. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/KhqzbbC32.js +0 -0
  877. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/L2jIIa9o.js +0 -0
  878. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/LO_BkMJ8.js +0 -0
  879. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/LRbiS5Dz.js +0 -0
  880. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/LiveTabs.rsQh4sN8.css +0 -0
  881. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Mi0eZJ_C2.js +0 -0
  882. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/NEE52Syq.js +0 -0
  883. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/NyRjDEkA2.js +0 -0
  884. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/O1vzaDvk2.js +0 -0
  885. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/OaeI3Ulg.js +0 -0
  886. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/OfUAv67B2.js +0 -0
  887. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ProgressStatusText.BQK0FaGL.css +0 -0
  888. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Q6FVf6Zo.js +0 -0
  889. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/QTnfLwEv.js +0 -0
  890. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/QZfQtQzF2.js +0 -0
  891. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/QoymgQo0.js +0 -0
  892. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/SOo6toE52.js +0 -0
  893. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/StrategiesSidebar.DVMKtiGP.css +0 -0
  894. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/TradeHistoryChart.Bs0aEPiQ.css +0 -0
  895. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/TtSlr_h_2.js +0 -0
  896. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/VbXTXTou.js +0 -0
  897. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/VuUr933P2.js +0 -0
  898. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/WA2gHESr.js +0 -0
  899. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/WF6tEroY2.js +0 -0
  900. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/WFnVOHr3.js +0 -0
  901. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/WZ5HE0X3.js +0 -0
  902. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Wy_umkB72.js +0 -0
  903. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/YdFKNLmY.js +0 -0
  904. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/Z5eAx3Zn2.js +0 -0
  905. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_3zCpt1T.js +0 -0
  906. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_7BVYBMY2.js +0 -0
  907. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_b8AQjYy.js +0 -0
  908. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_id_.B3a6JG34.css +0 -0
  909. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_id_.BCRDQrek.css +0 -0
  910. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/_id_.BRd1elCl.css +0 -0
  911. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/aQXfN9KN.js +0 -0
  912. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/apGZNcKz.js +0 -0
  913. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/atteXEGs.js +0 -0
  914. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/bTuwJoIa.js +0 -0
  915. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/bjCyB0Gn2.js +0 -0
  916. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/bpSru2N82.js +0 -0
  917. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ccMIPn_w.js +0 -0
  918. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/coSIg_O3.js +0 -0
  919. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/codicon.Brq4_Ui5.ttf +0 -0
  920. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/css.worker-B1A7g9RU.js +0 -0
  921. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/dLd1bcTA2.js +0 -0
  922. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/dnt9x4Qr.js +0 -0
  923. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/eDEyLi0S.js +0 -0
  924. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/editor.DNwT-hdg.css +0 -0
  925. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/entry.CkGiV5Q9.css +0 -0
  926. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/error-404.DjFB7pgG.css +0 -0
  927. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/error-500.BG9pmads.css +0 -0
  928. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/fmXr3nnJ.js +0 -0
  929. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/foABv0nJ.js +0 -0
  930. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/fwtXNY1n.js +0 -0
  931. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/gEsa7Idh.js +0 -0
  932. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/gG0NvZLm2.js +0 -0
  933. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/gp-XZpBa.js +0 -0
  934. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/grryJGmv.js +0 -0
  935. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/hBpBmjHp.js +0 -0
  936. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/hZRgR8Lc.js +0 -0
  937. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/hdxB67uV.js +0 -0
  938. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/html.worker-NdFMIQdB.js +0 -0
  939. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/i0X4ZdIN.js +0 -0
  940. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ibI1KQep.js +0 -0
  941. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/json.worker-Ax0gao5O.js +0 -0
  942. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/lP7_xLqx2.js +0 -0
  943. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/live.BHsUui2i.css +0 -0
  944. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/logo-dark.tKoQPl1k.svg +0 -0
  945. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/logo-light.CS4l4ePq.png +0 -0
  946. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/mAYmvPyL.js +0 -0
  947. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/mnTiCSRt2.js +0 -0
  948. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/monte-carlo.SA-Jni4T.css +0 -0
  949. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/nFMaYfgc.js +0 -0
  950. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/nR0dIlKu.js +0 -0
  951. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/nr791fC22.js +0 -0
  952. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/onAF5SnQ.js +0 -0
  953. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/oz_6vUea2.js +0 -0
  954. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/pQUz-uq3.js +0 -0
  955. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/pRr3cFVo.js +0 -0
  956. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/paCCX65n.js +0 -0
  957. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/pages.Kz8uii-H.css +0 -0
  958. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/qBoaT7Fk2.js +0 -0
  959. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/qpEHnBAB.js +0 -0
  960. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/rHIqefrb.js +0 -0
  961. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/sB-x3p7T.js +0 -0
  962. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/sBoK_t0W.js +0 -0
  963. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/significance-test.C3_9t58f.css +0 -0
  964. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/sltzmVWM2.js +0 -0
  965. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/strategies.CZAezJwX.css +0 -0
  966. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/toggleHighContrast.DUMOsFrl.css +0 -0
  967. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/ts.worker-CiiXQ93o.js +0 -0
  968. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/u9_Y1g7K2.js +0 -0
  969. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/uHUmCDd7.js +0 -0
  970. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/u_o9HDF2.js +0 -0
  971. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/uf1cV9ZP.js +0 -0
  972. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/uhdI0v042.js +0 -0
  973. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/v83TR0fG.js +0 -0
  974. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/wbypxrpR.js +0 -0
  975. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/xk2_4sNk2.js +0 -0
  976. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/xse2Sllu2.js +0 -0
  977. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/y2WM_oP32.js +0 -0
  978. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/y_x7m0Ik2.js +0 -0
  979. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/yjvMp0c6.js +0 -0
  980. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/zMsjhnnN2.js +0 -0
  981. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/_nuxt/zbKwAOr32.js +0 -0
  982. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicon.ico +0 -0
  983. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicons/android-chrome-192x192.png +0 -0
  984. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicons/android-chrome-512x512.png +0 -0
  985. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicons/apple-touch-icon.png +0 -0
  986. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicons/favicon-16x16.png +0 -0
  987. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/favicons/favicon-32x32.png +0 -0
  988. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/index.html +0 -0
  989. {jesse-3.2.1 → jesse-3.2.2}/jesse/static/robots.txt +0 -0
  990. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/__init__.py +0 -0
  991. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_app.py +0 -0
  992. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_candles.py +0 -0
  993. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_closed_trades.py +0 -0
  994. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_exchanges.py +0 -0
  995. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_logs.py +0 -0
  996. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_orderbook.py +0 -0
  997. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_orders.py +0 -0
  998. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_positions.py +0 -0
  999. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_tickers.py +0 -0
  1000. {jesse-3.2.1 → jesse-3.2.2}/jesse/store/state_trades.py +0 -0
  1001. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/CanAddClosedTradeToStore/__init__.py +0 -0
  1002. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression1/__init__.py +0 -0
  1003. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression2/__init__.py +0 -0
  1004. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression3/__init__.py +0 -0
  1005. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Strategy.py +0 -0
  1006. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test01/__init__.py +0 -0
  1007. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test02/__init__.py +0 -0
  1008. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test04/__init__.py +0 -0
  1009. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test05/__init__.py +0 -0
  1010. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test06/__init__.py +0 -0
  1011. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test07/__init__.py +0 -0
  1012. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test08/__init__.py +0 -0
  1013. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test09/__init__.py +0 -0
  1014. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test10/__init__.py +0 -0
  1015. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test11/__init__.py +0 -0
  1016. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test12/__init__.py +0 -0
  1017. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test13/__init__.py +0 -0
  1018. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test14/__init__.py +0 -0
  1019. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test15/__init__.py +0 -0
  1020. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test16/__init__.py +0 -0
  1021. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test17/__init__.py +0 -0
  1022. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test18/__init__.py +0 -0
  1023. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test19/__init__.py +0 -0
  1024. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test20/__init__.py +0 -0
  1025. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test21/__init__.py +0 -0
  1026. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test22/__init__.py +0 -0
  1027. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test23/__init__.py +0 -0
  1028. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test24/__init__.py +0 -0
  1029. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test25/__init__.py +0 -0
  1030. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test26/__init__.py +0 -0
  1031. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test27/__init__.py +0 -0
  1032. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test28/__init__.py +0 -0
  1033. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test29/__init__.py +0 -0
  1034. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test30/__init__.py +0 -0
  1035. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test31/__init__.py +0 -0
  1036. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test32/__init__.py +0 -0
  1037. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test33/__init__.py +0 -0
  1038. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test34/__init__.py +0 -0
  1039. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test35/__init__.py +0 -0
  1040. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test36/__init__.py +0 -0
  1041. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test37/__init__.py +0 -0
  1042. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test38/__init__.py +0 -0
  1043. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test39/__init__.py +0 -0
  1044. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test40/__init__.py +0 -0
  1045. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test41/__init__.py +0 -0
  1046. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test44/__init__.py +0 -0
  1047. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test45/__init__.py +0 -0
  1048. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test46/__init__.py +0 -0
  1049. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test47/__init__.py +0 -0
  1050. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/Test48/__init__.py +0 -0
  1051. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAddHorizontalLineToCandleChart/__init__.py +0 -0
  1052. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAddHorizontalLineToExtraChart/__init__.py +0 -0
  1053. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAddLineToCandleChart/__init__.py +0 -0
  1054. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAddLineToExtraChart/__init__.py +0 -0
  1055. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAfterMethod/__init__.py +0 -0
  1056. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestAverageEntryPriceProperty/__init__.py +0 -0
  1057. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders/__init__.py +0 -0
  1058. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot/__init__.py +0 -0
  1059. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestBaseAndQuoteAssetProperties/__init__.py +0 -0
  1060. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestBeforeMethod/__init__.py +0 -0
  1061. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestBeforeTerminate/__init__.py +0 -0
  1062. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong1/__init__.py +0 -0
  1063. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong2/__init__.py +0 -0
  1064. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort1/__init__.py +0 -0
  1065. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort2/__init__.py +0 -0
  1066. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition/__init__.py +0 -0
  1067. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanRunWithoutShorting/__init__.py +0 -0
  1068. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
  1069. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
  1070. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot/__init__.py +0 -0
  1071. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
  1072. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
  1073. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCannotSetStopLossOrderInGoLong/__init__.py +0 -0
  1074. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCannotSetTakeProfitOrderInGoLong/__init__.py +0 -0
  1075. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCannotSpendMoreThanAvailableBalance/__init__.py +0 -0
  1076. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
  1077. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
  1078. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCapitalPropertyRaisesNotImplementedError/__init__.py +0 -0
  1079. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestClosedTradeAfterExitingTrade/__init__.py +0 -0
  1080. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCommonWarmupStart/__init__.py +0 -0
  1081. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCurrentRouteIndex1/__init__.py +0 -0
  1082. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestCurrentRouteIndex2/__init__.py +0 -0
  1083. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDailyBalanceStoresPortfolioValue/__init__.py +0 -0
  1084. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDailyBalancesProperty/__init__.py +0 -0
  1085. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDataRoutes1/__init__.py +0 -0
  1086. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDataRoutes2/__init__.py +0 -0
  1087. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDefaultHyperparameters/__init__.py +0 -0
  1088. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestDnaMethod/__init__.py +0 -0
  1089. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestEmptyStrategy/__init__.py +0 -0
  1090. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestEntryOrdersAndExitOrdersProperties/__init__.py +0 -0
  1091. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestExchangeTypeProperty1/__init__.py +0 -0
  1092. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestExchangeTypeProperty2/__init__.py +0 -0
  1093. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestFuturesExchangeAvailableMargin/__init__.py +0 -0
  1094. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestGeneratedDataRouteExecutionBTC/__init__.py +0 -0
  1095. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestGeneratedDataRouteExecutionETH/__init__.py +0 -0
  1096. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestHasLongAndShortEntryOrdersPropertiesInFilters/__init__.py +0 -0
  1097. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestHasLongEntryOrdersProperty/__init__.py +0 -0
  1098. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestHasShortEntryOrdersProperty/__init__.py +0 -0
  1099. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestIncreasedAndReducedCount/__init__.py +0 -0
  1100. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestIncreasingShortPosition/__init__.py +0 -0
  1101. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin1/__init__.py +0 -0
  1102. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin2/__init__.py +0 -0
  1103. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin3/__init__.py +0 -0
  1104. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLeverageProperty1/__init__.py +0 -0
  1105. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLeverageProperty2/__init__.py +0 -0
  1106. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLiquidationInCrossModeForShortTrade/__init__.py +0 -0
  1107. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLiquidationInIsolatedModeForLongTrade/__init__.py +0 -0
  1108. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLiquidationInIsolatedModeForShortTrade/__init__.py +0 -0
  1109. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLogMethodInStrategyClass/__init__.py +0 -0
  1110. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLongLifecycleAcrossTradingModes/__init__.py +0 -0
  1111. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestLongSparseGap/__init__.py +0 -0
  1112. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMarkPrice/__init__.py +0 -0
  1113. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMarketOrderForLowPriceDifference/__init__.py +0 -0
  1114. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMetrics1/__init__.py +0 -0
  1115. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMultiInstrumentReplayA/__init__.py +0 -0
  1116. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMultiInstrumentReplayB/__init__.py +0 -0
  1117. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryLongPositions/__init__.py +0 -0
  1118. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryShortPositions/__init__.py +0 -0
  1119. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOnCancelMethod/__init__.py +0 -0
  1120. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOnClosePosition/__init__.py +0 -0
  1121. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOnRouteOpenPosition/__init__.py +0 -0
  1122. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOnRouteOpenPosition2/__init__.py +0 -0
  1123. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOptimizationIsolation/__init__.py +0 -0
  1124. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOrderIsStopLossProperty/__init__.py +0 -0
  1125. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py +0 -0
  1126. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOrderPriceCannotBeGreaterThanZero/__init__.py +0 -0
  1127. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOrderValueProperty/__init__.py +0 -0
  1128. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOrdersAreSortedBeforeExecution/__init__.py +0 -0
  1129. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestOversizedReduceOnlyExitAccounting/__init__.py +0 -0
  1130. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPortfolioValue/__init__.py +0 -0
  1131. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPortfolioValueIncludesPositionValueAndOpenOrdersValue/__init__.py +0 -0
  1132. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionExchangeTypeProperty1/__init__.py +0 -0
  1133. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionExchangeTypeProperty2/__init__.py +0 -0
  1134. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionOpenIncreaseReduceCloseEventsInSpot/__init__.py +0 -0
  1135. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionTotalCostProperty/__init__.py +0 -0
  1136. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionWithLeverage1/__init__.py +0 -0
  1137. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositionWithLeverage2/__init__.py +0 -0
  1138. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestPositions/__init__.py +0 -0
  1139. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestProperBalanceHanldingInSpotAfterOrderCancellation/__init__.py +0 -0
  1140. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestProtectiveOrdersAcrossTradingModes/__init__.py +0 -0
  1141. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestReduceOnlyMarketOrders/__init__.py +0 -0
  1142. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestRuleSignificanceAlignment/__init__.py +0 -0
  1143. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestRuleSignificanceFailure/__init__.py +0 -0
  1144. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestShortInSpot/__init__.py +0 -0
  1145. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestSparseTimestampRoutes/__init__.py +0 -0
  1146. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition/__init__.py +0 -0
  1147. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition/__init__.py +0 -0
  1148. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot/__init__.py +0 -0
  1149. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestStrategyChartsReport/__init__.py +0 -0
  1150. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestStrategyVariablesAreResetBeforeOpeningNewPosition/__init__.py +0 -0
  1151. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition/__init__.py +0 -0
  1152. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition/__init__.py +0 -0
  1153. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestTerminate/__init__.py +0 -0
  1154. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestTradingHours/__init__.py +0 -0
  1155. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestUsageOfShouldCancelRaisesNotImplementedError/__init__.py +0 -0
  1156. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestVanillaStrategy/__init__.py +0 -0
  1157. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestWalletBalance/__init__.py +0 -0
  1158. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/TestWithoutCancelMethod/__init__.py +0 -0
  1159. {jesse-3.2.1 → jesse-3.2.2}/jesse/strategies/__init__.py +0 -0
  1160. {jesse-3.2.1 → jesse-3.2.2}/jesse/testing_utils.py +0 -0
  1161. {jesse-3.2.1 → jesse-3.2.2}/jesse/utils.py +0 -0
  1162. {jesse-3.2.1 → jesse-3.2.2}/jesse.egg-info/dependency_links.txt +0 -0
  1163. {jesse-3.2.1 → jesse-3.2.2}/jesse.egg-info/entry_points.txt +0 -0
  1164. {jesse-3.2.1 → jesse-3.2.2}/jesse.egg-info/top_level.txt +0 -0
  1165. {jesse-3.2.1 → jesse-3.2.2}/setup.cfg +0 -0
  1166. {jesse-3.2.1 → jesse-3.2.2}/tests/__init__.py +0 -0
  1167. {jesse-3.2.1 → jesse-3.2.2}/tests/conftest.py +0 -0
  1168. {jesse-3.2.1 → jesse-3.2.2}/tests/data/__init__.py +0 -0
  1169. {jesse-3.2.1 → jesse-3.2.2}/tests/data/test_candles_0.py +0 -0
  1170. {jesse-3.2.1 → jesse-3.2.2}/tests/data/test_candles_1.py +0 -0
  1171. {jesse-3.2.1 → jesse-3.2.2}/tests/data/test_candles_indicators.py +0 -0
  1172. {jesse-3.2.1 → jesse-3.2.2}/tests/test_backtest.py +0 -0
  1173. {jesse-3.2.1 → jesse-3.2.2}/tests/test_backtest_session_chart_data.py +0 -0
  1174. {jesse-3.2.1 → jesse-3.2.2}/tests/test_broker.py +0 -0
  1175. {jesse-3.2.1 → jesse-3.2.2}/tests/test_candle_copy.py +0 -0
  1176. {jesse-3.2.1 → jesse-3.2.2}/tests/test_candle_service.py +0 -0
  1177. {jesse-3.2.1 → jesse-3.2.2}/tests/test_candle_timeframe_filter.py +0 -0
  1178. {jesse-3.2.1 → jesse-3.2.2}/tests/test_chart_data_serialization.py +0 -0
  1179. {jesse-3.2.1 → jesse-3.2.2}/tests/test_completed_trade.py +0 -0
  1180. {jesse-3.2.1 → jesse-3.2.2}/tests/test_config_safety.py +0 -0
  1181. {jesse-3.2.1 → jesse-3.2.2}/tests/test_conflicting_orders.py +0 -0
  1182. {jesse-3.2.1 → jesse-3.2.2}/tests/test_dynamic_numpy_array.py +0 -0
  1183. {jesse-3.2.1 → jesse-3.2.2}/tests/test_e2e_database.py +0 -0
  1184. {jesse-3.2.1 → jesse-3.2.2}/tests/test_exchange.py +0 -0
  1185. {jesse-3.2.1 → jesse-3.2.2}/tests/test_helpers.py +0 -0
  1186. {jesse-3.2.1 → jesse-3.2.2}/tests/test_historical_data_contracts.py +0 -0
  1187. {jesse-3.2.1 → jesse-3.2.2}/tests/test_import_and_backtest_request_boundaries.py +0 -0
  1188. {jesse-3.2.1 → jesse-3.2.2}/tests/test_import_candle_drivers.py +0 -0
  1189. {jesse-3.2.1 → jesse-3.2.2}/tests/test_import_candles.py +0 -0
  1190. {jesse-3.2.1 → jesse-3.2.2}/tests/test_import_candles_workflow.py +0 -0
  1191. {jesse-3.2.1 → jesse-3.2.2}/tests/test_indicators.py +0 -0
  1192. {jesse-3.2.1 → jesse-3.2.2}/tests/test_isolated_backtest.py +0 -0
  1193. {jesse-3.2.1 → jesse-3.2.2}/tests/test_live_session_chart_data.py +0 -0
  1194. {jesse-3.2.1 → jesse-3.2.2}/tests/test_live_strategy_charts.py +0 -0
  1195. {jesse-3.2.1 → jesse-3.2.2}/tests/test_lsp.py +0 -0
  1196. {jesse-3.2.1 → jesse-3.2.2}/tests/test_mcp_config.py +0 -0
  1197. {jesse-3.2.1 → jesse-3.2.2}/tests/test_mcp_credentials.py +0 -0
  1198. {jesse-3.2.1 → jesse-3.2.2}/tests/test_mcp_resources.py +0 -0
  1199. {jesse-3.2.1 → jesse-3.2.2}/tests/test_mcp_usage_limits.py +0 -0
  1200. {jesse-3.2.1 → jesse-3.2.2}/tests/test_metrics.py +0 -0
  1201. {jesse-3.2.1 → jesse-3.2.2}/tests/test_optimization_and_monte_carlo_session_failures.py +0 -0
  1202. {jesse-3.2.1 → jesse-3.2.2}/tests/test_order.py +0 -0
  1203. {jesse-3.2.1 → jesse-3.2.2}/tests/test_parent_strategy.py +0 -0
  1204. {jesse-3.2.1 → jesse-3.2.2}/tests/test_position.py +0 -0
  1205. {jesse-3.2.1 → jesse-3.2.2}/tests/test_price_gap_backtest.py +0 -0
  1206. {jesse-3.2.1 → jesse-3.2.2}/tests/test_progressbar.py +0 -0
  1207. {jesse-3.2.1 → jesse-3.2.2}/tests/test_real_strategy_regression.py +0 -0
  1208. {jesse-3.2.1 → jesse-3.2.2}/tests/test_research.py +0 -0
  1209. {jesse-3.2.1 → jesse-3.2.2}/tests/test_research_monte_carlo.py +0 -0
  1210. {jesse-3.2.1 → jesse-3.2.2}/tests/test_research_optimization_isolation.py +0 -0
  1211. {jesse-3.2.1 → jesse-3.2.2}/tests/test_research_session_lifecycle.py +0 -0
  1212. {jesse-3.2.1 → jesse-3.2.2}/tests/test_router.py +0 -0
  1213. {jesse-3.2.1 → jesse-3.2.2}/tests/test_rule_significance_testing.py +0 -0
  1214. {jesse-3.2.1 → jesse-3.2.2}/tests/test_session_scoped_configuration.py +0 -0
  1215. {jesse-3.2.1 → jesse-3.2.2}/tests/test_significance_test_session.py +0 -0
  1216. {jesse-3.2.1 → jesse-3.2.2}/tests/test_simulator_parity.py +0 -0
  1217. {jesse-3.2.1 → jesse-3.2.2}/tests/test_spot_mode.py +0 -0
  1218. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_candle.py +0 -0
  1219. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_exchanges.py +0 -0
  1220. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_logs.py +0 -0
  1221. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_orderbook.py +0 -0
  1222. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_orders.py +0 -0
  1223. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_ticker.py +0 -0
  1224. {jesse-3.2.1 → jesse-3.2.2}/tests/test_state_trades.py +0 -0
  1225. {jesse-3.2.1 → jesse-3.2.2}/tests/test_trading_hours.py +0 -0
  1226. {jesse-3.2.1 → jesse-3.2.2}/tests/test_trading_mode_contracts.py +0 -0
  1227. {jesse-3.2.1 → jesse-3.2.2}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jesse
3
- Version: 3.2.1
3
+ Version: 3.2.2
4
4
  Summary: A trading framework for cryptocurrencies
5
5
  Home-page: https://jesse.trade
6
6
  Author: Saleh Mir
@@ -48,7 +48,7 @@ Requires-Dist: ray
48
48
  Requires-Dist: eth-account~=0.13.5
49
49
  Requires-Dist: msgpack~=1.1.0
50
50
  Requires-Dist: starkbank-ecdsa~=1.1.0
51
- Requires-Dist: jesse-rust==1.2.0
51
+ Requires-Dist: jesse-rust==1.3.0
52
52
  Requires-Dist: mcp==1.28.1
53
53
  Requires-Dist: joblib~=1.5.3
54
54
  Requires-Dist: scikit-learn~=1.7.2; python_version < "3.11"
@@ -40,7 +40,13 @@ def install_live(strict: bool) -> None:
40
40
  default=False,
41
41
  help="Skip syncing the agent rules file (AGENTS.md / CLAUDE.md / mcp-rules.md) in the project directory.",
42
42
  )
43
- def run(skip_agent_rules: bool) -> None:
43
+ @click.option(
44
+ "--skip-lsp",
45
+ is_flag=True,
46
+ default=False,
47
+ help="Skip the Python Language Server for this run (disables editor code intelligence).",
48
+ )
49
+ def run(skip_agent_rules: bool, skip_lsp: bool) -> None:
44
50
  """Start the Jesse application server."""
45
51
  from jesse.services.env import is_test_env
46
52
 
@@ -102,11 +108,14 @@ def run(skip_agent_rules: bool) -> None:
102
108
  time.sleep(sleep_seconds)
103
109
  run_migrations()
104
110
 
105
- if not is_test_env():
111
+ if skip_lsp:
112
+ click.echo("Skipping Python Language Server for this run. Editor code intelligence will be unavailable.")
113
+
114
+ if not is_test_env() and not skip_lsp:
106
115
  try:
107
116
  from jesse.services.lsp import install_lsp_server
108
117
 
109
- install_lsp_server()
118
+ skip_lsp = not install_lsp_server(allow_skip=True)
110
119
  except Exception as e:
111
120
  print(jh.color(f"Error installing Python Language Server: {str(e)}", "red"))
112
121
  pass
@@ -124,7 +133,7 @@ def run(skip_agent_rules: bool) -> None:
124
133
 
125
134
  # Set global Jesse API configuration for MCP and other services
126
135
 
127
- if not is_test_env():
136
+ if not is_test_env() and not skip_lsp:
128
137
  try:
129
138
  from jesse.services.lsp import run_lsp_server
130
139
 
@@ -56,7 +56,7 @@ Jesse provides comprehensive documentation through MCP resources.
56
56
 
57
57
  Key resources include:
58
58
 
59
- - jesse://strategy - Strategy structure and required methods and How strategies execute candle-by-candle
59
+ - jesse://strategy - Strategy structure, candle-by-candle execution, and Trading Hours workflow for adapting traditional-market research to 24/7 exchanges
60
60
  - jesse://strategy_examples - Library of complete, worked example strategies (full, runnable references)
61
61
  - jesse://charts - Strategy chart APIs, update_chart lifecycle, and live intrabar behavior
62
62
  - jesse://indicator - Step-by-step guide for discovering and using indicators and Essential indicators and candle data access
@@ -114,10 +114,10 @@ High-signal Jesse strategy-authoring gotchas (full detail in jesse://strategy):
114
114
  - On **spot**, shorting is unsupported: `should_short()` must return `False`, leverage is always `1`, and `stop_loss`/`take_profit` must be set in `on_open_position()` (not `go_long()`).
115
115
  - Size from `self.available_margin` (or balance/capital), price, and `self.fee_rate` via sizing utilities (`size_to_qty`, `risk_to_qty`) — never hardcode a fixed quantity.
116
116
  - Market hours, sessions, "skip weekends", or a stock-linked instrument on a 24/7 exchange: define `trading_hours()` returning a dict with `timezone` and `hours` (days always explicit, no preset names), gate entries with `self.is_trading_hours`, and feed entry indicators `utils.filter_candles_by_hours(self.candles, self.trading_hours())`. Never hand-roll UTC-hour math or reassign `self.candles`, and never gate `update_position()`/exits by the schedule. See the Trading Hours section of jesse://strategy.
117
+ - For requests to adapt traditional-market research to 24/7 crypto trading, follow the Trading Hours adaptation workflow in `jesse://strategy`, even when the user does not mention sessions.
117
118
 
118
119
  For full structure, lifecycle, and complete runnable examples see jesse://strategy and jesse://strategy_examples.
119
120
 
120
-
121
121
  === STRATEGY DEVELOPMENT ===
122
122
 
123
123
  Improvement Workflow:
@@ -432,6 +432,66 @@ Rules:
432
432
 
433
433
  A complete class is in `jesse://strategy_examples` (SessionBreakout).
434
434
 
435
+ ### Adapting traditional-market research to 24/7 execution
436
+
437
+ Use this workflow for requests to prepare, adapt, port or make a strategy live-ready when
438
+ its research used traditional-market candles and its target is a continuously traded
439
+ crypto-exchange instrument. Examples include stock, index, forex or commodity research
440
+ moved to a corresponding tokenized instrument or perpetual. Recognize the intent even
441
+ without the words "trading hours". Ordinary crypto strategies do not acquire a session
442
+ restriction merely because their data came from a CSV.
443
+
444
+ Treat the session adaptation as one coordinated change, even when it needs several edits;
445
+ preserve the trading idea rather than performing unrelated strategy optimization.
446
+
447
+ Reference: [Trading Hours](https://docs.jesse.trade/docs/strategies/trading-hours).
448
+
449
+ 1. **Read the strategy and identify the mismatch.** Use MCP to inspect the strategy,
450
+ research settings and available route/data context. Distinguish the historical source
451
+ (for example Massive or Custom Data) from the execution venue and verify the target
452
+ symbol and spot/futures type. Determine the underlying market, timezone and the session
453
+ actually used in research, including regular versus extended hours. Ask for missing
454
+ material details rather than guessing a calendar or silently imposing US equity hours.
455
+ 2. **Define the intended schedule.** Implement `trading_hours()` using the dict above and
456
+ an IANA timezone, not fixed UTC offsets. Account for market breaks and overnight windows
457
+ where applicable. `closed` and `overrides` are explicit, year-specific dates: neither
458
+ holidays nor early closes are populated automatically. Do not claim complete holiday
459
+ coverage from a weekday schedule or copy example dates into a different trading year.
460
+ 3. **Make the history choice deliberate.** For consistent session selection, use the same
461
+ schedule in backtests and live trading. Imported data can include extended-hours bars;
462
+ it is not automatically regular-session-only. Returning `None` in backtests is an
463
+ intentional alternative when retaining the provider's own session is desired, not a
464
+ default migration shortcut. Revalidate if session selection changes the original research.
465
+ 4. **Adapt both entry decisions and their inputs.** Gate each enabled entry direction in
466
+ `should_long()`/`should_short()` with `self.is_trading_hours`. Create a `@property` plus
467
+ `@cached` session-candle accessor using `utils.filter_candles_by_hours(...)`. Trace the
468
+ signal's indicators, direct candle indexing, features and auxiliary `get_candles()`
469
+ inputs; filter the relevant history using the appropriate underlying market's schedule.
470
+ Do not blindly apply a stock calendar to an unrelated crypto input. Preserve existing
471
+ indicator parameters, signal rules and risk sizing. Never overwrite `self.candles`,
472
+ fabricate closure candles, or substitute a historical session close for the live price.
473
+ 5. **Check timeframe alignment and warm-up.** Candle filtering uses candle **open times**,
474
+ while the entry gate uses the current **decision time**, `self.time`. A bar opening
475
+ before the session is excluded even if it partly overlaps it. Intraday windows can
476
+ discard every UTC-midnight `1D` bar; use an appropriate full-day calendar for daily
477
+ routes and verify the local date mapping. Filtering does not realign or rebuild bars.
478
+ `warm_up_candles` counts raw candles before filtering: size it for the longest required
479
+ lookback on each relevant input, including weekends/closures, and verify enough retained
480
+ candles remain. Do not assume one fixed multiplier works across timeframes and calendars.
481
+ 6. **Keep risk management active.** Do not gate `update_position()`, stop-loss, take-profit
482
+ or exits by market hours, and do not flatten at the close unless requested. Make the
483
+ unfilled-entry policy explicit: cancel at the first execution outside the session or
484
+ retain overnight orders as intended. Preserve other cancellation conditions when adding
485
+ the close condition. Cancellation is evaluated on execution ticks, not guaranteed at
486
+ the exact wall-clock close. Preserve the target venue's spot/futures order rules.
487
+ 7. **Verify and explain the adaptation.** Read back the saved code and use MCP backtests
488
+ with the selected session and adequate warm-up. Check session boundaries, weekend gaps
489
+ and relevant date exceptions in the available data. State when target-venue history or
490
+ another required check is unavailable. Matching session selection does not make prices,
491
+ bar alignment, liquidity, fees or fills identical between underlying and tokenized
492
+ instruments. Report the calendar, history choice, cancellation policy and actual
493
+ validation performed; preparing a strategy is not evidence of a running live session.
494
+
435
495
  ## Charting Helpers
436
496
 
437
497
  These `Strategy` methods add lines and levels to interactive backtest, paper,
@@ -52,8 +52,16 @@ mcp_config.JESSE_PASSWORD = args.password
52
52
  mcp_config.MCP_PORT = args.port
53
53
  mcp_config.MCP_URL = f"http://localhost:{args.port}/mcp"
54
54
 
55
- # Create the MCP server instance
56
- mcp = FastMCP("Jesse MCP Server", host=MCP_HOST, port=args.port, json_response=True)
55
+ # Advertise this workflow during initialization, including to clients without local agent rules.
56
+ mcp = FastMCP(
57
+ "Jesse MCP Server", host=MCP_HOST, port=args.port, json_response=True,
58
+ instructions=(
59
+ "When asked to prepare, adapt, port, or deploy a strategy researched on traditional-market "
60
+ "data for a 24/7 crypto exchange (including tokenized or stock-linked instruments), read "
61
+ "jesse://strategy, especially Trading Hours and its adaptation workflow, before editing. "
62
+ "Recognize equivalent requests even when the user does not mention trading hours."
63
+ ),
64
+ )
57
65
 
58
66
  # Register all available resources
59
67
  from jesse.mcp.resources import register_resources
@@ -50,6 +50,11 @@ def register_strategy_tools(mcp):
50
50
  The provided content must be valid Python code following Jesse's Strategy
51
51
  class structure with proper imports and method implementations.
52
52
 
53
+ Traditional-market adaptation:
54
+ When preparing traditional-market research for a 24/7 crypto exchange,
55
+ read the Trading Hours adaptation workflow in `jesse://strategy` first,
56
+ even if the user does not explicitly request session filtering.
57
+
53
58
  Parameters:
54
59
  name (str): Name for the new strategy class and file
55
60
  Requirements: Valid Python identifier, no spaces, unique within Jesse
@@ -268,6 +273,11 @@ def register_strategy_tools(mcp):
268
273
  Use after create_strategy() to see the template, or to examine existing
269
274
  strategies before modification with write_strategy().
270
275
 
276
+ Traditional-market adaptation:
277
+ For requests to port research to tokenized instruments or a 24/7 crypto
278
+ exchange, also read the Trading Hours adaptation workflow in `jesse://strategy`.
279
+ Inspect every indicator's candle source and the existing entry/exit policies.
280
+
271
281
  Parameters:
272
282
  name (str): Exact name of the strategy to read (case-sensitive)
273
283
  Must match the class name and filename exactly
@@ -399,6 +409,12 @@ def register_strategy_tools(mcp):
399
409
  Use read_strategy() first to get current content, modify it, then save
400
410
  with this function. Changes take effect immediately for new backtests.
401
411
 
412
+ Traditional-market adaptation:
413
+ Follow the Trading Hours adaptation workflow in `jesse://strategy` when
414
+ porting traditional-market research to a 24/7 crypto exchange. Entry gates
415
+ alone are insufficient: use session-filtered history for the relevant
416
+ indicators, verify warm-up, and preserve round-the-clock position management.
417
+
402
418
  Parameters:
403
419
  name (str): Exact name of the strategy to update (case-sensitive)
404
420
  Must match existing strategy name exactly
@@ -1,4 +1,13 @@
1
1
  import os
2
+ import json
3
+ import select
4
+ import subprocess
5
+ import sys
6
+ import time
7
+ from contextlib import contextmanager
8
+ from typing import Callable, Iterator
9
+
10
+ import click
2
11
  import platform
3
12
  import requests
4
13
  import shutil
@@ -129,138 +138,143 @@ def is_lsp_update_available() -> bool:
129
138
  raise Exception(f"Error checking for LSP update: {str(e)}")
130
139
 
131
140
 
132
- def install_lsp_server() -> None:
133
- """
134
- Downloads and installs the Python Language Server from GitHub releases
135
- based on the current platform and architecture.
136
- """
137
- # Define the target directory
138
- from jesse import JESSE_DIR
139
-
140
- target_dir = os.path.join(JESSE_DIR, 'lsp')
141
-
142
- #Update process
143
- # If the lsp directory exists(installed), check if an update is available, if so, delete the lsp directory and all its contents and re-install it
144
- if os.path.exists(target_dir):
145
- try:
146
- should_update_lsp = is_lsp_update_available() # Check if an update is available
141
+ class _SkipLSP(Exception):
142
+ """Signal that startup should continue without the optional language server."""
147
143
 
148
- if should_update_lsp:
149
- # Delete the lsp directory and all its contents
150
- shutil.rmtree(target_dir, ignore_errors=True)
151
- # Re-install the Python Language Server
152
- return install_lsp_server()
153
- except Exception as e:
154
- print(jh.color(f"Error checking for LSP update: {str(e)}", 'yellow'))
155
- pass
156
-
157
- #Normal installation process
158
- #Define the start script based on the platform
159
- start_script = None
160
- if platform.system().lower() == 'windows':
161
- start_script = os.path.join(target_dir, 'start.bat')
162
- else:
163
- start_script = os.path.join(target_dir, 'start.sh')
164
-
165
-
166
- # Skip if already exists
167
- if os.path.exists(target_dir) and os.path.exists(start_script):
168
- if jh.is_debuggable('lsp_installer'):
169
- print(f"Python Language Server already exists at {target_dir}")
144
+
145
+ @contextmanager
146
+ def _skip_key_reader(enabled: bool) -> Iterator[Callable[[], bool]]:
147
+ """Read a single key without Enter, restoring terminal settings on every exit."""
148
+ if not enabled or not sys.stdin.isatty():
149
+ yield lambda: False
170
150
  return
171
-
172
- # If the start script does not exist, delete the lsp directory and all its contents and re-install it
173
- if not os.path.exists(start_script):
151
+
152
+ if os.name == 'nt':
153
+ # These modules are platform-specific and cannot be imported unconditionally.
154
+ import msvcrt
155
+
156
+ def skip_pressed() -> bool:
157
+ return msvcrt.kbhit() and msvcrt.getwch().lower() == 's'
158
+
159
+ yield skip_pressed
160
+ else:
161
+ import termios
162
+ import tty
163
+
164
+ fd = sys.stdin.fileno()
165
+ original = termios.tcgetattr(fd)
174
166
  try:
175
- #delete the lsp directory and all its contents
176
- shutil.rmtree(target_dir, ignore_errors=True)
177
- except Exception as e:
178
- pass
179
-
180
- # Install the Python Language Server
181
- try:
182
- # Determine the platform-specific package name
167
+ # cbreak keeps Ctrl+C functional while allowing S without a newline.
168
+ tty.setcbreak(fd)
169
+ yield lambda: bool(select.select([fd], [], [], 0)[0]) and os.read(fd, 1).lower() == b's'
170
+ finally:
171
+ termios.tcsetattr(fd, termios.TCSADRAIN, original)
172
+
173
+
174
+ def _download_lsp_file(url: str, destination: str, skip_pressed: Callable[[], bool]) -> None:
175
+ """Keep stalled network I/O in a disposable process so skipping is immediate."""
176
+ downloader = os.path.join(os.path.dirname(__file__), 'lsp_download.py')
177
+ with subprocess.Popen(
178
+ [sys.executable, downloader, url, destination],
179
+ stdin=subprocess.DEVNULL,
180
+ ) as process:
183
181
  try:
182
+ while process.poll() is None:
183
+ if skip_pressed():
184
+ raise _SkipLSP()
185
+ # Poll often enough for responsive keys without busy-waiting.
186
+ time.sleep(0.1)
187
+ if process.returncode:
188
+ raise Exception("Failed to download Python Language Server files")
189
+ finally:
190
+ if process.poll() is None:
191
+ process.terminate()
192
+ try:
193
+ # Bound cleanup even if a child cannot shut down normally.
194
+ process.wait(timeout=1)
195
+ except subprocess.TimeoutExpired:
196
+ process.kill()
197
+ process.wait()
198
+
199
+
200
+ def install_lsp_server(allow_skip: bool = False) -> bool:
201
+ """Install/update the language server; return False when startup skips it."""
202
+ from jesse import JESSE_DIR
203
+
204
+ target_dir = os.path.join(JESSE_DIR, 'lsp')
205
+ start_name = 'start.bat' if platform.system().lower() == 'windows' else 'start.sh'
206
+ installed = os.path.isfile(os.path.join(target_dir, start_name))
207
+ interactive = allow_skip and sys.stdin.isatty()
208
+ if interactive:
209
+ click.echo("Checking Python Language Server. Press S at any time while downloading to skip for this run.")
210
+ elif allow_skip:
211
+ click.echo("Checking Python Language Server. Use 'jesse run --skip-lsp' to skip it.")
212
+
213
+ try:
214
+ with _skip_key_reader(interactive) as skip_pressed, tempfile.TemporaryDirectory() as temp_dir:
215
+ release_file = os.path.join(temp_dir, 'release.json')
216
+ try:
217
+ _download_lsp_file(LSP_RELEASE_URL, release_file, skip_pressed)
218
+ with open(release_file) as f:
219
+ release_data = json.load(f)
220
+ except _SkipLSP:
221
+ raise
222
+ except Exception:
223
+ if installed:
224
+ click.echo(jh.color("Could not check for LSP updates. Using the installed version.", 'yellow'))
225
+ return True
226
+ raise
227
+
228
+ latest_version = release_data.get('tag_name', '').lstrip('v')
229
+ current_version = _get_lsp_version()
230
+ if installed and (not current_version or _compare_versions(current_version, latest_version) >= 0):
231
+ return True
232
+
184
233
  package_name = _get_platform_package_name()
185
- except Exception as e:
186
- raise Exception(f"Cannot determine platform package name: {str(e)}")
187
-
188
- print(f"Detected platform package: {package_name}")
189
-
190
- # Get the latest release
191
- global LSP_RELEASE_URL
192
- response = requests.get(LSP_RELEASE_URL, timeout=10)
193
- response.raise_for_status()
194
-
195
- release_data = response.json()
196
-
197
- # Find the appropriate asset for this platform
198
- download_url = None
199
- for asset in release_data.get('assets', []):
200
- if asset['name'] == package_name:
201
- download_url = asset['browser_download_url']
202
- break
203
-
204
- if not download_url:
205
- raise Exception(f"Package '{package_name}' not found in latest release")
206
-
207
- print(f"Downloading Python Language Server from {download_url}...")
208
-
209
- # Download the package
210
- with tempfile.TemporaryDirectory() as temp_dir:
234
+ click.echo(f"Detected platform package: {package_name}")
235
+ download_url = next((asset['browser_download_url'] for asset in release_data.get('assets', [])
236
+ if asset['name'] == package_name), None)
237
+ if not download_url:
238
+ raise Exception(f"Package '{package_name}' not found in latest release")
239
+
240
+ click.echo(f"Downloading Python Language Server from {download_url}...")
211
241
  temp_file = os.path.join(temp_dir, package_name)
212
- extract_temp_dir = os.path.join(temp_dir, 'extracted')
213
-
214
- with requests.get(download_url, stream=True, timeout=30) as r:
215
- r.raise_for_status()
216
- with open(temp_file, 'wb') as f:
217
- for chunk in r.iter_content(chunk_size=8192):
218
- f.write(chunk)
219
-
220
- # Extract to temporary directory first
221
- os.makedirs(extract_temp_dir, exist_ok=True)
222
-
242
+ _download_lsp_file(download_url, temp_file, skip_pressed)
243
+ if skip_pressed():
244
+ raise _SkipLSP()
245
+
246
+ extract_dir = os.path.join(temp_dir, 'extracted')
247
+ os.makedirs(extract_dir)
223
248
  if package_name.endswith('.tar.gz'):
224
249
  with tarfile.open(temp_file, 'r:gz') as tar:
225
- tar.extractall(extract_temp_dir)
226
- elif package_name.endswith('.zip'):
227
- with zipfile.ZipFile(temp_file, 'r') as zip_ref:
228
- zip_ref.extractall(extract_temp_dir)
229
-
230
- # Flatten the directory structure
231
- # If there's a single top-level directory, move its contents up
232
- extracted_items = os.listdir(extract_temp_dir)
233
-
234
- if len(extracted_items) == 1 and os.path.isdir(os.path.join(extract_temp_dir, extracted_items[0])):
235
- # Single directory - move its contents
236
- source_dir = os.path.join(extract_temp_dir, extracted_items[0])
250
+ tar.extractall(extract_dir)
237
251
  else:
238
- # Multiple items at top level - use as is
239
- source_dir = extract_temp_dir
240
-
241
- # Create target directory and move contents
242
- os.makedirs(target_dir, exist_ok=True)
243
-
244
- for item in os.listdir(source_dir):
245
- source_path = os.path.join(source_dir, item)
246
- dest_path = os.path.join(target_dir, item)
247
- if os.path.isdir(source_path):
248
- shutil.copytree(source_path, dest_path)
249
- else:
250
- shutil.copy2(source_path, dest_path)
251
-
252
- # Save the lsp version to file
253
- lsp_version = release_data.get('tag_name', '').lstrip('v')
254
- _save_lsp_version(lsp_version)
255
-
256
- print(jh.color("✓ Python Language Server installed successfully", 'green'))
257
-
258
- except requests.RequestException as e:
259
- raise Exception(f"Failed to download LSP server: {str(e)}")
260
- except Exception as e:
261
- raise Exception(f"Error installing LSP server: {str(e)}")
262
-
263
-
252
+ with zipfile.ZipFile(temp_file, 'r') as archive:
253
+ archive.extractall(extract_dir)
254
+
255
+ extracted_items = os.listdir(extract_dir)
256
+ if len(extracted_items) == 1 and os.path.isdir(os.path.join(extract_dir, extracted_items[0])):
257
+ source_dir = os.path.join(extract_dir, extracted_items[0])
258
+ else:
259
+ source_dir = extract_dir
260
+ if not os.path.isfile(os.path.join(source_dir, start_name)):
261
+ raise Exception("Downloaded Python Language Server package has no start script")
262
+
263
+ # Keep any working installation intact until the download and extraction succeed.
264
+ # Key cancellation ends before publishing files into the installation directory.
265
+ if skip_pressed():
266
+ raise _SkipLSP()
267
+ if os.path.exists(target_dir):
268
+ shutil.rmtree(target_dir)
269
+ shutil.copytree(source_dir, target_dir)
270
+ _save_lsp_version(latest_version)
271
+ click.echo(jh.color("✓ Python Language Server installed successfully", 'green'))
272
+ return True
273
+ except _SkipLSP:
274
+ click.echo("Skipping Python Language Server for this run. Editor code intelligence will be unavailable.")
275
+ return False
276
+
277
+
264
278
  def run_lsp_server():
265
279
  """
266
280
  Runs the Python Language Server.
@@ -0,0 +1,23 @@
1
+ """Standalone download worker; avoids importing Jesse or touching its installation."""
2
+ import sys
3
+
4
+ import requests
5
+
6
+
7
+ def download(url: str, destination: str) -> None:
8
+ """Stream into a caller-owned temporary file that is removed after cancellation."""
9
+ # Bound connection and stalled reads; the parent can terminate us sooner on S.
10
+ with requests.get(url, stream=True, timeout=(10, 30)) as response:
11
+ response.raise_for_status()
12
+ with open(destination, 'wb') as output:
13
+ # Small chunks bound memory usage regardless of the package size.
14
+ for chunk in response.iter_content(chunk_size=8192):
15
+ output.write(chunk)
16
+
17
+
18
+ if __name__ == '__main__':
19
+ try:
20
+ download(sys.argv[1], sys.argv[2])
21
+ except Exception as exc:
22
+ sys.stderr.write(f"Python Language Server download failed: {exc}\n")
23
+ sys.exit(1)
@@ -27,6 +27,7 @@ from typing import Dict, List, Optional, Tuple
27
27
  from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
28
28
 
29
29
  import numpy as np
30
+ from jesse_rust import filter_candles_by_intervals, trading_hours_mask
30
31
 
31
32
  TradingHoursSpec = Optional[dict]
32
33
 
@@ -227,29 +228,30 @@ class TradingHours:
227
228
  return True
228
229
  return False
229
230
 
231
+ def _intervals_for_timestamps(self, timestamps: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
232
+ """Compile the enclosing local dates, including yesterday's overnight windows."""
233
+ first_day = self._local_date(int(timestamps.min())) - _ONE_DAY
234
+ last_day = self._local_date(int(timestamps.max()))
235
+ return self._merged_intervals(first_day, last_day)
236
+
230
237
  def mask(self, timestamps: np.ndarray) -> np.ndarray:
231
238
  """Boolean mask marking which UTC-millisecond timestamps are inside the schedule."""
232
239
  timestamps = np.asarray(timestamps, dtype=np.int64)
233
- result = np.zeros(len(timestamps), dtype=bool)
234
240
  if len(timestamps) == 0:
235
- return result
236
-
237
- first_day = self._local_date(int(timestamps.min())) - _ONE_DAY
238
- last_day = self._local_date(int(timestamps.max()))
239
- starts, ends = self._merged_intervals(first_day, last_day)
240
- if len(starts) == 0:
241
- return result
242
-
243
- index = np.searchsorted(starts, timestamps, side='right') - 1
244
- inside_some_start = index >= 0
245
- result[inside_some_start] = timestamps[inside_some_start] < ends[index[inside_some_start]]
246
- return result
241
+ return np.zeros(0, dtype=bool)
242
+ starts, ends = self._intervals_for_timestamps(timestamps)
243
+ return trading_hours_mask(timestamps, starts, ends)
247
244
 
248
245
  def filter_candles(self, candles: np.ndarray) -> np.ndarray:
249
246
  """Rows whose open timestamp (column 0) is inside the schedule, in original order."""
250
247
  if len(candles) == 0:
251
248
  return candles
252
- return candles[self.mask(candles[:, 0])]
249
+ timestamps = np.asarray(candles[:, 0], dtype=np.int64)
250
+ starts, ends = self._intervals_for_timestamps(timestamps)
251
+ if candles.dtype == np.float64:
252
+ return filter_candles_by_intervals(candles, timestamps, starts, ends)
253
+ # Research arrays may have another dtype; retain it instead of coercing OHLCV.
254
+ return candles[trading_hours_mask(timestamps, starts, ends)]
253
255
 
254
256
 
255
257
  # ---- lookup -------------------------------------------------------------------
@@ -0,0 +1 @@
1
+ __version__ = "3.2.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jesse
3
- Version: 3.2.1
3
+ Version: 3.2.2
4
4
  Summary: A trading framework for cryptocurrencies
5
5
  Home-page: https://jesse.trade
6
6
  Author: Saleh Mir
@@ -48,7 +48,7 @@ Requires-Dist: ray
48
48
  Requires-Dist: eth-account~=0.13.5
49
49
  Requires-Dist: msgpack~=1.1.0
50
50
  Requires-Dist: starkbank-ecdsa~=1.1.0
51
- Requires-Dist: jesse-rust==1.2.0
51
+ Requires-Dist: jesse-rust==1.3.0
52
52
  Requires-Dist: mcp==1.28.1
53
53
  Requires-Dist: joblib~=1.5.3
54
54
  Requires-Dist: scikit-learn~=1.7.2; python_version < "3.11"
@@ -447,6 +447,7 @@ jesse/services/jesse_trade.py
447
447
  jesse/services/live_chart_service.py
448
448
  jesse/services/logger.py
449
449
  jesse/services/lsp.py
450
+ jesse/services/lsp_download.py
450
451
  jesse/services/metrics.py
451
452
  jesse/services/migrator.py
452
453
  jesse/services/multiprocessing.py
@@ -31,7 +31,7 @@ ray
31
31
  eth-account~=0.13.5
32
32
  msgpack~=1.1.0
33
33
  starkbank-ecdsa~=1.1.0
34
- jesse-rust==1.2.0
34
+ jesse-rust==1.3.0
35
35
  mcp==1.28.1
36
36
  joblib~=1.5.3
37
37
  matplotlib~=3.10.3
@@ -31,7 +31,7 @@ ray
31
31
  eth-account~=0.13.5
32
32
  msgpack~=1.1.0
33
33
  starkbank-ecdsa~=1.1.0
34
- jesse-rust==1.2.0
34
+ jesse-rust==1.3.0
35
35
  mcp==1.28.1
36
36
  joblib~=1.5.3
37
37
  scikit-learn~=1.7.2; python_version < "3.11"
@@ -3,7 +3,7 @@ from pathlib import Path
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  # also change in version.py
6
- VERSION = "3.2.1"
6
+ VERSION = "3.2.2"
7
7
  DESCRIPTION = "A trading framework for cryptocurrencies"
8
8
  BASE_DIR = Path(__file__).resolve().parent
9
9
 
@@ -1 +0,0 @@
1
- __version__ = "3.2.1"
File without changes
File without changes
File without changes
File without changes