aether-quant 5.4.9__tar.gz → 6.6.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1332) hide show
  1. aether_quant-6.6.4/.devcontainer/README.md +6 -0
  2. aether_quant-6.6.4/.devcontainer/dind-v1-test/devcontainer.json +14 -0
  3. aether_quant-6.6.4/.dockerignore +55 -0
  4. aether_quant-6.6.4/.gitattributes +5 -0
  5. aether_quant-6.6.4/.githooks/README.md +5 -0
  6. aether_quant-6.6.4/.githooks/pre-commit +36 -0
  7. aether_quant-6.6.4/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
  8. aether_quant-6.6.4/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  9. aether_quant-6.6.4/.github/PULL_REQUEST_TEMPLATE.md +26 -0
  10. aether_quant-6.6.4/.github/dependabot.yml +21 -0
  11. aether_quant-6.6.4/.github/workflows/ci.yml +420 -0
  12. aether_quant-6.6.4/.github/workflows/formal.yml +71 -0
  13. aether_quant-6.6.4/.github/workflows/forward-ledger.yml +53 -0
  14. aether_quant-6.6.4/.github/workflows/keepalive.yml +26 -0
  15. aether_quant-6.6.4/.github/workflows/release.yml +125 -0
  16. aether_quant-6.6.4/.github/workflows/research-cycle.yml +53 -0
  17. aether_quant-6.6.4/.gitignore +231 -0
  18. aether_quant-6.6.4/.gitleaks.toml +9 -0
  19. aether_quant-6.6.4/AGENTS.md +99 -0
  20. aether_quant-6.6.4/CODE_OF_CONDUCT.md +20 -0
  21. aether_quant-6.6.4/CONTRIBUTING.md +68 -0
  22. aether_quant-6.6.4/PKG-INFO +930 -0
  23. aether_quant-6.6.4/README.md +893 -0
  24. aether_quant-6.6.4/REPRODUCIBILITY.md +58 -0
  25. aether_quant-6.6.4/RUNBOOK.md +171 -0
  26. aether_quant-6.6.4/SECURITY.md +28 -0
  27. aether_quant-6.6.4/aether_quant/README.md +37 -0
  28. aether_quant-6.6.4/aether_quant/__init__.py +13 -0
  29. aether_quant-6.6.4/aether_quant/_formal_cases/admission.json +22409 -0
  30. aether_quant-6.6.4/aether_quant/_formal_cases/book_construction.json +34008 -0
  31. aether_quant-6.6.4/aether_quant/_formal_cases/book_neutrality.json +20521 -0
  32. aether_quant-6.6.4/aether_quant/_formal_cases/cost_model.json +9249 -0
  33. aether_quant-6.6.4/aether_quant/_formal_cases/generation_blend.json +10509 -0
  34. aether_quant-6.6.4/aether_quant/_formal_cases/generation_glide.json +12009 -0
  35. aether_quant-6.6.4/aether_quant/_formal_cases/hash_chain.json +603 -0
  36. aether_quant-6.6.4/aether_quant/_formal_cases/holdout_once.json +5503 -0
  37. aether_quant-6.6.4/aether_quant/_formal_cases/json_safety.json +3246 -0
  38. aether_quant-6.6.4/aether_quant/_formal_cases/kill_switch.json +17270 -0
  39. aether_quant-6.6.4/aether_quant/_formal_cases/order_gate.json +5879 -0
  40. aether_quant-6.6.4/aether_quant/_formal_cases/position_sizing.json +10509 -0
  41. aether_quant-6.6.4/aether_quant/_formal_cases/reconciliation.json +11402 -0
  42. aether_quant-6.6.4/aether_quant/_formal_cases/risk_controls.json +8559 -0
  43. aether_quant-6.6.4/aether_quant/_formal_cases/session_resolve.json +6628 -0
  44. aether_quant-6.6.4/aether_quant/_formal_cases/sleeve_guard.json +6653 -0
  45. aether_quant-6.6.4/aether_quant/analyzer.py +10 -0
  46. aether_quant-6.6.4/aether_quant/audit.py +6 -0
  47. aether_quant-6.6.4/aether_quant/cycle.py +170 -0
  48. aether_quant-6.6.4/aether_quant/data.py +108 -0
  49. aether_quant-6.6.4/aether_quant/evaluation.py +103 -0
  50. aether_quant-6.6.4/aether_quant/execution.py +95 -0
  51. aether_quant-6.6.4/aether_quant/experience.py +16 -0
  52. aether_quant-6.6.4/aether_quant/experts.py +9 -0
  53. aether_quant-6.6.4/aether_quant/features.py +146 -0
  54. aether_quant-6.6.4/aether_quant/formal.py +44 -0
  55. aether_quant-6.6.4/aether_quant/inference.py +25 -0
  56. aether_quant-6.6.4/aether_quant/io.py +5 -0
  57. aether_quant-6.6.4/aether_quant/liquidity.py +10 -0
  58. aether_quant-6.6.4/aether_quant/moe.py +10 -0
  59. aether_quant-6.6.4/aether_quant/monitoring.py +10 -0
  60. aether_quant-6.6.4/aether_quant/notifications.py +9 -0
  61. aether_quant-6.6.4/aether_quant/performance.py +46 -0
  62. aether_quant-6.6.4/aether_quant/portfolio.py +375 -0
  63. aether_quant-6.6.4/aether_quant/regime.py +12 -0
  64. aether_quant-6.6.4/aether_quant/research.py +107 -0
  65. aether_quant-6.6.4/aether_quant/retraining.py +30 -0
  66. aether_quant-6.6.4/aether_quant/risk.py +108 -0
  67. aether_quant-6.6.4/aether_quant/topology.py +18 -0
  68. aether_quant-6.6.4/aether_quant/training.py +25 -0
  69. aether_quant-6.6.4/aether_quant.egg-info/PKG-INFO +930 -0
  70. aether_quant-6.6.4/aether_quant.egg-info/SOURCES.txt +1090 -0
  71. aether_quant-6.6.4/aether_quant.egg-info/requires.txt +19 -0
  72. aether_quant-6.6.4/aether_quant.egg-info/scm_file_list.json +1086 -0
  73. aether_quant-6.6.4/aether_quant.egg-info/scm_version.json +8 -0
  74. aether_quant-6.6.4/aether_quant.egg-info/top_level.txt +27 -0
  75. aether_quant-6.6.4/analyzer/README.md +19 -0
  76. aether_quant-6.6.4/analyzer/market_analyzer.py +533 -0
  77. aether_quant-6.6.4/aq_cli.py +5365 -0
  78. aether_quant-6.6.4/audit/README.md +13 -0
  79. aether_quant-6.6.4/audit/hash_chain.py +78 -0
  80. aether_quant-6.6.4/audit/postgres_audit.py +75 -0
  81. aether_quant-6.6.4/audit/postgres_worker.py +451 -0
  82. aether_quant-6.6.4/backtests/README.md +9 -0
  83. aether_quant-6.6.4/config.json +2598 -0
  84. aether_quant-6.6.4/cpp_inference_ext/README.md +18 -0
  85. aether_quant-6.6.4/data/README.md +11 -0
  86. aether_quant-6.6.4/data/alternative/trading-economics/indicator/.keep +0 -0
  87. aether_quant-6.6.4/data/reference/crypto_listing_dates.json +83 -0
  88. aether_quant-6.6.4/data_pipeline/README.md +44 -0
  89. aether_quant-6.6.4/data_pipeline/bar_synthesis.py +120 -0
  90. aether_quant-6.6.4/data_pipeline/binance_archive.py +193 -0
  91. aether_quant-6.6.4/data_pipeline/cftc_cot.py +148 -0
  92. aether_quant-6.6.4/data_pipeline/data_audit.py +254 -0
  93. aether_quant-6.6.4/data_pipeline/edgar_facts.py +568 -0
  94. aether_quant-6.6.4/data_pipeline/factor_file_backfill.py +482 -0
  95. aether_quant-6.6.4/data_pipeline/factor_library.py +68 -0
  96. aether_quant-6.6.4/data_pipeline/filing_text.py +104 -0
  97. aether_quant-6.6.4/data_pipeline/finra_short_volume.py +56 -0
  98. aether_quant-6.6.4/data_pipeline/fred_backfill.py +476 -0
  99. aether_quant-6.6.4/data_pipeline/net_retry.py +40 -0
  100. aether_quant-6.6.4/data_pipeline/price_overrides.json +10 -0
  101. aether_quant-6.6.4/data_pipeline/sec_form345.py +113 -0
  102. aether_quant-6.6.4/data_pipeline/sp500_membership.py +149 -0
  103. aether_quant-6.6.4/data_pipeline/yfinance_backfill.py +685 -0
  104. aether_quant-6.6.4/development/Changelog.md +902 -0
  105. aether_quant-6.6.4/development/Problems.md +1715 -0
  106. aether_quant-6.6.4/development/README.md +12 -0
  107. aether_quant-6.6.4/development/architecture.md +233 -0
  108. aether_quant-6.6.4/development/asset_universe.md +32 -0
  109. aether_quant-6.6.4/development/backtest_equity_chart.png +0 -0
  110. aether_quant-6.6.4/development/backups/Changelog.md.bak_pre_condense_v63 +2191 -0
  111. aether_quant-6.6.4/development/backups/Changelog.md.bak_pre_condense_v662 +2032 -0
  112. aether_quant-6.6.4/development/backups/Problems.md.bak_pre_condense_v63 +2508 -0
  113. aether_quant-6.6.4/development/backups/Problems.md.bak_pre_condense_v662 +3306 -0
  114. aether_quant-6.6.4/development/backups/Problems_pre_v664_b8.md +1710 -0
  115. aether_quant-6.6.4/development/backups/README.md +12 -0
  116. aether_quant-6.6.4/development/infrastructure.md +209 -0
  117. aether_quant-6.6.4/development/monte_carlo_equity_curves.png +0 -0
  118. aether_quant-6.6.4/development/project_structure.md +53 -0
  119. aether_quant-6.6.4/development/research_results.md +371 -0
  120. aether_quant-6.6.4/development/verification.md +75 -0
  121. aether_quant-6.6.4/docker-compose.yml +295 -0
  122. aether_quant-6.6.4/docs_facts.py +139 -0
  123. aether_quant-6.6.4/evaluation/README.md +73 -0
  124. aether_quant-6.6.4/evaluation/__init__.py +75 -0
  125. aether_quant-6.6.4/evaluation/alpha_decay.py +130 -0
  126. aether_quant-6.6.4/evaluation/alpha_proof.py +288 -0
  127. aether_quant-6.6.4/evaluation/audit_runners.py +156 -0
  128. aether_quant-6.6.4/evaluation/backtest_audit.py +537 -0
  129. aether_quant-6.6.4/evaluation/backtest_statistics.py +732 -0
  130. aether_quant-6.6.4/evaluation/class_ic_audit.py +101 -0
  131. aether_quant-6.6.4/evaluation/classification_parity.py +132 -0
  132. aether_quant-6.6.4/evaluation/engaged_day_skill.py +128 -0
  133. aether_quant-6.6.4/evaluation/factor_neutralization_check.py +175 -0
  134. aether_quant-6.6.4/evaluation/factor_spanning.py +97 -0
  135. aether_quant-6.6.4/evaluation/feature_parity.py +361 -0
  136. aether_quant-6.6.4/evaluation/feature_quality_audit.py +145 -0
  137. aether_quant-6.6.4/evaluation/fill_price_audit.py +216 -0
  138. aether_quant-6.6.4/evaluation/forward_ledger.py +171 -0
  139. aether_quant-6.6.4/evaluation/gate_audit.py +134 -0
  140. aether_quant-6.6.4/evaluation/gate_replica_audit.py +119 -0
  141. aether_quant-6.6.4/evaluation/generation_ledger.py +313 -0
  142. aether_quant-6.6.4/evaluation/generation_registry.py +189 -0
  143. aether_quant-6.6.4/evaluation/glide_calibration.py +263 -0
  144. aether_quant-6.6.4/evaluation/head_audit.py +148 -0
  145. aether_quant-6.6.4/evaluation/kill_switch_replay.py +229 -0
  146. aether_quant-6.6.4/evaluation/leakage_audit.py +125 -0
  147. aether_quant-6.6.4/evaluation/lean_attribution.py +436 -0
  148. aether_quant-6.6.4/evaluation/lean_benchmarks.py +55 -0
  149. aether_quant-6.6.4/evaluation/lean_report.py +46 -0
  150. aether_quant-6.6.4/evaluation/lean_statistics.py +178 -0
  151. aether_quant-6.6.4/evaluation/lean_verdict.py +126 -0
  152. aether_quant-6.6.4/evaluation/live_parity.py +760 -0
  153. aether_quant-6.6.4/evaluation/ml_cleanup.py +91 -0
  154. aether_quant-6.6.4/evaluation/model_audit.py +80 -0
  155. aether_quant-6.6.4/evaluation/model_predictions.py +308 -0
  156. aether_quant-6.6.4/evaluation/monte_carlo.py +162 -0
  157. aether_quant-6.6.4/evaluation/overfit_diagnostics.py +64 -0
  158. aether_quant-6.6.4/evaluation/paper_protocol.py +216 -0
  159. aether_quant-6.6.4/evaluation/pbo.py +68 -0
  160. aether_quant-6.6.4/evaluation/power_analysis.py +54 -0
  161. aether_quant-6.6.4/evaluation/premia_research.py +241 -0
  162. aether_quant-6.6.4/evaluation/probability_calibration.py +200 -0
  163. aether_quant-6.6.4/evaluation/rank_book_simulator.py +1348 -0
  164. aether_quant-6.6.4/evaluation/rank_ic_core.py +225 -0
  165. aether_quant-6.6.4/evaluation/rank_signal_calibration.py +753 -0
  166. aether_quant-6.6.4/evaluation/readme_research.py +658 -0
  167. aether_quant-6.6.4/evaluation/readme_statistics.py +237 -0
  168. aether_quant-6.6.4/evaluation/research_cells.py +154 -0
  169. aether_quant-6.6.4/evaluation/research_cycle.py +171 -0
  170. aether_quant-6.6.4/evaluation/research_harness.py +112 -0
  171. aether_quant-6.6.4/evaluation/research_probes.py +66 -0
  172. aether_quant-6.6.4/evaluation/research_round.py +536 -0
  173. aether_quant-6.6.4/evaluation/research_runners.py +98 -0
  174. aether_quant-6.6.4/evaluation/rolling_ic_gate_calibration.py +186 -0
  175. aether_quant-6.6.4/evaluation/rolling_ic_gate_replay.py +133 -0
  176. aether_quant-6.6.4/evaluation/rolling_ic_series.py +147 -0
  177. aether_quant-6.6.4/evaluation/round_builders.py +100 -0
  178. aether_quant-6.6.4/evaluation/sim_lean_calibration.py +83 -0
  179. aether_quant-6.6.4/evaluation/target_weights_engine.py +435 -0
  180. aether_quant-6.6.4/evaluation/trade_bootstrap.py +74 -0
  181. aether_quant-6.6.4/evaluation/tranche_book.py +111 -0
  182. aether_quant-6.6.4/evaluation/trend_sleeve_backtest.py +161 -0
  183. aether_quant-6.6.4/evaluation/trial_ledger.py +99 -0
  184. aether_quant-6.6.4/evaluation/trial_registry.py +82 -0
  185. aether_quant-6.6.4/evaluation/verification_matrix.py +147 -0
  186. aether_quant-6.6.4/evaluation/volatility_threshold_calibration.py +100 -0
  187. aether_quant-6.6.4/evaluation/walk_forward_linear.py +78 -0
  188. aether_quant-6.6.4/evaluation/wide_context.py +319 -0
  189. aether_quant-6.6.4/examples/aether_quant_cycle.py +44 -0
  190. aether_quant-6.6.4/examples/aether_quant_quickstart.py +71 -0
  191. aether_quant-6.6.4/execution/README.md +65 -0
  192. aether_quant-6.6.4/execution/__init__.py +98 -0
  193. aether_quant-6.6.4/execution/cost_model.py +307 -0
  194. aether_quant-6.6.4/execution/lean_config_render.py +156 -0
  195. aether_quant-6.6.4/execution/live_credentials_io.py +52 -0
  196. aether_quant-6.6.4/execution/order_gate.py +575 -0
  197. aether_quant-6.6.4/execution/paper_readiness.py +191 -0
  198. aether_quant-6.6.4/execution/paper_readiness_io.py +62 -0
  199. aether_quant-6.6.4/execution/paper_readiness_report.py +107 -0
  200. aether_quant-6.6.4/execution/paper_readiness_scheduler.py +136 -0
  201. aether_quant-6.6.4/experience/README.md +14 -0
  202. aether_quant-6.6.4/experts/README.md +7 -0
  203. aether_quant-6.6.4/features/README.md +22 -0
  204. aether_quant-6.6.4/features/__init__.py +139 -0
  205. aether_quant-6.6.4/features/asof_beta_labels.py +115 -0
  206. aether_quant-6.6.4/features/bond_features.py +418 -0
  207. aether_quant-6.6.4/features/cross_asset_sensitivity.py +120 -0
  208. aether_quant-6.6.4/features/cross_asset_timing.py +209 -0
  209. aether_quant-6.6.4/features/cross_sectional_inputs.py +157 -0
  210. aether_quant-6.6.4/features/cross_sectional_norm.py +16 -0
  211. aether_quant-6.6.4/features/fx_carry.py +67 -0
  212. aether_quant-6.6.4/features/fx_signals.py +109 -0
  213. aether_quant-6.6.4/features/training_splits.py +202 -0
  214. aether_quant-6.6.4/features/wide_panel.py +220 -0
  215. aether_quant-6.6.4/formal/AetherFormal/Admission.lean +154 -0
  216. aether_quant-6.6.4/formal/AetherFormal/BookConstruction.lean +273 -0
  217. aether_quant-6.6.4/formal/AetherFormal/BookNeutrality.lean +493 -0
  218. aether_quant-6.6.4/formal/AetherFormal/CostModel.lean +98 -0
  219. aether_quant-6.6.4/formal/AetherFormal/GenCases.lean +630 -0
  220. aether_quant-6.6.4/formal/AetherFormal/GenerationBlend.lean +142 -0
  221. aether_quant-6.6.4/formal/AetherFormal/GenerationGlide.lean +80 -0
  222. aether_quant-6.6.4/formal/AetherFormal/HashChain.lean +166 -0
  223. aether_quant-6.6.4/formal/AetherFormal/HoldoutOnce.lean +61 -0
  224. aether_quant-6.6.4/formal/AetherFormal/JsonSafety.lean +110 -0
  225. aether_quant-6.6.4/formal/AetherFormal/KillSwitch.lean +171 -0
  226. aether_quant-6.6.4/formal/AetherFormal/OrderGate.lean +149 -0
  227. aether_quant-6.6.4/formal/AetherFormal/PositionSizing.lean +129 -0
  228. aether_quant-6.6.4/formal/AetherFormal/Real.lean +46 -0
  229. aether_quant-6.6.4/formal/AetherFormal/Reconciliation.lean +111 -0
  230. aether_quant-6.6.4/formal/AetherFormal/RiskControls.lean +104 -0
  231. aether_quant-6.6.4/formal/AetherFormal/SessionResolve.lean +126 -0
  232. aether_quant-6.6.4/formal/AetherFormal/SleeveGuard.lean +71 -0
  233. aether_quant-6.6.4/formal/AetherFormal.lean +18 -0
  234. aether_quant-6.6.4/formal/README.md +84 -0
  235. aether_quant-6.6.4/formal/lake-manifest.json +96 -0
  236. aether_quant-6.6.4/formal/lakefile.toml +10 -0
  237. aether_quant-6.6.4/formal/lean-toolchain +1 -0
  238. aether_quant-6.6.4/generate_backtest_report.py +509 -0
  239. aether_quant-6.6.4/generate_evaluation_report.py +786 -0
  240. aether_quant-6.6.4/inference/README.md +27 -0
  241. aether_quant-6.6.4/inference/__init__.py +58 -0
  242. aether_quant-6.6.4/inference/exported_model.py +1142 -0
  243. aether_quant-6.6.4/inference/parallel_inference.py +160 -0
  244. aether_quant-6.6.4/lean.json +650 -0
  245. aether_quant-6.6.4/liquidity/README.md +25 -0
  246. aether_quant-6.6.4/liquidity/__init__.py +17 -0
  247. aether_quant-6.6.4/liquidity/market_liquidity.py +360 -0
  248. aether_quant-6.6.4/main.py +9464 -0
  249. aether_quant-6.6.4/ml/README.md +28 -0
  250. aether_quant-6.6.4/ml/backups/pre_v630_cleanup.zip +0 -0
  251. aether_quant-6.6.4/ml/forward/candidates.json +65 -0
  252. aether_quant-6.6.4/ml/generations/glide2_policy.json +260 -0
  253. aether_quant-6.6.4/ml/generations/glide_policy.json +55 -0
  254. aether_quant-6.6.4/ml/generations/lifecycle.jsonl +6 -0
  255. aether_quant-6.6.4/ml/generations/policy.json +22 -0
  256. aether_quant-6.6.4/ml/generations/registry.json +468 -0
  257. aether_quant-6.6.4/ml/generations/rules_glide1.json +271 -0
  258. aether_quant-6.6.4/ml/generations/rules_glide1.sha256 +1 -0
  259. aether_quant-6.6.4/ml/generations/rules_glide2.json +453 -0
  260. aether_quant-6.6.4/ml/generations/rules_glide2.sha256 +1 -0
  261. aether_quant-6.6.4/ml/target_weights.csv +1388 -0
  262. aether_quant-6.6.4/ml/target_weights_candidate.json +9 -0
  263. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_multitask_v1_gate_off.json +2387 -0
  264. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_multitask_v2_book_heads.json +2387 -0
  265. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_multitask_v3_listnet.json +2387 -0
  266. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_multitask_v4_stop_rank5d.json +2387 -0
  267. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_sequence_v1_gate_off.json +2387 -0
  268. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_sequence_v2_book_heads.json +2387 -0
  269. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_sequence_v3_listnet.json +2387 -0
  270. aether_quant-6.6.4/ml/variant_configs_v560cs20261008/cfg_sequence_v4_stop_rank5d.json +2387 -0
  271. aether_quant-6.6.4/ml/variant_configs_v560cs20261008r2/cfg_multitask_v1_gate_off.json +2387 -0
  272. aether_quant-6.6.4/ml/variant_configs_v560cs20261008r2/cfg_multitask_v2_book_heads.json +2387 -0
  273. aether_quant-6.6.4/ml/variant_configs_v560cs20261008r2/cfg_multitask_v3_listnet.json +2387 -0
  274. aether_quant-6.6.4/ml/variant_configs_v560cs20261008r2/cfg_multitask_v4_stop_rank5d.json +2387 -0
  275. aether_quant-6.6.4/moe/README.md +17 -0
  276. aether_quant-6.6.4/moe/gating.py +417 -0
  277. aether_quant-6.6.4/monitoring/README.md +19 -0
  278. aether_quant-6.6.4/monitoring/api_server.py +193 -0
  279. aether_quant-6.6.4/monitoring/assets_status.py +136 -0
  280. aether_quant-6.6.4/monitoring/evaluation_state.py +135 -0
  281. aether_quant-6.6.4/notifications/README.md +15 -0
  282. aether_quant-6.6.4/performance/README.md +16 -0
  283. aether_quant-6.6.4/performance_probe.py +219 -0
  284. aether_quant-6.6.4/portfolio/README.md +61 -0
  285. aether_quant-6.6.4/portfolio/__init__.py +69 -0
  286. aether_quant-6.6.4/portfolio/book_construction.py +1065 -0
  287. aether_quant-6.6.4/portfolio/book_neutrality.py +198 -0
  288. aether_quant-6.6.4/portfolio/cash_sweep.py +149 -0
  289. aether_quant-6.6.4/portfolio/class_sleeve.py +99 -0
  290. aether_quant-6.6.4/portfolio/crypto_signals.py +157 -0
  291. aether_quant-6.6.4/portfolio/direction_overlay.py +97 -0
  292. aether_quant-6.6.4/portfolio/filing_signals.py +191 -0
  293. aether_quant-6.6.4/portfolio/financing.py +82 -0
  294. aether_quant-6.6.4/portfolio/forex_sleeve.py +33 -0
  295. aether_quant-6.6.4/portfolio/generation_blend.py +248 -0
  296. aether_quant-6.6.4/portfolio/legacy_sleeve.py +165 -0
  297. aether_quant-6.6.4/portfolio/options_arbitrage_detector.py +267 -0
  298. aether_quant-6.6.4/portfolio/options_strategy.py +2013 -0
  299. aether_quant-6.6.4/portfolio/premia_signals.py +455 -0
  300. aether_quant-6.6.4/portfolio/rank_signal.py +282 -0
  301. aether_quant-6.6.4/portfolio/rolling_ic_gate.py +201 -0
  302. aether_quant-6.6.4/portfolio/signal_construction.py +70 -0
  303. aether_quant-6.6.4/portfolio/sleeve_guard.py +98 -0
  304. aether_quant-6.6.4/portfolio/target_weights.py +260 -0
  305. aether_quant-6.6.4/portfolio/trend_sleeve.py +164 -0
  306. aether_quant-6.6.4/portfolio/wide_signals.py +79 -0
  307. aether_quant-6.6.4/pyproject.toml +165 -0
  308. aether_quant-6.6.4/regime/README.md +15 -0
  309. aether_quant-6.6.4/regime/__init__.py +19 -0
  310. aether_quant-6.6.4/regime/market_regime.py +215 -0
  311. aether_quant-6.6.4/requirements/README.md +13 -0
  312. aether_quant-6.6.4/requirements/requirements-dev.txt +74 -0
  313. aether_quant-6.6.4/requirements/requirements.txt +48 -0
  314. aether_quant-6.6.4/retraining/README.md +45 -0
  315. aether_quant-6.6.4/retraining/lean_backtest.py +69 -0
  316. aether_quant-6.6.4/retraining/orchestrator.py +964 -0
  317. aether_quant-6.6.4/retraining/validation_gate.py +363 -0
  318. aether_quant-6.6.4/retraining/vault_client.py +216 -0
  319. aether_quant-6.6.4/retraining/vault_commands.py +73 -0
  320. aether_quant-6.6.4/retraining/worker.py +366 -0
  321. aether_quant-6.6.4/risk/README.md +56 -0
  322. aether_quant-6.6.4/risk/asset_class_router.py +632 -0
  323. aether_quant-6.6.4/risk/forex_risk.py +182 -0
  324. aether_quant-6.6.4/risk/kill_switch.py +289 -0
  325. aether_quant-6.6.4/risk/position_sizing.py +308 -0
  326. aether_quant-6.6.4/risk/rl_sizing.py +263 -0
  327. aether_quant-6.6.4/risk_controls.py +511 -0
  328. aether_quant-6.6.4/scripts/README.md +78 -0
  329. aether_quant-6.6.4/scripts/active_baseline.py +42 -0
  330. aether_quant-6.6.4/scripts/active_baseline_swap.sh +51 -0
  331. aether_quant-6.6.4/scripts/as_live_levers.py +435 -0
  332. aether_quant-6.6.4/scripts/book_variant_research.py +251 -0
  333. aether_quant-6.6.4/scripts/build_crypto_wide_root.py +218 -0
  334. aether_quant-6.6.4/scripts/build_filing_signals.py +198 -0
  335. aether_quant-6.6.4/scripts/build_holdout_data.py +132 -0
  336. aether_quant-6.6.4/scripts/build_holdout_dataset.py +116 -0
  337. aether_quant-6.6.4/scripts/build_legacy_probability.py +172 -0
  338. aether_quant-6.6.4/scripts/build_pre2013_root.py +124 -0
  339. aether_quant-6.6.4/scripts/build_trial_registry.py +36 -0
  340. aether_quant-6.6.4/scripts/build_wide_info.py +204 -0
  341. aether_quant-6.6.4/scripts/build_wide_root.py +167 -0
  342. aether_quant-6.6.4/scripts/check_axioms.py +97 -0
  343. aether_quant-6.6.4/scripts/check_test_count_drift.py +68 -0
  344. aether_quant-6.6.4/scripts/class_sleeve_research.py +196 -0
  345. aether_quant-6.6.4/scripts/clean_checkout_test.ps1 +57 -0
  346. aether_quant-6.6.4/scripts/codespace_calibration_v600.sh +19 -0
  347. aether_quant-6.6.4/scripts/codespace_clean_checkout_test.sh +14 -0
  348. aether_quant-6.6.4/scripts/codespace_diag.sh +8 -0
  349. aether_quant-6.6.4/scripts/codespace_engine_check.sh +29 -0
  350. aether_quant-6.6.4/scripts/codespace_final_session.sh +14 -0
  351. aether_quant-6.6.4/scripts/codespace_grep.sh +5 -0
  352. aether_quant-6.6.4/scripts/codespace_keepalive.sh +9 -0
  353. aether_quant-6.6.4/scripts/codespace_lean_dind.sh +122 -0
  354. aether_quant-6.6.4/scripts/codespace_lean_parallel.sh +107 -0
  355. aether_quant-6.6.4/scripts/codespace_lean_run.ps1 +143 -0
  356. aether_quant-6.6.4/scripts/codespace_mem.sh +7 -0
  357. aether_quant-6.6.4/scripts/codespace_memsummary.sh +10 -0
  358. aether_quant-6.6.4/scripts/codespace_memwatch.sh +11 -0
  359. aether_quant-6.6.4/scripts/codespace_p53_eval.sh +30 -0
  360. aether_quant-6.6.4/scripts/codespace_pack_eval.sh +6 -0
  361. aether_quant-6.6.4/scripts/codespace_predict_v600.sh +14 -0
  362. aether_quant-6.6.4/scripts/codespace_predict_v610.sh +10 -0
  363. aether_quant-6.6.4/scripts/codespace_prepare_v580.sh +32 -0
  364. aether_quant-6.6.4/scripts/codespace_prove.sh +35 -0
  365. aether_quant-6.6.4/scripts/codespace_readme_v610.sh +74 -0
  366. aether_quant-6.6.4/scripts/codespace_rebuild_then_b.sh +22 -0
  367. aether_quant-6.6.4/scripts/codespace_research_v600.sh +17 -0
  368. aether_quant-6.6.4/scripts/codespace_research_v610.sh +60 -0
  369. aether_quant-6.6.4/scripts/codespace_research_v620.sh +72 -0
  370. aether_quant-6.6.4/scripts/codespace_retrain_a.sh +46 -0
  371. aether_quant-6.6.4/scripts/codespace_retrain_b.sh +78 -0
  372. aether_quant-6.6.4/scripts/codespace_retrain_v570.sh +145 -0
  373. aether_quant-6.6.4/scripts/codespace_retrain_v580.sh +157 -0
  374. aether_quant-6.6.4/scripts/codespace_run_tests.sh +6 -0
  375. aether_quant-6.6.4/scripts/codespace_session_v600.sh +115 -0
  376. aether_quant-6.6.4/scripts/codespace_session_v610.sh +118 -0
  377. aether_quant-6.6.4/scripts/codespace_session_v620.sh +107 -0
  378. aether_quant-6.6.4/scripts/codespace_session_v630.sh +87 -0
  379. aether_quant-6.6.4/scripts/codespace_session_v640.sh +226 -0
  380. aether_quant-6.6.4/scripts/codespace_session_v644.sh +152 -0
  381. aether_quant-6.6.4/scripts/codespace_session_v644b.sh +100 -0
  382. aether_quant-6.6.4/scripts/codespace_session_v650.sh +84 -0
  383. aether_quant-6.6.4/scripts/codespace_start_bg.sh +9 -0
  384. aether_quant-6.6.4/scripts/codespace_status.sh +12 -0
  385. aether_quant-6.6.4/scripts/codespace_stop_jobs.sh +21 -0
  386. aether_quant-6.6.4/scripts/codespace_survival_test.sh +19 -0
  387. aether_quant-6.6.4/scripts/codespace_sync.ps1 +243 -0
  388. aether_quant-6.6.4/scripts/codespace_topology_retrain.sh +11 -0
  389. aether_quant-6.6.4/scripts/codespace_v664_extras.sh +44 -0
  390. aether_quant-6.6.4/scripts/codespace_verify.ps1 +60 -0
  391. aether_quant-6.6.4/scripts/codespace_verify.sh +149 -0
  392. aether_quant-6.6.4/scripts/codespace_wf_cleaner.sh +15 -0
  393. aether_quant-6.6.4/scripts/codespace_wf_done.sh +10 -0
  394. aether_quant-6.6.4/scripts/codespace_wf_progress.sh +8 -0
  395. aether_quant-6.6.4/scripts/coinbase_listing_dates.py +102 -0
  396. aether_quant-6.6.4/scripts/compare_datasets.py +80 -0
  397. aether_quant-6.6.4/scripts/compare_training_variants.py +183 -0
  398. aether_quant-6.6.4/scripts/crypto_fee_research.py +189 -0
  399. aether_quant-6.6.4/scripts/crypto_graduation_research.py +128 -0
  400. aether_quant-6.6.4/scripts/cycle_daily.py +234 -0
  401. aether_quant-6.6.4/scripts/cycle_decide.py +69 -0
  402. aether_quant-6.6.4/scripts/cycle_lean.py +237 -0
  403. aether_quant-6.6.4/scripts/cycle_retrain.py +327 -0
  404. aether_quant-6.6.4/scripts/daily_target_weights.py +150 -0
  405. aether_quant-6.6.4/scripts/data_append_guard.py +156 -0
  406. aether_quant-6.6.4/scripts/data_append_refresh.py +145 -0
  407. aether_quant-6.6.4/scripts/extend_frozen_weights.py +57 -0
  408. aether_quant-6.6.4/scripts/feature_parity_audit.py +440 -0
  409. aether_quant-6.6.4/scripts/fetch_cash_sweep_data.py +58 -0
  410. aether_quant-6.6.4/scripts/field_services.sh +57 -0
  411. aether_quant-6.6.4/scripts/field_test_services.py +140 -0
  412. aether_quant-6.6.4/scripts/forex_keep_or_drop.py +107 -0
  413. aether_quant-6.6.4/scripts/forex_sleeve_research.py +120 -0
  414. aether_quant-6.6.4/scripts/forward_ledger.py +207 -0
  415. aether_quant-6.6.4/scripts/freeze_run_config.py +64 -0
  416. aether_quant-6.6.4/scripts/gate_research.py +152 -0
  417. aether_quant-6.6.4/scripts/gate_value_compare.py +100 -0
  418. aether_quant-6.6.4/scripts/holdout_report.py +122 -0
  419. aether_quant-6.6.4/scripts/install_hooks.py +61 -0
  420. aether_quant-6.6.4/scripts/k09_decide.py +99 -0
  421. aether_quant-6.6.4/scripts/lean_calibration.py +460 -0
  422. aether_quant-6.6.4/scripts/lean_smoke/exception_scope.py +51 -0
  423. aether_quant-6.6.4/scripts/lean_smoke/futures_margin.py +46 -0
  424. aether_quant-6.6.4/scripts/lean_smoke/live_plumbing.sh +82 -0
  425. aether_quant-6.6.4/scripts/lean_smoke/live_plumbing_report.py +91 -0
  426. aether_quant-6.6.4/scripts/lean_smoke/main_option_order.py +69 -0
  427. aether_quant-6.6.4/scripts/lean_smoke/main_option_scenarios.py +194 -0
  428. aether_quant-6.6.4/scripts/lean_smoke/make_live_plumbing_config.py +63 -0
  429. aether_quant-6.6.4/scripts/lean_smoke/make_option_main_config.py +53 -0
  430. aether_quant-6.6.4/scripts/lean_smoke/option_structures.py +141 -0
  431. aether_quant-6.6.4/scripts/lean_smoke/run.sh +32 -0
  432. aether_quant-6.6.4/scripts/lean_smoke/run_main_option_order.sh +28 -0
  433. aether_quant-6.6.4/scripts/lean_smoke/run_main_option_scenarios.sh +31 -0
  434. aether_quant-6.6.4/scripts/lean_teardown_smoke/config.json +6 -0
  435. aether_quant-6.6.4/scripts/lean_teardown_smoke/main.py +21 -0
  436. aether_quant-6.6.4/scripts/library_gate.py +180 -0
  437. aether_quant-6.6.4/scripts/make_variant_configs.py +130 -0
  438. aether_quant-6.6.4/scripts/ml_manifest.py +43 -0
  439. aether_quant-6.6.4/scripts/model_candidate_research.py +201 -0
  440. aether_quant-6.6.4/scripts/mutation_check.py +160 -0
  441. aether_quant-6.6.4/scripts/overlap_vs_sharpe_analysis.py +96 -0
  442. aether_quant-6.6.4/scripts/predict_sweep_bt1.py +196 -0
  443. aether_quant-6.6.4/scripts/prepare_v610_candidates.py +142 -0
  444. aether_quant-6.6.4/scripts/profile_main_tick.py +190 -0
  445. aether_quant-6.6.4/scripts/readme_freshness.py +106 -0
  446. aether_quant-6.6.4/scripts/refresh_lean_interest_rate.py +119 -0
  447. aether_quant-6.6.4/scripts/refresh_universe_availability.py +110 -0
  448. aether_quant-6.6.4/scripts/rl_sizing_research.py +102 -0
  449. aether_quant-6.6.4/scripts/select_feature_subset.py +90 -0
  450. aether_quant-6.6.4/scripts/sleeve_alpha_check.py +110 -0
  451. aether_quant-6.6.4/scripts/splice_holdout_dataset.py +212 -0
  452. aether_quant-6.6.4/scripts/topology_sizing_research.py +129 -0
  453. aether_quant-6.6.4/scripts/v610_research.py +450 -0
  454. aether_quant-6.6.4/scripts/v620_research.py +274 -0
  455. aether_quant-6.6.4/scripts/v630_research.py +307 -0
  456. aether_quant-6.6.4/scripts/v640_research.py +1048 -0
  457. aether_quant-6.6.4/scripts/v643_microbench.py +84 -0
  458. aether_quant-6.6.4/scripts/v643_rcal4.py +72 -0
  459. aether_quant-6.6.4/scripts/v643_research.py +451 -0
  460. aether_quant-6.6.4/scripts/v643_sector_cap_frequency.py +84 -0
  461. aether_quant-6.6.4/scripts/v644_make_configs.py +97 -0
  462. aether_quant-6.6.4/scripts/v644_rcal5.py +137 -0
  463. aether_quant-6.6.4/scripts/v644_research.py +640 -0
  464. aether_quant-6.6.4/scripts/v650_amendment2.py +312 -0
  465. aether_quant-6.6.4/scripts/v650_install.py +55 -0
  466. aether_quant-6.6.4/scripts/v650_instrument.py +253 -0
  467. aether_quant-6.6.4/scripts/v650_lean.py +352 -0
  468. aether_quant-6.6.4/scripts/v650_make_recipe.py +44 -0
  469. aether_quant-6.6.4/scripts/v650_ml_scores.py +95 -0
  470. aether_quant-6.6.4/scripts/v650_research.py +222 -0
  471. aether_quant-6.6.4/scripts/v650_trials.py +61 -0
  472. aether_quant-6.6.4/scripts/v650_write_rules.py +104 -0
  473. aether_quant-6.6.4/scripts/v660_build_panel.py +38 -0
  474. aether_quant-6.6.4/scripts/v660_codespace_crypto.sh +13 -0
  475. aether_quant-6.6.4/scripts/v660_codespace_selection.sh +47 -0
  476. aether_quant-6.6.4/scripts/v660_crypto_splices.py +48 -0
  477. aether_quant-6.6.4/scripts/v660_lean.py +234 -0
  478. aether_quant-6.6.4/scripts/v660_rescore_v650.py +59 -0
  479. aether_quant-6.6.4/scripts/v660_research.py +385 -0
  480. aether_quant-6.6.4/scripts/v660_round2.py +408 -0
  481. aether_quant-6.6.4/scripts/v660_sanity.py +54 -0
  482. aether_quant-6.6.4/scripts/v660_trials.py +58 -0
  483. aether_quant-6.6.4/scripts/v660_venue_coverage.py +87 -0
  484. aether_quant-6.6.4/scripts/v660_venue_study.py +118 -0
  485. aether_quant-6.6.4/scripts/v660_verdict.py +201 -0
  486. aether_quant-6.6.4/scripts/v660_wait_codespace.sh +17 -0
  487. aether_quant-6.6.4/scripts/v660_write_rules.py +113 -0
  488. aether_quant-6.6.4/scripts/v661_codespace_audit.sh +11 -0
  489. aether_quant-6.6.4/scripts/v661_codespace_glide2.sh +12 -0
  490. aether_quant-6.6.4/scripts/v661_codespace_round3.sh +43 -0
  491. aether_quant-6.6.4/scripts/v661_glide.py +137 -0
  492. aether_quant-6.6.4/scripts/v661_model_audit.py +52 -0
  493. aether_quant-6.6.4/scripts/v661_replay_check.py +81 -0
  494. aether_quant-6.6.4/scripts/v661_sanity.py +47 -0
  495. aether_quant-6.6.4/scripts/v661_write_round3.py +111 -0
  496. aether_quant-6.6.4/scripts/v664_crypto_gbm.py +113 -0
  497. aether_quant-6.6.4/scripts/v664_drop_eos.py +60 -0
  498. aether_quant-6.6.4/scripts/v664_eos_repin.py +164 -0
  499. aether_quant-6.6.4/scripts/v664_register_observers.py +161 -0
  500. aether_quant-6.6.4/scripts/v664_sanity.py +68 -0
  501. aether_quant-6.6.4/scripts/v664_table_smoke.py +63 -0
  502. aether_quant-6.6.4/scripts/v664_write_rounds.py +178 -0
  503. aether_quant-6.6.4/scripts/vault_record.py +89 -0
  504. aether_quant-6.6.4/scripts/wheel_smoke.py +159 -0
  505. aether_quant-6.6.4/storage/README.md +3 -0
  506. aether_quant-6.6.4/tests/README.md +46 -0
  507. aether_quant-6.6.4/tests/data/aether_quant_api.json +853 -0
  508. aether_quant-6.6.4/tests/data/aether_quant_unexported.json +324 -0
  509. aether_quant-6.6.4/tests/data/modules_without_own_test.json +29 -0
  510. aether_quant-6.6.4/tests/test_aether_quant_api.py +101 -0
  511. aether_quant-6.6.4/tests/test_aether_quant_coverage.py +111 -0
  512. aether_quant-6.6.4/tests/test_aether_quant_quickstart.py +34 -0
  513. aether_quant-6.6.4/tests/test_alpha_decay.py +82 -0
  514. aether_quant-6.6.4/tests/test_alpha_proof.py +112 -0
  515. aether_quant-6.6.4/tests/test_alt_data_v650.py +269 -0
  516. aether_quant-6.6.4/tests/test_api_server.py +199 -0
  517. aether_quant-6.6.4/tests/test_aq_cli.py +4089 -0
  518. aether_quant-6.6.4/tests/test_aq_cycle_cli.py +104 -0
  519. aether_quant-6.6.4/tests/test_as_live_levers.py +96 -0
  520. aether_quant-6.6.4/tests/test_asof_beta_labels.py +102 -0
  521. aether_quant-6.6.4/tests/test_asset_class_router.py +522 -0
  522. aether_quant-6.6.4/tests/test_assets_status.py +160 -0
  523. aether_quant-6.6.4/tests/test_audit_postgres_worker.py +373 -0
  524. aether_quant-6.6.4/tests/test_backtest_audit.py +436 -0
  525. aether_quant-6.6.4/tests/test_backtest_statistics.py +244 -0
  526. aether_quant-6.6.4/tests/test_binance_archive.py +252 -0
  527. aether_quant-6.6.4/tests/test_book_variant_research.py +83 -0
  528. aether_quant-6.6.4/tests/test_build_holdout_dataset.py +39 -0
  529. aether_quant-6.6.4/tests/test_build_legacy_probability.py +55 -0
  530. aether_quant-6.6.4/tests/test_build_pre2013_root.py +77 -0
  531. aether_quant-6.6.4/tests/test_build_trial_registry.py +46 -0
  532. aether_quant-6.6.4/tests/test_cash_sweep.py +93 -0
  533. aether_quant-6.6.4/tests/test_check_axioms.py +48 -0
  534. aether_quant-6.6.4/tests/test_ci_scripts.py +100 -0
  535. aether_quant-6.6.4/tests/test_ci_workflows.py +326 -0
  536. aether_quant-6.6.4/tests/test_class_ic_audit.py +46 -0
  537. aether_quant-6.6.4/tests/test_class_sleeve.py +50 -0
  538. aether_quant-6.6.4/tests/test_class_sleeve_research.py +60 -0
  539. aether_quant-6.6.4/tests/test_classification_parity.py +94 -0
  540. aether_quant-6.6.4/tests/test_cli_help_surface.py +142 -0
  541. aether_quant-6.6.4/tests/test_codespace_lean_scripts.py +142 -0
  542. aether_quant-6.6.4/tests/test_codespace_session_v640.py +48 -0
  543. aether_quant-6.6.4/tests/test_codespace_session_v644.py +112 -0
  544. aether_quant-6.6.4/tests/test_compare_datasets.py +34 -0
  545. aether_quant-6.6.4/tests/test_compare_training_variants.py +100 -0
  546. aether_quant-6.6.4/tests/test_cost_model.py +350 -0
  547. aether_quant-6.6.4/tests/test_cross_asset_timing.py +241 -0
  548. aether_quant-6.6.4/tests/test_cross_sectional_inputs.py +123 -0
  549. aether_quant-6.6.4/tests/test_cross_sectional_norm.py +32 -0
  550. aether_quant-6.6.4/tests/test_crypto_fee_research.py +46 -0
  551. aether_quant-6.6.4/tests/test_crypto_signals.py +208 -0
  552. aether_quant-6.6.4/tests/test_cycle_daily.py +182 -0
  553. aether_quant-6.6.4/tests/test_cycle_lean.py +48 -0
  554. aether_quant-6.6.4/tests/test_cycle_retrain.py +315 -0
  555. aether_quant-6.6.4/tests/test_daily_target_weights.py +108 -0
  556. aether_quant-6.6.4/tests/test_data_append_guard.py +97 -0
  557. aether_quant-6.6.4/tests/test_data_audit.py +105 -0
  558. aether_quant-6.6.4/tests/test_direction_overlay.py +62 -0
  559. aether_quant-6.6.4/tests/test_docs_facts.py +169 -0
  560. aether_quant-6.6.4/tests/test_docs_links.py +155 -0
  561. aether_quant-6.6.4/tests/test_engaged_day_skill.py +88 -0
  562. aether_quant-6.6.4/tests/test_exported_model.py +1121 -0
  563. aether_quant-6.6.4/tests/test_factor_file_backfill.py +397 -0
  564. aether_quant-6.6.4/tests/test_factor_spanning.py +79 -0
  565. aether_quant-6.6.4/tests/test_feature_parity.py +171 -0
  566. aether_quant-6.6.4/tests/test_feature_quality_audit.py +53 -0
  567. aether_quant-6.6.4/tests/test_filing_signals.py +181 -0
  568. aether_quant-6.6.4/tests/test_filing_text.py +64 -0
  569. aether_quant-6.6.4/tests/test_fill_price_audit.py +116 -0
  570. aether_quant-6.6.4/tests/test_financing.py +57 -0
  571. aether_quant-6.6.4/tests/test_forex_keep_or_drop.py +34 -0
  572. aether_quant-6.6.4/tests/test_forex_sleeve.py +44 -0
  573. aether_quant-6.6.4/tests/test_formal_cases_drift.py +25 -0
  574. aether_quant-6.6.4/tests/test_formal_differential_admission.py +38 -0
  575. aether_quant-6.6.4/tests/test_formal_differential_book_construction.py +54 -0
  576. aether_quant-6.6.4/tests/test_formal_differential_book_neutrality.py +25 -0
  577. aether_quant-6.6.4/tests/test_formal_differential_cost_model.py +31 -0
  578. aether_quant-6.6.4/tests/test_formal_differential_generation_blend.py +19 -0
  579. aether_quant-6.6.4/tests/test_formal_differential_generation_glide.py +17 -0
  580. aether_quant-6.6.4/tests/test_formal_differential_hash_chain.py +41 -0
  581. aether_quant-6.6.4/tests/test_formal_differential_holdout_once.py +39 -0
  582. aether_quant-6.6.4/tests/test_formal_differential_json_safety.py +45 -0
  583. aether_quant-6.6.4/tests/test_formal_differential_kill_switch.py +32 -0
  584. aether_quant-6.6.4/tests/test_formal_differential_order_gate.py +38 -0
  585. aether_quant-6.6.4/tests/test_formal_differential_position_sizing.py +22 -0
  586. aether_quant-6.6.4/tests/test_formal_differential_reconciliation.py +28 -0
  587. aether_quant-6.6.4/tests/test_formal_differential_risk_controls.py +21 -0
  588. aether_quant-6.6.4/tests/test_formal_differential_session_resolve.py +34 -0
  589. aether_quant-6.6.4/tests/test_formal_differential_sleeve_guard.py +15 -0
  590. aether_quant-6.6.4/tests/test_formal_no_sorry.py +52 -0
  591. aether_quant-6.6.4/tests/test_forward_ledger.py +259 -0
  592. aether_quant-6.6.4/tests/test_fred_backfill.py +411 -0
  593. aether_quant-6.6.4/tests/test_freeze_run_config.py +51 -0
  594. aether_quant-6.6.4/tests/test_fx_carry.py +65 -0
  595. aether_quant-6.6.4/tests/test_fx_signals.py +61 -0
  596. aether_quant-6.6.4/tests/test_gate_audit.py +70 -0
  597. aether_quant-6.6.4/tests/test_gate_replica_audit.py +51 -0
  598. aether_quant-6.6.4/tests/test_gating_network.py +578 -0
  599. aether_quant-6.6.4/tests/test_generate_backtest_report.py +454 -0
  600. aether_quant-6.6.4/tests/test_generate_evaluation_report.py +607 -0
  601. aether_quant-6.6.4/tests/test_generation_blend.py +326 -0
  602. aether_quant-6.6.4/tests/test_generation_ledger.py +243 -0
  603. aether_quant-6.6.4/tests/test_generation_registry.py +168 -0
  604. aether_quant-6.6.4/tests/test_glide_calibration.py +131 -0
  605. aether_quant-6.6.4/tests/test_head_audit.py +60 -0
  606. aether_quant-6.6.4/tests/test_holdout_report.py +45 -0
  607. aether_quant-6.6.4/tests/test_install_hooks.py +48 -0
  608. aether_quant-6.6.4/tests/test_k09_decide.py +66 -0
  609. aether_quant-6.6.4/tests/test_kill_switch.py +486 -0
  610. aether_quant-6.6.4/tests/test_leakage_audit.py +75 -0
  611. aether_quant-6.6.4/tests/test_lean_attribution.py +184 -0
  612. aether_quant-6.6.4/tests/test_lean_backtest.py +84 -0
  613. aether_quant-6.6.4/tests/test_lean_benchmarks.py +59 -0
  614. aether_quant-6.6.4/tests/test_lean_calibration.py +100 -0
  615. aether_quant-6.6.4/tests/test_lean_config_render.py +121 -0
  616. aether_quant-6.6.4/tests/test_lean_report.py +77 -0
  617. aether_quant-6.6.4/tests/test_lean_runtime_imports.py +152 -0
  618. aether_quant-6.6.4/tests/test_lean_smoke_scripts.py +113 -0
  619. aether_quant-6.6.4/tests/test_lean_statistics.py +80 -0
  620. aether_quant-6.6.4/tests/test_lean_verdict.py +69 -0
  621. aether_quant-6.6.4/tests/test_learned_topology.py +510 -0
  622. aether_quant-6.6.4/tests/test_legacy_sleeve.py +124 -0
  623. aether_quant-6.6.4/tests/test_live_parity.py +339 -0
  624. aether_quant-6.6.4/tests/test_main_ensure_ready_smoke.py +273 -0
  625. aether_quant-6.6.4/tests/test_main_on_data_target_weights.py +183 -0
  626. aether_quant-6.6.4/tests/test_main_wiring.py +856 -0
  627. aether_quant-6.6.4/tests/test_make_variant_configs.py +67 -0
  628. aether_quant-6.6.4/tests/test_market_analyzer.py +710 -0
  629. aether_quant-6.6.4/tests/test_market_topology.py +1027 -0
  630. aether_quant-6.6.4/tests/test_ml_cleanup.py +47 -0
  631. aether_quant-6.6.4/tests/test_ml_manifest.py +30 -0
  632. aether_quant-6.6.4/tests/test_model_audit.py +81 -0
  633. aether_quant-6.6.4/tests/test_model_candidate_research.py +52 -0
  634. aether_quant-6.6.4/tests/test_model_predictions.py +335 -0
  635. aether_quant-6.6.4/tests/test_module_has_test.py +48 -0
  636. aether_quant-6.6.4/tests/test_monte_carlo.py +129 -0
  637. aether_quant-6.6.4/tests/test_mutation_check.py +88 -0
  638. aether_quant-6.6.4/tests/test_net_retry.py +50 -0
  639. aether_quant-6.6.4/tests/test_options_arbitrage_detector.py +241 -0
  640. aether_quant-6.6.4/tests/test_options_strategy.py +534 -0
  641. aether_quant-6.6.4/tests/test_options_strategy_multileg.py +586 -0
  642. aether_quant-6.6.4/tests/test_order_gate.py +608 -0
  643. aether_quant-6.6.4/tests/test_overfit_diagnostics.py +41 -0
  644. aether_quant-6.6.4/tests/test_overlap_vs_sharpe_analysis.py +60 -0
  645. aether_quant-6.6.4/tests/test_packaging_modules.py +123 -0
  646. aether_quant-6.6.4/tests/test_paper_protocol.py +93 -0
  647. aether_quant-6.6.4/tests/test_paper_readiness_io.py +110 -0
  648. aether_quant-6.6.4/tests/test_pbo.py +35 -0
  649. aether_quant-6.6.4/tests/test_performance_probe.py +138 -0
  650. aether_quant-6.6.4/tests/test_portfolio_book_construction.py +1117 -0
  651. aether_quant-6.6.4/tests/test_postgres_audit.py +113 -0
  652. aether_quant-6.6.4/tests/test_power_analysis.py +47 -0
  653. aether_quant-6.6.4/tests/test_premia_research.py +98 -0
  654. aether_quant-6.6.4/tests/test_premia_signals.py +233 -0
  655. aether_quant-6.6.4/tests/test_prepare_v610_candidates.py +32 -0
  656. aether_quant-6.6.4/tests/test_probability_calibration.py +92 -0
  657. aether_quant-6.6.4/tests/test_rank_book_simulator.py +408 -0
  658. aether_quant-6.6.4/tests/test_rank_ic_core.py +183 -0
  659. aether_quant-6.6.4/tests/test_rank_signal.py +286 -0
  660. aether_quant-6.6.4/tests/test_rank_signal_calibration.py +803 -0
  661. aether_quant-6.6.4/tests/test_readme_freshness.py +83 -0
  662. aether_quant-6.6.4/tests/test_readme_research.py +289 -0
  663. aether_quant-6.6.4/tests/test_readme_statistics.py +140 -0
  664. aether_quant-6.6.4/tests/test_refresh_lean_interest_rate.py +39 -0
  665. aether_quant-6.6.4/tests/test_refresh_universe_availability.py +62 -0
  666. aether_quant-6.6.4/tests/test_regime_model_input.py +89 -0
  667. aether_quant-6.6.4/tests/test_research_cells.py +123 -0
  668. aether_quant-6.6.4/tests/test_research_cycle.py +153 -0
  669. aether_quant-6.6.4/tests/test_research_harness.py +60 -0
  670. aether_quant-6.6.4/tests/test_research_probes.py +40 -0
  671. aether_quant-6.6.4/tests/test_research_round.py +362 -0
  672. aether_quant-6.6.4/tests/test_research_runners.py +74 -0
  673. aether_quant-6.6.4/tests/test_retraining_orchestrator.py +789 -0
  674. aether_quant-6.6.4/tests/test_retraining_worker.py +414 -0
  675. aether_quant-6.6.4/tests/test_risk_controls.py +664 -0
  676. aether_quant-6.6.4/tests/test_rl_sizing_v541.py +111 -0
  677. aether_quant-6.6.4/tests/test_rolling_ic_series.py +107 -0
  678. aether_quant-6.6.4/tests/test_round_builders.py +64 -0
  679. aether_quant-6.6.4/tests/test_sector_map.py +65 -0
  680. aether_quant-6.6.4/tests/test_signal_construction.py +93 -0
  681. aether_quant-6.6.4/tests/test_sim_lean_calibration.py +46 -0
  682. aether_quant-6.6.4/tests/test_sleeve_guard.py +53 -0
  683. aether_quant-6.6.4/tests/test_sp500_membership.py +167 -0
  684. aether_quant-6.6.4/tests/test_splice_holdout_dataset.py +119 -0
  685. aether_quant-6.6.4/tests/test_target_weights.py +143 -0
  686. aether_quant-6.6.4/tests/test_target_weights_engine.py +145 -0
  687. aether_quant-6.6.4/tests/test_topology_sizing_research.py +28 -0
  688. aether_quant-6.6.4/tests/test_trade_bootstrap.py +55 -0
  689. aether_quant-6.6.4/tests/test_train_asset_class_context_features.py +97 -0
  690. aether_quant-6.6.4/tests/test_train_cross_sectional.py +162 -0
  691. aether_quant-6.6.4/tests/test_train_cross_sectional_features.py +703 -0
  692. aether_quant-6.6.4/tests/test_train_forex_fill_forward.py +91 -0
  693. aether_quant-6.6.4/tests/test_train_indicators.py +216 -0
  694. aether_quant-6.6.4/tests/test_train_macro_features.py +160 -0
  695. aether_quant-6.6.4/tests/test_train_multitask.py +610 -0
  696. aether_quant-6.6.4/tests/test_train_ranking_validation.py +909 -0
  697. aether_quant-6.6.4/tests/test_train_rl_sizing.py +397 -0
  698. aether_quant-6.6.4/tests/test_train_sequence_architecture.py +328 -0
  699. aether_quant-6.6.4/tests/test_train_strategy_selector.py +221 -0
  700. aether_quant-6.6.4/tests/test_train_topology.py +207 -0
  701. aether_quant-6.6.4/tests/test_train_walk_forward_windows.py +176 -0
  702. aether_quant-6.6.4/tests/test_trend_sleeve.py +78 -0
  703. aether_quant-6.6.4/tests/test_trend_sleeve_backtest.py +69 -0
  704. aether_quant-6.6.4/tests/test_trial_ledger.py +78 -0
  705. aether_quant-6.6.4/tests/test_trial_registry.py +41 -0
  706. aether_quant-6.6.4/tests/test_v550_backtest_findings.py +159 -0
  707. aether_quant-6.6.4/tests/test_v550_parity_fixes.py +624 -0
  708. aether_quant-6.6.4/tests/test_v560_fixes.py +77 -0
  709. aether_quant-6.6.4/tests/test_v570_live_mechanisms.py +360 -0
  710. aether_quant-6.6.4/tests/test_v570_training_fixes.py +200 -0
  711. aether_quant-6.6.4/tests/test_v580_live_parity.py +498 -0
  712. aether_quant-6.6.4/tests/test_v580_training_fixes.py +62 -0
  713. aether_quant-6.6.4/tests/test_v600_across_symbols.py +113 -0
  714. aether_quant-6.6.4/tests/test_v600_config_decisions.py +57 -0
  715. aether_quant-6.6.4/tests/test_v600_extra_horizon.py +98 -0
  716. aether_quant-6.6.4/tests/test_v600_forex_parity.py +143 -0
  717. aether_quant-6.6.4/tests/test_v600_late_bar_cross_asset.py +82 -0
  718. aether_quant-6.6.4/tests/test_v600_sensitivity_vector.py +105 -0
  719. aether_quant-6.6.4/tests/test_v600_simulator_parity.py +150 -0
  720. aether_quant-6.6.4/tests/test_v610_config_decisions.py +17 -0
  721. aether_quant-6.6.4/tests/test_v610_forex_holidays.py +82 -0
  722. aether_quant-6.6.4/tests/test_v610_model_ensemble.py +70 -0
  723. aether_quant-6.6.4/tests/test_v610_research.py +109 -0
  724. aether_quant-6.6.4/tests/test_v610_simulator_parity.py +207 -0
  725. aether_quant-6.6.4/tests/test_v620_cash_sweep_parity.py +115 -0
  726. aether_quant-6.6.4/tests/test_v620_config_decisions.py +33 -0
  727. aether_quant-6.6.4/tests/test_v620_dedupe.py +47 -0
  728. aether_quant-6.6.4/tests/test_v620_model_inputs.py +78 -0
  729. aether_quant-6.6.4/tests/test_v620_research.py +52 -0
  730. aether_quant-6.6.4/tests/test_v620_tranche_book.py +102 -0
  731. aether_quant-6.6.4/tests/test_v630_research.py +78 -0
  732. aether_quant-6.6.4/tests/test_v630_round.py +67 -0
  733. aether_quant-6.6.4/tests/test_v640_research.py +295 -0
  734. aether_quant-6.6.4/tests/test_v640_round.py +280 -0
  735. aether_quant-6.6.4/tests/test_v643_formal_findings.py +172 -0
  736. aether_quant-6.6.4/tests/test_v644_fixes.py +110 -0
  737. aether_quant-6.6.4/tests/test_v650_lean.py +82 -0
  738. aether_quant-6.6.4/tests/test_v650_scripts.py +148 -0
  739. aether_quant-6.6.4/tests/test_v660_fixes.py +602 -0
  740. aether_quant-6.6.4/tests/test_v660_research.py +236 -0
  741. aether_quant-6.6.4/tests/test_v660_round2.py +70 -0
  742. aether_quant-6.6.4/tests/test_v664_crypto_gbm.py +78 -0
  743. aether_quant-6.6.4/tests/test_v664_eos_repin.py +35 -0
  744. aether_quant-6.6.4/tests/test_v664_late_session.py +96 -0
  745. aether_quant-6.6.4/tests/test_v664_mutation_ledgers.py +410 -0
  746. aether_quant-6.6.4/tests/test_v664_mutation_safety.py +240 -0
  747. aether_quant-6.6.4/tests/test_v664_properties.py +281 -0
  748. aether_quant-6.6.4/tests/test_v664_register_observers.py +85 -0
  749. aether_quant-6.6.4/tests/test_v664_sanity.py +35 -0
  750. aether_quant-6.6.4/tests/test_v664_write_rounds.py +86 -0
  751. aether_quant-6.6.4/tests/test_validation_gate.py +369 -0
  752. aether_quant-6.6.4/tests/test_vault_client.py +271 -0
  753. aether_quant-6.6.4/tests/test_vault_commands.py +80 -0
  754. aether_quant-6.6.4/tests/test_vault_contract.py +174 -0
  755. aether_quant-6.6.4/tests/test_vault_record.py +67 -0
  756. aether_quant-6.6.4/tests/test_verification_matrix.py +92 -0
  757. aether_quant-6.6.4/tests/test_volatility_threshold_calibration.py +82 -0
  758. aether_quant-6.6.4/tests/test_walk_forward_linear.py +108 -0
  759. aether_quant-6.6.4/tests/test_walk_forward_multimodel.py +286 -0
  760. aether_quant-6.6.4/tests/test_wide_info.py +387 -0
  761. aether_quant-6.6.4/tests/test_wide_signals.py +244 -0
  762. aether_quant-6.6.4/tests/test_yfinance_backfill.py +513 -0
  763. aether_quant-6.6.4/todo.md +46 -0
  764. aether_quant-6.6.4/topology/README.md +26 -0
  765. aether_quant-6.6.4/topology/__init__.py +25 -0
  766. aether_quant-6.6.4/topology/learned_topology.py +340 -0
  767. aether_quant-6.6.4/topology/market_topology.py +841 -0
  768. aether_quant-6.6.4/train.py +7648 -0
  769. aether_quant-6.6.4/train_cross_sectional.py +342 -0
  770. aether_quant-6.6.4/train_multitask.py +875 -0
  771. aether_quant-6.6.4/train_rl_sizing.py +802 -0
  772. aether_quant-6.6.4/train_sequence.py +887 -0
  773. aether_quant-6.6.4/train_topology.py +441 -0
  774. aether_quant-6.6.4/visualization/README.md +12 -0
  775. aether_quant-6.6.4/visualization/forex_order_sizing.jsonl +6946 -0
  776. aether_quant-6.6.4/webui/README.md +40 -0
  777. aether_quant-6.6.4/webui/src/api/client.ts +35 -0
  778. aether_quant-6.6.4/webui/src/api/hooks.ts +132 -0
  779. aether_quant-6.6.4/webui/src/components/monitoring/AssetsStatusPanel.test.tsx +60 -0
  780. aether_quant-6.6.4/webui/src/components/monitoring/AssetsStatusPanel.tsx +123 -0
  781. aether_quant-6.6.4/webui/src/components/monitoring/GenerationsPanel.tsx +64 -0
  782. aether_quant-6.6.4/webui/src/pages/OperationsPage.tsx +40 -0
  783. aether_quant-6.6.4/webui/src/pages/pages.test.tsx +210 -0
  784. aether_quant-6.6.4/webui/src/types/state.ts +997 -0
  785. aether_quant-5.4.9/.devcontainer/README.md +0 -12
  786. aether_quant-5.4.9/.devcontainer/dind-v1-test/devcontainer.json +0 -14
  787. aether_quant-5.4.9/.dockerignore +0 -51
  788. aether_quant-5.4.9/.gitattributes +0 -2
  789. aether_quant-5.4.9/.githooks/README.md +0 -14
  790. aether_quant-5.4.9/.githooks/pre-commit +0 -29
  791. aether_quant-5.4.9/.github/ISSUE_TEMPLATE/bug_report.md +0 -50
  792. aether_quant-5.4.9/.github/ISSUE_TEMPLATE/feature_request.md +0 -32
  793. aether_quant-5.4.9/.github/PULL_REQUEST_TEMPLATE.md +0 -37
  794. aether_quant-5.4.9/.github/workflows/ci.yml +0 -158
  795. aether_quant-5.4.9/.github/workflows/release.yml +0 -125
  796. aether_quant-5.4.9/.gitignore +0 -192
  797. aether_quant-5.4.9/AGENTS.md +0 -144
  798. aether_quant-5.4.9/CODE_OF_CONDUCT.md +0 -56
  799. aether_quant-5.4.9/CONTRIBUTING.md +0 -167
  800. aether_quant-5.4.9/PKG-INFO +0 -1252
  801. aether_quant-5.4.9/README.md +0 -1231
  802. aether_quant-5.4.9/REPRODUCIBILITY.md +0 -65
  803. aether_quant-5.4.9/RUNBOOK.md +0 -122
  804. aether_quant-5.4.9/SECURITY.md +0 -64
  805. aether_quant-5.4.9/aether_quant.egg-info/PKG-INFO +0 -1252
  806. aether_quant-5.4.9/aether_quant.egg-info/SOURCES.txt +0 -546
  807. aether_quant-5.4.9/aether_quant.egg-info/scm_file_list.json +0 -543
  808. aether_quant-5.4.9/aether_quant.egg-info/scm_version.json +0 -8
  809. aether_quant-5.4.9/aether_quant.egg-info/top_level.txt +0 -13
  810. aether_quant-5.4.9/analyzer/README.md +0 -69
  811. aether_quant-5.4.9/analyzer/market_analyzer.py +0 -521
  812. aether_quant-5.4.9/aq_cli.py +0 -3633
  813. aether_quant-5.4.9/audit/README.md +0 -47
  814. aether_quant-5.4.9/audit/hash_chain.py +0 -52
  815. aether_quant-5.4.9/audit/postgres_audit.py +0 -61
  816. aether_quant-5.4.9/audit/postgres_worker.py +0 -402
  817. aether_quant-5.4.9/config.json +0 -2333
  818. aether_quant-5.4.9/cpp_inference_ext/README.md +0 -60
  819. aether_quant-5.4.9/data_pipeline/README.md +0 -257
  820. aether_quant-5.4.9/data_pipeline/bar_synthesis.py +0 -97
  821. aether_quant-5.4.9/data_pipeline/factor_file_backfill.py +0 -276
  822. aether_quant-5.4.9/data_pipeline/fred_backfill.py +0 -435
  823. aether_quant-5.4.9/data_pipeline/yfinance_backfill.py +0 -501
  824. aether_quant-5.4.9/development/Changelog.md +0 -1888
  825. aether_quant-5.4.9/development/Problems.md +0 -1646
  826. aether_quant-5.4.9/development/README.md +0 -36
  827. aether_quant-5.4.9/development/architecture.md +0 -2090
  828. aether_quant-5.4.9/development/asset_universe.md +0 -189
  829. aether_quant-5.4.9/development/backtest_equity_chart.png +0 -0
  830. aether_quant-5.4.9/development/backups/README.md +0 -22
  831. aether_quant-5.4.9/development/infrastructure.md +0 -775
  832. aether_quant-5.4.9/development/monte_carlo_equity_curves.png +0 -0
  833. aether_quant-5.4.9/development/project_structure.md +0 -70
  834. aether_quant-5.4.9/docker-compose.yml +0 -292
  835. aether_quant-5.4.9/evaluation/README.md +0 -152
  836. aether_quant-5.4.9/evaluation/__init__.py +0 -73
  837. aether_quant-5.4.9/evaluation/factor_neutralization_check.py +0 -94
  838. aether_quant-5.4.9/evaluation/feature_parity.py +0 -321
  839. aether_quant-5.4.9/evaluation/kill_switch_replay.py +0 -186
  840. aether_quant-5.4.9/evaluation/model_predictions.py +0 -192
  841. aether_quant-5.4.9/evaluation/monte_carlo.py +0 -161
  842. aether_quant-5.4.9/evaluation/rank_book_simulator.py +0 -494
  843. aether_quant-5.4.9/evaluation/rank_ic_core.py +0 -204
  844. aether_quant-5.4.9/evaluation/rank_signal_calibration.py +0 -690
  845. aether_quant-5.4.9/evaluation/rolling_ic_gate_calibration.py +0 -190
  846. aether_quant-5.4.9/evaluation/rolling_ic_gate_replay.py +0 -138
  847. aether_quant-5.4.9/execution/README.md +0 -281
  848. aether_quant-5.4.9/execution/__init__.py +0 -80
  849. aether_quant-5.4.9/execution/cost_model.py +0 -213
  850. aether_quant-5.4.9/execution/lean_config_render.py +0 -131
  851. aether_quant-5.4.9/execution/live_credentials_io.py +0 -52
  852. aether_quant-5.4.9/execution/order_gate.py +0 -388
  853. aether_quant-5.4.9/execution/paper_readiness.py +0 -181
  854. aether_quant-5.4.9/execution/paper_readiness_io.py +0 -54
  855. aether_quant-5.4.9/execution/paper_readiness_report.py +0 -103
  856. aether_quant-5.4.9/execution/paper_readiness_scheduler.py +0 -137
  857. aether_quant-5.4.9/experience/README.md +0 -68
  858. aether_quant-5.4.9/experts/README.md +0 -37
  859. aether_quant-5.4.9/features/README.md +0 -77
  860. aether_quant-5.4.9/features/__init__.py +0 -137
  861. aether_quant-5.4.9/features/bond_features.py +0 -275
  862. aether_quant-5.4.9/features/cross_asset_sensitivity.py +0 -79
  863. aether_quant-5.4.9/generate_backtest_report.py +0 -311
  864. aether_quant-5.4.9/generate_evaluation_report.py +0 -712
  865. aether_quant-5.4.9/inference/README.md +0 -105
  866. aether_quant-5.4.9/inference/__init__.py +0 -36
  867. aether_quant-5.4.9/inference/exported_model.py +0 -929
  868. aether_quant-5.4.9/inference/parallel_inference.py +0 -160
  869. aether_quant-5.4.9/lean.json +0 -649
  870. aether_quant-5.4.9/liquidity/README.md +0 -97
  871. aether_quant-5.4.9/liquidity/__init__.py +0 -15
  872. aether_quant-5.4.9/liquidity/market_liquidity.py +0 -335
  873. aether_quant-5.4.9/main.py +0 -7779
  874. aether_quant-5.4.9/ml/README.md +0 -84
  875. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bearish/metrics.json +0 -314
  876. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bearish/model.pt +0 -0
  877. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bearish/model_weights.json +0 -1900
  878. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bearish/multitask_model.json +0 -1954
  879. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bearish/multitask_training_metrics.json +0 -202
  880. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bullish/metrics.json +0 -308
  881. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bullish/model.pt +0 -0
  882. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bullish/model_weights.json +0 -1902
  883. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bullish/multitask_model.json +0 -1954
  884. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/bullish/multitask_training_metrics.json +0 -227
  885. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/sideways/metrics.json +0 -325
  886. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/sideways/model.pt +0 -0
  887. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/sideways/model_weights.json +0 -1901
  888. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/sideways/multitask_model.json +0 -1954
  889. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/sideways/multitask_training_metrics.json +0 -192
  890. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/volatility/metrics.json +0 -295
  891. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/volatility/model.pt +0 -0
  892. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/volatility/model_weights.json +0 -1901
  893. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/volatility/multitask_model.json +0 -1954
  894. aether_quant-5.4.9/ml/_backup_pre_v537/expert_models/volatility/multitask_training_metrics.json +0 -232
  895. aether_quant-5.4.9/ml/_backup_pre_v537/feature_schema.json +0 -2378
  896. aether_quant-5.4.9/ml/_backup_pre_v537/gating_feature_schema.json +0 -30
  897. aether_quant-5.4.9/ml/_backup_pre_v537/gating_model.json +0 -570
  898. aether_quant-5.4.9/ml/_backup_pre_v537/gating_training_metrics.json +0 -262
  899. aether_quant-5.4.9/ml/_backup_pre_v537/model.pt +0 -0
  900. aether_quant-5.4.9/ml/_backup_pre_v537/model_weights.json +0 -11017
  901. aether_quant-5.4.9/ml/_backup_pre_v537/multitask_feature_schema.json +0 -70
  902. aether_quant-5.4.9/ml/_backup_pre_v537/multitask_model.json +0 -7448
  903. aether_quant-5.4.9/ml/_backup_pre_v537/multitask_training_metrics.json +0 -11852
  904. aether_quant-5.4.9/ml/_backup_pre_v537/scaler.pkl +0 -0
  905. aether_quant-5.4.9/ml/_backup_pre_v537/scaler_stats.json +0 -156
  906. aether_quant-5.4.9/ml/_backup_pre_v537/sequence_feature_schema.json +0 -71
  907. aether_quant-5.4.9/ml/_backup_pre_v537/sequence_model.json +0 -16695
  908. aether_quant-5.4.9/ml/_backup_pre_v537/sequence_training_metrics.json +0 -11872
  909. aether_quant-5.4.9/ml/_backup_pre_v537/training_metrics.json +0 -633
  910. aether_quant-5.4.9/moe/README.md +0 -147
  911. aether_quant-5.4.9/moe/gating.py +0 -414
  912. aether_quant-5.4.9/monitoring/README.md +0 -23
  913. aether_quant-5.4.9/monitoring/api_server.py +0 -187
  914. aether_quant-5.4.9/monitoring/assets_status.py +0 -90
  915. aether_quant-5.4.9/monitoring/evaluation_state.py +0 -127
  916. aether_quant-5.4.9/notifications/README.md +0 -52
  917. aether_quant-5.4.9/performance/README.md +0 -79
  918. aether_quant-5.4.9/portfolio/README.md +0 -447
  919. aether_quant-5.4.9/portfolio/__init__.py +0 -41
  920. aether_quant-5.4.9/portfolio/book_construction.py +0 -786
  921. aether_quant-5.4.9/portfolio/book_neutrality.py +0 -178
  922. aether_quant-5.4.9/portfolio/options_arbitrage_detector.py +0 -232
  923. aether_quant-5.4.9/portfolio/options_strategy.py +0 -1999
  924. aether_quant-5.4.9/portfolio/rank_signal.py +0 -219
  925. aether_quant-5.4.9/portfolio/rolling_ic_gate.py +0 -183
  926. aether_quant-5.4.9/pyproject.toml +0 -142
  927. aether_quant-5.4.9/regime/README.md +0 -53
  928. aether_quant-5.4.9/regime/__init__.py +0 -17
  929. aether_quant-5.4.9/regime/market_regime.py +0 -187
  930. aether_quant-5.4.9/requirements/README.md +0 -28
  931. aether_quant-5.4.9/requirements/requirements-dev.txt +0 -63
  932. aether_quant-5.4.9/requirements/requirements.txt +0 -44
  933. aether_quant-5.4.9/retraining/README.md +0 -145
  934. aether_quant-5.4.9/retraining/lean_backtest.py +0 -64
  935. aether_quant-5.4.9/retraining/orchestrator.py +0 -898
  936. aether_quant-5.4.9/retraining/validation_gate.py +0 -339
  937. aether_quant-5.4.9/retraining/vault_client.py +0 -108
  938. aether_quant-5.4.9/retraining/vault_commands.py +0 -52
  939. aether_quant-5.4.9/retraining/worker.py +0 -356
  940. aether_quant-5.4.9/risk/README.md +0 -275
  941. aether_quant-5.4.9/risk/asset_class_router.py +0 -584
  942. aether_quant-5.4.9/risk/forex_risk.py +0 -158
  943. aether_quant-5.4.9/risk/kill_switch.py +0 -261
  944. aether_quant-5.4.9/risk/position_sizing.py +0 -303
  945. aether_quant-5.4.9/risk/rl_sizing.py +0 -189
  946. aether_quant-5.4.9/risk_controls.py +0 -386
  947. aether_quant-5.4.9/scripts/README.md +0 -66
  948. aether_quant-5.4.9/scripts/feature_parity_audit.py +0 -390
  949. aether_quant-5.4.9/scripts/overlap_vs_sharpe_analysis.py +0 -82
  950. aether_quant-5.4.9/tests/README.md +0 -45
  951. aether_quant-5.4.9/tests/test_api_server.py +0 -180
  952. aether_quant-5.4.9/tests/test_aq_cli.py +0 -3666
  953. aether_quant-5.4.9/tests/test_asset_class_router.py +0 -512
  954. aether_quant-5.4.9/tests/test_assets_status.py +0 -112
  955. aether_quant-5.4.9/tests/test_audit_postgres_worker.py +0 -274
  956. aether_quant-5.4.9/tests/test_ci_workflows.py +0 -138
  957. aether_quant-5.4.9/tests/test_cli_help_surface.py +0 -142
  958. aether_quant-5.4.9/tests/test_cost_model.py +0 -246
  959. aether_quant-5.4.9/tests/test_exported_model.py +0 -1073
  960. aether_quant-5.4.9/tests/test_factor_file_backfill.py +0 -224
  961. aether_quant-5.4.9/tests/test_feature_parity.py +0 -125
  962. aether_quant-5.4.9/tests/test_fred_backfill.py +0 -350
  963. aether_quant-5.4.9/tests/test_gating_network.py +0 -542
  964. aether_quant-5.4.9/tests/test_generate_backtest_report.py +0 -259
  965. aether_quant-5.4.9/tests/test_generate_evaluation_report.py +0 -561
  966. aether_quant-5.4.9/tests/test_kill_switch.py +0 -406
  967. aether_quant-5.4.9/tests/test_lean_backtest.py +0 -67
  968. aether_quant-5.4.9/tests/test_lean_config_render.py +0 -109
  969. aether_quant-5.4.9/tests/test_lean_runtime_imports.py +0 -89
  970. aether_quant-5.4.9/tests/test_learned_topology.py +0 -486
  971. aether_quant-5.4.9/tests/test_market_analyzer.py +0 -695
  972. aether_quant-5.4.9/tests/test_market_topology.py +0 -902
  973. aether_quant-5.4.9/tests/test_model_predictions.py +0 -252
  974. aether_quant-5.4.9/tests/test_monte_carlo.py +0 -120
  975. aether_quant-5.4.9/tests/test_options_arbitrage_detector.py +0 -170
  976. aether_quant-5.4.9/tests/test_options_strategy.py +0 -524
  977. aether_quant-5.4.9/tests/test_options_strategy_multileg.py +0 -572
  978. aether_quant-5.4.9/tests/test_order_gate.py +0 -563
  979. aether_quant-5.4.9/tests/test_paper_readiness_io.py +0 -83
  980. aether_quant-5.4.9/tests/test_portfolio_book_construction.py +0 -1105
  981. aether_quant-5.4.9/tests/test_postgres_audit.py +0 -83
  982. aether_quant-5.4.9/tests/test_rank_book_simulator.py +0 -375
  983. aether_quant-5.4.9/tests/test_rank_ic_core.py +0 -156
  984. aether_quant-5.4.9/tests/test_rank_signal.py +0 -242
  985. aether_quant-5.4.9/tests/test_rank_signal_calibration.py +0 -664
  986. aether_quant-5.4.9/tests/test_retraining_orchestrator.py +0 -703
  987. aether_quant-5.4.9/tests/test_retraining_worker.py +0 -392
  988. aether_quant-5.4.9/tests/test_risk_controls.py +0 -632
  989. aether_quant-5.4.9/tests/test_rl_sizing_v541.py +0 -83
  990. aether_quant-5.4.9/tests/test_sector_map.py +0 -66
  991. aether_quant-5.4.9/tests/test_train_asset_class_context_features.py +0 -87
  992. aether_quant-5.4.9/tests/test_train_cross_sectional_features.py +0 -701
  993. aether_quant-5.4.9/tests/test_train_indicators.py +0 -229
  994. aether_quant-5.4.9/tests/test_train_macro_features.py +0 -157
  995. aether_quant-5.4.9/tests/test_train_multitask.py +0 -567
  996. aether_quant-5.4.9/tests/test_train_ranking_validation.py +0 -907
  997. aether_quant-5.4.9/tests/test_train_rl_sizing.py +0 -244
  998. aether_quant-5.4.9/tests/test_train_sequence_architecture.py +0 -310
  999. aether_quant-5.4.9/tests/test_train_strategy_selector.py +0 -145
  1000. aether_quant-5.4.9/tests/test_train_topology.py +0 -171
  1001. aether_quant-5.4.9/tests/test_train_walk_forward_windows.py +0 -176
  1002. aether_quant-5.4.9/tests/test_validation_gate.py +0 -323
  1003. aether_quant-5.4.9/tests/test_vault_client.py +0 -109
  1004. aether_quant-5.4.9/tests/test_vault_commands.py +0 -65
  1005. aether_quant-5.4.9/tests/test_walk_forward_multimodel.py +0 -225
  1006. aether_quant-5.4.9/tests/test_yfinance_backfill.py +0 -416
  1007. aether_quant-5.4.9/topology/README.md +0 -122
  1008. aether_quant-5.4.9/topology/__init__.py +0 -23
  1009. aether_quant-5.4.9/topology/learned_topology.py +0 -301
  1010. aether_quant-5.4.9/topology/market_topology.py +0 -710
  1011. aether_quant-5.4.9/train.py +0 -7390
  1012. aether_quant-5.4.9/train_multitask.py +0 -853
  1013. aether_quant-5.4.9/train_rl_sizing.py +0 -461
  1014. aether_quant-5.4.9/train_sequence.py +0 -836
  1015. aether_quant-5.4.9/train_topology.py +0 -341
  1016. aether_quant-5.4.9/visualization/README.md +0 -68
  1017. aether_quant-5.4.9/visualization/forex_order_sizing.jsonl +0 -991
  1018. aether_quant-5.4.9/webui/README.md +0 -173
  1019. aether_quant-5.4.9/webui/src/api/client.ts +0 -33
  1020. aether_quant-5.4.9/webui/src/api/hooks.ts +0 -123
  1021. aether_quant-5.4.9/webui/src/components/monitoring/AssetsStatusPanel.tsx +0 -69
  1022. aether_quant-5.4.9/webui/src/pages/OperationsPage.tsx +0 -37
  1023. aether_quant-5.4.9/webui/src/pages/pages.test.tsx +0 -208
  1024. aether_quant-5.4.9/webui/src/types/state.ts +0 -954
  1025. {aether_quant-5.4.9 → aether_quant-6.6.4}/.devcontainer/devcontainer.json +0 -0
  1026. {aether_quant-5.4.9 → aether_quant-6.6.4}/.env.compose.example +0 -0
  1027. {aether_quant-5.4.9 → aether_quant-6.6.4}/.env.live.example +0 -0
  1028. {aether_quant-5.4.9 → aether_quant-6.6.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  1029. {aether_quant-5.4.9 → aether_quant-6.6.4}/Dockerfile +0 -0
  1030. {aether_quant-5.4.9 → aether_quant-6.6.4}/Dockerfile.lean +0 -0
  1031. {aether_quant-5.4.9 → aether_quant-6.6.4}/LICENSE +0 -0
  1032. /aether_quant-5.4.9/data/alternative/estimize/consensus/aapl/.keep → /aether_quant-6.6.4/aether_quant/py.typed +0 -0
  1033. {aether_quant-5.4.9 → aether_quant-6.6.4}/aether_quant.egg-info/dependency_links.txt +0 -0
  1034. {aether_quant-5.4.9 → aether_quant-6.6.4}/aether_quant.egg-info/entry_points.txt +0 -0
  1035. {aether_quant-5.4.9 → aether_quant-6.6.4}/analyzer/__init__.py +0 -0
  1036. {aether_quant-5.4.9 → aether_quant-6.6.4}/audit/__init__.py +0 -0
  1037. {aether_quant-5.4.9 → aether_quant-6.6.4}/audit/redis_queue.py +0 -0
  1038. {aether_quant-5.4.9 → aether_quant-6.6.4}/audit/status_export.py +0 -0
  1039. {aether_quant-5.4.9 → aether_quant-6.6.4}/backtests/.gitkeep +0 -0
  1040. {aether_quant-5.4.9 → aether_quant-6.6.4}/cpp_inference_ext/pyproject.toml +0 -0
  1041. {aether_quant-5.4.9 → aether_quant-6.6.4}/cpp_inference_ext/setup.py +0 -0
  1042. {aether_quant-5.4.9 → aether_quant-6.6.4}/cpp_inference_ext/src/linear_batched.cpp +0 -0
  1043. {aether_quant-5.4.9/data/alternative/estimize/estimate → aether_quant-6.6.4/data/alternative/estimize/consensus/aapl}/.keep +0 -0
  1044. {aether_quant-5.4.9/data/alternative/estimize/release → aether_quant-6.6.4/data/alternative/estimize/estimate}/.keep +0 -0
  1045. {aether_quant-5.4.9/data/alternative/sec/aapl → aether_quant-6.6.4/data/alternative/estimize/release}/.keep +0 -0
  1046. {aether_quant-5.4.9/data/alternative/trading-economics → aether_quant-6.6.4/data/alternative/sec/aapl}/.keep +0 -0
  1047. {aether_quant-5.4.9/data/alternative/trading-economics/calendar → aether_quant-6.6.4/data/alternative/trading-economics}/.keep +0 -0
  1048. {aether_quant-5.4.9/data/alternative/trading-economics/earnings → aether_quant-6.6.4/data/alternative/trading-economics/calendar}/.keep +0 -0
  1049. {aether_quant-5.4.9/data/alternative/trading-economics/indicator → aether_quant-6.6.4/data/alternative/trading-economics/earnings}/.keep +0 -0
  1050. {aether_quant-5.4.9 → aether_quant-6.6.4}/data/reference/forex_pair_specs.json +0 -0
  1051. {aether_quant-5.4.9 → aether_quant-6.6.4}/data/reference/futures_contract_specs.json +0 -0
  1052. {aether_quant-5.4.9 → aether_quant-6.6.4}/data/reference/sector_mapping.json +0 -0
  1053. {aether_quant-5.4.9 → aether_quant-6.6.4}/data_pipeline/__init__.py +0 -0
  1054. {aether_quant-5.4.9 → aether_quant-6.6.4}/data_pipeline/dividend_backfill.py +0 -0
  1055. {aether_quant-5.4.9 → aether_quant-6.6.4}/data_pipeline/fetch.py +0 -0
  1056. {aether_quant-5.4.9 → aether_quant-6.6.4}/data_pipeline/ib_backfill.py +0 -0
  1057. {aether_quant-5.4.9 → aether_quant-6.6.4}/data_pipeline/v2_manifest.py +0 -0
  1058. {aether_quant-5.4.9 → aether_quant-6.6.4}/development/backups/Changelog.md.bak_pre_condense +0 -0
  1059. {aether_quant-5.4.9 → aether_quant-6.6.4}/development/backups/Changelog.md.bak_pre_condense_v54 +0 -0
  1060. {aether_quant-5.4.9 → aether_quant-6.6.4}/development/backups/Problems.md.bak_pre_condense +0 -0
  1061. {aether_quant-5.4.9 → aether_quant-6.6.4}/development/backups/Problems.md.bak_pre_condense_v54 +0 -0
  1062. {aether_quant-5.4.9 → aether_quant-6.6.4}/development/logo.png +0 -0
  1063. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/ablation.py +0 -0
  1064. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/benchmark_comparison.py +0 -0
  1065. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/confidence_threshold_calibration.py +0 -0
  1066. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/feature_reconciliation.py +0 -0
  1067. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/impact_model.py +0 -0
  1068. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/limit_fill_simulator.py +0 -0
  1069. {aether_quant-5.4.9 → aether_quant-6.6.4}/evaluation/public_benchmarks.py +0 -0
  1070. {aether_quant-5.4.9 → aether_quant-6.6.4}/execution/config_cache.py +0 -0
  1071. {aether_quant-5.4.9 → aether_quant-6.6.4}/execution/live_credentials.py +0 -0
  1072. {aether_quant-5.4.9 → aether_quant-6.6.4}/execution/reconciliation.py +0 -0
  1073. {aether_quant-5.4.9 → aether_quant-6.6.4}/execution/runtime_config_io.py +0 -0
  1074. {aether_quant-5.4.9 → aether_quant-6.6.4}/execution/secret_scan.py +0 -0
  1075. {aether_quant-5.4.9 → aether_quant-6.6.4}/experience/__init__.py +0 -0
  1076. {aether_quant-5.4.9 → aether_quant-6.6.4}/experience/observation_metrics.py +0 -0
  1077. {aether_quant-5.4.9 → aether_quant-6.6.4}/experience/postgres_worker.py +0 -0
  1078. {aether_quant-5.4.9 → aether_quant-6.6.4}/experience/redis_queue.py +0 -0
  1079. {aether_quant-5.4.9 → aether_quant-6.6.4}/experience/simulated_portfolio.py +0 -0
  1080. {aether_quant-5.4.9 → aether_quant-6.6.4}/experts/__init__.py +0 -0
  1081. {aether_quant-5.4.9 → aether_quant-6.6.4}/experts/expert_datasets.py +0 -0
  1082. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/alt_data_features.py +0 -0
  1083. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/derivatives_macro_features.py +0 -0
  1084. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/macro_features.py +0 -0
  1085. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/options_greeks.py +0 -0
  1086. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/sector_map.py +0 -0
  1087. {aether_quant-5.4.9 → aether_quant-6.6.4}/features/technical_indicators.py +0 -0
  1088. {aether_quant-5.4.9 → aether_quant-6.6.4}/inference/strategy_selector_inference.py +0 -0
  1089. {aether_quant-5.4.9 → aether_quant-6.6.4}/json_safety.py +0 -0
  1090. {aether_quant-5.4.9 → aether_quant-6.6.4}/moe/__init__.py +0 -0
  1091. {aether_quant-5.4.9 → aether_quant-6.6.4}/monitoring/__init__.py +0 -0
  1092. {aether_quant-5.4.9 → aether_quant-6.6.4}/monitoring/neural_network_state.py +0 -0
  1093. {aether_quant-5.4.9 → aether_quant-6.6.4}/monitoring/strategy_catalog.py +0 -0
  1094. {aether_quant-5.4.9 → aether_quant-6.6.4}/notifications/__init__.py +0 -0
  1095. {aether_quant-5.4.9 → aether_quant-6.6.4}/notifications/postgres_telegram.py +0 -0
  1096. {aether_quant-5.4.9 → aether_quant-6.6.4}/notifications/telegram_alerts.py +0 -0
  1097. {aether_quant-5.4.9 → aether_quant-6.6.4}/notifications/telegram_client.py +0 -0
  1098. {aether_quant-5.4.9 → aether_quant-6.6.4}/notifications/telegram_worker.py +0 -0
  1099. {aether_quant-5.4.9 → aether_quant-6.6.4}/performance/__init__.py +0 -0
  1100. {aether_quant-5.4.9 → aether_quant-6.6.4}/performance/postgres_triggers.py +0 -0
  1101. {aether_quant-5.4.9 → aether_quant-6.6.4}/performance/rank_ic_monitor.py +0 -0
  1102. {aether_quant-5.4.9 → aether_quant-6.6.4}/performance/trigger_worker.py +0 -0
  1103. {aether_quant-5.4.9 → aether_quant-6.6.4}/performance/triggers.py +0 -0
  1104. {aether_quant-5.4.9 → aether_quant-6.6.4}/portfolio/hrp_allocation.py +0 -0
  1105. {aether_quant-5.4.9 → aether_quant-6.6.4}/portfolio/options_assignment_risk.py +0 -0
  1106. {aether_quant-5.4.9 → aether_quant-6.6.4}/portfolio/options_margin_sizing.py +0 -0
  1107. {aether_quant-5.4.9 → aether_quant-6.6.4}/requirements/lean-runtime.txt +0 -0
  1108. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/__init__.py +0 -0
  1109. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/artifacts.py +0 -0
  1110. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/auto_rollback.py +0 -0
  1111. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/backtest_gate.py +0 -0
  1112. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/planning.py +0 -0
  1113. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/postgres_registry.py +0 -0
  1114. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/rollback_hardening.py +0 -0
  1115. {aether_quant-5.4.9 → aether_quant-6.6.4}/retraining/status_export.py +0 -0
  1116. {aether_quant-5.4.9 → aether_quant-6.6.4}/risk/__init__.py +0 -0
  1117. {aether_quant-5.4.9 → aether_quant-6.6.4}/risk/futures_risk.py +0 -0
  1118. {aether_quant-5.4.9 → aether_quant-6.6.4}/risk/manual_override.py +0 -0
  1119. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/gate_sweep.py +0 -0
  1120. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/gate_sweep_score_stage.py +0 -0
  1121. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/order_events_audit.py +0 -0
  1122. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/profile_inference.py +0 -0
  1123. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/profile_subsystems.py +0 -0
  1124. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/promotion_gate_null_calibration.py +0 -0
  1125. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/promotion_gate_null_gate_scheme.py +0 -0
  1126. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/render_lean_credentials.py +0 -0
  1127. {aether_quant-5.4.9 → aether_quant-6.6.4}/scripts/run_lean_cli_windows.py +0 -0
  1128. {aether_quant-5.4.9 → aether_quant-6.6.4}/setup.cfg +0 -0
  1129. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_ablation.py +0 -0
  1130. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_alt_data_features.py +0 -0
  1131. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_aq_test_ruff_flag.py +0 -0
  1132. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_audit_queue.py +0 -0
  1133. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_audit_status_export.py +0 -0
  1134. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_auto_rollback.py +0 -0
  1135. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_backtest_gate.py +0 -0
  1136. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_bar_synthesis_parity.py +0 -0
  1137. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_bond_features.py +0 -0
  1138. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_book_neutrality.py +0 -0
  1139. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_confidence_threshold_calibration.py +0 -0
  1140. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_config_cache.py +0 -0
  1141. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_cross_asset_sensitivity.py +0 -0
  1142. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_derivatives_macro_features.py +0 -0
  1143. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_dividend_backfill.py +0 -0
  1144. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_dockerignore_secrets.py +0 -0
  1145. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_evaluation_state.py +0 -0
  1146. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_experience_queue.py +0 -0
  1147. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_expert_datasets.py +0 -0
  1148. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_expert_models.py +0 -0
  1149. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_feature_reconciliation.py +0 -0
  1150. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_fetch.py +0 -0
  1151. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_forex_risk.py +0 -0
  1152. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_futures_risk.py +0 -0
  1153. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_hash_chain.py +0 -0
  1154. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_hrp_book_sizing.py +0 -0
  1155. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_ib_backfill.py +0 -0
  1156. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_impact_model.py +0 -0
  1157. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_json_safety.py +0 -0
  1158. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_kill_switch_replay.py +0 -0
  1159. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_lean_backtest_ml_coverage.py +0 -0
  1160. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_limit_fill_simulator.py +0 -0
  1161. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_live_credentials.py +0 -0
  1162. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_live_credentials_io.py +0 -0
  1163. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_macro_features.py +0 -0
  1164. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_manual_override.py +0 -0
  1165. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_market_liquidity.py +0 -0
  1166. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_market_regime.py +0 -0
  1167. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_neural_network_state.py +0 -0
  1168. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_observation_metrics.py +0 -0
  1169. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_options_assignment_risk.py +0 -0
  1170. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_options_greeks.py +0 -0
  1171. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_options_margin_sizing.py +0 -0
  1172. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_order_events_audit.py +0 -0
  1173. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_paper_readiness.py +0 -0
  1174. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_paper_readiness_report.py +0 -0
  1175. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_paper_readiness_scheduler.py +0 -0
  1176. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_parallel_inference.py +0 -0
  1177. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_position_sizing.py +0 -0
  1178. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_postgres_telegram.py +0 -0
  1179. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_postgres_triggers.py +0 -0
  1180. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_postgres_worker.py +0 -0
  1181. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_profile_inference.py +0 -0
  1182. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_profile_subsystems.py +0 -0
  1183. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_promotion_gate_era_rule.py +0 -0
  1184. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_public_benchmarks.py +0 -0
  1185. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rank_ic_monitor.py +0 -0
  1186. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_reconciliation.py +0 -0
  1187. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_retraining_artifacts.py +0 -0
  1188. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_retraining_planning.py +0 -0
  1189. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_retraining_postgres_registry.py +0 -0
  1190. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rl_sizing.py +0 -0
  1191. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rollback_hardening.py +0 -0
  1192. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rolling_ic_gate.py +0 -0
  1193. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rolling_ic_gate_calibration.py +0 -0
  1194. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_rolling_ic_gate_replay.py +0 -0
  1195. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_runtime_config_io.py +0 -0
  1196. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_secret_scan.py +0 -0
  1197. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_simulated_portfolio.py +0 -0
  1198. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_status_export.py +0 -0
  1199. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_strategy_catalog.py +0 -0
  1200. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_strategy_selector_inference.py +0 -0
  1201. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_technical_indicators.py +0 -0
  1202. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_telegram_alerts.py +0 -0
  1203. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_telegram_client.py +0 -0
  1204. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_telegram_worker.py +0 -0
  1205. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_alt_data_features.py +0 -0
  1206. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_bond_features.py +0 -0
  1207. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_cross_asset_sensitivity.py +0 -0
  1208. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_cross_sectional_batching.py +0 -0
  1209. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_derivatives_macro_features.py +0 -0
  1210. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_gate_friendliness.py +0 -0
  1211. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_gating.py +0 -0
  1212. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_multitask_architecture.py +0 -0
  1213. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_optimizer_and_swa.py +0 -0
  1214. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_pipeline.py +0 -0
  1215. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_ranking_loss.py +0 -0
  1216. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_residual_rank_targets.py +0 -0
  1217. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_select_model_context_columns.py +0 -0
  1218. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_sequence.py +0 -0
  1219. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_train_threshold_and_early_stop.py +0 -0
  1220. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_trigger_worker.py +0 -0
  1221. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_triggers.py +0 -0
  1222. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_v2_pipeline_manifest.py +0 -0
  1223. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_v543_new_features.py +0 -0
  1224. {aether_quant-5.4.9 → aether_quant-6.6.4}/tests/test_v547_bug_hunt.py +0 -0
  1225. {aether_quant-5.4.9 → aether_quant-6.6.4}/train_gating.py +0 -0
  1226. {aether_quant-5.4.9 → aether_quant-6.6.4}/train_strategy_selector.py +0 -0
  1227. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/.gitignore +0 -0
  1228. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/.oxlintrc.json +0 -0
  1229. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/index.html +0 -0
  1230. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/overview_v2_12.png +0 -0
  1231. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/package-lock.json +0 -0
  1232. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/package.json +0 -0
  1233. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/public/favicon.svg +0 -0
  1234. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/public/icons.svg +0 -0
  1235. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/risk_v2_12.png +0 -0
  1236. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/App.tsx +0 -0
  1237. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/AblationPanel.test.tsx +0 -0
  1238. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/AblationPanel.tsx +0 -0
  1239. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BenchmarkPanel.test.tsx +0 -0
  1240. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BenchmarkPanel.tsx +0 -0
  1241. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BookHistoryReconciliationPanel.test.tsx +0 -0
  1242. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BookHistoryReconciliationPanel.tsx +0 -0
  1243. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BookSpreadCalibrationPanel.test.tsx +0 -0
  1244. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/BookSpreadCalibrationPanel.tsx +0 -0
  1245. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/CapacityStressPanel.tsx +0 -0
  1246. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/MonteCarloPanel.test.tsx +0 -0
  1247. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/MonteCarloPanel.tsx +0 -0
  1248. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/RankBookPerformancePanel.test.tsx +0 -0
  1249. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/RankBookPerformancePanel.tsx +0 -0
  1250. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/WalkForwardStabilityPanel.test.tsx +0 -0
  1251. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/evaluation/WalkForwardStabilityPanel.tsx +0 -0
  1252. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/heatmap/AssetHeatmap.tsx +0 -0
  1253. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/layout/AppShell.tsx +0 -0
  1254. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/layout/Panel.tsx +0 -0
  1255. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/AuditLogPanel.tsx +0 -0
  1256. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/CountTable.tsx +0 -0
  1257. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/KillSwitchPanel.test.tsx +0 -0
  1258. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/KillSwitchPanel.tsx +0 -0
  1259. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/MonitoringFeeds.tsx +0 -0
  1260. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/ObservationPanel.tsx +0 -0
  1261. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/PaperReadinessPanel.tsx +0 -0
  1262. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/PerformanceTriggersPanel.tsx +0 -0
  1263. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/RawStateViewer.tsx +0 -0
  1264. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/ReconciliationPanel.test.tsx +0 -0
  1265. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/ReconciliationPanel.tsx +0 -0
  1266. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/RetrainingStatusPanel.test.tsx +0 -0
  1267. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/monitoring/RetrainingStatusPanel.tsx +0 -0
  1268. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/neuralnet/NeuralNetworkScene3D.tsx +0 -0
  1269. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/neuralnet/NeuralNetworkStatsPanel.test.tsx +0 -0
  1270. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/neuralnet/NeuralNetworkStatsPanel.tsx +0 -0
  1271. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/neuralnet/TrainingRecipePanel.test.tsx +0 -0
  1272. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/neuralnet/TrainingRecipePanel.tsx +0 -0
  1273. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/CorporateActionsPanel.tsx +0 -0
  1274. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/DividendScheduleSummaryPanel.tsx +0 -0
  1275. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/ForexPairDetailPanel.tsx +0 -0
  1276. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/HeldMultiLegPositionsPanel.tsx +0 -0
  1277. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/StrategyCatalogBrowser.tsx +0 -0
  1278. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/optionsstrategy/StrategySelectorScoresPanel.tsx +0 -0
  1279. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/portfolio/BookNeutralityPanel.test.tsx +0 -0
  1280. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/portfolio/BookNeutralityPanel.tsx +0 -0
  1281. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/AssetSizingTable.test.tsx +0 -0
  1282. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/AssetSizingTable.tsx +0 -0
  1283. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/DerivativesMacroPanel.tsx +0 -0
  1284. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/LiquidityTable.tsx +0 -0
  1285. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/MacroSnapshotPanel.test.tsx +0 -0
  1286. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/MacroSnapshotPanel.tsx +0 -0
  1287. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/NetEdgePanel.test.tsx +0 -0
  1288. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/NetEdgePanel.tsx +0 -0
  1289. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/RiskBar.tsx +0 -0
  1290. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/RiskCore.tsx +0 -0
  1291. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/SensitivityPanel.test.tsx +0 -0
  1292. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/SensitivityPanel.tsx +0 -0
  1293. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/risk/StrategyRiskCards.tsx +0 -0
  1294. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/scene3d/Scene3D.tsx +0 -0
  1295. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/scorecards/Scorecards.tsx +0 -0
  1296. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/signals/Badge.tsx +0 -0
  1297. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/signals/PositionsList.tsx +0 -0
  1298. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/signals/RankSignalPanel.test.tsx +0 -0
  1299. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/signals/RankSignalPanel.tsx +0 -0
  1300. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/signals/SignalBoard.tsx +0 -0
  1301. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/topology/ClusterList.tsx +0 -0
  1302. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/topology/TopologyLearningPanel.tsx +0 -0
  1303. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/topology/TopologyScene3D.test.tsx +0 -0
  1304. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/topology/TopologyScene3D.tsx +0 -0
  1305. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/AssetPerformancePanel.tsx +0 -0
  1306. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/BacktestEquityPanel.tsx +0 -0
  1307. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/DivergingBarChart.test.tsx +0 -0
  1308. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/DivergingBarChart.tsx +0 -0
  1309. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/LineChart.test.tsx +0 -0
  1310. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/LineChart.tsx +0 -0
  1311. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/MetricsSnapshotPanel.tsx +0 -0
  1312. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/components/tracing/ObservationEquityPanel.tsx +0 -0
  1313. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/index.css +0 -0
  1314. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/lib/downsample.ts +0 -0
  1315. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/lib/format.test.ts +0 -0
  1316. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/lib/format.ts +0 -0
  1317. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/main.tsx +0 -0
  1318. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/EvaluationPage.tsx +0 -0
  1319. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/NeuralNetworkPage.tsx +0 -0
  1320. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/OptionsStrategyPage.tsx +0 -0
  1321. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/Overview.tsx +0 -0
  1322. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/RiskPage.tsx +0 -0
  1323. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/TopologyPage.tsx +0 -0
  1324. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/pages/TracingPage.tsx +0 -0
  1325. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/test/setup.ts +0 -0
  1326. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/types/audit.ts +0 -0
  1327. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/types/evaluation.ts +0 -0
  1328. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/src/types/tracing.ts +0 -0
  1329. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/tsconfig.app.json +0 -0
  1330. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/tsconfig.json +0 -0
  1331. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/tsconfig.node.json +0 -0
  1332. {aether_quant-5.4.9 → aether_quant-6.6.4}/webui/vite.config.ts +0 -0
@@ -0,0 +1,6 @@
1
+ # .devcontainer
2
+
3
+ Codespaces and Dev Container definitions. See [`development/infrastructure.md`](../development/infrastructure.md).
4
+
5
+ - **`devcontainer.json`:** the training Codespace. Python 3.11 with sshd, CPU PyTorch and both requirements files. Create it on 4 cores / 16 GB (`-m standardLinux32gb`), with `--devcontainer-path .devcontainer/devcontainer.json`, because the repo has two definitions.
6
+ - **`dind-v1-test/`:** Lean backtests in a temporary 4-core Codespace. Pinned to `python:3.11-bookworm` (the Docker-in-Docker feature doesn't support Debian trixie). Move Docker's data root to the large local disk before building the 20 GB image: `/etc/docker/daemon.json` with `{"data-root": "/tmp/docker-data", "dns": ["168.63.129.16"]}`, then restart `dockerd`.
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "Aether Quant DinD v1 Test",
3
+ "image": "mcr.microsoft.com/devcontainers/python:3.11-bookworm",
4
+ "features": {
5
+ "ghcr.io/devcontainers/features/sshd:1": {
6
+ "version": "latest"
7
+ },
8
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {}
9
+ },
10
+ "hostRequirements": {
11
+ "cpus": 4,
12
+ "memory": "16gb"
13
+ }
14
+ }
@@ -0,0 +1,55 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.pyo
4
+ .venv/
5
+ node_modules/
6
+ webui/node_modules/
7
+ webui/dist/
8
+ backtests/
9
+ .lean/
10
+ .git/
11
+ .av/
12
+ .claude/
13
+ Aether-quant-Obsidian-Vault/
14
+ # Large data directories not needed by the FastAPI server
15
+ data/
16
+ ml/
17
+ storage/
18
+
19
+ # Local secrets and broker/API credentials - mirrors .gitignore's own list.
20
+ # Being .gitignore'd does NOT keep a file out of the image: the engine build
21
+ # does `COPY . .`, and that same image is published to ghcr (single fat
22
+ # target, no slim variant), so anything not excluded here is baked into a
23
+ # public registry layer - recoverable via `docker history`/`docker save` even
24
+ # if a later commit removes it. lean.live.json is the rendered, secret-bearing
25
+ # config `aq render-lean-config` produces (execution/lean_config_render.py);
26
+ # lean.json itself is git-tracked with empty placeholders but is excluded too,
27
+ # so a locally-populated copy can never leak. Keep this list in sync with
28
+ # .gitignore's "Local secrets" block.
29
+ .env
30
+ .env.*
31
+ !.env.compose.example
32
+ !.env.live.example
33
+ ib_config.py
34
+ *_config.local.py
35
+ config.local.json
36
+ lean.local.json
37
+ lean.live.json
38
+ lean.json
39
+ *.key
40
+ *.pem
41
+
42
+ # cpp_inference_ext/'s compiled build artifacts - mirrors .gitignore's own
43
+ # exclusion list. Docker now builds this extension fresh for the
44
+ # container's own Python 3.11 (see Dockerfile) - a locally-pre-built
45
+ # stray .pyd/.so from a developer's own (ABI-incompatible) host Python
46
+ # must never leak into the build context and get baked into the image,
47
+ # which is published to a public ghcr registry.
48
+ cpp_inference_ext/build/
49
+ cpp_inference_ext/*.egg-info/
50
+ cpp_inference_ext/*.pyd
51
+ cpp_inference_ext/*.so
52
+ cpp_inference_ext/install_log*.txt
53
+ data_pre2013/
54
+ data_wide/
55
+ data_crypto_wide/
@@ -0,0 +1,5 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
3
+
4
+ # Shell scripts run on Linux Codespaces: always LF in the working tree.
5
+ *.sh text eol=lf
@@ -0,0 +1,5 @@
1
+ # .githooks
2
+
3
+ Opt-in git hooks: `git config core.hooksPath .githooks`.
4
+
5
+ - **`pre-commit`:** runs `aq secrets-check` and blocks a commit with a populated secret in `lean.json` or a tracked `.env`. See [`SECURITY.md`](../SECURITY.md).
@@ -0,0 +1,36 @@
1
+ #!/bin/sh
2
+ # Aether Quant pre-commit secret guard (Phase V2-22 security).
3
+ #
4
+ # Blocks a commit that would publish a secret: a populated secret field in the
5
+ # tracked lean.json, or a tracked real `.env` file. All detection lives in
6
+ # `aq secrets-check` (execution/secret_scan.py) - this hook just invokes it.
7
+ #
8
+ # Enable once per clone (opt-in, so it never surprises a fresh checkout):
9
+ # git config core.hooksPath .githooks
10
+ #
11
+ # Runs under git's POSIX sh (git-bash on Windows), so keep it portable.
12
+
13
+ set -e
14
+
15
+ repo_root=$(git rev-parse --show-toplevel)
16
+ cd "$repo_root"
17
+
18
+ # Prefer the installed `aq` console script; fall back to running the module
19
+ # directly with whichever Python is on PATH (venv-activated shells get theirs).
20
+ if command -v aq >/dev/null 2>&1; then
21
+ aq secrets-check
22
+ elif command -v python >/dev/null 2>&1; then
23
+ python aq_cli.py secrets-check
24
+ elif command -v python3 >/dev/null 2>&1; then
25
+ python3 aq_cli.py secrets-check
26
+ else
27
+ echo "pre-commit: could not find 'aq' or 'python' to run secrets-check" >&2
28
+ exit 1
29
+ fi
30
+
31
+ # V6.6.4 - the library gate: a public function that no aether_quant facade exports blocks the commit (scripts/library_gate.py). It reads the source and imports nothing.
32
+ if command -v python >/dev/null 2>&1; then
33
+ python scripts/library_gate.py
34
+ elif command -v python3 >/dev/null 2>&1; then
35
+ python3 scripts/library_gate.py
36
+ fi
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: Bug report
3
+ about: Something is broken, wrong, or behaves differently than documented.
4
+ title: "[bug] "
5
+ labels: ["bug"]
6
+ ---
7
+
8
+ ## What happened
9
+
10
+ <!-- Lead with the observable failure. -->
11
+
12
+ ## Where
13
+
14
+ <!-- File, module or command, e.g. `aq evaluate --rank-book`. -->
15
+
16
+ ## Expected vs actual
17
+
18
+ - **Expected:**
19
+ - **Actual:**
20
+
21
+ ## Reproduction
22
+
23
+ ```text
24
+ <steps from a clean clone; `aq config get <key>` output helps>
25
+ ```
26
+
27
+ ## Evidence
28
+
29
+ ```text
30
+ <smallest relevant output>
31
+ ```
32
+
33
+ ## Environment
34
+
35
+ - OS, Python version, commit or tag:
36
+ - [ ] I checked `development/Problems.md` for a known entry
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Feature request
3
+ about: A new subsystem, module, CLI capability, or behavioral improvement.
4
+ title: "[feature] "
5
+ labels: ["enhancement"]
6
+ ---
7
+
8
+ ## Problem to solve
9
+
10
+ <!-- The need, not the implementation. -->
11
+
12
+ ## Proposed behaviour
13
+
14
+ <!-- New `aq` command or flag, config block, or output. -->
15
+
16
+ ## Fit
17
+
18
+ - [ ] An unmodified `config.json` keeps today's behaviour.
19
+ - [ ] Testable without Lean: pure logic in a package module, not `main.py`.
20
+
21
+ ## Alternatives considered
22
+
23
+ <!-- What you ruled out, and why. -->
@@ -0,0 +1,26 @@
1
+ <!-- Title: `V<version> <what and why>` for release-bound PRs, otherwise plain and descriptive. -->
2
+
3
+ ## What and why
4
+
5
+ <!-- One paragraph. Reference development/Problems.md entries (#N) where they apply. -->
6
+
7
+ ## Behaviour
8
+
9
+ - [ ] Unchanged when new flags are absent, **or** the change is intentional and listed here:
10
+ - New config keys and defaults: <!-- or "none" -->
11
+
12
+ ## Verification
13
+
14
+ - [ ] `aq test` green (N passed), `ruff check .` clean, `aq verify --quick` green
15
+ - [ ] A new public function or class is in `aether_quant`, or listed with a reason (`scripts/library_gate.py`)
16
+ - [ ] A new invariant in a safety, admission or ledger path has a Lean spec, a differential test and a property test (`development/verification.md`)
17
+ - [ ] `scripts/clean_checkout_test.ps1`, or `scripts/codespace_verify.ps1 -Start` on a low-memory PC
18
+ - New tests: <!-- files, and what they pin -->
19
+ - Manual checks: <!-- dry runs, real-data spot checks -->
20
+
21
+ ## Docs
22
+
23
+ - [ ] README or package README
24
+ - [ ] `development/Changelog.md`, and `development/Problems.md` if a bug was found
25
+ - [ ] `development/architecture.md` or `infrastructure.md` if structure or services changed
26
+ - [ ] `aq docs sync`, and the vault regenerated
@@ -0,0 +1,21 @@
1
+ # V5.5.0 - weekly dependency PRs, one ecosystem each. The CI jobs
2
+ # (dependency-audit, webui npm audit) report advisories; this is what turns
3
+ # an advisory into a reviewable bump. tests/test_ci_workflows.py pins the
4
+ # three ecosystems so none can be dropped silently.
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: "pip"
8
+ directory: "/requirements"
9
+ schedule:
10
+ interval: "weekly"
11
+ open-pull-requests-limit: 5
12
+ - package-ecosystem: "npm"
13
+ directory: "/webui"
14
+ schedule:
15
+ interval: "weekly"
16
+ open-pull-requests-limit: 5
17
+ - package-ecosystem: "github-actions"
18
+ directory: "/"
19
+ schedule:
20
+ interval: "weekly"
21
+ open-pull-requests-limit: 5
@@ -0,0 +1,420 @@
1
+ name: CI
2
+
3
+ # V5.3.9 - deep CI suite: windows+ubuntu pytest matrix with a calibrated
4
+ # coverage fail-under gate (82% measured - 2), ruff lint, the full webui
5
+ # vitest suite, an offline CLI smoke battery, and workflow self-validation.
6
+ # V5.5.0 - guard jobs for the offline/live-parity round: fast-guards,
7
+ # subsystem-matrix, wheel-smoke, python-compat, docker-checks, parity-smoke,
8
+ # secret-scan and test-count-drift. tests/test_ci_workflows.py pins them all.
9
+ # V6.2.0 - Linux jobs pin ubuntu-24.04: ubuntu-latest moves to 26.04 from 2026-10-19
10
+ # and setup-python's 3.11 builds for a new image can lag; the actions run on Node 24.
11
+ on:
12
+ push:
13
+ branches: [main]
14
+ pull_request:
15
+
16
+ # V5.4.2 - cancel superseded runs on rapid-fire pushes (ported from Aether-Vault)
17
+ concurrency:
18
+ group: ci-${{ github.ref }}
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ python-tests:
23
+ runs-on: ${{ matrix.os }}
24
+ timeout-minutes: 30
25
+ strategy:
26
+ fail-fast: false
27
+ matrix:
28
+ os: [ubuntu-24.04, windows-latest]
29
+ steps:
30
+ - uses: actions/checkout@v7
31
+
32
+ - uses: actions/setup-python@v7
33
+ with:
34
+ python-version: "3.11"
35
+ cache: "pip"
36
+
37
+ - name: Syntax-check main.py (no Lean runtime available in CI - see development/Problems.md #69)
38
+ run: python -m py_compile main.py
39
+
40
+ - name: Install CPU-only PyTorch (Linux runner)
41
+ if: runner.os == 'Linux'
42
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
43
+
44
+ - name: Install dependencies
45
+ run: |
46
+ pip install -r requirements/requirements.txt -r requirements/requirements-dev.txt
47
+ pip install pytest-cov
48
+
49
+ - name: Run full test suite with coverage gate
50
+ run: >
51
+ pytest -m "not lean_backtest" -ra
52
+ --cov --cov-report=term-missing --cov-report=xml
53
+ --cov-fail-under=80
54
+
55
+ - name: Upload coverage artifact
56
+ if: matrix.os == 'ubuntu-24.04'
57
+ uses: actions/upload-artifact@v7
58
+ with:
59
+ name: coverage-xml
60
+ path: coverage.xml
61
+
62
+ python-lint:
63
+ runs-on: ubuntu-24.04
64
+ steps:
65
+ - uses: actions/checkout@v7
66
+
67
+ - uses: actions/setup-python@v7
68
+ with:
69
+ python-version: "3.11"
70
+ cache: "pip"
71
+ cache-dependency-path: requirements/requirements-dev.txt
72
+
73
+ # V5.3.11 FIX: bare `ruff check .` — NOT `aq test --ruff` (which
74
+ # requires importing aq_cli → pandas via the full package chain, but
75
+ # this job intentionally has a minimal environment). Local devs use
76
+ # `aq test --ruff`; CI uses bare ruff for speed.
77
+ # V5.4.7: ruff is PINNED - the previous unbounded range let new ruff
78
+ # releases add rules and break CI independently of any repo change.
79
+ - name: Install ruff
80
+ run: pip install "ruff==0.16.4"
81
+
82
+ - name: Ruff check (E/F ruleset calibrated in pyproject.toml)
83
+ run: ruff check .
84
+
85
+ - name: Syntax-check main.py
86
+ run: python -m py_compile main.py
87
+
88
+ dependency-audit:
89
+ runs-on: ubuntu-24.04
90
+ timeout-minutes: 15
91
+ steps:
92
+ - uses: actions/checkout@v7
93
+
94
+ - uses: actions/setup-python@v7
95
+ with:
96
+ python-version: "3.11"
97
+ cache: "pip"
98
+ cache-dependency-path: requirements/requirements.txt
99
+
100
+ - name: Install pip-audit
101
+ run: pip install pip-audit
102
+
103
+ - name: Audit runtime dependencies for known CVEs
104
+ run: |
105
+ pip install -r requirements/requirements.txt
106
+ pip-audit --requirement requirements/requirements.txt --desc
107
+
108
+ - name: Audit dev dependencies for known CVEs
109
+ run: |
110
+ pip-audit --requirement requirements/requirements-dev.txt --desc
111
+
112
+ webui-tests:
113
+ runs-on: ubuntu-24.04
114
+ timeout-minutes: 20
115
+ defaults:
116
+ run:
117
+ working-directory: webui
118
+ steps:
119
+ - uses: actions/checkout@v7
120
+
121
+ - uses: actions/setup-node@v7
122
+ with:
123
+ node-version: "20"
124
+ cache: "npm"
125
+ cache-dependency-path: webui/package-lock.json
126
+
127
+ - run: npm ci
128
+ - run: npx tsc -b
129
+ - run: npx oxlint
130
+ # V5.3.9 - the full frontend suite finally runs in CI too.
131
+ - run: npx vitest run --pool=threads
132
+ - run: npm run build
133
+ # V5.5.0 - advisory: a new upstream advisory must be visible without
134
+ # turning an unrelated PR red (the lockfile is the owner's to bump).
135
+ - name: npm audit (advisory, runtime deps, high+)
136
+ continue-on-error: true
137
+ run: npm audit --omit=dev --audit-level=high
138
+
139
+ cli-smoke:
140
+ runs-on: ubuntu-24.04
141
+ timeout-minutes: 15
142
+ steps:
143
+ - uses: actions/checkout@v7
144
+
145
+ - uses: actions/setup-python@v7
146
+ with:
147
+ python-version: "3.11"
148
+ cache: "pip"
149
+ cache-dependency-path: requirements/requirements.txt
150
+
151
+ # V5.5.0 - the default Linux torch wheel drags in ~2 GB of CUDA libraries a
152
+ # CPU-only runner never uses. Installing the CPU build FIRST lets the
153
+ # requirements install below see torch as already satisfied.
154
+ - name: Install CPU-only PyTorch
155
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
156
+
157
+ - name: Install package editable
158
+ run: |
159
+ pip install -r requirements/requirements.txt
160
+ pip install -e .
161
+
162
+ - name: CLI smoke battery (offline, deterministic)
163
+ run: |
164
+ aq --help > /dev/null
165
+ aq evaluate --help > /dev/null
166
+ aq config get phase1.universe.name
167
+ aq secrets-check
168
+
169
+ workflows-lint:
170
+ runs-on: ubuntu-24.04
171
+ timeout-minutes: 10
172
+ steps:
173
+ - uses: actions/checkout@v7
174
+
175
+ # V5.3.10 - single-step pinned install + validate: the previous two-step
176
+ # pattern (PATH append, then bare `actionlint`) failed with
177
+ # "command not found" on the runner. Pinned to v1.7.7 for
178
+ # reproducibility (meta-tested in tests/test_ci_workflows.py).
179
+ - name: Validate workflow files (actionlint v1.7.7)
180
+ run: |
181
+ curl -sSL -o actionlint.tar.gz \
182
+ https://github.com/rhysd/actionlint/releases/download/v1.7.7/actionlint_1.7.7_linux_amd64.tar.gz
183
+ tar -xzf actionlint.tar.gz actionlint
184
+ ./actionlint -no-color -verbose
185
+
186
+ # V5.5.0 - the cheap, high-signal guards, in one place so a PR that breaks
187
+ # test registration, the README flag docs, a workflow, the packaging list,
188
+ # a docs link or a parity fix fails in minutes instead of after the whole
189
+ # coverage matrix. They also run inside python-tests; this is the fast copy.
190
+ fast-guards:
191
+ runs-on: ubuntu-24.04
192
+ timeout-minutes: 20
193
+ steps:
194
+ - uses: actions/checkout@v7
195
+
196
+ - uses: actions/setup-python@v7
197
+ with:
198
+ python-version: "3.11"
199
+ cache: "pip"
200
+ cache-dependency-path: requirements/requirements-dev.txt
201
+
202
+ # V5.5.0 - the default Linux torch wheel drags in ~2 GB of CUDA libraries a
203
+ # CPU-only runner never uses. Installing the CPU build FIRST lets the
204
+ # requirements install below see torch as already satisfied.
205
+ - name: Install CPU-only PyTorch
206
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
207
+
208
+ - name: Install dependencies
209
+ run: pip install -r requirements/requirements.txt -r requirements/requirements-dev.txt
210
+
211
+ - name: Guard tests (registration, help surface, workflows, packaging, docs links, parity round)
212
+ run: >
213
+ pytest -q -p no:cacheprovider
214
+ tests/test_cli_help_surface.py
215
+ tests/test_ci_workflows.py
216
+ tests/test_dockerignore_secrets.py
217
+ tests/test_lean_runtime_imports.py
218
+ tests/test_packaging_modules.py
219
+ tests/test_docs_links.py
220
+ tests/test_docs_facts.py
221
+ tests/test_aether_quant_coverage.py
222
+ tests/test_v550_parity_fixes.py
223
+ tests/test_aq_cli.py::test_subsystem_test_files_maps_every_real_test_file_to_exactly_one_bucket
224
+
225
+ # V5.5.0 - `aq test --<subsystem>` per bucket: proves every bucket is
226
+ # self-contained (no hidden cross-file ordering) and that the routing in
227
+ # aq_cli.py::_SUBSYSTEM_TEST_FILES works, which the single full-tree run
228
+ # never exercises. The full run above stays the coverage source of truth.
229
+ subsystem-matrix:
230
+ runs-on: ubuntu-24.04
231
+ timeout-minutes: 30
232
+ strategy:
233
+ fail-fast: false
234
+ matrix:
235
+ subsystem: [cli, audit, risk, portfolio, features, data-pipeline, webui, ml, retraining, notifications, storage, live, evaluation, formal, meta]
236
+ steps:
237
+ - uses: actions/checkout@v7
238
+
239
+ - uses: actions/setup-python@v7
240
+ with:
241
+ python-version: "3.11"
242
+ cache: "pip"
243
+ cache-dependency-path: requirements/requirements-dev.txt
244
+
245
+ # V5.5.0 - the default Linux torch wheel drags in ~2 GB of CUDA libraries a
246
+ # CPU-only runner never uses. Installing the CPU build FIRST lets the
247
+ # requirements install below see torch as already satisfied.
248
+ - name: Install CPU-only PyTorch
249
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
250
+
251
+ - name: Install dependencies and the package
252
+ run: |
253
+ pip install -r requirements/requirements.txt -r requirements/requirements-dev.txt
254
+ pip install -e .
255
+
256
+ - name: aq test --${{ matrix.subsystem }}
257
+ run: aq test --${{ matrix.subsystem }}
258
+
259
+ # V5.5.0 - builds the real wheel and exercises it OUTSIDE the checkout.
260
+ # `pip install -e .` (cli-smoke) puts the whole repo on sys.path and hides
261
+ # every pyproject.toml packaging gap; this job found four missing packages
262
+ # and a missing root module the first time it ran.
263
+ wheel-smoke:
264
+ runs-on: ubuntu-24.04
265
+ timeout-minutes: 25
266
+ steps:
267
+ - uses: actions/checkout@v7
268
+ with:
269
+ fetch-depth: 0 # setuptools-scm needs tags to version the wheel
270
+
271
+ - uses: actions/setup-python@v7
272
+ with:
273
+ python-version: "3.11"
274
+ cache: "pip"
275
+ cache-dependency-path: requirements/requirements.txt
276
+
277
+ - name: Build the wheel
278
+ run: |
279
+ pip install build
280
+ python -m build --wheel
281
+
282
+ - name: Install the wheel into a clean venv (CPU torch first)
283
+ run: |
284
+ python -m venv "$RUNNER_TEMP/aq-wheel"
285
+ "$RUNNER_TEMP/aq-wheel/bin/pip" install --upgrade pip
286
+ "$RUNNER_TEMP/aq-wheel/bin/pip" install torch --index-url https://download.pytorch.org/whl/cpu
287
+ "$RUNNER_TEMP/aq-wheel/bin/pip" install -r requirements/requirements.txt dist/*.whl
288
+
289
+ - name: Smoke-test the installed wheel from outside the checkout
290
+ working-directory: ${{ runner.temp }}
291
+ run: '"$RUNNER_TEMP/aq-wheel/bin/python" "$GITHUB_WORKSPACE/scripts/wheel_smoke.py"'
292
+
293
+ # V5.5.0 - requires-python is >=3.10 but every other job runs 3.11, so a
294
+ # 3.11-only construct would ship unnoticed. Byte-compiling is syntax-only
295
+ # (cheap, no dependencies); it still catches except*, 3.12 f-strings, etc.
296
+ python-compat:
297
+ runs-on: ubuntu-24.04
298
+ timeout-minutes: 10
299
+ steps:
300
+ - uses: actions/checkout@v7
301
+
302
+ - uses: actions/setup-python@v7
303
+ with:
304
+ python-version: "3.10"
305
+
306
+ - name: Byte-compile first-party sources on Python 3.10
307
+ run: >
308
+ python -m compileall -q
309
+ -x '(^|/)(\.git|\.venv|venv|node_modules|backtests|webui|Aether-quant-Obsidian-Vault|build|dist|\.matplotlib_cache)(/|$)'
310
+ .
311
+
312
+ # Byte-compiling can't see a standard-library name that is new in 3.11 (datetime.UTC, #326). vermin reads what each source needs and fails on anything above 3.10.
313
+ - name: First-party sources need no more than Python 3.10 (vermin)
314
+ run: |
315
+ pip install vermin==1.9.2
316
+ vermin -t=3.10- --no-tips --violations -q aether_quant analyzer audit data_pipeline evaluation execution experience experts features inference liquidity moe monitoring notifications performance portfolio regime retraining risk topology aq_cli.py docs_facts.py json_safety.py performance_probe.py risk_controls.py generate_backtest_report.py generate_evaluation_report.py scripts/cycle_daily.py scripts/forward_ledger.py
317
+
318
+ # V5.5.0 - Docker is never built with Lean in CI (the 40 GB base image does
319
+ # not fit a hosted runner), but everything checkable without it is checked.
320
+ docker-checks:
321
+ runs-on: ubuntu-24.04
322
+ timeout-minutes: 20
323
+ steps:
324
+ - uses: actions/checkout@v7
325
+
326
+ - name: Lint Dockerfiles (hadolint v2.12.0, errors only)
327
+ run: |
328
+ curl -sSL -o hadolint \
329
+ https://github.com/hadolint/hadolint/releases/download/v2.12.0/hadolint-Linux-x86_64
330
+ chmod +x hadolint
331
+ ./hadolint --failure-threshold error Dockerfile Dockerfile.lean
332
+
333
+ - name: Validate docker-compose.yml (default and lean profile)
334
+ run: |
335
+ docker compose -f docker-compose.yml config -q
336
+ docker compose -f docker-compose.yml --profile lean config -q
337
+
338
+ - name: Build the webui stage of the engine image
339
+ run: docker build --target webui-builder -t aq-webui-check .
340
+
341
+ # V5.5.0 - the new parity tooling, run in isolation so a regression in
342
+ # the offline/live-parity measurements is named by the job that failed.
343
+ parity-smoke:
344
+ runs-on: ubuntu-24.04
345
+ timeout-minutes: 20
346
+ steps:
347
+ - uses: actions/checkout@v7
348
+
349
+ - uses: actions/setup-python@v7
350
+ with:
351
+ python-version: "3.11"
352
+ cache: "pip"
353
+ cache-dependency-path: requirements/requirements-dev.txt
354
+
355
+ # V5.5.0 - the default Linux torch wheel drags in ~2 GB of CUDA libraries a
356
+ # CPU-only runner never uses. Installing the CPU build FIRST lets the
357
+ # requirements install below see torch as already satisfied.
358
+ - name: Install CPU-only PyTorch
359
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
360
+
361
+ - name: Install dependencies
362
+ run: pip install -r requirements/requirements.txt -r requirements/requirements-dev.txt
363
+
364
+ - name: Backtest audit, as-live simulator, calibration and sleeve tests
365
+ run: >
366
+ pytest -q -p no:cacheprovider
367
+ tests/test_backtest_audit.py
368
+ tests/test_live_parity.py
369
+ tests/test_volatility_threshold_calibration.py
370
+ tests/test_legacy_sleeve.py
371
+ tests/test_performance_probe.py
372
+ tests/test_rank_book_simulator.py
373
+ tests/test_feature_parity.py
374
+
375
+ - name: Offline parity audit of feature replicas (synthetic, no data files needed)
376
+ run: python scripts/feature_parity_audit.py --synthetic-only
377
+
378
+ # V5.5.0 - ADVISORY until it has run once against the real history: a
379
+ # first scan may flag historic dev defaults that need an allowlist entry.
380
+ secret-scan:
381
+ runs-on: ubuntu-24.04
382
+ timeout-minutes: 10
383
+ continue-on-error: true
384
+ steps:
385
+ - uses: actions/checkout@v7
386
+
387
+ - name: Scan the working tree for secrets (gitleaks v8.18.4)
388
+ run: |
389
+ curl -sSL -o gitleaks.tar.gz \
390
+ https://github.com/gitleaks/gitleaks/releases/download/v8.18.4/gitleaks_8.18.4_linux_x64.tar.gz
391
+ tar -xzf gitleaks.tar.gz gitleaks
392
+ ./gitleaks detect --source . --no-git --no-banner --redact --exit-code 1 --config .gitleaks.toml
393
+
394
+ # V5.5.0 - WARN-ONLY: the README badge is rewritten by a local `aq test`,
395
+ # so it lags whenever a test is added in a commit that skipped it. This
396
+ # surfaces the drift without blocking anyone.
397
+ test-count-drift:
398
+ runs-on: ubuntu-24.04
399
+ timeout-minutes: 20
400
+ continue-on-error: true
401
+ steps:
402
+ - uses: actions/checkout@v7
403
+
404
+ - uses: actions/setup-python@v7
405
+ with:
406
+ python-version: "3.11"
407
+ cache: "pip"
408
+ cache-dependency-path: requirements/requirements-dev.txt
409
+
410
+ # V5.5.0 - the default Linux torch wheel drags in ~2 GB of CUDA libraries a
411
+ # CPU-only runner never uses. Installing the CPU build FIRST lets the
412
+ # requirements install below see torch as already satisfied.
413
+ - name: Install CPU-only PyTorch
414
+ run: pip install torch --index-url https://download.pytorch.org/whl/cpu
415
+
416
+ - name: Install dependencies
417
+ run: pip install -r requirements/requirements.txt -r requirements/requirements-dev.txt
418
+
419
+ - name: Compare the collected test count with the README badge
420
+ run: python scripts/check_test_count_drift.py