@backtest-kit/cli 19.5.0 → 19.7.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 +48 -3
- package/build/index.mjs +49 -4
- package/docker/package.json +6 -6
- package/package.json +15 -15
- package/template/project/package.mustache +5 -5
package/build/index.cjs
CHANGED
|
@@ -146,6 +146,7 @@ function treeKill(pid, signalOrCallback, callback) {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
const DRAIN_MAX_AWAIT = 250;
|
|
149
|
+
const KILL_SYMBOL = Symbol.for("backtest-kit-kill");
|
|
149
150
|
const drainStream = (stream) => new Promise((resolve) => {
|
|
150
151
|
if (stream.writableLength === 0) {
|
|
151
152
|
stream.write("", () => resolve());
|
|
@@ -164,6 +165,7 @@ const flushStream = (stream) => {
|
|
|
164
165
|
return drainStream(stream);
|
|
165
166
|
};
|
|
166
167
|
const kill = functoolsKit.singleshot(async (code = -1) => {
|
|
168
|
+
globalThis[KILL_SYMBOL] = 1;
|
|
167
169
|
await Promise.race([
|
|
168
170
|
Promise.all([
|
|
169
171
|
flushStream(process.stdout),
|
|
@@ -276,6 +278,18 @@ const timeNow = () => {
|
|
|
276
278
|
class ErrorService {
|
|
277
279
|
constructor() {
|
|
278
280
|
this.handleGlobalError = async (error) => {
|
|
281
|
+
if (BacktestKit.OrderDeletedError.isOrderDeletedError(error)) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (BacktestKit.OrderRejectedError.isOrderRejectedError(error)) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
if (BacktestKit.OrderTransientError.isOrderTransientError(error)) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (BacktestKit.GeneralExpectedError.isGeneralExpectedError(error)) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
279
293
|
const today = new Date();
|
|
280
294
|
const dd = String(today.getDate()).padStart(2, "0");
|
|
281
295
|
const mm = String(today.getMonth() + 1).padStart(2, "0");
|
|
@@ -290,10 +304,34 @@ class ErrorService {
|
|
|
290
304
|
};
|
|
291
305
|
this._listenForError = () => {
|
|
292
306
|
process.on("uncaughtException", (err) => {
|
|
307
|
+
if (BacktestKit.OrderDeletedError.isOrderDeletedError(err)) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
if (BacktestKit.OrderRejectedError.isOrderRejectedError(err)) {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (BacktestKit.OrderTransientError.isOrderTransientError(err)) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (BacktestKit.GeneralExpectedError.isGeneralExpectedError(err)) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
293
319
|
console.log(err);
|
|
294
320
|
this.handleGlobalError(err);
|
|
295
321
|
});
|
|
296
322
|
process.on("unhandledRejection", (err) => {
|
|
323
|
+
if (BacktestKit.OrderDeletedError.isOrderDeletedError(err)) {
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
if (BacktestKit.OrderRejectedError.isOrderRejectedError(err)) {
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
if (BacktestKit.OrderTransientError.isOrderTransientError(err)) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if (BacktestKit.GeneralExpectedError.isGeneralExpectedError(err)) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
297
335
|
console.log(err);
|
|
298
336
|
this.handleGlobalError(err);
|
|
299
337
|
});
|
|
@@ -426,6 +464,10 @@ const SETUP_ADAPTER_FN = () => {
|
|
|
426
464
|
BacktestKit.StateLive.usePersist();
|
|
427
465
|
BacktestKit.StateBacktest.useLocal();
|
|
428
466
|
}
|
|
467
|
+
{
|
|
468
|
+
BacktestKit.DictionaryLive.usePersist();
|
|
469
|
+
BacktestKit.DictionaryBacktest.useLocal();
|
|
470
|
+
}
|
|
429
471
|
{
|
|
430
472
|
BacktestKit.Markdown.useDummy();
|
|
431
473
|
BacktestKit.Log.useJsonl();
|
|
@@ -451,6 +493,7 @@ class SetupUtils {
|
|
|
451
493
|
BacktestKit.Report.enable();
|
|
452
494
|
BacktestKit.Dump.enable();
|
|
453
495
|
BacktestKit.State.enable();
|
|
496
|
+
BacktestKit.Dictionary.enable();
|
|
454
497
|
BacktestKit.Memory.enable();
|
|
455
498
|
}
|
|
456
499
|
if (!cli.configConnectionService.hasConfig("setup.config")) {
|
|
@@ -476,6 +519,7 @@ class SetupUtils {
|
|
|
476
519
|
BacktestKit.Report.disable();
|
|
477
520
|
BacktestKit.Dump.disable();
|
|
478
521
|
BacktestKit.State.disable();
|
|
522
|
+
BacktestKit.Dictionary.disable();
|
|
479
523
|
BacktestKit.Memory.disable();
|
|
480
524
|
}
|
|
481
525
|
{
|
|
@@ -499,6 +543,7 @@ class SetupUtils {
|
|
|
499
543
|
BacktestKit.PersistMemoryAdapter.clear();
|
|
500
544
|
BacktestKit.PersistRecentAdapter.clear();
|
|
501
545
|
BacktestKit.PersistStateAdapter.clear();
|
|
546
|
+
BacktestKit.PersistDictionaryAdapter.clear();
|
|
502
547
|
BacktestKit.PersistSessionAdapter.clear();
|
|
503
548
|
BacktestKit.PersistStrategyAdapter.clear();
|
|
504
549
|
}
|
|
@@ -3695,7 +3740,7 @@ const main$j = async () => {
|
|
|
3695
3740
|
if (MODES.some((mode) => values[mode])) {
|
|
3696
3741
|
return;
|
|
3697
3742
|
}
|
|
3698
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
3743
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n`);
|
|
3699
3744
|
process.stdout.write("\n");
|
|
3700
3745
|
process.stdout.write(`Run with --help to see available commands.\n`);
|
|
3701
3746
|
process.stdout.write("\n");
|
|
@@ -5625,7 +5670,7 @@ const main$1 = async () => {
|
|
|
5625
5670
|
if (!values.help) {
|
|
5626
5671
|
return;
|
|
5627
5672
|
}
|
|
5628
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
5673
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n\n`);
|
|
5629
5674
|
process.stdout.write(HELP_TEXT);
|
|
5630
5675
|
process.exit(0);
|
|
5631
5676
|
};
|
|
@@ -5639,7 +5684,7 @@ const main = async () => {
|
|
|
5639
5684
|
if (!values.version) {
|
|
5640
5685
|
return;
|
|
5641
5686
|
}
|
|
5642
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
5687
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n`);
|
|
5643
5688
|
process.exit(0);
|
|
5644
5689
|
};
|
|
5645
5690
|
main();
|
package/build/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as BacktestKit from 'backtest-kit';
|
|
3
|
-
import { setConfig, listenExit, emitters, Notification, Cron, Recent, Storage, Markdown, Report, Dump, State, Memory, MarkdownWriter, ReportWriter, PersistSignalAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistPartialAdapter, PersistBreakevenAdapter, PersistCandleAdapter, PersistStorageAdapter, PersistNotificationAdapter, PersistLogAdapter, PersistMeasureAdapter, PersistIntervalAdapter, PersistMemoryAdapter, PersistRecentAdapter, PersistStateAdapter, PersistSessionAdapter, PersistStrategyAdapter, Log, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, RecentLive, RecentBacktest, Broker, SessionLive, SessionBacktest, MemoryLive, MemoryBacktest, StateLive, StateBacktest, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, shutdown, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, System, Cache, Interval, alignToInterval, addWalkerSchema, overrideWalkerSchema, Walker, listenDoneWalker, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit, listenOrderFill, listenOrderReject, listenOrderContinue, listenOrderStop, listenSignalNotify, Exchange, runInMockContext, addSweepSchema, Sweep } from 'backtest-kit';
|
|
3
|
+
import { setConfig, listenExit, emitters, OrderDeletedError, OrderRejectedError, OrderTransientError, GeneralExpectedError, Notification, Cron, Recent, Storage, Markdown, Report, Dump, State, Dictionary, Memory, MarkdownWriter, ReportWriter, PersistSignalAdapter, PersistRiskAdapter, PersistScheduleAdapter, PersistPartialAdapter, PersistBreakevenAdapter, PersistCandleAdapter, PersistStorageAdapter, PersistNotificationAdapter, PersistLogAdapter, PersistMeasureAdapter, PersistIntervalAdapter, PersistMemoryAdapter, PersistRecentAdapter, PersistStateAdapter, PersistDictionaryAdapter, PersistSessionAdapter, PersistStrategyAdapter, Log, StorageLive, StorageBacktest, NotificationLive, NotificationBacktest, RecentLive, RecentBacktest, Broker, SessionLive, SessionBacktest, MemoryLive, MemoryBacktest, StateLive, StateBacktest, DictionaryLive, DictionaryBacktest, listExchangeSchema, addExchangeSchema, roundTicks, listFrameSchema, addFrameSchema, listenDoneLive, listenDoneBacktest, shutdown, listenSignal, listStrategySchema, overrideExchangeSchema, Backtest, System, Cache, Interval, alignToInterval, addWalkerSchema, overrideWalkerSchema, Walker, listenDoneWalker, Live, getCandles, checkCandles, warmCandles, listenRisk, listenStrategyCommit, listenOrderFill, listenOrderReject, listenOrderContinue, listenOrderStop, listenSignalNotify, Exchange, runInMockContext, addSweepSchema, Sweep } from 'backtest-kit';
|
|
4
4
|
import { singleshot, sleep, getErrorMessage, errorData, BehaviorSubject, Subject, str, compose, createAwaiter, execpool, queued, randomString, TIMEOUT_SYMBOL, typo, retry, trycatch, ttl, Source, memoize, isObject } from 'functools-kit';
|
|
5
5
|
import { exec, spawn } from 'child_process';
|
|
6
6
|
import fs, { constants, realpathSync } from 'fs';
|
|
@@ -121,6 +121,7 @@ function treeKill(pid, signalOrCallback, callback) {
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
const DRAIN_MAX_AWAIT = 250;
|
|
124
|
+
const KILL_SYMBOL = Symbol.for("backtest-kit-kill");
|
|
124
125
|
const drainStream = (stream) => new Promise((resolve) => {
|
|
125
126
|
if (stream.writableLength === 0) {
|
|
126
127
|
stream.write("", () => resolve());
|
|
@@ -139,6 +140,7 @@ const flushStream = (stream) => {
|
|
|
139
140
|
return drainStream(stream);
|
|
140
141
|
};
|
|
141
142
|
const kill = singleshot(async (code = -1) => {
|
|
143
|
+
globalThis[KILL_SYMBOL] = 1;
|
|
142
144
|
await Promise.race([
|
|
143
145
|
Promise.all([
|
|
144
146
|
flushStream(process.stdout),
|
|
@@ -251,6 +253,18 @@ const timeNow = () => {
|
|
|
251
253
|
class ErrorService {
|
|
252
254
|
constructor() {
|
|
253
255
|
this.handleGlobalError = async (error) => {
|
|
256
|
+
if (OrderDeletedError.isOrderDeletedError(error)) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (OrderRejectedError.isOrderRejectedError(error)) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (OrderTransientError.isOrderTransientError(error)) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (GeneralExpectedError.isGeneralExpectedError(error)) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
254
268
|
const today = new Date();
|
|
255
269
|
const dd = String(today.getDate()).padStart(2, "0");
|
|
256
270
|
const mm = String(today.getMonth() + 1).padStart(2, "0");
|
|
@@ -265,10 +279,34 @@ class ErrorService {
|
|
|
265
279
|
};
|
|
266
280
|
this._listenForError = () => {
|
|
267
281
|
process.on("uncaughtException", (err) => {
|
|
282
|
+
if (OrderDeletedError.isOrderDeletedError(err)) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (OrderRejectedError.isOrderRejectedError(err)) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
if (OrderTransientError.isOrderTransientError(err)) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (GeneralExpectedError.isGeneralExpectedError(err)) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
268
294
|
console.log(err);
|
|
269
295
|
this.handleGlobalError(err);
|
|
270
296
|
});
|
|
271
297
|
process.on("unhandledRejection", (err) => {
|
|
298
|
+
if (OrderDeletedError.isOrderDeletedError(err)) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
if (OrderRejectedError.isOrderRejectedError(err)) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
if (OrderTransientError.isOrderTransientError(err)) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
if (GeneralExpectedError.isGeneralExpectedError(err)) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
272
310
|
console.log(err);
|
|
273
311
|
this.handleGlobalError(err);
|
|
274
312
|
});
|
|
@@ -401,6 +439,10 @@ const SETUP_ADAPTER_FN = () => {
|
|
|
401
439
|
StateLive.usePersist();
|
|
402
440
|
StateBacktest.useLocal();
|
|
403
441
|
}
|
|
442
|
+
{
|
|
443
|
+
DictionaryLive.usePersist();
|
|
444
|
+
DictionaryBacktest.useLocal();
|
|
445
|
+
}
|
|
404
446
|
{
|
|
405
447
|
Markdown.useDummy();
|
|
406
448
|
Log.useJsonl();
|
|
@@ -426,6 +468,7 @@ class SetupUtils {
|
|
|
426
468
|
Report.enable();
|
|
427
469
|
Dump.enable();
|
|
428
470
|
State.enable();
|
|
471
|
+
Dictionary.enable();
|
|
429
472
|
Memory.enable();
|
|
430
473
|
}
|
|
431
474
|
if (!cli.configConnectionService.hasConfig("setup.config")) {
|
|
@@ -451,6 +494,7 @@ class SetupUtils {
|
|
|
451
494
|
Report.disable();
|
|
452
495
|
Dump.disable();
|
|
453
496
|
State.disable();
|
|
497
|
+
Dictionary.disable();
|
|
454
498
|
Memory.disable();
|
|
455
499
|
}
|
|
456
500
|
{
|
|
@@ -474,6 +518,7 @@ class SetupUtils {
|
|
|
474
518
|
PersistMemoryAdapter.clear();
|
|
475
519
|
PersistRecentAdapter.clear();
|
|
476
520
|
PersistStateAdapter.clear();
|
|
521
|
+
PersistDictionaryAdapter.clear();
|
|
477
522
|
PersistSessionAdapter.clear();
|
|
478
523
|
PersistStrategyAdapter.clear();
|
|
479
524
|
}
|
|
@@ -3663,7 +3708,7 @@ const main$j = async () => {
|
|
|
3663
3708
|
if (MODES.some((mode) => values[mode])) {
|
|
3664
3709
|
return;
|
|
3665
3710
|
}
|
|
3666
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
3711
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n`);
|
|
3667
3712
|
process.stdout.write("\n");
|
|
3668
3713
|
process.stdout.write(`Run with --help to see available commands.\n`);
|
|
3669
3714
|
process.stdout.write("\n");
|
|
@@ -5593,7 +5638,7 @@ const main$1 = async () => {
|
|
|
5593
5638
|
if (!values.help) {
|
|
5594
5639
|
return;
|
|
5595
5640
|
}
|
|
5596
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
5641
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n\n`);
|
|
5597
5642
|
process.stdout.write(HELP_TEXT);
|
|
5598
5643
|
process.exit(0);
|
|
5599
5644
|
};
|
|
@@ -5607,7 +5652,7 @@ const main = async () => {
|
|
|
5607
5652
|
if (!values.version) {
|
|
5608
5653
|
return;
|
|
5609
5654
|
}
|
|
5610
|
-
process.stdout.write(`@backtest-kit/cli ${"19.
|
|
5655
|
+
process.stdout.write(`@backtest-kit/cli ${"19.7.0"}\n`);
|
|
5611
5656
|
process.exit(0);
|
|
5612
5657
|
};
|
|
5613
5658
|
main();
|
package/docker/package.json
CHANGED
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
"@types/node": "25.6.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@backtest-kit/cli": "19.
|
|
19
|
-
"@backtest-kit/graph": "19.
|
|
20
|
-
"@backtest-kit/pinets": "19.
|
|
21
|
-
"@backtest-kit/signals": "19.
|
|
22
|
-
"@backtest-kit/ui": "19.
|
|
18
|
+
"@backtest-kit/cli": "19.7.0",
|
|
19
|
+
"@backtest-kit/graph": "19.7.0",
|
|
20
|
+
"@backtest-kit/pinets": "19.7.0",
|
|
21
|
+
"@backtest-kit/signals": "19.7.0",
|
|
22
|
+
"@backtest-kit/ui": "19.7.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": "6.0.0",
|
|
28
|
-
"backtest-kit": "19.
|
|
28
|
+
"backtest-kit": "19.7.0",
|
|
29
29
|
"dayjs": "1.11.20",
|
|
30
30
|
"functools-kit": "5.0.0",
|
|
31
31
|
"garch": "2.0.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backtest-kit/cli",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.7.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": "19.
|
|
67
|
-
"@backtest-kit/ollama": "19.
|
|
68
|
-
"@backtest-kit/pinets": "19.
|
|
69
|
-
"@backtest-kit/signals": "19.
|
|
70
|
-
"@backtest-kit/ui": "19.
|
|
66
|
+
"@backtest-kit/graph": "19.7.0",
|
|
67
|
+
"@backtest-kit/ollama": "19.7.0",
|
|
68
|
+
"@backtest-kit/pinets": "19.7.0",
|
|
69
|
+
"@backtest-kit/signals": "19.7.0",
|
|
70
|
+
"@backtest-kit/ui": "19.7.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": "19.
|
|
78
|
+
"backtest-kit": "19.7.0",
|
|
79
79
|
"glob": "11.0.1",
|
|
80
80
|
"markdown-it": "14.1.1",
|
|
81
81
|
"rimraf": "6.0.1",
|
|
@@ -85,21 +85,21 @@
|
|
|
85
85
|
"ts-morph": "27.0.2",
|
|
86
86
|
"tslib": "2.7.0",
|
|
87
87
|
"typedoc": "0.27.9",
|
|
88
|
-
"pinets": "0.9.
|
|
88
|
+
"pinets": "0.9.34",
|
|
89
89
|
"ccxt": "4.5.39",
|
|
90
90
|
"worker-testbed": "4.0.0"
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
93
93
|
"@babel/plugin-transform-modules-umd": "^7.27.1",
|
|
94
94
|
"@babel/standalone": "^7.29.1",
|
|
95
|
-
"@backtest-kit/graph": "^19.
|
|
96
|
-
"@backtest-kit/ollama": "^19.
|
|
97
|
-
"@backtest-kit/pinets": "^19.
|
|
98
|
-
"@backtest-kit/signals": "^19.
|
|
99
|
-
"@backtest-kit/ui": "^19.
|
|
100
|
-
"pinets": "^0.9.
|
|
95
|
+
"@backtest-kit/graph": "^19.7.0",
|
|
96
|
+
"@backtest-kit/ollama": "^19.7.0",
|
|
97
|
+
"@backtest-kit/pinets": "^19.7.0",
|
|
98
|
+
"@backtest-kit/signals": "^19.7.0",
|
|
99
|
+
"@backtest-kit/ui": "^19.7.0",
|
|
100
|
+
"pinets": "^0.9.34",
|
|
101
101
|
"ccxt": "^4.5.39",
|
|
102
|
-
"backtest-kit": "^19.
|
|
102
|
+
"backtest-kit": "^19.7.0",
|
|
103
103
|
"markdown-it": "^14.1.1",
|
|
104
104
|
"typescript": "^5.0.0"
|
|
105
105
|
},
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"type": "commonjs",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@backtest-kit/cli": "^19.
|
|
17
|
-
"@backtest-kit/graph": "^19.
|
|
18
|
-
"@backtest-kit/pinets": "^19.
|
|
19
|
-
"@backtest-kit/ui": "^19.
|
|
16
|
+
"@backtest-kit/cli": "^19.7.0",
|
|
17
|
+
"@backtest-kit/graph": "^19.7.0",
|
|
18
|
+
"@backtest-kit/pinets": "^19.7.0",
|
|
19
|
+
"@backtest-kit/ui": "^19.7.0",
|
|
20
20
|
"agent-swarm-kit": "^6.0.0",
|
|
21
|
-
"backtest-kit": "^19.
|
|
21
|
+
"backtest-kit": "^19.7.0",
|
|
22
22
|
"functools-kit": "^5.0.0",
|
|
23
23
|
"garch": "^2.0.0",
|
|
24
24
|
"get-moment-stamp": "^3.0.0",
|