❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL src/mastra/super/skills/backtest-runner/skill.spec.ts [ src/mastra/super/skills/backtest-runner/skill.spec.ts ] Error: No test found in src/mastra/super/skills/backtest-runner/skill.spec.ts in line 119 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 1 skipped (1) Tests 2 skipped (2) Start at 14:55:20 Duration 624ms (transform 148ms, setup 353ms, import 158ms, tests 0ms, environment 0ms) ~/Документы/Work/santiment-ai/strategy-agent master* ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 ~/Документы/Work/santiment-ai/strategy-agent master* ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [Isolation] Environment prepared for run 861f6d55-71d7-4fb7-bec3-1852f3f713ed stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [RunBacktest] Enforcing config overrides: { trading_mode: 'futures', margin_mode: 'isolated', dataformat_ohlcv: 'json', dataformat_trades: 'json' } stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [DataFetcher] Downloading 1 pairs... stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [DataFetcher] Completed. Processed: 1 stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker Checking/Rebuilding Docker image "mastra-freqtrade:latest"... Docker command: cd /home/dex/Документы/Work/santiment-ai/strategy-agent/docker/freqtrade && docker build -t mastra-freqtrade:latest . stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker Sending build context to Docker daemon 221.2kB Step 1/7 : FROM freqtradeorg/freqtrade:stable ---> dfd23153a7f2 Step 2/7 : COPY requirements.txt /freqtrade/ ---> Using cache ---> 2d950a4622c1 Step 3/7 : RUN pip install --no-cache-dir -r /freqtrade/requirements.txt ---> Using cache ---> 298f67123821 Step 4/7 : COPY add_pair.py /freqtrade/add_pair.py ---> Using cache ---> e3274112fd45 Step 5/7 : COPY pairs.json /freqtrade/pairs.json ---> Using cache ---> d4fc1270df5a Step 6/7 : COPY exchange.py /freqtrade/freqtrade/exchange/exchange.py ---> Using cache ---> 04e7579357c7 Step 7/7 : RUN python /freqtrade/add_pair.py ---> Using cache ---> 2d26f279b9b1 Successfully built 2d26f279b9b1 Successfully tagged mastra-freqtrade:latest Docker image "mastra-freqtrade:latest" is ready ✅ stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [DOCKER CMD] docker run --rm --memory 1g -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/freqtrade_runs/861f6d55-71d7-4fb7-bec3-1852f3f713ed:/freqtrade/user_data" -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/market_cache/binance:/freqtrade/user_data/data/binance" mastra-freqtrade:latest backtesting --config /freqtrade/user_data/config.json --strategy Strategy --timerange 20251201-20251230 --export trades --data-format-ohlcv json --logfile /freqtrade/user_data/logs/freqtrade.log stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker !!!!!!!!!!! { success: true, runId: '861f6d55-71d7-4fb7-bec3-1852f3f713ed', logTail: 'Result for strategy Strategy\n' + ' BACKTESTING REPORT \n' + '┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + '┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + '│ BTC/USDT:USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + ' LEFT OPEN TRADES REPORT \n' + '┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + '┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + ' ENTER TAG STATS \n' + '┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + '┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + '┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + ' EXIT REASON STATS \n' + '┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + '┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + '┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + ' MIXED TAG STATS \n' + '┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + '┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + '┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + '│ TOTAL │ │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + '└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + 'No trades made. Your starting balance was 1000 USDT, and your stake was 100 USDT.\n' + '\n' + 'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' + ' STRATEGY SUMMARY \n' + '┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n' + '┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' + '┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n' + '│ Strategy │ 0 │ 0.00 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ 0 USDT 0.00% │\n' + '└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────┘\n' + '2026-01-09 11:56:06,275 - freqtrade - INFO - freqtrade 2025.12\n' + '2026-01-09 11:56:06,680 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' + '2026-01-09 11:56:08,183 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' + '2026-01-09 11:56:08,186 - freqtrade.loggers - INFO - Enabling colorized output.\n' + '2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Logfile configured\n' + '2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Verbosity set to 0\n' + '2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' + '2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' + '2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' + '2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' + '2026-01-09 11:56:08,203 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' + '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' + '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' + '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' + '2026-01-09 11:56:08,206 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' + '2026-01-09 11:56:08,217 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade development team.\n' + '2026-01-09 11:56:08,218 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.\n' + '2026-01-09 11:56:08,218 - freqtrade.configuration.config_validation - INFO - Validating configuration ...\n' + '2026-01-09 11:56:08,220 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode\n' + '2026-01-09 11:56:08,220 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled\n' + '2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29\n' + "2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" + "2026-01-09 11:56:08,230 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" + '2026-01-09 11:56:08,245 - freqtrade.exchange.exchange - INFO - Using Exchange "Binance"\n' + "2026-01-09 11:56:10,655 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...\n" + "2026-01-09 11:56:10,687 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...\n" + '2026-01-09 11:56:10,688 - freqtrade.strategy.hyper - INFO - Found no parameter file.\n' + "2026-01-09 11:56:10,688 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.\n" + "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.\n" + "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.\n" + "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}\n" + '2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d\n' + '2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05\n' + '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False\n' + '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0\n' + '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False\n' + '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False\n' + '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True\n' + "2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, \n" + "'stoploss_on_exchange_interval': 60}\n" + "2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}\n" + '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT\n' + '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100\n' + '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10\n' + '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True\n' + '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False\n' + '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False\n' + '2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0\n' + '2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False\n' + '2026-01-09 11:56:1'... 23187 more characters } [Test Success] Run ID: 861f6d55-71d7-4fb7-bec3-1852f3f713ed stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker) [Test Info] Artifacts preserved for threadId: copytrading-test-1767959762677 ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 18216ms ↓ Backtest Runner: Full Integration Test (Real Docker) (1) ↓ should successfully prepare env, fetch data, and run freqtrade via docker ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1) ✓ should successfully prepare env, fetch data, and run freqtrade via docker 18215ms Test Files 1 passed (1) Tests 1 passed | 1 skipped (2) Start at 14:56:02 Duration 18.73s (transform 102ms, setup 291ms, import 96ms, tests 18.22s, environment 0ms) ~/Документы/Work/santiment-ai/strategy-agent master* 19s ❯