Files
trumpsignal-monorepo/migration/inventory.json
T

912 lines
25 KiB
JSON

{
"sources": {
"frontend": {
"repo": "https://gitea.entroia.com/Z/trumpsignal-frontend",
"commit": "8534d905897a972137d7a816649190bb26534863"
},
"backend": {
"repo": "https://gitea.entroia.com/Z/trumpsignal-backend",
"commit": "1ab553f778b1b012d76e1d1c2496eb64bb0f6002"
}
},
"backend": [
{
"file": "app/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/api/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/api/dev.py",
"symbols": [
"insert_fake_post",
"inject_fake_signal",
"trigger_reanalyze",
"reanalyze_status",
"trigger_price_backfill",
"backtest_one_post",
"toggle_paper_mode",
"backtest_batch_route"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/dev.ts"]
},
{
"file": "app/api/funding_reversal.py",
"symbols": ["snapshot"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/signals.ts"]
},
{
"file": "app/api/funding_signal.py",
"symbols": ["_require_ingest_key", "status", "toggle", "history"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/signals.ts"]
},
{
"file": "app/api/kol.py",
"symbols": [
"_verify_admin_key",
"_parse_tickers",
"_summary_dto",
"_detail_dto",
"list_kol_posts",
"get_kol_post",
"kol_digest",
"_wallet_dto",
"_snapshot_dto",
"_change_dto",
"list_kol_wallets",
"add_kol_wallet",
"get_wallet_snapshots",
"list_holding_changes",
"_divergence_dto",
"list_divergence",
"trigger_divergence_scan"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/kol.ts"]
},
{
"file": "app/api/macro.py",
"symbols": ["_row_to_dict", "get_snapshot", "get_history"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/macro.ts"]
},
{
"file": "app/api/performance.py",
"symbols": ["get_performance"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/accounts.ts"]
},
{
"file": "app/api/positions.py",
"symbols": [
"OpenPosition",
"OpenPositionsResponse",
"TodayStatsResponse",
"_enrich",
"get_open_positions",
"get_today_stats",
"CloseTradeResponse",
"manual_close",
"GrowResponse",
"set_trade_grow",
"HLPositionItem",
"HLPositionsResponse",
"list_hl_positions_endpoint",
"AdoptResponse",
"adopt_position_endpoint",
"ReleaseResponse",
"release_trade_endpoint"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/positions.ts"]
},
{
"file": "app/api/posts.py",
"symbols": [
"_direction_correct",
"_post_to_schema",
"get_posts",
"get_posts_page",
"signal_accuracy",
"get_post"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/posts.ts"]
},
{
"file": "app/api/prices.py",
"symbols": ["fetch_binance_candles", "get_prices"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/signals.ts"]
},
{
"file": "app/api/scanners.py",
"symbols": [
"ScannerSummary",
"ScannersResponse",
"ToggleResponse",
"_require_subscribed_signer",
"list_scanners",
"toggle_scanner",
"kill_switch",
"revive_all"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/signals.ts"]
},
{
"file": "app/api/signals.py",
"symbols": [
"SignalIngestRequest",
"SignalIngestResponse",
"_verify_ingest_key",
"ingest_signal",
"list_sources"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/signals.ts"]
},
{
"file": "app/api/subscribe.py",
"symbols": ["subscribe"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/accounts.ts"]
},
{
"file": "app/api/telegram.py",
"symbols": [
"_require_tg_configured",
"SignedEnvelope",
"PrefsBody",
"StatusResponse",
"InitResponse",
"_build_status",
"status",
"init_binding",
"update_preferences",
"unbind",
"test"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/telegram.ts"]
},
{
"file": "app/api/trades.py",
"symbols": ["_trade_to_schema", "get_trades"],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/accounts.ts"]
},
{
"file": "app/api/user.py",
"symbols": [
"verify_hl_api_key_can_trade",
"_trade_to_schema",
"set_hl_api_key",
"get_user_public",
"get_user",
"set_user_settings",
"set_manual_window",
"set_auto_trade"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/routes/accounts.ts"]
},
{
"file": "app/config.py",
"symbols": ["Settings"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/config.ts"]
},
{
"file": "app/database.py",
"symbols": ["get_db"],
"status": "ported-source-only",
"replacement": ["packages/database/src/index.ts"]
},
{
"file": "app/main.py",
"symbols": [
"_acquire_singleton_lock",
"lifespan",
"health",
"health_deep",
"ws_prices",
"ws_posts"
],
"status": "ported-source-only",
"replacement": ["apps/api/src/main.ts", "apps/api/src/app.ts", "apps/worker/src/main.ts"]
},
{
"file": "app/models.py",
"symbols": [
"utcnow",
"iso_utc",
"Post",
"Candle",
"BotTrade",
"Subscription",
"KolPost",
"KolWallet",
"KolHoldingSnapshot",
"KolHoldingChange",
"KolDivergence",
"TelegramBinding",
"MacroSnapshot"
],
"status": "ported-source-only",
"replacement": [
"packages/database/src/schema.ts",
"packages/database/migrations/0001_legacy_027_baseline.sql"
]
},
{
"file": "app/ratelimit.py",
"symbols": ["client_ip_key"],
"status": "ported-source-only",
"replacement": [
"apps/api/src/app.ts",
"apps/api/src/routes/posts.ts",
"apps/api/src/routes/signals.ts"
]
},
{
"file": "app/schemas.py",
"symbols": [
"PriceImpact",
"TrumpPost",
"PostFilterCounts",
"SourceCount",
"PostListResponse",
"Candle",
"BotTrade",
"BotPerformance",
"SignedEnvelope",
"SubscribeRequest",
"SubscribeResponse",
"SetApiKeyRequest",
"SetApiKeyResponse",
"UserSettings",
"SetSettingsRequest",
"UserResponse"
],
"status": "ported-source-only",
"replacement": [
"packages/contracts/src/index.ts",
"apps/api/src/routes/accounts.ts",
"apps/api/src/routes/positions.ts",
"packages/backend/src/pipeline.ts"
]
},
{
"file": "app/scrapers/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/scrapers/trumpstruth.py",
"symbols": ["_fetch_feed", "_to_cnn_shape", "poll_trumpstruth"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/truth-feeds.ts", "packages/backend/src/pipeline.ts"]
},
{
"file": "app/scrapers/truth_social.py",
"symbols": [
"_strip_html",
"_parse_dt",
"_fetch_archive",
"_known_external_ids",
"_process_entry",
"_post_to_ws_payload",
"dispatch_post",
"poll_truth_social",
"backfill_history"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/truth-feeds.ts", "packages/backend/src/pipeline.ts"]
},
{
"file": "app/services/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/services/adoption.py",
"symbols": [
"_wallet_adopt_lock",
"AdoptionError",
"HLPositionView",
"list_hl_positions",
"AdoptionResult",
"adopt_position",
"_adopt_locked",
"release_management"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/analysis.py",
"symbols": [
"_fallback",
"_use_anthropic",
"_get_anthropic_client",
"_get_client",
"_liquidity_note",
"analyze_post"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/analysis.ts"]
},
{
"file": "app/services/backtest.py",
"symbols": [
"BacktestResult",
"BacktestParams",
"fetch_binance_1m",
"_asset_to_symbol",
"simulate_exit",
"backtest_post",
"backtest_batch"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/operations.ts"]
},
{
"file": "app/services/binance.py",
"symbols": ["_process_message", "fetch_historical", "run_binance_ws"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/price-feeds.ts"]
},
{
"file": "app/services/bot_engine.py",
"symbols": [
"_broadcast_trade_alert",
"_wallet_lock",
"_lock_for",
"_confidence_floor_for",
"_should_apply_schedule",
"process_post",
"_is_in_active_window",
"_execute_for_subscriber",
"partial_derisk",
"pyramid_add",
"close_and_finalize",
"_close_after_hold",
"_time_stop_check"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/bottom_indicators.py",
"symbols": [
"_closes",
"_sma",
"_ema",
"coin_age_days",
"ahr999",
"below_200wma",
"pi_cycle_bottom",
"trend_confirmed",
"BottomConfluence",
"bottom_confluence"
],
"status": "ported-source-only",
"replacement": ["packages/core/src/bottom-indicators.ts"]
},
{
"file": "app/services/circuit_breaker.py",
"symbols": ["_trades_for_system", "check_and_trip", "is_tripped", "clear_trip"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/crypto.py",
"symbols": [
"_check_kek",
"_derive_v1_key",
"_derive_v2_key",
"_cipher_v1",
"_cipher_v2",
"encrypt_api_key",
"decrypt_api_key",
"is_current_format"
],
"status": "ported-source-only",
"replacement": ["packages/core/src/crypto.ts"]
},
{
"file": "app/services/entry_filter.py",
"symbols": [
"_significant_tokens",
"_topic_keywords_in",
"has_action_marker",
"has_future_tense_blocker",
"is_duplicate_of_recent",
"passes_entry_filter",
"passes_entry_filter_sync"
],
"status": "ported-source-only",
"replacement": ["packages/core/src/entry-filter.ts"]
},
{
"file": "app/services/funding_signal.py",
"symbols": [
"_load_persisted_state",
"_persist_state",
"set_enabled",
"is_enabled",
"get_recent_signals",
"get_status",
"_fetch_klines",
"_parse_candle",
"_compute_signal",
"_btc_trend",
"poll_funding_signal"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/state.ts", "packages/backend/src/breakout.ts"]
},
{
"file": "app/services/hl_price_feed.py",
"symbols": ["run_hl_price_feed", "_poll_loop", "_tick"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/price-feeds.ts"]
},
{
"file": "app/services/http_client.py",
"symbols": ["get_client", "aclose"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/http.ts"]
},
{
"file": "app/services/hyperliquid.py",
"symbols": ["HyperliquidTrader"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/hyperliquid.ts"]
},
{
"file": "app/services/kol_analysis.py",
"symbols": [
"_use_anthropic",
"_anth",
"_oai",
"_truncate",
"_parse_json",
"extract_kol_signal",
"_derive_tier"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/analysis.ts"]
},
{
"file": "app/services/kol_divergence.py",
"symbols": ["_post_for_divergence", "_classify", "run_divergence_scan"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/kol.ts"]
},
{
"file": "app/services/kol_onchain.py",
"symbols": [
"_get_hl_prices",
"_coingecko_prices_by_symbol",
"_coingecko_prices_by_contract",
"_fetch_hl_positions",
"_fetch_eth_holdings",
"_diff_holdings",
"_snapshot_wallet",
"run_hl_poll",
"run_eth_poll",
"run_onchain_poll",
"seed_wallets"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/kol-onchain.ts"]
},
{
"file": "app/services/kol_substack.py",
"symbols": [
"_html_to_text",
"_entry_body",
"_parse_pub",
"_fetch_feed",
"_ingest_kol",
"run_substack_poll"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/kol.ts"]
},
{
"file": "app/services/kol_x.py",
"symbols": [
"_parse_created_at",
"_fetch_tweet_page",
"_iter_tweet_pages",
"_ingest_kol_x",
"run_x_poll"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/kol.ts"]
},
{
"file": "app/services/macro/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/services/macro/fetchers.py",
"symbols": [
"_none_on_fail",
"_utc_midnight_ms",
"_drop_in_progress_daily_klines",
"_latest_closed_daily_point",
"_parse_farside_latest_total",
"fetch_ahr999",
"fetch_altcoin_season_index",
"fetch_fear_greed",
"fetch_btc_dominance",
"fetch_eth_btc_ratio",
"fetch_stablecoin_supply",
"fetch_etf_flow",
"fetch_btc_open_interest"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/macro.ts"]
},
{
"file": "app/services/macro/poll.py",
"symbols": ["run_macro_poll"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/macro.ts"]
},
{
"file": "app/services/macro/scoring.py",
"symbols": [
"_ahr999_signal",
"_altseason_signal",
"_fear_greed_signal",
"_btc_dominance_signal",
"_eth_btc_signal",
"_stablecoin_supply_signal",
"_etf_flow_signal",
"_open_interest_signal",
"compute_composite"
],
"status": "ported-source-only",
"replacement": ["packages/core/src/macro-scoring.ts"]
},
{
"file": "app/services/market_data.py",
"symbols": [
"CandleSource",
"BinanceCandles",
"HyperliquidCandles",
"drop_in_progress_bar",
"for_asset"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/market-data.ts"]
},
{
"file": "app/services/onchain_data.py",
"symbols": [
"_load_disk_cache",
"_save_disk_cache",
"BitcoinDataClient",
"GlassnodeClient",
"get_onchain_client"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/onchain-data.ts"]
},
{
"file": "app/services/price_backfill.py",
"symbols": ["_fetch_klines", "_price_at", "_pct_change", "backfill_price_impact"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/operations.ts"]
},
{
"file": "app/services/price_impact_monitor.py",
"symbols": [
"TrackedPost",
"register_post",
"unregister",
"get_live_impact",
"on_price_tick",
"_write_window_to_db"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/pipeline.ts"]
},
{
"file": "app/services/price_store.py",
"symbols": ["PriceStore"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/price-store.ts"]
},
{
"file": "app/services/reanalyze.py",
"symbols": ["get_state", "reanalyze_unscored"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/operations.ts"]
},
{
"file": "app/services/reconciler.py",
"symbols": ["_reconcile_wallet", "reconcile_all_once"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/recovery.py",
"symbols": ["rehydrate_open_trades"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/regime_filter.py",
"symbols": [
"_atr_proxy",
"is_volatility_contracted",
"is_not_already_moving",
"is_not_thin_liquidity_hour",
"is_btc_not_countertrend",
"passes_regime_filter",
"calculate_size_multiplier",
"is_in_manual_window"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/regime.ts"]
},
{
"file": "app/services/scanner_state.py",
"symbols": [
"ScannerState",
"register",
"is_enabled",
"set_enabled",
"disable_all",
"enable_all",
"get_all",
"record_run",
"last_signal_at",
"in_cooldown"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/state.ts"]
},
{
"file": "app/services/scanners/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/services/scanners/_archive/vcp_breakout.py",
"symbols": [
"_atr_proxy",
"evaluate_breakout",
"_confidence_from",
"_emit_signal",
"scan_once"
],
"status": "inactive-archive-not-enabled",
"note": "原部署未启用的归档实验;保持不启用,历史源码留在原仓库。",
"replacement": []
},
{
"file": "app/services/scanners/_archive/weekly_rsi_reversal.py",
"symbols": ["calculate_rsi", "evaluate_rsi_reversal", "_emit_signal", "scan_once"],
"status": "inactive-archive-not-enabled",
"note": "原部署未启用的归档实验;保持不启用,历史源码留在原仓库。",
"replacement": []
},
{
"file": "app/services/scanners/btc_bottom_reversal.py",
"symbols": ["evaluate_once", "_summary", "_emit_signal", "scan_once"],
"status": "ported-source-only",
"replacement": ["packages/backend/src/scanners.ts", "packages/core/src/bottom-indicators.ts"]
},
{
"file": "app/services/scanners/funding_reversal.py",
"symbols": [
"_detect_cadence_hours",
"evaluate_funding_reversal",
"_fetch_inputs",
"_summary",
"_emit_signal",
"scan_once",
"get_current_snapshot"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/scanners.ts", "packages/core/src/funding-reversal.ts"]
},
{
"file": "app/services/scanners/sma_reclaim.py",
"symbols": ["evaluate_sma_reclaim"],
"status": "ported-source-only",
"replacement": ["packages/core/src/sma-reclaim.ts"]
},
{
"file": "app/services/signal_categories.py",
"symbols": [
"is_system_2",
"is_supported_trading_source",
"system2_display_name",
"system2_min_confidence",
"CategoryExit",
"get_exit_profile",
"sys2_normalize_mode",
"sys2_effective_leverage",
"sys2_protective_stop_pct",
"sys2_approx_liquidation_pct",
"sys2_addon_ladder",
"sys2_peak_trail",
"sys2_derisk_ladder",
"get_stop_ladder",
"system2_size_multiplier"
],
"status": "ported-source-only",
"replacement": ["packages/core/src/signal-categories.ts"]
},
{
"file": "app/services/signed_request.py",
"symbols": [
"canonical_body_hash",
"build_message",
"_cache_put",
"verify_signed_request",
"verify_signed_request_any",
"SignedReadCreds",
"signed_read_creds",
"optional_signed_read_creds"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/auth.ts", "packages/core/src/signed-request.ts"]
},
{
"file": "app/services/telegram.py",
"symbols": [
"_pref_column_for_source",
"_is_in_mute_window",
"_signal_emoji",
"_source_label",
"format_post",
"format_trump_mention",
"format_public_post",
"send_message",
"edit_message",
"answer_callback",
"_dispatch",
"notify_signal",
"send_test_message"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/telegram.ts"]
},
{
"file": "app/services/telegram_bot.py",
"symbols": [
"_purge_expired_codes",
"issue_binding_code",
"_consume_code",
"_ensure_binding",
"_cmd_start",
"_set_pref",
"_parse_on_off",
"_cmd_toggle",
"_cmd_conf",
"_cmd_quiet",
"_cmd_stop",
"_cmd_status",
"_cmd_digest",
"_cmd_digest_time",
"_wallet_for_chat",
"_cmd_adopt",
"_send_mode_picker",
"_cmd_release",
"_confirm_release",
"_cmd_test",
"_handle_message",
"_handle_callback",
"run_bot_loop",
"unbind_wallet"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/telegram.ts"]
},
{
"file": "app/services/telegram_digest.py",
"symbols": [
"MacroBlock",
"KolBlock",
"TrumpBlock",
"GlobalDigest",
"build_global_digest",
"_headline",
"format_digest",
"_build_user_state",
"send_daily_digest",
"send_preview_for"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/telegram.ts"]
},
{
"file": "app/services/tp_sl_monitor.py",
"symbols": [
"WatchedTrade",
"register_trade",
"unregister",
"on_price_tick",
"_fire_partial",
"_fire_pyramid",
"_persist_peak",
"_fire_close"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/engine.ts"]
},
{
"file": "app/services/x_analysis.py",
"symbols": [
"_use_anthropic",
"_anth",
"_oai",
"_liquidity_note",
"_follower_tier",
"analyze_x_post"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/analysis.ts"]
},
{
"file": "app/services/x_poster.py",
"symbols": [
"_creds_ok",
"_under_daily_cap",
"_record_sent",
"_percent",
"_oauth_header",
"_post_tweet",
"_recent_hit_rate",
"_dir_word",
"format_prediction",
"format_followup",
"_x_dispatch",
"_followup_later",
"notify_x_signal"
],
"status": "ported-source-only",
"replacement": ["packages/backend/src/x-poster.ts"]
},
{
"file": "app/ws/__init__.py",
"symbols": [],
"status": "namespace-replaced",
"replacement": []
},
{
"file": "app/ws/manager.py",
"symbols": ["ConnectionManager"],
"status": "ported-source-only",
"replacement": [
"packages/backend/src/events.ts",
"packages/backend/src/bridge.ts",
"apps/api/src/app.ts"
]
}
]
}