SYMBOL INDEX (130 symbols across 26 files) FILE: backend/src/agent/app.py function create_frontend_router (line 11) | def create_frontend_router(build_dir="../frontend/dist"): FILE: backend/src/agent/configuration.py class Configuration (line 8) | class Configuration(BaseModel): method from_runnable_config (line 43) | def from_runnable_config( FILE: backend/src/agent/content_enhancement_decision.py class EnhancementDecision (line 13) | class EnhancementDecision: class ContentEnhancementDecisionMaker (line 22) | class ContentEnhancementDecisionMaker: method __init__ (line 25) | def __init__(self): method analyze_enhancement_need (line 30) | def analyze_enhancement_need( method _build_analysis_prompt (line 65) | def _build_analysis_prompt( method _parse_llm_decision (line 124) | def _parse_llm_decision( method _calculate_url_priority (line 187) | def _calculate_url_priority(self, source: Dict[str, Any]) -> float: method enhance_content_with_firecrawl (line 215) | async def enhance_content_with_firecrawl( method _assess_enhancement_quality (line 259) | def _assess_enhancement_quality(self, content: str) -> str: function get_content_enhancement_decision_maker (line 279) | def get_content_enhancement_decision_maker(): FILE: backend/src/agent/enhanced_graph_nodes.py function content_enhancement_analysis (line 20) | def content_enhancement_analysis(state: OverallState, config: RunnableCo... function should_enhance_content (line 176) | def should_enhance_content(state: OverallState) -> str: function enhanced_reflection (line 212) | def enhanced_reflection(state: OverallState, config: RunnableConfig) -> ... function format_enhancement_decision_log (line 252) | def format_enhancement_decision_log(decision: EnhancementDecision) -> str: FILE: backend/src/agent/graph.py function generate_query (line 55) | def generate_query(state: OverallState, config: RunnableConfig) -> Query... function continue_to_web_research (line 96) | def continue_to_web_research(state: QueryGenerationState): function web_research (line 119) | def web_research(state: WebSearchState, config: RunnableConfig) -> Overa... function reflection (line 241) | def reflection(state: OverallState, config: RunnableConfig) -> OverallSt... function evaluate_research_enhanced (line 387) | def evaluate_research_enhanced(state: OverallState, config: RunnableConf... function decide_next_research_step (line 443) | def decide_next_research_step(state: OverallState): function finalize_answer (line 489) | def finalize_answer(state: OverallState, config: RunnableConfig) -> dict: function build_source_mapping (line 663) | def build_source_mapping(sources_gathered): function extract_domain (line 698) | def extract_domain(url): function convert_citations_to_readable (line 719) | def convert_citations_to_readable(content, source_mapping): function clean_malformed_citations (line 751) | def clean_malformed_citations(content): function clean_generated_content (line 767) | def clean_generated_content(content): function remove_prompt_remnants (line 792) | def remove_prompt_remnants(content): function final_quality_check (line 809) | def final_quality_check(content): function planner_node (line 849) | def planner_node(state: OverallState, config: RunnableConfig) -> dict: function record_task_completion_node (line 886) | def record_task_completion_node(state: OverallState, config: RunnableCon... function _summarize_task_findings (line 962) | def _summarize_task_findings(task_description: str, web_results: List[st... function decide_next_step_in_plan (line 996) | def decide_next_step_in_plan(state: OverallState) -> str: function split_by_tokens (line 1069) | def split_by_tokens(texts, max_tokens=150000, encoding_name="cl100k_base"): function extract_key_sections (line 1108) | def extract_key_sections(content, max_tokens, encoding): function is_factual_section (line 1151) | def is_factual_section(section): function is_critical_section (line 1169) | def is_critical_section(section): function truncate_section (line 1179) | def truncate_section(section, max_tokens, encoding): function simple_split_by_chars (line 1202) | def simple_split_by_chars(texts, max_chars): FILE: backend/src/agent/prompts.py function get_current_date (line 5) | def get_current_date(): FILE: backend/src/agent/report_level_enhancement.py class ReportEnhancementRequest (line 18) | class ReportEnhancementRequest: class ReportEnhancementResult (line 28) | class ReportEnhancementResult: class ReportLevelEnhancer (line 36) | class ReportLevelEnhancer: method __init__ (line 39) | def __init__(self): method analyze_report_enhancement_needs (line 44) | def analyze_report_enhancement_needs( method _parse_enhancement_requests (line 105) | def _parse_enhancement_requests(self, analysis_text: str) -> List[Repo... method _parse_single_request (line 129) | def _parse_single_request(self, request_text: str) -> Optional[ReportE... method execute_targeted_enhancement (line 168) | def execute_targeted_enhancement( method _find_matching_urls (line 249) | def _find_matching_urls( method _assess_enhancement_quality (line 300) | def _assess_enhancement_quality( function integrate_report_enhancement_into_finalize (line 328) | def integrate_report_enhancement_into_finalize( FILE: backend/src/agent/state.py class LedgerEntry (line 15) | class LedgerEntry(TypedDict): class OverallState (line 23) | class OverallState(TypedDict): class ReflectionState (line 66) | class ReflectionState(TypedDict): class Query (line 76) | class Query(TypedDict): class QueryGenerationState (line 81) | class QueryGenerationState(TypedDict): class WebSearchState (line 87) | class WebSearchState(TypedDict): class SearchStateOutput (line 94) | class SearchStateOutput: FILE: backend/src/agent/tools_and_schemas.py class SearchQueryList (line 5) | class SearchQueryList(BaseModel): class Reflection (line 14) | class Reflection(BaseModel): class ResearchTask (line 26) | class ResearchTask(BaseModel): class ResearchPlan (line 31) | class ResearchPlan(BaseModel): class LedgerEntry (line 35) | class LedgerEntry(BaseModel): FILE: backend/src/agent/utils.py function get_research_topic (line 5) | def get_research_topic(messages: List[AnyMessage]) -> str: function resolve_urls (line 22) | def resolve_urls(urls_to_resolve: List[Any], id: int) -> Dict[str, str]: function insert_citation_markers (line 41) | def insert_citation_markers(text, citations_list): function get_citations (line 80) | def get_citations(response, resolved_urls_map): FILE: frontend/src/App.tsx type StreamEvent (line 10) | interface StreamEvent { type SourceData (line 14) | interface SourceData { function App (line 21) | function App() { FILE: frontend/src/components/ActivityTimeline.tsx type ProcessedEvent (line 21) | interface ProcessedEvent { type ActivityTimelineProps (line 26) | interface ActivityTimelineProps { function ActivityTimeline (line 31) | function ActivityTimeline({ FILE: frontend/src/components/ChatMessagesView.tsx type MdComponentProps (line 19) | type MdComponentProps = { type HumanMessageBubbleProps (line 140) | interface HumanMessageBubbleProps { type AiMessageBubbleProps (line 164) | interface AiMessageBubbleProps { type ChatMessagesViewProps (line 251) | interface ChatMessagesViewProps { function ChatMessagesView (line 261) | function ChatMessagesView({ FILE: frontend/src/components/InputForm.tsx type InputFormProps (line 14) | interface InputFormProps { FILE: frontend/src/components/ResearchThinkPanel.tsx type ResearchThinkPanelProps (line 5) | interface ResearchThinkPanelProps { type TaskCardProps (line 230) | interface TaskCardProps { type StepCardProps (line 309) | interface StepCardProps { FILE: frontend/src/components/WelcomeScreen.tsx type WelcomeScreenProps (line 3) | interface WelcomeScreenProps { FILE: frontend/src/components/ui/badge.tsx function Badge (line 28) | function Badge({ FILE: frontend/src/components/ui/button.tsx function Button (line 38) | function Button({ FILE: frontend/src/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: frontend/src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: frontend/src/components/ui/scroll-area.tsx function ScrollArea (line 6) | function ScrollArea({ function ScrollBar (line 29) | function ScrollBar({ FILE: frontend/src/components/ui/select.tsx function Select (line 7) | function Select({ function SelectGroup (line 13) | function SelectGroup({ function SelectValue (line 19) | function SelectValue({ function SelectTrigger (line 25) | function SelectTrigger({ function SelectContent (line 51) | function SelectContent({ function SelectLabel (line 86) | function SelectLabel({ function SelectItem (line 99) | function SelectItem({ function SelectSeparator (line 123) | function SelectSeparator({ function SelectScrollUpButton (line 136) | function SelectScrollUpButton({ function SelectScrollDownButton (line 154) | function SelectScrollDownButton({ FILE: frontend/src/components/ui/tabs.tsx function Tabs (line 6) | function Tabs({ function TabsList (line 19) | function TabsList({ function TabsTrigger (line 35) | function TabsTrigger({ function TabsContent (line 51) | function TabsContent({ FILE: frontend/src/components/ui/textarea.tsx function Textarea (line 5) | function Textarea({ className, ...props }: React.ComponentProps<"textare... FILE: frontend/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: frontend/src/utils/dataTransformer.ts type EventData (line 6) | interface EventData { type SourceData (line 10) | interface SourceData { type TaskData (line 17) | interface TaskData { type StateData (line 23) | interface StateData { type TaskDetail (line 30) | interface TaskDetail { type TaskStep (line 37) | interface TaskStep { type StepDetail (line 46) | interface StepDetail { type PlanningInfo (line 61) | interface PlanningInfo { type ProcessedResearchData (line 71) | interface ProcessedResearchData { function transformEventsToHierarchy (line 81) | function transformEventsToHierarchy( function extractPlanningInfo (line 143) | function extractPlanningInfo(events: EventData[], state: StateData): Pla... function buildTaskDetails (line 170) | function buildTaskDetails(events: EventData[], state: StateData): TaskDe... function buildTaskSteps (line 206) | function buildTaskSteps( function getCurrentTaskId (line 474) | function getCurrentTaskId(events: EventData[], state: StateData): string... function determineOverallStatus (line 488) | function determineOverallStatus(events: EventData[]): 'planning' | 'rese... function getEnhancementStatusMessage (line 507) | function getEnhancementStatusMessage(status: string): string { function debugTransformResult (line 523) | function debugTransformResult(data: ProcessedResearchData): void {