clearai-dsh 0.1.0

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 (154) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +201 -0
  3. package/README.md +138 -0
  4. package/README.zh-CN.md +138 -0
  5. package/bin/clearai.mjs +224 -0
  6. package/brand/README.md +41 -0
  7. package/brand/logo-512-dark.png +0 -0
  8. package/brand/logo-512.png +0 -0
  9. package/brand/logo-lockup-dark.png +0 -0
  10. package/brand/logo-lockup.png +0 -0
  11. package/brand/logo-lockup.svg +12 -0
  12. package/brand/logo-wordmark.svg +6 -0
  13. package/brand/logo.svg +19 -0
  14. package/cordis.patch.yml +39 -0
  15. package/lib/client.js +3071 -0
  16. package/lib/fold.js +1576 -0
  17. package/lib/host.js +605 -0
  18. package/package.json +65 -0
  19. package/presets/clearai/agent.cordis.yml +226 -0
  20. package/presets/clearai/plugins/brain.js +547 -0
  21. package/presets/clearai/plugins/clearai-kernel.js +5485 -0
  22. package/presets/clearai/plugins/ontology.js +306 -0
  23. package/presets/clearai/plugins/prompts.js +312 -0
  24. package/presets/clearai/preset.yml +5 -0
  25. package/presets/clearai/skills/clearai-loop/SKILL.md +89 -0
  26. package/presets/clearai/template/knowledge/README.md +25 -0
  27. package/presets/clearai/template/memory/README.md +34 -0
  28. package/presets/clearai/template/project.md +49 -0
  29. package/presets/clearai/template/skills/README.md +37 -0
  30. package/presets/clearai/template/skills/chart-diagram-qa/SKILL.md +43 -0
  31. package/presets/clearai/template/skills/citation-management/SKILL.md +73 -0
  32. package/presets/clearai/template/skills/citation-management/references/bibtex_formatting.md +908 -0
  33. package/presets/clearai/template/skills/citation-management/references/citation_validation.md +794 -0
  34. package/presets/clearai/template/skills/citation-management/references/google_scholar_search.md +725 -0
  35. package/presets/clearai/template/skills/citation-management/references/metadata_extraction.md +870 -0
  36. package/presets/clearai/template/skills/citation-management/references/pubmed_search.md +839 -0
  37. package/presets/clearai/template/skills/citation-management/scripts/doi_to_bibtex.py +204 -0
  38. package/presets/clearai/template/skills/citation-management/scripts/extract_metadata.py +569 -0
  39. package/presets/clearai/template/skills/citation-management/scripts/format_bibtex.py +349 -0
  40. package/presets/clearai/template/skills/citation-management/scripts/generate_schematic.py +139 -0
  41. package/presets/clearai/template/skills/citation-management/scripts/generate_schematic_ai.py +817 -0
  42. package/presets/clearai/template/skills/citation-management/scripts/search_google_scholar.py +282 -0
  43. package/presets/clearai/template/skills/citation-management/scripts/search_pubmed.py +398 -0
  44. package/presets/clearai/template/skills/citation-management/scripts/validate_citations.py +497 -0
  45. package/presets/clearai/template/skills/data-analysis/SKILL.md +92 -0
  46. package/presets/clearai/template/skills/data-analysis/checklists/readiness_check.md +23 -0
  47. package/presets/clearai/template/skills/data-analysis/templates/analysis_report.md.tpl +63 -0
  48. package/presets/clearai/template/skills/data-analysis/templates/cleaning_rules_draft.yaml.tpl +32 -0
  49. package/presets/clearai/template/skills/data-analysis/templates/data_dictionary.md.tpl +12 -0
  50. package/presets/clearai/template/skills/data-analysis/templates/domain_knowledge_template.md.tpl +316 -0
  51. package/presets/clearai/template/skills/data-analysis/templates/feature_candidates.json.tpl +20 -0
  52. package/presets/clearai/template/skills/data-analysis/templates/quality_scorecard.md.tpl +30 -0
  53. package/presets/clearai/template/skills/data-analysis/workflows/01-data-profiling.md +42 -0
  54. package/presets/clearai/template/skills/data-analysis/workflows/02-quality-audit.md +36 -0
  55. package/presets/clearai/template/skills/data-analysis/workflows/03-physical-correlation.md +25 -0
  56. package/presets/clearai/template/skills/data-analysis/workflows/04-unstructured-mining.md +26 -0
  57. package/presets/clearai/template/skills/data-qa-analysis/SKILL.md +102 -0
  58. package/presets/clearai/template/skills/data-qa-analysis/checklists/readiness_check.md +62 -0
  59. package/presets/clearai/template/skills/data-qa-analysis/templates/best_in_class_report.md.tpl +56 -0
  60. package/presets/clearai/template/skills/data-qa-analysis/templates/cleaning_rules_draft.yaml.tpl +56 -0
  61. package/presets/clearai/template/skills/data-qa-analysis/templates/data_dictionary.md.tpl +13 -0
  62. package/presets/clearai/template/skills/data-qa-analysis/templates/data_source_inventory_and_lineage.md.tpl +146 -0
  63. package/presets/clearai/template/skills/data-qa-analysis/templates/data_status_report.md.tpl +60 -0
  64. package/presets/clearai/template/skills/data-qa-analysis/templates/steady_state_rules.yaml.tpl +41 -0
  65. package/presets/clearai/template/skills/data-qa-analysis/templates/subsystem_registry.md.tpl +101 -0
  66. package/presets/clearai/template/skills/data-qa-analysis/templates/unified_execution_plan.md.tpl +100 -0
  67. package/presets/clearai/template/skills/data-qa-analysis/workflows/01-data-source-inventory-and-lineage.md +194 -0
  68. package/presets/clearai/template/skills/data-qa-analysis/workflows/02-data-alignment-and-tag-semantics.md +122 -0
  69. package/presets/clearai/template/skills/data-qa-analysis/workflows/03-steady-state-identification.md +126 -0
  70. package/presets/clearai/template/skills/data-qa-analysis/workflows/04-consumption-analysis.md +152 -0
  71. package/presets/clearai/template/skills/data-qa-analysis/workflows/05-best-in-class-and-optimization-space.md +78 -0
  72. package/presets/clearai/template/skills/domain-presearch/SKILL.md +131 -0
  73. package/presets/clearai/template/skills/domain-presearch/checklists/domain_checklist.md +24 -0
  74. package/presets/clearai/template/skills/domain-presearch/references/figure_code.md +78 -0
  75. package/presets/clearai/template/skills/domain-presearch/references/strategic_frameworks.md +38 -0
  76. package/presets/clearai/template/skills/exploration-loop/SKILL.md +81 -0
  77. package/presets/clearai/template/skills/exploratory-data-analysis/SKILL.md +77 -0
  78. package/presets/clearai/template/skills/exploratory-data-analysis/references/bioinformatics_genomics_formats.md +664 -0
  79. package/presets/clearai/template/skills/exploratory-data-analysis/references/chemistry_molecular_formats.md +664 -0
  80. package/presets/clearai/template/skills/exploratory-data-analysis/references/general_scientific_formats.md +518 -0
  81. package/presets/clearai/template/skills/exploratory-data-analysis/references/microscopy_imaging_formats.md +620 -0
  82. package/presets/clearai/template/skills/exploratory-data-analysis/references/proteomics_metabolomics_formats.md +517 -0
  83. package/presets/clearai/template/skills/exploratory-data-analysis/references/spectroscopy_analytical_formats.md +633 -0
  84. package/presets/clearai/template/skills/exploratory-data-analysis/scripts/eda_analyzer.py +547 -0
  85. package/presets/clearai/template/skills/hypothesis-generation/SKILL.md +73 -0
  86. package/presets/clearai/template/skills/hypothesis-generation/references/experimental_design_patterns.md +329 -0
  87. package/presets/clearai/template/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +198 -0
  88. package/presets/clearai/template/skills/hypothesis-generation/references/literature_search_strategies.md +622 -0
  89. package/presets/clearai/template/skills/hypothesis-generation/scripts/generate_schematic.py +139 -0
  90. package/presets/clearai/template/skills/hypothesis-generation/scripts/generate_schematic_ai.py +817 -0
  91. package/presets/clearai/template/skills/literature-review/SKILL.md +72 -0
  92. package/presets/clearai/template/skills/literature-review/references/citation_styles.md +166 -0
  93. package/presets/clearai/template/skills/literature-review/references/database_strategies.md +455 -0
  94. package/presets/clearai/template/skills/literature-review/scripts/generate_pdf.py +176 -0
  95. package/presets/clearai/template/skills/literature-review/scripts/generate_schematic.py +139 -0
  96. package/presets/clearai/template/skills/literature-review/scripts/generate_schematic_ai.py +817 -0
  97. package/presets/clearai/template/skills/literature-review/scripts/search_databases.py +303 -0
  98. package/presets/clearai/template/skills/literature-review/scripts/verify_citations.py +221 -0
  99. package/presets/clearai/template/skills/paper-lookup/SKILL.md +59 -0
  100. package/presets/clearai/template/skills/paper-lookup/references/arxiv.md +161 -0
  101. package/presets/clearai/template/skills/paper-lookup/references/biorxiv.md +118 -0
  102. package/presets/clearai/template/skills/paper-lookup/references/core.md +150 -0
  103. package/presets/clearai/template/skills/paper-lookup/references/crossref.md +181 -0
  104. package/presets/clearai/template/skills/paper-lookup/references/medrxiv.md +104 -0
  105. package/presets/clearai/template/skills/paper-lookup/references/openalex.md +174 -0
  106. package/presets/clearai/template/skills/paper-lookup/references/pmc.md +152 -0
  107. package/presets/clearai/template/skills/paper-lookup/references/pubmed.md +124 -0
  108. package/presets/clearai/template/skills/paper-lookup/references/semantic-scholar.md +203 -0
  109. package/presets/clearai/template/skills/paper-lookup/references/unpaywall.md +127 -0
  110. package/presets/clearai/template/skills/process-presearch/SKILL.md +196 -0
  111. package/presets/clearai/template/skills/process-presearch/checklists/process_checklist.md +18 -0
  112. package/presets/clearai/template/skills/process-presearch/references/figure_code.md +107 -0
  113. package/presets/clearai/template/skills/process-presearch/references/source_attribution_example.md +22 -0
  114. package/presets/clearai/template/skills/process-understanding-extraction/SKILL.md +69 -0
  115. package/presets/clearai/template/skills/process-understanding-extraction/checklists/readiness_check.md +34 -0
  116. package/presets/clearai/template/skills/process-understanding-extraction/templates/docx_raw_dump_extractor.py.tpl +132 -0
  117. package/presets/clearai/template/skills/process-understanding-extraction/templates/entity_map_unit_topology.json.tpl +86 -0
  118. package/presets/clearai/template/skills/process-understanding-extraction/templates/process_brief.md.tpl +89 -0
  119. package/presets/clearai/template/skills/process-understanding-extraction/templates/process_brief_builder_from_raw_dump.py.tpl +203 -0
  120. package/presets/clearai/template/skills/process-understanding-extraction/templates/process_flow_mermaid.md.tpl +41 -0
  121. package/presets/clearai/template/skills/process-understanding-extraction/templates/unified_execution_plan.md.tpl +53 -0
  122. package/presets/clearai/template/skills/process-understanding-extraction/workflows/01-process-doc-discovery.md +173 -0
  123. package/presets/clearai/template/skills/process-understanding-extraction/workflows/02-process-understanding-and-diagramming.md +106 -0
  124. package/presets/clearai/template/skills/scientific-brainstorming/SKILL.md +64 -0
  125. package/presets/clearai/template/skills/scientific-brainstorming/references/brainstorming_methods.md +326 -0
  126. package/presets/clearai/template/skills/scientific-critical-thinking/SKILL.md +72 -0
  127. package/presets/clearai/template/skills/scientific-critical-thinking/references/common_biases.md +364 -0
  128. package/presets/clearai/template/skills/scientific-critical-thinking/references/evidence_hierarchy.md +485 -0
  129. package/presets/clearai/template/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
  130. package/presets/clearai/template/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
  131. package/presets/clearai/template/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
  132. package/presets/clearai/template/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
  133. package/presets/clearai/template/skills/skill-creator/SKILL.md +109 -0
  134. package/presets/clearai/template/skills/skill-creator/references/authoring-guide.md +89 -0
  135. package/presets/clearai/template/skills/statistical-analysis/SKILL.md +79 -0
  136. package/presets/clearai/template/skills/statistical-analysis/references/assumptions_and_diagnostics.md +369 -0
  137. package/presets/clearai/template/skills/statistical-analysis/references/bayesian_statistics.md +653 -0
  138. package/presets/clearai/template/skills/statistical-analysis/references/effect_sizes_and_power.md +578 -0
  139. package/presets/clearai/template/skills/statistical-analysis/references/reporting_standards.md +469 -0
  140. package/presets/clearai/template/skills/statistical-analysis/references/test_selection_guide.md +129 -0
  141. package/presets/clearai/template/skills/statistical-analysis/scripts/assumption_checks.py +538 -0
  142. package/presets/clearai/template/skills/web-artifact/SKILL.md +165 -0
  143. package/presets/clearai/template/skills/web-artifact/assets/renderer/renderer.css +229 -0
  144. package/presets/clearai/template/skills/web-artifact/assets/renderer/renderer.js +373 -0
  145. package/presets/clearai/template/skills/web-artifact/assets/vendor/elkjs/LICENSE +263 -0
  146. package/presets/clearai/template/skills/web-artifact/assets/vendor/elkjs/UPSTREAM.md +26 -0
  147. package/presets/clearai/template/skills/web-artifact/assets/vendor/elkjs/elk.bundled.js +6605 -0
  148. package/presets/clearai/template/skills/web-artifact/references/when-drawing-a-topology.md +150 -0
  149. package/presets/clearai/template/skills/web-artifact/references/when-the-page-must-work-offline.md +62 -0
  150. package/presets/clearai/template/skills/web-artifact/scripts/check_artifact.py +167 -0
  151. package/presets/clearai/template/skills/web-artifact/scripts/render_topology.js +272 -0
  152. package/presets/clearai/template/skills/what-if-oracle/LICENSE.txt +5 -0
  153. package/presets/clearai/template/skills/what-if-oracle/SKILL.md +72 -0
  154. package/presets/clearai/template/skills/what-if-oracle/references/scenario-templates.md +154 -0
@@ -0,0 +1,204 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ DOI to BibTeX Converter
4
+ Quick utility to convert DOIs to BibTeX format using CrossRef API.
5
+ """
6
+
7
+ import sys
8
+ import requests
9
+ import argparse
10
+ import time
11
+ import json
12
+ from typing import Optional, List
13
+
14
+ class DOIConverter:
15
+ """Convert DOIs to BibTeX entries using CrossRef API."""
16
+
17
+ def __init__(self):
18
+ self.session = requests.Session()
19
+ self.session.headers.update({
20
+ 'User-Agent': 'DOIConverter/1.0 (Citation Management Tool; mailto:support@example.com)'
21
+ })
22
+
23
+ def doi_to_bibtex(self, doi: str) -> Optional[str]:
24
+ """
25
+ Convert a single DOI to BibTeX format.
26
+
27
+ Args:
28
+ doi: Digital Object Identifier
29
+
30
+ Returns:
31
+ BibTeX string or None if conversion fails
32
+ """
33
+ # Clean DOI (remove URL prefix if present)
34
+ doi = doi.strip()
35
+ if doi.startswith('https://doi.org/'):
36
+ doi = doi.replace('https://doi.org/', '')
37
+ elif doi.startswith('http://doi.org/'):
38
+ doi = doi.replace('http://doi.org/', '')
39
+ elif doi.startswith('doi:'):
40
+ doi = doi.replace('doi:', '')
41
+
42
+ # Request BibTeX from CrossRef content negotiation
43
+ url = f'https://doi.org/{doi}'
44
+ headers = {
45
+ 'Accept': 'application/x-bibtex',
46
+ 'User-Agent': 'DOIConverter/1.0 (Citation Management Tool)'
47
+ }
48
+
49
+ try:
50
+ response = self.session.get(url, headers=headers, timeout=15)
51
+
52
+ if response.status_code == 200:
53
+ bibtex = response.text.strip()
54
+ # CrossRef sometimes returns entries with @data type, convert to @misc
55
+ if bibtex.startswith('@data{'):
56
+ bibtex = bibtex.replace('@data{', '@misc{', 1)
57
+ return bibtex
58
+ elif response.status_code == 404:
59
+ print(f'Error: DOI not found: {doi}', file=sys.stderr)
60
+ return None
61
+ else:
62
+ print(f'Error: Failed to retrieve BibTeX for {doi} (status {response.status_code})', file=sys.stderr)
63
+ return None
64
+
65
+ except requests.exceptions.Timeout:
66
+ print(f'Error: Request timeout for DOI: {doi}', file=sys.stderr)
67
+ return None
68
+ except requests.exceptions.RequestException as e:
69
+ print(f'Error: Request failed for {doi}: {e}', file=sys.stderr)
70
+ return None
71
+
72
+ def convert_multiple(self, dois: List[str], delay: float = 0.5) -> List[str]:
73
+ """
74
+ Convert multiple DOIs to BibTeX.
75
+
76
+ Args:
77
+ dois: List of DOIs
78
+ delay: Delay between requests (seconds) for rate limiting
79
+
80
+ Returns:
81
+ List of BibTeX entries (excludes failed conversions)
82
+ """
83
+ bibtex_entries = []
84
+
85
+ for i, doi in enumerate(dois):
86
+ print(f'Converting DOI {i+1}/{len(dois)}: {doi}', file=sys.stderr)
87
+ bibtex = self.doi_to_bibtex(doi)
88
+
89
+ if bibtex:
90
+ bibtex_entries.append(bibtex)
91
+
92
+ # Rate limiting
93
+ if i < len(dois) - 1: # Don't delay after last request
94
+ time.sleep(delay)
95
+
96
+ return bibtex_entries
97
+
98
+
99
+ def main():
100
+ """Command-line interface."""
101
+ parser = argparse.ArgumentParser(
102
+ description='Convert DOIs to BibTeX format using CrossRef API',
103
+ epilog='Example: python doi_to_bibtex.py 10.1038/s41586-021-03819-2'
104
+ )
105
+
106
+ parser.add_argument(
107
+ 'dois',
108
+ nargs='*',
109
+ help='DOI(s) to convert (can provide multiple)'
110
+ )
111
+
112
+ parser.add_argument(
113
+ '-i', '--input',
114
+ help='Input file with DOIs (one per line)'
115
+ )
116
+
117
+ parser.add_argument(
118
+ '-o', '--output',
119
+ help='Output file for BibTeX (default: stdout)'
120
+ )
121
+
122
+ parser.add_argument(
123
+ '--delay',
124
+ type=float,
125
+ default=0.5,
126
+ help='Delay between requests in seconds (default: 0.5)'
127
+ )
128
+
129
+ parser.add_argument(
130
+ '--format',
131
+ choices=['bibtex', 'json'],
132
+ default='bibtex',
133
+ help='Output format (default: bibtex)'
134
+ )
135
+
136
+ args = parser.parse_args()
137
+
138
+ # Collect DOIs from command line and/or file
139
+ dois = []
140
+
141
+ if args.dois:
142
+ dois.extend(args.dois)
143
+
144
+ if args.input:
145
+ try:
146
+ with open(args.input, 'r', encoding='utf-8') as f:
147
+ file_dois = [line.strip() for line in f if line.strip()]
148
+ dois.extend(file_dois)
149
+ except FileNotFoundError:
150
+ print(f'Error: Input file not found: {args.input}', file=sys.stderr)
151
+ sys.exit(1)
152
+ except Exception as e:
153
+ print(f'Error reading input file: {e}', file=sys.stderr)
154
+ sys.exit(1)
155
+
156
+ if not dois:
157
+ parser.print_help()
158
+ sys.exit(1)
159
+
160
+ # Convert DOIs
161
+ converter = DOIConverter()
162
+
163
+ if len(dois) == 1:
164
+ bibtex = converter.doi_to_bibtex(dois[0])
165
+ if bibtex:
166
+ bibtex_entries = [bibtex]
167
+ else:
168
+ sys.exit(1)
169
+ else:
170
+ bibtex_entries = converter.convert_multiple(dois, delay=args.delay)
171
+
172
+ if not bibtex_entries:
173
+ print('Error: No successful conversions', file=sys.stderr)
174
+ sys.exit(1)
175
+
176
+ # Format output
177
+ if args.format == 'bibtex':
178
+ output = '\n\n'.join(bibtex_entries) + '\n'
179
+ else: # json
180
+ output = json.dumps({
181
+ 'count': len(bibtex_entries),
182
+ 'entries': bibtex_entries
183
+ }, indent=2)
184
+
185
+ # Write output
186
+ if args.output:
187
+ try:
188
+ with open(args.output, 'w', encoding='utf-8') as f:
189
+ f.write(output)
190
+ print(f'Successfully wrote {len(bibtex_entries)} entries to {args.output}', file=sys.stderr)
191
+ except Exception as e:
192
+ print(f'Error writing output file: {e}', file=sys.stderr)
193
+ sys.exit(1)
194
+ else:
195
+ print(output)
196
+
197
+ # Summary
198
+ if len(dois) > 1:
199
+ success_rate = len(bibtex_entries) / len(dois) * 100
200
+ print(f'\nConverted {len(bibtex_entries)}/{len(dois)} DOIs ({success_rate:.1f}%)', file=sys.stderr)
201
+
202
+
203
+ if __name__ == '__main__':
204
+ main()