@backtest-kit/cli 6.5.0 → 6.5.2

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
@@ -750,8 +750,13 @@ class BacktestMainService {
750
750
  }
751
751
  }
752
752
 
753
+ var WalkerName;
754
+ (function (WalkerName) {
755
+ WalkerName["DefaultWalker"] = "default_walker";
756
+ })(WalkerName || (WalkerName = {}));
757
+ var WalkerName$1 = WalkerName;
758
+
753
759
  const DEFAULT_CACHE_LIST = ["1m", "15m", "30m", "1h", "4h"];
754
- const WALKER_NAME = "cli-walker";
755
760
  const GET_CACHE_INTERVAL_LIST_FN = () => {
756
761
  const { values } = getArgs();
757
762
  if (!values.cacheInterval) {
@@ -774,9 +779,17 @@ class WalkerMainService {
774
779
  const strategyMap = new Map();
775
780
  const cwd = process.cwd();
776
781
  for (const entryPoint of payload.entryPoints) {
782
+ process.chdir(cwd);
777
783
  const absolutePath = path.resolve(entryPoint);
784
+ await fs$1.access(absolutePath, fs.constants.F_OK | fs.constants.R_OK);
778
785
  const moduleRoot = path.dirname(absolutePath);
786
+ process.chdir(moduleRoot);
787
+ {
788
+ Setup.clear();
789
+ Setup.enable();
790
+ }
779
791
  {
792
+ cwd !== moduleRoot && BacktestKit.Log.useJsonl();
780
793
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
781
794
  dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
782
795
  }
@@ -831,14 +844,15 @@ class WalkerMainService {
831
844
  if (!entryPoint) {
832
845
  return;
833
846
  }
847
+ process.chdir(cwd);
848
+ const absolutePath = path.resolve(entryPoint);
849
+ const moduleRoot = path.dirname(absolutePath);
850
+ process.chdir(moduleRoot);
834
851
  {
835
852
  Setup.clear();
836
853
  Setup.enable();
837
854
  }
838
- const absolutePath = path.resolve(entryPoint);
839
- const moduleRoot = path.dirname(absolutePath);
840
855
  {
841
- process.chdir(moduleRoot);
842
856
  cwd !== moduleRoot && BacktestKit.Log.useJsonl();
843
857
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
844
858
  dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
@@ -853,7 +867,7 @@ class WalkerMainService {
853
867
  },
854
868
  };
855
869
  BacktestKit.addWalkerSchema({
856
- walkerName: WALKER_NAME,
870
+ walkerName: WalkerName$1.DefaultWalker,
857
871
  exchangeName,
858
872
  frameName,
859
873
  strategies: strategyNames,
@@ -872,7 +886,7 @@ class WalkerMainService {
872
886
  }
873
887
  if (payload.verbose) {
874
888
  BacktestKit.overrideWalkerSchema({
875
- walkerName: WALKER_NAME,
889
+ walkerName: WalkerName$1.DefaultWalker,
876
890
  callbacks: {
877
891
  async onStrategyStart(strategyName, symbol) {
878
892
  console.log(`Strategy started: ${strategyName} for symbol: ${symbol}`);
@@ -890,7 +904,7 @@ class WalkerMainService {
890
904
  }
891
905
  });
892
906
  }
893
- BacktestKit.Walker.background(symbol, { walkerName: WALKER_NAME });
907
+ BacktestKit.Walker.background(symbol, { walkerName: WalkerName$1.DefaultWalker });
894
908
  const [awaiter, { resolve: res }] = functoolsKit.createAwaiter();
895
909
  const unWalker = BacktestKit.listenDoneWalker(() => {
896
910
  console.log("Walker comparison finished");
@@ -907,7 +921,7 @@ class WalkerMainService {
907
921
  const dumpDir = path.join(process.cwd(), "dump");
908
922
  if (payload.json) {
909
923
  const filePath = path.resolve(dumpDir, `${dumpName}.json`);
910
- const data = await BacktestKit.Walker.getData(symbol, { walkerName: WALKER_NAME });
924
+ const data = await BacktestKit.Walker.getData(symbol, { walkerName: WalkerName$1.DefaultWalker });
911
925
  await fs$1.mkdir(dumpDir, { recursive: true });
912
926
  await fs$1.writeFile(filePath, JSON.stringify(data, null, 2), "utf-8");
913
927
  console.log(`Saved: ${filePath}`);
@@ -916,14 +930,14 @@ class WalkerMainService {
916
930
  }
917
931
  if (payload.markdown) {
918
932
  const filePath = path.resolve(dumpDir, `${dumpName}.md`);
919
- const report = await BacktestKit.Walker.getReport(symbol, { walkerName: WALKER_NAME });
933
+ const report = await BacktestKit.Walker.getReport(symbol, { walkerName: WalkerName$1.DefaultWalker });
920
934
  await fs$1.mkdir(dumpDir, { recursive: true });
921
935
  await fs$1.writeFile(filePath, report, "utf-8");
922
936
  console.log(`Saved: ${filePath}`);
923
937
  process.exit(0);
924
938
  return;
925
939
  }
926
- const report = await BacktestKit.Walker.getReport(symbol, { walkerName: WALKER_NAME });
940
+ const report = await BacktestKit.Walker.getReport(symbol, { walkerName: WalkerName$1.DefaultWalker });
927
941
  console.log(report);
928
942
  process.exit(0);
929
943
  });
@@ -2141,13 +2155,12 @@ const GET_EXT_VARIANTS_FN = (fileName) => {
2141
2155
  const base = ext ? fileName.slice(0, -ext.length) : fileName;
2142
2156
  const result = [];
2143
2157
  {
2144
- result.push(`${base}`);
2145
- result.push(`${base}.cjs`);
2146
- result.push(`${base}.mjs`);
2147
- result.push(`${base}.ts`);
2148
- result.push(`${base}.tsx`);
2149
- result.push(`${base}.js`);
2150
- result.push(`${base}.json`);
2158
+ result.push(path.join(fileName, `index.cjs`));
2159
+ result.push(path.join(fileName, `index.mjs`));
2160
+ result.push(path.join(fileName, `index.ts`));
2161
+ result.push(path.join(fileName, `index.tsx`));
2162
+ result.push(path.join(fileName, `index.js`));
2163
+ result.push(path.join(fileName, `index.json`));
2151
2164
  }
2152
2165
  {
2153
2166
  result.push(`${fileName}`);
@@ -2158,6 +2171,15 @@ const GET_EXT_VARIANTS_FN = (fileName) => {
2158
2171
  result.push(`${fileName}.js`);
2159
2172
  result.push(`${fileName}.json`);
2160
2173
  }
2174
+ {
2175
+ result.push(`${base}`);
2176
+ result.push(`${base}.cjs`);
2177
+ result.push(`${base}.mjs`);
2178
+ result.push(`${base}.ts`);
2179
+ result.push(`${base}.tsx`);
2180
+ result.push(`${base}.js`);
2181
+ result.push(`${base}.json`);
2182
+ }
2161
2183
  return result;
2162
2184
  };
2163
2185
  const GET_RESOLVED_EXT_FN = (filePath) => {
@@ -2515,7 +2537,7 @@ const main$b = async () => {
2515
2537
  if (MODES.some((mode) => values[mode])) {
2516
2538
  return;
2517
2539
  }
2518
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
2540
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n`);
2519
2541
  process.stdout.write("\n");
2520
2542
  process.stdout.write(`Run with --help to see available commands.\n`);
2521
2543
  process.stdout.write("\n");
@@ -3083,7 +3105,7 @@ const main$1 = async () => {
3083
3105
  if (!values.help) {
3084
3106
  return;
3085
3107
  }
3086
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n\n`);
3108
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n\n`);
3087
3109
  process.stdout.write(HELP_TEXT);
3088
3110
  process.exit(0);
3089
3111
  };
@@ -3097,7 +3119,7 @@ const main = async () => {
3097
3119
  if (!values.version) {
3098
3120
  return;
3099
3121
  }
3100
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
3122
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n`);
3101
3123
  process.exit(0);
3102
3124
  };
3103
3125
  main();
package/build/index.mjs CHANGED
@@ -725,8 +725,13 @@ class BacktestMainService {
725
725
  }
726
726
  }
727
727
 
728
+ var WalkerName;
729
+ (function (WalkerName) {
730
+ WalkerName["DefaultWalker"] = "default_walker";
731
+ })(WalkerName || (WalkerName = {}));
732
+ var WalkerName$1 = WalkerName;
733
+
728
734
  const DEFAULT_CACHE_LIST = ["1m", "15m", "30m", "1h", "4h"];
729
- const WALKER_NAME = "cli-walker";
730
735
  const GET_CACHE_INTERVAL_LIST_FN = () => {
731
736
  const { values } = getArgs();
732
737
  if (!values.cacheInterval) {
@@ -749,9 +754,17 @@ class WalkerMainService {
749
754
  const strategyMap = new Map();
750
755
  const cwd = process.cwd();
751
756
  for (const entryPoint of payload.entryPoints) {
757
+ process.chdir(cwd);
752
758
  const absolutePath = path.resolve(entryPoint);
759
+ await access(absolutePath, constants.F_OK | constants.R_OK);
753
760
  const moduleRoot = path.dirname(absolutePath);
761
+ process.chdir(moduleRoot);
762
+ {
763
+ Setup.clear();
764
+ Setup.enable();
765
+ }
754
766
  {
767
+ cwd !== moduleRoot && Log.useJsonl();
755
768
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
756
769
  dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
757
770
  }
@@ -806,14 +819,15 @@ class WalkerMainService {
806
819
  if (!entryPoint) {
807
820
  return;
808
821
  }
822
+ process.chdir(cwd);
823
+ const absolutePath = path.resolve(entryPoint);
824
+ const moduleRoot = path.dirname(absolutePath);
825
+ process.chdir(moduleRoot);
809
826
  {
810
827
  Setup.clear();
811
828
  Setup.enable();
812
829
  }
813
- const absolutePath = path.resolve(entryPoint);
814
- const moduleRoot = path.dirname(absolutePath);
815
830
  {
816
- process.chdir(moduleRoot);
817
831
  cwd !== moduleRoot && Log.useJsonl();
818
832
  dotenv.config({ path: path.join(cwd, '.env'), override: true, quiet: true });
819
833
  dotenv.config({ path: path.join(moduleRoot, '.env'), override: true, quiet: true });
@@ -828,7 +842,7 @@ class WalkerMainService {
828
842
  },
829
843
  };
830
844
  addWalkerSchema({
831
- walkerName: WALKER_NAME,
845
+ walkerName: WalkerName$1.DefaultWalker,
832
846
  exchangeName,
833
847
  frameName,
834
848
  strategies: strategyNames,
@@ -847,7 +861,7 @@ class WalkerMainService {
847
861
  }
848
862
  if (payload.verbose) {
849
863
  overrideWalkerSchema({
850
- walkerName: WALKER_NAME,
864
+ walkerName: WalkerName$1.DefaultWalker,
851
865
  callbacks: {
852
866
  async onStrategyStart(strategyName, symbol) {
853
867
  console.log(`Strategy started: ${strategyName} for symbol: ${symbol}`);
@@ -865,7 +879,7 @@ class WalkerMainService {
865
879
  }
866
880
  });
867
881
  }
868
- Walker.background(symbol, { walkerName: WALKER_NAME });
882
+ Walker.background(symbol, { walkerName: WalkerName$1.DefaultWalker });
869
883
  const [awaiter, { resolve: res }] = createAwaiter();
870
884
  const unWalker = listenDoneWalker(() => {
871
885
  console.log("Walker comparison finished");
@@ -882,7 +896,7 @@ class WalkerMainService {
882
896
  const dumpDir = join(process.cwd(), "dump");
883
897
  if (payload.json) {
884
898
  const filePath = resolve(dumpDir, `${dumpName}.json`);
885
- const data = await Walker.getData(symbol, { walkerName: WALKER_NAME });
899
+ const data = await Walker.getData(symbol, { walkerName: WalkerName$1.DefaultWalker });
886
900
  await mkdir(dumpDir, { recursive: true });
887
901
  await writeFile(filePath, JSON.stringify(data, null, 2), "utf-8");
888
902
  console.log(`Saved: ${filePath}`);
@@ -891,14 +905,14 @@ class WalkerMainService {
891
905
  }
892
906
  if (payload.markdown) {
893
907
  const filePath = resolve(dumpDir, `${dumpName}.md`);
894
- const report = await Walker.getReport(symbol, { walkerName: WALKER_NAME });
908
+ const report = await Walker.getReport(symbol, { walkerName: WalkerName$1.DefaultWalker });
895
909
  await mkdir(dumpDir, { recursive: true });
896
910
  await writeFile(filePath, report, "utf-8");
897
911
  console.log(`Saved: ${filePath}`);
898
912
  process.exit(0);
899
913
  return;
900
914
  }
901
- const report = await Walker.getReport(symbol, { walkerName: WALKER_NAME });
915
+ const report = await Walker.getReport(symbol, { walkerName: WalkerName$1.DefaultWalker });
902
916
  console.log(report);
903
917
  process.exit(0);
904
918
  });
@@ -2112,13 +2126,12 @@ const GET_EXT_VARIANTS_FN = (fileName) => {
2112
2126
  const base = ext ? fileName.slice(0, -ext.length) : fileName;
2113
2127
  const result = [];
2114
2128
  {
2115
- result.push(`${base}`);
2116
- result.push(`${base}.cjs`);
2117
- result.push(`${base}.mjs`);
2118
- result.push(`${base}.ts`);
2119
- result.push(`${base}.tsx`);
2120
- result.push(`${base}.js`);
2121
- result.push(`${base}.json`);
2129
+ result.push(path.join(fileName, `index.cjs`));
2130
+ result.push(path.join(fileName, `index.mjs`));
2131
+ result.push(path.join(fileName, `index.ts`));
2132
+ result.push(path.join(fileName, `index.tsx`));
2133
+ result.push(path.join(fileName, `index.js`));
2134
+ result.push(path.join(fileName, `index.json`));
2122
2135
  }
2123
2136
  {
2124
2137
  result.push(`${fileName}`);
@@ -2129,6 +2142,15 @@ const GET_EXT_VARIANTS_FN = (fileName) => {
2129
2142
  result.push(`${fileName}.js`);
2130
2143
  result.push(`${fileName}.json`);
2131
2144
  }
2145
+ {
2146
+ result.push(`${base}`);
2147
+ result.push(`${base}.cjs`);
2148
+ result.push(`${base}.mjs`);
2149
+ result.push(`${base}.ts`);
2150
+ result.push(`${base}.tsx`);
2151
+ result.push(`${base}.js`);
2152
+ result.push(`${base}.json`);
2153
+ }
2132
2154
  return result;
2133
2155
  };
2134
2156
  const GET_RESOLVED_EXT_FN = (filePath) => {
@@ -2486,7 +2508,7 @@ const main$b = async () => {
2486
2508
  if (MODES.some((mode) => values[mode])) {
2487
2509
  return;
2488
2510
  }
2489
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
2511
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n`);
2490
2512
  process.stdout.write("\n");
2491
2513
  process.stdout.write(`Run with --help to see available commands.\n`);
2492
2514
  process.stdout.write("\n");
@@ -3054,7 +3076,7 @@ const main$1 = async () => {
3054
3076
  if (!values.help) {
3055
3077
  return;
3056
3078
  }
3057
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n\n`);
3079
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n\n`);
3058
3080
  process.stdout.write(HELP_TEXT);
3059
3081
  process.exit(0);
3060
3082
  };
@@ -3068,7 +3090,7 @@ const main = async () => {
3068
3090
  if (!values.version) {
3069
3091
  return;
3070
3092
  }
3071
- process.stdout.write(`@backtest-kit/cli ${"6.5.0"}\n`);
3093
+ process.stdout.write(`@backtest-kit/cli ${"6.5.2"}\n`);
3072
3094
  process.exit(0);
3073
3095
  };
3074
3096
  main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backtest-kit/cli",
3
- "version": "6.5.0",
3
+ "version": "6.5.2",
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",
@@ -12,11 +12,11 @@
12
12
  "license": "ISC",
13
13
  "type": "commonjs",
14
14
  "dependencies": {
15
- "@backtest-kit/cli": "^6.5.0",
15
+ "@backtest-kit/cli": "^6.5.2",
16
16
  "@backtest-kit/graph": "^6.5.0",
17
17
  "@backtest-kit/pinets": "^6.5.0",
18
18
  "@backtest-kit/ui": "^6.5.0",
19
- "agent-swarm-kit": "^1.3.0",
19
+ "agent-swarm-kit": "^1.3.2",
20
20
  "backtest-kit": "^6.5.0",
21
21
  "functools-kit": "^1.0.95",
22
22
  "garch": "^1.2.3",