dexbot 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +4 -3
  3. package/analysis/README.md +1 -2
  4. package/analysis/ama_fitting/fetch_lp_candles.ts +1 -9
  5. package/analysis/ama_fitting/package.json +1 -1
  6. package/analysis/analyze_derivatives.ts +1 -1
  7. package/analysis/bot_usage/discover_bot_accounts.ts +12 -6
  8. package/analysis/resolve_source.ts +11 -1
  9. package/analysis/results/ama_sweep_results_lp_pool_133_1h.json +2455 -0
  10. package/analysis/results/bot_fitting_results_lp_pool_133_1h.json +218 -0
  11. package/analysis/tradingview/README.md +32 -10
  12. package/analysis/tradingview/analyze_tradingview.ts +118 -3
  13. package/analysis/tradingview/h-bts_tradingview.html +1570 -0
  14. package/analysis/tradingview/t-bts_tradingview.html +1570 -0
  15. package/analysis/tradingview/tradingview_uplot_chart_generator.ts +1392 -125
  16. package/analysis/trend_detection/package.json +1 -1
  17. package/claw/docs/DEXBOT2_TUNING_CHEAT_SHEET.md +1 -1
  18. package/claw/modules/dexbot_profiles.ts +22 -2
  19. package/claw/package.json +1 -1
  20. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  21. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  22. package/claw/skills/launcher-ops/references/launcher-workflow.md +1 -1
  23. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  24. package/claw/tests/test_dexbot_profiles.ts +65 -0
  25. package/dist/analysis/ama_fitting/fetch_lp_candles.js +1 -9
  26. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -1
  27. package/dist/analysis/analyze_derivatives.js +1 -1
  28. package/dist/analysis/bot_usage/discover_bot_accounts.js +11 -6
  29. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -1
  30. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +2 -0
  31. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -1
  32. package/dist/analysis/resolve_source.d.ts +1 -0
  33. package/dist/analysis/resolve_source.d.ts.map +1 -1
  34. package/dist/analysis/resolve_source.js +8 -1
  35. package/dist/analysis/resolve_source.js.map +1 -1
  36. package/dist/analysis/tradingview/analyze_tradingview.d.ts +8 -0
  37. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -1
  38. package/dist/analysis/tradingview/analyze_tradingview.js +137 -3
  39. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -1
  40. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +5 -1
  41. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
  42. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1387 -125
  43. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
  44. package/dist/bot.js +1 -1
  45. package/dist/bot.js.map +1 -1
  46. package/dist/dexbot.js +3 -3
  47. package/dist/dexbot.js.map +1 -1
  48. package/dist/market_adapter/ama_signal_runner.js +2 -2
  49. package/dist/market_adapter/candle_utils.d.ts +6 -0
  50. package/dist/market_adapter/candle_utils.d.ts.map +1 -1
  51. package/dist/market_adapter/candle_utils.js +6 -0
  52. package/dist/market_adapter/candle_utils.js.map +1 -1
  53. package/dist/market_adapter/core/asymmetric_bounds.d.ts +33 -1
  54. package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -1
  55. package/dist/market_adapter/core/asymmetric_bounds.js +38 -1
  56. package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
  57. package/dist/market_adapter/core/kibana_candles.d.ts +17 -1
  58. package/dist/market_adapter/core/kibana_candles.d.ts.map +1 -1
  59. package/dist/market_adapter/core/kibana_candles.js +101 -19
  60. package/dist/market_adapter/core/kibana_candles.js.map +1 -1
  61. package/dist/market_adapter/core/kibana_client.d.ts +2 -0
  62. package/dist/market_adapter/core/kibana_client.d.ts.map +1 -1
  63. package/dist/market_adapter/core/kibana_client.js +31 -4
  64. package/dist/market_adapter/core/kibana_client.js.map +1 -1
  65. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
  66. package/dist/market_adapter/core/market_adapter_service.js +0 -6
  67. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  68. package/dist/market_adapter/inputs/fetch_book_data.d.ts +14 -0
  69. package/dist/market_adapter/inputs/fetch_book_data.d.ts.map +1 -0
  70. package/dist/market_adapter/inputs/fetch_book_data.js +138 -0
  71. package/dist/market_adapter/inputs/fetch_book_data.js.map +1 -0
  72. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
  73. package/dist/market_adapter/inputs/fetch_lp_data.d.ts +16 -2
  74. package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
  75. package/dist/market_adapter/inputs/fetch_lp_data.js +109 -281
  76. package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
  77. package/dist/market_adapter/inputs/kibana_feed_source.d.ts +87 -0
  78. package/dist/market_adapter/inputs/kibana_feed_source.d.ts.map +1 -0
  79. package/dist/market_adapter/inputs/kibana_feed_source.js +570 -0
  80. package/dist/market_adapter/inputs/kibana_feed_source.js.map +1 -0
  81. package/dist/market_adapter/inputs/kibana_source.d.ts.map +1 -1
  82. package/dist/market_adapter/inputs/kibana_source.js +10 -5
  83. package/dist/market_adapter/inputs/kibana_source.js.map +1 -1
  84. package/dist/market_adapter/inputs/window_cache.d.ts +166 -0
  85. package/dist/market_adapter/inputs/window_cache.d.ts.map +1 -0
  86. package/dist/market_adapter/inputs/window_cache.js +500 -0
  87. package/dist/market_adapter/inputs/window_cache.js.map +1 -0
  88. package/dist/market_adapter/interval_utils.d.ts +8 -1
  89. package/dist/market_adapter/interval_utils.d.ts.map +1 -1
  90. package/dist/market_adapter/interval_utils.js +14 -1
  91. package/dist/market_adapter/interval_utils.js.map +1 -1
  92. package/dist/modules/account_bots.d.ts +1 -0
  93. package/dist/modules/account_bots.d.ts.map +1 -1
  94. package/dist/modules/account_bots.js +21 -5
  95. package/dist/modules/account_bots.js.map +1 -1
  96. package/dist/modules/account_orders.d.ts +25 -4
  97. package/dist/modules/account_orders.d.ts.map +1 -1
  98. package/dist/modules/account_orders.js +67 -4
  99. package/dist/modules/account_orders.js.map +1 -1
  100. package/dist/modules/bitshares-native/chain_client.d.ts +2 -0
  101. package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -1
  102. package/dist/modules/bitshares-native/chain_client.js +3 -1
  103. package/dist/modules/bitshares-native/chain_client.js.map +1 -1
  104. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
  105. package/dist/modules/bitshares-native/subscriptions.js +13 -3
  106. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  107. package/dist/modules/bitshares-native/transport.d.ts +2 -0
  108. package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
  109. package/dist/modules/bitshares-native/transport.js +122 -28
  110. package/dist/modules/bitshares-native/transport.js.map +1 -1
  111. package/dist/modules/bitshares_client.d.ts.map +1 -1
  112. package/dist/modules/bitshares_client.js +59 -8
  113. package/dist/modules/bitshares_client.js.map +1 -1
  114. package/dist/modules/bot_settings.d.ts.map +1 -1
  115. package/dist/modules/bot_settings.js +11 -0
  116. package/dist/modules/bot_settings.js.map +1 -1
  117. package/dist/modules/constants.d.ts +13 -0
  118. package/dist/modules/constants.d.ts.map +1 -1
  119. package/dist/modules/constants.js +68 -4
  120. package/dist/modules/constants.js.map +1 -1
  121. package/dist/modules/dexbot_class.d.ts +10 -18
  122. package/dist/modules/dexbot_class.d.ts.map +1 -1
  123. package/dist/modules/dexbot_class.js +57 -2
  124. package/dist/modules/dexbot_class.js.map +1 -1
  125. package/dist/modules/dexbot_cow_runtime.d.ts +62 -37
  126. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  127. package/dist/modules/dexbot_cow_runtime.js +797 -569
  128. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  129. package/dist/modules/dexbot_fill_runtime.d.ts +41 -1
  130. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  131. package/dist/modules/dexbot_fill_runtime.js +135 -5
  132. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  133. package/dist/modules/dexbot_maintenance_runtime.d.ts +79 -12
  134. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  135. package/dist/modules/dexbot_maintenance_runtime.js +585 -97
  136. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  137. package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
  138. package/dist/modules/dexbot_startup_runtime.js +13 -0
  139. package/dist/modules/dexbot_startup_runtime.js.map +1 -1
  140. package/dist/modules/dexbot_state_recovery.d.ts +15 -1
  141. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  142. package/dist/modules/dexbot_state_recovery.js +36 -7
  143. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  144. package/dist/modules/fund_registry.d.ts +1 -1
  145. package/dist/modules/fund_registry.js +1 -1
  146. package/dist/modules/node_connect_policy.d.ts +52 -0
  147. package/dist/modules/node_connect_policy.d.ts.map +1 -0
  148. package/dist/modules/node_connect_policy.js +35 -0
  149. package/dist/modules/node_connect_policy.js.map +1 -0
  150. package/dist/modules/node_manager.d.ts +32 -0
  151. package/dist/modules/node_manager.d.ts.map +1 -1
  152. package/dist/modules/node_manager.js +76 -9
  153. package/dist/modules/node_manager.js.map +1 -1
  154. package/dist/modules/order/accounting.d.ts +30 -0
  155. package/dist/modules/order/accounting.d.ts.map +1 -1
  156. package/dist/modules/order/accounting.js +176 -3
  157. package/dist/modules/order/accounting.js.map +1 -1
  158. package/dist/modules/order/export.d.ts.map +1 -1
  159. package/dist/modules/order/export.js +1 -0
  160. package/dist/modules/order/export.js.map +1 -1
  161. package/dist/modules/order/grid.d.ts.map +1 -1
  162. package/dist/modules/order/grid.js +170 -51
  163. package/dist/modules/order/grid.js.map +1 -1
  164. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  165. package/dist/modules/order/grid_reconcile.js +5 -3
  166. package/dist/modules/order/grid_reconcile.js.map +1 -1
  167. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  168. package/dist/modules/order/grid_reconcile_internal.js +182 -6
  169. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  170. package/dist/modules/order/manager.d.ts +66 -3
  171. package/dist/modules/order/manager.d.ts.map +1 -1
  172. package/dist/modules/order/manager.js +238 -12
  173. package/dist/modules/order/manager.js.map +1 -1
  174. package/dist/modules/order/strategy.d.ts +3 -0
  175. package/dist/modules/order/strategy.d.ts.map +1 -1
  176. package/dist/modules/order/strategy.js +79 -7
  177. package/dist/modules/order/strategy.js.map +1 -1
  178. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  179. package/dist/modules/order/sync_engine.js +90 -1
  180. package/dist/modules/order/sync_engine.js.map +1 -1
  181. package/dist/modules/order/utils/math.d.ts +20 -12
  182. package/dist/modules/order/utils/math.d.ts.map +1 -1
  183. package/dist/modules/order/utils/math.js +33 -12
  184. package/dist/modules/order/utils/math.js.map +1 -1
  185. package/dist/modules/order/utils/order.d.ts +308 -28
  186. package/dist/modules/order/utils/order.d.ts.map +1 -1
  187. package/dist/modules/order/utils/order.js +862 -38
  188. package/dist/modules/order/utils/order.js.map +1 -1
  189. package/dist/modules/order/utils/system.d.ts +37 -30
  190. package/dist/modules/order/utils/system.d.ts.map +1 -1
  191. package/dist/modules/order/utils/system.js +130 -101
  192. package/dist/modules/order/utils/system.js.map +1 -1
  193. package/dist/modules/order/utils/validate.d.ts +3 -2
  194. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  195. package/dist/modules/order/utils/validate.js +11 -3
  196. package/dist/modules/order/utils/validate.js.map +1 -1
  197. package/dist/modules/paths.d.ts +2 -0
  198. package/dist/modules/paths.d.ts.map +1 -1
  199. package/dist/modules/paths.js +1 -0
  200. package/dist/modules/paths.js.map +1 -1
  201. package/dist/modules/runtime_settings.d.ts +13 -0
  202. package/dist/modules/runtime_settings.d.ts.map +1 -1
  203. package/dist/modules/runtime_settings.js +20 -0
  204. package/dist/modules/runtime_settings.js.map +1 -1
  205. package/dist/modules/utils/errors.d.ts +16 -0
  206. package/dist/modules/utils/errors.d.ts.map +1 -1
  207. package/dist/modules/utils/errors.js +31 -0
  208. package/dist/modules/utils/errors.js.map +1 -1
  209. package/dist/pm2.js +7 -7
  210. package/dist/scripts/analyze-credit.d.ts.map +1 -1
  211. package/dist/scripts/analyze-credit.js +13 -3
  212. package/dist/scripts/analyze-credit.js.map +1 -1
  213. package/dist/scripts/analyze-orders.js +2 -2
  214. package/dist/scripts/analyze-orders.js.map +1 -1
  215. package/dist/scripts/diagnose-kibana-candles.d.ts.map +1 -1
  216. package/dist/scripts/diagnose-kibana-candles.js +0 -1
  217. package/dist/scripts/diagnose-kibana-candles.js.map +1 -1
  218. package/dist/scripts/test-credit-renewal.js +1 -1
  219. package/dist/scripts/test-credit-renewal.js.map +1 -1
  220. package/dist/scripts/tv.d.ts +24 -2
  221. package/dist/scripts/tv.d.ts.map +1 -1
  222. package/dist/scripts/tv.js +190 -65
  223. package/dist/scripts/tv.js.map +1 -1
  224. package/docs/BITSHARES_ONBOARDING.md +9 -2
  225. package/docs/COW_INVARIANTS.md +18 -1
  226. package/docs/DEXBOT_COMPARISON.md +3 -3
  227. package/docs/EVOLUTION.md +9 -7
  228. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +21 -9
  229. package/docs/GRID_RECALCULATION.md +5 -6
  230. package/docs/GRID_RECONCILE.md +12 -2
  231. package/docs/MPA_CREDIT_USAGE.md +2 -2
  232. package/docs/README.md +5 -6
  233. package/docs/architecture.md +0 -58
  234. package/docs/developer_guide.md +2 -1
  235. package/docs/docker.md +1 -1
  236. package/market_adapter/README.md +4 -0
  237. package/modules/README.md +1 -1
  238. package/package.json +1 -1
  239. package/scripts/README.md +5 -3
  240. package/tests/README.md +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../modules/order/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../modules/order/export.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../modules/order/grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../modules/order/grid.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ const require = createRequire(import.meta.url);
97
97
  import { ORDER_TYPES, ORDER_STATES, COW_ACTIONS, DEFAULT_CONFIG, GRID_LIMITS, TIMING, PIPELINE_TIMING, MARKET_ADAPTER, INCREMENT_BOUNDS } from '../constants.js';
98
98
  const { GRID_COMPARISON } = GRID_LIMITS;
99
99
  import * as Format from './format.js';
100
- import { resolveMaxAsymmetryFactor, applyAsymmetricBounds, } from '../../market_adapter/core/asymmetric_bounds.js';
100
+ import { resolveMaxAsymmetryFactor, applyAsymmetricBounds, applyNarrowingSideGuard, } from '../../market_adapter/core/asymmetric_bounds.js';
101
101
  // FIX: Extract magic numbers to named constants for maintainability
102
102
  const GRID_CONSTANTS = {
103
103
  RMS_PERCENTAGE_SCALE: 100, // Convert RMS percentage threshold from percent to decimal
@@ -111,7 +111,7 @@ function _snapshotFundState(manager) {
111
111
  };
112
112
  }
113
113
  import { floatToBlockchainInt, getPrecisionByOrderType, getPrecisionsForManager, calculateOrderCreationFees, calculateOrderSizes, calculateRotationOrderSizes, calculateAvailableFundsValue, calculateGridSideDivergenceMetric, getPrecisionSlack, getMinOrderSize, getSingleDustThreshold, getGridBestPrices, calculateSpreadFromOrders, allocateFundsByWeights, calculateGapSlots as _mathGapSlots, priceSlotEqual, getBtsSide, getSellStartIdx, resolveGapBand, countGapBandSpread, validatePersistedBoundary, adjustBudgetForBtsFees, clamp, buildGenesisFromPriceLevels, assertSlotPriceInvariant, hashPriceLevels, } from './utils/math.js';
114
- import { filterOrdersByType, checkSizesBeforeMinimum, checkSizeThreshold, resolveConfiguredPriceBound, shouldFlagOutOfSpread, isOrderHealthy, isPhantomOrder, isSlotAvailable, isOrderOnChain, isOrderPlaced, hasOnChainId, isEmptyGridSlot, parseSlotIndex, calculateIdealBoundary, assignGridRoles, resolveOnChainRetypeType } from './utils/order.js';
114
+ import { filterOrdersByType, checkSizesBeforeMinimum, checkSizeThreshold, resolveConfiguredPriceBound, shouldFlagOutOfSpread, isOrderHealthy, isPhantomOrder, isSlotAvailable, isOrderOnChain, isOrderPlaced, hasOnChainId, isEmptyGridSlot, parseSlotIndex, calculateIdealBoundary, assignGridRoles, resolveOnChainRetypeType, resolveReserveCount, reserveEdgeIdSet, resolveLiveReserveEdgeAnchorPrice } from './utils/order.js';
115
115
  import { loadAmaCenterPrice, loadAmaCenterSnapshot, withBlockchainRetry } from './utils/system.js';
116
116
  import * as MathUtils from './utils/math.js';
117
117
  import { derivePriceWithPoolRef } from './utils/withPoolRef.js';
@@ -226,8 +226,8 @@ export async function _getSizingContext(manager, side, { skipRecalc = false } =
226
226
  // BTS fees are paid for ALL order operations regardless of side, so the
227
227
  // BTS-holding side reserves fees for both buy and sell target counts.
228
228
  if (budget > 0) {
229
- const targetBuy = Math.max(0, manager.config.activeOrders?.buy ?? 1);
230
- const targetSell = Math.max(0, manager.config.activeOrders?.sell ?? 1);
229
+ const targetBuy = Math.max(0, manager.config.activeOrders?.buy ?? 1) + resolveReserveCount(manager.config, 'buy');
230
+ const targetSell = Math.max(0, manager.config.activeOrders?.sell ?? 1) + resolveReserveCount(manager.config, 'sell');
231
231
  const totalTarget = targetBuy + targetSell;
232
232
  const btsOrderType = getBtsSide(manager.config?.assetA, manager.config?.assetB);
233
233
  const isBtsSide = isBuy ? (btsOrderType === ORDER_TYPES.BUY) : (btsOrderType === ORDER_TYPES.SELL);
@@ -680,6 +680,21 @@ export async function loadGrid(manager, grid, boundaryIdx = null, genesisInput =
680
680
  manager.logger?.log?.(`[GRID-LOAD] Could not re-derive a safe boundary; continuing without one. ` +
681
681
  `The next sync cycle will reconcile grid geometry against the chain.`, 'error');
682
682
  }
683
+ // The rejected value must not survive: storeMasterGrid
684
+ // never persists a null boundary, so without an explicit
685
+ // erase the poison re-arms this rejection on every boot
686
+ // (Sep-9: boundary=96 rejected identically 3 restarts in
687
+ // a row). Best-effort — load continues boundary-less
688
+ // either way and the next fill batch re-anchors live.
689
+ try {
690
+ const acct = manager?.accountOrders;
691
+ if (acct && typeof acct.clearPersistedBoundary === 'function') {
692
+ await acct.clearPersistedBoundary();
693
+ manager.logger?.log?.(`[GRID-LOAD] Erased poisoned persisted boundary (${boundaryIdx}); ` +
694
+ `restart will load boundary-less instead of re-rejecting.`, 'warn');
695
+ }
696
+ }
697
+ catch { /* load continues boundary-less either way */ }
683
698
  }
684
699
  }
685
700
  // Restore boundary index for StrategyEngine
@@ -1061,33 +1076,82 @@ export async function initializeGrid(manager) {
1061
1076
  gridStartPrice = clamped;
1062
1077
  }
1063
1078
  }
1064
- // Narrowing-side slot guard: range scaling tightens one bound toward the
1065
- // center. Without a floor this can collapse that side into a near-center
1066
- // sliver holding few or zero active orders. Guarantee at least
1067
- // minScaleSlots price levels remain between the grid center and the
1068
- // tightened bound (in multiples of incrementPercent). The widened side
1069
- // still extends freely.
1070
- if (appliedTrend && Number.isFinite(gridStartPrice) && gridStartPrice > 0) {
1071
- const inc = Number(manager.config.incrementPercent);
1072
- const mss = Number.isFinite(minScaleSlots) ? Math.floor(Number(minScaleSlots)) : 0;
1073
- if (Number.isFinite(inc) && inc > 0 && mss > 0) {
1074
- const stepMult = 1 + (inc / 100);
1075
- if (appliedTrend === 'DOWN' && resolvedMaxP != null) {
1076
- const keepAbove = gridStartPrice * Math.pow(stepMult, mss);
1077
- if (resolvedMaxP < keepAbove) {
1078
- manager.logger?.log?.(`[BOUND-ASYMMETRY] narrowing-side guard: max ${resolvedMaxP.toFixed(8)} collapses ` +
1079
- `${mss} levels; holding at ${keepAbove.toFixed(8)}`, 'info');
1080
- resolvedMaxP = keepAbove;
1081
- }
1082
- }
1083
- else if (appliedTrend === 'UP' && resolvedMinP != null) {
1084
- const belowMin = gridStartPrice * Math.pow(1 - (inc / 100), mss);
1085
- if (resolvedMinP > belowMin) {
1086
- manager.logger?.log?.(`[BOUND-ASYMMETRY] narrowing-side guard would pull min ${resolvedMinP.toFixed(8)} ` +
1087
- `short of ${mss} levels; holding at ${belowMin.toFixed(8)}`, 'info');
1088
- resolvedMinP = belowMin;
1089
- }
1090
- }
1079
+ // Narrowing-side slot guard (canonical: applyNarrowingSideGuard).
1080
+ const guard = applyNarrowingSideGuard({
1081
+ centerPrice: gridStartPrice,
1082
+ minPrice: resolvedMinP,
1083
+ maxPrice: resolvedMaxP,
1084
+ trend: appliedTrend,
1085
+ incrementPercent: manager.config.incrementPercent,
1086
+ minScaleSlots,
1087
+ });
1088
+ if (guard.held === 'max' && guard.maxPrice != null && resolvedMaxP != null) {
1089
+ manager.logger?.log?.(`[BOUND-ASYMMETRY] narrowing-side guard: max ${resolvedMaxP.toFixed(8)} collapses ` +
1090
+ `${Math.floor(Number(minScaleSlots))} levels; holding at ${guard.maxPrice.toFixed(8)}`, 'info');
1091
+ resolvedMaxP = guard.maxPrice;
1092
+ }
1093
+ else if (guard.held === 'min' && guard.minPrice != null && resolvedMinP != null) {
1094
+ manager.logger?.log?.(`[BOUND-ASYMMETRY] narrowing-side guard would pull min ${resolvedMinP.toFixed(8)} ` +
1095
+ `short of ${Math.floor(Number(minScaleSlots))} levels; holding at ${guard.minPrice.toFixed(8)}`, 'info');
1096
+ resolvedMinP = guard.minPrice;
1097
+ }
1098
+ // P4 / unanchored rebuild anchor: when the new generation is centered
1099
+ // on a static config value (not a live market source), owed fill
1100
+ // crawls carry the only fresh market direction — fold their net
1101
+ // direction into the rebuild center before the ladder is generated.
1102
+ // A live center already contains the movement, so its owed crawls are
1103
+ // dropped as a stale generation (see the clear below).
1104
+ const owedCrawls = Array.isArray(manager._pendingFillCrawls)
1105
+ ? manager._pendingFillCrawls
1106
+ : [];
1107
+ // Whether the ladder CENTER already reflects current market movement.
1108
+ // gpSource describes the gridPrice/bounds reference, NOT the center:
1109
+ // the center is gridStartPrice, built from mp (config.startPrice).
1110
+ // Only a derived startPrice (a non-numeric mode like "pool"/"book"
1111
+ // resolved to a fresh number above) or an AMA-driven center is live:
1112
+ // with gpSource === "ama" the center itself is still mp * (1 +
1113
+ // offset), but the offset comes from the live AMA snapshot, so the
1114
+ // center moves with the market. A numeric startPrice with a live
1115
+ // gridPrice still has a static center — a live gridPrice (bounds
1116
+ // reference only) does not make that static center fresh.
1117
+ const startPriceWasDerived = typeof mpRaw !== 'number' || Number.isNaN(Number(mpRaw));
1118
+ const centerIsLive = startPriceWasDerived || gpSource === 'ama';
1119
+ if (owedCrawls.length > 0 && !centerIsLive) {
1120
+ // Reserve fills never crawl (static insurance). Classify them
1121
+ // against the OLD generation (manager.orders is replaced below)
1122
+ // with the same live anchors the runtime derivation uses, so the
1123
+ // fold can never be driven by a reserve fill.
1124
+ const oldSlots = Array.from(manager.orders?.values?.() ?? []);
1125
+ const edgeAnchors = {
1126
+ buy: resolveLiveReserveEdgeAnchorPrice(manager, 'buy'),
1127
+ sell: resolveLiveReserveEdgeAnchorPrice(manager, 'sell')
1128
+ };
1129
+ const reserveBuyIds = reserveEdgeIdSet(oldSlots, manager.config, ORDER_TYPES.BUY, edgeAnchors.buy);
1130
+ const reserveSellIds = reserveEdgeIdSet(oldSlots, manager.config, ORDER_TYPES.SELL, edgeAnchors.sell);
1131
+ let netShift = 0;
1132
+ for (const e of owedCrawls) {
1133
+ if (e?.side === ORDER_TYPES.BUY && reserveBuyIds?.has(e.slotId))
1134
+ continue;
1135
+ if (e?.side === ORDER_TYPES.SELL && reserveSellIds?.has(e.slotId))
1136
+ continue;
1137
+ if (e?.side === ORDER_TYPES.SELL)
1138
+ netShift++;
1139
+ else if (e?.side === ORDER_TYPES.BUY)
1140
+ netShift--;
1141
+ }
1142
+ const stepPct = Number(manager.config?.incrementPercent);
1143
+ if (netShift !== 0 && Number.isFinite(stepPct) && stepPct > 0) {
1144
+ // One crawl moves the boundary one slot; the geometric ladder
1145
+ // step is incrementPercent, so shift the center by netShift steps.
1146
+ const folded = gridStartPrice * Math.pow(1 + stepPct / 100, netShift);
1147
+ // Re-clamp to the post-guard resolved bounds so a fold cannot
1148
+ // push the center outside the rail it is about to generate.
1149
+ const clampMin = Number.isFinite(Number(resolvedMinP)) ? Number(resolvedMinP) : rMinP;
1150
+ const clampMax = Number.isFinite(Number(resolvedMaxP)) ? Number(resolvedMaxP) : rMaxP;
1151
+ gridStartPrice = Math.max(clampMin, Math.min(clampMax, folded));
1152
+ manager.config.startPrice = gridStartPrice;
1153
+ manager.logger?.log?.(`[BOUNDARY] Folded ${owedCrawls.length} owed fill crawl(s) (net ${netShift}) into ` +
1154
+ `static grid center -> ${gridStartPrice.toFixed(8)}`, 'info');
1091
1155
  }
1092
1156
  }
1093
1157
  manager.config.minPrice = resolvedMinP;
@@ -1122,6 +1186,12 @@ export async function initializeGrid(manager) {
1122
1186
  manager._gapSlots = gapSlots;
1123
1187
  if (genesis)
1124
1188
  manager._genesis = genesis;
1189
+ // A rebuilt grid is a NEW generation: the boundary below is re-derived
1190
+ // absolutely from the fresh price ladder, so owed fill crawls recorded
1191
+ // against the previous generation must not survive — their relative
1192
+ // deltas would shift the new anchor again for movement it already
1193
+ // contains (and their slot ids now name different prices).
1194
+ manager._clearPendingFillCrawls?.('grid rebuild');
1125
1195
  // RC-8: Update boundary with notification to dependent systems
1126
1196
  // Persist master boundary for StrategyEngine
1127
1197
  if (manager.boundaryIdx !== boundaryIdx) {
@@ -1319,11 +1389,17 @@ export async function recalculateGrid(manager, opts) {
1319
1389
  * @returns {any}
1320
1390
  */
1321
1391
  export function checkAndUpdateGridIfNeeded(manager) {
1322
- const threshold = manager.config?.gridLimits?.GRID_REGENERATION_PERCENTAGE;
1392
+ const rawThreshold = manager.config?.gridLimits?.GRID_REGENERATION_PERCENTAGE;
1393
+ // NOTE: a configured 0 (or non-numeric) falls back to the global default
1394
+ // instead of disabling. 0 never worked as "disable" (ratio >= 0 is always
1395
+ // true, i.e. constant regen), so no working configuration is broken by this.
1396
+ const threshold = (Number.isFinite(Number(rawThreshold)) && Number(rawThreshold) > 0)
1397
+ ? Number(rawThreshold)
1398
+ : GRID_LIMITS.GRID_REGENERATION_PERCENTAGE;
1323
1399
  const chainSnap = manager.getChainFundsSnapshot();
1324
1400
  const gridBuy = Number(manager.funds?.total?.grid?.buy || 0);
1325
1401
  const gridSell = Number(manager.funds?.total?.grid?.sell || 0);
1326
- const result = { buyUpdated: false, sellUpdated: false };
1402
+ const result = { buyUpdated: false, sellUpdated: false, buyShrink: false, sellShrink: false };
1327
1403
  const sides = [
1328
1404
  { name: 'buy', grid: gridBuy, orderType: ORDER_TYPES.BUY },
1329
1405
  { name: 'sell', grid: gridSell, orderType: ORDER_TYPES.SELL }
@@ -1331,21 +1407,50 @@ export function checkAndUpdateGridIfNeeded(manager) {
1331
1407
  for (const s of sides) {
1332
1408
  if (s.grid <= 0)
1333
1409
  continue;
1334
- const availableFunds = calculateAvailableFundsValue(s.name, manager.accountTotals, manager.funds, manager.config.assetA, manager.config.assetB, manager.config.activeOrders, manager.config.min_BTS_value, manager.config.feeParams ?? null);
1410
+ const feeActiveOrders = manager.config.activeOrders && typeof manager.config.activeOrders === 'object'
1411
+ ? {
1412
+ ...manager.config.activeOrders,
1413
+ buy: Math.max(0, Number(manager.config.activeOrders.buy) || 0) + resolveReserveCount(manager.config, 'buy'),
1414
+ sell: Math.max(0, Number(manager.config.activeOrders.sell) || 0) + resolveReserveCount(manager.config, 'sell'),
1415
+ }
1416
+ : manager.config.activeOrders;
1417
+ const availableFunds = calculateAvailableFundsValue(s.name, manager.accountTotals, manager.funds, manager.config.assetA, manager.config.assetB, feeActiveOrders, manager.config.min_BTS_value, manager.config.feeParams ?? null);
1335
1418
  // Denominator: side's allocated capital (or chain total fallback).
1336
1419
  const allocated = s.name === 'buy' ? chainSnap.allocatedBuy : chainSnap.allocatedSell;
1337
1420
  const denominator = (allocated > 0) ? allocated : (s.grid + availableFunds);
1338
1421
  const ratio = (denominator > 0) ? (availableFunds / denominator) * 100 : 0;
1339
- manager.logger?.log?.(`[DIVERGENCE] ${s.name.toUpperCase()} ratio check: availableFunds=${availableFunds.toFixed(5)}, allocated=${allocated.toFixed(5)}, ratio=${ratio.toFixed(4)}% (threshold=${threshold}%) → ${ratio >= threshold ? 'TRIGGER' : 'no trigger'}`, 'debug');
1340
- if (ratio >= threshold) {
1422
+ // DOWNSIDE: grid-tracked size exceeds the (botFunds-capped) allocation,
1423
+ // so the side must shrink toward the new budget via the same resize path.
1424
+ // s.grid is funds.total.grid (ACTIVE + PARTIAL + VIRTUAL — planned size,
1425
+ // not just on-chain committed). Deliberately NOT based on per-side
1426
+ // chain-total drops: a normal fill moves value across sides (pays one
1427
+ // asset, receives the other), so one side's total routinely drops >=3%
1428
+ // on ordinary fills — and the fill pipeline already re-sizes from the
1429
+ // post-fill budget. External removal is caught here because the
1430
+ // committed/planned grid stays put while the allocation sinks.
1431
+ // NOTE: with an explicit 0 allocation the shared fallback denominator
1432
+ // yields overAlloc ≈ +100%, i.e. a 0%-funded side holding size always
1433
+ // triggers — which is the desired unwind (zero budget sizes everything
1434
+ // to 0 and the correction pass cancels the surplus; self-clearing).
1435
+ const overAlloc = (denominator > 0) ? ((s.grid - allocated) / denominator) * 100 : 0;
1436
+ const growTrigger = ratio >= threshold;
1437
+ const shrinkTrigger = overAlloc >= threshold;
1438
+ manager.logger?.log?.(`[DIVERGENCE] ${s.name.toUpperCase()} ratio check: availableFunds=${availableFunds.toFixed(5)}, allocated=${allocated.toFixed(5)}, ratio=${ratio.toFixed(4)}% (threshold=${threshold}%) → ${growTrigger ? 'TRIGGER-GROW' : 'no trigger'} | overAlloc=${overAlloc.toFixed(4)}% → ${shrinkTrigger ? 'TRIGGER-SHRINK' : 'no trigger'}`, 'debug');
1439
+ if (growTrigger || shrinkTrigger) {
1341
1440
  // RC-3: Use Set for automatic duplicate prevention
1342
1441
  if (!(manager._gridSidesUpdated instanceof Set))
1343
1442
  manager._gridSidesUpdated = new Set();
1344
1443
  manager._gridSidesUpdated.add(s.orderType);
1345
- if (s.name === 'buy')
1444
+ if (s.name === 'buy') {
1346
1445
  result.buyUpdated = true;
1347
- else
1446
+ if (shrinkTrigger)
1447
+ result.buyShrink = true;
1448
+ }
1449
+ else {
1348
1450
  result.sellUpdated = true;
1451
+ if (shrinkTrigger)
1452
+ result.sellShrink = true;
1453
+ }
1349
1454
  }
1350
1455
  }
1351
1456
  return result;
@@ -1438,7 +1543,11 @@ export async function _recalculateGridOrderSizesFromBlockchain(manager, orderTyp
1438
1543
  // geometric progression including empties, then re-type the picked slot
1439
1544
  // to BUY/SELL before placement. The COW boundary-shift path re-types
1440
1545
  // the working grid by geometry first, so crossers stay in the correct
1441
- // side's denominator.
1546
+ // side's denominator. Reserve edge slots are deliberately excluded from
1547
+ // that startup re-derivation: they activate only with the size the
1548
+ // target-grid sizing pipeline has already written (exact values, one
1549
+ // sizing rule), and an unsized reserve waits for that pipeline instead
1550
+ // of being placed with a locally guessed size.
1442
1551
  const orderSource = collectActions ? workingGrid : manager.orders;
1443
1552
  const allSideSlots = Array.from(orderSource.values())
1444
1553
  .filter((o) => o.type === orderType)
@@ -1457,6 +1566,15 @@ export async function _recalculateGridOrderSizesFromBlockchain(manager, orderTyp
1457
1566
  // Apply new sizes to all slots on the side
1458
1567
  for (let i = 0; i < allSideSlots.length; i++) {
1459
1568
  const slot = allSideSlots[i];
1569
+ // Shelf/manual orders (non-slot-N ids, e.g. fork-kept deep-*
1570
+ // below the rail) sit outside window accounting: geometric
1571
+ // ideals must never resize them on-chain. Same gate as reserve
1572
+ // classification and startup cancel candidates (issue #27
1573
+ // follow-up). No-op upstream (grids only mint slot-N).
1574
+ // NB: they stay in the denominator above (budget math
1575
+ // unchanged); only the per-slot mutation below is skipped.
1576
+ if (parseSlotIndex(slot?.id) === null)
1577
+ continue;
1460
1578
  let newSize = newSizes[i] || 0;
1461
1579
  // FUND CAPPING FOR COMMITTED (ON-CHAIN) ORDERS:
1462
1580
  // Only ACTIVE/PARTIAL orders are constrained by available funds.
@@ -1560,11 +1678,12 @@ export async function updateGridFromBlockchainSnapshot(manager, orderType = 'bot
1560
1678
  // after the size calc means crossers keep their pre-shift sizes, producing
1561
1679
  // an allocation that doesn't match the post-shift grid structure.
1562
1680
  //
1563
- // NOTE: syncBoundaryToFunds is a pure computation (no eager write), so
1564
- // manager.boundaryIdx still carries the pre-shift value here. The
1565
- // overrideBoundaryIdx !== manager.boundaryIdx check correctly detects
1566
- // that a shift is needed. The boundary is only written atomically
1567
- // inside _commitWorkingGrid via _setBoundary.
1681
+ // NOTE: overrideBoundaryIdx carries the caller's intended boundary.
1682
+ // Divergence pins it to the committed value (fund changes never shift
1683
+ // rails — only fills move the boundary, and spread promotion derives
1684
+ // its own shift atomically in prepareSpreadCorrectionOrders). The
1685
+ // boundary itself is only written atomically inside _commitWorkingGrid
1686
+ // via _setBoundary.
1568
1687
  if (overrideBoundaryIdx !== null && overrideBoundaryIdx !== manager.boundaryIdx) {
1569
1688
  const gapSlots = manager._gapSlots ?? calculateGapSlots(manager.config.incrementPercent, manager.config.targetSpreadPercent, manager.config.gridLimits);
1570
1689
  const allSlots = Array.from(workingGrid.values())
@@ -1753,8 +1872,8 @@ export async function monitorDivergence(manager, calculatedGrid, persistedGrid)
1753
1872
  const { getOrderTypeFromUpdatedFlags } = require('./utils/order');
1754
1873
  return {
1755
1874
  needsUpdate: true,
1756
- buy: { updated: ratioResult.buyUpdated, ratio: ratioResult.buyUpdated, rms: false, metric: 0 },
1757
- sell: { updated: ratioResult.sellUpdated, ratio: ratioResult.sellUpdated, rms: false, metric: 0 },
1875
+ buy: { updated: ratioResult.buyUpdated, ratio: ratioResult.buyUpdated, rms: false, metric: 0, shrink: ratioResult.buyShrink === true },
1876
+ sell: { updated: ratioResult.sellUpdated, ratio: ratioResult.sellUpdated, rms: false, metric: 0, shrink: ratioResult.sellShrink === true },
1758
1877
  orderType: getOrderTypeFromUpdatedFlags(ratioResult.buyUpdated, ratioResult.sellUpdated)
1759
1878
  };
1760
1879
  }
@@ -1765,8 +1884,8 @@ export async function monitorDivergence(manager, calculatedGrid, persistedGrid)
1765
1884
  const { getOrderTypeFromUpdatedFlags } = require('./utils/order');
1766
1885
  return {
1767
1886
  needsUpdate: buyUpdated || sellUpdated,
1768
- buy: { updated: buyUpdated, ratio: ratioResult.buyUpdated, rms: rmsResult.buy.updated, metric: rmsResult.buy.metric },
1769
- sell: { updated: sellUpdated, ratio: ratioResult.sellUpdated, rms: rmsResult.sell.updated, metric: rmsResult.sell.metric },
1887
+ buy: { updated: buyUpdated, ratio: ratioResult.buyUpdated, rms: rmsResult.buy.updated, metric: rmsResult.buy.metric, shrink: ratioResult.buyShrink === true },
1888
+ sell: { updated: sellUpdated, ratio: ratioResult.sellUpdated, rms: rmsResult.sell.updated, metric: rmsResult.sell.metric, shrink: ratioResult.sellShrink === true },
1770
1889
  orderType: getOrderTypeFromUpdatedFlags(buyUpdated, sellUpdated)
1771
1890
  };
1772
1891
  }
@@ -2412,9 +2531,9 @@ export async function prepareSpreadCorrectionOrders(manager, preferredSide, outO
2412
2531
  .sort((a, b) => a.price - b.price);
2413
2532
  const slotIndexMap = new Map(allSlotsByPrice.map((o, i) => [o.id, i]));
2414
2533
  // Use the committed boundary for slot classification — never a speculative
2415
- // value from syncBoundaryToFunds that hasn't been persisted through the COW
2416
- // pipeline. If the boundary shifts later via _commitWorkingGrid, the next
2417
- // spread correction cycle will re-classify with the updated committed value.
2534
+ // value that hasn't been persisted through the COW pipeline. If the
2535
+ // boundary shifts later via _commitWorkingGrid, the next spread
2536
+ // correction cycle will re-classify with the updated committed value.
2418
2537
  // This prevents TOCTOU-style inconsistency where slot types are chosen
2419
2538
  // against a boundary that was never atomically committed to manager.orders.
2420
2539
  const resolved = resolveGapBand(manager);