@tradejs/cli 2.0.18 → 2.0.19

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 (41) hide show
  1. package/dist/cli.js +12810 -19565
  2. package/dist/lib/aiExport.js +1 -1607
  3. package/dist/lib/binanceMarketContextBackfill.js +7 -6
  4. package/dist/lib/coinMarketCapContextBackfill.js +19 -18
  5. package/dist/lib/derivativesContextBackfill.js +10 -9
  6. package/dist/lib/hyperliquidWhaleBackfill.js +8 -8
  7. package/dist/lib/hyperliquidWhaleStream.js +4 -4
  8. package/dist/lib/marketContextPrepare.js +83 -1686
  9. package/dist/lib/runEnvironment.js +14 -1666
  10. package/dist/lib/runFormatting.js +1 -1607
  11. package/dist/lib/runtimeDebugEvidence.js +2 -48
  12. package/dist/lib/runtimeRedis.js +6 -57
  13. package/dist/lib/runtimeStrategyBacktest.js +2 -48
  14. package/dist/scripts/aiExport.js +1 -1607
  15. package/dist/scripts/aiPocketSearch.js +1 -1607
  16. package/dist/scripts/aiTrain.js +17 -1623
  17. package/dist/scripts/backtest.js +110 -1759
  18. package/dist/scripts/binanceMarketIngest.js +5 -4
  19. package/dist/scripts/candlesMigrateProvider.js +6 -5186
  20. package/dist/scripts/cleanupMarketContext.js +4 -3
  21. package/dist/scripts/continuity.js +4 -3
  22. package/dist/scripts/derivativesIngest.js +6 -4
  23. package/dist/scripts/derivativesIngestCoinalyzeAll.js +5 -4
  24. package/dist/scripts/doctor.js +2 -5184
  25. package/dist/scripts/hyperliquidWhaleBackfill.js +8 -8
  26. package/dist/scripts/hyperliquidWhaleIngest.js +4 -4
  27. package/dist/scripts/hyperliquidWhalesUpdate.js +1 -1
  28. package/dist/scripts/migration.js +3 -3
  29. package/dist/scripts/mlExport.js +1 -1607
  30. package/dist/scripts/replay.js +133 -1782
  31. package/dist/scripts/replayRunner.js +133 -1782
  32. package/dist/scripts/replayRuntimeEvidence.js +2 -48
  33. package/dist/scripts/researchAuto.js +3 -49
  34. package/dist/scripts/results.js +1 -1607
  35. package/dist/scripts/runtimeEvidence.js +2 -48
  36. package/dist/scripts/runtimeParity.js +121 -1746
  37. package/dist/scripts/signals.js +1057 -2647
  38. package/dist/scripts/signalsDaemon.js +1051 -2608
  39. package/dist/scripts/signalsSummary.js +4 -26
  40. package/dist/workers/testerWorker.js +2 -2
  41. package/package.json +11 -9
@@ -45,17 +45,7 @@ var import_redis3 = require("@tradejs/infra/redis");
45
45
  // src/lib/runtimeRedis.ts
46
46
  var import_redis = require("@tradejs/infra/redis");
47
47
  var import_time = require("@tradejs/core/time");
48
- var RESERVED_STRATEGY_NAMES = /* @__PURE__ */ new Set(["charts"]);
49
- var RESERVED_CONFIG_IDS = /* @__PURE__ */ new Set(["results"]);
50
- var resolveStrategyConfigIdentityByKey = (userName, key) => {
51
- const parts = key.split(":");
52
- if (parts.length !== 5) return null;
53
- const [users, keyUserName, strategiesKey, strategyName, configId] = parts;
54
- if (users !== "users" || keyUserName !== userName || strategiesKey !== "strategies" || !strategyName || !configId || RESERVED_STRATEGY_NAMES.has(strategyName) || RESERVED_CONFIG_IDS.has(configId) || !/^[a-zA-Z0-9_-]+$/.test(configId)) {
55
- return null;
56
- }
57
- return { strategyName, configId };
58
- };
48
+ var import_runtimeStrategyConfigs = require("@tradejs/infra/runtimeStrategyConfigs");
59
49
  var isRuntimeTradeRecord = (value) => {
60
50
  if (!value || typeof value !== "object") {
61
51
  return false;
@@ -63,42 +53,6 @@ var isRuntimeTradeRecord = (value) => {
63
53
  const record = value;
64
54
  return typeof record.orderId === "string" && typeof record.strategy === "string" && typeof record.symbol === "string" && typeof record.entryTimestamp === "number" && typeof record.entryPrice === "number" && typeof record.qty === "number" && (record.direction === "LONG" || record.direction === "SHORT");
65
55
  };
66
- var resolveStrategyNameByConfigKey = (userName, key) => {
67
- return resolveStrategyConfigIdentityByKey(userName, key)?.strategyName ?? null;
68
- };
69
- var getRuntimeStrategyConfigKeys = async (userName) => {
70
- const keys = await (0, import_redis.getKeys)(`${import_redis.redisKeys.strategies(userName)}:`);
71
- return keys.filter((key) => resolveStrategyConfigIdentityByKey(userName, key)).sort((left, right) => left.localeCompare(right));
72
- };
73
- var loadRuntimeStrategyConfigs = async (userName, {
74
- onInvalidConfig
75
- } = {}) => {
76
- const configKeys = await getRuntimeStrategyConfigKeys(userName);
77
- const strategyConfigs = await Promise.all(
78
- configKeys.map(async (key) => {
79
- const strategyName = resolveStrategyNameByConfigKey(userName, key);
80
- const identity = resolveStrategyConfigIdentityByKey(userName, key);
81
- if (!strategyName || !identity) {
82
- return null;
83
- }
84
- const strategyConfig = await (0, import_redis.getData)(
85
- key,
86
- null
87
- );
88
- if (!strategyConfig || typeof strategyConfig !== "object" || Array.isArray(strategyConfig)) {
89
- onInvalidConfig?.(key);
90
- return null;
91
- }
92
- return {
93
- key,
94
- strategyName,
95
- configId: identity.configId,
96
- strategyConfig
97
- };
98
- })
99
- );
100
- return strategyConfigs.filter(Boolean);
101
- };
102
56
  var loadRuntimeTrades = async (userName, {
103
57
  startTime,
104
58
  endTime
@@ -349,7 +303,7 @@ var collectRuntimeDebugEvidence = async ({
349
303
  loadRuntimeSignals(userName, { startTime, endTime }),
350
304
  loadRuntimeSignalEvaluations(userName, { startTime, endTime }),
351
305
  loadRuntimeSignalEvaluationStatsBuckets(userName),
352
- loadRuntimeStrategyConfigs(userName)
306
+ (0, import_runtimeStrategyConfigs.loadRuntimeStrategyConfigs)(userName)
353
307
  ]);
354
308
  const tradesByOrderId = new Map(
355
309
  entryTrades.map((trade) => [trade.orderId, trade])