gitextract_lfraba5v/ ├── .dockerignore ├── .github/ │ ├── CLA.md │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── bounty_claim.md │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PR_TITLE_GUIDE.md │ ├── PULL_REQUEST_TEMPLATE/ │ │ ├── README.md │ │ ├── backend.md │ │ ├── docs.md │ │ ├── frontend.md │ │ └── general.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── SECURITY.md │ ├── labeler.yml │ ├── labels.yml │ └── workflows/ │ ├── README.md │ ├── docker-build.yml │ ├── pr-checks-comment.yml │ ├── pr-checks-run.yml │ ├── pr-checks.yml │ ├── pr-docker-check.yml │ ├── pr-docker-compose-healthcheck.yml │ ├── pr-go-test-coverage.yml │ ├── pr-template-suggester.yml │ ├── scripts/ │ │ ├── calculate_coverage.py │ │ ├── comment_pr.py │ │ └── requirements.txt │ └── test.yml ├── .gitignore ├── .husky/ │ ├── _/ │ │ └── husky.sh │ └── pre-commit ├── CHANGELOG.md ├── CHANGELOG.zh-CN.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DISCLAIMER.md ├── Dockerfile.railway ├── ENCRYPTION_README.md ├── LICENSE ├── Makefile ├── README.ja.md ├── README.md ├── SECURITY.md ├── api/ │ ├── crypto_handler.go │ ├── errors.go │ ├── handler_ai_model.go │ ├── handler_competition.go │ ├── handler_exchange.go │ ├── handler_klines.go │ ├── handler_order.go │ ├── handler_telegram.go │ ├── handler_trader.go │ ├── handler_trader_config.go │ ├── handler_trader_status.go │ ├── handler_user.go │ ├── handler_wallet.go │ ├── route_registry.go │ ├── server.go │ ├── server_test.go │ ├── strategy.go │ ├── traderid_test.go │ ├── utils.go │ └── utils_test.go ├── auth/ │ └── auth.go ├── config/ │ └── config.go ├── crypto/ │ └── crypto.go ├── docker/ │ ├── Dockerfile.backend │ └── Dockerfile.frontend ├── docker-compose.prod.yml ├── docker-compose.stable.yml ├── docker-compose.yml ├── docs/ │ ├── Git工作流规范.md │ ├── MIGRATION_GUIDE.md │ ├── README.md │ ├── api/ │ │ └── API_REFERENCE.md │ ├── architecture/ │ │ ├── README.md │ │ ├── README.zh-CN.md │ │ ├── STRATEGY_MODULE.md │ │ ├── STRATEGY_MODULE.zh-CN.md │ │ └── X402_STREAMING_PAYMENT.md │ ├── community/ │ │ ├── HOW_TO_MIGRATE_YOUR_PR.md │ │ ├── HOW_TO_MIGRATE_YOUR_PR.zh-CN.md │ │ ├── MIGRATION_ANNOUNCEMENT.md │ │ ├── MIGRATION_ANNOUNCEMENT.zh-CN.md │ │ ├── OFFICIAL_ACCOUNTS.md │ │ ├── PR_COMMENT_TEMPLATE.md │ │ ├── README.md │ │ ├── bounty-aster.md │ │ ├── bounty-guide.md │ │ └── bounty-hyperliquid.md │ ├── getting-started/ │ │ ├── README.md │ │ ├── README.zh-CN.md │ │ ├── aster-api-wallet.md │ │ ├── binance-api.md │ │ ├── blockrun-base-wallet.md │ │ ├── blockrun-sol-wallet.md │ │ ├── bybit-api.md │ │ ├── custom-api.en.md │ │ ├── custom-api.md │ │ ├── hyperliquid-agent-wallet.md │ │ ├── lighter-agent-wallet.md │ │ └── okx-api.md │ ├── guides/ │ │ ├── README.md │ │ ├── README.zh-CN.md │ │ ├── TROUBLESHOOTING.md │ │ ├── TROUBLESHOOTING.zh-CN.md │ │ ├── faq.en.md │ │ └── faq.zh-CN.md │ ├── i18n/ │ │ ├── README.md │ │ ├── en/ │ │ │ ├── PRIVACY POLICY.md │ │ │ └── TERMS OF SERVICE.md │ │ ├── ja/ │ │ │ ├── PRIVACY POLICY.md │ │ │ ├── README.md │ │ │ └── TERMS OF SERVICE.md │ │ ├── ko/ │ │ │ └── README.md │ │ ├── ru/ │ │ │ ├── PRIVACY POLICY.md │ │ │ ├── README.md │ │ │ └── TERMS OF SERVICE.md │ │ ├── uk/ │ │ │ ├── PRIVACY POLICY.md │ │ │ ├── README.md │ │ │ └── TERMS OF SERVICE.md │ │ ├── vi/ │ │ │ └── README.md │ │ └── zh-CN/ │ │ ├── CONTRIBUTING.md │ │ ├── PRIVACY POLICY.md │ │ ├── README.md │ │ └── TERMS OF SERVICE.md │ ├── legal/ │ │ ├── AGPL-VIOLATION-REPORT-ChainOpera-EN.md │ │ └── AGPL-VIOLATION-REPORT-ChainOpera.md │ ├── maintainers/ │ │ ├── PROJECT_MANAGEMENT.md │ │ ├── PROJECT_MANAGEMENT.zh-CN.md │ │ ├── PR_REVIEW_GUIDE.md │ │ ├── PR_REVIEW_GUIDE.zh-CN.md │ │ ├── README.md │ │ ├── README.zh-CN.md │ │ ├── SETUP_GUIDE.md │ │ └── SETUP_GUIDE.zh-CN.md │ ├── market-regime-classification-en.md │ ├── market-regime-classification-zh.md │ ├── plans/ │ │ ├── 2026-01-14-grid-trading-fixes.md │ │ ├── 2026-01-17-grid-market-regime-design.md │ │ ├── 2026-01-17-grid-market-regime-impl.md │ │ ├── 2026-03-06-telegram-agent-redesign.md │ │ └── 2026-03-06-telegram-bot.md │ ├── pnl.md │ ├── prompt-guide.md │ ├── prompt-guide.zh-CN.md │ ├── research/ │ │ └── AI-Trader-Analysis-Report.md │ └── roadmap/ │ ├── README.md │ └── README.zh-CN.md ├── go.mod ├── go.sum ├── hook/ │ ├── README.md │ ├── hooks.go │ ├── http_client_hook.go │ ├── ip_hook.go │ └── trader_hook.go ├── install-stable.sh ├── install.sh ├── kernel/ │ ├── engine.go │ ├── engine_analysis.go │ ├── engine_position.go │ ├── engine_prompt.go │ ├── formatter.go │ ├── grid_engine.go │ ├── prompt_builder.go │ ├── prompt_builder_test.go │ ├── schema.go │ └── validate_test.go ├── logger/ │ ├── config.go │ └── logger.go ├── main.go ├── manager/ │ └── trader_manager.go ├── market/ │ ├── api_client.go │ ├── data.go │ ├── data_indicators.go │ ├── data_klines.go │ ├── data_test.go │ ├── historical.go │ ├── timeframe.go │ └── types.go ├── mcp/ │ ├── client.go │ ├── client_test.go │ ├── config.go │ ├── config_usage_test.go │ ├── context_guard.go │ ├── context_guard_test.go │ ├── examples_test.go │ ├── hooks.go │ ├── interface.go │ ├── intro/ │ │ ├── BUILDER_EXAMPLES.md │ │ ├── BUILDER_PATTERN_BENEFITS.md │ │ ├── LOGRUS_INTEGRATION.md │ │ ├── MIGRATION_GUIDE.md │ │ └── README.md │ ├── logger.go │ ├── mock_test.go │ ├── options.go │ ├── options_test.go │ ├── payment/ │ │ ├── blockrun_base.go │ │ ├── blockrun_sol.go │ │ ├── claw402.go │ │ └── x402.go │ ├── provider/ │ │ ├── claude.go │ │ ├── deepseek.go │ │ ├── gemini.go │ │ ├── grok.go │ │ ├── kimi.go │ │ ├── minimax.go │ │ ├── openai.go │ │ ├── options_test.go │ │ └── qwen.go │ ├── providers.go │ ├── registry.go │ ├── request.go │ ├── request_builder.go │ └── request_builder_test.go ├── nginx/ │ └── nginx.conf ├── provider/ │ ├── alpaca/ │ │ └── kline.go │ ├── coinank/ │ │ ├── base_coin.go │ │ ├── coinank_api/ │ │ │ ├── base_coin.go │ │ │ ├── base_coin_test.go │ │ │ ├── depth_ws.go │ │ │ ├── depth_ws_test.go │ │ │ ├── kline.go │ │ │ ├── kline_test.go │ │ │ ├── kline_ws.go │ │ │ └── kline_ws_test.go │ │ ├── coinank_enum/ │ │ │ ├── exchange.go │ │ │ ├── instrument_agg_sort_by.go │ │ │ ├── interval.go │ │ │ ├── product_type.go │ │ │ ├── side.go │ │ │ ├── sort_type.go │ │ │ └── url.go │ │ ├── coinank_http.go │ │ ├── instrument_agg_rank.go │ │ ├── instruments.go │ │ ├── kline.go │ │ ├── liquidation.go │ │ ├── net_positions.go │ │ └── open_interest.go │ ├── hyperliquid/ │ │ ├── coins.go │ │ ├── kline.go │ │ └── kline_test.go │ ├── nofxos/ │ │ ├── ai500.go │ │ ├── client.go │ │ ├── coin.go │ │ ├── netflow.go │ │ ├── oi.go │ │ ├── price.go │ │ └── util.go │ └── twelvedata/ │ └── kline.go ├── railway/ │ └── start.sh ├── railway.toml ├── security/ │ └── url_validator.go ├── start.sh ├── store/ │ ├── ai_model.go │ ├── decision.go │ ├── driver.go │ ├── equity.go │ ├── exchange.go │ ├── gorm.go │ ├── grid.go │ ├── order.go │ ├── position.go │ ├── position_builder.go │ ├── position_history.go │ ├── position_query.go │ ├── store.go │ ├── strategy.go │ ├── telegram_config.go │ ├── trader.go │ └── user.go ├── telegram/ │ ├── agent/ │ │ ├── agent.go │ │ ├── agent_test.go │ │ ├── apicall.go │ │ ├── manager.go │ │ └── prompt.go │ ├── bot.go │ └── session/ │ └── memory.go ├── telemetry/ │ └── experience.go ├── trader/ │ ├── aster/ │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ ├── trader_positions.go │ │ ├── trader_sync.go │ │ └── trader_test.go │ ├── auto_trader.go │ ├── auto_trader_decision.go │ ├── auto_trader_grid.go │ ├── auto_trader_grid_levels.go │ ├── auto_trader_grid_orders.go │ ├── auto_trader_grid_regime.go │ ├── auto_trader_loop.go │ ├── auto_trader_orders.go │ ├── auto_trader_risk.go │ ├── binance/ │ │ ├── futures.go │ │ ├── futures_account.go │ │ ├── futures_orders.go │ │ ├── futures_positions.go │ │ ├── futures_test.go │ │ ├── order_sync.go │ │ ├── order_sync_test.go │ │ ├── sync_e2e_test.go │ │ └── sync_verify_test.go │ ├── bitget/ │ │ ├── order_sync.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_positions.go │ ├── bybit/ │ │ ├── order_sync.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_positions.go │ ├── exchange_sync_test.go │ ├── gate/ │ │ ├── order_sync.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_test.go │ ├── grid_regime.go │ ├── grid_regime_test.go │ ├── helpers.go │ ├── hyperliquid/ │ │ ├── order_sync.go │ │ ├── sync_test.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ ├── trader_positions.go │ │ ├── trader_race_test.go │ │ └── trader_sync.go │ ├── indodax/ │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_test.go │ ├── interface.go │ ├── kucoin/ │ │ ├── order_sync.go │ │ ├── order_sync_test.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_positions.go │ ├── lighter/ │ │ ├── account.go │ │ ├── integration_test.go │ │ ├── order_sync.go │ │ ├── orders.go │ │ ├── orders_test.go │ │ ├── trader.go │ │ ├── trading.go │ │ └── types.go │ ├── okx/ │ │ ├── order_sync.go │ │ ├── trader.go │ │ ├── trader_account.go │ │ ├── trader_orders.go │ │ └── trader_positions.go │ ├── position_rebuild.go │ ├── position_snapshot.go │ ├── testutil/ │ │ └── test_suite.go │ └── types/ │ └── interface.go └── web/ ├── .dockerignore ├── .husky/ │ └── pre-commit ├── .prettierignore ├── .prettierrc.json ├── CHANGELOG.md ├── README.md ├── eslint.config.js ├── index.html ├── package.json ├── postcss.config.js ├── src/ │ ├── App.tsx │ ├── components/ │ │ ├── auth/ │ │ │ ├── LoginPage.tsx │ │ │ ├── LoginRequiredOverlay.tsx │ │ │ ├── RegisterPage.test.tsx │ │ │ ├── RegisterPage.tsx │ │ │ ├── RegistrationDisabled.test.tsx │ │ │ ├── RegistrationDisabled.tsx │ │ │ └── ResetPasswordPage.tsx │ │ ├── charts/ │ │ │ ├── AdvancedChart.tsx │ │ │ ├── ChartTabs.tsx │ │ │ ├── ChartWithOrders.tsx │ │ │ ├── ChartWithOrdersSimple.tsx │ │ │ ├── ComparisonChart.tsx │ │ │ ├── EquityChart.tsx │ │ │ └── TradingViewChart.tsx │ │ ├── common/ │ │ │ ├── ConfirmDialog.tsx │ │ │ ├── Container.tsx │ │ │ ├── DeepVoidBackground.tsx │ │ │ ├── ExchangeIcons.tsx │ │ │ ├── Header.tsx │ │ │ ├── HeaderBar.tsx │ │ │ ├── MetricTooltip.tsx │ │ │ ├── ModelIcons.tsx │ │ │ ├── PunkAvatar.tsx │ │ │ ├── WebCryptoEnvironmentCheck.tsx │ │ │ └── WhitelistFullPage.tsx │ │ ├── faq/ │ │ │ ├── FAQContent.tsx │ │ │ ├── FAQLayout.tsx │ │ │ ├── FAQSearchBar.tsx │ │ │ └── FAQSidebar.tsx │ │ ├── landing/ │ │ │ ├── AboutSection.tsx │ │ │ ├── AnimatedSection.tsx │ │ │ ├── CommunitySection.tsx │ │ │ ├── FeaturesSection.tsx │ │ │ ├── FooterSection.tsx │ │ │ ├── HeroSection.tsx │ │ │ ├── HowItWorksSection.tsx │ │ │ ├── LoginModal.tsx │ │ │ ├── brand/ │ │ │ │ ├── AgentTerminal.tsx │ │ │ │ ├── BrandFeatures.tsx │ │ │ │ ├── BrandHero.tsx │ │ │ │ ├── BrandStats.tsx │ │ │ │ └── Marquee.tsx │ │ │ └── core/ │ │ │ ├── AgentGrid.tsx │ │ │ ├── DeploymentHub.tsx │ │ │ ├── LiveFeed.tsx │ │ │ └── TerminalHero.tsx │ │ ├── modals/ │ │ │ ├── SetupPage.tsx │ │ │ └── TwoStageKeyModal.tsx │ │ ├── strategy/ │ │ │ ├── CoinSourceEditor.tsx │ │ │ ├── GridConfigEditor.tsx │ │ │ ├── GridRiskPanel.tsx │ │ │ ├── IndicatorEditor.tsx │ │ │ ├── PromptSectionsEditor.tsx │ │ │ ├── PublishSettingsEditor.tsx │ │ │ └── RiskControlEditor.tsx │ │ ├── trader/ │ │ │ ├── AITradersPage.tsx │ │ │ ├── CompetitionPage.test.tsx │ │ │ ├── CompetitionPage.tsx │ │ │ ├── ConfigStatusGrid.tsx │ │ │ ├── DecisionCard.tsx │ │ │ ├── ExchangeConfigModal.tsx │ │ │ ├── ModelCard.tsx │ │ │ ├── ModelConfigModal.tsx │ │ │ ├── ModelStepIndicator.tsx │ │ │ ├── PositionHistory.tsx │ │ │ ├── TelegramConfigModal.tsx │ │ │ ├── Tooltip.tsx │ │ │ ├── TraderConfigModal.tsx │ │ │ ├── TraderConfigViewModal.tsx │ │ │ ├── TradersList.tsx │ │ │ ├── model-constants.ts │ │ │ └── utils.ts │ │ └── ui/ │ │ ├── alert-dialog.tsx │ │ └── input.tsx │ ├── constants/ │ │ └── branding.ts │ ├── contexts/ │ │ ├── AuthContext.tsx │ │ └── LanguageContext.tsx │ ├── hooks/ │ │ ├── useCounterAnimation.ts │ │ ├── useGitHubStats.ts │ │ └── useSystemConfig.ts │ ├── i18n/ │ │ ├── strategy-translations.ts │ │ └── translations.ts │ ├── index.css │ ├── lib/ │ │ ├── api/ │ │ │ ├── config.ts │ │ │ ├── data.ts │ │ │ ├── helpers.ts │ │ │ ├── index.ts │ │ │ ├── strategies.ts │ │ │ ├── telegram.ts │ │ │ └── traders.ts │ │ ├── apiGuard.test.ts │ │ ├── clipboard.ts │ │ ├── cn.ts │ │ ├── config.ts │ │ ├── crypto.ts │ │ ├── httpClient.ts │ │ ├── notify.tsx │ │ ├── registrationToggle.test.ts │ │ └── text.ts │ ├── main.tsx │ ├── pages/ │ │ ├── DataPage.tsx │ │ ├── FAQPage.tsx │ │ ├── LandingPage.tsx │ │ ├── PageNotFound.tsx │ │ ├── SettingsPage.tsx │ │ ├── StrategyMarketPage.tsx │ │ ├── StrategyStudioPage.tsx │ │ └── TraderDashboardPage.tsx │ ├── stores/ │ │ ├── index.ts │ │ ├── tradersConfigStore.ts │ │ └── tradersModalStore.ts │ ├── test/ │ │ └── setup.ts │ ├── types/ │ │ ├── config.ts │ │ ├── index.ts │ │ ├── strategy.ts │ │ └── trading.ts │ ├── utils/ │ │ ├── format.ts │ │ ├── indicators.ts │ │ └── traderColors.ts │ └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── vitest.config.ts