cnhkmcp 2.0__tar.gz → 2.0.1__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 (103) hide show
  1. {cnhkmcp-2.0/cnhkmcp.egg-info → cnhkmcp-2.0.1}/PKG-INFO +1 -1
  2. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/inspiration.js +39 -8
  3. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP//350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py +1 -1
  4. {cnhkmcp-2.0 → cnhkmcp-2.0.1/cnhkmcp.egg-info}/PKG-INFO +1 -1
  5. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/setup.py +1 -1
  6. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/LICENSE +0 -0
  7. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/MANIFEST.in +0 -0
  8. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/README.md +0 -0
  9. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/__init__.py +0 -0
  10. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/.gitignore +0 -0
  11. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -0
  12. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/README.md +0 -0
  13. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -0
  14. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  15. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -0
  16. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -0
  17. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -0
  18. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/347/244/272/344/276/213.json" +0 -0
  19. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -0
  20. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -0
  21. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  22. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/parsetab.py +0 -0
  23. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -0
  24. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -0
  25. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/Tranformer/validator.py +0 -0
  26. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/ace.log +0 -0
  27. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/ace_lib.py +0 -0
  28. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/blueprints/__init__.py +0 -0
  29. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -0
  30. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -0
  31. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -0
  32. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -0
  33. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/custom_templates/templates.json +0 -0
  34. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +0 -0
  35. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +0 -0
  36. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +0 -0
  37. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +0 -0
  38. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +0 -0
  39. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/helpful_functions.py +0 -0
  40. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/ace.log +0 -0
  41. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -0
  42. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/autosim_20251205_145240.log +0 -0
  43. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/autosim_20251215_030103.log +0 -0
  44. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -0
  45. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -0
  46. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/mirror_config.txt +0 -0
  47. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/operaters.csv +0 -0
  48. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/requirements.txt +0 -0
  49. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/run_app.bat +0 -0
  50. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/run_app.sh +0 -0
  51. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -0
  52. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -0
  53. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -0
  54. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -0
  55. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/ssrn-3332513.pdf +0 -0
  56. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/brain.js +0 -0
  57. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/decoder.js +0 -0
  58. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/feature_engineering.js +0 -0
  59. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/idea_house.js +0 -0
  60. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/inspiration_house.js +0 -0
  61. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/paper_analysis.js +0 -0
  62. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/script.js +0 -0
  63. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/simulator.js +0 -0
  64. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/styles.css +0 -0
  65. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/static/usage_widget.js +0 -0
  66. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -0
  67. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -0
  68. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/idea_house.html +0 -0
  69. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/index.html +0 -0
  70. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -0
  71. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -0
  72. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/simulator.html +0 -0
  73. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/templates/transformer_web.html +0 -0
  74. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP/usage.md +0 -0
  75. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/ace_lib.py" +0 -0
  76. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/brain_alpha_inspector.py" +0 -0
  77. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/helpful_functions.py" +0 -0
  78. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -0
  79. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/arxiv_api.py +0 -0
  80. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/forum_functions.py +0 -0
  81. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  82. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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" +0 -0
  83. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  84. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  85. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  86. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/platform_functions.py +0 -0
  87. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/sample_mcp_config.json +0 -0
  88. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked/user_config.json +0 -0
  89. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  90. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Alpha_explaination_workflow.md" +0 -0
  91. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  92. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_Alpha_Improvement_Workflow.md" +0 -0
  93. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Dataset_Exploration_Expert_Manual.md" +0 -0
  94. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_daily_report_workflow.md" +0 -0
  95. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/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
  96. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/SOURCES.txt +0 -0
  97. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/dependency_links.txt +0 -0
  98. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/entry_points.txt +0 -0
  99. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/not-zip-safe +0 -0
  100. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/requires.txt +0 -0
  101. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/cnhkmcp.egg-info/top_level.txt +0 -0
  102. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/requirements.txt +0 -0
  103. {cnhkmcp-2.0 → cnhkmcp-2.0.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cnhkmcp
3
- Version: 2.0
3
+ Version: 2.0.1
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
@@ -40,6 +40,14 @@ document.addEventListener('DOMContentLoaded', function() {
40
40
  genBtn.title = "Please test LLM connection first";
41
41
  }
42
42
 
43
+ // Initially disable new task button
44
+ const newTaskBtn = document.getElementById('inspire-new-task');
45
+ if (newTaskBtn) {
46
+ newTaskBtn.disabled = true;
47
+ newTaskBtn.style.opacity = '0.5';
48
+ newTaskBtn.style.cursor = 'not-allowed';
49
+ }
50
+
43
51
  // Check login status periodically or on load to update button state
44
52
  checkLoginAndUpdateButton();
45
53
  });
@@ -329,6 +337,13 @@ function generateAlphaTemplates() {
329
337
  inspirationState.lastResult = data.result;
330
338
  const dlBtn = document.getElementById('inspire-download');
331
339
  if (dlBtn) dlBtn.style.display = 'inline-block';
340
+
341
+ const newTaskBtn = document.getElementById('inspire-new-task');
342
+ if (newTaskBtn) {
343
+ newTaskBtn.disabled = false;
344
+ newTaskBtn.style.opacity = '1';
345
+ newTaskBtn.style.cursor = 'pointer';
346
+ }
332
347
  }
333
348
  })
334
349
  .catch(err => {
@@ -337,17 +352,26 @@ function generateAlphaTemplates() {
337
352
  }
338
353
 
339
354
  function formatMarkdown(text) {
340
- // Escape HTML tags to prevent browser from hiding them or interpreting them
341
- // specifically for Brain expressions like <field_name>
342
- // We only escape < and > if they look like tags, but for simplicity and safety with this specific content,
343
- // escaping all is usually safer before markdown parsing, as markdown doesn't use < > for syntax
344
- // (except for raw HTML, which we don't need here).
345
- const escapedText = text.replace(/</g, '&lt;').replace(/>/g, '&gt;');
346
-
347
355
  if (typeof marked !== 'undefined') {
348
- return marked.parse(escapedText);
356
+ // Split text by code blocks (triple backticks or single backticks)
357
+ // We want to escape < and > in normal text, but NOT in code blocks
358
+ const parts = text.split(/(```[\s\S]*?```|`[^`]*`)/g);
359
+
360
+ const escapedParts = parts.map(part => {
361
+ // If it starts with backtick, it's a code block -> return as is
362
+ if (part.startsWith('`')) {
363
+ return part;
364
+ }
365
+ // Otherwise, escape < and >
366
+ return part.replace(/</g, '&lt;').replace(/>/g, '&gt;');
367
+ });
368
+
369
+ return marked.parse(escapedParts.join(''));
349
370
  }
371
+
350
372
  // Fallback simple formatter
373
+ // Here we DO need to escape because we are building HTML manually
374
+ const escapedText = text.replace(/</g, '&lt;').replace(/>/g, '&gt;');
351
375
  let html = escapedText
352
376
  .replace(/```([\s\S]*?)```/g, '<pre><code>$1</code></pre>')
353
377
  .replace(/\n/g, '<br>');
@@ -423,6 +447,13 @@ function resetInspirationTask() {
423
447
 
424
448
  const dlBtn = document.getElementById('inspire-download');
425
449
  if (dlBtn) dlBtn.style.display = 'none';
450
+
451
+ const newTaskBtn = document.getElementById('inspire-new-task');
452
+ if (newTaskBtn) {
453
+ newTaskBtn.disabled = true;
454
+ newTaskBtn.style.opacity = '0.5';
455
+ newTaskBtn.style.cursor = 'not-allowed';
456
+ }
426
457
  // Keep LLM config and Region/Universe selections
427
458
  }
428
459
 
@@ -2390,4 +2390,4 @@ if __name__ == '__main__':
2390
2390
 
2391
2391
  print(f"Application will run on http://{bind_host}:5000")
2392
2392
  print("BRAIN API integration included - no separate proxy needed!")
2393
- app.run(debug=True, host=bind_host, port=5000)
2393
+ app.run(debug=False, host=bind_host, port=5000)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cnhkmcp
3
- Version: 2.0
3
+ Version: 2.0.1
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
@@ -13,7 +13,7 @@ def read_requirements():
13
13
 
14
14
  setup(
15
15
  name="cnhkmcp",
16
- version="2.0",
16
+ version="2.0.1",
17
17
  author="CNHK",
18
18
  author_email="cnhk@example.com",
19
19
  description="A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes