@erosolaraijs/cure 1.0.1 → 1.0.3
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.
- package/dist/bin/cure.d.ts +2 -5
- package/dist/bin/cure.d.ts.map +1 -1
- package/dist/bin/cure.js +360 -129
- package/dist/bin/cure.js.map +1 -1
- package/dist/clinician/decisionSupport.d.ts +325 -0
- package/dist/clinician/decisionSupport.d.ts.map +1 -0
- package/dist/clinician/decisionSupport.js +604 -0
- package/dist/clinician/decisionSupport.js.map +1 -0
- package/dist/clinician/index.d.ts +5 -0
- package/dist/clinician/index.d.ts.map +1 -0
- package/dist/clinician/index.js +5 -0
- package/dist/clinician/index.js.map +1 -0
- package/dist/compliance/index.d.ts +5 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +5 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/clinicalTrials/index.d.ts +5 -0
- package/dist/integrations/clinicalTrials/index.d.ts.map +1 -0
- package/dist/integrations/clinicalTrials/index.js +5 -0
- package/dist/integrations/clinicalTrials/index.js.map +1 -0
- package/dist/integrations/ehr/index.d.ts +5 -0
- package/dist/integrations/ehr/index.d.ts.map +1 -0
- package/dist/integrations/ehr/index.js +5 -0
- package/dist/integrations/ehr/index.js.map +1 -0
- package/dist/integrations/genomics/index.d.ts +5 -0
- package/dist/integrations/genomics/index.d.ts.map +1 -0
- package/dist/integrations/genomics/index.js +5 -0
- package/dist/integrations/genomics/index.js.map +1 -0
- package/dist/ml/index.d.ts +5 -0
- package/dist/ml/index.d.ts.map +1 -0
- package/dist/ml/index.js +5 -0
- package/dist/ml/index.js.map +1 -0
- package/dist/ml/outcomePredictor.d.ts +297 -0
- package/dist/ml/outcomePredictor.d.ts.map +1 -0
- package/dist/ml/outcomePredictor.js +823 -0
- package/dist/ml/outcomePredictor.js.map +1 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +5 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/realWorldOncology.d.ts +351 -0
- package/dist/orchestrator/realWorldOncology.d.ts.map +1 -0
- package/dist/orchestrator/realWorldOncology.js +425 -0
- package/dist/orchestrator/realWorldOncology.js.map +1 -0
- package/dist/patient/index.d.ts +5 -0
- package/dist/patient/index.d.ts.map +1 -0
- package/dist/patient/index.js +5 -0
- package/dist/patient/index.js.map +1 -0
- package/dist/patient/patientPortal.d.ts +337 -0
- package/dist/patient/patientPortal.d.ts.map +1 -0
- package/dist/patient/patientPortal.js +667 -0
- package/dist/patient/patientPortal.js.map +1 -0
- package/dist/safety/drugInteractions.d.ts +230 -0
- package/dist/safety/drugInteractions.d.ts.map +1 -0
- package/dist/safety/drugInteractions.js +697 -0
- package/dist/safety/drugInteractions.js.map +1 -0
- package/dist/safety/index.d.ts +5 -0
- package/dist/safety/index.d.ts.map +1 -0
- package/dist/safety/index.js +5 -0
- package/dist/safety/index.js.map +1 -0
- package/dist/validation/index.d.ts +5 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +5 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/retrospectiveValidator.d.ts +246 -0
- package/dist/validation/retrospectiveValidator.d.ts.map +1 -0
- package/dist/validation/retrospectiveValidator.js +602 -0
- package/dist/validation/retrospectiveValidator.js.map +1 -0
- package/package.json +1 -1
- package/src/bin/cure.ts +412 -143
- package/src/clinician/decisionSupport.ts +949 -0
- package/src/clinician/index.ts +11 -0
- package/src/compliance/index.ts +19 -0
- package/src/integrations/clinicalTrials/index.ts +21 -0
- package/src/integrations/ehr/index.ts +32 -0
- package/src/integrations/genomics/index.ts +23 -0
- package/src/ml/index.ts +15 -0
- package/src/orchestrator/index.ts +11 -0
- package/src/orchestrator/realWorldOncology.ts +803 -0
- package/src/patient/index.ts +14 -0
- package/src/patient/patientPortal.ts +1039 -0
- package/src/safety/index.ts +14 -0
- package/src/validation/index.ts +10 -0
package/dist/bin/cure.d.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 全球首个人工通用智能驱动的癌症治疗统一指挥控制平台
|
|
7
|
-
* 提供完整的癌症研究、药物发现、治疗规划、患者管理和医疗系统集成能力
|
|
3
|
+
* Cure - AI Cancer Treatment Framework
|
|
4
|
+
* Interactive CLI powered by xAI Grok for precision oncology
|
|
8
5
|
*/
|
|
9
6
|
export {};
|
|
10
7
|
//# sourceMappingURL=cure.d.ts.map
|
package/dist/bin/cure.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cure.d.ts","sourceRoot":"","sources":["../../src/bin/cure.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cure.d.ts","sourceRoot":"","sources":["../../src/bin/cure.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
package/dist/bin/cure.js
CHANGED
|
@@ -1,169 +1,400 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 全球首个人工通用智能驱动的癌症治疗统一指挥控制平台
|
|
7
|
-
* 提供完整的癌症研究、药物发现、治疗规划、患者管理和医疗系统集成能力
|
|
3
|
+
* Cure - AI Cancer Treatment Framework
|
|
4
|
+
* Interactive CLI powered by xAI Grok for precision oncology
|
|
8
5
|
*/
|
|
6
|
+
import * as readline from 'readline';
|
|
7
|
+
import * as https from 'https';
|
|
9
8
|
import { CancerTreatmentCapabilityModule } from '../capabilities/cancerTreatmentCapability.js';
|
|
9
|
+
const VERSION = '1.0.3';
|
|
10
|
+
const XAI_MODEL = 'grok-4-1-fast-reasoning';
|
|
11
|
+
// ANSI color codes
|
|
12
|
+
const colors = {
|
|
13
|
+
reset: '\x1b[0m',
|
|
14
|
+
bold: '\x1b[1m',
|
|
15
|
+
dim: '\x1b[2m',
|
|
16
|
+
cyan: '\x1b[36m',
|
|
17
|
+
green: '\x1b[32m',
|
|
18
|
+
yellow: '\x1b[33m',
|
|
19
|
+
blue: '\x1b[34m',
|
|
20
|
+
magenta: '\x1b[35m',
|
|
21
|
+
red: '\x1b[31m',
|
|
22
|
+
white: '\x1b[37m',
|
|
23
|
+
};
|
|
24
|
+
let cancerTreatment;
|
|
25
|
+
let conversationHistory = [];
|
|
26
|
+
const SYSTEM_PROMPT = `You are Cure, an advanced AI oncologist assistant powered by the Cure Cancer Treatment Framework. You help doctors, researchers, and patients with:
|
|
27
|
+
|
|
28
|
+
1. Cancer diagnosis and staging analysis
|
|
29
|
+
2. Personalized treatment planning (chemotherapy, immunotherapy, targeted therapy, CAR-T)
|
|
30
|
+
3. Drug target discovery and mechanism analysis
|
|
31
|
+
4. Clinical trial matching and eligibility
|
|
32
|
+
5. Genomic biomarker interpretation (EGFR, KRAS, BRAF, HER2, PD-L1, etc.)
|
|
33
|
+
6. Treatment response prediction and survival analysis
|
|
34
|
+
7. Drug interaction and safety checks
|
|
35
|
+
8. HIPAA-compliant patient data handling
|
|
36
|
+
|
|
37
|
+
You have deep knowledge of:
|
|
38
|
+
- NCCN, ESMO, ASCO treatment guidelines
|
|
39
|
+
- FDA-approved cancer therapies and their mechanisms
|
|
40
|
+
- Precision medicine and molecular oncology
|
|
41
|
+
- Immunotherapy (checkpoint inhibitors, CAR-T, TILs)
|
|
42
|
+
- Targeted therapies for driver mutations
|
|
43
|
+
- Clinical trial design and interpretation
|
|
44
|
+
|
|
45
|
+
Be concise, scientifically accurate, and clinically relevant. When discussing specific treatments, cite evidence levels and relevant trials. Always recommend consulting with treating oncologists for actual patient care decisions.
|
|
46
|
+
|
|
47
|
+
Available commands the user can run:
|
|
48
|
+
- /analyze [patient_id] - Analyze patient data
|
|
49
|
+
- /plan [patient_id] - Design treatment plan
|
|
50
|
+
- /discover [gene] [cancer] - Drug target discovery
|
|
51
|
+
- /demo - Run framework demonstration
|
|
52
|
+
- /help - Show available commands`;
|
|
53
|
+
async function callXAI(userMessage) {
|
|
54
|
+
const apiKey = process.env.XAI_API_KEY;
|
|
55
|
+
if (!apiKey) {
|
|
56
|
+
return `${colors.yellow}Note: Set XAI_API_KEY environment variable for AI-powered responses.${colors.reset}\n\nI can help you with cancer treatment analysis. Try:\n /analyze P001 - Analyze patient\n /plan P001 - Design treatment plan\n /discover EGFR Lung - Find drug targets\n /demo - Run demonstration`;
|
|
57
|
+
}
|
|
58
|
+
conversationHistory.push({ role: 'user', content: userMessage });
|
|
59
|
+
const messages = [
|
|
60
|
+
{ role: 'system', content: SYSTEM_PROMPT },
|
|
61
|
+
...conversationHistory
|
|
62
|
+
];
|
|
63
|
+
const requestBody = JSON.stringify({
|
|
64
|
+
model: XAI_MODEL,
|
|
65
|
+
messages: messages,
|
|
66
|
+
temperature: 0.7,
|
|
67
|
+
max_tokens: 2048
|
|
68
|
+
});
|
|
69
|
+
return new Promise((resolve, reject) => {
|
|
70
|
+
const options = {
|
|
71
|
+
hostname: 'api.x.ai',
|
|
72
|
+
port: 443,
|
|
73
|
+
path: '/v1/chat/completions',
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: {
|
|
76
|
+
'Content-Type': 'application/json',
|
|
77
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
78
|
+
'Content-Length': Buffer.byteLength(requestBody)
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const req = https.request(options, (res) => {
|
|
82
|
+
let data = '';
|
|
83
|
+
res.on('data', (chunk) => { data += chunk; });
|
|
84
|
+
res.on('end', () => {
|
|
85
|
+
try {
|
|
86
|
+
const response = JSON.parse(data);
|
|
87
|
+
if (response.choices && response.choices[0]?.message?.content) {
|
|
88
|
+
const assistantMessage = response.choices[0].message.content;
|
|
89
|
+
conversationHistory.push({ role: 'assistant', content: assistantMessage });
|
|
90
|
+
// Keep conversation history manageable
|
|
91
|
+
if (conversationHistory.length > 20) {
|
|
92
|
+
conversationHistory = conversationHistory.slice(-16);
|
|
93
|
+
}
|
|
94
|
+
resolve(assistantMessage);
|
|
95
|
+
}
|
|
96
|
+
else if (response.error) {
|
|
97
|
+
resolve(`${colors.red}API Error: ${response.error.message}${colors.reset}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
resolve(`${colors.red}Unexpected response format${colors.reset}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
resolve(`${colors.red}Failed to parse response${colors.reset}`);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
req.on('error', (e) => {
|
|
109
|
+
resolve(`${colors.red}Connection error: ${e.message}${colors.reset}`);
|
|
110
|
+
});
|
|
111
|
+
req.setTimeout(30000, () => {
|
|
112
|
+
req.destroy();
|
|
113
|
+
resolve(`${colors.yellow}Request timed out. Try again.${colors.reset}`);
|
|
114
|
+
});
|
|
115
|
+
req.write(requestBody);
|
|
116
|
+
req.end();
|
|
117
|
+
});
|
|
118
|
+
}
|
|
10
119
|
async function main() {
|
|
11
120
|
const args = process.argv.slice(2);
|
|
12
|
-
// Check for version flag
|
|
13
121
|
if (args.includes('--version') || args.includes('-v')) {
|
|
14
|
-
|
|
15
|
-
console.log(`agi-core-cancer-treatment v${pkg.version}`);
|
|
122
|
+
console.log(`cure v${VERSION}`);
|
|
16
123
|
process.exit(0);
|
|
17
124
|
}
|
|
18
|
-
// Check for help flag
|
|
19
125
|
if (args.includes('--help') || args.includes('-h')) {
|
|
20
126
|
printHelp();
|
|
21
127
|
process.exit(0);
|
|
22
128
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (args.includes('--cancer-treatment') || args.includes('--medical')) {
|
|
27
|
-
console.log('\n🏥 癌症治疗人工智能框架激活\n');
|
|
28
|
-
console.log('💊 最大能力癌症治疗框架 - 全面医疗与AI能力\n');
|
|
29
|
-
console.log('📊 框架提供以下核心能力:');
|
|
30
|
-
console.log(' • 个性化癌症治疗协议分析与规划');
|
|
31
|
-
console.log(' • AI驱动的药物靶点发现与设计');
|
|
32
|
-
console.log(' • 精准医疗与基因组分析管道');
|
|
33
|
-
console.log(' • 临床试验管理与优化');
|
|
34
|
-
console.log(' • 患者多维度评估与监测');
|
|
35
|
-
console.log(' • 医疗系统集成与数据协调');
|
|
36
|
-
console.log(' • 统一医疗指挥与协调系统');
|
|
37
|
-
console.log(' • 人工智能治疗决策支持\n');
|
|
38
|
-
console.log('✅ 癌症治疗能力框架初始化完成');
|
|
39
|
-
console.log('🚀 使用 --help 查看可用命令');
|
|
40
|
-
}
|
|
41
|
-
else if (args.includes('--analyze-patient')) {
|
|
42
|
-
const patientId = args.find(arg => arg.startsWith('--patient='))?.split('=')[1] || 'P001';
|
|
43
|
-
const includeGenomics = args.includes('--genomics');
|
|
44
|
-
console.log(`\n🔍 分析患者: ${patientId}`);
|
|
45
|
-
console.log('───────────────────────────');
|
|
46
|
-
try {
|
|
47
|
-
const result = await cancerTreatment.analyzePatient(patientId, includeGenomics);
|
|
48
|
-
console.log('📊 分析结果:');
|
|
49
|
-
console.log(` • 癌症类型: ${result.analysis.cancerType}`);
|
|
50
|
-
console.log(` • 分期: ${result.analysis.stage}`);
|
|
51
|
-
console.log(` • 生物标志物: ${result.analysis.biomarkers.join(', ')}`);
|
|
52
|
-
console.log(` • 生存概率: ${(result.analysis.riskAssessment.survivalProbability * 100).toFixed(1)}%`);
|
|
53
|
-
console.log('✅ 分析完成');
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
console.error('❌ 分析失败:', error);
|
|
57
|
-
}
|
|
129
|
+
cancerTreatment = new CancerTreatmentCapabilityModule();
|
|
130
|
+
if (args.length > 0) {
|
|
131
|
+
await handleCommand(args);
|
|
58
132
|
}
|
|
59
|
-
else
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
133
|
+
else {
|
|
134
|
+
await launchInteractiveMode();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function launchInteractiveMode() {
|
|
138
|
+
console.clear();
|
|
139
|
+
printBanner();
|
|
140
|
+
const rl = readline.createInterface({
|
|
141
|
+
input: process.stdin,
|
|
142
|
+
output: process.stdout,
|
|
143
|
+
});
|
|
144
|
+
const prompt = () => {
|
|
145
|
+
process.stdout.write(`\n${colors.cyan}cure${colors.reset} ${colors.dim}>${colors.reset} `);
|
|
146
|
+
};
|
|
147
|
+
const modelInfo = process.env.XAI_API_KEY
|
|
148
|
+
? `${colors.green}Connected to xAI ${XAI_MODEL}${colors.reset}`
|
|
149
|
+
: `${colors.yellow}Set XAI_API_KEY for AI responses${colors.reset}`;
|
|
150
|
+
console.log(`${colors.dim}${modelInfo}${colors.reset}`);
|
|
151
|
+
console.log(`${colors.dim}Type your question or /help for commands.${colors.reset}\n`);
|
|
152
|
+
prompt();
|
|
153
|
+
rl.on('line', async (input) => {
|
|
154
|
+
const trimmed = input.trim();
|
|
155
|
+
if (!trimmed) {
|
|
156
|
+
prompt();
|
|
157
|
+
return;
|
|
72
158
|
}
|
|
73
|
-
|
|
74
|
-
console.
|
|
159
|
+
if (trimmed === '/exit' || trimmed === '/quit' || trimmed === 'exit' || trimmed === 'quit') {
|
|
160
|
+
console.log(`\n${colors.dim}Goodbye.${colors.reset}\n`);
|
|
161
|
+
rl.close();
|
|
162
|
+
process.exit(0);
|
|
75
163
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
console.log(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
result.discoveredTargets.slice(0, 3).forEach((target, index) => {
|
|
89
|
-
console.log(` ${index + 1}. ${target.gene} - ${target.evidenceLevel} 证据等级`);
|
|
90
|
-
console.log(` 相关癌症: ${target.cancerTypes.join(', ')}`);
|
|
91
|
-
});
|
|
92
|
-
console.log('✅ 药物靶点发现完成');
|
|
164
|
+
if (trimmed === '/help' || trimmed === 'help') {
|
|
165
|
+
printInteractiveHelp();
|
|
166
|
+
prompt();
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (trimmed === '/clear') {
|
|
170
|
+
console.clear();
|
|
171
|
+
printBanner();
|
|
172
|
+
conversationHistory = [];
|
|
173
|
+
console.log(`${colors.dim}Conversation cleared.${colors.reset}`);
|
|
174
|
+
prompt();
|
|
175
|
+
return;
|
|
93
176
|
}
|
|
94
|
-
|
|
95
|
-
|
|
177
|
+
await processInput(trimmed);
|
|
178
|
+
prompt();
|
|
179
|
+
});
|
|
180
|
+
rl.on('close', () => {
|
|
181
|
+
process.exit(0);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async function processInput(input) {
|
|
185
|
+
// Slash commands
|
|
186
|
+
if (input.startsWith('/')) {
|
|
187
|
+
const parts = input.slice(1).split(' ');
|
|
188
|
+
const cmd = parts[0];
|
|
189
|
+
const args = parts.slice(1);
|
|
190
|
+
switch (cmd) {
|
|
191
|
+
case 'analyze':
|
|
192
|
+
await analyzePatient(args[0] || 'P001', args.includes('--genomics'));
|
|
193
|
+
return;
|
|
194
|
+
case 'plan':
|
|
195
|
+
await designTreatmentPlan(args[0] || 'P001', args[1]);
|
|
196
|
+
return;
|
|
197
|
+
case 'discover':
|
|
198
|
+
await discoverTargets(args[0] || 'EGFR', args[1] || 'Lung');
|
|
199
|
+
return;
|
|
200
|
+
case 'demo':
|
|
201
|
+
await runDemo();
|
|
202
|
+
return;
|
|
203
|
+
case 'version':
|
|
204
|
+
console.log(`\n${colors.cyan}cure${colors.reset} v${VERSION} (${XAI_MODEL})`);
|
|
205
|
+
return;
|
|
206
|
+
case 'model':
|
|
207
|
+
console.log(`\n${colors.cyan}Model:${colors.reset} ${XAI_MODEL}`);
|
|
208
|
+
console.log(`${colors.cyan}API:${colors.reset} ${process.env.XAI_API_KEY ? 'Connected' : 'Not configured'}`);
|
|
209
|
+
return;
|
|
210
|
+
default:
|
|
211
|
+
console.log(`\n${colors.red}Unknown command: /${cmd}${colors.reset}`);
|
|
212
|
+
console.log(`${colors.dim}Type /help for available commands.${colors.reset}`);
|
|
213
|
+
return;
|
|
96
214
|
}
|
|
97
215
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
216
|
+
// AI-powered response for natural language
|
|
217
|
+
console.log(`\n${colors.dim}Thinking...${colors.reset}`);
|
|
218
|
+
const response = await callXAI(input);
|
|
219
|
+
console.log(`\n${response}`);
|
|
220
|
+
}
|
|
221
|
+
async function analyzePatient(patientId, includeGenomics = false) {
|
|
222
|
+
console.log(`\n${colors.cyan}Analyzing patient ${patientId}...${colors.reset}\n`);
|
|
223
|
+
try {
|
|
224
|
+
const result = await cancerTreatment.analyzePatient(patientId, includeGenomics);
|
|
225
|
+
console.log(`${colors.bold}Patient Analysis${colors.reset}`);
|
|
226
|
+
console.log(`${colors.dim}─────────────────────────────${colors.reset}`);
|
|
227
|
+
console.log(` Cancer Type: ${colors.yellow}${result.analysis.cancerType}${colors.reset}`);
|
|
228
|
+
console.log(` Stage: ${colors.yellow}${result.analysis.stage}${colors.reset}`);
|
|
229
|
+
console.log(` Biomarkers: ${result.analysis.biomarkers.join(', ')}`);
|
|
230
|
+
console.log(` Survival Prob: ${colors.green}${(result.analysis.riskAssessment.survivalProbability * 100).toFixed(1)}%${colors.reset}`);
|
|
231
|
+
console.log(` Recurrence: ${colors.yellow}${(result.analysis.riskAssessment.recurrenceRisk * 100).toFixed(1)}%${colors.reset}`);
|
|
232
|
+
if (result.analysis.genomicProfile) {
|
|
233
|
+
console.log(`\n${colors.bold}Genomic Profile${colors.reset}`);
|
|
234
|
+
console.log(` Mutations: ${result.analysis.genomicProfile.mutations?.length || 0} detected`);
|
|
104
235
|
}
|
|
105
|
-
|
|
106
|
-
|
|
236
|
+
console.log(`\n${colors.green}✓ Analysis complete${colors.reset}`);
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
console.error(`${colors.red}✗ Analysis failed:${colors.reset}`, error);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
async function designTreatmentPlan(patientId, protocolId) {
|
|
243
|
+
console.log(`\n${colors.cyan}Designing treatment plan for ${patientId}...${colors.reset}\n`);
|
|
244
|
+
try {
|
|
245
|
+
const result = await cancerTreatment.designTreatmentPlan(patientId, protocolId);
|
|
246
|
+
console.log(`${colors.bold}Treatment Plan${colors.reset}`);
|
|
247
|
+
console.log(`${colors.dim}─────────────────────────────${colors.reset}`);
|
|
248
|
+
console.log(` Protocol: ${colors.yellow}${result.plan.protocol.name}${colors.reset}`);
|
|
249
|
+
console.log(` Modalities: ${result.plan.protocol.treatmentModalities.join(', ')}`);
|
|
250
|
+
console.log(` Est. Efficacy: ${colors.green}${(result.estimatedEfficacy * 100).toFixed(1)}%${colors.reset}`);
|
|
251
|
+
console.log(` Duration: ${result.plan.treatmentTimeline.length} weeks`);
|
|
252
|
+
console.log(`\n${colors.bold}Timeline${colors.reset}`);
|
|
253
|
+
result.plan.treatmentTimeline.slice(0, 4).forEach((week, i) => {
|
|
254
|
+
console.log(` Week ${i + 1}: ${week.phase} - ${week.activities.join(', ')}`);
|
|
255
|
+
});
|
|
256
|
+
if (result.plan.treatmentTimeline.length > 4) {
|
|
257
|
+
console.log(` ${colors.dim}... and ${result.plan.treatmentTimeline.length - 4} more weeks${colors.reset}`);
|
|
107
258
|
}
|
|
259
|
+
console.log(`\n${colors.green}✓ Plan generated${colors.reset}`);
|
|
108
260
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
console.log(
|
|
118
|
-
console.log(
|
|
119
|
-
console.log(
|
|
120
|
-
console.log(
|
|
121
|
-
console.log(
|
|
122
|
-
console.log(
|
|
123
|
-
|
|
261
|
+
catch (error) {
|
|
262
|
+
console.error(`${colors.red}✗ Plan generation failed:${colors.reset}`, error);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
async function discoverTargets(gene, cancerType) {
|
|
266
|
+
console.log(`\n${colors.cyan}Discovering drug targets for ${gene} in ${cancerType} cancer...${colors.reset}\n`);
|
|
267
|
+
try {
|
|
268
|
+
const result = await cancerTreatment.discoverDrugTargets(cancerType, gene);
|
|
269
|
+
console.log(`${colors.bold}Drug Target Discovery${colors.reset}`);
|
|
270
|
+
console.log(`${colors.dim}─────────────────────────────${colors.reset}`);
|
|
271
|
+
console.log(` Cancer Type: ${colors.yellow}${result.cancerType}${colors.reset}`);
|
|
272
|
+
console.log(` Target Gene: ${colors.yellow}${result.targetGene || 'All'}${colors.reset}`);
|
|
273
|
+
console.log(` Targets Found: ${result.discoveredTargets.length}`);
|
|
274
|
+
console.log(`\n${colors.bold}Top Targets${colors.reset}`);
|
|
275
|
+
result.discoveredTargets.slice(0, 5).forEach((target, i) => {
|
|
276
|
+
console.log(` ${i + 1}. ${colors.cyan}${target.gene}${colors.reset} - ${target.evidenceLevel} evidence`);
|
|
277
|
+
console.log(` ${colors.dim}Cancers: ${target.cancerTypes.slice(0, 3).join(', ')}${colors.reset}`);
|
|
278
|
+
});
|
|
279
|
+
console.log(`\n${colors.green}✓ Discovery complete${colors.reset}`);
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
console.error(`${colors.red}✗ Discovery failed:${colors.reset}`, error);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
async function runDemo() {
|
|
286
|
+
console.log(`\n${colors.cyan}Running framework demo...${colors.reset}\n`);
|
|
287
|
+
try {
|
|
288
|
+
const { demonstrateCancerTreatmentFramework } = await import('../examples/cancerTreatmentDemo.js');
|
|
289
|
+
await demonstrateCancerTreatmentFramework();
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
console.error(`${colors.red}✗ Demo failed:${colors.reset}`, error);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
async function handleCommand(args) {
|
|
296
|
+
cancerTreatment = new CancerTreatmentCapabilityModule();
|
|
297
|
+
if (args.includes('--analyze-patient')) {
|
|
298
|
+
const patientId = args.find(a => a.startsWith('--patient='))?.split('=')[1] || 'P001';
|
|
299
|
+
await analyzePatient(patientId, args.includes('--genomics'));
|
|
300
|
+
}
|
|
301
|
+
else if (args.includes('--treatment-plan')) {
|
|
302
|
+
const patientId = args.find(a => a.startsWith('--patient='))?.split('=')[1] || 'P001';
|
|
303
|
+
const protocolId = args.find(a => a.startsWith('--protocol='))?.split('=')[1];
|
|
304
|
+
await designTreatmentPlan(patientId, protocolId);
|
|
305
|
+
}
|
|
306
|
+
else if (args.includes('--drug-discovery')) {
|
|
307
|
+
const gene = args.find(a => a.startsWith('--target='))?.split('=')[1] || 'EGFR';
|
|
308
|
+
const cancer = args.find(a => a.startsWith('--cancer='))?.split('=')[1] || 'Lung';
|
|
309
|
+
await discoverTargets(gene, cancer);
|
|
310
|
+
}
|
|
311
|
+
else if (args.includes('--demo')) {
|
|
312
|
+
await runDemo();
|
|
124
313
|
}
|
|
125
314
|
else {
|
|
126
|
-
console.log(
|
|
315
|
+
console.log(`${colors.red}Unknown command.${colors.reset} Use cure --help for usage.`);
|
|
127
316
|
process.exit(1);
|
|
128
317
|
}
|
|
129
318
|
}
|
|
319
|
+
function printBanner() {
|
|
320
|
+
console.log(`
|
|
321
|
+
${colors.cyan}${colors.bold} ╔═══════════════════════════════════════════════════════════╗
|
|
322
|
+
║ ║
|
|
323
|
+
║ ██████╗██╗ ██╗██████╗ ███████╗ ║
|
|
324
|
+
║ ██╔════╝██║ ██║██╔══██╗██╔════╝ ║
|
|
325
|
+
║ ██║ ██║ ██║██████╔╝█████╗ ║
|
|
326
|
+
║ ██║ ██║ ██║██╔══██╗██╔══╝ ║
|
|
327
|
+
║ ╚██████╗╚██████╔╝██║ ██║███████╗ ║
|
|
328
|
+
║ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ║
|
|
329
|
+
║ ║
|
|
330
|
+
║ AI Cancer Treatment Framework ║
|
|
331
|
+
║ Powered by xAI Grok ${XAI_MODEL} ║
|
|
332
|
+
║ ║
|
|
333
|
+
╚═══════════════════════════════════════════════════════════╝${colors.reset}
|
|
334
|
+
|
|
335
|
+
${colors.dim}v${VERSION}${colors.reset}
|
|
336
|
+
`);
|
|
337
|
+
}
|
|
338
|
+
function printInteractiveHelp() {
|
|
339
|
+
console.log(`
|
|
340
|
+
${colors.bold}Commands${colors.reset}
|
|
341
|
+
${colors.dim}─────────────────────────────${colors.reset}
|
|
342
|
+
${colors.cyan}/analyze${colors.reset} [patient] Analyze patient data
|
|
343
|
+
${colors.cyan}/plan${colors.reset} [patient] Design treatment plan
|
|
344
|
+
${colors.cyan}/discover${colors.reset} [gene] Drug target discovery
|
|
345
|
+
${colors.cyan}/demo${colors.reset} Run framework demo
|
|
346
|
+
${colors.cyan}/model${colors.reset} Show AI model info
|
|
347
|
+
${colors.cyan}/clear${colors.reset} Clear conversation
|
|
348
|
+
${colors.cyan}/help${colors.reset} Show this help
|
|
349
|
+
${colors.cyan}/exit${colors.reset} Exit
|
|
350
|
+
|
|
351
|
+
${colors.bold}AI Chat${colors.reset}
|
|
352
|
+
${colors.dim}─────────────────────────────${colors.reset}
|
|
353
|
+
Just type naturally to chat with the AI oncologist:
|
|
354
|
+
|
|
355
|
+
"What are the treatment options for EGFR+ lung cancer?"
|
|
356
|
+
"Explain pembrolizumab mechanism of action"
|
|
357
|
+
"What biomarkers predict response to immunotherapy?"
|
|
358
|
+
"Compare osimertinib vs erlotinib for EGFR mutations"
|
|
359
|
+
`);
|
|
360
|
+
}
|
|
130
361
|
function printHelp() {
|
|
131
362
|
console.log(`
|
|
132
|
-
|
|
363
|
+
${colors.bold}Cure - AI Cancer Treatment Framework${colors.reset}
|
|
364
|
+
Powered by xAI ${XAI_MODEL}
|
|
365
|
+
|
|
366
|
+
${colors.bold}Usage:${colors.reset}
|
|
367
|
+
cure Launch interactive AI chat
|
|
368
|
+
cure [command] Run a specific command
|
|
133
369
|
|
|
134
|
-
|
|
135
|
-
|
|
370
|
+
${colors.bold}Commands:${colors.reset}
|
|
371
|
+
--analyze-patient Analyze patient data
|
|
372
|
+
--treatment-plan Design treatment plan
|
|
373
|
+
--drug-discovery Drug target discovery
|
|
374
|
+
--demo Run framework demo
|
|
375
|
+
--help, -h Show this help
|
|
376
|
+
--version, -v Show version
|
|
136
377
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
--help, -h 显示此帮助信息
|
|
144
|
-
--version, -v 显示版本信息
|
|
378
|
+
${colors.bold}Options:${colors.reset}
|
|
379
|
+
--patient=<id> Patient ID (default: P001)
|
|
380
|
+
--protocol=<id> Treatment protocol
|
|
381
|
+
--genomics Include genomic analysis
|
|
382
|
+
--target=<gene> Target gene (default: EGFR)
|
|
383
|
+
--cancer=<type> Cancer type (default: Lung)
|
|
145
384
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
--protocol=<id> 治疗协议ID
|
|
149
|
-
--genomics 包含基因组数据分析
|
|
150
|
-
--target=<gene> 目标基因 (默认: EGFR)
|
|
151
|
-
--cancer=<type> 癌症类型 (默认: Lung)
|
|
385
|
+
${colors.bold}Environment:${colors.reset}
|
|
386
|
+
XAI_API_KEY xAI API key for AI-powered responses
|
|
152
387
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
agi --drug-discovery --target=EGFR --cancer=Lung
|
|
158
|
-
agi --demo
|
|
388
|
+
${colors.bold}Examples:${colors.reset}
|
|
389
|
+
cure
|
|
390
|
+
cure --analyze-patient --patient=P001 --genomics
|
|
391
|
+
cure --drug-discovery --target=BRAF --cancer=Melanoma
|
|
159
392
|
|
|
160
|
-
|
|
161
|
-
📚 文档: 查看项目目录中的 README.md
|
|
393
|
+
${colors.dim}https://npmjs.com/package/@erosolaraijs/cure${colors.reset}
|
|
162
394
|
`);
|
|
163
395
|
}
|
|
164
|
-
// Run main function
|
|
165
396
|
main().catch((error) => {
|
|
166
|
-
console.error(
|
|
397
|
+
console.error(`${colors.red}Error:${colors.reset}`, error);
|
|
167
398
|
process.exit(1);
|
|
168
399
|
});
|
|
169
400
|
//# sourceMappingURL=cure.js.map
|
package/dist/bin/cure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cure.js","sourceRoot":"","sources":["../../src/bin/cure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cure.js","sourceRoot":"","sources":["../../src/bin/cure.ts"],"names":[],"mappings":"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"}
|