Localize agent labels and harden frontend connection status
This commit is contained in:
12
.gitignore
vendored
12
.gitignore
vendored
@@ -44,9 +44,19 @@ ENV/
|
||||
|
||||
# Frontend
|
||||
node_modules
|
||||
/package.json
|
||||
/package-lock.json
|
||||
|
||||
# Outputs
|
||||
outputs/
|
||||
/production/
|
||||
/smoke_test/
|
||||
/smoke_live_mock/
|
||||
|
||||
# Local tooling state
|
||||
/.omc/
|
||||
/.pydeps/
|
||||
/referance/
|
||||
|
||||
# Data files
|
||||
backend/data/ret_data/
|
||||
@@ -60,4 +70,4 @@ backend/data/ret_data/
|
||||
*.sqlite3
|
||||
|
||||
*.ipynb
|
||||
*.log
|
||||
*.log
|
||||
|
||||
@@ -5,38 +5,38 @@
|
||||
# Agent configuration for dashboard display
|
||||
AGENT_CONFIG = {
|
||||
"portfolio_manager": {
|
||||
"name": "Portfolio Manager",
|
||||
"role": "Portfolio Manager",
|
||||
"name": "投资经理",
|
||||
"role": "投资经理",
|
||||
"avatar": "pm",
|
||||
"is_team_role": True,
|
||||
},
|
||||
"risk_manager": {
|
||||
"name": "Risk Manager",
|
||||
"role": "Risk Manager",
|
||||
"name": "风控经理",
|
||||
"role": "风控经理",
|
||||
"avatar": "risk",
|
||||
"is_team_role": True,
|
||||
},
|
||||
"sentiment_analyst": {
|
||||
"name": "Sentiment Analyst",
|
||||
"role": "Sentiment Analyst",
|
||||
"name": "情绪分析师",
|
||||
"role": "情绪分析师",
|
||||
"avatar": "sentiment",
|
||||
"is_team_role": False,
|
||||
},
|
||||
"technical_analyst": {
|
||||
"name": "Technical Analyst",
|
||||
"role": "Technical Analyst",
|
||||
"name": "技术分析师",
|
||||
"role": "技术分析师",
|
||||
"avatar": "technical",
|
||||
"is_team_role": False,
|
||||
},
|
||||
"fundamentals_analyst": {
|
||||
"name": "Fundamentals Analyst",
|
||||
"role": "Fundamentals Analyst",
|
||||
"name": "基本面分析师",
|
||||
"role": "基本面分析师",
|
||||
"avatar": "fundamentals",
|
||||
"is_team_role": False,
|
||||
},
|
||||
"valuation_analyst": {
|
||||
"name": "Valuation Analyst",
|
||||
"role": "Valuation Analyst",
|
||||
"name": "估值分析师",
|
||||
"role": "估值分析师",
|
||||
"avatar": "valuation",
|
||||
"is_team_role": False,
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@ TICKERS=AAPL,MSFT,GOOGL,NVDA,TSLA,META,AMZN
|
||||
# financial datasets: https://www.financialdatasets.ai/
|
||||
|
||||
FIN_DATA_SOURCE = # Preferred source: finnhub / financial_datasets / yfinance / local_csv | 首选数据源
|
||||
ENABLED_DATA_SOURCES = # Optional allowlist, comma-separated, e.g. yfinance,finnhub,financial_datasets,local_csv | 可启用数据源列表
|
||||
ENABLED_DATA_SOURCES = # Optional allowlist, comma-separated, e.g. financial_datasets,finnhub,yfinance,local_csv | 可启用数据源列表
|
||||
FINANCIAL_DATASETS_API_KEY= #required | 必填
|
||||
FINNHUB_API_KEY= #optional | 可选
|
||||
|
||||
|
||||
@@ -217,6 +217,11 @@ export default function LiveTradingApp() {
|
||||
};
|
||||
|
||||
const handleEventInternal = (evt) => {
|
||||
if (evt?.type && evt.type !== 'pong') {
|
||||
setConnectionStatus('connected');
|
||||
setIsConnected(true);
|
||||
}
|
||||
|
||||
// Helper: Update tickers from realtime prices
|
||||
const updateTickersFromPrices = (realtimePrices) => {
|
||||
try {
|
||||
@@ -263,10 +268,16 @@ export default function LiveTradingApp() {
|
||||
// Connection events
|
||||
system: (e) => {
|
||||
console.log('[System]', e.content);
|
||||
if (e.content.includes('Connected')) {
|
||||
if (
|
||||
e.content.includes('Connected')
|
||||
|| e.content.includes('已连接')
|
||||
) {
|
||||
setConnectionStatus('connected');
|
||||
setIsConnected(true);
|
||||
} else if (e.content.includes('Disconnected')) {
|
||||
} else if (
|
||||
e.content.includes('Disconnected')
|
||||
|| e.content.includes('断开')
|
||||
) {
|
||||
setConnectionStatus('disconnected');
|
||||
setIsConnected(false);
|
||||
}
|
||||
@@ -284,6 +295,8 @@ export default function LiveTradingApp() {
|
||||
const state = e.state;
|
||||
if (!state) return;
|
||||
|
||||
setConnectionStatus('connected');
|
||||
setIsConnected(true);
|
||||
setSystemStatus(state.status || 'initializing');
|
||||
setCurrentDate(state.current_date);
|
||||
|
||||
@@ -385,6 +398,8 @@ export default function LiveTradingApp() {
|
||||
return;
|
||||
}
|
||||
|
||||
setConnectionStatus('connected');
|
||||
setIsConnected(true);
|
||||
console.log(`[Price Update] ${symbol}: $${price} (ret: ${ret !== undefined ? ret.toFixed(2) : 'N/A'}%)`);
|
||||
|
||||
// Update ticker price with animation
|
||||
|
||||
Reference in New Issue
Block a user