@backtest-kit/cli 12.5.0 → 12.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
@@ -1615,6 +1615,8 @@ const getEnv = functoolsKit.singleshot(() => {
1615
1615
  };
1616
1616
  });
1617
1617
 
1618
+ const READY_SUBJECT = new functoolsKit.BehaviorSubject();
1619
+ const MAX_WAIT_TIME = 5000;
1618
1620
  const GET_SYMBOL_EXPORTS_FN = async (self) => {
1619
1621
  const exports = await self.configConnectionService.loadConfig("symbol.config");
1620
1622
  if (!exports) {
@@ -1659,6 +1661,17 @@ const MAP_SYMBOL_CONFIG_FN = (config) => {
1659
1661
  symbolList.sort(({ priority: a_p, index: a_x }, { priority: b_p, index: b_x }) => b_p - a_p || a_x - b_x);
1660
1662
  return symbolList;
1661
1663
  };
1664
+ const CREATE_LISTEN_FN = (self) => async () => {
1665
+ const promise = READY_SUBJECT.toPromise();
1666
+ self.enable();
1667
+ if (READY_SUBJECT.data) {
1668
+ return;
1669
+ }
1670
+ await Promise.race([
1671
+ promise,
1672
+ functoolsKit.sleep(MAX_WAIT_TIME),
1673
+ ]);
1674
+ };
1662
1675
  class FrontendProviderService {
1663
1676
  constructor() {
1664
1677
  this.loggerService = inject(TYPES.loggerService);
@@ -1676,7 +1689,7 @@ class FrontendProviderService {
1676
1689
  BacktestKitUi.lib.symbolConnectionService.getSymbolList.setValue(Promise.resolve(symbolList));
1677
1690
  }
1678
1691
  }
1679
- unServer = BacktestKitUi.serve(CC_WWWROOT_HOST, CC_WWWROOT_PORT, this.resolveService.PROJECT_ROOT_DIR);
1692
+ unServer = BacktestKitUi.serve(CC_WWWROOT_HOST, CC_WWWROOT_PORT, this.resolveService.PROJECT_ROOT_DIR, () => READY_SUBJECT.next(true));
1680
1693
  };
1681
1694
  init();
1682
1695
  return () => {
@@ -1696,7 +1709,7 @@ class FrontendProviderService {
1696
1709
  if (!getArgs().values.ui) {
1697
1710
  return;
1698
1711
  }
1699
- return getEntrySubject().subscribe(this.enable);
1712
+ return getEntrySubject().subscribe(CREATE_LISTEN_FN(this));
1700
1713
  });
1701
1714
  }
1702
1715
  }
@@ -3377,7 +3390,7 @@ const main$h = async () => {
3377
3390
  if (MODES.some((mode) => values[mode])) {
3378
3391
  return;
3379
3392
  }
3380
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n`);
3393
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n`);
3381
3394
  process.stdout.write("\n");
3382
3395
  process.stdout.write(`Run with --help to see available commands.\n`);
3383
3396
  process.stdout.write("\n");
@@ -4683,7 +4696,7 @@ const main$1 = async () => {
4683
4696
  if (!values.help) {
4684
4697
  return;
4685
4698
  }
4686
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n\n`);
4699
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n\n`);
4687
4700
  process.stdout.write(HELP_TEXT);
4688
4701
  process.exit(0);
4689
4702
  };
@@ -4697,7 +4710,7 @@ const main = async () => {
4697
4710
  if (!values.version) {
4698
4711
  return;
4699
4712
  }
4700
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n`);
4713
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n`);
4701
4714
  process.exit(0);
4702
4715
  };
4703
4716
  main();
package/build/index.mjs CHANGED
@@ -1590,6 +1590,8 @@ const getEnv = singleshot(() => {
1590
1590
  };
1591
1591
  });
1592
1592
 
1593
+ const READY_SUBJECT = new BehaviorSubject();
1594
+ const MAX_WAIT_TIME = 5000;
1593
1595
  const GET_SYMBOL_EXPORTS_FN = async (self) => {
1594
1596
  const exports = await self.configConnectionService.loadConfig("symbol.config");
1595
1597
  if (!exports) {
@@ -1634,6 +1636,17 @@ const MAP_SYMBOL_CONFIG_FN = (config) => {
1634
1636
  symbolList.sort(({ priority: a_p, index: a_x }, { priority: b_p, index: b_x }) => b_p - a_p || a_x - b_x);
1635
1637
  return symbolList;
1636
1638
  };
1639
+ const CREATE_LISTEN_FN = (self) => async () => {
1640
+ const promise = READY_SUBJECT.toPromise();
1641
+ self.enable();
1642
+ if (READY_SUBJECT.data) {
1643
+ return;
1644
+ }
1645
+ await Promise.race([
1646
+ promise,
1647
+ sleep(MAX_WAIT_TIME),
1648
+ ]);
1649
+ };
1637
1650
  class FrontendProviderService {
1638
1651
  constructor() {
1639
1652
  this.loggerService = inject(TYPES.loggerService);
@@ -1651,7 +1664,7 @@ class FrontendProviderService {
1651
1664
  lib.symbolConnectionService.getSymbolList.setValue(Promise.resolve(symbolList));
1652
1665
  }
1653
1666
  }
1654
- unServer = serve(CC_WWWROOT_HOST, CC_WWWROOT_PORT, this.resolveService.PROJECT_ROOT_DIR);
1667
+ unServer = serve(CC_WWWROOT_HOST, CC_WWWROOT_PORT, this.resolveService.PROJECT_ROOT_DIR, () => READY_SUBJECT.next(true));
1655
1668
  };
1656
1669
  init();
1657
1670
  return () => {
@@ -1671,7 +1684,7 @@ class FrontendProviderService {
1671
1684
  if (!getArgs().values.ui) {
1672
1685
  return;
1673
1686
  }
1674
- return getEntrySubject().subscribe(this.enable);
1687
+ return getEntrySubject().subscribe(CREATE_LISTEN_FN(this));
1675
1688
  });
1676
1689
  }
1677
1690
  }
@@ -3348,7 +3361,7 @@ const main$h = async () => {
3348
3361
  if (MODES.some((mode) => values[mode])) {
3349
3362
  return;
3350
3363
  }
3351
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n`);
3364
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n`);
3352
3365
  process.stdout.write("\n");
3353
3366
  process.stdout.write(`Run with --help to see available commands.\n`);
3354
3367
  process.stdout.write("\n");
@@ -4654,7 +4667,7 @@ const main$1 = async () => {
4654
4667
  if (!values.help) {
4655
4668
  return;
4656
4669
  }
4657
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n\n`);
4670
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n\n`);
4658
4671
  process.stdout.write(HELP_TEXT);
4659
4672
  process.exit(0);
4660
4673
  };
@@ -4668,7 +4681,7 @@ const main = async () => {
4668
4681
  if (!values.version) {
4669
4682
  return;
4670
4683
  }
4671
- process.stdout.write(`@backtest-kit/cli ${"12.5.0"}\n`);
4684
+ process.stdout.write(`@backtest-kit/cli ${"12.6.0"}\n`);
4672
4685
  process.exit(0);
4673
4686
  };
4674
4687
  main();
@@ -15,17 +15,17 @@
15
15
  "@types/node": "25.6.0"
16
16
  },
17
17
  "dependencies": {
18
- "@backtest-kit/cli": "12.5.0",
19
- "@backtest-kit/graph": "12.5.0",
20
- "@backtest-kit/pinets": "12.5.0",
21
- "@backtest-kit/signals": "12.5.0",
22
- "@backtest-kit/ui": "12.5.0",
18
+ "@backtest-kit/cli": "12.6.0",
19
+ "@backtest-kit/graph": "12.6.0",
20
+ "@backtest-kit/pinets": "12.6.0",
21
+ "@backtest-kit/signals": "12.6.0",
22
+ "@backtest-kit/ui": "12.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.7.0",
28
- "backtest-kit": "12.5.0",
28
+ "backtest-kit": "12.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": "12.5.0",
3
+ "version": "12.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": "12.5.0",
67
- "@backtest-kit/ollama": "12.5.0",
68
- "@backtest-kit/pinets": "12.5.0",
69
- "@backtest-kit/signals": "12.5.0",
70
- "@backtest-kit/ui": "12.5.0",
66
+ "@backtest-kit/graph": "12.6.0",
67
+ "@backtest-kit/ollama": "12.6.0",
68
+ "@backtest-kit/pinets": "12.6.0",
69
+ "@backtest-kit/signals": "12.6.0",
70
+ "@backtest-kit/ui": "12.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": "12.5.0",
78
+ "backtest-kit": "12.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": "^12.5.0",
94
- "@backtest-kit/ollama": "^12.5.0",
95
- "@backtest-kit/pinets": "^12.5.0",
96
- "@backtest-kit/signals": "^12.5.0",
97
- "@backtest-kit/ui": "^12.5.0",
98
- "backtest-kit": "^12.5.0",
93
+ "@backtest-kit/graph": "^12.6.0",
94
+ "@backtest-kit/ollama": "^12.6.0",
95
+ "@backtest-kit/pinets": "^12.6.0",
96
+ "@backtest-kit/signals": "^12.6.0",
97
+ "@backtest-kit/ui": "^12.6.0",
98
+ "backtest-kit": "^12.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": "^12.5.0",
17
- "@backtest-kit/graph": "^12.5.0",
18
- "@backtest-kit/pinets": "^12.5.0",
19
- "@backtest-kit/ui": "^12.5.0",
16
+ "@backtest-kit/cli": "^12.6.0",
17
+ "@backtest-kit/graph": "^12.6.0",
18
+ "@backtest-kit/pinets": "^12.6.0",
19
+ "@backtest-kit/ui": "^12.6.0",
20
20
  "agent-swarm-kit": "^2.7.0",
21
- "backtest-kit": "^12.5.0",
21
+ "backtest-kit": "^12.6.0",
22
22
  "functools-kit": "^2.3.0",
23
23
  "garch": "^1.2.3",
24
24
  "get-moment-stamp": "^2.0.0",