cnhkmcp 2.1.1__py3-none-any.whl → 2.1.3__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 (117) hide show
  1. {cnhkmcp-2.1.1.dist-info → cnhkmcp-2.1.3.dist-info}/METADATA +1 -1
  2. cnhkmcp-2.1.3.dist-info/RECORD +6 -0
  3. cnhkmcp-2.1.3.dist-info/top_level.txt +1 -0
  4. cnhkmcp/__init__.py +0 -125
  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/README.md +0 -38
  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/ace.log +0 -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/config.json +0 -6
  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/ace_lib.py +0 -1510
  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/fetch_all_datasets.py +0 -157
  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/get_knowledgeBase_tool/fetch_all_documentation.py +0 -132
  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/get_knowledgeBase_tool/fetch_all_operators.py +0 -99
  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/get_knowledgeBase_tool/helpful_functions.py +0 -180
  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/icon.ico +0 -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/icon.png +0 -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/test.txt +0 -1
  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/main.py +0 -576
  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/process_knowledge_base.py +0 -280
  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/rag_engine.py +0 -356
  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/requirements.txt +0 -7
  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/run.bat +0 -3
  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/vector_db/_manifest.json +0 -326
  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/vector_db/_meta.json +0 -1
  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/vector_db/be5d957c-b724-46e3-91d1-999e9f5f7d28/index_metadata.pickle +0 -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/vector_db/chroma.sqlite3 +0 -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//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 +0 -265
  26. cnhkmcp/untracked/APP/.gitignore +0 -32
  27. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -112
  28. cnhkmcp/untracked/APP/README.md +0 -309
  29. cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -4985
  30. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  31. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -1510
  32. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -180
  33. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -2421
  34. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +0 -654
  35. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -1034
  36. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -444
  37. 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 +0 -22
  38. cnhkmcp/untracked/APP/Tranformer/parsetab.py +0 -60
  39. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -3182
  40. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -7
  41. cnhkmcp/untracked/APP/Tranformer/validator.py +0 -889
  42. cnhkmcp/untracked/APP/ace.log +0 -69
  43. cnhkmcp/untracked/APP/ace_lib.py +0 -1510
  44. cnhkmcp/untracked/APP/blueprints/__init__.py +0 -6
  45. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -347
  46. cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -221
  47. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -432
  48. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -570
  49. cnhkmcp/untracked/APP/custom_templates/templates.json +0 -1257
  50. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +0 -400
  51. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +0 -1510
  52. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +0 -252
  53. cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +0 -157
  54. cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +0 -99
  55. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +0 -180
  56. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +0 -11
  57. cnhkmcp/untracked/APP/helpful_functions.py +0 -180
  58. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -1497
  59. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -447
  60. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -180
  61. cnhkmcp/untracked/APP/mirror_config.txt +0 -20
  62. cnhkmcp/untracked/APP/operaters.csv +0 -129
  63. cnhkmcp/untracked/APP/requirements.txt +0 -53
  64. cnhkmcp/untracked/APP/run_app.bat +0 -28
  65. cnhkmcp/untracked/APP/run_app.sh +0 -34
  66. cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -39
  67. cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -43
  68. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -404
  69. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -618
  70. cnhkmcp/untracked/APP/ssrn-3332513.pdf +6 -109201
  71. cnhkmcp/untracked/APP/static/brain.js +0 -589
  72. cnhkmcp/untracked/APP/static/decoder.js +0 -1540
  73. cnhkmcp/untracked/APP/static/feature_engineering.js +0 -1729
  74. cnhkmcp/untracked/APP/static/idea_house.js +0 -937
  75. cnhkmcp/untracked/APP/static/inspiration.js +0 -465
  76. cnhkmcp/untracked/APP/static/inspiration_house.js +0 -868
  77. cnhkmcp/untracked/APP/static/paper_analysis.js +0 -390
  78. cnhkmcp/untracked/APP/static/script.js +0 -3082
  79. cnhkmcp/untracked/APP/static/simulator.js +0 -597
  80. cnhkmcp/untracked/APP/static/styles.css +0 -3127
  81. cnhkmcp/untracked/APP/static/usage_widget.js +0 -508
  82. cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -511
  83. cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -960
  84. cnhkmcp/untracked/APP/templates/idea_house.html +0 -564
  85. cnhkmcp/untracked/APP/templates/index.html +0 -932
  86. cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -861
  87. cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -91
  88. cnhkmcp/untracked/APP/templates/simulator.html +0 -343
  89. cnhkmcp/untracked/APP/templates/transformer_web.html +0 -580
  90. cnhkmcp/untracked/APP/usage.md +0 -351
  91. 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 +0 -1510
  92. 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 +0 -712
  93. 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 +0 -180
  94. 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 +0 -2456
  95. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -490
  96. cnhkmcp/untracked/arxiv_api.py +0 -229
  97. cnhkmcp/untracked/forum_functions.py +0 -998
  98. 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 +0 -407
  99. 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 +0 -2415
  100. 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 +0 -31
  101. 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 +0 -101
  102. 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 +0 -190
  103. cnhkmcp/untracked/platform_functions.py +0 -2886
  104. cnhkmcp/untracked/sample_mcp_config.json +0 -11
  105. cnhkmcp/untracked/user_config.json +0 -31
  106. 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 +0 -202
  107. 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 +0 -56
  108. 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 +0 -194
  109. 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 +0 -101
  110. 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 +0 -436
  111. 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 +0 -128
  112. 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 +0 -190
  113. cnhkmcp-2.1.1.dist-info/RECORD +0 -115
  114. cnhkmcp-2.1.1.dist-info/top_level.txt +0 -1
  115. {cnhkmcp-2.1.1.dist-info → cnhkmcp-2.1.3.dist-info}/WHEEL +0 -0
  116. {cnhkmcp-2.1.1.dist-info → cnhkmcp-2.1.3.dist-info}/entry_points.txt +0 -0
  117. {cnhkmcp-2.1.1.dist-info → cnhkmcp-2.1.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,564 +0,0 @@
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>Idea House - Data Field Analysis</title>
7
- <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
8
- <style>
9
- .idea-house-container {
10
- max-width: 1200px;
11
- margin: 0 auto;
12
- padding: 20px;
13
- }
14
-
15
- .data-fields-section {
16
- background: rgba(255, 255, 255, 0.9);
17
- border-radius: 8px;
18
- padding: 20px;
19
- margin-bottom: 20px;
20
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
21
- }
22
-
23
- .api-config-section {
24
- background: rgba(240, 242, 255, 0.9);
25
- border-radius: 8px;
26
- padding: 20px;
27
- margin-bottom: 20px;
28
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
29
- border: 1px solid rgba(102, 126, 234, 0.2);
30
- }
31
-
32
- .data-fields-table {
33
- width: 100%;
34
- border-collapse: collapse;
35
- margin-top: 20px;
36
- }
37
-
38
- .data-fields-table th,
39
- .data-fields-table td {
40
- padding: 12px;
41
- text-align: left;
42
- border-bottom: 1px solid #ddd;
43
- }
44
-
45
- .data-fields-table th {
46
- background-color: #f5f5f5;
47
- font-weight: bold;
48
- position: sticky;
49
- top: 0;
50
- z-index: 10;
51
- }
52
-
53
- .data-fields-table tr:hover {
54
- background-color: #f0f0f0;
55
- cursor: pointer;
56
- }
57
-
58
- .data-fields-table tr.selected {
59
- background-color: #e3f2fd;
60
- }
61
-
62
- .field-checkbox {
63
- width: 20px;
64
- height: 20px;
65
- cursor: pointer;
66
- }
67
-
68
- .selected-fields-section {
69
- background: rgba(255, 255, 255, 0.9);
70
- border-radius: 8px;
71
- padding: 20px;
72
- margin-bottom: 20px;
73
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
74
- }
75
-
76
- .selected-field-item {
77
- display: inline-block;
78
- background: #e3f2fd;
79
- padding: 5px 10px;
80
- margin: 5px;
81
- border-radius: 4px;
82
- font-size: 14px;
83
- }
84
-
85
- .results-section {
86
- background: rgba(255, 255, 255, 0.9);
87
- border-radius: 8px;
88
- padding: 20px;
89
- box-shadow: 0 2px 4px rgba(0,0,0,0.1);
90
- }
91
-
92
- .markdown-content {
93
- padding: 20px;
94
- background: #f9f9f9;
95
- border-radius: 4px;
96
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
97
- line-height: 1.6;
98
- overflow-x: auto;
99
- }
100
-
101
- .markdown-content h1 {
102
- color: #333;
103
- border-bottom: 2px solid #4caf50;
104
- padding-bottom: 10px;
105
- margin-bottom: 20px;
106
- }
107
-
108
- .markdown-content h2 {
109
- color: #555;
110
- margin-top: 25px;
111
- margin-bottom: 15px;
112
- }
113
-
114
- .markdown-content h3 {
115
- color: #666;
116
- margin-top: 20px;
117
- margin-bottom: 10px;
118
- }
119
-
120
- .markdown-content ul {
121
- margin: 10px 0;
122
- padding-left: 20px;
123
- }
124
-
125
- .markdown-content li {
126
- margin: 5px 0;
127
- }
128
-
129
- .markdown-content pre {
130
- background: #f0f0f0;
131
- padding: 15px;
132
- border-radius: 4px;
133
- overflow-x: auto;
134
- font-family: 'Courier New', monospace;
135
- }
136
-
137
- .markdown-content code {
138
- background: #f0f0f0;
139
- padding: 2px 6px;
140
- border-radius: 3px;
141
- font-family: 'Courier New', monospace;
142
- }
143
-
144
- .markdown-content strong {
145
- color: #333;
146
- font-weight: bold;
147
- }
148
-
149
- .loading-overlay {
150
- position: fixed;
151
- top: 0;
152
- left: 0;
153
- width: 100%;
154
- height: 100%;
155
- background: rgba(0, 0, 0, 0.5);
156
- display: none;
157
- justify-content: center;
158
- align-items: center;
159
- z-index: 1000;
160
- }
161
-
162
- .loading-content {
163
- background: white;
164
- padding: 30px;
165
- border-radius: 8px;
166
- text-align: center;
167
- }
168
-
169
- .params-section {
170
- margin: 20px 0;
171
- padding: 15px;
172
- background: #f5f5f5;
173
- border-radius: 4px;
174
- }
175
-
176
- .params-row {
177
- display: flex;
178
- gap: 15px;
179
- margin-bottom: 15px;
180
- flex-wrap: wrap;
181
- }
182
-
183
- .param-group {
184
- flex: 1;
185
- min-width: 200px;
186
- }
187
-
188
- .param-group label {
189
- display: block;
190
- margin-bottom: 5px;
191
- font-weight: bold;
192
- }
193
-
194
- .stats-info {
195
- margin: 10px 0;
196
- color: #666;
197
- }
198
-
199
- .table-container {
200
- max-height: 500px;
201
- overflow-y: auto;
202
- border: 1px solid #ddd;
203
- border-radius: 4px;
204
- }
205
-
206
- .toggle-btn {
207
- background: #f0f0f0;
208
- border: 1px solid #ddd;
209
- color: #333;
210
- cursor: pointer;
211
- transition: all 0.3s ease;
212
- }
213
-
214
- .toggle-btn:hover {
215
- background: #e0e0e0;
216
- border-color: #999;
217
- }
218
-
219
- /* Data Fields Filter Styles */
220
- .data-fields-controls {
221
- display: flex;
222
- align-items: center;
223
- gap: 20px;
224
- padding: 15px;
225
- background: #f8f9fa;
226
- border-bottom: 1px solid #dee2e6;
227
- border-radius: 4px 4px 0 0;
228
- flex-wrap: wrap;
229
- }
230
-
231
- .filter-label {
232
- font-weight: 600;
233
- color: #495057;
234
- }
235
-
236
- .filter-options {
237
- display: flex;
238
- gap: 15px;
239
- flex-wrap: wrap;
240
- }
241
-
242
- .filter-options label {
243
- display: flex;
244
- align-items: center;
245
- gap: 5px;
246
- cursor: pointer;
247
- font-size: 14px;
248
- }
249
-
250
- .filter-actions {
251
- display: flex;
252
- gap: 10px;
253
- margin-left: auto;
254
- }
255
-
256
- .data-fields-stats {
257
- padding: 10px 15px;
258
- background: #f8f9fa;
259
- border-bottom: 1px solid #dee2e6;
260
- font-size: 14px;
261
- color: #6c757d;
262
- }
263
-
264
- .data-fields-table {
265
- width: 100%;
266
- border-collapse: collapse;
267
- font-size: 14px;
268
- }
269
-
270
- .data-fields-table th,
271
- .data-fields-table td {
272
- padding: 8px 12px;
273
- text-align: left;
274
- border-bottom: 1px solid #dee2e6;
275
- }
276
-
277
- .data-fields-table th {
278
- background: #f8f9fa;
279
- font-weight: 600;
280
- color: #495057;
281
- position: sticky;
282
- top: 0;
283
- z-index: 10;
284
- }
285
-
286
- .header-row th {
287
- position: relative;
288
- }
289
-
290
- .sort-btn {
291
- background: none;
292
- border: none;
293
- cursor: pointer;
294
- margin-left: 5px;
295
- padding: 2px 4px;
296
- font-size: 12px;
297
- color: #6c757d;
298
- border-radius: 2px;
299
- }
300
-
301
- .sort-btn:hover {
302
- background: #dee2e6;
303
- color: #495057;
304
- }
305
-
306
- .sort-btn.asc {
307
- color: #28a745;
308
- }
309
-
310
- .sort-btn.desc {
311
- color: #dc3545;
312
- }
313
-
314
- .filter-row th {
315
- padding: 5px 8px;
316
- background: #ffffff;
317
- }
318
-
319
- .column-filter,
320
- .column-filter-min,
321
- .column-filter-max {
322
- width: 100%;
323
- padding: 4px 6px;
324
- border: 1px solid #ced4da;
325
- border-radius: 3px;
326
- font-size: 12px;
327
- }
328
-
329
- .column-filter.active,
330
- .column-filter-min.active,
331
- .column-filter-max.active {
332
- border-color: #4caf50;
333
- background-color: #f0f8f0;
334
- }
335
-
336
- .range-filter {
337
- display: flex;
338
- align-items: center;
339
- gap: 3px;
340
- }
341
-
342
- .range-filter input {
343
- flex: 1;
344
- min-width: 0;
345
- }
346
-
347
- .range-filter span {
348
- font-size: 12px;
349
- color: #6c757d;
350
- }
351
-
352
- .data-fields-table tbody tr {
353
- cursor: pointer;
354
- transition: background-color 0.2s;
355
- }
356
-
357
- .data-fields-table tbody tr:hover {
358
- background-color: #f8f9fa;
359
- }
360
-
361
- .data-fields-table tbody tr.selected {
362
- background-color: #e8f5e8;
363
- border-left: 3px solid #4caf50;
364
- }
365
-
366
- .field-checkbox {
367
- cursor: pointer;
368
- }
369
-
370
- .btn-small {
371
- padding: 5px 10px;
372
- font-size: 12px;
373
- border-radius: 3px;
374
- }
375
- </style>
376
- </head>
377
- <body>
378
- <div class="container">
379
- <header>
380
- <h1>Idea House</h1>
381
- <p class="subtitle">Let Data Speak Out Loud</p>
382
- <a href="/" class="btn btn-outline">← Back to Main</a>
383
- </header>
384
-
385
- <div class="idea-house-container">
386
- <!-- Coze API Configuration Section -->
387
- <div class="api-config-section">
388
- <h2>Coze API Configuration</h2>
389
- <div class="params-section">
390
- <div class="params-row">
391
- <div class="param-group" style="flex: 2;">
392
- <label for="cozeApiTokenInput">
393
- Coze API Token:
394
- <button type="button" id="toggleApiTokenBtn" class="toggle-btn" style="margin-left: 10px; padding: 2px 8px; font-size: 12px;">Show</button>
395
- </label>
396
- <input type="password" id="cozeApiTokenInput" class="form-input" placeholder="Enter your Coze API token" value="sat_xZzjQThWADuE8uePBzh9fI0EN3Qt43OEEJ2pKbZm8SePbjnM7TDVardfmaWOI4JM">
397
- </div>
398
- <div class="param-group">
399
- <label for="workflowIdInput">Workflow ID:</label>
400
- <input type="text" id="workflowIdInput" class="form-input" placeholder="Enter workflow ID" value="7522912027267956786">
401
- </div>
402
- </div>
403
- <div class="info-message" style="margin-top: 10px; font-size: 14px; color: #666;">
404
- <em>Default values are provided. You can replace them with your own Coze API credentials.</em>
405
- </div>
406
- <div style="margin-top: 15px;">
407
- <button id="saveCozeConfigBtn" class="btn btn-secondary btn-small">Save Configuration</button>
408
- <button id="clearCozeConfigBtn" class="btn btn-outline btn-small" style="margin-left: 10px;">Reset to Default</button>
409
- <span id="saveConfigMessage" style="margin-left: 10px; color: #4caf50; display: none;">Configuration saved!</span>
410
- </div>
411
- </div>
412
- </div>
413
-
414
- <!-- Data Fields Loading Section -->
415
- <div class="data-fields-section">
416
- <h2>Load Data Fields from BRAIN</h2>
417
- <div class="params-section">
418
- <div class="params-row">
419
- <div class="param-group">
420
- <label for="regionInput">Region:</label>
421
- <input type="text" id="regionInput" class="form-input" value="USA">
422
- </div>
423
- <div class="param-group">
424
- <label for="delayInput">Delay:</label>
425
- <input type="number" id="delayInput" class="form-input" value="1">
426
- </div>
427
- <div class="param-group">
428
- <label for="universeInput">Universe:</label>
429
- <input type="text" id="universeInput" class="form-input" value="TOP3000">
430
- </div>
431
- <div class="param-group">
432
- <label for="datasetInput">Dataset ID:</label>
433
- <input type="text" id="datasetInput" class="form-input" value="analyst10">
434
- </div>
435
- </div>
436
- <button id="loadDataFieldsBtn" class="btn btn-primary">Load Data Fields</button>
437
- </div>
438
-
439
- <div id="dataFieldsStats" class="stats-info"></div>
440
-
441
- <div class="table-container" id="tableContainer" style="display: none;">
442
- <!-- Add filtering controls -->
443
- <div class="data-fields-controls">
444
- <div class="filter-label">
445
- <span>Quick Filters 👉</span>
446
- </div>
447
- <div class="filter-options">
448
- <label>
449
- <input type="checkbox" id="filterHighCoverage"> High Coverage (>90%)
450
- </label>
451
- <label>
452
- <input type="checkbox" id="filterPopular"> Popular (>1000 users)
453
- </label>
454
- <label>
455
- <input type="checkbox" id="filterMatrixOnly"> Matrix Type Only
456
- </label>
457
- </div>
458
- <div class="filter-actions">
459
- <button id="selectAllFiltered" class="btn btn-small btn-secondary">Select All Filtered</button>
460
- <button id="clearAllSelected" class="btn btn-small btn-outline">Clear All</button>
461
- </div>
462
- </div>
463
- <div class="data-fields-stats">
464
- <span id="dataFieldsCount">0 fields loaded</span> |
465
- <span id="filteredCount">0 filtered</span> |
466
- <span id="selectedFieldsCount">0 selected</span>
467
- </div>
468
-
469
- <table class="data-fields-table" id="dataFieldsTable">
470
- <thead>
471
- <tr class="header-row">
472
- <th style="width: 40px;">
473
- <input type="checkbox" id="selectAllCheckbox" title="Select/Deselect All">
474
- </th>
475
- <th style="width: 200px; min-width: 150px;">
476
- Field ID
477
- <button class="sort-btn" data-column="id" data-order="asc">↕</button>
478
- </th>
479
- <th style="min-width: 300px;">
480
- Description
481
- <button class="sort-btn" data-column="description" data-order="asc">↕</button>
482
- </th>
483
- <th style="width: 100px;">
484
- Type
485
- <button class="sort-btn" data-column="type" data-order="asc">↕</button>
486
- </th>
487
- <th style="width: 150px;">
488
- Coverage
489
- <button class="sort-btn" data-column="coverage" data-order="asc">↕</button>
490
- </th>
491
- <th style="width: 100px;">
492
- Users
493
- <button class="sort-btn" data-column="userCount" data-order="asc">↕</button>
494
- </th>
495
- <th style="width: 100px;">
496
- Alphas
497
- <button class="sort-btn" data-column="alphaCount" data-order="asc">↕</button>
498
- </th>
499
- </tr>
500
- <tr class="filter-row">
501
- <th></th>
502
- <th>
503
- <input type="text" class="column-filter" data-column="id" placeholder="Filter ID...">
504
- </th>
505
- <th>
506
- <input type="text" class="column-filter" data-column="description" placeholder="Filter description...">
507
- </th>
508
- <th>
509
- <select class="column-filter" data-column="type" id="typeFilter">
510
- <option value="">All Types</option>
511
- </select>
512
- </th>
513
- <th>
514
- <div class="range-filter">
515
- <input type="number" class="column-filter-min" data-column="coverage" placeholder="Min %" min="0" max="100" step="0.1">
516
- <span>-</span>
517
- <input type="number" class="column-filter-max" data-column="coverage" placeholder="Max %" min="0" max="100" step="0.1">
518
- </div>
519
- </th>
520
- <th>
521
- <input type="number" class="column-filter" data-column="userCount" placeholder="Min users" min="0">
522
- </th>
523
- <th>
524
- <input type="number" class="column-filter" data-column="alphaCount" placeholder="Min alphas" min="0">
525
- </th>
526
- </tr>
527
- </thead>
528
- <tbody id="dataFieldsTableBody">
529
- <!-- Table rows will be populated here -->
530
- </tbody>
531
- </table>
532
- </div>
533
- </div>
534
-
535
- <!-- Selected Fields Section -->
536
- <div class="selected-fields-section" id="selectedFieldsSection" style="display: none;">
537
- <h2>Selected Fields</h2>
538
- <div id="selectedFieldsList"></div>
539
- <button id="clearSelectionBtn" class="btn btn-secondary">Clear Selection</button>
540
- <button id="processFieldsBtn" class="btn btn-primary">Process Selected Fields</button>
541
- </div>
542
-
543
- <!-- Results Section -->
544
- <div class="results-section" id="resultsSection" style="display: none;">
545
- <h2>Analysis Results</h2>
546
- <div class="markdown-content" id="resultsContent">
547
- <!-- Results will be displayed here -->
548
- </div>
549
- </div>
550
- </div>
551
- </div>
552
-
553
- <!-- Loading Overlay -->
554
- <div class="loading-overlay" id="loadingOverlay">
555
- <div class="loading-content">
556
- <h3>Processing...</h3>
557
- <p>Please wait while we analyze your selected fields...</p>
558
- </div>
559
- </div>
560
-
561
- <script src="{{ url_for('static', filename='idea_house.js') }}"></script>
562
- <script src="{{ url_for('static', filename='usage_widget.js') }}"></script>
563
- </body>
564
- </html>