dexbot 1.4.24 → 1.5.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 (256) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/README.md +7 -2
  3. package/analysis/README.md +61 -5
  4. package/analysis/ama_fitting/package.json +1 -1
  5. package/analysis/analyze_derivatives.ts +1 -1
  6. package/analysis/bot_key_utils.ts +272 -3
  7. package/analysis/bot_usage/discover_bot_accounts.ts +64 -9
  8. package/analysis/bot_usage/kibana_bot_queries.ts +40 -1
  9. package/analysis/chart_utils.ts +6 -3
  10. package/analysis/grid_correction_check.ts +932 -0
  11. package/analysis/resolve_bot_accounts.ts +199 -0
  12. package/analysis/trade_profitability.ts +36 -8
  13. package/analysis/tradingview/README.md +25 -0
  14. package/analysis/tradingview/analyze_tradingview.ts +2 -2
  15. package/analysis/trend_detection/package.json +1 -1
  16. package/claw/modules/claw_launcher.ts +5 -4
  17. package/claw/modules/credit_runtime_adapter.ts +2 -1
  18. package/claw/modules/dexbot_profiles.ts +4 -3
  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/tests/test_claw_mcp_transport.ts +2 -2
  23. package/dist/analysis/analyze_derivatives.js +1 -1
  24. package/dist/analysis/bot_key_utils.d.ts +28 -1
  25. package/dist/analysis/bot_key_utils.d.ts.map +1 -1
  26. package/dist/analysis/bot_key_utils.js +385 -3
  27. package/dist/analysis/bot_key_utils.js.map +1 -1
  28. package/dist/analysis/bot_usage/discover_bot_accounts.js +60 -10
  29. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -1
  30. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +45 -1
  31. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -1
  32. package/dist/analysis/bot_usage/kibana_bot_queries.js +39 -1
  33. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -1
  34. package/dist/analysis/chart_utils.d.ts +2 -1
  35. package/dist/analysis/chart_utils.d.ts.map +1 -1
  36. package/dist/analysis/chart_utils.js +4 -1
  37. package/dist/analysis/chart_utils.js.map +1 -1
  38. package/dist/analysis/grid_correction_check.d.ts +90 -0
  39. package/dist/analysis/grid_correction_check.d.ts.map +1 -0
  40. package/dist/analysis/grid_correction_check.js +901 -0
  41. package/dist/analysis/grid_correction_check.js.map +1 -0
  42. package/dist/analysis/resolve_bot_accounts.d.ts +3 -0
  43. package/dist/analysis/resolve_bot_accounts.d.ts.map +1 -0
  44. package/dist/analysis/resolve_bot_accounts.js +216 -0
  45. package/dist/analysis/resolve_bot_accounts.js.map +1 -0
  46. package/dist/analysis/trade_profitability.d.ts.map +1 -1
  47. package/dist/analysis/trade_profitability.js +40 -8
  48. package/dist/analysis/trade_profitability.js.map +1 -1
  49. package/dist/analysis/tradingview/analyze_tradingview.js +2 -2
  50. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -1
  51. package/dist/bot.d.ts.map +1 -1
  52. package/dist/bot.js +2 -1
  53. package/dist/bot.js.map +1 -1
  54. package/dist/dexbot.d.ts.map +1 -1
  55. package/dist/dexbot.js +134 -22
  56. package/dist/dexbot.js.map +1 -1
  57. package/dist/market_adapter/ama_signal_runner.js +2 -2
  58. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +2 -1
  59. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -1
  60. package/dist/market_adapter/inputs/fetch_lp_data.d.ts +4 -1
  61. package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
  62. package/dist/market_adapter/inputs/fetch_lp_data.js +3 -2
  63. package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
  64. package/dist/modules/account_bots.d.ts +42 -1
  65. package/dist/modules/account_bots.d.ts.map +1 -1
  66. package/dist/modules/account_bots.js +221 -22
  67. package/dist/modules/account_bots.js.map +1 -1
  68. package/dist/modules/account_orders.d.ts +7 -10
  69. package/dist/modules/account_orders.d.ts.map +1 -1
  70. package/dist/modules/account_orders.js +26 -2
  71. package/dist/modules/account_orders.js.map +1 -1
  72. package/dist/modules/bitshares_client.d.ts +4 -1
  73. package/dist/modules/bitshares_client.d.ts.map +1 -1
  74. package/dist/modules/bitshares_client.js +12 -4
  75. package/dist/modules/bitshares_client.js.map +1 -1
  76. package/dist/modules/bot_settings.d.ts.map +1 -1
  77. package/dist/modules/bot_settings.js +2 -1
  78. package/dist/modules/bot_settings.js.map +1 -1
  79. package/dist/modules/chain_orders.d.ts.map +1 -1
  80. package/dist/modules/chain_orders.js +21 -2
  81. package/dist/modules/chain_orders.js.map +1 -1
  82. package/dist/modules/cli_colors.d.ts +39 -0
  83. package/dist/modules/cli_colors.d.ts.map +1 -0
  84. package/dist/modules/cli_colors.js +42 -0
  85. package/dist/modules/cli_colors.js.map +1 -0
  86. package/dist/modules/config.d.ts.map +1 -1
  87. package/dist/modules/config.js +27 -0
  88. package/dist/modules/config.js.map +1 -1
  89. package/dist/modules/constants.d.ts +14 -1
  90. package/dist/modules/constants.d.ts.map +1 -1
  91. package/dist/modules/constants.js +66 -11
  92. package/dist/modules/constants.js.map +1 -1
  93. package/dist/modules/credit_pricing.d.ts +61 -0
  94. package/dist/modules/credit_pricing.d.ts.map +1 -0
  95. package/dist/modules/credit_pricing.js +237 -0
  96. package/dist/modules/credit_pricing.js.map +1 -0
  97. package/dist/modules/credit_runtime.d.ts +1 -0
  98. package/dist/modules/credit_runtime.d.ts.map +1 -1
  99. package/dist/modules/credit_runtime.js +49 -107
  100. package/dist/modules/credit_runtime.js.map +1 -1
  101. package/dist/modules/dexbot_class.d.ts +25 -0
  102. package/dist/modules/dexbot_class.d.ts.map +1 -1
  103. package/dist/modules/dexbot_class.js +82 -12
  104. package/dist/modules/dexbot_class.js.map +1 -1
  105. package/dist/modules/dexbot_cow_runtime.d.ts +39 -17
  106. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  107. package/dist/modules/dexbot_cow_runtime.js +875 -134
  108. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  109. package/dist/modules/dexbot_fill_runtime.d.ts +11 -1
  110. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  111. package/dist/modules/dexbot_fill_runtime.js +108 -1
  112. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  113. package/dist/modules/dexbot_maintenance_runtime.d.ts +29 -14
  114. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  115. package/dist/modules/dexbot_maintenance_runtime.js +279 -63
  116. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  117. package/dist/modules/dexbot_startup_runtime.d.ts +1 -0
  118. package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
  119. package/dist/modules/dexbot_startup_runtime.js +58 -7
  120. package/dist/modules/dexbot_startup_runtime.js.map +1 -1
  121. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  122. package/dist/modules/dexbot_state_recovery.js +55 -3
  123. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  124. package/dist/modules/fund_registry.d.ts +1 -1
  125. package/dist/modules/fund_registry.js +1 -1
  126. package/dist/modules/graceful_shutdown.d.ts +12 -1
  127. package/dist/modules/graceful_shutdown.d.ts.map +1 -1
  128. package/dist/modules/graceful_shutdown.js +39 -1
  129. package/dist/modules/graceful_shutdown.js.map +1 -1
  130. package/dist/modules/key_store.d.ts.map +1 -1
  131. package/dist/modules/key_store.js +38 -1
  132. package/dist/modules/key_store.js.map +1 -1
  133. package/dist/modules/launcher/adapter_requirement.d.ts +38 -0
  134. package/dist/modules/launcher/adapter_requirement.d.ts.map +1 -0
  135. package/dist/modules/launcher/adapter_requirement.js +141 -0
  136. package/dist/modules/launcher/adapter_requirement.js.map +1 -0
  137. package/dist/modules/launcher/bot_supervisor.d.ts +2 -2
  138. package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
  139. package/dist/modules/launcher/bot_supervisor.js +32 -3
  140. package/dist/modules/launcher/bot_supervisor.js.map +1 -1
  141. package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
  142. package/dist/modules/launcher/launch_modes.js +5 -4
  143. package/dist/modules/launcher/launch_modes.js.map +1 -1
  144. package/dist/modules/launcher/monolithic_runtime.d.ts +1 -1
  145. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
  146. package/dist/modules/launcher/monolithic_runtime.js +12 -8
  147. package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
  148. package/dist/modules/launcher/status_reporting.d.ts +6 -6
  149. package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
  150. package/dist/modules/launcher/status_reporting.js +9 -6
  151. package/dist/modules/launcher/status_reporting.js.map +1 -1
  152. package/dist/modules/order/accounting.d.ts.map +1 -1
  153. package/dist/modules/order/accounting.js +20 -3
  154. package/dist/modules/order/accounting.js.map +1 -1
  155. package/dist/modules/order/export.d.ts +1 -1
  156. package/dist/modules/order/export.js +1 -1
  157. package/dist/modules/order/grid.d.ts +1 -1
  158. package/dist/modules/order/grid.d.ts.map +1 -1
  159. package/dist/modules/order/grid.js +335 -43
  160. package/dist/modules/order/grid.js.map +1 -1
  161. package/dist/modules/order/grid_reconcile.d.ts +4 -2
  162. package/dist/modules/order/grid_reconcile.d.ts.map +1 -1
  163. package/dist/modules/order/grid_reconcile.js +242 -222
  164. package/dist/modules/order/grid_reconcile.js.map +1 -1
  165. package/dist/modules/order/grid_reconcile_internal.d.ts +11 -1
  166. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  167. package/dist/modules/order/grid_reconcile_internal.js +132 -6
  168. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  169. package/dist/modules/order/logger.d.ts +23 -1
  170. package/dist/modules/order/logger.d.ts.map +1 -1
  171. package/dist/modules/order/logger.js +60 -17
  172. package/dist/modules/order/logger.js.map +1 -1
  173. package/dist/modules/order/manager.d.ts +68 -14
  174. package/dist/modules/order/manager.d.ts.map +1 -1
  175. package/dist/modules/order/manager.js +281 -52
  176. package/dist/modules/order/manager.js.map +1 -1
  177. package/dist/modules/order/strategy.d.ts.map +1 -1
  178. package/dist/modules/order/strategy.js +25 -8
  179. package/dist/modules/order/strategy.js.map +1 -1
  180. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  181. package/dist/modules/order/sync_engine.js +262 -167
  182. package/dist/modules/order/sync_engine.js.map +1 -1
  183. package/dist/modules/order/utils/math.d.ts +47 -5
  184. package/dist/modules/order/utils/math.d.ts.map +1 -1
  185. package/dist/modules/order/utils/math.js +175 -11
  186. package/dist/modules/order/utils/math.js.map +1 -1
  187. package/dist/modules/order/utils/order.d.ts +16 -15
  188. package/dist/modules/order/utils/order.d.ts.map +1 -1
  189. package/dist/modules/order/utils/order.js +199 -32
  190. package/dist/modules/order/utils/order.js.map +1 -1
  191. package/dist/modules/order/utils/slot.d.ts +8 -0
  192. package/dist/modules/order/utils/slot.d.ts.map +1 -0
  193. package/dist/modules/order/utils/slot.js +16 -0
  194. package/dist/modules/order/utils/slot.js.map +1 -0
  195. package/dist/modules/order/utils/system.d.ts +52 -4
  196. package/dist/modules/order/utils/system.d.ts.map +1 -1
  197. package/dist/modules/order/utils/system.js +109 -16
  198. package/dist/modules/order/utils/system.js.map +1 -1
  199. package/dist/modules/order/utils/validate.d.ts +6 -9
  200. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  201. package/dist/modules/order/utils/validate.js +107 -85
  202. package/dist/modules/order/utils/validate.js.map +1 -1
  203. package/dist/modules/order/working_grid.d.ts +5 -0
  204. package/dist/modules/order/working_grid.d.ts.map +1 -1
  205. package/dist/modules/order/working_grid.js +21 -0
  206. package/dist/modules/order/working_grid.js.map +1 -1
  207. package/dist/modules/paths.d.ts +4 -2
  208. package/dist/modules/paths.d.ts.map +1 -1
  209. package/dist/modules/paths.js +79 -24
  210. package/dist/modules/paths.js.map +1 -1
  211. package/dist/modules/utils/chain_logs.d.ts +11 -0
  212. package/dist/modules/utils/chain_logs.d.ts.map +1 -0
  213. package/dist/modules/utils/chain_logs.js +23 -0
  214. package/dist/modules/utils/chain_logs.js.map +1 -0
  215. package/dist/modules/utils/sanitize_key.d.ts +7 -0
  216. package/dist/modules/utils/sanitize_key.d.ts.map +1 -1
  217. package/dist/modules/utils/sanitize_key.js +15 -0
  218. package/dist/modules/utils/sanitize_key.js.map +1 -1
  219. package/dist/pm2.d.ts +11 -1
  220. package/dist/pm2.d.ts.map +1 -1
  221. package/dist/pm2.js +66 -15
  222. package/dist/pm2.js.map +1 -1
  223. package/dist/scripts/analyze-credit.d.ts +4 -0
  224. package/dist/scripts/analyze-credit.d.ts.map +1 -0
  225. package/dist/scripts/analyze-credit.js +760 -0
  226. package/dist/scripts/analyze-credit.js.map +1 -0
  227. package/dist/scripts/analyze-orders.d.ts +1 -10
  228. package/dist/scripts/analyze-orders.d.ts.map +1 -1
  229. package/dist/scripts/analyze-orders.js +34 -36
  230. package/dist/scripts/analyze-orders.js.map +1 -1
  231. package/dist/scripts/generate_market_adapter_whitelist.d.ts +2 -5
  232. package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -1
  233. package/dist/scripts/generate_market_adapter_whitelist.js +83 -1
  234. package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -1
  235. package/dist/scripts/test-credit-renewal.d.ts.map +1 -1
  236. package/dist/scripts/test-credit-renewal.js +37 -5
  237. package/dist/scripts/test-credit-renewal.js.map +1 -1
  238. package/dist/scripts/tv.d.ts +11 -0
  239. package/dist/scripts/tv.d.ts.map +1 -0
  240. package/dist/scripts/tv.js +357 -0
  241. package/dist/scripts/tv.js.map +1 -0
  242. package/dist/scripts/update.js +77 -10
  243. package/dist/scripts/update.js.map +1 -1
  244. package/dist/unlock.d.ts.map +1 -1
  245. package/dist/unlock.js +20 -8
  246. package/dist/unlock.js.map +1 -1
  247. package/docs/DEXBOT_COMPARISON.md +11 -11
  248. package/docs/EVOLUTION.md +10 -8
  249. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  250. package/docs/GRID_RECALCULATION.md +6 -0
  251. package/docs/MPA_CREDIT_USAGE.md +3 -1
  252. package/docs/README.md +2 -2
  253. package/docs/WORKFLOW.md +3 -1
  254. package/market_adapter/README.md +10 -0
  255. package/package.json +3 -1
  256. package/scripts/README.md +16 -0
@@ -5,6 +5,7 @@ import { Config } from './config.js';
5
5
  import { isDistRuntime } from './utils/build_dir.js';
6
6
  import { fileURLToPath } from 'node:url';
7
7
  import { dirname as _esmDirname } from 'node:path';
8
+ import { hasProcess } from './env.js';
8
9
  const __filename = fileURLToPath(import.meta.url);
9
10
  const __dirname = _esmDirname(__filename);
10
11
  const MODULE_DIR = path.dirname(__dirname);
@@ -58,15 +59,36 @@ function dirHasState(dir) {
58
59
  }
59
60
  }
60
61
  /**
61
- * User-level config home: XDG_CONFIG_HOME when set (snapshot via Config),
62
- * else ~/.config. All user state roots derive from this single constant so
62
+ * User-level config home: XDG_CONFIG_HOME when set (live env via Config/process.env),
63
+ * else ~/.config. All user state roots derive from this single location so
63
64
  * npm installs, source checkouts, and overrides agree on one location.
65
+ *
66
+ * NOTE: Previously a snapshot const; now a live function so env changes are
67
+ * reflected without module reload (ESM cache does not invalidate via require.cache).
64
68
  */
65
- const HOME_CONFIG_DIR = path.join(Config.XDG_CONFIG_HOME && Config.XDG_CONFIG_HOME.trim()
66
- ? path.resolve(Config.XDG_CONFIG_HOME)
67
- : path.join(homedir(), '.config'), 'dexbot2');
68
- /** Default profiles dir under the user config home (~/.config/dexbot2/profiles). */
69
- const HOME_PROFILES_DIR = path.join(HOME_CONFIG_DIR, 'profiles');
69
+ function getEnvLive(key) {
70
+ if (hasProcess() && process.env[key] !== undefined)
71
+ return process.env[key];
72
+ return Config[key];
73
+ }
74
+ function getEnvDirect(key) {
75
+ return hasProcess() && process.env[key] !== undefined ? process.env[key] : undefined;
76
+ }
77
+ function getHomeConfigDir() {
78
+ const xdg = getEnvDirect('XDG_CONFIG_HOME') ?? Config.XDG_CONFIG_HOME;
79
+ if (xdg && xdg.trim())
80
+ return path.join(path.resolve(xdg), 'dexbot2');
81
+ return path.join(homedir(), '.config', 'dexbot2');
82
+ }
83
+ function getHomeProfilesDir() {
84
+ return path.join(getHomeConfigDir(), 'profiles');
85
+ }
86
+ // Snapshot constants — prefer getHomeConfigDir()/getHomeProfilesDir() for live values.
87
+ // ESM named imports capture the snapshot; CJS require() interop is patched below via
88
+ // Object.defineProperty to return live values (see bottom of file). Future ESM code
89
+ // should call getHome*() directly; HOME_* remains for backward compat only.
90
+ const HOME_CONFIG_DIR = getHomeConfigDir();
91
+ const HOME_PROFILES_DIR = getHomeProfilesDir();
70
92
  /**
71
93
  * Resolve the profiles (user state) directory.
72
94
  *
@@ -84,13 +106,22 @@ const HOME_PROFILES_DIR = path.join(HOME_CONFIG_DIR, 'profiles');
84
106
  * npm packages — their dir must never hold user state.
85
107
  */
86
108
  function resolveProfilesDir(projectRoot = PROJECT_ROOT) {
87
- if (Config.DEXBOT_PROFILE_ROOT) {
88
- return Config.DEXBOT_PROFILE_ROOT;
109
+ const profileRoot = getEnvDirect('DEXBOT_PROFILE_ROOT');
110
+ if (profileRoot) {
111
+ return profileRoot;
89
112
  }
90
- if (Config.DEXBOT2_ROOT) {
91
- return path.join(Config.DEXBOT2_ROOT, 'profiles');
113
+ const dexbot2Root = getEnvDirect('DEXBOT2_ROOT');
114
+ if (dexbot2Root) {
115
+ return path.join(dexbot2Root, 'profiles');
92
116
  }
93
- const homeDir = HOME_PROFILES_DIR;
117
+ // Fallback to Config only for legacy direct Config mutation (not env)
118
+ const cfgProfile = Config.DEXBOT_PROFILE_ROOT;
119
+ if (cfgProfile)
120
+ return cfgProfile;
121
+ const cfgRoot = Config.DEXBOT2_ROOT;
122
+ if (cfgRoot)
123
+ return path.join(cfgRoot, 'profiles');
124
+ const homeDir = getHomeProfilesDir();
94
125
  const repoDir = path.join(projectRoot, 'profiles');
95
126
  const cwdDir = path.join(process.cwd(), 'profiles');
96
127
  // An existing home config is authoritative — the user has migrated.
@@ -129,13 +160,15 @@ const PROFILES_DIR = resolveProfilesDir();
129
160
  function resolveMarketAdapterDirs(profilesDir = PROFILES_DIR, projectRoot = PROJECT_ROOT) {
130
161
  const sourceDir = path.join(projectRoot, 'market_adapter');
131
162
  const useSourceLayout = profilesDir === path.join(projectRoot, 'profiles') && fs.existsSync(sourceDir);
132
- const dataRoot = Config.DEXBOT_MARKET_ADAPTER_DATA_DIR
133
- ? path.resolve(Config.DEXBOT_MARKET_ADAPTER_DATA_DIR)
163
+ const dataEnv = getEnvLive('DEXBOT_MARKET_ADAPTER_DATA_DIR');
164
+ const stateEnv = getEnvLive('DEXBOT_MARKET_ADAPTER_STATE_DIR');
165
+ const dataRoot = dataEnv
166
+ ? path.resolve(dataEnv)
134
167
  : useSourceLayout
135
168
  ? path.join(sourceDir, 'data')
136
169
  : path.join(profilesDir, 'market_adapter', 'data');
137
- const stateRoot = Config.DEXBOT_MARKET_ADAPTER_STATE_DIR
138
- ? path.resolve(Config.DEXBOT_MARKET_ADAPTER_STATE_DIR)
170
+ const stateRoot = stateEnv
171
+ ? path.resolve(stateEnv)
139
172
  : useSourceLayout
140
173
  ? path.join(sourceDir, 'state')
141
174
  : path.join(profilesDir, 'market_adapter', 'state');
@@ -162,8 +195,9 @@ const MARKET_ADAPTER = resolveMarketAdapterDirs(PROFILES_DIR, PROJECT_ROOT);
162
195
  function resolveClawDirs(profilesDir = PROFILES_DIR, projectRoot = PROJECT_ROOT) {
163
196
  const sourceDir = path.join(projectRoot, 'claw');
164
197
  const useSourceLayout = profilesDir === path.join(projectRoot, 'profiles');
165
- const dataRoot = Config.DEXBOT_CLAW_DATA_DIR
166
- ? path.resolve(Config.DEXBOT_CLAW_DATA_DIR)
198
+ const clawEnv = getEnvLive('DEXBOT_CLAW_DATA_DIR');
199
+ const dataRoot = clawEnv
200
+ ? path.resolve(clawEnv)
167
201
  : useSourceLayout
168
202
  ? path.join(sourceDir, 'data')
169
203
  : path.join(profilesDir, 'claw', 'data');
@@ -189,8 +223,9 @@ const CLAW = resolveClawDirs(PROFILES_DIR, PROJECT_ROOT);
189
223
  function resolveAnalysisDirs(profilesDir = PROFILES_DIR, projectRoot = PROJECT_ROOT) {
190
224
  const sourceDir = path.join(projectRoot, 'analysis');
191
225
  const useSourceLayout = profilesDir === path.join(projectRoot, 'profiles') && fs.existsSync(sourceDir);
192
- const outRoot = Config.DEXBOT_ANALYSIS_DIR
193
- ? path.resolve(Config.DEXBOT_ANALYSIS_DIR)
226
+ const analysisEnv = getEnvLive('DEXBOT_ANALYSIS_DIR');
227
+ const outRoot = analysisEnv
228
+ ? path.resolve(analysisEnv)
194
229
  : useSourceLayout
195
230
  ? sourceDir
196
231
  : path.join(profilesDir, 'analysis');
@@ -221,13 +256,13 @@ function computeRelocationNotices(profilesDir, projectRoot) {
221
256
  const maSourceDir = path.join(projectRoot, 'market_adapter');
222
257
  const maRelocated = !(profilesDir === repoProfiles && fs.existsSync(maSourceDir));
223
258
  if (maRelocated
224
- && !Config.DEXBOT_MARKET_ADAPTER_DATA_DIR && !Config.DEXBOT_MARKET_ADAPTER_STATE_DIR
259
+ && !getEnvLive('DEXBOT_MARKET_ADAPTER_DATA_DIR') && !getEnvLive('DEXBOT_MARKET_ADAPTER_STATE_DIR')
225
260
  && (dirHasState(path.join(maSourceDir, 'data')) || dirHasState(path.join(maSourceDir, 'state')))) {
226
261
  notices.push(`[paths] Market adapter state exists at ${maSourceDir} but now resolves to ${path.join(profilesDir, 'market_adapter')}; move the data or set DEXBOT_MARKET_ADAPTER_DATA_DIR / DEXBOT_MARKET_ADAPTER_STATE_DIR to migrate`);
227
262
  }
228
263
  const clawSourceData = path.join(projectRoot, 'claw', 'data');
229
264
  if (profilesDir !== repoProfiles
230
- && !Config.DEXBOT_CLAW_DATA_DIR
265
+ && !getEnvLive('DEXBOT_CLAW_DATA_DIR')
231
266
  && dirHasState(clawSourceData)) {
232
267
  notices.push(`[paths] Claw state exists at ${clawSourceData} but now resolves to ${path.join(profilesDir, 'claw', 'data')}; move the data or set DEXBOT_CLAW_DATA_DIR to migrate`);
233
268
  }
@@ -236,7 +271,7 @@ function computeRelocationNotices(profilesDir, projectRoot) {
236
271
  // silently orphaned now that the runtime dir resolves under the profiles
237
272
  // dir once. Check the resolver-based and repo-based variants and warn if
238
273
  // they hold state but the new location does not match.
239
- if (!Config.DEXBOT_CRED_RUNTIME_DIR) {
274
+ if (!getEnvLive('DEXBOT_CRED_RUNTIME_DIR')) {
240
275
  const newCrDir = path.join(profilesDir, 'credit_runtime');
241
276
  const orphanCandidates = [
242
277
  path.join(profilesDir, 'profiles', 'credit_runtime'),
@@ -297,5 +332,25 @@ function getNodeHealthCacheFile(stateDir) {
297
332
  function getRecalculateTriggerFile(botKey) {
298
333
  return path.join(PATHS.PROFILES_DIR, `recalculate.${botKey}.trigger`);
299
334
  }
300
- export { PATHS, HOME_PROFILES_DIR, resolveProfilesDir, resolveMarketAdapterDirs, resolveClawDirs, resolveAnalysisDirs, isGlobalNpmPackageDir, getNodeBlacklistFile, getNodeHealthCacheFile, getRecalculateTriggerFile, computeRelocationNotices };
335
+ export { PATHS, HOME_PROFILES_DIR, HOME_CONFIG_DIR, getHomeConfigDir, getHomeProfilesDir, resolveProfilesDir, resolveMarketAdapterDirs, resolveClawDirs, resolveAnalysisDirs, isGlobalNpmPackageDir, getNodeBlacklistFile, getNodeHealthCacheFile, getRecalculateTriggerFile, computeRelocationNotices };
336
+ // Live getters for CJS require() interop (ESM cache not invalidated via require.cache)
337
+ try {
338
+ // @ts-ignore - patch CJS wrapper if present
339
+ const g = globalThis;
340
+ if (g.module && g.module.exports) {
341
+ Object.defineProperty(g.module.exports, 'HOME_PROFILES_DIR', { get: getHomeProfilesDir, enumerable: true, configurable: true });
342
+ Object.defineProperty(g.module.exports, 'HOME_CONFIG_DIR', { get: getHomeConfigDir, enumerable: true, configurable: true });
343
+ }
344
+ }
345
+ catch { }
346
+ // Also patch this module's own exports object when loaded via require() interop (Node experimental require(esm))
347
+ try {
348
+ // @ts-ignore
349
+ const exp = typeof exports !== 'undefined' ? exports : undefined;
350
+ if (exp) {
351
+ Object.defineProperty(exp, 'HOME_PROFILES_DIR', { get: getHomeProfilesDir, enumerable: true, configurable: true });
352
+ Object.defineProperty(exp, 'HOME_CONFIG_DIR', { get: getHomeConfigDir, enumerable: true, configurable: true });
353
+ }
354
+ }
355
+ catch { }
301
356
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../modules/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../modules/paths.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC;IAC1C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1B,CAAC,CAAC,UAAU,CAAC;AAEjB;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,cAAc,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG;IAC1B,WAAW;IACX,WAAW;IACX,uBAAuB;IACvB,sBAAsB;IACtB,8BAA8B;IAC9B,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;CAChB,CAAC;AAEX,SAAS,eAAe,CAAC,GAAW;IAChC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAAC,GAAW;IAC5B,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,EAAE;gBAAE,OAAO,IAAI,CAAC;YAChC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpF,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,GAAW;IAC3B,IAAI,UAAU,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5E,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AACD,SAAS,YAAY,CAAC,GAAW;IAC7B,OAAO,UAAU,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AACD,SAAS,gBAAgB;IACrB,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAK,MAAc,CAAC,eAAe,CAAC;IAC/E,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AACD,SAAS,kBAAkB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AACD,uFAAuF;AACvF,qFAAqF;AACrF,oFAAoF;AACpF,4EAA4E;AAC5E,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;AAC3C,MAAM,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,SAAS,kBAAkB,CAAC,WAAW,GAAG,YAAY;IAClD,MAAM,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,WAAW,CAAC;IACvB,CAAC;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IACD,sEAAsE;IACtE,MAAM,UAAU,GAAI,MAAc,CAAC,mBAAmB,CAAC;IACvD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,OAAO,GAAI,MAAc,CAAC,YAAY,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAEpD,oEAAoE;IACpE,IAAI,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,qEAAqE;IACrE,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,2BAA2B;IAC3B,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,EAAE,CAAC;QACT,kEAAkE;QAClE,mEAAmE;QACnE,qEAAqE;QACrE,qDAAqD;QACrD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,6BAA6B,OAAO,wDAAwD,MAAM,wCAAwC,CAAC,CAAC;QAC7J,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,OAAO,OAAO,IAAI,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,GAAG,YAAY;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACvG,MAAM,OAAO,GAAG,UAAU,CAAC,gCAAgC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO;QACpB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,CAAC,CAAC,eAAe;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,QAAQ;QACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,eAAe;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO;QACH,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC3E,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QACtC,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;QAC7D,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC;QACjE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACzD,CAAC;AACN,CAAC;AAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAE5E;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,GAAG,YAAY;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO;QACpB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,CAAC,CAAC,eAAe;YACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO;QACH,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACrD,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QAC/D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC;KACxE,CAAC;AACN,CAAC;AAED,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,GAAG,YAAY;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACvG,MAAM,WAAW,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,WAAW;QACvB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC3B,CAAC,CAAC,eAAe;YACb,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7C,OAAO;QACH,GAAG,EAAE,OAAO;QACZ,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAC1C,qEAAqE;QACrE,0DAA0D;QAC1D,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;KAC5C,CAAC;AACN,CAAC;AAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,WAAmB,EAAE,WAAmB;IACtE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,KAAK,YAAY,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAClF,IAAI,WAAW;WACR,CAAC,UAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,iCAAiC,CAAC;WAC/F,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,OAAO,CAAC,IAAI,CAAC,0CAA0C,WAAW,wBAAwB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,oGAAoG,CAAC,CAAC;IAC5O,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,WAAW,KAAK,YAAY;WACzB,CAAC,UAAU,CAAC,sBAAsB,CAAC;WACnC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,gCAAgC,cAAc,wBAAwB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,wDAAwD,CAAC,CAAC;IACvL,CAAC;IACD,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,gBAAgB,CAAC;SACxD,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChD,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,0CAA0C,SAAS,wBAAwB,QAAQ,2DAA2D,CAAC,CAAC;YACjK,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,KAAK,MAAM,MAAM,IAAI,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;IACxE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,YAAY;IAEZ,YAAY;IACZ,QAAQ,EAAE;QACR,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;QAC/C,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC;QACvE,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC;QACrE,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,8BAA8B,CAAC;QACrF,SAAS,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC;QACxF,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC;QACrE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC;QACjE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC;QACnE,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC;QACzE,6BAA6B,EAAE,GAAW,EAAE,CAC1C,MAAM,CAAC,yCAAyC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC;QAC9G,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC;QACpE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC;QAC3D,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACzD,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC;QACjE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC;QACnE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC;QACnE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACnE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC;KAC1D;IAED,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;IACzC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC7C,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC;IAC7D,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IAElD,cAAc;IAEd,IAAI;IAEJ,QAAQ;CACT,CAAC;AAIF,SAAS,oBAAoB,CAAC,QAAiB;IAC7C,OAAO,QAAQ;QACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QAC5C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAiB;IAC/C,OAAO,QAAQ;QACb,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AAC5C,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,eAAe,MAAM,UAAU,CAAC,CAAC;AACxE,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAA;AAExS,uFAAuF;AACvF,IAAI,CAAC;IACD,4CAA4C;IAC5C,MAAM,CAAC,GAAQ,UAAiB,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAChI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAChI,CAAC;AACL,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AACV,iHAAiH;AACjH,IAAI,CAAC;IACD,aAAa;IACb,MAAM,GAAG,GAAQ,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACnH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACnH,CAAC;AACL,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Chain connection chatter ([Transport] / [NodeManager] / [bitshares_client]
3
+ * status lines) would drown CLI overviews, and the native loggers don't honor
4
+ * setSuppressConnectionLog — so drop their prefixed lines at the console
5
+ * level for the whole run. console.error stays untouched so real failures
6
+ * (thrown errors, per-target fetch failures) still surface.
7
+ */
8
+ declare const CHAIN_LOG_RE: RegExp;
9
+ declare function muteChainLogs(): void;
10
+ export { muteChainLogs, CHAIN_LOG_RE };
11
+ //# sourceMappingURL=chain_logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain_logs.d.ts","sourceRoot":"","sources":["../../../modules/utils/chain_logs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,QAAA,MAAM,YAAY,QAAiD,CAAC;AAEpE,iBAAS,aAAa,IAAI,IAAI,CAW7B;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Chain connection chatter ([Transport] / [NodeManager] / [bitshares_client]
3
+ * status lines) would drown CLI overviews, and the native loggers don't honor
4
+ * setSuppressConnectionLog — so drop their prefixed lines at the console
5
+ * level for the whole run. console.error stays untouched so real failures
6
+ * (thrown errors, per-target fetch failures) still surface.
7
+ */
8
+ const CHAIN_LOG_RE = /\[(Transport|NodeManager|bitshares_client)\]/;
9
+ function muteChainLogs() {
10
+ const _consoleLog = console.log.bind(console);
11
+ const _consoleInfo = console.info.bind(console);
12
+ const _consoleWarn = console.warn.bind(console);
13
+ const mute = (orig) => (...args) => {
14
+ if (args.length > 0 && typeof args[0] === 'string' && CHAIN_LOG_RE.test(args[0]))
15
+ return;
16
+ orig(...args);
17
+ };
18
+ console.log = mute(_consoleLog);
19
+ console.info = mute(_consoleInfo);
20
+ console.warn = mute(_consoleWarn);
21
+ }
22
+ export { muteChainLogs, CHAIN_LOG_RE };
23
+ //# sourceMappingURL=chain_logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain_logs.js","sourceRoot":"","sources":["../../../modules/utils/chain_logs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,YAAY,GAAG,8CAA8C,CAAC;AAEpE,SAAS,aAAa;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,IAA8B,EAAE,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QAChE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO;QACzF,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAuB,CAAC;IACtD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAwB,CAAC;IACzD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAwB,CAAC;AAC7D,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -4,4 +4,11 @@
4
4
  * Falls back to 'bot' for empty input/results.
5
5
  */
6
6
  export declare function sanitizeKey(source: unknown): string;
7
+ /**
8
+ * Case-insensitive bot-name comparison.
9
+ * Names producing the same sanitized botKey match (case, spacing
10
+ * and separator differences are ignored).
11
+ * Empty/blank inputs never match (avoids sanitizeKey '' -> 'bot' collision).
12
+ */
13
+ export declare function isSameBotName(a: unknown, b: unknown): boolean;
7
14
  //# sourceMappingURL=sanitize_key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize_key.d.ts","sourceRoot":"","sources":["../../../modules/utils/sanitize_key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAOnD"}
1
+ {"version":3,"file":"sanitize_key.d.ts","sourceRoot":"","sources":["../../../modules/utils/sanitize_key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAOnD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAK7D"}
@@ -12,4 +12,19 @@ export function sanitizeKey(source) {
12
12
  .replace(/[^a-z0-9]+/g, '-')
13
13
  .replace(/^-+|-+$/g, '') || 'bot';
14
14
  }
15
+ /**
16
+ * Case-insensitive bot-name comparison.
17
+ * Names producing the same sanitized botKey match (case, spacing
18
+ * and separator differences are ignored).
19
+ * Empty/blank inputs never match (avoids sanitizeKey '' -> 'bot' collision).
20
+ */
21
+ export function isSameBotName(a, b) {
22
+ if (typeof a !== 'string' || typeof b !== 'string')
23
+ return a === b;
24
+ if (!a.trim() || !b.trim())
25
+ return a === b;
26
+ if (a === b)
27
+ return true;
28
+ return sanitizeKey(a) === sanitizeKey(b);
29
+ }
15
30
  //# sourceMappingURL=sanitize_key.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize_key.js","sourceRoot":"","sources":["../../../modules/utils/sanitize_key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC;SAClB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"sanitize_key.js","sourceRoot":"","sources":["../../../modules/utils/sanitize_key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC;SAClB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,CAAU;IAClD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC"}
package/dist/pm2.d.ts CHANGED
@@ -83,7 +83,16 @@ declare function restartPM2Processes(target: any, { headless, passwordFile }?: {
83
83
  headless?: boolean;
84
84
  passwordFile?: string | null;
85
85
  }): Promise<void>;
86
- export { buildCredentialDaemonApp, buildEcosystemApps, buildScopedChildEnv, countManagedBots, deletePM2Processes, ensureCredentialDaemonPM2, generateEcosystemConfig, isServiceApp, main, needsMarketAdapter, restartPM2Processes, stopPM2Processes, startManagedRuntimePM2, usesAmaGridPrice };
86
+ /**
87
+ * Reload PM2 processes without touching the credential daemon.
88
+ * Mirrors restartPM2Processes but never ensures or refreshes dexbot-cred,
89
+ * so bots keep their existing key access.
90
+ * @param {string} target - 'all' or specific bot name.
91
+ * @returns {Promise<void>}
92
+ * @throws {Error} If target not found, is dexbot-cred, or reloading fails.
93
+ */
94
+ declare function reloadPM2Processes(target: any): Promise<void>;
95
+ export { buildCredentialDaemonApp, buildEcosystemApps, buildScopedChildEnv, countManagedBots, deletePM2Processes, ensureCredentialDaemonPM2, generateEcosystemConfig, isServiceApp, main, needsMarketAdapter, reloadPM2Processes, restartPM2Processes, stopPM2Processes, startManagedRuntimePM2, usesAmaGridPrice };
87
96
  declare const _default: {
88
97
  buildCredentialDaemonApp: typeof buildCredentialDaemonApp;
89
98
  buildEcosystemApps: typeof buildEcosystemApps;
@@ -95,6 +104,7 @@ declare const _default: {
95
104
  isServiceApp: typeof isServiceApp;
96
105
  main: typeof main;
97
106
  needsMarketAdapter: typeof needsMarketAdapter;
107
+ reloadPM2Processes: typeof reloadPM2Processes;
98
108
  restartPM2Processes: typeof restartPM2Processes;
99
109
  stopPM2Processes: typeof stopPM2Processes;
100
110
  startManagedRuntimePM2: typeof startManagedRuntimePM2;
package/dist/pm2.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pm2.d.ts","sourceRoot":"","sources":["../pm2.ts"],"names":[],"mappings":";AAyFA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAYtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AA+C3E,iBAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,OAEpC;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,GAAG,WAG7B;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,OAElC;AAoCD;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,cAAqB,EAAE,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,OA0DlG;AAED,iBAAS,wBAAwB,CAAC,EAAE,aAAkB,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAO;;;;;;;;;;;;EAkBrF;AAED;;;;;;;GAOG;AACH,iBAAS,uBAAuB,CAAC,EAAE,aAAoB,EAAE,QAAgB,EAAE,WAAkB,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,OAgEjL;AAqBD,iBAAe,yBAAyB,CAAC,EAAE,YAAoB,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,oBAkCL;AAiBD;;;;;;GAMG;AACH,iBAAe,IAAI,CAAC,EAAE,aAAoB,EAAE,QAAgB,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IACnG,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,iBA4EL;AAiED,iBAAe,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAA;CAAO,iBAwC9F;AAwLD;;;;;GAKG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,GAAG,iBA4C1C;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,MAAM,EAAE,GAAG,iBAyC5C;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,iBAqBnJ;AA2HD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;;;;;;;;;;;;;;;;;AAGhS,wBAeE"}
1
+ {"version":3,"file":"pm2.d.ts","sourceRoot":"","sources":["../pm2.ts"],"names":[],"mappings":";AA2FA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AActE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AA+C3E,iBAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,OAEpC;AAED,iBAAS,YAAY,CAAC,GAAG,EAAE,GAAG,WAG7B;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,OAElC;AAoCD;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,cAAqB,EAAE,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,OA0DlG;AAED,iBAAS,wBAAwB,CAAC,EAAE,aAAkB,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,GAAG,CAAA;CAAO;;;;;;;;;;;;EAkBrF;AAED;;;;;;;GAOG;AACH,iBAAS,uBAAuB,CAAC,EAAE,aAAoB,EAAE,QAAgB,EAAE,WAAkB,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,OAgEjL;AAqBD,iBAAe,yBAAyB,CAAC,EAAE,YAAoB,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IACtG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,oBAkCL;AAkBD;;;;;;GAMG;AACH,iBAAe,IAAI,CAAC,EAAE,aAAoB,EAAE,QAAgB,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IACnG,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,iBA4EL;AAiED,iBAAe,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAA;CAAO,iBAwC9F;AAwLD;;;;;GAKG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,GAAG,iBA8C1C;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,MAAM,EAAE,GAAG,iBA2C5C;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAgB,EAAE,YAAmB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,iBAqBnJ;AAED;;;;;;;GAOG;AACH,iBAAe,kBAAkB,CAAC,MAAM,EAAE,GAAG,iBAiB5C;AA2ID,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;;;;;;;;;;;;;;;;;;AAGpT,wBAgBE"}
package/dist/pm2.js CHANGED
@@ -24,6 +24,8 @@ const __dirname = _esmDirname(__filename);
24
24
  * dexbot pm2 stop <bot-name> - Stop specific bot process
25
25
  * dexbot pm2 delete all - Delete all dexbot processes from PM2
26
26
  * dexbot pm2 delete <bot-name> - Delete specific bot from PM2
27
+ * dexbot pm2 reload all - Reload managed apps without touching dexbot-cred
28
+ * dexbot pm2 reload <bot-name> - Reload a bot without touching dexbot-cred
27
29
  * dexbot pm2 restart all - Restart managed apps; re-unlock dexbot-cred only if needed
28
30
  * dexbot pm2 restart <target> - Restart a bot or safely re-unlock dexbot-cred
29
31
 
@@ -94,6 +96,8 @@ import { Config } from './modules/config.js';
94
96
  import { waitForConnected } from './modules/bitshares_client.js';
95
97
  import * as readline from 'node:readline';
96
98
  import { getErrorMessage } from './modules/utils/errors.js';
99
+ import { isSameBotName } from './modules/utils/sanitize_key.js';
100
+ import { CLI_COLORS } from './modules/cli_colors.js';
97
101
  import { getStorage } from './modules/storage/index.js';
98
102
  import { usesAmaGridPrice } from './modules/dexbot_maintenance_runtime.js';
99
103
  setUmask(0o077);
@@ -103,9 +107,9 @@ const { ensureDir, unlink: safeUnlink } = storage;
103
107
  // Setup graceful shutdown handlers
104
108
  setupGracefulShutdown();
105
109
  const PM2_COLORS = {
106
- reset: '\x1b[0m',
107
- ok: '\x1b[1;92m',
108
- error: '\x1b[1;31m',
110
+ reset: CLI_COLORS.reset,
111
+ ok: CLI_COLORS.brightGreen,
112
+ error: CLI_COLORS.boldRed,
109
113
  };
110
114
  function colorPm2Output(text, color, stream = process.stdout) {
111
115
  return stream.isTTY && !Config.NO_COLOR
@@ -299,7 +303,7 @@ module.exports = { apps: ${JSON.stringify(appsClaw, null, 2)} }
299
303
  const { config } = loadSettingsFile(BOTS_JSON, { exitOnError });
300
304
  const bots = selectActiveBotEntries(config);
301
305
  if (botNameFilter) {
302
- const filtered = bots.filter((b) => b.name === botNameFilter);
306
+ const filtered = bots.filter((b) => isSameBotName(b.name, botNameFilter));
303
307
  if (filtered.length === 0) {
304
308
  fail(`Bot '${botNameFilter}' not found or not active in ${BOTS_JSON}`);
305
309
  }
@@ -380,10 +384,11 @@ async function ensureCredentialDaemonPM2({ forceRefresh = false, headless = fals
380
384
  async function assertActiveBotTarget(target) {
381
385
  try {
382
386
  const { config } = await readBotsFileWithLock(BOTS_JSON, parseJsonWithComments);
383
- const botExists = selectActiveBotEntries(config).some((b) => b.name === target);
384
- if (!botExists) {
387
+ const match = selectActiveBotEntries(config).find((b) => isSameBotName(b.name, target));
388
+ if (!match) {
385
389
  throw new Error(`Bot '${target}' not found or not active in ${BOTS_JSON}`);
386
390
  }
391
+ return match.name;
387
392
  }
388
393
  catch (err) {
389
394
  if (String(err && getErrorMessage(err) || '').includes('not found or not active')) {
@@ -767,12 +772,14 @@ async function stopPM2Processes(target) {
767
772
  return;
768
773
  }
769
774
  // Validate bot exists in configuration before stopping (with lock protection)
775
+ // and resolve to the canonical stored name (PM2 process names are case-sensitive).
770
776
  try {
771
777
  const { config } = await readBotsFileWithLock(BOTS_JSON, parseJsonWithComments);
772
- const botExists = selectActiveBotEntries(config).some((b) => b.name === target);
773
- if (!botExists) {
778
+ const match = selectActiveBotEntries(config).find((b) => isSameBotName(b.name, target));
779
+ if (!match) {
774
780
  throw new Error(`Bot '${target}' not found or not active in ${BOTS_JSON}`);
775
781
  }
782
+ target = match.name;
776
783
  }
777
784
  catch (err) {
778
785
  throw new Error(`Failed to read bots configuration: ${getErrorMessage(err)}`);
@@ -814,12 +821,14 @@ async function deletePM2Processes(target) {
814
821
  return;
815
822
  }
816
823
  // Validate bot exists in configuration before deleting (with lock protection)
824
+ // and resolve to the canonical stored name (PM2 process names are case-sensitive).
817
825
  try {
818
826
  const { config } = await readBotsFileWithLock(BOTS_JSON, parseJsonWithComments);
819
- const botExists = selectActiveBotEntries(config).some((b) => b.name === target);
820
- if (!botExists) {
827
+ const match = selectActiveBotEntries(config).find((b) => isSameBotName(b.name, target));
828
+ if (!match) {
821
829
  throw new Error(`Bot '${target}' not found or not active in ${BOTS_JSON}`);
822
830
  }
831
+ target = match.name;
823
832
  }
824
833
  catch (err) {
825
834
  throw new Error(`Failed to read bots configuration: ${getErrorMessage(err)}`);
@@ -843,11 +852,34 @@ async function restartPM2Processes(target, { headless = false, passwordFile = nu
843
852
  console.log(`Credential daemon '${target}' restarted with a fresh unlock.`);
844
853
  return;
845
854
  }
846
- await assertActiveBotTarget(target);
855
+ target = await assertActiveBotTarget(target);
847
856
  await ensureCredentialDaemonPM2({ logReuse: false, headless, passwordFile });
848
857
  await execPM2Command('restart', target);
849
858
  console.log(`PM2 process '${target}' restarted.`);
850
859
  }
860
+ /**
861
+ * Reload PM2 processes without touching the credential daemon.
862
+ * Mirrors restartPM2Processes but never ensures or refreshes dexbot-cred,
863
+ * so bots keep their existing key access.
864
+ * @param {string} target - 'all' or specific bot name.
865
+ * @returns {Promise<void>}
866
+ * @throws {Error} If target not found, is dexbot-cred, or reloading fails.
867
+ */
868
+ async function reloadPM2Processes(target) {
869
+ console.log(`Reloading PM2 processes: ${target}`);
870
+ if (target === 'all') {
871
+ generateEcosystemConfig({ clawOnly: false, exitOnError: false });
872
+ await runManagedAppsPm2Action('restart');
873
+ console.log('Managed dexbot PM2 apps reloaded. dexbot-cred was left untouched.');
874
+ return;
875
+ }
876
+ if (target === CREDENTIAL_DAEMON_APP_NAME) {
877
+ throw new Error(`reload does not apply to '${CREDENTIAL_DAEMON_APP_NAME}'; use 'dexbot pm2 restart ${CREDENTIAL_DAEMON_APP_NAME}' to re-unlock it.`);
878
+ }
879
+ target = await assertActiveBotTarget(target);
880
+ await execPM2Command('restart', target);
881
+ console.log(`PM2 process '${target}' reloaded (dexbot-cred untouched).`);
882
+ }
851
883
  /**
852
884
  * Show help text for PM2 CLI usage.
853
885
  */
@@ -861,8 +893,9 @@ Commands:
861
893
  update Run the update script immediately
862
894
  stop <bot-name|all> Stop PM2 process(es) - only dexbot processes
863
895
  delete <bot-name|all> Delete PM2 process(es) - only dexbot processes
896
+ reload <bot-name|all> Reload managed apps without touching dexbot-cred
864
897
  restart <bot-name|all|dexbot-cred>
865
- Restart managed apps safely; dexbot-cred uses fresh unlock flow
898
+ Restart managed apps safely; dexbot-cred uses fresh unlock flow
866
899
  help Show this help message
867
900
 
868
901
  Flags:
@@ -878,9 +911,11 @@ Examples:
878
911
  dexbot pm2 --password-file /run/secrets/bot-password
879
912
  # Start all bots with password from file
880
913
  dexbot pm2 stop all # Stop all dexbot processes
881
- dexbot pm2 stop XRP-BTS # Stop specific bot
914
+ dexbot pm2 stop AAA-BBB # Stop specific bot
882
915
  dexbot pm2 delete all # Delete all dexbot processes from PM2
883
- dexbot pm2 delete XRP-BTS # Delete specific bot from PM2
916
+ dexbot pm2 delete AAA-BBB # Delete specific bot from PM2
917
+ dexbot pm2 reload all # Reload managed apps, dexbot-cred untouched
918
+ dexbot pm2 reload AAA-BBB # Reload a single bot, dexbot-cred untouched
884
919
  dexbot pm2 restart all # Safe restart path for managed apps
885
920
  dexbot pm2 restart dexbot-cred # Re-unlock credential daemon
886
921
 
@@ -962,6 +997,21 @@ if (isPm2DirectRun) {
962
997
  process.exit(1);
963
998
  }
964
999
  }
1000
+ else if (command === 'reload') {
1001
+ if (!target) {
1002
+ console.error(pm2Error('Error: Target required. Specify bot name or "all".'));
1003
+ showPM2Help();
1004
+ process.exit(1);
1005
+ }
1006
+ try {
1007
+ await reloadPM2Processes(target);
1008
+ process.exit(0);
1009
+ }
1010
+ catch (err) {
1011
+ console.error(pm2Error(`Failed to reload processes: ${getErrorMessage(err)}`));
1012
+ process.exit(1);
1013
+ }
1014
+ }
965
1015
  else if (command === 'help') {
966
1016
  showPM2Help();
967
1017
  process.exit(0);
@@ -978,7 +1028,7 @@ if (isPm2DirectRun) {
978
1028
  }
979
1029
  })();
980
1030
  }
981
- export { buildCredentialDaemonApp, buildEcosystemApps, buildScopedChildEnv, countManagedBots, deletePM2Processes, ensureCredentialDaemonPM2, generateEcosystemConfig, isServiceApp, main, needsMarketAdapter, restartPM2Processes, stopPM2Processes, startManagedRuntimePM2, usesAmaGridPrice };
1031
+ export { buildCredentialDaemonApp, buildEcosystemApps, buildScopedChildEnv, countManagedBots, deletePM2Processes, ensureCredentialDaemonPM2, generateEcosystemConfig, isServiceApp, main, needsMarketAdapter, reloadPM2Processes, restartPM2Processes, stopPM2Processes, startManagedRuntimePM2, usesAmaGridPrice };
982
1032
  export default {
983
1033
  buildCredentialDaemonApp,
984
1034
  buildEcosystemApps,
@@ -990,6 +1040,7 @@ export default {
990
1040
  isServiceApp,
991
1041
  main,
992
1042
  needsMarketAdapter,
1043
+ reloadPM2Processes,
993
1044
  restartPM2Processes,
994
1045
  stopPM2Processes,
995
1046
  startManagedRuntimePM2,