@backtest-kit/cli 9.4.0 → 9.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.
package/build/index.cjs CHANGED
@@ -910,7 +910,10 @@ class BacktestMainService {
910
910
  this.loggerService.log("backtestMainService run", {
911
911
  payload,
912
912
  });
913
- await this.configConnectionService.loadConfig("setup.config");
913
+ {
914
+ await this.configConnectionService.loadConfig("setup.config");
915
+ await this.configConnectionService.loadConfig("loader.config");
916
+ }
914
917
  {
915
918
  await this.configService.waitForInit();
916
919
  Setup.enable();
@@ -1029,7 +1032,10 @@ class WalkerMainService {
1029
1032
  this.configConnectionService = inject(TYPES.configConnectionService);
1030
1033
  this.run = functoolsKit.singleshot(async (payload) => {
1031
1034
  this.loggerService.log("walkerMainService run", { payload });
1032
- await this.configConnectionService.loadConfig("setup.config");
1035
+ {
1036
+ await this.configConnectionService.loadConfig("setup.config");
1037
+ await this.configConnectionService.loadConfig("loader.config");
1038
+ }
1033
1039
  {
1034
1040
  await this.configService.waitForInit();
1035
1041
  Setup.enable();
@@ -1254,7 +1260,10 @@ class LiveMainService {
1254
1260
  this.loggerService.log("liveMainService run", {
1255
1261
  payload,
1256
1262
  });
1257
- await this.configConnectionService.loadConfig("setup.config");
1263
+ {
1264
+ await this.configConnectionService.loadConfig("setup.config");
1265
+ await this.configConnectionService.loadConfig("loader.config");
1266
+ }
1258
1267
  {
1259
1268
  await this.configService.waitForInit();
1260
1269
  Setup.enable();
@@ -1340,7 +1349,10 @@ class PaperMainService {
1340
1349
  this.configConnectionService = inject(TYPES.configConnectionService);
1341
1350
  this.run = functoolsKit.singleshot(async (payload) => {
1342
1351
  this.loggerService.log("paperMainService init");
1343
- await this.configConnectionService.loadConfig("setup.config");
1352
+ {
1353
+ await this.configConnectionService.loadConfig("setup.config");
1354
+ await this.configConnectionService.loadConfig("loader.config");
1355
+ }
1344
1356
  {
1345
1357
  await this.configService.waitForInit();
1346
1358
  Setup.enable();
@@ -3128,7 +3140,7 @@ const main$g = async () => {
3128
3140
  if (MODES.some((mode) => values[mode])) {
3129
3141
  return;
3130
3142
  }
3131
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
3143
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n`);
3132
3144
  process.stdout.write("\n");
3133
3145
  process.stdout.write(`Run with --help to see available commands.\n`);
3134
3146
  process.stdout.write("\n");
@@ -3409,14 +3421,20 @@ const main$a = async () => {
3409
3421
  process.exit(1);
3410
3422
  return;
3411
3423
  }
3412
- const [entryPoint = null] = getPositionals();
3413
- if (!entryPoint) {
3414
- throw new Error("Entry point is required");
3424
+ const entryPoints = getPositionals();
3425
+ if (!entryPoints.length) {
3426
+ throw new Error("At least one entry point is required");
3415
3427
  }
3416
- if (!values.noFlush) {
3428
+ for (const entryPoint of entryPoints) {
3429
+ if (values.noFlush) {
3430
+ continue;
3431
+ }
3417
3432
  await flush(entryPoint);
3418
3433
  }
3419
- await cli.configConnectionService.loadConfig("setup.config");
3434
+ {
3435
+ await cli.configConnectionService.loadConfig("setup.config");
3436
+ await cli.configConnectionService.loadConfig("loader.config");
3437
+ }
3420
3438
  {
3421
3439
  await cli.configService.waitForInit();
3422
3440
  Setup.enable();
@@ -3430,7 +3448,9 @@ const main$a = async () => {
3430
3448
  await cli.moduleConnectionService.loadModule(MODE_MODULE[mode]);
3431
3449
  listenFinish();
3432
3450
  createGracefulShutdown(mode)();
3433
- await cli.resolveService.attachEntry(entryPoint);
3451
+ for (const entryPoint of entryPoints) {
3452
+ await cli.resolveService.attachEntry(entryPoint);
3453
+ }
3434
3454
  };
3435
3455
  main$a();
3436
3456
 
@@ -3515,7 +3535,10 @@ const main$7 = async () => {
3515
3535
  const cwd = process.cwd();
3516
3536
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3517
3537
  }
3518
- await cli.configConnectionService.loadConfig("setup.config");
3538
+ {
3539
+ await cli.configConnectionService.loadConfig("setup.config");
3540
+ await cli.configConnectionService.loadConfig("loader.config");
3541
+ }
3519
3542
  await cli.moduleConnectionService.loadModule("pine.module");
3520
3543
  {
3521
3544
  await cli.exchangeSchemaService.addSchema();
@@ -3593,7 +3616,10 @@ const main$6 = async () => {
3593
3616
  console.warn("--editor and --pine are mutually exclusive. Use one at a time.");
3594
3617
  process.exit(1);
3595
3618
  }
3596
- await cli.configConnectionService.loadConfig("setup.config");
3619
+ {
3620
+ await cli.configConnectionService.loadConfig("setup.config");
3621
+ await cli.configConnectionService.loadConfig("loader.config");
3622
+ }
3597
3623
  {
3598
3624
  await cli.configService.waitForInit();
3599
3625
  Setup.enable();
@@ -3635,7 +3661,10 @@ const main$5 = async () => {
3635
3661
  const cwd = process.cwd();
3636
3662
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3637
3663
  }
3638
- await cli.configConnectionService.loadConfig("setup.config");
3664
+ {
3665
+ await cli.configConnectionService.loadConfig("setup.config");
3666
+ await cli.configConnectionService.loadConfig("loader.config");
3667
+ }
3639
3668
  await cli.moduleConnectionService.loadModule("dump.module");
3640
3669
  {
3641
3670
  await cli.exchangeSchemaService.addSchema();
@@ -3703,7 +3732,10 @@ const main$4 = async () => {
3703
3732
  const cwd = process.cwd();
3704
3733
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3705
3734
  }
3706
- await cli.configConnectionService.loadConfig("setup.config");
3735
+ {
3736
+ await cli.configConnectionService.loadConfig("setup.config");
3737
+ await cli.configConnectionService.loadConfig("loader.config");
3738
+ }
3707
3739
  await cli.moduleConnectionService.loadModule("pnldebug.module");
3708
3740
  {
3709
3741
  await cli.exchangeSchemaService.addSchema();
@@ -4158,7 +4190,7 @@ const main$1 = async () => {
4158
4190
  if (!values.help) {
4159
4191
  return;
4160
4192
  }
4161
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n\n`);
4193
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n\n`);
4162
4194
  process.stdout.write(HELP_TEXT);
4163
4195
  process.exit(0);
4164
4196
  };
@@ -4172,7 +4204,7 @@ const main = async () => {
4172
4204
  if (!values.version) {
4173
4205
  return;
4174
4206
  }
4175
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
4207
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n`);
4176
4208
  process.exit(0);
4177
4209
  };
4178
4210
  main();
package/build/index.mjs CHANGED
@@ -885,7 +885,10 @@ class BacktestMainService {
885
885
  this.loggerService.log("backtestMainService run", {
886
886
  payload,
887
887
  });
888
- await this.configConnectionService.loadConfig("setup.config");
888
+ {
889
+ await this.configConnectionService.loadConfig("setup.config");
890
+ await this.configConnectionService.loadConfig("loader.config");
891
+ }
889
892
  {
890
893
  await this.configService.waitForInit();
891
894
  Setup.enable();
@@ -1004,7 +1007,10 @@ class WalkerMainService {
1004
1007
  this.configConnectionService = inject(TYPES.configConnectionService);
1005
1008
  this.run = singleshot(async (payload) => {
1006
1009
  this.loggerService.log("walkerMainService run", { payload });
1007
- await this.configConnectionService.loadConfig("setup.config");
1010
+ {
1011
+ await this.configConnectionService.loadConfig("setup.config");
1012
+ await this.configConnectionService.loadConfig("loader.config");
1013
+ }
1008
1014
  {
1009
1015
  await this.configService.waitForInit();
1010
1016
  Setup.enable();
@@ -1229,7 +1235,10 @@ class LiveMainService {
1229
1235
  this.loggerService.log("liveMainService run", {
1230
1236
  payload,
1231
1237
  });
1232
- await this.configConnectionService.loadConfig("setup.config");
1238
+ {
1239
+ await this.configConnectionService.loadConfig("setup.config");
1240
+ await this.configConnectionService.loadConfig("loader.config");
1241
+ }
1233
1242
  {
1234
1243
  await this.configService.waitForInit();
1235
1244
  Setup.enable();
@@ -1315,7 +1324,10 @@ class PaperMainService {
1315
1324
  this.configConnectionService = inject(TYPES.configConnectionService);
1316
1325
  this.run = singleshot(async (payload) => {
1317
1326
  this.loggerService.log("paperMainService init");
1318
- await this.configConnectionService.loadConfig("setup.config");
1327
+ {
1328
+ await this.configConnectionService.loadConfig("setup.config");
1329
+ await this.configConnectionService.loadConfig("loader.config");
1330
+ }
1319
1331
  {
1320
1332
  await this.configService.waitForInit();
1321
1333
  Setup.enable();
@@ -3099,7 +3111,7 @@ const main$g = async () => {
3099
3111
  if (MODES.some((mode) => values[mode])) {
3100
3112
  return;
3101
3113
  }
3102
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
3114
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n`);
3103
3115
  process.stdout.write("\n");
3104
3116
  process.stdout.write(`Run with --help to see available commands.\n`);
3105
3117
  process.stdout.write("\n");
@@ -3380,14 +3392,20 @@ const main$a = async () => {
3380
3392
  process.exit(1);
3381
3393
  return;
3382
3394
  }
3383
- const [entryPoint = null] = getPositionals();
3384
- if (!entryPoint) {
3385
- throw new Error("Entry point is required");
3395
+ const entryPoints = getPositionals();
3396
+ if (!entryPoints.length) {
3397
+ throw new Error("At least one entry point is required");
3386
3398
  }
3387
- if (!values.noFlush) {
3399
+ for (const entryPoint of entryPoints) {
3400
+ if (values.noFlush) {
3401
+ continue;
3402
+ }
3388
3403
  await flush(entryPoint);
3389
3404
  }
3390
- await cli.configConnectionService.loadConfig("setup.config");
3405
+ {
3406
+ await cli.configConnectionService.loadConfig("setup.config");
3407
+ await cli.configConnectionService.loadConfig("loader.config");
3408
+ }
3391
3409
  {
3392
3410
  await cli.configService.waitForInit();
3393
3411
  Setup.enable();
@@ -3401,7 +3419,9 @@ const main$a = async () => {
3401
3419
  await cli.moduleConnectionService.loadModule(MODE_MODULE[mode]);
3402
3420
  listenFinish();
3403
3421
  createGracefulShutdown(mode)();
3404
- await cli.resolveService.attachEntry(entryPoint);
3422
+ for (const entryPoint of entryPoints) {
3423
+ await cli.resolveService.attachEntry(entryPoint);
3424
+ }
3405
3425
  };
3406
3426
  main$a();
3407
3427
 
@@ -3486,7 +3506,10 @@ const main$7 = async () => {
3486
3506
  const cwd = process.cwd();
3487
3507
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3488
3508
  }
3489
- await cli.configConnectionService.loadConfig("setup.config");
3509
+ {
3510
+ await cli.configConnectionService.loadConfig("setup.config");
3511
+ await cli.configConnectionService.loadConfig("loader.config");
3512
+ }
3490
3513
  await cli.moduleConnectionService.loadModule("pine.module");
3491
3514
  {
3492
3515
  await cli.exchangeSchemaService.addSchema();
@@ -3564,7 +3587,10 @@ const main$6 = async () => {
3564
3587
  console.warn("--editor and --pine are mutually exclusive. Use one at a time.");
3565
3588
  process.exit(1);
3566
3589
  }
3567
- await cli.configConnectionService.loadConfig("setup.config");
3590
+ {
3591
+ await cli.configConnectionService.loadConfig("setup.config");
3592
+ await cli.configConnectionService.loadConfig("loader.config");
3593
+ }
3568
3594
  {
3569
3595
  await cli.configService.waitForInit();
3570
3596
  Setup.enable();
@@ -3606,7 +3632,10 @@ const main$5 = async () => {
3606
3632
  const cwd = process.cwd();
3607
3633
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3608
3634
  }
3609
- await cli.configConnectionService.loadConfig("setup.config");
3635
+ {
3636
+ await cli.configConnectionService.loadConfig("setup.config");
3637
+ await cli.configConnectionService.loadConfig("loader.config");
3638
+ }
3610
3639
  await cli.moduleConnectionService.loadModule("dump.module");
3611
3640
  {
3612
3641
  await cli.exchangeSchemaService.addSchema();
@@ -3674,7 +3703,10 @@ const main$4 = async () => {
3674
3703
  const cwd = process.cwd();
3675
3704
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3676
3705
  }
3677
- await cli.configConnectionService.loadConfig("setup.config");
3706
+ {
3707
+ await cli.configConnectionService.loadConfig("setup.config");
3708
+ await cli.configConnectionService.loadConfig("loader.config");
3709
+ }
3678
3710
  await cli.moduleConnectionService.loadModule("pnldebug.module");
3679
3711
  {
3680
3712
  await cli.exchangeSchemaService.addSchema();
@@ -4129,7 +4161,7 @@ const main$1 = async () => {
4129
4161
  if (!values.help) {
4130
4162
  return;
4131
4163
  }
4132
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n\n`);
4164
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n\n`);
4133
4165
  process.stdout.write(HELP_TEXT);
4134
4166
  process.exit(0);
4135
4167
  };
@@ -4143,7 +4175,7 @@ const main = async () => {
4143
4175
  if (!values.version) {
4144
4176
  return;
4145
4177
  }
4146
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
4178
+ process.stdout.write(`@backtest-kit/cli ${"9.5.0"}\n`);
4147
4179
  process.exit(0);
4148
4180
  };
4149
4181
  main();
@@ -15,17 +15,17 @@
15
15
  "@types/node": "25.6.0"
16
16
  },
17
17
  "dependencies": {
18
- "@backtest-kit/cli": "9.4.0",
19
- "@backtest-kit/graph": "9.4.0",
20
- "@backtest-kit/pinets": "9.4.0",
21
- "@backtest-kit/signals": "9.4.0",
22
- "@backtest-kit/ui": "9.4.0",
18
+ "@backtest-kit/cli": "9.5.0",
19
+ "@backtest-kit/graph": "9.5.0",
20
+ "@backtest-kit/pinets": "9.5.0",
21
+ "@backtest-kit/signals": "9.5.0",
22
+ "@backtest-kit/ui": "9.5.0",
23
23
  "@tavily/core": "0.7.2",
24
24
  "@tensorflow/tfjs": "4.22.0",
25
25
  "@tensorflow/tfjs-backend-wasm": "4.22.0",
26
26
  "@tensorflow/tfjs-core": "4.22.0",
27
27
  "agent-swarm-kit": "2.6.0",
28
- "backtest-kit": "9.4.0",
28
+ "backtest-kit": "9.5.0",
29
29
  "dayjs": "1.11.20",
30
30
  "functools-kit": "2.3.0",
31
31
  "garch": "1.2.3",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backtest-kit/cli",
3
- "version": "9.4.0",
3
+ "version": "9.5.0",
4
4
  "description": "Zero-boilerplate CLI runner for backtest-kit strategies. Run backtests, paper trading, and live bots with candle cache warming, web dashboard, and Telegram notifications — no setup code required.",
5
5
  "author": {
6
6
  "name": "Petr Tripolsky",
@@ -63,11 +63,11 @@
63
63
  "devDependencies": {
64
64
  "@babel/plugin-transform-modules-umd": "7.27.1",
65
65
  "@babel/standalone": "7.29.1",
66
- "@backtest-kit/graph": "9.4.0",
67
- "@backtest-kit/ollama": "9.4.0",
68
- "@backtest-kit/pinets": "9.4.0",
69
- "@backtest-kit/signals": "9.4.0",
70
- "@backtest-kit/ui": "9.4.0",
66
+ "@backtest-kit/graph": "9.5.0",
67
+ "@backtest-kit/ollama": "9.5.0",
68
+ "@backtest-kit/pinets": "9.5.0",
69
+ "@backtest-kit/signals": "9.5.0",
70
+ "@backtest-kit/ui": "9.5.0",
71
71
  "@rollup/plugin-replace": "6.0.3",
72
72
  "@rollup/plugin-typescript": "11.1.6",
73
73
  "@types/image-size": "0.7.0",
@@ -75,7 +75,7 @@
75
75
  "@types/mustache": "4.2.6",
76
76
  "@types/node": "22.9.0",
77
77
  "@types/stack-trace": "0.0.33",
78
- "backtest-kit": "9.4.0",
78
+ "backtest-kit": "9.5.0",
79
79
  "glob": "11.0.1",
80
80
  "markdown-it": "14.1.1",
81
81
  "rimraf": "6.0.1",
@@ -90,12 +90,12 @@
90
90
  "peerDependencies": {
91
91
  "@babel/plugin-transform-modules-umd": "^7.27.1",
92
92
  "@babel/standalone": "^7.29.1",
93
- "@backtest-kit/graph": "^9.4.0",
94
- "@backtest-kit/ollama": "^9.4.0",
95
- "@backtest-kit/pinets": "^9.4.0",
96
- "@backtest-kit/signals": "^9.4.0",
97
- "@backtest-kit/ui": "^9.4.0",
98
- "backtest-kit": "^9.4.0",
93
+ "@backtest-kit/graph": "^9.5.0",
94
+ "@backtest-kit/ollama": "^9.5.0",
95
+ "@backtest-kit/pinets": "^9.5.0",
96
+ "@backtest-kit/signals": "^9.5.0",
97
+ "@backtest-kit/ui": "^9.5.0",
98
+ "backtest-kit": "^9.5.0",
99
99
  "markdown-it": "^14.1.1",
100
100
  "typescript": "^5.0.0"
101
101
  },
@@ -13,12 +13,12 @@
13
13
  "license": "ISC",
14
14
  "type": "commonjs",
15
15
  "dependencies": {
16
- "@backtest-kit/cli": "^9.4.0",
17
- "@backtest-kit/graph": "^9.4.0",
18
- "@backtest-kit/pinets": "^9.4.0",
19
- "@backtest-kit/ui": "^9.4.0",
16
+ "@backtest-kit/cli": "^9.5.0",
17
+ "@backtest-kit/graph": "^9.5.0",
18
+ "@backtest-kit/pinets": "^9.5.0",
19
+ "@backtest-kit/ui": "^9.5.0",
20
20
  "agent-swarm-kit": "^2.6.0",
21
- "backtest-kit": "^9.4.0",
21
+ "backtest-kit": "^9.5.0",
22
22
  "functools-kit": "^2.3.0",
23
23
  "garch": "^1.2.3",
24
24
  "get-moment-stamp": "^1.1.2",