@tradejs/cli 1.0.9 → 1.0.10
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.
- package/dist/cli.js +29497 -13537
- package/dist/lib/aiPocketSearch.js +1316 -0
- package/dist/lib/aiTrainCharts.js +711 -0
- package/dist/lib/aiTrainDataset.js +40 -0
- package/dist/lib/aiTrainEvaluationDump.js +76 -0
- package/dist/lib/aiTrainMetrics.js +148 -8
- package/dist/lib/aiTrainOptions.js +130 -0
- package/dist/lib/aiTrainQuarantine.js +199 -0
- package/dist/lib/aiTrainResearch.js +467 -0
- package/dist/lib/binanceMarketContextBackfill.js +841 -0
- package/dist/lib/binanceMarketData.js +392 -0
- package/dist/lib/coinMarketCapContextBackfill.js +1088 -0
- package/dist/lib/continuity.js +60 -0
- package/dist/lib/derivativesContextBackfill.js +490 -77
- package/dist/lib/executionCalibration.js +705 -0
- package/dist/lib/marketContextPrepare.js +4403 -0
- package/dist/lib/paritySummary.js +101 -0
- package/dist/lib/runBot.js +1 -0
- package/dist/lib/runEnvironment.js +2254 -0
- package/dist/lib/runFormatting.js +1657 -0
- package/dist/lib/runtimeDebugEvidence.js +526 -0
- package/dist/lib/runtimeModeConfig.js +53 -0
- package/dist/lib/runtimeParity.js +88 -11
- package/dist/lib/runtimeParityDetails.js +751 -0
- package/dist/lib/runtimeRedis.js +157 -0
- package/dist/lib/runtimeSignalsLoader.js +40 -6
- package/dist/lib/runtimeSignalsStorage.js +45 -22
- package/dist/lib/runtimeStrategyBacktest.js +134 -0
- package/dist/lib/runtimeTradeSync.js +263 -0
- package/dist/lib/telegramReports.js +9 -0
- package/dist/lib/tickerUniverseCache.js +116 -0
- package/dist/lib/timeWindow.js +3 -3
- package/dist/scripts/agentRun.js +14 -8
- package/dist/scripts/aiExport.js +1721 -7
- package/dist/scripts/aiExportSelect.js +16 -4
- package/dist/scripts/aiPocketSearch.js +4190 -0
- package/dist/scripts/aiTrain.js +1866 -87
- package/dist/scripts/backtest.js +4509 -818
- package/dist/scripts/binanceMarketIngest.js +565 -0
- package/dist/scripts/bot.js +16 -2
- package/dist/scripts/candlesMigrateProvider.js +32 -22
- package/dist/scripts/cleanDir.js +15 -2
- package/dist/scripts/cleanRedis.js +15 -2
- package/dist/scripts/cleanTests.js +38 -2
- package/dist/scripts/cleanupMarketContext.js +69 -0
- package/dist/scripts/continuity.js +148 -67
- package/dist/scripts/derivativesIngest.js +14 -4
- package/dist/scripts/derivativesIngestCoinalyzeAll.js +14 -4
- package/dist/scripts/doctor.js +14 -4
- package/dist/scripts/executionCalibration.js +792 -0
- package/dist/scripts/infraCommon.js +10 -0
- package/dist/scripts/infraDown.js +14 -4
- package/dist/scripts/infraInit.js +24 -4
- package/dist/scripts/infraUp.js +14 -4
- package/dist/scripts/marketWs.js +222 -0
- package/dist/scripts/migration.js +15 -2
- package/dist/scripts/mlExport.js +1698 -10
- package/dist/scripts/mlExportSelect.js +16 -4
- package/dist/scripts/mlInspect.js +13 -3
- package/dist/scripts/mlTrainLatestSelect.js +14 -4
- package/dist/scripts/replay.js +8824 -0
- package/dist/scripts/replayRunner.js +8827 -0
- package/dist/scripts/replayRuntimeEvidence.js +868 -0
- package/dist/scripts/researchAuto.js +286 -59
- package/dist/scripts/results.js +3 -3
- package/dist/scripts/runtimeEvidence.js +605 -0
- package/dist/scripts/runtimeParity.js +6362 -1043
- package/dist/scripts/serverHealth.js +588 -0
- package/dist/scripts/signals.js +5590 -511
- package/dist/scripts/signalsDaemon.js +6167 -0
- package/dist/scripts/signalsSummary.js +833 -248
- package/dist/scripts/test-ml.js +25 -3
- package/dist/scripts/test.js +26 -1
- package/dist/scripts/user-add.js +15 -2
- package/dist/workers/testerWorker.js +130 -21
- package/package.json +18 -12
package/dist/scripts/test-ml.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
19
|
|
|
3
20
|
// src/scripts/test-ml.ts
|
|
21
|
+
var test_ml_exports = {};
|
|
22
|
+
__export(test_ml_exports, {
|
|
23
|
+
main: () => main
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(test_ml_exports);
|
|
4
26
|
var import_config = require("dotenv/config");
|
|
5
27
|
var import_constants = require("@tradejs/core/constants");
|
|
6
28
|
var import_ml = require("@tradejs/infra/ml");
|
|
@@ -128,7 +150,7 @@ var main = async () => {
|
|
|
128
150
|
}
|
|
129
151
|
console.log("ML result:", mlResult);
|
|
130
152
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
153
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
154
|
+
0 && (module.exports = {
|
|
155
|
+
main
|
|
134
156
|
});
|
package/dist/scripts/test.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
19
|
|
|
3
20
|
// src/scripts/test.ts
|
|
21
|
+
var test_exports = {};
|
|
22
|
+
__export(test_exports, {
|
|
23
|
+
main: () => main
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(test_exports);
|
|
4
26
|
var import_config = require("dotenv/config");
|
|
5
27
|
var import_connectors = require("@tradejs/connectors");
|
|
6
28
|
var getPositions = async (connector) => {
|
|
@@ -13,4 +35,7 @@ var main = async () => {
|
|
|
13
35
|
});
|
|
14
36
|
await getPositions(byBitConnector);
|
|
15
37
|
};
|
|
16
|
-
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
main
|
|
41
|
+
});
|
package/dist/scripts/user-add.js
CHANGED
|
@@ -5,6 +5,10 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
8
12
|
var __copyProps = (to, from, except, desc) => {
|
|
9
13
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
14
|
for (let key of __getOwnPropNames(from))
|
|
@@ -21,8 +25,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
29
|
|
|
25
30
|
// src/scripts/user-add.ts
|
|
31
|
+
var user_add_exports = {};
|
|
32
|
+
__export(user_add_exports, {
|
|
33
|
+
main: () => main
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(user_add_exports);
|
|
26
36
|
var import_args = __toESM(require("args"));
|
|
27
37
|
var import_chalk = __toESM(require("chalk"));
|
|
28
38
|
var import_bcryptjs = __toESM(require("bcryptjs"));
|
|
@@ -31,7 +41,7 @@ import_args.default.example("yarn user-add -u myname -p 123456", "Create or upda
|
|
|
31
41
|
import_args.default.option(["u", "user"], "Username", "");
|
|
32
42
|
import_args.default.option(["p", "password"], "Password (plain text)", "");
|
|
33
43
|
var flags = import_args.default.parse(process.argv);
|
|
34
|
-
var
|
|
44
|
+
var main = async () => {
|
|
35
45
|
const userName = String(flags.user || "").trim();
|
|
36
46
|
const password = String(flags.password || "");
|
|
37
47
|
if (!userName || !password) {
|
|
@@ -52,4 +62,7 @@ var run = async () => {
|
|
|
52
62
|
console.log(import_chalk.default.green(`User ${userName} updated`));
|
|
53
63
|
process.exit(0);
|
|
54
64
|
};
|
|
55
|
-
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
main
|
|
68
|
+
});
|
|
@@ -2,51 +2,160 @@
|
|
|
2
2
|
|
|
3
3
|
// src/workers/testerWorker.ts
|
|
4
4
|
var import_backtest = require("@tradejs/node/backtest");
|
|
5
|
+
var import_backtest2 = require("@tradejs/core/backtest");
|
|
6
|
+
var import_backtestArtifacts = require("@tradejs/infra/backtestArtifacts");
|
|
5
7
|
var import_ai = require("@tradejs/infra/ai");
|
|
6
8
|
var import_logger = require("@tradejs/infra/logger");
|
|
7
9
|
var import_ml = require("@tradejs/infra/ml");
|
|
8
10
|
var import_redis = require("@tradejs/infra/redis");
|
|
9
11
|
var isProcessing = false;
|
|
12
|
+
var resolveTestSuite = async ({
|
|
13
|
+
chunk,
|
|
14
|
+
chunkId,
|
|
15
|
+
userName
|
|
16
|
+
}) => {
|
|
17
|
+
if (Array.isArray(chunk)) {
|
|
18
|
+
return chunk;
|
|
19
|
+
}
|
|
20
|
+
return await (0, import_redis.getData)(
|
|
21
|
+
import_redis.redisKeys.cacheChunk(userName, String(chunkId))
|
|
22
|
+
);
|
|
23
|
+
};
|
|
24
|
+
var cacheTestResultArtifacts = async (userName, testResult) => {
|
|
25
|
+
if (!testResult) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const { orderLogId, inlineOrderLog, inlinePositionLog } = testResult;
|
|
29
|
+
if (!Array.isArray(inlineOrderLog) || !Array.isArray(inlinePositionLog)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
await (0, import_backtestArtifacts.writeCachedBacktestArtifacts)({
|
|
33
|
+
userName,
|
|
34
|
+
orderLogId,
|
|
35
|
+
orderLog: inlineOrderLog,
|
|
36
|
+
positionLog: inlinePositionLog
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var buildResultStat = (testResult) => {
|
|
40
|
+
if (!testResult) {
|
|
41
|
+
return testResult;
|
|
42
|
+
}
|
|
43
|
+
const { inlinePositionLog, stat } = testResult;
|
|
44
|
+
if (!Array.isArray(inlinePositionLog) || inlinePositionLog.length === 0) {
|
|
45
|
+
return stat;
|
|
46
|
+
}
|
|
47
|
+
return (0, import_backtest2.calculateStatsFull)(inlinePositionLog) ?? stat;
|
|
48
|
+
};
|
|
49
|
+
var sendTestResult = async ({
|
|
50
|
+
userName,
|
|
51
|
+
test,
|
|
52
|
+
testResult
|
|
53
|
+
}) => {
|
|
54
|
+
await cacheTestResultArtifacts(userName, testResult);
|
|
55
|
+
const stat = buildResultStat(testResult);
|
|
56
|
+
const {
|
|
57
|
+
inlineOrderLog,
|
|
58
|
+
inlinePositionLog,
|
|
59
|
+
inlineReplaySignalEvaluations,
|
|
60
|
+
stat: _rawStat,
|
|
61
|
+
...resultWithoutLogs
|
|
62
|
+
} = testResult;
|
|
63
|
+
process.send?.({
|
|
64
|
+
...resultWithoutLogs,
|
|
65
|
+
stat,
|
|
66
|
+
test
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
var collectSharedLoopGroup = (testSuite, startIndex) => {
|
|
70
|
+
const group = [testSuite[startIndex]];
|
|
71
|
+
for (let index = startIndex + 1; index < testSuite.length; index += 1) {
|
|
72
|
+
const nextGroup = [...group, testSuite[index]];
|
|
73
|
+
if (!(0, import_backtest.canRunTestsInSharedCandleLoop)(nextGroup)) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
group.push(testSuite[index]);
|
|
77
|
+
}
|
|
78
|
+
return group;
|
|
79
|
+
};
|
|
10
80
|
process.on(
|
|
11
81
|
"message",
|
|
12
|
-
async ({
|
|
82
|
+
async ({
|
|
83
|
+
chunk,
|
|
84
|
+
chunkId,
|
|
85
|
+
userName
|
|
86
|
+
}) => {
|
|
13
87
|
if (isProcessing) {
|
|
14
88
|
return;
|
|
15
89
|
}
|
|
16
90
|
isProcessing = true;
|
|
17
91
|
try {
|
|
18
|
-
const testSuite = await (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
92
|
+
const testSuite = await resolveTestSuite({
|
|
93
|
+
chunk,
|
|
94
|
+
chunkId,
|
|
95
|
+
userName
|
|
96
|
+
});
|
|
97
|
+
let previousTest = null;
|
|
98
|
+
for (let index = 0; index < testSuite.length; ) {
|
|
99
|
+
const test = testSuite[index];
|
|
100
|
+
const group = collectSharedLoopGroup(testSuite, index);
|
|
101
|
+
if (previousTest && (previousTest.symbol !== test.symbol || previousTest.userName !== test.userName || previousTest.connectorName !== test.connectorName)) {
|
|
102
|
+
(0, import_backtest.releaseTestingSymbolCache)({
|
|
103
|
+
userName: previousTest.userName,
|
|
104
|
+
connectorName: previousTest.connectorName,
|
|
105
|
+
symbol: previousTest.symbol
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
let completedTest = group[group.length - 1] ?? test;
|
|
22
109
|
try {
|
|
110
|
+
if (group.length > 1) {
|
|
111
|
+
const groupResults = await (0, import_backtest.testingGroupInSharedCandleLoop)(group);
|
|
112
|
+
for (const { test: groupTest, result } of groupResults) {
|
|
113
|
+
await sendTestResult({
|
|
114
|
+
userName,
|
|
115
|
+
test: groupTest,
|
|
116
|
+
testResult: result
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
index += group.length;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
23
122
|
const testResult = await (0, import_backtest.testing)(test);
|
|
24
123
|
if (!testResult) {
|
|
25
124
|
throw new Error("No result");
|
|
26
125
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
inlineOrderLog,
|
|
32
|
-
inlinePositionLog,
|
|
33
|
-
test
|
|
126
|
+
await sendTestResult({
|
|
127
|
+
userName,
|
|
128
|
+
test,
|
|
129
|
+
testResult
|
|
34
130
|
});
|
|
131
|
+
index += 1;
|
|
35
132
|
} catch (error) {
|
|
36
133
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
37
134
|
const errorStack = error instanceof Error ? error.stack : void 0;
|
|
38
135
|
import_logger.logger.error("tester worker error: %s", errorMessage);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
136
|
+
for (const failedTest of group) {
|
|
137
|
+
process.send?.({
|
|
138
|
+
error: true,
|
|
139
|
+
id: failedTest.name,
|
|
140
|
+
symbol: failedTest.symbol,
|
|
141
|
+
msg: {
|
|
142
|
+
message: errorMessage,
|
|
143
|
+
stack: errorStack
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
index += group.length;
|
|
148
|
+
} finally {
|
|
149
|
+
previousTest = completedTest;
|
|
48
150
|
}
|
|
49
151
|
}
|
|
152
|
+
if (previousTest) {
|
|
153
|
+
(0, import_backtest.releaseTestingSymbolCache)({
|
|
154
|
+
userName: previousTest.userName,
|
|
155
|
+
connectorName: previousTest.connectorName,
|
|
156
|
+
symbol: previousTest.symbol
|
|
157
|
+
});
|
|
158
|
+
}
|
|
50
159
|
} finally {
|
|
51
160
|
await (0, import_ai.closeAllAiDatasetWriters)();
|
|
52
161
|
await (0, import_ml.closeAllMlDatasetWriters)();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradejs/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "Official CLI for the TradeJS open-source framework: infra setup, backtests, signals, bots, and ML workflows.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tradejs",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"homepage": "https://tradejs.dev",
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": "
|
|
17
|
+
"url": "https://github.com/TradeJS-Dev/TradeJS",
|
|
18
18
|
"directory": "packages/cli"
|
|
19
19
|
},
|
|
20
20
|
"bugs": {
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"tradejs": "dist/cli.js"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@tradejs/base": "^1.0.
|
|
33
|
-
"@tradejs/connectors": "^1.0.
|
|
34
|
-
"@tradejs/core": "^1.0.
|
|
35
|
-
"@tradejs/indicators": "^1.0.
|
|
36
|
-
"@tradejs/infra": "^1.0.
|
|
37
|
-
"@tradejs/node": "^1.0.
|
|
38
|
-
"@tradejs/strategies": "^1.0.
|
|
39
|
-
"@tradejs/types": "^1.0.
|
|
32
|
+
"@tradejs/base": "^1.0.10",
|
|
33
|
+
"@tradejs/connectors": "^1.0.10",
|
|
34
|
+
"@tradejs/core": "^1.0.10",
|
|
35
|
+
"@tradejs/indicators": "^1.0.10",
|
|
36
|
+
"@tradejs/infra": "^1.0.10",
|
|
37
|
+
"@tradejs/node": "^1.0.10",
|
|
38
|
+
"@tradejs/strategies": "^1.0.10",
|
|
39
|
+
"@tradejs/types": "^1.0.10",
|
|
40
40
|
"args": "^5.0.3",
|
|
41
41
|
"bcryptjs": "^2.4.3",
|
|
42
42
|
"chalk": "4.1.2",
|
|
@@ -44,10 +44,12 @@
|
|
|
44
44
|
"dotenv": "^16.4.1",
|
|
45
45
|
"ioredis": "5.8.0",
|
|
46
46
|
"lodash": "^4.18.1",
|
|
47
|
-
"progress": "^2.0.3"
|
|
47
|
+
"progress": "^2.0.3",
|
|
48
|
+
"ws": "^8.18.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@types/node": "^
|
|
51
|
+
"@types/node": "^24",
|
|
52
|
+
"@types/ws": "^8.18.1",
|
|
51
53
|
"dotenv-cli": "^11.0.0",
|
|
52
54
|
"ts-node": "^10.9.2",
|
|
53
55
|
"tsconfig-paths": "^4.2.0",
|
|
@@ -65,17 +67,21 @@
|
|
|
65
67
|
"clean-tests": "yarn run run:dist clean-tests",
|
|
66
68
|
"doctor": "yarn run run:dist doctor",
|
|
67
69
|
"ai-export": "yarn run run:dist ai-export",
|
|
70
|
+
"ai-pocket-search": "yarn run run:dist ai-pocket-search",
|
|
68
71
|
"ai-train": "yarn run run:dist ai-train",
|
|
69
72
|
"backtest": "yarn run run:dist backtest",
|
|
70
73
|
"bot": "yarn run run:dist bot",
|
|
71
74
|
"candles:migrate-provider": "yarn run run:dist candles:migrate-provider",
|
|
72
75
|
"signals": "yarn run run:dist signals",
|
|
73
76
|
"results": "yarn run run:dist results",
|
|
77
|
+
"replay-runtime-evidence": "yarn run run:dist replay-runtime-evidence",
|
|
78
|
+
"runtime-evidence": "yarn run run:dist runtime-evidence",
|
|
74
79
|
"continuity": "yarn run run:dist continuity",
|
|
75
80
|
"derivatives:ingest": "yarn run run:dist derivatives:ingest",
|
|
76
81
|
"derivatives:ingest:coinalyze:all": "yarn run run:dist derivatives:ingest:coinalyze:all",
|
|
77
82
|
"infra-init": "yarn run run:dist infra-init",
|
|
78
83
|
"infra-up": "yarn run run:dist infra-up",
|
|
84
|
+
"market-ws": "yarn run run:dist market-ws",
|
|
79
85
|
"infra-down": "yarn run run:dist infra-down",
|
|
80
86
|
"spread:ingest": "yarn run run:dist spread:ingest",
|
|
81
87
|
"migration": "yarn run run:dist migration",
|