dexbot 1.4.19 → 1.4.20

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 (102) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +2 -2
  3. package/analysis/ama_fitting/optimizer_high_resolution.ts +2 -1
  4. package/analysis/ama_fitting/package.json +1 -1
  5. package/analysis/analyze_derivatives.ts +4 -2
  6. package/analysis/analyze_dynamic_weight.ts +3 -1
  7. package/analysis/analyze_kalman.ts +3 -1
  8. package/analysis/analyze_regime.ts +3 -1
  9. package/analysis/analyze_regime_windows.ts +3 -1
  10. package/analysis/analyze_volatility.ts +2 -2
  11. package/analysis/bot_fitting/backtest_ama_sweep.ts +2 -1
  12. package/analysis/bot_fitting/backtest_bot_fitting.ts +17 -12
  13. package/analysis/chart_utils.ts +24 -0
  14. package/analysis/derivative_chart_generator.ts +3 -2
  15. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +1 -1
  16. package/analysis/trend_detection/dynamic_weight_chart_generator.ts +91 -55
  17. package/analysis/trend_detection/package.json +1 -1
  18. package/claw/examples/claw_profiles_example.ts +4 -1
  19. package/claw/modules/claw_catalog.ts +1 -1
  20. package/claw/modules/claw_skill_md.ts +6 -5
  21. package/claw/modules/dexbot_profiles.ts +3 -1
  22. package/claw/modules/launcher_paths.ts +4 -2
  23. package/claw/package.json +1 -1
  24. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  25. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  26. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  27. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +2 -2
  28. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -1
  29. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -1
  30. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +2 -1
  31. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -1
  32. package/dist/analysis/analyze_derivatives.d.ts.map +1 -1
  33. package/dist/analysis/analyze_derivatives.js +4 -2
  34. package/dist/analysis/analyze_derivatives.js.map +1 -1
  35. package/dist/analysis/analyze_dynamic_weight.js +3 -1
  36. package/dist/analysis/analyze_dynamic_weight.js.map +1 -1
  37. package/dist/analysis/analyze_kalman.js +3 -1
  38. package/dist/analysis/analyze_kalman.js.map +1 -1
  39. package/dist/analysis/analyze_regime.js +3 -1
  40. package/dist/analysis/analyze_regime.js.map +1 -1
  41. package/dist/analysis/analyze_regime_windows.js +3 -1
  42. package/dist/analysis/analyze_regime_windows.js.map +1 -1
  43. package/dist/analysis/analyze_volatility.js +2 -2
  44. package/dist/analysis/analyze_volatility.js.map +1 -1
  45. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -1
  46. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +2 -1
  47. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -1
  48. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +18 -13
  49. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -1
  50. package/dist/analysis/chart_utils.d.ts +0 -3
  51. package/dist/analysis/chart_utils.d.ts.map +1 -1
  52. package/dist/analysis/chart_utils.js +25 -0
  53. package/dist/analysis/chart_utils.js.map +1 -1
  54. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -1
  55. package/dist/analysis/derivative_chart_generator.js +3 -2
  56. package/dist/analysis/derivative_chart_generator.js.map +1 -1
  57. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -1
  58. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +82 -50
  59. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -1
  60. package/dist/dexbot.d.ts.map +1 -1
  61. package/dist/dexbot.js +2 -3
  62. package/dist/dexbot.js.map +1 -1
  63. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
  64. package/dist/market_adapter/core/market_adapter_service.js +8 -3
  65. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  66. package/dist/modules/config.d.ts +2 -0
  67. package/dist/modules/config.d.ts.map +1 -1
  68. package/dist/modules/config.js +2 -0
  69. package/dist/modules/config.js.map +1 -1
  70. package/dist/modules/constants.js +1 -1
  71. package/dist/modules/dexbot_cow_runtime.d.ts +0 -7
  72. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  73. package/dist/modules/dexbot_cow_runtime.js +95 -0
  74. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  75. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  76. package/dist/modules/dexbot_state_recovery.js +20 -1
  77. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  78. package/dist/modules/order/grid.d.ts.map +1 -1
  79. package/dist/modules/order/grid.js +146 -32
  80. package/dist/modules/order/grid.js.map +1 -1
  81. package/dist/modules/order/manager.d.ts +13 -0
  82. package/dist/modules/order/manager.d.ts.map +1 -1
  83. package/dist/modules/order/manager.js +75 -2
  84. package/dist/modules/order/manager.js.map +1 -1
  85. package/dist/modules/order/utils/math.d.ts +74 -1
  86. package/dist/modules/order/utils/math.d.ts.map +1 -1
  87. package/dist/modules/order/utils/math.js +120 -2
  88. package/dist/modules/order/utils/math.js.map +1 -1
  89. package/dist/modules/paths.d.ts +26 -1
  90. package/dist/modules/paths.d.ts.map +1 -1
  91. package/dist/modules/paths.js +39 -6
  92. package/dist/modules/paths.js.map +1 -1
  93. package/dist/scripts/analyze-git.js +2 -1
  94. package/dist/scripts/analyze-git.js.map +1 -1
  95. package/dist/scripts/analyze-orders.js +2 -2
  96. package/dist/scripts/analyze-orders.js.map +1 -1
  97. package/docs/DEXBOT_COMPARISON.md +3 -3
  98. package/docs/EVOLUTION.md +8 -7
  99. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  100. package/docs/README.md +1 -1
  101. package/package.json +2 -3
  102. package/scripts/lib/dexbot-paths.sh +20 -11
@@ -32,6 +32,40 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
32
32
  const results = data.allResults || [];
33
33
  if (results.length === 0) throw new Error('No analysis results in input');
34
34
 
35
+ // Slider ranges — single source of truth for HTML attrs, tooltips,
36
+ // payload transport, and client paste-clamp bounds.
37
+ const LB_MIN = 1, LB_MAX = 32;
38
+ const GAIN_MIN = 0.5, GAIN_MAX = 2.0;
39
+ const AMA_MS_MIN = 0.04, AMA_MS_MAX = 0.12;
40
+ const KAL_MS_MIN = 0.5, KAL_MS_MAX = 1.5;
41
+ const CLIP_PCT_MAX = 20;
42
+ const TH_MIN = 0, TH_MAX = 0.5;
43
+ const KF_MIN = 0, KF_MAX = 200;
44
+ const KFD_MIN = 1.0, KFD_MAX = 3.0;
45
+ const DSP_MIN = 0.25, DSP_MAX = 4.0;
46
+ const KDT_MIN = 0.25, KDT_MAX = 3.0;
47
+ const KFS_MIN = 20, KFS_MAX = 200;
48
+ const CF_MIN = 0, CF_MAX = 5;
49
+ const REGI_MIN = 0, REGI_MAX = 2;
50
+ const SLIDER_RANGES = {
51
+ alpha: [0, 1],
52
+ dispWeight: [0, 1],
53
+ neutralZonePct: [0, 1],
54
+ lookbackBars: [LB_MIN, LB_MAX],
55
+ amaMaxSlopePct: [AMA_MS_MIN, AMA_MS_MAX],
56
+ kalmanMaxSlopePct: [KAL_MS_MIN, KAL_MS_MAX],
57
+ clipPct: [0, CLIP_PCT_MAX],
58
+ minOutputThreshold: [TH_MIN, TH_MAX],
59
+ kalmanSmoothPct: [KF_MIN, KF_MAX],
60
+ kalmanDispScaleMult: [KFD_MIN, KFD_MAX],
61
+ dispScaleMinPct: [DSP_MIN, DSP_MAX],
62
+ kalmanDispThresholdMult: [KDT_MIN, KDT_MAX],
63
+ kalmanSmoothSpanPct: [KFS_MIN, KFS_MAX],
64
+ signalConfirmBars: [CF_MIN, CF_MAX],
65
+ gain: [GAIN_MIN, GAIN_MAX],
66
+ regimeSensitivity: [REGI_MIN, REGI_MAX],
67
+ };
68
+
35
69
  const ma = data.marketAdapter || {};
36
70
  const amaWeightConfig = data.amaWeightConfig || {};
37
71
  const defaultAlpha = data.alpha ?? ma.alpha ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ALPHA;
@@ -47,30 +81,26 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
47
81
  ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_MAX_SLOPE_PCT;
48
82
  const defaultClipPct = data.clipPct ?? ma.clipPercentile ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_CLIP_PERCENTILE;
49
83
  const defaultMinOutputThresholdRaw = data.minOutputThreshold ?? ma.minOutputThreshold ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_TREND_THRESHOLD;
50
- const defaultMinOutputThreshold = Math.min(Math.max(defaultMinOutputThresholdRaw, 0), 0.5);
84
+ const defaultMinOutputThreshold = Math.min(Math.max(defaultMinOutputThresholdRaw, TH_MIN), TH_MAX);
51
85
  const defaultOutputClamp = data.outputClamp ?? ma.outputClamp ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_OFFSET_CLAMP;
52
86
  const lookbackBarsRaw = amaWeightConfig.lookbackBars ?? ma.amaLookbackBars ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_LOOKBACK_BARS;
53
- const lookbackBars = Math.ceil(Math.max(1, Math.min(32, Number.isFinite(lookbackBarsRaw) ? lookbackBarsRaw : 1)));
87
+ const lookbackBars = Math.ceil(Math.max(LB_MIN, Math.min(LB_MAX, Number.isFinite(lookbackBarsRaw) ? lookbackBarsRaw : LB_MIN)));
54
88
 
55
- // Log mapping for lookback slider (1 to 32 bars)
56
- const LB_LOG_MIN_N = Math.log(1);
57
- const LB_LOG_MAX_N = Math.log(32);
58
- const clampedLb = Math.min(Math.max(lookbackBars, 1), 32);
89
+ // Log mapping for lookback slider
90
+ const LB_LOG_MIN_N = Math.log(LB_MIN);
91
+ const LB_LOG_MAX_N = Math.log(LB_MAX);
92
+ const clampedLb = Math.min(Math.max(lookbackBars, LB_MIN), LB_MAX);
59
93
  const lbInitSlider = Math.round((Math.log(clampedLb) - LB_LOG_MIN_N) / (LB_LOG_MAX_N - LB_LOG_MIN_N) * 1000);
60
94
 
61
95
  // Log mapping for gain slider
62
- const GAIN_LOG_MIN_N = Math.log(0.5);
63
- const GAIN_LOG_MAX_N = Math.log(2.0);
64
- const clampedGain = Math.min(Math.max(defaultGain, 0.5), 2.0);
96
+ const GAIN_LOG_MIN_N = Math.log(GAIN_MIN);
97
+ const GAIN_LOG_MAX_N = Math.log(GAIN_MAX);
98
+ const clampedGain = Math.min(Math.max(defaultGain, GAIN_MIN), GAIN_MAX);
65
99
  const gainInitSlider = Math.round((Math.log(clampedGain) - GAIN_LOG_MIN_N) / (GAIN_LOG_MAX_N - GAIN_LOG_MIN_N) * 1000);
66
100
 
67
101
  // Log mapping for slope saturation sliders
68
- const AMA_MS_MIN = 0.04;
69
- const AMA_MS_MAX = 0.12;
70
102
  const AMA_MS_LOG_MIN_N = Math.log(AMA_MS_MIN);
71
103
  const AMA_MS_LOG_MAX_N = Math.log(AMA_MS_MAX);
72
- const KAL_MS_MIN = 0.15;
73
- const KAL_MS_MAX = 1.5;
74
104
  const KAL_MS_LOG_MIN_N = Math.log(KAL_MS_MIN);
75
105
  const KAL_MS_LOG_MAX_N = Math.log(KAL_MS_MAX);
76
106
  const clampedAmaMs = Math.min(Math.max(defaultAmaMaxSlopePct, AMA_MS_MIN), AMA_MS_MAX);
@@ -100,12 +130,15 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
100
130
  const amaSlopePct = results.map((r: any) => r.amaSlopePct ?? null);
101
131
  const kalmanVelocityPctRaw = results.map((r: any) => r.velocityRawPct ?? r.velocityPct ?? null);
102
132
  const kalmanDisplacementPct = results.map((r: any) => r.displacementRawPct ?? r.displacementPct ?? null);
103
- const kalmanVelocityPct = buildKalmanVelocitySeries(results, {
104
- kalmanSmoothPct: defaultKalmanSmoothPct,
105
- kalmanDispScaleMult: defaultKalmanDispScaleMult,
106
- kalmanDispThresholdMult: defaultKalmanDispThresholdMult,
107
- kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct,
108
- });
133
+ const kalmanVelocityPct = buildKalmanVelocitySeries(
134
+ results.map((r: any) => ({ velocityPct: r.velocityRawPct ?? r.velocityPct ?? null, displacementPct: r.displacementRawPct ?? r.displacementPct ?? null })),
135
+ {
136
+ kalmanSmoothPct: defaultKalmanSmoothPct,
137
+ kalmanDispScaleMult: defaultKalmanDispScaleMult,
138
+ kalmanDispThresholdMult: defaultKalmanDispThresholdMult,
139
+ kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct,
140
+ }
141
+ );
109
142
  const kalmanIsReady = results.map((r: any) => r.isReady ?? false);
110
143
  const signals = results.map((r: any) => r.signal);
111
144
  const amaLabel = data.amaKey || 'AMA3';
@@ -317,24 +350,24 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
317
350
 
318
351
  <div class="group-sep"></div>
319
352
  <div class="ctrl nz"><label for="nz-slider">nz%</label><input type="range" id="nz-slider" min="0" max="100" value="${Math.round(defaultNeutralZone * 100)}" title="Neutral Zone %"><span class="val" id="nz-value">${defaultNeutralZone.toFixed(2)}</span></div>
320
- <div class="ctrl lb"><label for="lb-slider">lb</label><input type="range" id="lb-slider" min="0" max="1000" value="${lbInitSlider}" title="Lookback Bars (1-32)"><span class="val" id="lb-value">${lookbackBars}</span></div>
321
- <div class="ctrl ms-ama"><label for="ama-ms-slider">amaS%</label><input type="range" id="ama-ms-slider" min="0" max="1000" value="${amaMsInitSlider}" title="AMA Max Slope % per bar (0.04-0.12)"><span class="val" id="ama-ms-value">${defaultAmaMaxSlopePct.toFixed(4)}</span></div>
322
- <div class="ctrl clip"><label for="clip-slider">clip%</label><input type="range" id="clip-slider" min="0" max="55" value="${Math.min(defaultClipPct, 55)}" title="Outlier Clip %"><span class="val" id="clip-value">${Math.min(defaultClipPct, 55)}%</span></div>
353
+ <div class="ctrl lb"><label for="lb-slider">lb</label><input type="range" id="lb-slider" min="0" max="1000" value="${lbInitSlider}" title="Lookback Bars (${LB_MIN}-${LB_MAX})"><span class="val" id="lb-value">${lookbackBars}</span></div>
354
+ <div class="ctrl ms-ama"><label for="ama-ms-slider">amaS%</label><input type="range" id="ama-ms-slider" min="0" max="1000" value="${amaMsInitSlider}" title="AMA Max Slope % per bar (${AMA_MS_MIN}-${AMA_MS_MAX})"><span class="val" id="ama-ms-value">${defaultAmaMaxSlopePct.toFixed(4)}</span></div>
355
+ <div class="ctrl clip"><label for="clip-slider">clip%</label><input type="range" id="clip-slider" min="0" max="${CLIP_PCT_MAX}" value="${Math.min(defaultClipPct, CLIP_PCT_MAX)}" title="Outlier Clip %"><span class="val" id="clip-value">${Math.min(defaultClipPct, CLIP_PCT_MAX)}%</span></div>
323
356
 
324
357
  <div class="group-sep"></div>
325
- <div class="ctrl th"><label for="th-slider">th%</label><input type="range" id="th-slider" min="0" max="50" value="${Math.round(defaultMinOutputThreshold * 100)}" title="Minimum pre-gain blended output required before the signal is allowed through (0.00-0.50)"><span class="val" id="th-value">${defaultMinOutputThreshold.toFixed(2)}</span></div>
358
+ <div class="ctrl th"><label for="th-slider">th%</label><input type="range" id="th-slider" min="0" max="${TH_MAX * 100}" value="${Math.round(defaultMinOutputThreshold * 100)}" title="Minimum pre-gain blended output required before the signal is allowed through (${TH_MIN.toFixed(2)}-${TH_MAX.toFixed(2)})"><span class="val" id="th-value">${defaultMinOutputThreshold.toFixed(2)}</span></div>
326
359
 
327
360
  <div class="group-sep"></div>
328
361
  <div class="row-break"></div>
329
- <div class="ctrl ms-kal"><label for="kal-ms-slider">kalS%</label><input type="range" id="kal-ms-slider" min="0" max="1000" value="${kalMsInitSlider}" title="Kalman Max Slope % (0.15-1.5)"><span class="val" id="kal-ms-value">${clampedKalMs.toFixed(2)}</span></div>
330
- <div class="ctrl kf"><label for="kf-slider">kf</label><input type="range" id="kf-slider" min="0" max="200" value="${defaultKalmanSmoothPct}" title="Kalman smoothing blend (0 = raw, 100 = current adaptive smoothing, 200 = stronger smoothing)"><span class="val" id="kf-value">${defaultKalmanSmoothPct}%</span></div>
331
- <div class="ctrl kfd"><label for="kfd-slider">kfd</label><input type="range" id="kfd-slider" min="100" max="300" value="${Math.round(defaultKalmanDispScaleMult * 100)}" title="Kalman displacement scale multiplier (1x to 3x)"><span class="val" id="kfd-value">${defaultKalmanDispScaleMult.toFixed(2)}x</span></div>
332
- <div class="ctrl dsp"><label for="dsp-slider">dsp</label><input type="range" id="dsp-slider" min="25" max="400" value="${Math.round(defaultDispScaleMinPct * 100)}" title="Minimum displacement scale floor (0.25x to 4.0x)"><span class="val" id="dsp-value">${defaultDispScaleMinPct.toFixed(2)}x</span></div>
333
- <div class="ctrl kdt"><label for="kdt-slider">kdt</label><input type="range" id="kdt-slider" min="25" max="300" value="${Math.round(defaultKalmanDispThresholdMult * 100)}" title="Kalman displacement threshold multiplier (0.25x to 3x)"><span class="val" id="kdt-value">${defaultKalmanDispThresholdMult.toFixed(2)}x</span></div>
334
- <div class="ctrl kfs"><label for="kfs-slider">kfs</label><input type="range" id="kfs-slider" min="20" max="200" value="${defaultKalmanSmoothSpanPct}" title="Adaptive EMA span ratio (20% span / 200% span; floor fixed at 0)"><span class="val" id="kfs-value">${defaultKalmanSmoothSpanPct}%</span></div>
335
- <div class="ctrl cf"><label for="cf-slider">cf</label><input type="range" id="cf-slider" min="0" max="5" value="${defaultSignalConfirmBars}" title="Signal confirmation bars (0 disables latching; otherwise flips after N opposite echo bars)"><span class="val" id="cf-value">${defaultSignalConfirmBars}</span></div>
336
- <div class="ctrl off"><label for="gain-slider">gain</label><input type="range" id="gain-slider" min="0" max="1000" value="${gainInitSlider}" title="Output Gain (0.5-2.0)"><span class="val" id="gain-value">${clampedGain.toFixed(3)}</span></div>
337
- <div class="ctrl regime"><label for="regime-slider">regi</label><input type="range" id="regime-slider" min="0" max="200" value="${regimeInitSlider}" title="Regime Sensitivity"><span class="val" id="regime-value">${defaultRegimeSensitivity.toFixed(2)}</span></div>
362
+ <div class="ctrl ms-kal"><label for="kal-ms-slider">kalS%</label><input type="range" id="kal-ms-slider" min="0" max="1000" value="${kalMsInitSlider}" title="Kalman Max Slope % (${KAL_MS_MIN}-${KAL_MS_MAX})"><span class="val" id="kal-ms-value">${clampedKalMs.toFixed(2)}</span></div>
363
+ <div class="ctrl kf"><label for="kf-slider">kf</label><input type="range" id="kf-slider" min="${KF_MIN}" max="${KF_MAX}" value="${defaultKalmanSmoothPct}" title="Kalman smoothing blend (${KF_MIN} = raw, 100 = current adaptive smoothing, ${KF_MAX} = stronger smoothing)"><span class="val" id="kf-value">${defaultKalmanSmoothPct}%</span></div>
364
+ <div class="ctrl kfd"><label for="kfd-slider">kfd</label><input type="range" id="kfd-slider" min="${KFD_MIN * 100}" max="${KFD_MAX * 100}" value="${Math.round(defaultKalmanDispScaleMult * 100)}" title="Kalman displacement scale multiplier (${KFD_MIN}x to ${KFD_MAX}x)"><span class="val" id="kfd-value">${defaultKalmanDispScaleMult.toFixed(2)}x</span></div>
365
+ <div class="ctrl dsp"><label for="dsp-slider">dsp</label><input type="range" id="dsp-slider" min="${DSP_MIN * 100}" max="${DSP_MAX * 100}" value="${Math.round(defaultDispScaleMinPct * 100)}" title="Minimum displacement scale floor (${DSP_MIN}x to ${DSP_MAX.toFixed(1)}x)"><span class="val" id="dsp-value">${defaultDispScaleMinPct.toFixed(2)}x</span></div>
366
+ <div class="ctrl kdt"><label for="kdt-slider">kdt</label><input type="range" id="kdt-slider" min="${KDT_MIN * 100}" max="${KDT_MAX * 100}" value="${Math.round(defaultKalmanDispThresholdMult * 100)}" title="Kalman displacement threshold multiplier (${KDT_MIN}x to ${KDT_MAX}x)"><span class="val" id="kdt-value">${defaultKalmanDispThresholdMult.toFixed(2)}x</span></div>
367
+ <div class="ctrl kfs"><label for="kfs-slider">kfs</label><input type="range" id="kfs-slider" min="${KFS_MIN}" max="${KFS_MAX}" value="${defaultKalmanSmoothSpanPct}" title="Adaptive EMA span ratio (${KFS_MIN}% span / ${KFS_MAX}% span; floor fixed at 0)"><span class="val" id="kfs-value">${defaultKalmanSmoothSpanPct}%</span></div>
368
+ <div class="ctrl cf"><label for="cf-slider">cf</label><input type="range" id="cf-slider" min="${CF_MIN}" max="${CF_MAX}" value="${defaultSignalConfirmBars}" title="Signal confirmation bars (0 disables latching; otherwise flips after N opposite echo bars)"><span class="val" id="cf-value">${defaultSignalConfirmBars}</span></div>
369
+ <div class="ctrl off"><label for="gain-slider">gain</label><input type="range" id="gain-slider" min="0" max="1000" value="${gainInitSlider}" title="Output Gain (${GAIN_MIN.toFixed(1)}-${GAIN_MAX.toFixed(1)})"><span class="val" id="gain-value">${clampedGain.toFixed(3)}</span></div>
370
+ <div class="ctrl regime"><label for="regime-slider">regi</label><input type="range" id="regime-slider" min="0" max="${REGI_MAX * 100}" value="${regimeInitSlider}" title="Regime Sensitivity"><span class="val" id="regime-value">${defaultRegimeSensitivity.toFixed(2)}</span></div>
338
371
  <button class="copy-btn" id="copy-params-btn">copy</button>
339
372
  <button class="paste-btn" id="paste-params-btn">paste</button>
340
373
  </div>
@@ -351,7 +384,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
351
384
  </div>
352
385
  </div>
353
386
 
354
- <script id="payload" type="application/json">${serializeJsonForScript({ dates, prices, hurstArr, peArr, hurstSegments, peSegments, ama3Prices, amaSeedSmaLine, amaSlopePct, kalmanVelocityPctRaw, kalmanVelocityPct, kalmanDisplacementPct, kalmanIsReady, signals, alpha: defaultAlpha, gain: defaultGain, kalmanSmoothPct: defaultKalmanSmoothPct, kalmanDispScaleMult: defaultKalmanDispScaleMult, kalmanDispThresholdMult: defaultKalmanDispThresholdMult, kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct, signalConfirmBars: defaultSignalConfirmBars, neutralZonePct: defaultNeutralZone, dispWeight: defaultDispWeight, amaMaxSlopePct: defaultAmaMaxSlopePct, kalmanMaxSlopePct: defaultKalmanMaxSlopePct, maxDispPct, clipPct: defaultClipPct, minOutputThreshold: defaultMinOutputThreshold, outputClamp: defaultOutputClamp, regimeSensitivity: defaultRegimeSensitivity, absoluteThreshold: defaultAbsoluteThreshold, lookbackBars, amaErPeriod, amaSlowPeriod, amaWarmupBars, amaSlopeReadyBars, realBarCount, amaPctMax, kalPctMax, amaPercentiles, kalPercentiles, amaSlopeLogMin: AMA_MS_LOG_MIN_N, amaSlopeLogMax: AMA_MS_LOG_MAX_N, kalSlopeLogMin: KAL_MS_LOG_MIN_N, kalSlopeLogMax: KAL_MS_LOG_MAX_N, lbLogMin: LB_LOG_MIN_N, lbLogMax: LB_LOG_MAX_N, gainLogMin: GAIN_LOG_MIN_N, gainLogMax: GAIN_LOG_MAX_N, dispScaleMinPct: defaultDispScaleMinPct, weightMin: MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT, weightMax: MARKET_ADAPTER.DYNAMIC_WEIGHT_MAX_WEIGHT, marketAdapter: ma, amaWeightConfig, hNodes: [0.5 + MARKET_ADAPTER.HURST_ZONE_BAND, 0.5, 0.5 - MARKET_ADAPTER.HURST_ZONE_BAND], pNodes: MARKET_ADAPTER.PE_NODES, regimeTable: MARKET_ADAPTER.REGIME_TABLE })}</script>
387
+ <script id="payload" type="application/json">${serializeJsonForScript({ dates, prices, hurstArr, peArr, hurstSegments, peSegments, ama3Prices, amaSeedSmaLine, amaSlopePct, kalmanVelocityPctRaw, kalmanVelocityPct, kalmanDisplacementPct, kalmanIsReady, signals, alpha: defaultAlpha, gain: defaultGain, kalmanSmoothPct: defaultKalmanSmoothPct, kalmanDispScaleMult: defaultKalmanDispScaleMult, kalmanDispThresholdMult: defaultKalmanDispThresholdMult, kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct, signalConfirmBars: defaultSignalConfirmBars, neutralZonePct: defaultNeutralZone, dispWeight: defaultDispWeight, amaMaxSlopePct: defaultAmaMaxSlopePct, kalmanMaxSlopePct: defaultKalmanMaxSlopePct, maxDispPct, clipPct: defaultClipPct, minOutputThreshold: defaultMinOutputThreshold, outputClamp: defaultOutputClamp, regimeSensitivity: defaultRegimeSensitivity, absoluteThreshold: defaultAbsoluteThreshold, lookbackBars, amaErPeriod, amaSlowPeriod, amaWarmupBars, amaSlopeReadyBars, realBarCount, amaPctMax, kalPctMax, amaPercentiles, kalPercentiles, amaSlopeLogMin: AMA_MS_LOG_MIN_N, amaSlopeLogMax: AMA_MS_LOG_MAX_N, kalSlopeLogMin: KAL_MS_LOG_MIN_N, kalSlopeLogMax: KAL_MS_LOG_MAX_N, lbLogMin: LB_LOG_MIN_N, lbLogMax: LB_LOG_MAX_N, gainLogMin: GAIN_LOG_MIN_N, gainLogMax: GAIN_LOG_MAX_N, sliderRanges: SLIDER_RANGES, dispScaleMinPct: defaultDispScaleMinPct, weightMin: MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT, weightMax: MARKET_ADAPTER.DYNAMIC_WEIGHT_MAX_WEIGHT, marketAdapter: ma, amaWeightConfig, hNodes: [0.5 + MARKET_ADAPTER.HURST_ZONE_BAND, 0.5, 0.5 - MARKET_ADAPTER.HURST_ZONE_BAND], pNodes: MARKET_ADAPTER.PE_NODES, regimeTable: MARKET_ADAPTER.REGIME_TABLE })}</script>
355
388
 
356
389
  <script>
357
390
  const data = JSON.parse(document.getElementById('payload').textContent);
@@ -362,6 +395,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
362
395
  const Y_AXIS_SIZE = ${Y_AXIS_SIZE};
363
396
  const ma = data.marketAdapter || {};
364
397
  const amaWeightConfig = data.amaWeightConfig || {};
398
+ const SR = data.sliderRanges ?? ${serializeJsonForScript(SLIDER_RANGES)};
365
399
 
366
400
  const ABSOLUTE_THRESHOLD = data.absoluteThreshold ?? ${JSON.stringify(defaultAbsoluteThreshold)};
367
401
  const WEIGHT_MIN = data.weightMin ?? ${JSON.stringify(MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT)};
@@ -373,7 +407,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
373
407
 
374
408
  let currentAlpha = data.alpha ?? ${JSON.stringify(defaultAlpha)};
375
409
  let currentGain = data.gain ?? ${JSON.stringify(defaultGain)};
376
- let currentMinOutputThreshold = Math.min(Math.max(data.minOutputThreshold ?? ${JSON.stringify(defaultMinOutputThreshold)}, 0), 0.5);
410
+ let currentMinOutputThreshold = Math.min(Math.max(data.minOutputThreshold ?? ${JSON.stringify(defaultMinOutputThreshold)}, SR.minOutputThreshold[0]), SR.minOutputThreshold[1]);
377
411
  let currentKalmanSmoothPct = data.kalmanSmoothPct ?? ${JSON.stringify(defaultKalmanSmoothPct)};
378
412
  let currentKalmanDispScaleMult = data.kalmanDispScaleMult ?? ${JSON.stringify(defaultKalmanDispScaleMult)};
379
413
  let currentKalmanDispThresholdMult = data.kalmanDispThresholdMult ?? ${JSON.stringify(defaultKalmanDispThresholdMult)};
@@ -395,7 +429,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
395
429
  const LB_LOG_MIN = data.lbLogMin;
396
430
  const LB_LOG_MAX = data.lbLogMax;
397
431
  const lbSliderToVal = (pos) => Math.round(Math.exp(LB_LOG_MIN + (pos / 1000) * (LB_LOG_MAX - LB_LOG_MIN)));
398
- const lbValToSlider = (val) => Math.round((Math.log(Math.max(1, val)) - LB_LOG_MIN) / (LB_LOG_MAX - LB_LOG_MIN) * 1000);
432
+ const lbValToSlider = (val) => Math.round((Math.log(Math.max(SR.lookbackBars[0], val)) - LB_LOG_MIN) / (LB_LOG_MAX - LB_LOG_MIN) * 1000);
399
433
 
400
434
  const GAIN_LOG_MIN = data.gainLogMin;
401
435
  const GAIN_LOG_MAX = data.gainLogMax;
@@ -482,7 +516,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
482
516
  }
483
517
 
484
518
  function recalcLatchedSignals() {
485
- const confirmBars = Math.max(0, Math.min(5, currentSignalConfirmBars));
519
+ const confirmBars = Math.max(SR.signalConfirmBars[0], Math.min(SR.signalConfirmBars[1], currentSignalConfirmBars));
486
520
  if (confirmBars === 0) {
487
521
  for (let i = 0; i < data.dates.length; i++) {
488
522
  currentLatchedSignals[i] = data.signals[i] || null;
@@ -560,8 +594,10 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
560
594
  if (currentClipPct > 0) {
561
595
  const slopes = [];
562
596
  for (let i = amaReadyBar; i < data.realBarCount; i++) {
563
- const s = computeSlopeAtIndex(i, lb);
564
- if (s !== 0) slopes.push(Math.abs(s));
597
+ // Keep every finite slope (zeros included) — matches the live
598
+ // market adapter service clip pool exactly.
599
+ const s = computeAverageAmaSlopePct(data.ama3Prices[i], data.ama3Prices[i - lb], lb);
600
+ if (Number.isFinite(s)) slopes.push(Math.abs(s));
565
601
  }
566
602
  if (slopes.length > 0) {
567
603
  slopes.sort((a, b) => a - b);
@@ -1079,7 +1115,7 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
1079
1115
  });
1080
1116
 
1081
1117
  document.getElementById('th-slider').addEventListener('input', (e) => {
1082
- currentMinOutputThreshold = Math.min(Math.max(parseInt(e.target.value, 10) / 100, 0), 0.5);
1118
+ currentMinOutputThreshold = Math.min(Math.max(parseInt(e.target.value, 10) / 100, SR.minOutputThreshold[0]), SR.minOutputThreshold[1]);
1083
1119
  document.getElementById('th-value').textContent = currentMinOutputThreshold.toFixed(2);
1084
1120
  recalcWeights();
1085
1121
  refreshChartsPreservingZoom();
@@ -1157,67 +1193,67 @@ function generateHTML(data: any, title = 'Dynamic Weight Research') {
1157
1193
  function applyParams(p, btn) {
1158
1194
  if (typeof p !== 'object' || p === null) throw new Error('not an object');
1159
1195
  if (p.alpha != null) {
1160
- currentAlpha = Math.max(0, Math.min(1, p.alpha));
1196
+ currentAlpha = Math.max(SR.alpha[0], Math.min(SR.alpha[1], p.alpha));
1161
1197
  document.getElementById('alpha-slider').value = Math.round(currentAlpha * 100);
1162
1198
  document.getElementById('alpha-value').textContent = currentAlpha.toFixed(2);
1163
1199
  }
1164
1200
  if (p.dispWeight != null) {
1165
- currentDw = Math.max(0, Math.min(1, p.dispWeight));
1201
+ currentDw = Math.max(SR.dispWeight[0], Math.min(SR.dispWeight[1], p.dispWeight));
1166
1202
  document.getElementById('dw-slider').value = Math.round(currentDw * 100);
1167
1203
  document.getElementById('dw-value').textContent = currentDw.toFixed(2);
1168
1204
  }
1169
1205
  if (p.amaMaxSlopePct != null) {
1170
- currentAmaMaxSlopePct = Math.max(0.01, Math.min(0.5, p.amaMaxSlopePct));
1206
+ currentAmaMaxSlopePct = Math.max(SR.amaMaxSlopePct[0], Math.min(SR.amaMaxSlopePct[1], p.amaMaxSlopePct));
1171
1207
  document.getElementById('ama-ms-slider').value = Math.round((Math.log(currentAmaMaxSlopePct) - AMA_MS_LOG_MIN) / (AMA_MS_LOG_MAX - AMA_MS_LOG_MIN) * 1000);
1172
1208
  document.getElementById('ama-ms-value').textContent = currentAmaMaxSlopePct.toFixed(4);
1173
1209
  }
1174
1210
  if (p.kalmanMaxSlopePct != null) {
1175
- currentKalmanMaxSlopePct = Math.max(0.15, Math.min(1.5, p.kalmanMaxSlopePct));
1211
+ currentKalmanMaxSlopePct = Math.max(SR.kalmanMaxSlopePct[0], Math.min(SR.kalmanMaxSlopePct[1], p.kalmanMaxSlopePct));
1176
1212
  document.getElementById('kal-ms-slider').value = Math.round((Math.log(currentKalmanMaxSlopePct) - KAL_MS_LOG_MIN) / (KAL_MS_LOG_MAX - KAL_MS_LOG_MIN) * 1000);
1177
1213
  document.getElementById('kal-ms-value').textContent = currentKalmanMaxSlopePct.toFixed(2);
1178
1214
  }
1179
1215
  if (p.gain != null) {
1180
- currentGain = Math.max(0.5, Math.min(2.0, p.gain));
1216
+ currentGain = Math.max(SR.gain[0], Math.min(SR.gain[1], p.gain));
1181
1217
  document.getElementById('gain-slider').value = gainValToSlider(currentGain);
1182
1218
  document.getElementById('gain-value').textContent = currentGain.toFixed(3);
1183
1219
  }
1184
1220
  if (p.minOutputThreshold != null) {
1185
- currentMinOutputThreshold = Math.max(0, Math.min(0.5, p.minOutputThreshold));
1221
+ currentMinOutputThreshold = Math.max(SR.minOutputThreshold[0], Math.min(SR.minOutputThreshold[1], p.minOutputThreshold));
1186
1222
  document.getElementById('th-slider').value = Math.round(currentMinOutputThreshold * 100);
1187
1223
  document.getElementById('th-value').textContent = currentMinOutputThreshold.toFixed(2);
1188
1224
  }
1189
1225
  if (p.kalmanSmoothPct != null) {
1190
- currentKalmanSmoothPct = Math.max(0, Math.min(200, Math.round(p.kalmanSmoothPct)));
1226
+ currentKalmanSmoothPct = Math.max(SR.kalmanSmoothPct[0], Math.min(SR.kalmanSmoothPct[1], Math.round(p.kalmanSmoothPct)));
1191
1227
  document.getElementById('kf-slider').value = currentKalmanSmoothPct;
1192
1228
  document.getElementById('kf-value').textContent = currentKalmanSmoothPct + '%';
1193
1229
  }
1194
1230
  if (p.kalmanDispScaleMult != null) {
1195
- currentKalmanDispScaleMult = Math.max(1.0, Math.min(3.0, p.kalmanDispScaleMult));
1231
+ currentKalmanDispScaleMult = Math.max(SR.kalmanDispScaleMult[0], Math.min(SR.kalmanDispScaleMult[1], p.kalmanDispScaleMult));
1196
1232
  document.getElementById('kfd-slider').value = Math.round(currentKalmanDispScaleMult * 100);
1197
1233
  document.getElementById('kfd-value').textContent = currentKalmanDispScaleMult.toFixed(2) + 'x';
1198
1234
  }
1199
1235
  if (p.dispScaleMinPct != null) {
1200
- currentDispScaleMinPct = Math.max(0.25, Math.min(4.0, p.dispScaleMinPct));
1236
+ currentDispScaleMinPct = Math.max(SR.dispScaleMinPct[0], Math.min(SR.dispScaleMinPct[1], p.dispScaleMinPct));
1201
1237
  document.getElementById('dsp-slider').value = Math.round(currentDispScaleMinPct * 100);
1202
1238
  document.getElementById('dsp-value').textContent = currentDispScaleMinPct.toFixed(2) + 'x';
1203
1239
  }
1204
1240
  if (p.kalmanDispThresholdMult != null) {
1205
- currentKalmanDispThresholdMult = Math.max(0.25, Math.min(3.0, p.kalmanDispThresholdMult));
1241
+ currentKalmanDispThresholdMult = Math.max(SR.kalmanDispThresholdMult[0], Math.min(SR.kalmanDispThresholdMult[1], p.kalmanDispThresholdMult));
1206
1242
  document.getElementById('kdt-slider').value = Math.round(currentKalmanDispThresholdMult * 100);
1207
1243
  document.getElementById('kdt-value').textContent = currentKalmanDispThresholdMult.toFixed(2) + 'x';
1208
1244
  }
1209
1245
  if (p.kalmanSmoothSpanPct != null) {
1210
- currentKalmanSmoothSpanPct = Math.max(20, Math.min(200, Math.round(p.kalmanSmoothSpanPct)));
1246
+ currentKalmanSmoothSpanPct = Math.max(SR.kalmanSmoothSpanPct[0], Math.min(SR.kalmanSmoothSpanPct[1], Math.round(p.kalmanSmoothSpanPct)));
1211
1247
  document.getElementById('kfs-slider').value = currentKalmanSmoothSpanPct;
1212
1248
  document.getElementById('kfs-value').textContent = currentKalmanSmoothSpanPct + '%';
1213
1249
  }
1214
1250
  if (p.signalConfirmBars != null) {
1215
- currentSignalConfirmBars = Math.max(0, Math.min(5, Math.round(p.signalConfirmBars)));
1251
+ currentSignalConfirmBars = Math.max(SR.signalConfirmBars[0], Math.min(SR.signalConfirmBars[1], Math.round(p.signalConfirmBars)));
1216
1252
  document.getElementById('cf-slider').value = currentSignalConfirmBars;
1217
1253
  document.getElementById('cf-value').textContent = currentSignalConfirmBars;
1218
1254
  }
1219
1255
  if (p.clipPct != null) {
1220
- currentClipPct = Math.max(0, Math.min(55, Math.round(p.clipPct)));
1256
+ currentClipPct = Math.max(SR.clipPct[0], Math.min(SR.clipPct[1], Math.round(p.clipPct)));
1221
1257
  document.getElementById('clip-slider').value = currentClipPct;
1222
1258
  document.getElementById('clip-value').textContent = currentClipPct + '%';
1223
1259
  if (currentClipPct === 0) {
@@ -1229,17 +1265,17 @@ function applyParams(p, btn) {
1229
1265
  }
1230
1266
  }
1231
1267
  if (p.neutralZonePct != null) {
1232
- currentNz = Math.max(0, Math.min(1, p.neutralZonePct));
1268
+ currentNz = Math.max(SR.neutralZonePct[0], Math.min(SR.neutralZonePct[1], p.neutralZonePct));
1233
1269
  document.getElementById('nz-slider').value = Math.round(currentNz * 100);
1234
1270
  document.getElementById('nz-value').textContent = currentNz.toFixed(2);
1235
1271
  }
1236
1272
  if (p.regimeSensitivity != null) {
1237
- currentRegimeSensitivity = Math.max(0, Math.min(2, p.regimeSensitivity));
1273
+ currentRegimeSensitivity = Math.max(SR.regimeSensitivity[0], Math.min(SR.regimeSensitivity[1], p.regimeSensitivity));
1238
1274
  document.getElementById('regime-slider').value = Math.round(currentRegimeSensitivity * 100);
1239
1275
  document.getElementById('regime-value').textContent = currentRegimeSensitivity.toFixed(2);
1240
1276
  }
1241
1277
  if (p.lookbackBars != null) {
1242
- currentLookbackBars = Math.max(1, Math.min(32, Math.round(p.lookbackBars)));
1278
+ currentLookbackBars = Math.max(SR.lookbackBars[0], Math.min(SR.lookbackBars[1], Math.round(p.lookbackBars)));
1243
1279
  document.getElementById('lb-slider').value = lbValToSlider(currentLookbackBars);
1244
1280
  document.getElementById('lb-value').textContent = currentLookbackBars;
1245
1281
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trend-detection",
3
- "version": "1.4.19",
3
+ "version": "1.4.20",
4
4
  "description": "Kalman filter trend detection with tactical/modal state tracking",
5
5
  "main": "../../dist/analysis/trend_detection/kalman_trend_analyzer.js",
6
6
  "scripts": {
@@ -5,7 +5,10 @@ const { createClawInfrastructure } = require('../modules/claw_infra');
5
5
  const { getErrorMessage } = require('../../modules/utils/errors');
6
6
 
7
7
  async function main() {
8
- const profileRoot = process.argv[2] || process.env.DEXBOT_PROFILE_ROOT || null;
8
+ // Pass an explicit profile root via argv[2], or null to let the shared
9
+ // resolver decide (env override → home config → legacy layouts). Reading
10
+ // DEXBOT_PROFILE_ROOT here directly would bypass that priority order.
11
+ const profileRoot = process.argv[2] || null;
9
12
  const botRef = process.argv[3] || null;
10
13
 
11
14
  const claw = createClawInfrastructure({
@@ -778,7 +778,7 @@ function getClawToolCatalog() {
778
778
  return CLAW_TOOL_CATALOG.map(cloneTool);
779
779
  }
780
780
 
781
- function buildClawCommandExamples(scriptPath = 'tsx scripts/claw_bridge.ts') {
781
+ function buildClawCommandExamples(scriptPath = 'tsx claw/scripts/claw_bridge.ts') {
782
782
  return CLAW_TOOL_CATALOG
783
783
  .filter((tool) => Array.isArray(tool.exampleArgs))
784
784
  .map((tool) => [
@@ -11,14 +11,15 @@ function normalizeClawRepoRoot(repoRoot: string) {
11
11
  return normalizeRepoRoot(repoRoot);
12
12
  }
13
13
 
14
- // Generated docs must reference scripts that actually exist. Prefer the built
15
- // .js (dist layout); fall back to the .ts source run through tsx.
14
+ // Generated docs must reference scripts that actually exist. Claw tooling
15
+ // lives in claw/scripts/ (shipped as source); prefer a compiled sibling when
16
+ // present, otherwise fall back to the .ts source run through tsx.
16
17
  function resolveScriptInvocation(repoRoot: string, name: string) {
17
- const jsPath = path.join(repoRoot, 'scripts', `${name}.js`);
18
+ const jsPath = path.join(repoRoot, 'claw', 'scripts', `${name}.js`);
18
19
  if (storage.exists(jsPath)) {
19
20
  return { command: 'node', script: jsPath };
20
21
  }
21
- return { command: 'npx tsx', script: path.join(repoRoot, 'scripts', `${name}.ts`) };
22
+ return { command: 'npx tsx', script: path.join(repoRoot, 'claw', 'scripts', `${name}.ts`) };
22
23
  }
23
24
 
24
25
  function buildBridgeInvocation(repoRoot: string, profileRoot: string, command: string, extraArgs: any[] = []) {
@@ -208,7 +209,7 @@ function buildRuntimeSetup(runtime: any, repoRoot: string, profileRoot: string)
208
209
  'Start the memU MCP server:',
209
210
  '',
210
211
  '```bash',
211
- `tsx ${path.join(repoRoot, 'scripts', 'memu_mcp_server.ts').replace(/\\/g, '/')} --memu-dir ${PATHS.CLAW.MEMU_DIR.replace(/\\/g, '/')}`,
212
+ `tsx ${path.join(repoRoot, 'claw', 'scripts', 'memu_mcp_server.ts').replace(/\\/g, '/')} --memu-dir ${PATHS.CLAW.MEMU_DIR.replace(/\\/g, '/')}`,
212
213
  '```',
213
214
  '',
214
215
  'Or use the npm script:',
@@ -706,7 +706,9 @@ function resolveProfilesDir(profileRoot: any) {
706
706
  candidates.push(path.join(envRoot, 'profiles'));
707
707
  }
708
708
 
709
- if (Config.CWD) candidates.push(path.resolve(Config.CWD, 'profiles'));
709
+ // No bare CWD/profiles candidate here: an existing home config is
710
+ // authoritative (matching modules/paths.ts), and legacy cwd profiles are
711
+ // handled by the central resolver's migration logic below.
710
712
 
711
713
  for (const candidate of candidates) {
712
714
  if (isFileLike(candidate)) {
@@ -44,8 +44,10 @@ function normalizeRoot(options: Record<string, any> = {}) {
44
44
  if (parent === candidate) break;
45
45
  candidate = parent;
46
46
  }
47
- // Fall back to one level up (original behavior)
48
- return path.dirname(resolved);
47
+ // No code root found above the profile dir (e.g. a home config like
48
+ // ~/.config/dexbot2/profiles). Spawn from the code location actually
49
+ // running this launcher instead of guessing an unrelated ancestor.
50
+ return DEFAULT_ROOT;
49
51
  }
50
52
  return DEFAULT_ROOT;
51
53
  }
package/claw/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dexbot2-claw",
3
- "version": "1.4.19",
3
+ "version": "1.4.20",
4
4
  "private": true,
5
5
  "description": "Claw bridge and runtime integration layer for BitShares and DEXBot2.",
6
6
  "type": "module",
@@ -2,7 +2,7 @@
2
2
  "id": "bitshares-claw",
3
3
  "name": "BitShares Claw",
4
4
  "description": "Native BitShares and DEXBot2 tools from the DEXBot2 claw integration",
5
- "version": "1.4.19",
5
+ "version": "1.4.20",
6
6
  "skills": [
7
7
  "skills"
8
8
  ],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bitshares-claw-openclaw-plugin",
3
3
  "private": true,
4
- "version": "1.4.19",
4
+ "version": "1.4.20",
5
5
  "type": "module",
6
6
  "main": "index.js"
7
7
  }
@@ -31,7 +31,7 @@ async function testParserAcceptsJsonlAcrossChunksAndSingleBuffer() {
31
31
  capabilities: {},
32
32
  clientInfo: {
33
33
  name: 'claw-mcp-transport-test',
34
- version: '1.4.19'
34
+ version: '1.4.20'
35
35
  },
36
36
  protocolVersion: '2024-11-05'
37
37
  }
@@ -182,7 +182,7 @@ async function testMainEntrypointHandlesRealProcessInitialize() {
182
182
  capabilities: {},
183
183
  clientInfo: {
184
184
  name: 'claw-mcp-transport-test',
185
- version: '1.4.19'
185
+ version: '1.4.20'
186
186
  },
187
187
  protocolVersion: '2024-11-05'
188
188
  }
@@ -190,8 +190,8 @@ function generateChartHtml(results, metricCache, fixEr, fixFast, dataLabel, _cha
190
190
  const move = results.map((r) => r.movement);
191
191
  const cacheSlow = metricCache.map((m) => m.slow);
192
192
  const cacheMove = metricCache.map((m) => m.movement);
193
- const uplotCode = fs.readFileSync(path.resolve(__dirname, '..', 'uplot', 'uPlot.iife.min.js'), 'utf8');
194
- const uplotCSS = fs.readFileSync(path.resolve(__dirname, '..', 'uplot', 'uPlot.min.css'), 'utf8');
193
+ const uplotCode = fs.readFileSync(path.join(PATHS.ANALYSIS.ASSETS_DIR, 'uPlot.iife.min.js'), 'utf8');
194
+ const uplotCSS = fs.readFileSync(path.join(PATHS.ANALYSIS.ASSETS_DIR, 'uPlot.min.css'), 'utf8');
195
195
  const amaAnnotations = [
196
196
  { label: 'AMA1', lambda: 0.0031, slow: 62.1, color: '#ef5350' },
197
197
  { label: 'AMA2', lambda: 0.0025, slow: 71.7, color: '#fb8c00' },
@@ -1 +1 @@
1
- {"version":3,"file":"analyze_lambda_vs_slow.js","sourceRoot":"","sources":["../../../analysis/ama_fitting/analyze_lambda_vs_slow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze_lambda_vs_slow.js","sourceRoot":"","sources":["../../../analysis/ama_fitting/analyze_lambda_vs_slow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizer_high_resolution.d.ts","sourceRoot":"","sources":["../../../analysis/ama_fitting/optimizer_high_resolution.ts"],"names":[],"mappings":"AA4HA,iBAAS,SAAS,CAAC,IAAI,WAAwB;cAG7B,MAAM,GAAG,IAAI;QACnB;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACnF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACrF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;aAClF,MAAM,GAAG,IAAI;mBACP,OAAO;aACb,MAAM,GAAG,IAAI;eACX,MAAM,GAAG,IAAI;aACf,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;gBACV,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;EA6DhC;AA2kBD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"optimizer_high_resolution.d.ts","sourceRoot":"","sources":["../../../analysis/ama_fitting/optimizer_high_resolution.ts"],"names":[],"mappings":"AA4HA,iBAAS,SAAS,CAAC,IAAI,WAAwB;cAG7B,MAAM,GAAG,IAAI;QACnB;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACnF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACrF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;aAClF,MAAM,GAAG,IAAI;mBACP,OAAO;aACb,MAAM,GAAG,IAAI;eACX,MAAM,GAAG,IAAI;aACf,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;gBACV,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;EA6DhC;AA4kBD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -710,7 +710,8 @@ async function run() {
710
710
  const outName = dataFile
711
711
  ? `optimization_results_${path.basename(dataFile, '.json')}${lambdaSuffix}.json`
712
712
  : `optimization_results_high_resolution${lambdaSuffix}.json`;
713
- const outPath = path.join(__dirname, outName);
713
+ const outPath = path.join(PATHS.ANALYSIS.RESULTS_DIR, outName);
714
+ ensureDir(path.dirname(outPath));
714
715
  writeJSON(outPath, {
715
716
  meta: {
716
717
  dataLabel,