@backtest-kit/cli 9.4.0 → 9.6.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();
@@ -2867,13 +2879,44 @@ overrideModule('@backtest-kit/ollama', BacktestKitOllama__namespace);
2867
2879
  overrideModule('@backtest-kit/pinets', BacktestKitPinets__namespace);
2868
2880
  overrideModule('@backtest-kit/signals', BacktestKitSignals__namespace);
2869
2881
 
2882
+ const GET_ALIAS_VARIANTS_FN = (self) => {
2883
+ const result = [];
2884
+ result.push({
2885
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.cjs"),
2886
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2887
+ });
2888
+ result.push({
2889
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.mjs"),
2890
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2891
+ });
2892
+ result.push({
2893
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.ts"),
2894
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2895
+ });
2896
+ result.push({
2897
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.tsx"),
2898
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2899
+ });
2900
+ result.push({
2901
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.js"),
2902
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2903
+ });
2904
+ result.push({
2905
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.json"),
2906
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2907
+ });
2908
+ return result;
2909
+ };
2870
2910
  const GET_ALIAS_EXPORTS_FN = (self) => {
2871
- const instance = self.getInstance(self.resolveService.OVERRIDE_CONFIG_DIR);
2872
- if (!instance.check("alias.config")) {
2873
- return null;
2911
+ for (const { filePath, baseDir } of GET_ALIAS_VARIANTS_FN(self)) {
2912
+ if (!fs.existsSync(filePath)) {
2913
+ continue;
2914
+ }
2915
+ const instance = self.getInstance(baseDir);
2916
+ const exports = instance.import(filePath);
2917
+ return "default" in exports ? exports.default : exports;
2874
2918
  }
2875
- const exports = instance.import("alias.config");
2876
- return "default" in exports ? exports.default : exports;
2919
+ return null;
2877
2920
  };
2878
2921
  const INIT_ALIAS_FN = (self) => {
2879
2922
  const alias = GET_ALIAS_EXPORTS_FN(self);
@@ -3128,7 +3171,7 @@ const main$g = async () => {
3128
3171
  if (MODES.some((mode) => values[mode])) {
3129
3172
  return;
3130
3173
  }
3131
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
3174
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n`);
3132
3175
  process.stdout.write("\n");
3133
3176
  process.stdout.write(`Run with --help to see available commands.\n`);
3134
3177
  process.stdout.write("\n");
@@ -3409,14 +3452,20 @@ const main$a = async () => {
3409
3452
  process.exit(1);
3410
3453
  return;
3411
3454
  }
3412
- const [entryPoint = null] = getPositionals();
3413
- if (!entryPoint) {
3414
- throw new Error("Entry point is required");
3455
+ const entryPoints = getPositionals();
3456
+ if (!entryPoints.length) {
3457
+ throw new Error("At least one entry point is required");
3415
3458
  }
3416
- if (!values.noFlush) {
3459
+ for (const entryPoint of entryPoints) {
3460
+ if (values.noFlush) {
3461
+ continue;
3462
+ }
3417
3463
  await flush(entryPoint);
3418
3464
  }
3419
- await cli.configConnectionService.loadConfig("setup.config");
3465
+ {
3466
+ await cli.configConnectionService.loadConfig("setup.config");
3467
+ await cli.configConnectionService.loadConfig("loader.config");
3468
+ }
3420
3469
  {
3421
3470
  await cli.configService.waitForInit();
3422
3471
  Setup.enable();
@@ -3430,7 +3479,9 @@ const main$a = async () => {
3430
3479
  await cli.moduleConnectionService.loadModule(MODE_MODULE[mode]);
3431
3480
  listenFinish();
3432
3481
  createGracefulShutdown(mode)();
3433
- await cli.resolveService.attachEntry(entryPoint);
3482
+ for (const entryPoint of entryPoints) {
3483
+ await cli.resolveService.attachEntry(entryPoint);
3484
+ }
3434
3485
  };
3435
3486
  main$a();
3436
3487
 
@@ -3515,7 +3566,10 @@ const main$7 = async () => {
3515
3566
  const cwd = process.cwd();
3516
3567
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3517
3568
  }
3518
- await cli.configConnectionService.loadConfig("setup.config");
3569
+ {
3570
+ await cli.configConnectionService.loadConfig("setup.config");
3571
+ await cli.configConnectionService.loadConfig("loader.config");
3572
+ }
3519
3573
  await cli.moduleConnectionService.loadModule("pine.module");
3520
3574
  {
3521
3575
  await cli.exchangeSchemaService.addSchema();
@@ -3593,7 +3647,10 @@ const main$6 = async () => {
3593
3647
  console.warn("--editor and --pine are mutually exclusive. Use one at a time.");
3594
3648
  process.exit(1);
3595
3649
  }
3596
- await cli.configConnectionService.loadConfig("setup.config");
3650
+ {
3651
+ await cli.configConnectionService.loadConfig("setup.config");
3652
+ await cli.configConnectionService.loadConfig("loader.config");
3653
+ }
3597
3654
  {
3598
3655
  await cli.configService.waitForInit();
3599
3656
  Setup.enable();
@@ -3635,7 +3692,10 @@ const main$5 = async () => {
3635
3692
  const cwd = process.cwd();
3636
3693
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3637
3694
  }
3638
- await cli.configConnectionService.loadConfig("setup.config");
3695
+ {
3696
+ await cli.configConnectionService.loadConfig("setup.config");
3697
+ await cli.configConnectionService.loadConfig("loader.config");
3698
+ }
3639
3699
  await cli.moduleConnectionService.loadModule("dump.module");
3640
3700
  {
3641
3701
  await cli.exchangeSchemaService.addSchema();
@@ -3703,7 +3763,10 @@ const main$4 = async () => {
3703
3763
  const cwd = process.cwd();
3704
3764
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3705
3765
  }
3706
- await cli.configConnectionService.loadConfig("setup.config");
3766
+ {
3767
+ await cli.configConnectionService.loadConfig("setup.config");
3768
+ await cli.configConnectionService.loadConfig("loader.config");
3769
+ }
3707
3770
  await cli.moduleConnectionService.loadModule("pnldebug.module");
3708
3771
  {
3709
3772
  await cli.exchangeSchemaService.addSchema();
@@ -4158,7 +4221,7 @@ const main$1 = async () => {
4158
4221
  if (!values.help) {
4159
4222
  return;
4160
4223
  }
4161
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n\n`);
4224
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n\n`);
4162
4225
  process.stdout.write(HELP_TEXT);
4163
4226
  process.exit(0);
4164
4227
  };
@@ -4172,7 +4235,7 @@ const main = async () => {
4172
4235
  if (!values.version) {
4173
4236
  return;
4174
4237
  }
4175
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
4238
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n`);
4176
4239
  process.exit(0);
4177
4240
  };
4178
4241
  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();
@@ -2838,13 +2850,44 @@ overrideModule('@backtest-kit/ollama', BacktestKitOllama);
2838
2850
  overrideModule('@backtest-kit/pinets', BacktestKitPinets);
2839
2851
  overrideModule('@backtest-kit/signals', BacktestKitSignals);
2840
2852
 
2853
+ const GET_ALIAS_VARIANTS_FN = (self) => {
2854
+ const result = [];
2855
+ result.push({
2856
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.cjs"),
2857
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2858
+ });
2859
+ result.push({
2860
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.mjs"),
2861
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2862
+ });
2863
+ result.push({
2864
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.ts"),
2865
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2866
+ });
2867
+ result.push({
2868
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.tsx"),
2869
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2870
+ });
2871
+ result.push({
2872
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.js"),
2873
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2874
+ });
2875
+ result.push({
2876
+ filePath: path.join(self.resolveService.OVERRIDE_CONFIG_DIR, "alias.config.json"),
2877
+ baseDir: self.resolveService.OVERRIDE_CONFIG_DIR,
2878
+ });
2879
+ return result;
2880
+ };
2841
2881
  const GET_ALIAS_EXPORTS_FN = (self) => {
2842
- const instance = self.getInstance(self.resolveService.OVERRIDE_CONFIG_DIR);
2843
- if (!instance.check("alias.config")) {
2844
- return null;
2882
+ for (const { filePath, baseDir } of GET_ALIAS_VARIANTS_FN(self)) {
2883
+ if (!fs.existsSync(filePath)) {
2884
+ continue;
2885
+ }
2886
+ const instance = self.getInstance(baseDir);
2887
+ const exports = instance.import(filePath);
2888
+ return "default" in exports ? exports.default : exports;
2845
2889
  }
2846
- const exports = instance.import("alias.config");
2847
- return "default" in exports ? exports.default : exports;
2890
+ return null;
2848
2891
  };
2849
2892
  const INIT_ALIAS_FN = (self) => {
2850
2893
  const alias = GET_ALIAS_EXPORTS_FN(self);
@@ -3099,7 +3142,7 @@ const main$g = async () => {
3099
3142
  if (MODES.some((mode) => values[mode])) {
3100
3143
  return;
3101
3144
  }
3102
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
3145
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n`);
3103
3146
  process.stdout.write("\n");
3104
3147
  process.stdout.write(`Run with --help to see available commands.\n`);
3105
3148
  process.stdout.write("\n");
@@ -3380,14 +3423,20 @@ const main$a = async () => {
3380
3423
  process.exit(1);
3381
3424
  return;
3382
3425
  }
3383
- const [entryPoint = null] = getPositionals();
3384
- if (!entryPoint) {
3385
- throw new Error("Entry point is required");
3426
+ const entryPoints = getPositionals();
3427
+ if (!entryPoints.length) {
3428
+ throw new Error("At least one entry point is required");
3386
3429
  }
3387
- if (!values.noFlush) {
3430
+ for (const entryPoint of entryPoints) {
3431
+ if (values.noFlush) {
3432
+ continue;
3433
+ }
3388
3434
  await flush(entryPoint);
3389
3435
  }
3390
- await cli.configConnectionService.loadConfig("setup.config");
3436
+ {
3437
+ await cli.configConnectionService.loadConfig("setup.config");
3438
+ await cli.configConnectionService.loadConfig("loader.config");
3439
+ }
3391
3440
  {
3392
3441
  await cli.configService.waitForInit();
3393
3442
  Setup.enable();
@@ -3401,7 +3450,9 @@ const main$a = async () => {
3401
3450
  await cli.moduleConnectionService.loadModule(MODE_MODULE[mode]);
3402
3451
  listenFinish();
3403
3452
  createGracefulShutdown(mode)();
3404
- await cli.resolveService.attachEntry(entryPoint);
3453
+ for (const entryPoint of entryPoints) {
3454
+ await cli.resolveService.attachEntry(entryPoint);
3455
+ }
3405
3456
  };
3406
3457
  main$a();
3407
3458
 
@@ -3486,7 +3537,10 @@ const main$7 = async () => {
3486
3537
  const cwd = process.cwd();
3487
3538
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3488
3539
  }
3489
- await cli.configConnectionService.loadConfig("setup.config");
3540
+ {
3541
+ await cli.configConnectionService.loadConfig("setup.config");
3542
+ await cli.configConnectionService.loadConfig("loader.config");
3543
+ }
3490
3544
  await cli.moduleConnectionService.loadModule("pine.module");
3491
3545
  {
3492
3546
  await cli.exchangeSchemaService.addSchema();
@@ -3564,7 +3618,10 @@ const main$6 = async () => {
3564
3618
  console.warn("--editor and --pine are mutually exclusive. Use one at a time.");
3565
3619
  process.exit(1);
3566
3620
  }
3567
- await cli.configConnectionService.loadConfig("setup.config");
3621
+ {
3622
+ await cli.configConnectionService.loadConfig("setup.config");
3623
+ await cli.configConnectionService.loadConfig("loader.config");
3624
+ }
3568
3625
  {
3569
3626
  await cli.configService.waitForInit();
3570
3627
  Setup.enable();
@@ -3606,7 +3663,10 @@ const main$5 = async () => {
3606
3663
  const cwd = process.cwd();
3607
3664
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3608
3665
  }
3609
- await cli.configConnectionService.loadConfig("setup.config");
3666
+ {
3667
+ await cli.configConnectionService.loadConfig("setup.config");
3668
+ await cli.configConnectionService.loadConfig("loader.config");
3669
+ }
3610
3670
  await cli.moduleConnectionService.loadModule("dump.module");
3611
3671
  {
3612
3672
  await cli.exchangeSchemaService.addSchema();
@@ -3674,7 +3734,10 @@ const main$4 = async () => {
3674
3734
  const cwd = process.cwd();
3675
3735
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
3676
3736
  }
3677
- await cli.configConnectionService.loadConfig("setup.config");
3737
+ {
3738
+ await cli.configConnectionService.loadConfig("setup.config");
3739
+ await cli.configConnectionService.loadConfig("loader.config");
3740
+ }
3678
3741
  await cli.moduleConnectionService.loadModule("pnldebug.module");
3679
3742
  {
3680
3743
  await cli.exchangeSchemaService.addSchema();
@@ -4129,7 +4192,7 @@ const main$1 = async () => {
4129
4192
  if (!values.help) {
4130
4193
  return;
4131
4194
  }
4132
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n\n`);
4195
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n\n`);
4133
4196
  process.stdout.write(HELP_TEXT);
4134
4197
  process.exit(0);
4135
4198
  };
@@ -4143,7 +4206,7 @@ const main = async () => {
4143
4206
  if (!values.version) {
4144
4207
  return;
4145
4208
  }
4146
- process.stdout.write(`@backtest-kit/cli ${"9.3.0"}\n`);
4209
+ process.stdout.write(`@backtest-kit/cli ${"9.6.0"}\n`);
4147
4210
  process.exit(0);
4148
4211
  };
4149
4212
  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.6.0",
19
+ "@backtest-kit/graph": "9.6.0",
20
+ "@backtest-kit/pinets": "9.6.0",
21
+ "@backtest-kit/signals": "9.6.0",
22
+ "@backtest-kit/ui": "9.6.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.6.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.6.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.6.0",
67
+ "@backtest-kit/ollama": "9.6.0",
68
+ "@backtest-kit/pinets": "9.6.0",
69
+ "@backtest-kit/signals": "9.6.0",
70
+ "@backtest-kit/ui": "9.6.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.6.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.6.0",
94
+ "@backtest-kit/ollama": "^9.6.0",
95
+ "@backtest-kit/pinets": "^9.6.0",
96
+ "@backtest-kit/signals": "^9.6.0",
97
+ "@backtest-kit/ui": "^9.6.0",
98
+ "backtest-kit": "^9.6.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.6.0",
17
+ "@backtest-kit/graph": "^9.6.0",
18
+ "@backtest-kit/pinets": "^9.6.0",
19
+ "@backtest-kit/ui": "^9.6.0",
20
20
  "agent-swarm-kit": "^2.6.0",
21
- "backtest-kit": "^9.4.0",
21
+ "backtest-kit": "^9.6.0",
22
22
  "functools-kit": "^2.3.0",
23
23
  "garch": "^1.2.3",
24
24
  "get-moment-stamp": "^1.1.2",