Skip to content

Instantly share code, notes, and snippets.

View pranjalAI's full-sized avatar

Pranjal Saxena pranjalAI

View GitHub Profile
@pranjalAI
pranjalAI / sda.py
Last active December 16, 2025 07:03
@dataclass
class NarrativeAgent:
def run(self, state: Dict[str, Any]) -> Dict[str, Any]:
symbol = state["symbol"]
signals = state.get("signals", [])
fired = [s for s in signals if s.get("fired")]
score = len(fired)
if score >= 3:
# agents/ratios_agent.py
from state import ResearchState
from mcp_client import call_mcp_tool
class RatiosAgent:
def run(self, state: ResearchState) -> ResearchState:
symbol = state.symbol
if not symbol:
raise ValueError("Symbol missing in state.")
# agents/fundamentals_agent.py
from state import ResearchState
from mcp_client import call_mcp_tool
class FundamentalsAgent:
def run(self, state: ResearchState) -> ResearchState:
symbol = state.symbol
if not symbol:
raise ValueError("Symbol missing in state.")
# agents/profile_agent.py
from typing import Optional
from state import ResearchState
from mcp_client import call_mcp_tool
class ProfileAgent:
def _extract_symbol(self, query: str) -> Optional[str]:
# simple heuristic: if user passes "NVDA" or "AAPL"
parts = query.strip().split()
for token in parts:
from agents.profile_agent import ProfileAgent
from agents.fundamentals_agent import FundamentalsAgent
from agents.ratios_agent import RatiosAgent
from agents.risk_agent import RiskAgent
from agents.summary_agent import SummaryAgent
from state import ResearchState
def run_research_pipeline(query: str) -> ResearchState:
state = ResearchState(query=query)
from dataclasses import dataclass, field
from typing import Any, Dict, List, Optional
@dataclass
class ResearchState:
# user input
query: str
symbol: Optional[str] = None
# core data blobs
import requests
from config import FMP_MCP_ENDPOINT
def call_mcp_tool(tool_name: str, params: dict | None = None):
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": tool_name,
"params": params or {}
}
mylst = [10,20,30]
a,b,c = mylst
print(c, a, b )
print(a, c, b )
sum(i for i in range(5) )
str ="Python"
print(str * 4)