cnhkmcp 2.1.3__py3-none-any.whl → 2.1.5__py3-none-any.whl

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 (194) hide show
  1. cnhkmcp/__init__.py +126 -0
  2. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/README.md +38 -0
  3. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/ace.log +0 -0
  4. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/config.json +6 -0
  5. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/ace_lib.py +1514 -0
  6. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_datasets.py +157 -0
  7. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_documentation.py +132 -0
  8. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_operators.py +99 -0
  9. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/helpful_functions.py +180 -0
  10. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.ico +0 -0
  11. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.png +0 -0
  12. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_10_Steps_to_Start_on_BRAIN_documentation.json +14 -0
  13. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json +174 -0
  14. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json +167 -0
  15. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_Alphas_documentation.json +145 -0
  16. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_BRAIN_Expression_Language_documentation.json +107 -0
  17. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_WorldQuant_Challenge_documentation.json +56 -0
  18. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001__Read_this_First_-_Starter_Pack_documentation.json +404 -0
  19. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_How_to_choose_the_Simulation_Settings_documentation.json +268 -0
  20. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_Simulate_your_first_Alpha_documentation.json +88 -0
  21. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Beginners_documentation.json +254 -0
  22. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Bronze_Users_documentation.json +114 -0
  23. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Silver_Users_documentation.json +79 -0
  24. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__How_BRAIN_works_documentation.json +184 -0
  25. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Clear_these_tests_before_submitting_an_Alpha_documentation.json +388 -0
  26. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Parameters_in_the_Simulation_results_documentation.json +243 -0
  27. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Group_Data_Fields_documentation.json +69 -0
  28. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_How_to_use_the_Data_Explorer_documentation.json +142 -0
  29. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Model77_dataset_documentation.json +14 -0
  30. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Sentiment1_dataset_documentation.json +14 -0
  31. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json +182 -0
  32. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Vector_Data_Fields_documentation.json +30 -0
  33. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Crowding_Risk-Neutralized_Alphas_documentation.json +64 -0
  34. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_D0_documentation.json +66 -0
  35. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Double_Neutralization_documentation.json +53 -0
  36. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Fast_D1_Documentation_documentation.json +304 -0
  37. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Investability_Constrained_Metrics_documentation.json +129 -0
  38. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Must-read_posts_How_to_improve_your_Alphas_documentation.json +14 -0
  39. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Neutralization_documentation.json +29 -0
  40. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_RAM_Risk-Neutralized_Alphas_documentation.json +64 -0
  41. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralization_Default_setting_documentation.json +75 -0
  42. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralized_Alphas_documentation.json +171 -0
  43. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Statistical_Risk-Neutralized_Alphas_documentation.json +51 -0
  44. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_EUR_TOP2500_Universe_documentation.json +35 -0
  45. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_GLB_TOPDIV3000_Universe_documentation.json +48 -0
  46. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json +142 -0
  47. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_on_Illiquid_Universes_Gold_documentation.json +46 -0
  48. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json +62 -0
  49. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Global_Alphas_Gold_documentation.json +66 -0
  50. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_India_Alphas_documentation.json +35 -0
  51. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Dos_and_Don_ts_documentation.json +35 -0
  52. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Features_documentation.json +239 -0
  53. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Simulation_Features_documentation.json +149 -0
  54. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Submission_Tests_documentation.json +363 -0
  55. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Finding_Consultant_Alphas_documentation.json +333 -0
  56. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Power_Pool_Alphas_documentation.json +14 -0
  57. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Research_Advisory_Program_documentation.json +35 -0
  58. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Starting_Guide_for_Research_Consultants_documentation.json +14 -0
  59. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Visualization_Tool_documentation.json +99 -0
  60. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Your_Advisor_-_Kunqi_Jiang_documentation.json +53 -0
  61. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Brain_Genius_documentation.json +288 -0
  62. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Single_Dataset_Alphas_documentation.json +41 -0
  63. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Advisory_Theme_Calendar_documentation.json +14 -0
  64. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Multiplier_Rules_documentation.json +14 -0
  65. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Overview_of_Themes_documentation.json +14 -0
  66. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Theme_Calendar_documentation.json +14 -0
  67. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Combo_Expression_documentation.json +272 -0
  68. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Global_SuperAlphas_documentation.json +14 -0
  69. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Helpful_Tips_documentation.json +58 -0
  70. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Selection_Expression_documentation.json +1546 -0
  71. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Operators_documentation.json +890 -0
  72. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Results_documentation.json +83 -0
  73. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_What_is_a_SuperAlpha_documentation.json +261 -0
  74. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_BRAIN_API_documentation.json +515 -0
  75. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_Documentation_for_ACE_API_Library_Gold_documentation.json +27 -0
  76. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010__Understanding_simulation_limits_documentation.json +210 -0
  77. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/arithmetic_operators.json +209 -0
  78. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/cross_sectional_operators.json +98 -0
  79. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/group_operators.json +121 -0
  80. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/logical_operators.json +145 -0
  81. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/reduce_operators.json +156 -0
  82. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/special_operators.json +35 -0
  83. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/test.txt +1 -0
  84. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/time_series_operators.json +386 -0
  85. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/transformational_operators.json +61 -0
  86. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/vector_operators.json +38 -0
  87. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/main.py +576 -0
  88. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/process_knowledge_base.py +281 -0
  89. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/rag_engine.py +408 -0
  90. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/requirements.txt +7 -0
  91. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/run.bat +3 -0
  92. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_manifest.json +302 -0
  93. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_meta.json +1 -0
  94. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/chroma.sqlite3 +0 -0
  95. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242//321/211/320/266/320/246/321/206/320/274/320/261/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +265 -0
  96. cnhkmcp/untracked/APP/.gitignore +32 -0
  97. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +112 -0
  98. cnhkmcp/untracked/APP/README.md +309 -0
  99. cnhkmcp/untracked/APP/Tranformer/Transformer.py +4989 -0
  100. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  101. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +1514 -0
  102. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +180 -0
  103. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +7187 -0
  104. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +654 -0
  105. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +1 -0
  106. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +47312 -0
  107. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/277/321/207/320/253/342/224/244/321/206/320/236/320/265/321/210/342/225/234/342/225/234/321/205/320/225/320/265Machine_lib.json +22 -0
  108. cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
  109. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +3182 -0
  110. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +7 -0
  111. cnhkmcp/untracked/APP/Tranformer/validator.py +889 -0
  112. cnhkmcp/untracked/APP/ace.log +69 -0
  113. cnhkmcp/untracked/APP/ace_lib.py +1514 -0
  114. cnhkmcp/untracked/APP/blueprints/__init__.py +6 -0
  115. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +347 -0
  116. cnhkmcp/untracked/APP/blueprints/idea_house.py +221 -0
  117. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +432 -0
  118. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +570 -0
  119. cnhkmcp/untracked/APP/custom_templates/templates.json +1257 -0
  120. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +400 -0
  121. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +1514 -0
  122. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +252 -0
  123. cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +157 -0
  124. cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +99 -0
  125. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +180 -0
  126. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +11 -0
  127. cnhkmcp/untracked/APP/helpful_functions.py +180 -0
  128. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +1501 -0
  129. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +447 -0
  130. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +180 -0
  131. cnhkmcp/untracked/APP/mirror_config.txt +20 -0
  132. cnhkmcp/untracked/APP/operaters.csv +129 -0
  133. cnhkmcp/untracked/APP/requirements.txt +53 -0
  134. cnhkmcp/untracked/APP/run_app.bat +28 -0
  135. cnhkmcp/untracked/APP/run_app.sh +34 -0
  136. cnhkmcp/untracked/APP/setup_tsinghua.bat +39 -0
  137. cnhkmcp/untracked/APP/setup_tsinghua.sh +43 -0
  138. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +404 -0
  139. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +618 -0
  140. cnhkmcp/untracked/APP/ssrn-3332513.pdf +109188 -19
  141. cnhkmcp/untracked/APP/static/brain.js +589 -0
  142. cnhkmcp/untracked/APP/static/decoder.js +1540 -0
  143. cnhkmcp/untracked/APP/static/feature_engineering.js +1729 -0
  144. cnhkmcp/untracked/APP/static/idea_house.js +937 -0
  145. cnhkmcp/untracked/APP/static/inspiration.js +465 -0
  146. cnhkmcp/untracked/APP/static/inspiration_house.js +868 -0
  147. cnhkmcp/untracked/APP/static/paper_analysis.js +390 -0
  148. cnhkmcp/untracked/APP/static/script.js +3082 -0
  149. cnhkmcp/untracked/APP/static/simulator.js +597 -0
  150. cnhkmcp/untracked/APP/static/styles.css +3127 -0
  151. cnhkmcp/untracked/APP/static/usage_widget.js +508 -0
  152. cnhkmcp/untracked/APP/templates/alpha_inspector.html +511 -0
  153. cnhkmcp/untracked/APP/templates/feature_engineering.html +960 -0
  154. cnhkmcp/untracked/APP/templates/idea_house.html +564 -0
  155. cnhkmcp/untracked/APP/templates/index.html +932 -0
  156. cnhkmcp/untracked/APP/templates/inspiration_house.html +861 -0
  157. cnhkmcp/untracked/APP/templates/paper_analysis.html +91 -0
  158. cnhkmcp/untracked/APP/templates/simulator.html +343 -0
  159. cnhkmcp/untracked/APP/templates/transformer_web.html +580 -0
  160. cnhkmcp/untracked/APP/usage.md +351 -0
  161. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/ace_lib.py +1514 -0
  162. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/brain_alpha_inspector.py +712 -0
  163. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/helpful_functions.py +180 -0
  164. cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +2460 -0
  165. cnhkmcp/untracked/__init__.py +0 -0
  166. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +490 -0
  167. cnhkmcp/untracked/arxiv_api.py +229 -0
  168. cnhkmcp/untracked/back_up/forum_functions.py +998 -0
  169. cnhkmcp/untracked/back_up/platform_functions.py +2886 -0
  170. cnhkmcp/untracked/brain-consultant.md +31 -0
  171. cnhkmcp/untracked/forum_functions.py +407 -0
  172. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/forum_functions.py +407 -0
  173. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +2601 -0
  174. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/user_config.json +31 -0
  175. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/210/320/276/320/271AI/321/210/320/277/342/225/227/321/210/342/224/220/320/251/321/204/342/225/225/320/272/321/206/320/246/320/227/321/206/320/261/320/263/321/206/320/255/320/265/321/205/320/275/320/266/321/204/342/225/235/320/252/321/204/342/225/225/320/233/321/210/342/225/234/342/225/234/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270.md +101 -0
  176. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
  177. cnhkmcp/untracked/platform_functions.py +2601 -0
  178. cnhkmcp/untracked/sample_mcp_config.json +11 -0
  179. cnhkmcp/untracked/user_config.json +31 -0
  180. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/222/321/210/320/220/320/223/321/206/320/246/320/227/321/206/320/261/320/263_BRAIN_Alpha_Test_Requirements_and_Tips.md +202 -0
  181. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Alpha_explaination_workflow.md +56 -0
  182. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_6_Tips_Datafield_Exploration_Guide.md +194 -0
  183. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_Alpha_Improvement_Workflow.md +101 -0
  184. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Dataset_Exploration_Expert_Manual.md +436 -0
  185. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_daily_report_workflow.md +128 -0
  186. cnhkmcp/untracked//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +192 -0
  187. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/METADATA +1 -1
  188. cnhkmcp-2.1.5.dist-info/RECORD +192 -0
  189. cnhkmcp-2.1.5.dist-info/top_level.txt +1 -0
  190. cnhkmcp-2.1.3.dist-info/RECORD +0 -6
  191. cnhkmcp-2.1.3.dist-info/top_level.txt +0 -1
  192. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/WHEEL +0 -0
  193. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/entry_points.txt +0 -0
  194. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,861 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Inspiration House - BRAIN</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
8
+ <style>
9
+ .inspiration-house-container {
10
+ max-width: 1400px;
11
+ margin: 0 auto;
12
+ padding: 20px;
13
+ }
14
+
15
+ .header-section {
16
+ text-align: center;
17
+ margin-bottom: 30px;
18
+ }
19
+
20
+ .header-section h1 {
21
+ color: #2c3e50;
22
+ margin-bottom: 10px;
23
+ }
24
+
25
+ .header-section p {
26
+ color: #7f8c8d;
27
+ font-size: 16px;
28
+ }
29
+
30
+ .back-button {
31
+ position: absolute;
32
+ top: 20px;
33
+ left: 20px;
34
+ background: #3498db;
35
+ color: white;
36
+ padding: 10px 20px;
37
+ border: none;
38
+ border-radius: 5px;
39
+ text-decoration: none;
40
+ display: inline-block;
41
+ transition: background-color 0.3s;
42
+ }
43
+
44
+ .back-button:hover {
45
+ background: #2980b9;
46
+ }
47
+
48
+ .config-section {
49
+ background: #f8f9fa;
50
+ padding: 20px;
51
+ border-radius: 8px;
52
+ margin-bottom: 20px;
53
+ }
54
+
55
+ .config-section h3 {
56
+ margin-top: 0;
57
+ color: #2c3e50;
58
+ }
59
+
60
+ .form-group {
61
+ margin-bottom: 15px;
62
+ }
63
+
64
+ .form-group label {
65
+ display: block;
66
+ margin-bottom: 5px;
67
+ font-weight: bold;
68
+ color: #2c3e50;
69
+ }
70
+
71
+ .form-input {
72
+ width: 100%;
73
+ padding: 10px;
74
+ border: 1px solid #ddd;
75
+ border-radius: 4px;
76
+ font-size: 14px;
77
+ }
78
+
79
+ .form-input:focus {
80
+ outline: none;
81
+ border-color: #3498db;
82
+ box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
83
+ }
84
+
85
+ .form-input[type="select"] {
86
+ cursor: pointer;
87
+ }
88
+
89
+ .form-input option {
90
+ padding: 8px;
91
+ }
92
+
93
+ .config-section .form-group {
94
+ margin-bottom: 20px;
95
+ }
96
+
97
+ .config-section .form-group:last-child {
98
+ margin-bottom: 0;
99
+ }
100
+
101
+ .config-section small {
102
+ display: block;
103
+ margin-top: 5px;
104
+ line-height: 1.4;
105
+ }
106
+
107
+ .btn {
108
+ background: #3498db;
109
+ color: white;
110
+ padding: 10px 20px;
111
+ border: none;
112
+ border-radius: 4px;
113
+ cursor: pointer;
114
+ font-size: 14px;
115
+ transition: background-color 0.3s;
116
+ }
117
+
118
+ .btn:hover {
119
+ background: #2980b9;
120
+ }
121
+
122
+ .btn-success {
123
+ background: #27ae60;
124
+ }
125
+
126
+ .btn-success:hover {
127
+ background: #229954;
128
+ }
129
+
130
+ .btn-secondary {
131
+ background: #95a5a6;
132
+ }
133
+
134
+ .btn-secondary:hover {
135
+ background: #7f8c8d;
136
+ }
137
+
138
+ .btn-warning {
139
+ background: #f39c12;
140
+ }
141
+
142
+ .btn-warning:hover {
143
+ background: #e67e22;
144
+ }
145
+
146
+ .target-section {
147
+ background: white;
148
+ border-radius: 8px;
149
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
150
+ margin-bottom: 20px;
151
+ overflow: hidden;
152
+ }
153
+
154
+ .target-header {
155
+ background: #e74c3c;
156
+ color: white;
157
+ padding: 15px 20px;
158
+ display: flex;
159
+ justify-content: space-between;
160
+ align-items: center;
161
+ }
162
+
163
+ .target-content {
164
+ padding: 20px;
165
+ }
166
+
167
+ .target-display {
168
+ background: #f8f9fa;
169
+ border: 1px solid #e9ecef;
170
+ border-radius: 4px;
171
+ padding: 15px;
172
+ margin-bottom: 15px;
173
+ }
174
+
175
+ .target-display h4 {
176
+ margin: 0 0 10px 0;
177
+ color: #2c3e50;
178
+ }
179
+
180
+ .target-text {
181
+ color: #495057;
182
+ font-style: italic;
183
+ line-height: 1.5;
184
+ }
185
+
186
+ .expression-section {
187
+ background: white;
188
+ border-radius: 8px;
189
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
190
+ margin-bottom: 20px;
191
+ overflow: hidden;
192
+ }
193
+
194
+ .expression-header {
195
+ background: #9b59b6;
196
+ color: white;
197
+ padding: 15px 20px;
198
+ display: flex;
199
+ justify-content: space-between;
200
+ align-items: center;
201
+ }
202
+
203
+ .expression-content {
204
+ padding: 20px;
205
+ }
206
+
207
+ .expression-editor {
208
+ width: 100%;
209
+ min-height: 120px;
210
+ padding: 15px;
211
+ border: 1px solid #ddd;
212
+ border-radius: 4px;
213
+ font-family: 'Courier New', monospace;
214
+ font-size: 14px;
215
+ resize: vertical;
216
+ background: white;
217
+ color: #333;
218
+ }
219
+
220
+ .expression-editor:focus {
221
+ outline: none;
222
+ border-color: #9b59b6;
223
+ box-shadow: 0 0 5px rgba(155, 89, 182, 0.3);
224
+ }
225
+
226
+ .expression-editor::placeholder {
227
+ color: #999;
228
+ font-style: italic;
229
+ }
230
+
231
+ .evaluation-section {
232
+ background: white;
233
+ border-radius: 8px;
234
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
235
+ margin-bottom: 20px;
236
+ overflow: hidden;
237
+ }
238
+
239
+ .evaluation-header {
240
+ background: #f39c12;
241
+ color: white;
242
+ padding: 15px 20px;
243
+ display: flex;
244
+ justify-content: space-between;
245
+ align-items: center;
246
+ }
247
+
248
+ .evaluation-content {
249
+ padding: 20px;
250
+ }
251
+
252
+ .evaluation-controls {
253
+ display: flex;
254
+ gap: 10px;
255
+ margin-bottom: 20px;
256
+ flex-wrap: wrap;
257
+ }
258
+
259
+ .filter-controls {
260
+ display: flex;
261
+ gap: 10px;
262
+ margin-bottom: 20px;
263
+ align-items: center;
264
+ flex-wrap: wrap;
265
+ }
266
+
267
+ .filter-controls label {
268
+ display: flex;
269
+ align-items: center;
270
+ gap: 5px;
271
+ font-weight: normal;
272
+ }
273
+
274
+ .filter-controls input[type="range"] {
275
+ width: 100px;
276
+ }
277
+
278
+ .filter-controls span {
279
+ min-width: 30px;
280
+ text-align: center;
281
+ font-weight: bold;
282
+ }
283
+
284
+ .evaluation-table-container {
285
+ overflow-x: auto;
286
+ max-height: 600px;
287
+ overflow-y: auto;
288
+ }
289
+
290
+ .evaluation-table {
291
+ width: 100%;
292
+ border-collapse: collapse;
293
+ font-size: 14px;
294
+ }
295
+
296
+ .evaluation-table th {
297
+ background: #f8f9fa;
298
+ padding: 12px 8px;
299
+ text-align: left;
300
+ border-bottom: 2px solid #dee2e6;
301
+ position: sticky;
302
+ top: 0;
303
+ z-index: 10;
304
+ }
305
+
306
+ .evaluation-table td {
307
+ padding: 10px 8px;
308
+ border-bottom: 1px solid #dee2e6;
309
+ vertical-align: top;
310
+ }
311
+
312
+ .evaluation-table tr:hover {
313
+ background-color: #f8f9fa;
314
+ }
315
+
316
+ .score-cell {
317
+ text-align: center;
318
+ font-weight: bold;
319
+ }
320
+
321
+ .score-high {
322
+ color: #27ae60;
323
+ }
324
+
325
+ .score-medium {
326
+ color: #f39c12;
327
+ }
328
+
329
+ .score-low {
330
+ color: #e74c3c;
331
+ }
332
+
333
+ .operator-name {
334
+ font-weight: bold;
335
+ color: #2c3e50;
336
+ }
337
+
338
+ .operator-category {
339
+ font-size: 12px;
340
+ color: #7f8c8d;
341
+ font-style: italic;
342
+ }
343
+
344
+ .operator-description {
345
+ font-size: 13px;
346
+ color: #495057;
347
+ margin-top: 8px;
348
+ line-height: 1.4;
349
+ max-width: 300px;
350
+ }
351
+
352
+ .operator-definition {
353
+ font-size: 12px;
354
+ color: #6c757d;
355
+ margin-top: 6px;
356
+ line-height: 1.3;
357
+ max-width: 300px;
358
+ font-style: italic;
359
+ }
360
+
361
+ .reason-text {
362
+ max-width: 300px;
363
+ line-height: 1.4;
364
+ font-size: 13px;
365
+ }
366
+
367
+ .progress-section {
368
+ background: white;
369
+ border-radius: 8px;
370
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
371
+ margin-bottom: 20px;
372
+ overflow: hidden;
373
+ }
374
+
375
+ .progress-header {
376
+ background: #27ae60;
377
+ color: white;
378
+ padding: 15px 20px;
379
+ }
380
+
381
+ .progress-content {
382
+ padding: 20px;
383
+ }
384
+
385
+ .progress-bar {
386
+ width: 100%;
387
+ height: 20px;
388
+ background-color: #e9ecef;
389
+ border-radius: 10px;
390
+ overflow: hidden;
391
+ margin-bottom: 10px;
392
+ }
393
+
394
+ .progress-fill {
395
+ height: 100%;
396
+ background: linear-gradient(90deg, #27ae60, #2ecc71);
397
+ transition: width 0.3s ease;
398
+ display: flex;
399
+ align-items: center;
400
+ justify-content: center;
401
+ color: white;
402
+ font-size: 12px;
403
+ font-weight: bold;
404
+ }
405
+
406
+ .progress-stats {
407
+ display: flex;
408
+ justify-content: space-between;
409
+ font-size: 14px;
410
+ color: #6c757d;
411
+ }
412
+
413
+ .notification {
414
+ position: fixed;
415
+ top: 20px;
416
+ right: 20px;
417
+ padding: 15px 20px;
418
+ border-radius: 4px;
419
+ color: white;
420
+ font-weight: bold;
421
+ z-index: 1000;
422
+ animation: slideIn 0.3s ease-out;
423
+ }
424
+
425
+ .notification.success {
426
+ background: #27ae60;
427
+ }
428
+
429
+ .notification.error {
430
+ background: #e74c3c;
431
+ }
432
+
433
+ .notification.warning {
434
+ background: #f39c12;
435
+ }
436
+
437
+ @keyframes slideIn {
438
+ from {
439
+ transform: translateX(100%);
440
+ opacity: 0;
441
+ }
442
+ to {
443
+ transform: translateX(0);
444
+ opacity: 1;
445
+ }
446
+ }
447
+
448
+ .loading-overlay {
449
+ position: fixed;
450
+ top: 0;
451
+ left: 0;
452
+ width: 100%;
453
+ height: 100%;
454
+ background: rgba(0, 0, 0, 0.5);
455
+ display: flex;
456
+ flex-direction: column;
457
+ justify-content: center;
458
+ align-items: center;
459
+ z-index: 1000;
460
+ }
461
+
462
+ .loading-spinner {
463
+ width: 50px;
464
+ height: 50px;
465
+ border: 5px solid #f3f3f3;
466
+ border-top: 5px solid #3498db;
467
+ border-radius: 50%;
468
+ animation: spin 1s linear infinite;
469
+ }
470
+
471
+ .loading-message {
472
+ color: white;
473
+ margin-top: 20px;
474
+ font-size: 16px;
475
+ }
476
+
477
+ @keyframes spin {
478
+ 0% { transform: rotate(0deg); }
479
+ 100% { transform: rotate(360deg); }
480
+ }
481
+
482
+ .export-section {
483
+ background: #f8f9fa;
484
+ padding: 20px;
485
+ border-radius: 8px;
486
+ margin-top: 20px;
487
+ }
488
+
489
+ .export-section h3 {
490
+ margin-top: 0;
491
+ color: #2c3e50;
492
+ }
493
+
494
+ .export-actions {
495
+ display: flex;
496
+ gap: 10px;
497
+ flex-wrap: wrap;
498
+ }
499
+
500
+ .summary-stats {
501
+ display: grid;
502
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
503
+ gap: 15px;
504
+ margin-bottom: 20px;
505
+ }
506
+
507
+ .stat-card {
508
+ background: white;
509
+ padding: 15px;
510
+ border-radius: 8px;
511
+ box-shadow: 0 2px 5px rgba(0,0,0,0.1);
512
+ text-align: center;
513
+ }
514
+
515
+ .stat-number {
516
+ font-size: 24px;
517
+ font-weight: bold;
518
+ color: #2c3e50;
519
+ }
520
+
521
+ .stat-label {
522
+ font-size: 14px;
523
+ color: #7f8c8d;
524
+ margin-top: 5px;
525
+ }
526
+
527
+ .stat-high .stat-number {
528
+ color: #27ae60;
529
+ }
530
+
531
+ .stat-medium .stat-number {
532
+ color: #f39c12;
533
+ }
534
+
535
+ .stat-low .stat-number {
536
+ color: #e74c3c;
537
+ }
538
+
539
+ /* Modal styles */
540
+ .modal {
541
+ display: none;
542
+ position: fixed;
543
+ z-index: 1000;
544
+ left: 0;
545
+ top: 0;
546
+ width: 100%;
547
+ height: 100%;
548
+ background-color: rgba(0,0,0,0.5);
549
+ }
550
+
551
+ .modal-content {
552
+ background-color: white;
553
+ margin: 5% auto;
554
+ padding: 0;
555
+ border-radius: 8px;
556
+ width: 90%;
557
+ max-width: 500px;
558
+ box-shadow: 0 4px 20px rgba(0,0,0,0.3);
559
+ }
560
+
561
+ .modal-header {
562
+ background: #3498db;
563
+ color: white;
564
+ padding: 15px 20px;
565
+ border-radius: 8px 8px 0 0;
566
+ display: flex;
567
+ justify-content: space-between;
568
+ align-items: center;
569
+ }
570
+
571
+ .modal-header h3 {
572
+ margin: 0;
573
+ }
574
+
575
+ .close {
576
+ color: white;
577
+ font-size: 28px;
578
+ font-weight: bold;
579
+ cursor: pointer;
580
+ }
581
+
582
+ .close:hover {
583
+ opacity: 0.7;
584
+ }
585
+
586
+ .modal-body {
587
+ padding: 20px;
588
+ }
589
+
590
+ .modal-footer {
591
+ padding: 15px 20px;
592
+ border-top: 1px solid #eee;
593
+ display: flex;
594
+ justify-content: flex-end;
595
+ gap: 10px;
596
+ }
597
+
598
+ .btn-outline {
599
+ background: transparent;
600
+ color: #3498db;
601
+ border: 1px solid #3498db;
602
+ }
603
+
604
+ .btn-outline:hover {
605
+ background: #3498db;
606
+ color: white;
607
+ }
608
+
609
+ .btn-small {
610
+ padding: 5px 10px;
611
+ font-size: 12px;
612
+ }
613
+
614
+ .login-status {
615
+ margin-top: 10px;
616
+ padding: 10px;
617
+ border-radius: 4px;
618
+ }
619
+
620
+ .login-spinner {
621
+ text-align: center;
622
+ margin-top: 10px;
623
+ }
624
+
625
+ .spinner {
626
+ width: 20px;
627
+ height: 20px;
628
+ border: 2px solid #f3f3f3;
629
+ border-top: 2px solid #3498db;
630
+ border-radius: 50%;
631
+ animation: spin 1s linear infinite;
632
+ display: inline-block;
633
+ }
634
+ </style>
635
+ </head>
636
+ <body>
637
+ <div class="inspiration-house-container">
638
+ <a href="{{ url_for('index') }}" class="back-button">← Back to Main</a>
639
+
640
+ <div class="header-section">
641
+ <h1>🎯 Inspiration House</h1>
642
+ <p>AI-powered operator suggestions to enhance your current expression</p>
643
+ </div>
644
+
645
+ <!-- API Configuration Section -->
646
+ <div class="config-section" id="apiConfigSection">
647
+ <h3>API Configuration</h3>
648
+ <div class="form-group">
649
+ <label for="modelProvider">AI Model Provider:</label>
650
+ <select id="modelProvider" class="form-input">
651
+ <option value="deepseek">Deepseek</option>
652
+ <option value="kimi">Kimi</option>
653
+ </select>
654
+ </div>
655
+ <div class="form-group">
656
+ <label for="apiKey">API Key:</label>
657
+ <input type="password" id="apiKey" class="form-input" placeholder="Enter your API key">
658
+ </div>
659
+ <div class="form-group">
660
+ <label for="modelName">Model Name:</label>
661
+ <input type="text" id="modelName" class="form-input" placeholder="e.g., deepseek-chat, kimi-k2-0711-preview">
662
+ <small style="color: #7f8c8d; font-size: 12px;">Enter the specific model name for your chosen provider</small>
663
+ </div>
664
+ <div class="form-group">
665
+ <label for="batchSize">Worker Configuration:</label>
666
+ <input type="number" id="batchSize" class="form-input" min="1" max="500" value="100" placeholder="100">
667
+ <small style="color: #7f8c8d; font-size: 12px;">Note: Workers will be set to match the number of operators for maximum parallelization</small>
668
+ </div>
669
+ <button id="saveApiKey" class="btn">Test & Save Configuration</button>
670
+ </div>
671
+
672
+ <!-- Show API Config Button (hidden by default) -->
673
+ <div class="config-section" id="showApiConfigSection" style="display: none;">
674
+ <h3>API Configuration</h3>
675
+ <p style="color: #27ae60; margin-bottom: 15px;">✅ API configuration saved successfully</p>
676
+ <button id="showApiConfig" class="btn btn-secondary">Show API Configuration</button>
677
+ </div>
678
+
679
+ <!-- Target Section -->
680
+ <div class="target-section">
681
+ <div class="target-header">
682
+ <h3>🎯 Quant Research Target</h3>
683
+ <button id="editTarget" class="btn btn-secondary">Edit Target</button>
684
+ </div>
685
+ <div class="target-content">
686
+ <div class="target-display" id="targetDisplay">
687
+ <h4>Current Target:</h4>
688
+ <div class="target-text" id="targetText">No target set. Click "Edit Target" to set your research goal.</div>
689
+ </div>
690
+ <div class="form-group" id="targetInputGroup" style="display: none;">
691
+ <label for="researchTarget">Describe your quant research target:</label>
692
+ <textarea id="researchTarget" class="form-input" rows="4" placeholder="e.g., Lower the trading turnover, Improve Sharpe ratio, Reduce drawdown, etc."></textarea>
693
+ <div style="margin-top: 10px;">
694
+ <button id="saveTarget" class="btn btn-success">Save Target</button>
695
+ <button id="cancelTarget" class="btn btn-secondary">Cancel</button>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ </div>
700
+
701
+ <!-- Expression Section -->
702
+ <div class="expression-section">
703
+ <div class="expression-header">
704
+ <h3>📝 Current Expression</h3>
705
+ <button id="loadFromBRAIN" class="btn btn-secondary">Load from BRAIN</button>
706
+ </div>
707
+ <div class="expression-content">
708
+ <div class="form-group">
709
+ <label for="currentExpression">Your current expression:</label>
710
+ <textarea id="currentExpression" class="expression-editor" placeholder="Enter your current expression here... (e.g., ts_mean(close, 20) or rank(volume))"></textarea>
711
+ </div>
712
+ <div class="form-group">
713
+ <label for="expressionContext">Expression context (optional):</label>
714
+ <textarea id="expressionContext" class="form-input" rows="3" placeholder="Describe what this expression does, its purpose, or any specific context..."></textarea>
715
+ </div>
716
+ </div>
717
+ </div>
718
+
719
+ <!-- Evaluation Section -->
720
+ <div class="evaluation-section">
721
+ <div class="evaluation-header">
722
+ <h3>🔍 Operator Addition Suggestions</h3>
723
+ <div style="display: flex; align-items: center; gap: 10px;">
724
+ <span style="font-size: 14px; color: rgba(255,255,255,0.8);">Operators: <span id="currentBatchSize">0</span></span>
725
+ <button id="startEvaluation" class="btn btn-warning">Start AI Evaluation</button>
726
+ </div>
727
+ </div>
728
+ <div class="evaluation-content">
729
+ <div class="evaluation-controls">
730
+ <button id="refreshEvaluation" class="btn btn-secondary">Refresh Results</button>
731
+ <button id="exportResults" class="btn">Export Results</button>
732
+ <button id="clearResults" class="btn btn-secondary">Clear Results</button>
733
+ </div>
734
+
735
+ <div class="filter-controls">
736
+ <label>
737
+ Min Score:
738
+ <input type="range" id="minScoreFilter" min="0" max="10" value="0">
739
+ <span id="minScoreValue">0</span>
740
+ </label>
741
+ <label>
742
+ Max Score:
743
+ <input type="range" id="maxScoreFilter" min="0" max="10" value="10">
744
+ <span id="maxScoreValue">10</span>
745
+ </label>
746
+ <label>
747
+ <input type="checkbox" id="showHighScores" checked> Show High Scores (8-10)
748
+ </label>
749
+ <label>
750
+ <input type="checkbox" id="showMediumScores" checked> Show Medium Scores (4-7)
751
+ </label>
752
+ <label>
753
+ <input type="checkbox" id="showLowScores" checked> Show Low Scores (0-3)
754
+ </label>
755
+ </div>
756
+
757
+ <div class="summary-stats" id="summaryStats" style="display: none;">
758
+ <div class="stat-card stat-high">
759
+ <div class="stat-number" id="highScoreCount">0</div>
760
+ <div class="stat-label">High Scores (8-10)</div>
761
+ </div>
762
+ <div class="stat-card stat-medium">
763
+ <div class="stat-number" id="mediumScoreCount">0</div>
764
+ <div class="stat-label">Medium Scores (4-7)</div>
765
+ </div>
766
+ <div class="stat-card stat-low">
767
+ <div class="stat-number" id="lowScoreCount">0</div>
768
+ <div class="stat-label">Low Scores (0-3)</div>
769
+ </div>
770
+ <div class="stat-card">
771
+ <div class="stat-number" id="totalEvaluated">0</div>
772
+ <div class="stat-label">Total Evaluated</div>
773
+ </div>
774
+ </div>
775
+
776
+ <div class="evaluation-table-container">
777
+ <table class="evaluation-table" id="evaluationTable">
778
+ <thead>
779
+ <tr>
780
+ <th style="width: 300px;">Operator</th>
781
+ <th style="width: 120px;">Category</th>
782
+ <th style="width: 80px;">Score</th>
783
+ <th style="width: 350px;">Reason</th>
784
+ <th style="width: 100px;">Actions</th>
785
+ </tr>
786
+ </thead>
787
+ <tbody id="evaluationTableBody">
788
+ <tr>
789
+ <td colspan="5" style="text-align: center; color: #7f8c8d; font-style: italic; padding: 40px;">
790
+ No evaluations yet. Set your target and expression, then click "Start AI Evaluation".
791
+ </td>
792
+ </tr>
793
+ </tbody>
794
+ </table>
795
+ </div>
796
+ </div>
797
+ </div>
798
+
799
+ <!-- Progress Section -->
800
+ <div class="progress-section" id="progressSection" style="display: none;">
801
+ <div class="progress-header">
802
+ <h3>🔄 Evaluation Progress</h3>
803
+ </div>
804
+ <div class="progress-content">
805
+ <div class="progress-bar">
806
+ <div class="progress-fill" id="progressFill" style="width: 0%;">0%</div>
807
+ </div>
808
+ <div class="progress-stats">
809
+ <span id="progressText">Evaluating operators...</span>
810
+ <span id="progressCount">0 / 0</span>
811
+ </div>
812
+ </div>
813
+ </div>
814
+
815
+ <!-- Export Section -->
816
+ <div class="export-section">
817
+ <h3>📊 About the Tool</h3>
818
+ <p>This tool evaluates all available BRAIN operators as potential ADDITIONS to your current expression. Each operator receives a score from 0-10 based on how well it could be combined with your current expression to better achieve your research target.</p>
819
+ <div class="export-actions">
820
+ <button id="exportHighScores" class="btn btn-success">Export High Scores</button>
821
+ <button id="exportAllResults" class="btn">Export All Results</button>
822
+ <button id="exportCSV" class="btn btn-secondary">Export as CSV</button>
823
+ </div>
824
+ </div>
825
+ </div>
826
+
827
+ <!-- BRAIN Login Modal -->
828
+ <div id="brainLoginModal" class="modal">
829
+ <div class="modal-content">
830
+ <div class="modal-header">
831
+ <h3>Connect to WorldQuant BRAIN</h3>
832
+ <span class="close" onclick="closeBrainLoginModal()">&times;</span>
833
+ </div>
834
+ <div class="modal-body">
835
+ <form id="brainLoginForm" onsubmit="event.preventDefault(); authenticateBrain();">
836
+ <div class="form-group">
837
+ <label for="brainUsername">Username:</label>
838
+ <input type="email" id="brainUsername" class="form-input" placeholder="your.email@domain.com" required>
839
+ </div>
840
+ <div class="form-group">
841
+ <label for="brainPassword">Password:</label>
842
+ <input type="password" id="brainPassword" class="form-input" placeholder="Your password" required>
843
+ </div>
844
+ <div id="brainLoginStatus" class="login-status"></div>
845
+ <div id="loginSpinner" class="login-spinner" style="display: none;">
846
+ <div class="spinner"></div>
847
+ </div>
848
+ </form>
849
+ </div>
850
+ <div class="modal-footer">
851
+ <button onclick="closeBrainLoginModal()" class="btn btn-outline" id="cancelBtn">Cancel</button>
852
+ <button onclick="authenticateBrain()" class="btn btn-primary" id="loginBtn">Connect</button>
853
+ </div>
854
+ </div>
855
+ </div>
856
+
857
+ <script src="{{ url_for('static', filename='brain.js') }}"></script>
858
+ <script src="{{ url_for('static', filename='inspiration_house.js') }}"></script>
859
+ <script src="{{ url_for('static', filename='usage_widget.js') }}"></script>
860
+ </body>
861
+ </html>