cnhkmcp 2.3.0__tar.gz → 2.3.2__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 (367) hide show
  1. {cnhkmcp-2.3.0/cnhkmcp.egg-info → cnhkmcp-2.3.2}/PKG-INFO +1 -1
  2. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/__init__.py +1 -1
  3. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
  4. {cnhkmcp-2.3.0/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts → cnhkmcp-2.3.2/cnhkmcp/untracked/APP/Tranformer}/validator.py +78 -4
  5. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/inspiration.js +46 -4
  6. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/index.html +33 -0
  7. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/enhance_template.py +132 -6
  8. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/run_pipeline.py +135 -85
  9. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md +17 -0
  10. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/GLB_delay1_fundamental72_ideas.md +415 -0
  11. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/final_expressions.json +76 -0
  12. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468022627100.json +22 -0
  13. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468554457600.json +14 -0
  14. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469133324600.json +8 -0
  15. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469704433900.json +10 -0
  16. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470248911900.json +10 -0
  17. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470805192900.json +8 -0
  18. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471380158000.json +10 -0
  19. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471944247400.json +22 -0
  20. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852472483548800.json +14 -0
  21. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473053891800.json +22 -0
  22. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473617716000.json +22 -0
  23. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474172815700.json +14 -0
  24. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474735778500.json +10 -0
  25. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475315478500.json +14 -0
  26. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475912897000.json +8 -0
  27. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852476474911100.json +10 -0
  28. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852978914367200.json +10 -0
  29. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979426164800.json +10 -0
  30. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979945511100.json +10 -0
  31. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852980480251500.json +10 -0
  32. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852981007315500.json +10 -0
  33. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854621979784200.json +10 -0
  34. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854622483457900.json +10 -0
  35. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623010559800.json +10 -0
  36. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623572902300.json +5 -0
  37. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854624091016000.json +10 -0
  38. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv +330 -0
  39. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769852868 +330 -0
  40. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769854511 +330 -0
  41. cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace.log +15 -0
  42. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/fetch_dataset.py +7 -1
  43. {cnhkmcp-2.3.0/cnhkmcp/untracked/skills/alpha-expression-verifier → cnhkmcp-2.3.2/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation}/scripts/validator.py +80 -4
  44. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/op/346/200/273/347/273/223.md +24 -18
  45. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP//350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py +27 -2
  46. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/back_up/platform_functions.py +2 -2
  47. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/platform_functions.py +2 -2
  48. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/platform_functions.py +2 -2
  49. cnhkmcp-2.3.2/cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/parsetab.py +60 -0
  50. {cnhkmcp-2.3.0/cnhkmcp/untracked/APP/Tranformer → cnhkmcp-2.3.2/cnhkmcp/untracked/skills/alpha-expression-verifier/scripts}/validator.py +78 -4
  51. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2/cnhkmcp.egg-info}/PKG-INFO +1 -1
  52. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/SOURCES.txt +33 -0
  53. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/setup.py +1 -1
  54. cnhkmcp-2.3.0/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace.log +0 -3
  55. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/LICENSE +0 -0
  56. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/MANIFEST.in +0 -0
  57. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/README.md +0 -0
  58. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/211/223/345/267/245/344/272/272/BRAIN_AI/346/211/223/345/267/245/344/272/272Mac_Linux/347/211/210/346/234/254.zip" +0 -0
  59. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/211/223/345/267/245/344/272/272//345/217/214/345/207/273/345/256/211/350/243/205AI/346/211/223/345/267/245/344/272/272_Windows/347/211/210/346/234/254.exe" +0 -0
  60. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/README.md" +0 -0
  61. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/ace.log" +0 -0
  62. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/config.json" +0 -0
  63. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/ace_lib.py" +0 -0
  64. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_datasets.py" +0 -0
  65. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_documentation.py" +0 -0
  66. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_operators.py" +0 -0
  67. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/helpful_functions.py" +0 -0
  68. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/icon.ico" +0 -0
  69. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/icon.png" +0 -0
  70. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_10_Steps_to_Start_on_BRAIN_documentation.json" +0 -0
  71. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json" +0 -0
  72. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json" +0 -0
  73. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_Introduction_to_Alphas_documentation.json" +0 -0
  74. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_Introduction_to_BRAIN_Expression_Language_documentation.json" +0 -0
  75. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001_WorldQuant_Challenge_documentation.json" +0 -0
  76. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/001__Read_this_First_-_Starter_Pack_documentation.json" +0 -0
  77. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002_How_to_choose_the_Simulation_Settings_documentation.json" +0 -0
  78. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002_Simulate_your_first_Alpha_documentation.json" +0 -0
  79. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002__Alpha_Examples_for_Beginners_documentation.json" +0 -0
  80. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002__Alpha_Examples_for_Bronze_Users_documentation.json" +0 -0
  81. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002__Alpha_Examples_for_Silver_Users_documentation.json" +0 -0
  82. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/002__How_BRAIN_works_documentation.json" +0 -0
  83. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/003_Clear_these_tests_before_submitting_an_Alpha_documentation.json" +0 -0
  84. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/003_Parameters_in_the_Simulation_results_documentation.json" +0 -0
  85. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_Group_Data_Fields_documentation.json" +0 -0
  86. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_How_to_use_the_Data_Explorer_documentation.json" +0 -0
  87. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_Model77_dataset_documentation.json" +0 -0
  88. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_Sentiment1_dataset_documentation.json" +0 -0
  89. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json" +0 -0
  90. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/004_Vector_Data_Fields_documentation.json" +0 -0
  91. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Crowding_Risk-Neutralized_Alphas_documentation.json" +0 -0
  92. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_D0_documentation.json" +0 -0
  93. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Double_Neutralization_documentation.json" +0 -0
  94. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Fast_D1_Documentation_documentation.json" +0 -0
  95. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Investability_Constrained_Metrics_documentation.json" +0 -0
  96. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Must-read_posts_How_to_improve_your_Alphas_documentation.json" +0 -0
  97. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Neutralization_documentation.json" +0 -0
  98. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_RAM_Risk-Neutralized_Alphas_documentation.json" +0 -0
  99. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Risk_Neutralization_Default_setting_documentation.json" +0 -0
  100. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Risk_Neutralized_Alphas_documentation.json" +0 -0
  101. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/005_Statistical_Risk-Neutralized_Alphas_documentation.json" +0 -0
  102. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_EUR_TOP2500_Universe_documentation.json" +0 -0
  103. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_GLB_TOPDIV3000_Universe_documentation.json" +0 -0
  104. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json" +0 -0
  105. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_Getting_started_on_Illiquid_Universes_Gold_documentation.json" +0 -0
  106. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json" +0 -0
  107. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_Global_Alphas_Gold_documentation.json" +0 -0
  108. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/006_India_Alphas_documentation.json" +0 -0
  109. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Consultant_Dos_and_Don_ts_documentation.json" +0 -0
  110. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Consultant_Features_documentation.json" +0 -0
  111. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Consultant_Simulation_Features_documentation.json" +0 -0
  112. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Consultant_Submission_Tests_documentation.json" +0 -0
  113. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Finding_Consultant_Alphas_documentation.json" +0 -0
  114. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Power_Pool_Alphas_documentation.json" +0 -0
  115. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Research_Advisory_Program_documentation.json" +0 -0
  116. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Starting_Guide_for_Research_Consultants_documentation.json" +0 -0
  117. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Visualization_Tool_documentation.json" +0 -0
  118. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007_Your_Advisor_-_Kunqi_Jiang_documentation.json" +0 -0
  119. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007__Brain_Genius_documentation.json" +0 -0
  120. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/007__Single_Dataset_Alphas_documentation.json" +0 -0
  121. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/008_Advisory_Theme_Calendar_documentation.json" +0 -0
  122. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/008_Multiplier_Rules_documentation.json" +0 -0
  123. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/008_Overview_of_Themes_documentation.json" +0 -0
  124. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/008_Theme_Calendar_documentation.json" +0 -0
  125. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_Combo_Expression_documentation.json" +0 -0
  126. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_Global_SuperAlphas_documentation.json" +0 -0
  127. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_Helpful_Tips_documentation.json" +0 -0
  128. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_Selection_Expression_documentation.json" +0 -0
  129. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_SuperAlpha_Operators_documentation.json" +0 -0
  130. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_SuperAlpha_Results_documentation.json" +0 -0
  131. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/009_What_is_a_SuperAlpha_documentation.json" +0 -0
  132. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/010_BRAIN_API_documentation.json" +0 -0
  133. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/010_Documentation_for_ACE_API_Library_Gold_documentation.json" +0 -0
  134. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/010__Understanding_simulation_limits_documentation.json" +0 -0
  135. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/arithmetic_operators.json" +0 -0
  136. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/cross_sectional_operators.json" +0 -0
  137. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/group_operators.json" +0 -0
  138. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/logical_operators.json" +0 -0
  139. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/reduce_operators.json" +0 -0
  140. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/special_operators.json" +0 -0
  141. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/test.txt" +0 -0
  142. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/time_series_operators.json" +0 -0
  143. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/transformational_operators.json" +0 -0
  144. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/vector_operators.json" +0 -0
  145. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/main.py" +0 -0
  146. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/process_knowledge_base.py" +0 -0
  147. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/rag_engine.py" +0 -0
  148. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/requirements.txt" +0 -0
  149. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/run.bat" +0 -0
  150. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/_manifest.json" +0 -0
  151. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/_meta.json" +0 -0
  152. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/chroma.sqlite3" +0 -0
  153. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266//351/246/226/346/254/241/350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py" +0 -0
  154. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/.gitignore +0 -0
  155. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -0
  156. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/README.md +0 -0
  157. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -0
  158. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -0
  159. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -0
  160. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -0
  161. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/347/244/272/344/276/213.json" +0 -0
  162. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -0
  163. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -0
  164. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/347/244/272/344/276/213/345/217/257/347/233/264/346/216/245/350/275/275/345/205/245Machine_lib.json" +0 -0
  165. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -0
  166. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -0
  167. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/ace.log +0 -0
  168. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/ace_lib.py +0 -0
  169. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/blueprints/__init__.py +0 -0
  170. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -0
  171. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -0
  172. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -0
  173. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -0
  174. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/custom_templates/templates.json +0 -0
  175. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +0 -0
  176. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +0 -0
  177. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +0 -0
  178. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +0 -0
  179. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +0 -0
  180. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +0 -0
  181. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +0 -0
  182. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/helpful_functions.py +0 -0
  183. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -0
  184. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -0
  185. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -0
  186. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/mirror_config.txt +0 -0
  187. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/operaters.csv +0 -0
  188. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/requirements.txt +0 -0
  189. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/run_app.bat +0 -0
  190. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/run_app.sh +0 -0
  191. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -0
  192. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -0
  193. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -0
  194. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -0
  195. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/ssrn-3332513.pdf +0 -0
  196. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/brain.js +0 -0
  197. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/decoder.js +0 -0
  198. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/feature_engineering.js +0 -0
  199. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/idea_house.js +0 -0
  200. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/inspiration_house.js +0 -0
  201. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/paper_analysis.js +0 -0
  202. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/script.js +0 -0
  203. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/simulator.js +0 -0
  204. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/styles.css +0 -0
  205. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/static/usage_widget.js +0 -0
  206. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -0
  207. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -0
  208. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/idea_house.html +0 -0
  209. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -0
  210. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -0
  211. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/simulator.html +0 -0
  212. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/templates/transformer_web.html +0 -0
  213. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/README.md +0 -0
  214. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/ace.log +0 -0
  215. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/requirements.txt +0 -0
  216. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/run_pipeline_step_by_step.ipynb +0 -0
  217. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/OUTPUT_TEMPLATE.md +0 -0
  218. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/examples.md +0 -0
  219. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/ASI_delay1_analyst11_ideas.md +0 -0
  220. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/reference.md +0 -0
  221. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/SKILL.md +0 -0
  222. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/config.json +0 -0
  223. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709385783386000.json +0 -0
  224. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709386274840400.json +0 -0
  225. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709386838244700.json +0 -0
  226. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709387369198500.json +0 -0
  227. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709387908905800.json +0 -0
  228. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709388486243600.json +0 -0
  229. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709389024058600.json +0 -0
  230. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709389549608700.json +0 -0
  231. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709390068714000.json +0 -0
  232. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709390591996900.json +0 -0
  233. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709391129137100.json +0 -0
  234. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709391691643500.json +0 -0
  235. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709392192099200.json +0 -0
  236. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709392703423500.json +0 -0
  237. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769709393213729400.json +0 -0
  238. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710186683932500.json +0 -0
  239. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710187165414300.json +0 -0
  240. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710187665211700.json +0 -0
  241. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710188149193400.json +0 -0
  242. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710188667627400.json +0 -0
  243. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710189220822000.json +0 -0
  244. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710189726189500.json +0 -0
  245. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710190248066100.json +0 -0
  246. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710190768298700.json +0 -0
  247. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710191282588100.json +0 -0
  248. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710191838960900.json +0 -0
  249. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710192396688000.json +0 -0
  250. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710192941922400.json +0 -0
  251. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710193473524600.json +0 -0
  252. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710194001961200.json +0 -0
  253. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710420975888800.json +0 -0
  254. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710421647590100.json +0 -0
  255. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710422131378500.json +0 -0
  256. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710422644184400.json +0 -0
  257. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710423702350600.json +0 -0
  258. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_1_idea_1769710424244661800.json +0 -0
  259. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/analyst11_ASI_delay1.csv +0 -0
  260. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/analyst11_ASI_delay1/final_expressions.json +0 -0
  261. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace_lib.py +0 -0
  262. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/helpful_functions.py +0 -0
  263. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/implement_idea.py +0 -0
  264. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/merge_expression_list.py +0 -0
  265. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/parsetab.py +0 -0
  266. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/sample_prompt.md +0 -0
  267. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance//345/215/225/345/233/240/345/255/220/346/200/235/350/200/203/351/200/273/350/276/221/351/223/276.md" +0 -0
  268. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP/usage.md +0 -0
  269. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/ace_lib.py" +0 -0
  270. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/brain_alpha_inspector.py" +0 -0
  271. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/helpful_functions.py" +0 -0
  272. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/__init__.py +0 -0
  273. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -0
  274. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/arxiv_api.py +0 -0
  275. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/back_up/forum_functions.py +0 -0
  276. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/brain-consultant.md +0 -0
  277. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/forum_functions.py +0 -0
  278. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/forum_functions.py" +0 -0
  279. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/user_config.json" +0 -0
  280. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//350/256/251AI/350/257/273/350/277/231/344/270/252/346/226/207/346/241/243/346/235/245/345/255/246/344/274/232/344/270/213/350/275/275/346/265/217/350/247/210/345/231/250.md" +0 -0
  281. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
  282. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/sample_mcp_config.json +0 -0
  283. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/Claude_Skill_Creation_Guide.md +0 -0
  284. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/alpha-expression-verifier/SKILL.md +0 -0
  285. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/verify_expr.py +0 -0
  286. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/SKILL.md +0 -0
  287. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/reference.md +0 -0
  288. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/scripts/requirements.txt +0 -0
  289. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-calculate-alpha-selfcorrQuick/scripts/skill.py +0 -0
  290. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-data-feature-engineering/OUTPUT_TEMPLATE.md +0 -0
  291. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-data-feature-engineering/SKILL.md +0 -0
  292. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-data-feature-engineering/examples.md +0 -0
  293. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-data-feature-engineering/reference.md +0 -0
  294. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-datafield-exploration-general/SKILL.md +0 -0
  295. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-datafield-exploration-general/reference.md +0 -0
  296. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-dataset-exploration-general/SKILL.md +0 -0
  297. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-dataset-exploration-general/reference.md +0 -0
  298. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-explain-alphas/SKILL.md +0 -0
  299. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-explain-alphas/reference.md +0 -0
  300. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/SKILL.md +0 -0
  301. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/config.json +0 -0
  302. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/analyst15_GLB_delay1.csv +0 -0
  303. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/final_expressions.json +0 -0
  304. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588244.json +0 -0
  305. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588251.json +0 -0
  306. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588273.json +0 -0
  307. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588293.json +0 -0
  308. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588319.json +0 -0
  309. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588322.json +0 -0
  310. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588325.json +0 -0
  311. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588328.json +0 -0
  312. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588354.json +0 -0
  313. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588357.json +0 -0
  314. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588361.json +0 -0
  315. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588364.json +0 -0
  316. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588368.json +0 -0
  317. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588391.json +0 -0
  318. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588394.json +0 -0
  319. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588397.json +0 -0
  320. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588400.json +0 -0
  321. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588403.json +0 -0
  322. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588428.json +0 -0
  323. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588431.json +0 -0
  324. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588434.json +0 -0
  325. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588438.json +0 -0
  326. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588441.json +0 -0
  327. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/data/analyst15_GLB_delay1/idea_1768588468.json +0 -0
  328. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/scripts/ace_lib.py +0 -0
  329. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/scripts/fetch_dataset.py +0 -0
  330. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/scripts/helpful_functions.py +0 -0
  331. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/scripts/implement_idea.py +0 -0
  332. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-feature-implementation/scripts/merge_expression_list.py +0 -0
  333. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-how-to-pass-AlphaTest/SKILL.md +0 -0
  334. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-how-to-pass-AlphaTest/reference.md +0 -0
  335. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-improve-alpha-performance/SKILL.md +0 -0
  336. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-improve-alpha-performance/arXiv_API_Tool_Manual.md +0 -0
  337. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-improve-alpha-performance/reference.md +0 -0
  338. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-improve-alpha-performance/scripts/arxiv_api.py +0 -0
  339. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-nextMove-analysis/SKILL.md +0 -0
  340. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/brain-nextMove-analysis/reference.md +0 -0
  341. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/SKILL.md +0 -0
  342. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/examples.md +0 -0
  343. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/reference.md +0 -0
  344. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/scripts/check-complete.sh +0 -0
  345. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/scripts/init-session.sh +0 -0
  346. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/templates/findings.md +0 -0
  347. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/templates/progress.md +0 -0
  348. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/planning-with-files/templates/task_plan.md +0 -0
  349. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/pull_BRAINSkill/SKILL.md +0 -0
  350. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/skills/pull_BRAINSkill/scripts/pull_skills.py +0 -0
  351. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked/user_config.json +0 -0
  352. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/217/202/350/200/203/346/226/207/346/241/243_BRAIN_Alpha_Test_Requirements_and_Tips.md" +0 -0
  353. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Alpha_explaination_workflow.md" +0 -0
  354. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_6_Tips_Datafield_Exploration_Guide.md" +0 -0
  355. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_Alpha_Improvement_Workflow.md" +0 -0
  356. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Dataset_Exploration_Expert_Manual.md" +0 -0
  357. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_daily_report_workflow.md" +0 -0
  358. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/untracked//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
  359. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/vector_db/_manifest.json +0 -0
  360. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp/vector_db/_meta.json +0 -0
  361. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/dependency_links.txt +0 -0
  362. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/entry_points.txt +0 -0
  363. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/not-zip-safe +0 -0
  364. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/requires.txt +0 -0
  365. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/cnhkmcp.egg-info/top_level.txt +0 -0
  366. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/requirements.txt +0 -0
  367. {cnhkmcp-2.3.0 → cnhkmcp-2.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cnhkmcp
3
- Version: 2.3.0
3
+ Version: 2.3.2
4
4
  Summary: A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration
5
5
  Home-page: https://github.com/cnhk/cnhkmcp
6
6
  Author: CNHK
@@ -50,7 +50,7 @@ from .untracked.forum_functions import (
50
50
  read_full_forum_post
51
51
  )
52
52
 
53
- __version__ = "2.3.0"
53
+ __version__ = "2.3.2"
54
54
  __author__ = "CNHK"
55
55
  __email__ = "cnhk@example.com"
56
56
 
@@ -0,0 +1,60 @@
1
+
2
+ # parsetab.py
3
+ # This file is automatically generated. Do not edit.
4
+ # pylint: disable=W,C,R
5
+ _tabversion = '3.10'
6
+
7
+ _lr_method = 'LALR'
8
+
9
+ _lr_signature = 'ASSIGN BOOLEAN CATEGORY COMMA DIVIDE EQUAL FIELD FUNCTION GREATER GREATEREQUAL IDENTIFIER LESS LESSEQUAL LPAREN MINUS NOTEQUAL NUMBER PLUS RPAREN STRING TIMESexpression : comparison\n| expression EQUAL comparison\n| expression NOTEQUAL comparison\n| expression GREATER comparison\n| expression LESS comparison\n| expression GREATEREQUAL comparison\n| expression LESSEQUAL comparisoncomparison : term\n| comparison PLUS term\n| comparison MINUS termterm : factor\n| term TIMES factor\n| term DIVIDE factorfactor : NUMBER\n| STRING\n| FIELD\n| CATEGORY\n| IDENTIFIER\n| BOOLEAN\n| MINUS factor\n| LPAREN expression RPAREN\n| function_callfunction_call : FUNCTION LPAREN args RPARENargs : arg_list\n| emptyarg_list : arg\n| arg_list COMMA argarg : expression\n| IDENTIFIER ASSIGN expressionempty :'
10
+
11
+ _lr_action_items = {'NUMBER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,]),'STRING':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'FIELD':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,]),'CATEGORY':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'IDENTIFIER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[10,10,10,10,10,10,10,10,10,10,10,10,10,44,44,10,]),'BOOLEAN':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,]),'MINUS':([0,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,44,45,46,47,],[4,22,-8,4,-11,-14,-15,-16,-17,-18,-19,4,-22,4,4,4,4,4,4,4,4,4,4,-20,4,22,22,22,22,22,22,-9,-10,-12,-13,-21,-18,-23,4,4,]),'LPAREN':([0,4,12,14,15,16,17,18,19,20,21,22,23,24,27,46,47,],[12,12,12,27,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'FUNCTION':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'$end':([1,2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,45,],[0,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,-23,]),'EQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[15,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,15,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,15,-18,-23,15,]),'NOTEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[16,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,16,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,16,-18,-23,16,]),'GREATER':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[17,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,17,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,17,-18,-23,17,]),'LESS':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[18,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,18,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,18,-18,-23,18,]),'GREATEREQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[19,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,19,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,19,-18,-23,19,]),'LESSEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[20,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,20,-18,-23,20,]),'RPAREN':([2,3,5,6,7,8,9,10,11,13,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,38,-30,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,45,-24,-25,-26,-28,-18,-23,-27,-29,]),'COMMA':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,40,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,46,-26,-28,-18,-23,-27,-29,]),'PLUS':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,44,45,],[21,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,21,21,21,21,21,21,-9,-10,-12,-13,-21,-18,-23,]),'TIMES':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[23,-11,-14,-15,-16,-17,-18,-19,-22,-20,23,23,-12,-13,-21,-18,-23,]),'DIVIDE':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[24,-11,-14,-15,-16,-17,-18,-19,-22,-20,24,24,-12,-13,-21,-18,-23,]),'ASSIGN':([44,],[47,]),}
12
+
13
+ _lr_action = {}
14
+ for _k, _v in _lr_action_items.items():
15
+ for _x,_y in zip(_v[0],_v[1]):
16
+ if not _x in _lr_action: _lr_action[_x] = {}
17
+ _lr_action[_x][_k] = _y
18
+ del _lr_action_items
19
+
20
+ _lr_goto_items = {'expression':([0,12,27,46,47,],[1,26,43,43,49,]),'comparison':([0,12,15,16,17,18,19,20,27,46,47,],[2,2,28,29,30,31,32,33,2,2,2,]),'term':([0,12,15,16,17,18,19,20,21,22,27,46,47,],[3,3,3,3,3,3,3,3,34,35,3,3,3,]),'factor':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[5,25,5,5,5,5,5,5,5,5,5,36,37,5,5,5,]),'function_call':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'args':([27,],[39,]),'arg_list':([27,],[40,]),'empty':([27,],[41,]),'arg':([27,46,],[42,48,]),}
21
+
22
+ _lr_goto = {}
23
+ for _k, _v in _lr_goto_items.items():
24
+ for _x, _y in zip(_v[0], _v[1]):
25
+ if not _x in _lr_goto: _lr_goto[_x] = {}
26
+ _lr_goto[_x][_k] = _y
27
+ del _lr_goto_items
28
+ _lr_productions = [
29
+ ("S' -> expression","S'",1,None,None,None),
30
+ ('expression -> comparison','expression',1,'p_expression','validator.py',386),
31
+ ('expression -> expression EQUAL comparison','expression',3,'p_expression','validator.py',387),
32
+ ('expression -> expression NOTEQUAL comparison','expression',3,'p_expression','validator.py',388),
33
+ ('expression -> expression GREATER comparison','expression',3,'p_expression','validator.py',389),
34
+ ('expression -> expression LESS comparison','expression',3,'p_expression','validator.py',390),
35
+ ('expression -> expression GREATEREQUAL comparison','expression',3,'p_expression','validator.py',391),
36
+ ('expression -> expression LESSEQUAL comparison','expression',3,'p_expression','validator.py',392),
37
+ ('comparison -> term','comparison',1,'p_comparison','validator.py',399),
38
+ ('comparison -> comparison PLUS term','comparison',3,'p_comparison','validator.py',400),
39
+ ('comparison -> comparison MINUS term','comparison',3,'p_comparison','validator.py',401),
40
+ ('term -> factor','term',1,'p_term','validator.py',408),
41
+ ('term -> term TIMES factor','term',3,'p_term','validator.py',409),
42
+ ('term -> term DIVIDE factor','term',3,'p_term','validator.py',410),
43
+ ('factor -> NUMBER','factor',1,'p_factor','validator.py',417),
44
+ ('factor -> STRING','factor',1,'p_factor','validator.py',418),
45
+ ('factor -> FIELD','factor',1,'p_factor','validator.py',419),
46
+ ('factor -> CATEGORY','factor',1,'p_factor','validator.py',420),
47
+ ('factor -> IDENTIFIER','factor',1,'p_factor','validator.py',421),
48
+ ('factor -> BOOLEAN','factor',1,'p_factor','validator.py',422),
49
+ ('factor -> MINUS factor','factor',2,'p_factor','validator.py',423),
50
+ ('factor -> LPAREN expression RPAREN','factor',3,'p_factor','validator.py',424),
51
+ ('factor -> function_call','factor',1,'p_factor','validator.py',425),
52
+ ('function_call -> FUNCTION LPAREN args RPAREN','function_call',4,'p_function_call','validator.py',453),
53
+ ('args -> arg_list','args',1,'p_args','validator.py',457),
54
+ ('args -> empty','args',1,'p_args','validator.py',458),
55
+ ('arg_list -> arg','arg_list',1,'p_arg_list','validator.py',465),
56
+ ('arg_list -> arg_list COMMA arg','arg_list',3,'p_arg_list','validator.py',466),
57
+ ('arg -> expression','arg',1,'p_arg','validator.py',473),
58
+ ('arg -> IDENTIFIER ASSIGN expression','arg',3,'p_arg','validator.py',474),
59
+ ('empty -> <empty>','empty',0,'p_empty','validator.py',481),
60
+ ]
@@ -170,7 +170,10 @@ supported_functions = {
170
170
  'scale_down': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'constant']},
171
171
 
172
172
  # Arithmetic 类别函数
173
- 'add': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, # add(x, y, filter=false)
173
+ # add(x, y, ..., filter=false)
174
+ # NOTE: add() is variadic (>=2 terms) with an optional boolean filter flag.
175
+ # We validate it with custom logic in validate_function().
176
+ 'add': {'min_args': 2, 'max_args': 101, 'arg_types': ['expression'] * 101},
174
177
  'multiply': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 99 + ['boolean'], 'param_names': ['x', 'y', 'filter']}, # multiply(x, y, ..., filter=false)
175
178
  'sign': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']},
176
179
  'subtract': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, # subtract(x, y, filter=false)
@@ -501,6 +504,10 @@ class ExpressionValidator:
501
504
  if not function_info:
502
505
  return [f"未知函数: {function_name}"]
503
506
 
507
+ # Custom validation for variadic functions with optional flags
508
+ if function_name == 'add':
509
+ return self._validate_add(args, is_in_group_arg)
510
+
504
511
  errors = []
505
512
 
506
513
  # 检查参数数量
@@ -591,9 +598,9 @@ class ExpressionValidator:
591
598
  if arg.node_type != 'number':
592
599
  errors.append(f"参数 {arg_index+1} 应该是一个数字,但得到 {arg.node_type}")
593
600
  elif expected_type == 'boolean':
594
- # 布尔值可以是数字(0/1)
595
- if arg.node_type != 'number':
596
- errors.append(f"参数 {arg_index+1} 应该是一个布尔值(0/1),但得到 {arg.node_type}")
601
+ # 布尔值可以是 true/false 或数字(0/1)
602
+ if arg.node_type not in {'boolean', 'number'}:
603
+ errors.append(f"参数 {arg_index+1} 应该是一个布尔值(true/false 或 0/1),但得到 {arg.node_type}")
597
604
  elif expected_type == 'field':
598
605
  if arg.node_type != 'field' and arg.node_type != 'category':
599
606
  # 允许field或category作为字段参数
@@ -610,6 +617,73 @@ class ExpressionValidator:
610
617
  # group函数的category参数可以是任何类型(field、category等),不进行类型校验
611
618
 
612
619
  return errors
620
+
621
+ def _validate_add(self, args: List[Any], is_in_group_arg: bool = False) -> List[str]:
622
+ """Validate add(x, y, ..., filter=false).
623
+
624
+ Rules:
625
+ - At least 2 positional expression terms.
626
+ - Optional filter flag can be provided as:
627
+ - named argument: filter=<boolean>
628
+ - last positional argument: <boolean> or 0/1
629
+ """
630
+ errors: List[str] = []
631
+
632
+ if len(args) < 2:
633
+ return [f"函数 add 需要至少 2 个参数,但只提供了 {len(args)}"]
634
+
635
+ named_filter_nodes: List[ASTNode] = []
636
+ positional_nodes: List[ASTNode] = []
637
+
638
+ for arg in args:
639
+ if isinstance(arg, dict) and arg.get('type') == 'named':
640
+ name = arg.get('name')
641
+ value = arg.get('value')
642
+ if name != 'filter':
643
+ errors.append(f"函数 add 不存在参数 '{name}'")
644
+ continue
645
+ if not hasattr(value, 'node_type'):
646
+ errors.append("函数 add 的参数 filter 格式错误")
647
+ continue
648
+ named_filter_nodes.append(value)
649
+ elif isinstance(arg, dict) and arg.get('type') == 'positional':
650
+ value = arg.get('value')
651
+ if hasattr(value, 'node_type'):
652
+ positional_nodes.append(value)
653
+ else:
654
+ errors.append("函数 add 的位置参数格式错误")
655
+ elif hasattr(arg, 'node_type'):
656
+ positional_nodes.append(arg)
657
+ else:
658
+ errors.append("函数 add 的参数格式错误")
659
+
660
+ if len(named_filter_nodes) > 1:
661
+ errors.append("函数 add 的参数 'filter' 只能出现一次")
662
+
663
+ positional_filter_node: Optional[ASTNode] = None
664
+ # Only infer a positional filter flag when:
665
+ # - no named filter is provided
666
+ # - there are at least 3 positional args (x, y, filter)
667
+ # - the last arg is boolean or numeric 0/1
668
+ if not named_filter_nodes and len(positional_nodes) >= 3:
669
+ last = positional_nodes[-1]
670
+ if last.node_type == 'boolean' or (last.node_type == 'number' and last.value in {0, 1}):
671
+ positional_filter_node = positional_nodes.pop()
672
+
673
+ if len(positional_nodes) < 2:
674
+ errors.append(f"函数 add 需要至少 2 个输入项(不含filter),但只提供了 {len(positional_nodes)}")
675
+
676
+ for idx, node in enumerate(positional_nodes):
677
+ errors.extend(self._validate_arg_type(node, 'expression', idx, 'add', is_in_group_arg))
678
+
679
+ if positional_filter_node is not None and named_filter_nodes:
680
+ errors.append("函数 add 的 filter 不能同时用位置参数和命名参数传递")
681
+ if positional_filter_node is not None:
682
+ errors.extend(self._validate_arg_type(positional_filter_node, 'boolean', len(positional_nodes), 'add', is_in_group_arg))
683
+ if named_filter_nodes:
684
+ errors.extend(self._validate_arg_type(named_filter_nodes[0], 'boolean', len(positional_nodes), 'add', is_in_group_arg))
685
+
686
+ return errors
613
687
 
614
688
  def validate_ast(self, ast: Optional[ASTNode], is_in_group_arg: bool = False) -> List[str]:
615
689
  """递归验证抽象语法树"""
@@ -15,7 +15,8 @@ let inspirationState = {
15
15
  selectedDatasetCategory: null,
16
16
  pipelineTaskId: null,
17
17
  pipelineEventSource: null,
18
- enhanceTaskId: null
18
+ enhanceTaskId: null,
19
+ enhanceDataType: 'MATRIX'
19
20
  };
20
21
 
21
22
  document.addEventListener('DOMContentLoaded', function() {
@@ -47,8 +48,7 @@ document.addEventListener('DOMContentLoaded', function() {
47
48
  const enhanceBtn = document.getElementById('inspire-enhance');
48
49
  if (enhanceBtn) {
49
50
  enhanceBtn.addEventListener('click', () => {
50
- const input = document.getElementById('inspire-idea-file');
51
- if (input) input.click();
51
+ openEnhanceDataTypeModal();
52
52
  });
53
53
  }
54
54
  const enhanceInput = document.getElementById('inspire-idea-file');
@@ -59,6 +59,14 @@ document.addEventListener('DOMContentLoaded', function() {
59
59
  if (enhanceDlBtn) {
60
60
  enhanceDlBtn.addEventListener('click', downloadEnhanceZip);
61
61
  }
62
+
63
+ // Enhance data type modal wiring
64
+ const dtypeClose = document.getElementById('enhance-datatype-close');
65
+ if (dtypeClose) dtypeClose.addEventListener('click', closeEnhanceDataTypeModal);
66
+ const dtypeCancel = document.getElementById('enhance-datatype-cancel');
67
+ if (dtypeCancel) dtypeCancel.addEventListener('click', closeEnhanceDataTypeModal);
68
+ const dtypeConfirm = document.getElementById('enhance-datatype-confirm');
69
+ if (dtypeConfirm) dtypeConfirm.addEventListener('click', confirmEnhanceDataType);
62
70
 
63
71
  // Initially disable generate button until tested
64
72
  const genBtn = document.getElementById('inspire-generate');
@@ -344,6 +352,7 @@ function generateAlphaTemplates() {
344
352
  const region = document.getElementById('inspire-region').value;
345
353
  const delay = document.getElementById('inspire-delay').value;
346
354
  const universe = document.getElementById('inspire-universe').value;
355
+ const dataType = (document.getElementById('inspire-data-type') || {}).value || 'MATRIX';
347
356
 
348
357
  const outputDiv = document.getElementById('inspire-output');
349
358
  outputDiv.innerHTML = '正在生成模板... 这可能需要几分钟...';
@@ -354,7 +363,8 @@ function generateAlphaTemplates() {
354
363
  body: JSON.stringify({
355
364
  apiKey, baseUrl, model,
356
365
  region, delay, universe,
357
- datasetId: inspirationState.selectedDataset
366
+ datasetId: inspirationState.selectedDataset,
367
+ dataType
358
368
  })
359
369
  })
360
370
  .then(res => res.json())
@@ -393,6 +403,7 @@ function runDirectAlphaPipeline() {
393
403
  const region = document.getElementById('inspire-region').value;
394
404
  const delay = document.getElementById('inspire-delay').value;
395
405
  const universe = document.getElementById('inspire-universe').value;
406
+ const dataType = (document.getElementById('inspire-data-type') || {}).value || 'MATRIX';
396
407
  const dataCategory = inspirationState.selectedDatasetCategory;
397
408
 
398
409
  if (!region || !delay || !universe) {
@@ -440,6 +451,7 @@ function runDirectAlphaPipeline() {
440
451
  region,
441
452
  delay,
442
453
  universe,
454
+ dataType,
443
455
  apiKey,
444
456
  baseUrl,
445
457
  model
@@ -640,6 +652,7 @@ function handleEnhanceFile(event) {
640
652
  formData.append('apiKey', apiKey);
641
653
  formData.append('baseUrl', baseUrl);
642
654
  formData.append('model', model);
655
+ formData.append('dataType', inspirationState.enhanceDataType || 'MATRIX');
643
656
 
644
657
  fetch('/api/inspiration/enhance-template', {
645
658
  method: 'POST',
@@ -671,6 +684,35 @@ function handleEnhanceFile(event) {
671
684
  });
672
685
  }
673
686
 
687
+ function openEnhanceDataTypeModal() {
688
+ const modal = document.getElementById('enhanceDataTypeModal');
689
+ if (!modal) {
690
+ // Fallback: if modal missing, proceed with default.
691
+ const input = document.getElementById('inspire-idea-file');
692
+ if (input) input.click();
693
+ return;
694
+ }
695
+
696
+ // Default to MATRIX each time unless user already picked.
697
+ const sel = document.getElementById('inspire-enhance-data-type');
698
+ if (sel) sel.value = inspirationState.enhanceDataType || 'MATRIX';
699
+ modal.style.display = 'block';
700
+ }
701
+
702
+ function closeEnhanceDataTypeModal() {
703
+ const modal = document.getElementById('enhanceDataTypeModal');
704
+ if (modal) modal.style.display = 'none';
705
+ }
706
+
707
+ function confirmEnhanceDataType() {
708
+ const sel = document.getElementById('inspire-enhance-data-type');
709
+ const dt = sel ? sel.value : 'MATRIX';
710
+ inspirationState.enhanceDataType = (dt === 'VECTOR') ? 'VECTOR' : 'MATRIX';
711
+ closeEnhanceDataTypeModal();
712
+ const input = document.getElementById('inspire-idea-file');
713
+ if (input) input.click();
714
+ }
715
+
674
716
  function startEnhanceStream(taskId, totalFiles) {
675
717
  const outputDiv = document.getElementById('inspire-output');
676
718
  const streamEl = document.getElementById('inspire-enhance-stream');
@@ -870,6 +870,13 @@
870
870
  <label style="display: block; margin-bottom: 5px; font-size: 0.9em; color: #666;">Delay</label>
871
871
  <select id="inspire-delay" class="form-input" style="width: 100%;"><option>Select Region First</option></select>
872
872
  </div>
873
+ <div style="margin-bottom: 10px;">
874
+ <label style="display: block; margin-bottom: 5px; font-size: 0.9em; color: #666;">data type</label>
875
+ <select id="inspire-data-type" class="form-input" style="width: 100%;">
876
+ <option value="MATRIX" selected>MATRIX</option>
877
+ <option value="VECTOR">VECTOR</option>
878
+ </select>
879
+ </div>
873
880
  </div>
874
881
  </div>
875
882
  </div>
@@ -930,6 +937,32 @@
930
937
  </div>
931
938
  </div>
932
939
 
940
+ <!-- Inspiration Enhance Data Type Modal -->
941
+ <div id="enhanceDataTypeModal" class="modal" style="display: none; position: fixed; z-index: 1100; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4);">
942
+ <div class="modal-content" style="background-color: #fefefe; margin: 10% auto; padding: 0; border: 1px solid #888; width: 520px; max-width: 90%; border-radius: 8px;">
943
+ <div class="modal-header" style="display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #eee; padding: 12px 16px;">
944
+ <h3 style="margin: 0;">选择数据类型</h3>
945
+ <span id="enhance-datatype-close" style="color: #aaa; font-size: 26px; font-weight: bold; cursor: pointer;">&times;</span>
946
+ </div>
947
+ <div class="modal-body" style="padding: 16px;">
948
+ <div style="margin-bottom: 10px; color: #666; font-size: 13px;">
949
+ 请选择你要增强的历史模板对应的数据类型(区分大小写)。
950
+ </div>
951
+ <div style="margin-bottom: 10px;">
952
+ <label style="display: block; margin-bottom: 6px; font-size: 0.9em; color: #666;">data type</label>
953
+ <select id="inspire-enhance-data-type" class="form-input" style="width: 100%;">
954
+ <option value="MATRIX" selected>MATRIX</option>
955
+ <option value="VECTOR">VECTOR</option>
956
+ </select>
957
+ </div>
958
+ </div>
959
+ <div class="modal-footer" style="display: flex; justify-content: flex-end; gap: 10px; padding: 12px 16px; border-top: 1px solid #eee;">
960
+ <button id="enhance-datatype-cancel" class="btn btn-outline">取消</button>
961
+ <button id="enhance-datatype-confirm" class="btn btn-primary">继续选择文件</button>
962
+ </div>
963
+ </div>
964
+ </div>
965
+
933
966
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
934
967
  <script src="{{ url_for('static', filename='brain.js') }}"></script>
935
968
  <script src="{{ url_for('static', filename='script.js') }}"></script>
@@ -2,6 +2,7 @@ import json
2
2
  import csv
3
3
  import os
4
4
  import re
5
+ import shutil
5
6
  import subprocess
6
7
  import sys
7
8
  import time
@@ -18,6 +19,10 @@ DEFAULT_FEATURE_IMPLEMENTATION_SCRIPTS = DEFAULT_FEATURE_IMPLEMENTATION_DIR / "s
18
19
  DEFAULT_MOONSHOT_MODEL = os.environ.get("MOONSHOT_MODEL", "kimi-k2.5")
19
20
  DEFAULT_MAX_ENHANCED_TEMPLATES = int(os.environ.get("MAX_ENHANCED_TEMPLATES", "60"))
20
21
 
22
+ VECTOR_DATA_TYPE_HINT = (
23
+ "since the data is vector type data, the data cannot be directly use. before you do any process, you should choose a vector operator to generate its statistical feature to use (if the current template did not do so or you think you can have a better choice of another vector operator). for example, if datafieldA and datafieldB are vector type data, you cannot use vec_avg(datafieldA) - vec_avg(datafieldB). similarly, vector type operator can only be used on the vector type operator."
24
+ )
25
+
21
26
 
22
27
  def find_latest_idea_json(feature_implementation_dir: Path) -> Path:
23
28
  data_root = feature_implementation_dir / "data"
@@ -259,6 +264,114 @@ def load_dataset_ids(dataset_csv: Path, max_rows: int = 200000) -> list[str]:
259
264
  return ids
260
265
 
261
266
 
267
+ def parse_metadata_from_dataset_folder(dataset_folder: str) -> tuple[str, str, int]:
268
+ """Extract dataset_id, region, delay from folder name like:
269
+ <dataset_id>_<region>_delay<delay>
270
+
271
+ Returns (dataset_id, region, delay).
272
+ """
273
+ name = (dataset_folder or "").strip()
274
+ parts = name.split("_")
275
+ if len(parts) < 3:
276
+ raise ValueError(f"Invalid dataset folder name: {dataset_folder}")
277
+
278
+ delay_part = parts[-1]
279
+ m = re.fullmatch(r"delay(\d+)", delay_part)
280
+ if not m:
281
+ raise ValueError(f"Invalid dataset folder name (missing delay suffix): {dataset_folder}")
282
+ delay = int(m.group(1))
283
+
284
+ region = parts[-2]
285
+ dataset_id = "_".join(parts[:-2])
286
+ if not dataset_id:
287
+ raise ValueError(f"Invalid dataset folder name (missing dataset id): {dataset_folder}")
288
+
289
+ return dataset_id, region, delay
290
+
291
+
292
+ def ensure_dataset_csv_data_type(
293
+ feature_implementation_dir: Path,
294
+ scripts_dir: Path,
295
+ dataset_folder: str,
296
+ data_type: str,
297
+ ) -> None:
298
+ """Ensure the dataset CSV corresponds to the requested data_type.
299
+
300
+ For enhance flow, the goal is to constrain implement_idea.py placeholder matching.
301
+ When data_type is VECTOR, rebuild the dataset folder by refetching CSV as VECTOR.
302
+ """
303
+ data_type = (data_type or "MATRIX").strip().upper()
304
+ if data_type != "VECTOR":
305
+ return
306
+
307
+ dataset_id, region, delay = parse_metadata_from_dataset_folder(dataset_folder)
308
+ fetch_script = scripts_dir / "fetch_dataset.py"
309
+ if not fetch_script.exists():
310
+ raise FileNotFoundError(f"fetch_dataset.py not found: {fetch_script}")
311
+
312
+ # IMPORTANT: do NOT delete the whole dataset folder.
313
+ # That folder may contain idea_*.json, enhanced_*.json and other artifacts.
314
+ # We only need to ensure the CSV is VECTOR-only.
315
+ data_dir = feature_implementation_dir / "data" / dataset_folder
316
+ dataset_csv = data_dir / f"{dataset_folder}.csv"
317
+ backup_csv: Path | None = None
318
+ if dataset_csv.exists():
319
+ backup_csv = dataset_csv.with_suffix(dataset_csv.suffix + f".bak_{int(time.time())}")
320
+ try:
321
+ print(f"DATA_TYPE=VECTOR => backing up existing CSV: {dataset_csv} -> {backup_csv}")
322
+ shutil.copy2(dataset_csv, backup_csv)
323
+ except Exception:
324
+ backup_csv = None
325
+
326
+ # Keep defaults consistent with fetch_dataset.py unless explicitly overridden.
327
+ universe = (os.environ.get("UNIVERSE") or "TOP3000").strip()
328
+ instrument_type = (os.environ.get("INSTRUMENT_TYPE") or "EQUITY").strip()
329
+
330
+ cmd = [
331
+ sys.executable,
332
+ str(fetch_script),
333
+ "--datasetid",
334
+ dataset_id,
335
+ "--region",
336
+ region,
337
+ "--delay",
338
+ str(delay),
339
+ "--universe",
340
+ universe,
341
+ "--instrument-type",
342
+ instrument_type,
343
+ "--data-type",
344
+ "VECTOR",
345
+ ]
346
+ print(f"Rebuilding dataset CSV as VECTOR via: {' '.join(cmd)}")
347
+
348
+ result = subprocess.run(
349
+ cmd,
350
+ cwd=scripts_dir,
351
+ capture_output=True,
352
+ text=True,
353
+ )
354
+ if result.returncode != 0:
355
+ # Roll back CSV if we backed it up.
356
+ if backup_csv and backup_csv.exists():
357
+ try:
358
+ print("VECTOR rebuild failed; restoring previous CSV backup.")
359
+ shutil.copy2(backup_csv, dataset_csv)
360
+ except Exception:
361
+ pass
362
+ raise RuntimeError(
363
+ "VECTOR dataset rebuild failed: "
364
+ + " ".join(cmd)
365
+ + f"\nSTDOUT:\n{result.stdout}\nSTDERR:\n{result.stderr}"
366
+ )
367
+ if result.stdout.strip():
368
+ print(result.stdout)
369
+ if result.stderr.strip():
370
+ print(result.stderr, file=sys.stderr)
371
+ if not dataset_csv.exists():
372
+ raise FileNotFoundError(f"VECTOR dataset rebuild succeeded but CSV not found: {dataset_csv}")
373
+
374
+
262
375
  def normalize_for_validator(expression: str) -> str:
263
376
  """Normalize expressions to satisfy validator rules (e.g., winsorize std=).
264
377
 
@@ -350,7 +463,6 @@ def main():
350
463
  - IDEA_JSON: absolute/relative path to a specific idea_*.json
351
464
  - MOONSHOT_API_KEY / MOONSHOT_BASE_URL / MOONSHOT_MODEL
352
465
  - MAX_ENHANCED_TEMPLATES (default 60)
353
- - NO_IMPLEMENT=1 to skip implement_idea.py
354
466
  """
355
467
 
356
468
  idea_json_env = os.environ.get("IDEA_JSON", "").strip()
@@ -402,6 +514,18 @@ def main():
402
514
  dataset_id_from_name, region_from_name, delay_from_name = parsed
403
515
  dataset_folder = f"{dataset_id_from_name}_{region_from_name}_delay{delay_from_name}"
404
516
 
517
+ data_type = (os.environ.get("DATA_TYPE") or "MATRIX").strip()
518
+ if data_type not in ("MATRIX", "VECTOR"):
519
+ data_type = "MATRIX"
520
+
521
+ # Guarantee implement_idea sees only VECTOR ids by rebuilding the dataset CSV as VECTOR.
522
+ ensure_dataset_csv_data_type(
523
+ feature_implementation_dir=feature_implementation_dir,
524
+ scripts_dir=scripts_dir,
525
+ dataset_folder=dataset_folder,
526
+ data_type=data_type,
527
+ )
528
+
405
529
  # Validate dataset CSV exists to ensure implement_idea can parse placeholders.
406
530
  dataset_csv = feature_implementation_dir / "data" / dataset_folder / f"{dataset_folder}.csv"
407
531
  if not dataset_csv.exists():
@@ -445,14 +569,14 @@ def main():
445
569
  [
446
570
  "An alpha template is a reusable recipe that captures an economic idea and leaves “slots” (data fields, operators, groups, decay, neutralization choices, etc.) to instantiate many candidate alphas. Typical structure: clean data (backfill, winsorize) → transform/compare across time or peers → rank/neutralize → (optionally) decay/turnover tune. Templates encourage systematic search, reuse, and diversification while keeping an explicit economic rationale.",
447
571
  "",
448
- "Some Example Templates and rationales",
572
+ "Some Example Templates and rationales to help you understand the format",
449
573
  "",
450
574
  "CAPM residual (market/sector-neutral return): ts_regression(returns, group_mean(returns, log(ts_mean(cap,21)), sector), 252, rettype=0) after backfill+winsorize. Rationale: strip market/sector beta to isolate idiosyncratic alpha; sector-weighted by smoothed log-cap to reduce large-cap dominance.",
451
575
  "CAPM beta (slope) template: same regression with rettype=2; pre-clean target/market (ts_backfill(...,63) + winsorize(std=4)). Rationale: rank stocks by relative risk within sector; long low-β, short high-β, or study β dispersion across groups.",
452
- "CAPM generalized to any feature: data = winsorize(ts_backfill(<data>,63),std=4); data_gpm = group_mean(data, log(ts_mean(cap,21)), sector); resid = ts_regression(data, data_gpm, 252, rettype=0). Rationale: pull out the component unexplained by group average of same feature; reduces common-mode exposure.",
453
- "Actual vs estimate spread (analyst): group_zscore( group_zscore(<act>, industry) – group_zscore(<est>, industry), industry ) or the abstracted group_compare(diff(group_compare(act,...), group_compare(est,...)), ...). Rationale: surprise/beat-miss signal within industry, normalized to peers to avoid level bias.",
454
- "Analyst term-structure (fp1 vs fy1/fp2/fy2): group_zscore( group_zscore(anl14_mean_eps_<period1>, industry) – group_zscore(anl14_mean_eps_<period2>, industry), industry ) with operator/group slots. Rationale: cross-period expectation steepness; rising near-term vs long-term forecasts can flag momentum/inflection.",
455
- "Option Greeks net spread: group_operator(<put_greek> - <call_greek>, <grouping_data>) over industry/sector (Delta/Gamma/Vega/Theta). Rationale: options-implied sentiment/convexity skew vs peers; outlier net Greeks may precede spot moves; extend with multi-Greek composites or time-series deltas.",
576
+ "CAPM generalized to any feature: data = winsorize(ts_backfill({data},63),std=4); data_gpm = group_mean(data, log(ts_mean(cap,21)), sector); resid = ts_regression(data, data_gpm, 252, rettype=0). Rationale: pull out the component unexplained by group average of same feature; reduces common-mode exposure.",
577
+ "Actual vs estimate spread (analyst): group_zscore( group_zscore({act}, industry) – group_zscore({est}, industry), industry ) or the abstracted group_compare(diff(group_compare(act,...), group_compare(est,...)), ...). Rationale: surprise/beat-miss signal within industry, normalized to peers to avoid level bias.",
578
+ "Analyst term-structure (fp1 vs fy1/fp2/fy2): group_zscore( group_zscore({mean_eps_period1}, industry) – group_zscore({mean_eps_period2}, industry), industry ) with operator/group slots. Rationale: cross-period expectation steepness; rising near-term vs long-term forecasts can flag momentum/inflection.",
579
+ "Option Greeks net spread: group_operator({put_greek} - {call_greek}, {grouping_data}) over industry/sector (Delta/Gamma/Vega/Theta). Rationale: options-implied sentiment/convexity skew vs peers; outlier net Greeks may precede spot moves; extend with multi-Greek composites or time-series deltas.",
456
580
  "",
457
581
  "based on the following guidance of how to make a data collation template into a signal, and guidance on how to utilize the best of operators.",
458
582
  "",
@@ -465,6 +589,8 @@ def main():
465
589
  guide2,
466
590
  "--------------",
467
591
  "",
592
+ VECTOR_DATA_TYPE_HINT if data_type == "VECTOR" else "",
593
+ "",
468
594
  "Return ONLY valid JSON (no markdown / no code fences).",
469
595
  ]
470
596
  )