gitextract_0t_9v5yp/ ├── .dockerignore ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── README.md ├── app/ │ ├── README.md │ ├── backend/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── alembic/ │ │ │ ├── README │ │ │ ├── env.py │ │ │ ├── script.py.mako │ │ │ └── versions/ │ │ │ ├── 1b1feba3d897_add_data_column_to_hedge_fund_flows.py │ │ │ ├── 2f8c5d9e4b1a_add_hedgefundflowrun_table.py │ │ │ ├── 3f9a6b7c8d2e_add_hedgefundflowruncycle_table.py │ │ │ ├── 5274886e5bee_add_hedgefundflow_table.py │ │ │ └── add_api_keys_table.py │ │ ├── alembic.ini │ │ ├── database/ │ │ │ ├── __init__.py │ │ │ ├── connection.py │ │ │ └── models.py │ │ ├── main.py │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ ├── events.py │ │ │ └── schemas.py │ │ ├── repositories/ │ │ │ ├── __init__.py │ │ │ ├── api_key_repository.py │ │ │ ├── flow_repository.py │ │ │ └── flow_run_repository.py │ │ ├── routes/ │ │ │ ├── __init__.py │ │ │ ├── api_keys.py │ │ │ ├── flow_runs.py │ │ │ ├── flows.py │ │ │ ├── health.py │ │ │ ├── hedge_fund.py │ │ │ ├── language_models.py │ │ │ ├── ollama.py │ │ │ └── storage.py │ │ └── services/ │ │ ├── __init__.py │ │ ├── agent_service.py │ │ ├── api_key_service.py │ │ ├── backtest_service.py │ │ ├── graph.py │ │ ├── ollama_service.py │ │ └── portfolio.py │ ├── frontend/ │ │ ├── .eslintrc.cjs │ │ ├── .github/ │ │ │ └── dependabot.yml │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── components.json │ │ ├── index.html │ │ ├── package.json │ │ ├── postcss.config.mjs │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── Flow.tsx │ │ │ │ ├── Layout.tsx │ │ │ │ ├── custom-controls.tsx │ │ │ │ ├── layout/ │ │ │ │ │ └── top-bar.tsx │ │ │ │ ├── panels/ │ │ │ │ │ ├── bottom/ │ │ │ │ │ │ ├── bottom-panel.tsx │ │ │ │ │ │ └── tabs/ │ │ │ │ │ │ ├── backtest-output.tsx │ │ │ │ │ │ ├── debug-console-tab.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── output-tab-utils.ts │ │ │ │ │ │ ├── output-tab.tsx │ │ │ │ │ │ ├── problems-tab.tsx │ │ │ │ │ │ ├── reasoning-content.tsx │ │ │ │ │ │ ├── regular-output.tsx │ │ │ │ │ │ └── terminal-tab.tsx │ │ │ │ │ ├── left/ │ │ │ │ │ │ ├── flow-actions.tsx │ │ │ │ │ │ ├── flow-context-menu.tsx │ │ │ │ │ │ ├── flow-create-dialog.tsx │ │ │ │ │ │ ├── flow-edit-dialog.tsx │ │ │ │ │ │ ├── flow-item-group.tsx │ │ │ │ │ │ ├── flow-item.tsx │ │ │ │ │ │ ├── flow-list.tsx │ │ │ │ │ │ └── left-sidebar.tsx │ │ │ │ │ ├── right/ │ │ │ │ │ │ ├── component-actions.tsx │ │ │ │ │ │ ├── component-item-group.tsx │ │ │ │ │ │ ├── component-item.tsx │ │ │ │ │ │ ├── component-list.tsx │ │ │ │ │ │ └── right-sidebar.tsx │ │ │ │ │ └── search-box.tsx │ │ │ │ ├── settings/ │ │ │ │ │ ├── api-keys.tsx │ │ │ │ │ ├── appearance.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── cloud.tsx │ │ │ │ │ │ └── ollama.tsx │ │ │ │ │ ├── models.tsx │ │ │ │ │ └── settings.tsx │ │ │ │ ├── tabs/ │ │ │ │ │ ├── flow-tab-content.tsx │ │ │ │ │ ├── tab-bar.tsx │ │ │ │ │ └── tab-content.tsx │ │ │ │ └── ui/ │ │ │ │ ├── accordion.tsx │ │ │ │ ├── badge.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── llm-selector.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── resizable.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── sheet.tsx │ │ │ │ ├── sidebar.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── sonner.tsx │ │ │ │ ├── table.tsx │ │ │ │ ├── tabs.tsx │ │ │ │ └── tooltip.tsx │ │ │ ├── contexts/ │ │ │ │ ├── flow-context.tsx │ │ │ │ ├── layout-context.tsx │ │ │ │ ├── node-context.tsx │ │ │ │ └── tabs-context.tsx │ │ │ ├── data/ │ │ │ │ ├── agents.ts │ │ │ │ ├── models.ts │ │ │ │ ├── multi-node-mappings.ts │ │ │ │ ├── node-mappings.ts │ │ │ │ └── sidebar-components.ts │ │ │ ├── edges/ │ │ │ │ └── index.ts │ │ │ ├── hooks/ │ │ │ │ ├── use-component-groups.ts │ │ │ │ ├── use-enhanced-flow-actions.ts │ │ │ │ ├── use-flow-connection.ts │ │ │ │ ├── use-flow-history.ts │ │ │ │ ├── use-flow-management-tabs.ts │ │ │ │ ├── use-flow-management.ts │ │ │ │ ├── use-keyboard-shortcuts.ts │ │ │ │ ├── use-mobile.tsx │ │ │ │ ├── use-node-state.ts │ │ │ │ ├── use-output-node-connection.ts │ │ │ │ ├── use-resizable.ts │ │ │ │ └── use-toast-manager.ts │ │ │ ├── index.css │ │ │ ├── lib/ │ │ │ │ └── utils.ts │ │ │ ├── main.tsx │ │ │ ├── nodes/ │ │ │ │ ├── components/ │ │ │ │ │ ├── agent-node.tsx │ │ │ │ │ ├── agent-output-dialog.tsx │ │ │ │ │ ├── investment-report-dialog.tsx │ │ │ │ │ ├── investment-report-node.tsx │ │ │ │ │ ├── json-output-dialog.tsx │ │ │ │ │ ├── json-output-node.tsx │ │ │ │ │ ├── node-shell.tsx │ │ │ │ │ ├── output-node-status.tsx │ │ │ │ │ ├── portfolio-manager-node.tsx │ │ │ │ │ ├── portfolio-start-node.tsx │ │ │ │ │ └── stock-analyzer-node.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── providers/ │ │ │ │ └── theme-provider.tsx │ │ │ ├── services/ │ │ │ │ ├── api-keys-api.ts │ │ │ │ ├── api.ts │ │ │ │ ├── backtest-api.ts │ │ │ │ ├── flow-service.ts │ │ │ │ ├── sidebar-storage.ts │ │ │ │ ├── tab-service.ts │ │ │ │ └── types.ts │ │ │ ├── types/ │ │ │ │ └── flow.ts │ │ │ ├── utils/ │ │ │ │ ├── date-utils.ts │ │ │ │ └── text-utils.ts │ │ │ └── vite-env.d.ts │ │ ├── tailwind.config.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── run.bat │ └── run.sh ├── docker/ │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── docker-compose.yml │ ├── run.bat │ └── run.sh ├── pyproject.toml ├── src/ │ ├── __init__.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── aswath_damodaran.py │ │ ├── ben_graham.py │ │ ├── bill_ackman.py │ │ ├── cathie_wood.py │ │ ├── charlie_munger.py │ │ ├── fundamentals.py │ │ ├── growth_agent.py │ │ ├── michael_burry.py │ │ ├── mohnish_pabrai.py │ │ ├── news_sentiment.py │ │ ├── peter_lynch.py │ │ ├── phil_fisher.py │ │ ├── portfolio_manager.py │ │ ├── rakesh_jhunjhunwala.py │ │ ├── risk_manager.py │ │ ├── sentiment.py │ │ ├── stanley_druckenmiller.py │ │ ├── technicals.py │ │ ├── valuation.py │ │ └── warren_buffett.py │ ├── backtester.py │ ├── backtesting/ │ │ ├── __init__.py │ │ ├── benchmarks.py │ │ ├── cli.py │ │ ├── controller.py │ │ ├── engine.py │ │ ├── metrics.py │ │ ├── output.py │ │ ├── portfolio.py │ │ ├── trader.py │ │ ├── types.py │ │ └── valuation.py │ ├── cli/ │ │ ├── __init__.py │ │ └── input.py │ ├── data/ │ │ ├── __init__.py │ │ ├── cache.py │ │ └── models.py │ ├── graph/ │ │ ├── __init__.py │ │ └── state.py │ ├── llm/ │ │ ├── __init__.py │ │ ├── api_models.json │ │ ├── models.py │ │ └── ollama_models.json │ ├── main.py │ ├── tools/ │ │ ├── __init__.py │ │ └── api.py │ └── utils/ │ ├── __init__.py │ ├── analysts.py │ ├── api_key.py │ ├── display.py │ ├── docker.py │ ├── llm.py │ ├── ollama.py │ ├── progress.py │ └── visualize.py └── tests/ ├── __init__.py ├── backtesting/ │ ├── conftest.py │ ├── integration/ │ │ ├── conftest.py │ │ ├── mocks.py │ │ ├── test_integration_long_only.py │ │ ├── test_integration_long_short.py │ │ └── test_integration_short_only.py │ ├── test_controller.py │ ├── test_execution.py │ ├── test_metrics.py │ ├── test_portfolio.py │ ├── test_results.py │ └── test_valuation.py ├── fixtures/ │ └── api/ │ ├── financial_metrics/ │ │ ├── AAPL_2024-03-01_2024-03-08.json │ │ ├── MSFT_2024-03-01_2024-03-08.json │ │ └── TSLA_2024-03-01_2024-03-08.json │ ├── insider_trades/ │ │ ├── AAPL_2024-03-01_2024-03-08.json │ │ ├── MSFT_2024-03-01_2024-03-08.json │ │ └── TSLA_2024-03-01_2024-03-08.json │ ├── news/ │ │ ├── AAPL_2024-03-01_2024-03-08.json │ │ ├── MSFT_2024-03-01_2024-03-08.json │ │ └── TSLA_2024-03-01_2024-03-08.json │ └── prices/ │ ├── AAPL_2024-03-01_2024-03-08.json │ ├── MSFT_2024-03-01_2024-03-08.json │ └── TSLA_2024-03-01_2024-03-08.json └── test_api_rate_limiting.py