1. Receive user request for news with optional sources, keywords, and time window.
2. Expand keywords to cover the relevant domain (e.g., AI -> AI, LLM, GPT).
3. Fetch news from specified sources using `fetch_news.py` with appropriate arguments.
4. Semantically filter the fetched news items based on user's topics.
5. Prioritize news items within the specified time window, filling with high-value items if needed.
6. Analyze each news item (especially GitHub Trending) to extract core value, inspiration, and scenarios.
7. Format the news report in Simplified Chinese, using a magazine/newsletter style.
8. Save the report to a timestamped file and present it to the user.