.dockerignore
.gitignore
.pre-commit-config.yaml
.semgrepignore
AGENTS.md
ARCHITECTURE.md
CLAUDE.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Dockerfile
LICENSE
MANIFEST.in
Makefile
PUBLISHING.md
README.md
SECURITY.md
USAGE.md
cliff.toml
docker-compose.yml
docker-entrypoint.sh
mkdocs.yml
pyoptima.cfg.example
pyproject.toml
setup.py
setup.sh
.claude/CLAUDE.md
.claude/commands/branch.md
.claude/commands/quick-commit.md
.claude/commands/worktree.md
.claude/skills/INDEX.md
.claude/skills/config-change/SKILL.md
.claude/skills/grill/SKILL.md
.claude/skills/onboard/SKILL.md
.claude/skills/orchestrate/SKILL.md
.claude/skills/plan/SKILL.md
.claude/skills/refactor/SKILL.md
.claude/skills/release/SKILL.md
.claude/skills/ship/SKILL.md
.claude/skills/techdebt/SKILL.md
.claude/skills/verify/SKILL.md
.codex/config.toml
.cursor/rules/optophi-project-standards.mdc
.github/dependabot.yml
.github/workflows/ci.yml
.github/workflows/publish.yml
.github/workflows/scorecards.yml
archive/README.md
data/README.md
data/assignment.json
data/cutting_stock.json
data/knapsack.json
data/nurse_scheduling.json
data/portfolio_basic.json
data/portfolio_large.json
data/portfolio_min_risk.json
data/production_planning.json
data/transportation.json
data/templates/README.md
data/templates/portfolio/INPUT_OUTPUT_SIGNATURES.md
data/templates/portfolio/black_litterman_max_sharpe.json
data/templates/portfolio/black_litterman_with_views.json
data/templates/portfolio/cla_max_sharpe.json
data/templates/portfolio/efficient_cvar_risk.json
data/templates/portfolio/efficient_return.json
data/templates/portfolio/efficient_risk.json
data/templates/portfolio/factor_based_selection.json
data/templates/portfolio/hierarchical_min_volatility.json
data/templates/portfolio/max_diversification.json
data/templates/portfolio/max_sharpe.json
data/templates/portfolio/max_sharpe_with_costs.json
data/templates/portfolio/max_utility.json
data/templates/portfolio/min_cvar.json
data/templates/portfolio/min_semivariance.json
data/templates/portfolio/min_volatility.json
data/templates/portfolio/momentum_filtered_max_sharpe.json
data/templates/portfolio/risk_parity.json
data/templates/portfolio/with_cardinality.json
data/templates/portfolio/with_turnover.json
docs/AIRFLOW_INTEGRATION.md
docs/API_QUICK_REFERENCE.md
docs/ARCHITECTURE.md
docs/CONFIG_SCHEMAS.md
docs/CONSTRAINTS_GUIDE.md
docs/ETL_INTEGRATION.md
docs/EXPRESSION_LANGUAGE.md
docs/MIGRATION_GUIDE.md
docs/PORTFOLIO_NEW_METHODS.md
docs/PYFORTIS_INTEGRATION.md
docs/PYSTATOR_INTEGRATION.md
docs/SCHEDULING_CUSTOM_CONSTRAINTS.md
docs/SOLVER_INSTALLATION.md
docs/TEMPLATE_DEVELOPMENT.md
docs/index.md
examples/01_quickstart.py
examples/02_from_config.py
examples/03_objectives.py
examples/04_constraints.py
examples/05_execution.py
examples/06_rebalance.py
examples/07_signal_sizing.py
examples/08_risk_budget.py
examples/09_config_driven.py
examples/10_diagnostics.py
examples/11_warm_start.py
examples/12_custom_constraint.py
examples/README.md
examples/configs/execution_vwap.yaml
examples/configs/multi_account_joint.yaml
examples/configs/portfolio_black_litterman.yaml
examples/configs/portfolio_max_sharpe.yaml
examples/configs/portfolio_min_vol.yaml
examples/configs/rebalance_min_cost.yaml
examples/configs/risk_budget_reduce.yaml
examples/configs/signal_sizing_mean_risk.yaml
notebooks/portfolio_optimization.ipynb
scripts/build.sh
scripts/ci.sh
scripts/generate_config_schemas.py
scripts/pre-push.sh
scripts/release.sh
scripts/setup-branch-protection.sh
scripts/setup.sh
src/pyoptima/__init__.py
src/pyoptima/_diagnostics_iis.py
src/pyoptima/_diagnostics_sensitivity.py
src/pyoptima/_log_hygiene.py
src/pyoptima/config_utils.py
src/pyoptima/diagnostics.py
src/pyoptima/examples.py
src/pyoptima/exceptions.py
src/pyoptima/py.typed
src/pyoptima.egg-info/PKG-INFO
src/pyoptima.egg-info/SOURCES.txt
src/pyoptima.egg-info/dependency_links.txt
src/pyoptima.egg-info/entry_points.txt
src/pyoptima.egg-info/requires.txt
src/pyoptima.egg-info/top_level.txt
src/pyoptima/_bundled_docs/mkdocs.yml
src/pyoptima/_bundled_docs/docs/AIRFLOW_INTEGRATION.md
src/pyoptima/_bundled_docs/docs/API_QUICK_REFERENCE.md
src/pyoptima/_bundled_docs/docs/ARCHITECTURE.md
src/pyoptima/_bundled_docs/docs/CONFIG_SCHEMAS.md
src/pyoptima/_bundled_docs/docs/CONSTRAINTS_GUIDE.md
src/pyoptima/_bundled_docs/docs/ETL_INTEGRATION.md
src/pyoptima/_bundled_docs/docs/EXPRESSION_LANGUAGE.md
src/pyoptima/_bundled_docs/docs/MIGRATION_GUIDE.md
src/pyoptima/_bundled_docs/docs/PORTFOLIO_NEW_METHODS.md
src/pyoptima/_bundled_docs/docs/PYFORTIS_INTEGRATION.md
src/pyoptima/_bundled_docs/docs/PYSTATOR_INTEGRATION.md
src/pyoptima/_bundled_docs/docs/SCHEDULING_CUSTOM_CONSTRAINTS.md
src/pyoptima/_bundled_docs/docs/SOLVER_INSTALLATION.md
src/pyoptima/_bundled_docs/docs/TEMPLATE_DEVELOPMENT.md
src/pyoptima/_bundled_docs/docs/index.md
src/pyoptima/api/README.md
src/pyoptima/api/__init__.py
src/pyoptima/api/_http_errors.py
src/pyoptima/api/main.py
src/pyoptima/api/utils.py
src/pyoptima/api/dependencies/__init__.py
src/pyoptima/api/dependencies/auth.py
src/pyoptima/api/dependencies/core.py
src/pyoptima/api/models/__init__.py
src/pyoptima/api/models/jobs.py
src/pyoptima/api/models/optimization.py
src/pyoptima/api/models/requests.py
src/pyoptima/api/models/responses.py
src/pyoptima/api/models/solvers.py
src/pyoptima/api/models/templates.py
src/pyoptima/api/routes/__init__.py
src/pyoptima/api/routes/v1/__init__.py
src/pyoptima/api/routes/v1/auth.py
src/pyoptima/api/routes/v1/jobs.py
src/pyoptima/api/routes/v1/optimize.py
src/pyoptima/api/routes/v1/settings.py
src/pyoptima/api/routes/v1/solvers.py
src/pyoptima/api/routes/v1/templates.py
src/pyoptima/api/services/__init__.py
src/pyoptima/api/services/_analysis.py
src/pyoptima/api/services/_analysis_forecasting.py
src/pyoptima/api/services/_analysis_recommendation.py
src/pyoptima/api/services/_analysis_replenishment.py
src/pyoptima/api/services/_moments.py
src/pyoptima/api/services/database_job_manager.py
src/pyoptima/api/services/job_manager.py
src/pyoptima/api/services/optimization_service.py
src/pyoptima/api/services/template_registry.py
src/pyoptima/app_config/__init__.py
src/pyoptima/app_config/paths.py
src/pyoptima/app_config/ui.py
src/pyoptima/cli/__init__.py
src/pyoptima/cli/__main__.py
src/pyoptima/cli/_console.py
src/pyoptima/cli/catalog.py
src/pyoptima/cli/library.py
src/pyoptima/cli/services.py
src/pyoptima/cli/ui.py
src/pyoptima/config/__init__.py
src/pyoptima/config/auth.py
src/pyoptima/config/ports.py
src/pyoptima/configs/__init__.py
src/pyoptima/configs/_envelope.py
src/pyoptima/constraints/__init__.py
src/pyoptima/constraints/base.py
src/pyoptima/constraints/bounds.py
src/pyoptima/constraints/cardinality.py
src/pyoptima/constraints/linear.py
src/pyoptima/constraints/liquidity.py
src/pyoptima/constraints/portfolio.py
src/pyoptima/constraints/risk.py
src/pyoptima/constraints/sector.py
src/pyoptima/constraints/turnover.py
src/pyoptima/core/__init__.py
src/pyoptima/core/protocols.py
src/pyoptima/core/result.py
src/pyoptima/db/__init__.py
src/pyoptima/db/base.py
src/pyoptima/db/models/__init__.py
src/pyoptima/db/models/optimization_job.py
src/pyoptima/docs/__init__.py
src/pyoptima/docs/cli.py
src/pyoptima/estimators/__init__.py
src/pyoptima/estimators/_portfolio_config.py
src/pyoptima/estimators/_portfolio_constraints.py
src/pyoptima/estimators/_portfolio_result.py
src/pyoptima/estimators/_portfolio_validation.py
src/pyoptima/estimators/base.py
src/pyoptima/estimators/execution.py
src/pyoptima/estimators/multi_account.py
src/pyoptima/estimators/portfolio.py
src/pyoptima/estimators/rebalance.py
src/pyoptima/estimators/risk_budget.py
src/pyoptima/estimators/signal_sizing.py
src/pyoptima/etl/__init__.py
src/pyoptima/etl/adapter.py
src/pyoptima/etl/output.py
src/pyoptima/expression/__init__.py
src/pyoptima/expression/ast.py
src/pyoptima/expression/evaluator.py
src/pyoptima/expression/lowering.py
src/pyoptima/expression/parser.py
src/pyoptima/integrations/__init__.py
src/pyoptima/integrations/pyfortis.py
src/pyoptima/io/__init__.py
src/pyoptima/io/data.py
src/pyoptima/io/readers.py
src/pyoptima/model/__init__.py
src/pyoptima/model/core.py
src/pyoptima/model/sets.py
src/pyoptima/solvers/__init__.py
src/pyoptima/solvers/base.py
src/pyoptima/solvers/osqp_solver.py
src/pyoptima/solvers/pyomo_solver.py
src/pyoptima/solvers/scipy_solver.py
src/pyoptima/templates/__init__.py
src/pyoptima/templates/_pairing_generation.py
src/pyoptima/templates/_portfolio_builders.py
src/pyoptima/templates/_portfolio_math.py
src/pyoptima/templates/_portfolio_osqp.py
src/pyoptima/templates/_portfolio_report.py
src/pyoptima/templates/_portfolio_scenario.py
src/pyoptima/templates/_portfolio_scipy.py
src/pyoptima/templates/_roster.py
src/pyoptima/templates/base.py
src/pyoptima/templates/classic.py
src/pyoptima/templates/classic_config.py
src/pyoptima/templates/execution.py
src/pyoptima/templates/execution_config.py
src/pyoptima/templates/expr.py
src/pyoptima/templates/facility.py
src/pyoptima/templates/flight_scheduling.py
src/pyoptima/templates/forecasting.py
src/pyoptima/templates/mathematical.py
src/pyoptima/templates/mathematical_config.py
src/pyoptima/templates/multi_account.py
src/pyoptima/templates/multi_account_config.py
src/pyoptima/templates/network.py
src/pyoptima/templates/packing.py
src/pyoptima/templates/portfolio.py
src/pyoptima/templates/portfolio_config.py
src/pyoptima/templates/rebalance.py
src/pyoptima/templates/rebalance_config.py
src/pyoptima/templates/recommendation.py
src/pyoptima/templates/replenishment.py
src/pyoptima/templates/risk_budget.py
src/pyoptima/templates/risk_budget_config.py
src/pyoptima/templates/routing.py
src/pyoptima/templates/routing_config.py
src/pyoptima/templates/scheduling.py
src/pyoptima/templates/signal_sizing.py
src/pyoptima/templates/signal_sizing_config.py
src/pyoptima/templates/trading_schedule.py
src/pyoptima/templates/trading_schedule_config.py
src/pyoptima/trading/__init__.py
src/pyoptima/trading/costs.py
src/pyoptima/trading/market_data.py
src/pyoptima/trading/risk.py
src/pyoptima/ui/.npmrc
src/pyoptima/ui/API_CONNECTION_GUIDE.md
src/pyoptima/ui/README.md
src/pyoptima/ui/__init__.py
src/pyoptima/ui/build.py
src/pyoptima/ui/components.json
src/pyoptima/ui/deps.py
src/pyoptima/ui/dev.py
src/pyoptima/ui/eslint.config.mjs
src/pyoptima/ui/next.config.js
src/pyoptima/ui/package-lock.json
src/pyoptima/ui/package.json
src/pyoptima/ui/postcss.config.js
src/pyoptima/ui/server.py
src/pyoptima/ui/tailwind.config.js
src/pyoptima/ui/tsconfig.json
src/pyoptima/ui/vitest.config.ts
src/pyoptima/ui/node_modules/flatted/python/flatted.py
src/pyoptima/ui/src/proxy.ts
src/pyoptima/ui/src/__tests__/setup.ts
src/pyoptima/ui/src/__tests__/components/shell/bottom-panel-registry.test.ts
src/pyoptima/ui/src/__tests__/stores/datasets.test.ts
src/pyoptima/ui/src/__tests__/stores/shell-store.test.ts
src/pyoptima/ui/src/__tests__/stores/studio-problem-field-errors.test.ts
src/pyoptima/ui/src/__tests__/stores/studio-run-history.test.ts
src/pyoptima/ui/src/__tests__/studio/api-error.test.ts
src/pyoptima/ui/src/__tests__/studio/data-pane-schema.test.tsx
src/pyoptima/ui/src/__tests__/studio/export.test.ts
src/pyoptima/ui/src/__tests__/studio/from-dataset.test.tsx
src/pyoptima/ui/src/__tests__/studio/kpis.test.ts
src/pyoptima/ui/src/__tests__/studio/objectives.test.ts
src/pyoptima/ui/src/__tests__/studio/portfolio-request.test.ts
src/pyoptima/ui/src/__tests__/studio/portfolio-results.test.tsx
src/pyoptima/ui/src/__tests__/studio/schema.test.ts
src/pyoptima/ui/src/__tests__/studio/solver-config.test.ts
src/pyoptima/ui/src/__tests__/studio/solver-toolbar.test.tsx
src/pyoptima/ui/src/__tests__/studio/statusFromResult.test.ts
src/pyoptima/ui/src/__tests__/studio/studio-runs.test.tsx
src/pyoptima/ui/src/__tests__/studio/template-editor-example.test.tsx
src/pyoptima/ui/src/__tests__/studio/template-fields-errors.test.tsx
src/pyoptima/ui/src/__tests__/studio/template-results.test.tsx
src/pyoptima/ui/src/__tests__/studio/validation.test.ts
src/pyoptima/ui/src/__tests__/studio/__fixtures__/portfolio-objective-enum.json
src/pyoptima/ui/src/__tests__/studio/__fixtures__/portfolio-request-max-sharpe.json
src/pyoptima/ui/src/__tests__/studio/__fixtures__/portfolio-request-min-volatility.json
src/pyoptima/ui/src/__tests__/tabs/hydrate-migration.test.ts
src/pyoptima/ui/src/__tests__/tabs/open-or-focus-preview.test.ts
src/pyoptima/ui/src/__tests__/tabs/sentinel-gestures.test.tsx
src/pyoptima/ui/src/__tests__/tabs/state-cache.test.ts
src/pyoptima/ui/src/__tests__/tabs/studio-kind.test.ts
src/pyoptima/ui/src/__tests__/tabs/url-query.test.ts
src/pyoptima/ui/src/app/error.tsx
src/pyoptima/ui/src/app/globals.css
src/pyoptima/ui/src/app/layout.tsx
src/pyoptima/ui/src/app/loading.tsx
src/pyoptima/ui/src/app/page.tsx
src/pyoptima/ui/src/app/themes.css
src/pyoptima/ui/src/app/data/page.tsx
src/pyoptima/ui/src/app/documentation/page.tsx
src/pyoptima/ui/src/app/login/page.tsx
src/pyoptima/ui/src/app/methods/page.tsx
src/pyoptima/ui/src/app/runs/page.tsx
src/pyoptima/ui/src/app/settings/page.tsx
src/pyoptima/ui/src/app/studio/page.tsx
src/pyoptima/ui/src/components/ApiUnavailableBanner.tsx
src/pyoptima/ui/src/components/AppShell.tsx
src/pyoptima/ui/src/components/AuthGuard.tsx
src/pyoptima/ui/src/components/ErrorBoundary.tsx
src/pyoptima/ui/src/components/LoadingSpinner.tsx
src/pyoptima/ui/src/components/ThemeFromConfig.tsx
src/pyoptima/ui/src/components/ThemeSync.tsx
src/pyoptima/ui/src/components/index.ts
src/pyoptima/ui/src/components/common/PageHeader.tsx
src/pyoptima/ui/src/components/common/index.ts
src/pyoptima/ui/src/components/layout/AccountMenu.tsx
src/pyoptima/ui/src/components/layout/ResizableWorkspaceLayout.tsx
src/pyoptima/ui/src/components/layout/TopNav.tsx
src/pyoptima/ui/src/components/shell/bottom-panel-registry.ts
src/pyoptima/ui/src/components/shell/types.ts
src/pyoptima/ui/src/components/sidebar/CollapsibleSidebar.tsx
src/pyoptima/ui/src/components/sidebar/index.ts
src/pyoptima/ui/src/components/studio/CodeEditor.tsx
src/pyoptima/ui/src/components/studio/ConfigActions.tsx
src/pyoptima/ui/src/components/studio/ConstraintBuilder.tsx
src/pyoptima/ui/src/components/studio/ConstraintRefDialog.tsx
src/pyoptima/ui/src/components/studio/DataPane.tsx
src/pyoptima/ui/src/components/studio/FrontierChart.tsx
src/pyoptima/ui/src/components/studio/PortfolioEditor.tsx
src/pyoptima/ui/src/components/studio/PortfolioResults.tsx
src/pyoptima/ui/src/components/studio/StudioConsole.tsx
src/pyoptima/ui/src/components/studio/StudioHome.tsx
src/pyoptima/ui/src/components/studio/StudioRuns.tsx
src/pyoptima/ui/src/components/studio/StudioSidebar.tsx
src/pyoptima/ui/src/components/studio/StudioTabContent.tsx
src/pyoptima/ui/src/components/studio/StudioWorkspace.tsx
src/pyoptima/ui/src/components/studio/TemplateEditor.tsx
src/pyoptima/ui/src/components/studio/TemplateFields.tsx
src/pyoptima/ui/src/components/studio/TemplateResults.tsx
src/pyoptima/ui/src/components/studio/TradeoffChart.tsx
src/pyoptima/ui/src/components/studio/icons.tsx
src/pyoptima/ui/src/components/studio/viz.tsx
src/pyoptima/ui/src/components/studio/portfolio/AdvancedSections.tsx
src/pyoptima/ui/src/components/studio/portfolio/DataTab.tsx
src/pyoptima/ui/src/components/studio/portfolio/primitives.tsx
src/pyoptima/ui/src/components/studio/portfolio/rows.tsx
src/pyoptima/ui/src/components/studio/results/AssignmentResults.tsx
src/pyoptima/ui/src/components/studio/results/DomainSolutions.tsx
src/pyoptima/ui/src/components/studio/results/ExportButtons.tsx
src/pyoptima/ui/src/components/studio/results/FailurePanel.tsx
src/pyoptima/ui/src/components/studio/results/FlightRoster.tsx
src/pyoptima/ui/src/components/studio/results/GenericResults.tsx
src/pyoptima/ui/src/components/studio/results/JobShopResults.tsx
src/pyoptima/ui/src/components/studio/results/KnapsackResults.tsx
src/pyoptima/ui/src/components/studio/results/LPResults.tsx
src/pyoptima/ui/src/components/studio/results/RunHistoryMenu.tsx
src/pyoptima/ui/src/components/studio/results/SolutionDispatch.tsx
src/pyoptima/ui/src/components/studio/results/SolverMetaStrip.tsx
src/pyoptima/ui/src/components/studio/results/SolverStatusBadge.tsx
src/pyoptima/ui/src/components/studio/results/TSPResults.tsx
src/pyoptima/ui/src/components/studio/results/TransportationResults.tsx
src/pyoptima/ui/src/components/studio/results/index.ts
src/pyoptima/ui/src/components/studio/results/palette.ts
src/pyoptima/ui/src/components/studio/results/primitives.tsx
src/pyoptima/ui/src/components/tabs/TabConfirmCloseDialog.tsx
src/pyoptima/ui/src/components/tabs/TabContextMenu.tsx
src/pyoptima/ui/src/components/tabs/TabPaneCarousel.tsx
src/pyoptima/ui/src/components/tabs/TabStrip.tsx
src/pyoptima/ui/src/components/tabs/TabsBeforeUnloadGuard.tsx
src/pyoptima/ui/src/components/tabs/TabsCloseDialog.tsx
src/pyoptima/ui/src/components/tabs/TabsKeyboardShortcuts.tsx
src/pyoptima/ui/src/components/tabs/TabsPreviewPromoter.tsx
src/pyoptima/ui/src/components/tabs/TabsRouterSync.tsx
src/pyoptima/ui/src/components/ui/alert.tsx
src/pyoptima/ui/src/components/ui/button.tsx
src/pyoptima/ui/src/components/ui/card.tsx
src/pyoptima/ui/src/components/ui/input.tsx
src/pyoptima/ui/src/components/ui/label.tsx
src/pyoptima/ui/src/components/ui/skeleton.tsx
src/pyoptima/ui/src/hooks/use-auth-init.ts
src/pyoptima/ui/src/hooks/useStudioSolve.ts
src/pyoptima/ui/src/hooks/useTemplateInfo.ts
src/pyoptima/ui/src/hooks/useTemplateSchema.ts
src/pyoptima/ui/src/lib/api.ts
src/pyoptima/ui/src/lib/auth-storage.ts
src/pyoptima/ui/src/lib/constants.ts
src/pyoptima/ui/src/lib/settings.ts
src/pyoptima/ui/src/lib/tabKinds.ts
src/pyoptima/ui/src/lib/templates.ts
src/pyoptima/ui/src/lib/types.ts
src/pyoptima/ui/src/lib/utils.ts
src/pyoptima/ui/src/lib/studio/analysis.ts
src/pyoptima/ui/src/lib/studio/catalog.ts
src/pyoptima/ui/src/lib/studio/constraints.ts
src/pyoptima/ui/src/lib/studio/dataset-parse.ts
src/pyoptima/ui/src/lib/studio/export.ts
src/pyoptima/ui/src/lib/studio/frontier.ts
src/pyoptima/ui/src/lib/studio/kpis.ts
src/pyoptima/ui/src/lib/studio/matrix.ts
src/pyoptima/ui/src/lib/studio/objectives.ts
src/pyoptima/ui/src/lib/studio/portfolio.ts
src/pyoptima/ui/src/lib/studio/result-fields.ts
src/pyoptima/ui/src/lib/studio/schema.ts
src/pyoptima/ui/src/lib/studio/solver.ts
src/pyoptima/ui/src/lib/studio/types.ts
src/pyoptima/ui/src/lib/studio/useSolvers.ts
src/pyoptima/ui/src/lib/studio/validation.ts
src/pyoptima/ui/src/lib/tabs/dirty.ts
src/pyoptima/ui/src/lib/tabs/hooks.ts
src/pyoptima/ui/src/lib/tabs/kinds-registry.ts
src/pyoptima/ui/src/lib/tabs/persistence.ts
src/pyoptima/ui/src/lib/tabs/save-all.ts
src/pyoptima/ui/src/lib/tabs/state-cache.ts
src/pyoptima/ui/src/lib/tabs/store.ts
src/pyoptima/ui/src/lib/tabs/types.ts
src/pyoptima/ui/src/lib/tabs/url-match.ts
src/pyoptima/ui/src/lib/tabs/url-query.ts
src/pyoptima/ui/src/lib/types/index.ts
src/pyoptima/ui/src/stores/StudioProblemStoreProvider.tsx
src/pyoptima/ui/src/stores/app-config.ts
src/pyoptima/ui/src/stores/auth.ts
src/pyoptima/ui/src/stores/datasets.ts
src/pyoptima/ui/src/stores/index.ts
src/pyoptima/ui/src/stores/shell-store.ts
src/pyoptima/ui/src/stores/studio-inject.ts
src/pyoptima/ui/src/stores/studio-problem.ts
src/pyoptima/ui/src/stores/studio-run.ts
src/pyoptima/ui/static/404.html
src/pyoptima/ui/static/__next.__PAGE__.txt
src/pyoptima/ui/static/__next._full.txt
src/pyoptima/ui/static/__next._head.txt
src/pyoptima/ui/static/__next._index.txt
src/pyoptima/ui/static/__next._tree.txt
src/pyoptima/ui/static/index.html
src/pyoptima/ui/static/index.txt
src/pyoptima/ui/static/404/index.html
src/pyoptima/ui/static/_next/static/chunks/05-c3ty_6dwfk.js
src/pyoptima/ui/static/_next/static/chunks/07dy-1n4sb_gq.js
src/pyoptima/ui/static/_next/static/chunks/0cz1d0mv5g_q7.js
src/pyoptima/ui/static/_next/static/chunks/0g9khpky5d1x2.js
src/pyoptima/ui/static/_next/static/chunks/0jtyz8e4mlt68.js
src/pyoptima/ui/static/_next/static/chunks/0pp_czh_3ftuz.js
src/pyoptima/ui/static/_next/static/chunks/1-8s9_t85wwr4.js
src/pyoptima/ui/static/_next/static/chunks/15657xna3xc4c.js
src/pyoptima/ui/static/_next/static/chunks/1iojk9fkpg5dl.js
src/pyoptima/ui/static/_next/static/chunks/1rdwzq95w5po9.js
src/pyoptima/ui/static/_next/static/chunks/1uhzl0xs4k_eb.js
src/pyoptima/ui/static/_next/static/chunks/1wwpeglw7pm5o.css
src/pyoptima/ui/static/_next/static/chunks/1zwl_31wh8kgq.js
src/pyoptima/ui/static/_next/static/chunks/27jktro2p5rq9.js
src/pyoptima/ui/static/_next/static/chunks/29c47uw7k_ydl.js
src/pyoptima/ui/static/_next/static/chunks/2_a3x7atxh4r8.js
src/pyoptima/ui/static/_next/static/chunks/2b1b169cvlhew.js
src/pyoptima/ui/static/_next/static/chunks/2tcvil_9ipyep.js
src/pyoptima/ui/static/_next/static/chunks/310vm2bl3xxpt.js
src/pyoptima/ui/static/_next/static/chunks/31y18jnjhxsnz.js
src/pyoptima/ui/static/_next/static/chunks/369y3las314rc.js
src/pyoptima/ui/static/_next/static/chunks/3qoxktd-_8tek.js
src/pyoptima/ui/static/_next/static/chunks/3rxl-jt3pdxgx.js
src/pyoptima/ui/static/_next/static/chunks/turbopack-1qzs_0ab81umx.js
src/pyoptima/ui/static/_next/static/nk8Ov1hGX78qDCElMg3OQ/_buildManifest.js
src/pyoptima/ui/static/_next/static/nk8Ov1hGX78qDCElMg3OQ/_clientMiddlewareManifest.js
src/pyoptima/ui/static/_next/static/nk8Ov1hGX78qDCElMg3OQ/_ssgManifest.js
src/pyoptima/ui/static/_not-found/__next._full.txt
src/pyoptima/ui/static/_not-found/__next._head.txt
src/pyoptima/ui/static/_not-found/__next._index.txt
src/pyoptima/ui/static/_not-found/__next._not-found.__PAGE__.txt
src/pyoptima/ui/static/_not-found/__next._not-found.txt
src/pyoptima/ui/static/_not-found/__next._tree.txt
src/pyoptima/ui/static/_not-found/index.html
src/pyoptima/ui/static/_not-found/index.txt
src/pyoptima/ui/static/data/__next._full.txt
src/pyoptima/ui/static/data/__next._head.txt
src/pyoptima/ui/static/data/__next._index.txt
src/pyoptima/ui/static/data/__next._tree.txt
src/pyoptima/ui/static/data/__next.data.__PAGE__.txt
src/pyoptima/ui/static/data/__next.data.txt
src/pyoptima/ui/static/data/index.html
src/pyoptima/ui/static/data/index.txt
src/pyoptima/ui/static/documentation/__next._full.txt
src/pyoptima/ui/static/documentation/__next._head.txt
src/pyoptima/ui/static/documentation/__next._index.txt
src/pyoptima/ui/static/documentation/__next._tree.txt
src/pyoptima/ui/static/documentation/__next.documentation.__PAGE__.txt
src/pyoptima/ui/static/documentation/__next.documentation.txt
src/pyoptima/ui/static/documentation/index.html
src/pyoptima/ui/static/documentation/index.txt
src/pyoptima/ui/static/login/__next._full.txt
src/pyoptima/ui/static/login/__next._head.txt
src/pyoptima/ui/static/login/__next._index.txt
src/pyoptima/ui/static/login/__next._tree.txt
src/pyoptima/ui/static/login/__next.login.__PAGE__.txt
src/pyoptima/ui/static/login/__next.login.txt
src/pyoptima/ui/static/login/index.html
src/pyoptima/ui/static/login/index.txt
src/pyoptima/ui/static/methods/__next._full.txt
src/pyoptima/ui/static/methods/__next._head.txt
src/pyoptima/ui/static/methods/__next._index.txt
src/pyoptima/ui/static/methods/__next._tree.txt
src/pyoptima/ui/static/methods/__next.methods.__PAGE__.txt
src/pyoptima/ui/static/methods/__next.methods.txt
src/pyoptima/ui/static/methods/index.html
src/pyoptima/ui/static/methods/index.txt
src/pyoptima/ui/static/runs/__next._full.txt
src/pyoptima/ui/static/runs/__next._head.txt
src/pyoptima/ui/static/runs/__next._index.txt
src/pyoptima/ui/static/runs/__next._tree.txt
src/pyoptima/ui/static/runs/__next.runs.__PAGE__.txt
src/pyoptima/ui/static/runs/__next.runs.txt
src/pyoptima/ui/static/runs/index.html
src/pyoptima/ui/static/runs/index.txt
src/pyoptima/ui/static/settings/__next._full.txt
src/pyoptima/ui/static/settings/__next._head.txt
src/pyoptima/ui/static/settings/__next._index.txt
src/pyoptima/ui/static/settings/__next._tree.txt
src/pyoptima/ui/static/settings/__next.settings.__PAGE__.txt
src/pyoptima/ui/static/settings/__next.settings.txt
src/pyoptima/ui/static/settings/index.html
src/pyoptima/ui/static/settings/index.txt
src/pyoptima/ui/static/static/404.html
src/pyoptima/ui/static/static/__next.__PAGE__.txt
src/pyoptima/ui/static/static/__next._full.txt
src/pyoptima/ui/static/static/__next._head.txt
src/pyoptima/ui/static/static/__next._index.txt
src/pyoptima/ui/static/static/__next._tree.txt
src/pyoptima/ui/static/static/index.html
src/pyoptima/ui/static/static/index.txt
src/pyoptima/ui/static/static/404/index.html
src/pyoptima/ui/static/static/_next/static/Rnp7gVvezkWHt21pyogjF/_buildManifest.js
src/pyoptima/ui/static/static/_next/static/Rnp7gVvezkWHt21pyogjF/_clientMiddlewareManifest.js
src/pyoptima/ui/static/static/_next/static/Rnp7gVvezkWHt21pyogjF/_ssgManifest.js
src/pyoptima/ui/static/static/_next/static/chunks/05-c3ty_6dwfk.js
src/pyoptima/ui/static/static/_next/static/chunks/07dy-1n4sb_gq.js
src/pyoptima/ui/static/static/_next/static/chunks/0cz1d0mv5g_q7.js
src/pyoptima/ui/static/static/_next/static/chunks/0g9khpky5d1x2.js
src/pyoptima/ui/static/static/_next/static/chunks/0jtyz8e4mlt68.js
src/pyoptima/ui/static/static/_next/static/chunks/0pp_czh_3ftuz.js
src/pyoptima/ui/static/static/_next/static/chunks/1-8s9_t85wwr4.js
src/pyoptima/ui/static/static/_next/static/chunks/15657xna3xc4c.js
src/pyoptima/ui/static/static/_next/static/chunks/1iojk9fkpg5dl.js
src/pyoptima/ui/static/static/_next/static/chunks/1rdwzq95w5po9.js
src/pyoptima/ui/static/static/_next/static/chunks/1uhzl0xs4k_eb.js
src/pyoptima/ui/static/static/_next/static/chunks/1wwpeglw7pm5o.css
src/pyoptima/ui/static/static/_next/static/chunks/1zwl_31wh8kgq.js
src/pyoptima/ui/static/static/_next/static/chunks/27jktro2p5rq9.js
src/pyoptima/ui/static/static/_next/static/chunks/29c47uw7k_ydl.js
src/pyoptima/ui/static/static/_next/static/chunks/2_a3x7atxh4r8.js
src/pyoptima/ui/static/static/_next/static/chunks/2b1b169cvlhew.js
src/pyoptima/ui/static/static/_next/static/chunks/2tcvil_9ipyep.js
src/pyoptima/ui/static/static/_next/static/chunks/310vm2bl3xxpt.js
src/pyoptima/ui/static/static/_next/static/chunks/31y18jnjhxsnz.js
src/pyoptima/ui/static/static/_next/static/chunks/369y3las314rc.js
src/pyoptima/ui/static/static/_next/static/chunks/3qoxktd-_8tek.js
src/pyoptima/ui/static/static/_next/static/chunks/3rxl-jt3pdxgx.js
src/pyoptima/ui/static/static/_next/static/chunks/turbopack-1qzs_0ab81umx.js
src/pyoptima/ui/static/static/_not-found/__next._full.txt
src/pyoptima/ui/static/static/_not-found/__next._head.txt
src/pyoptima/ui/static/static/_not-found/__next._index.txt
src/pyoptima/ui/static/static/_not-found/__next._not-found.__PAGE__.txt
src/pyoptima/ui/static/static/_not-found/__next._not-found.txt
src/pyoptima/ui/static/static/_not-found/__next._tree.txt
src/pyoptima/ui/static/static/_not-found/index.html
src/pyoptima/ui/static/static/_not-found/index.txt
src/pyoptima/ui/static/static/data/__next._full.txt
src/pyoptima/ui/static/static/data/__next._head.txt
src/pyoptima/ui/static/static/data/__next._index.txt
src/pyoptima/ui/static/static/data/__next._tree.txt
src/pyoptima/ui/static/static/data/__next.data.__PAGE__.txt
src/pyoptima/ui/static/static/data/__next.data.txt
src/pyoptima/ui/static/static/data/index.html
src/pyoptima/ui/static/static/data/index.txt
src/pyoptima/ui/static/static/documentation/__next._full.txt
src/pyoptima/ui/static/static/documentation/__next._head.txt
src/pyoptima/ui/static/static/documentation/__next._index.txt
src/pyoptima/ui/static/static/documentation/__next._tree.txt
src/pyoptima/ui/static/static/documentation/__next.documentation.__PAGE__.txt
src/pyoptima/ui/static/static/documentation/__next.documentation.txt
src/pyoptima/ui/static/static/documentation/index.html
src/pyoptima/ui/static/static/documentation/index.txt
src/pyoptima/ui/static/static/login/__next._full.txt
src/pyoptima/ui/static/static/login/__next._head.txt
src/pyoptima/ui/static/static/login/__next._index.txt
src/pyoptima/ui/static/static/login/__next._tree.txt
src/pyoptima/ui/static/static/login/__next.login.__PAGE__.txt
src/pyoptima/ui/static/static/login/__next.login.txt
src/pyoptima/ui/static/static/login/index.html
src/pyoptima/ui/static/static/login/index.txt
src/pyoptima/ui/static/static/methods/__next._full.txt
src/pyoptima/ui/static/static/methods/__next._head.txt
src/pyoptima/ui/static/static/methods/__next._index.txt
src/pyoptima/ui/static/static/methods/__next._tree.txt
src/pyoptima/ui/static/static/methods/__next.methods.__PAGE__.txt
src/pyoptima/ui/static/static/methods/__next.methods.txt
src/pyoptima/ui/static/static/methods/index.html
src/pyoptima/ui/static/static/methods/index.txt
src/pyoptima/ui/static/static/runs/__next._full.txt
src/pyoptima/ui/static/static/runs/__next._head.txt
src/pyoptima/ui/static/static/runs/__next._index.txt
src/pyoptima/ui/static/static/runs/__next._tree.txt
src/pyoptima/ui/static/static/runs/__next.runs.__PAGE__.txt
src/pyoptima/ui/static/static/runs/__next.runs.txt
src/pyoptima/ui/static/static/runs/index.html
src/pyoptima/ui/static/static/runs/index.txt
src/pyoptima/ui/static/static/settings/__next._full.txt
src/pyoptima/ui/static/static/settings/__next._head.txt
src/pyoptima/ui/static/static/settings/__next._index.txt
src/pyoptima/ui/static/static/settings/__next._tree.txt
src/pyoptima/ui/static/static/settings/__next.settings.__PAGE__.txt
src/pyoptima/ui/static/static/settings/__next.settings.txt
src/pyoptima/ui/static/static/settings/index.html
src/pyoptima/ui/static/static/settings/index.txt
src/pyoptima/ui/static/static/studio/__next._full.txt
src/pyoptima/ui/static/static/studio/__next._head.txt
src/pyoptima/ui/static/static/studio/__next._index.txt
src/pyoptima/ui/static/static/studio/__next._tree.txt
src/pyoptima/ui/static/static/studio/__next.studio.__PAGE__.txt
src/pyoptima/ui/static/static/studio/__next.studio.txt
src/pyoptima/ui/static/static/studio/index.html
src/pyoptima/ui/static/static/studio/index.txt
src/pyoptima/ui/static/studio/__next._full.txt
src/pyoptima/ui/static/studio/__next._head.txt
src/pyoptima/ui/static/studio/__next._index.txt
src/pyoptima/ui/static/studio/__next._tree.txt
src/pyoptima/ui/static/studio/__next.studio.__PAGE__.txt
src/pyoptima/ui/static/studio/__next.studio.txt
src/pyoptima/ui/static/studio/index.html
src/pyoptima/ui/static/studio/index.txt
src/pyoptima/utils/__init__.py
src/pyoptima/utils/logging.py
src/pyoptima/worker/__init__.py
src/pyoptima/worker/config.py
src/pyoptima/worker/models.py
src/pyoptima/worker/processor.py
src/pyoptima/worker/runner.py
src/pyoptima/worker/job_sources/__init__.py
src/pyoptima/worker/job_sources/_database_admin_sql.py
src/pyoptima/worker/job_sources/_database_sql.py
src/pyoptima/worker/job_sources/base.py
src/pyoptima/worker/job_sources/database.py
tests/__init__.py
tests/conftest.py
tests/test_pyfortis_seam.py
tests/integration/__init__.py
tests/integration/test_api_optimize.py
tests/integration/test_cli_solve.py
tests/integration/test_etl_pipeline.py
tests/integration/test_fleet_ui_smoke.py
tests/integration/test_portfolio_optimizer.py
tests/integration/test_templates_smoke.py
tests/unit/__init__.py
tests/unit/test_auth.py
tests/unit/test_base_optimizer.py
tests/unit/test_cli.py
tests/unit/test_constraints.py
tests/unit/test_ecommerce_templates.py
tests/unit/test_engine_reporting.py
tests/unit/test_etl_integration.py
tests/unit/test_examples.py
tests/unit/test_exception_boundaries.py
tests/unit/test_expr_template.py
tests/unit/test_general_template_inputs.py
tests/unit/test_http_errors.py
tests/unit/test_io.py
tests/unit/test_log_secret_hygiene.py
tests/unit/test_pairing_generation.py
tests/unit/test_phase8_features.py
tests/unit/test_portfolio_builders.py
tests/unit/test_portfolio_inputs.py
tests/unit/test_portfolio_math.py
tests/unit/test_portfolio_osqp.py
tests/unit/test_result.py
tests/unit/test_roster.py
tests/unit/test_scipy_solver.py
tests/unit/test_trading_infra.py
tests/unit/test_trading_templates.py
tests/unit/test_typed_contract.py
tests/unit/test_ui_server_security.py
tests/unit/api/__init__.py
tests/unit/api/test_analysis.py
tests/unit/api/test_moments.py
tests/unit/api/test_optimize_offload.py
tests/unit/api/test_optimize_portfolio_matrix.py
tests/unit/api/test_template_schema_drift.py
tests/unit/api/test_templates_schema.py
tests/unit/expression/__init__.py
tests/unit/expression/test_evaluator.py
tests/unit/expression/test_parser.py
tests/unit/solvers/__init__.py
tests/unit/solvers/test_osqp_solver.py
tests/unit/solvers/test_pyomo_solver.py
tests/unit/solvers/test_solver_hookup.py
tests/unit/worker/__init__.py
tests/unit/worker/test_database_job_source.py
tests/unit/worker/test_processor.py
tests/unit/worker/test_runner.py