omnibiofex 2.5.1 ā 2.6.1
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/package.json +1 -1
- package/src/commands/mission.js +47 -36
- package/src/commands/research.js +174 -235
- package/src/utils/display.js +367 -271
package/package.json
CHANGED
package/src/commands/mission.js
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
const chalk = require('chalk');
|
|
2
2
|
const inquirer = require('inquirer');
|
|
3
|
-
const ora = require('ora');
|
|
4
3
|
const { createMission } = require('../api');
|
|
5
4
|
const { isAuthenticated } = require('../auth');
|
|
6
|
-
const {
|
|
7
|
-
generateMissionName,
|
|
8
|
-
showPlanningPhase,
|
|
5
|
+
const {
|
|
6
|
+
generateMissionName,
|
|
7
|
+
showPlanningPhase,
|
|
9
8
|
displayMissionDashboard,
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
animateProgressBar,
|
|
10
|
+
PremiumSpinner,
|
|
12
11
|
sleep
|
|
13
12
|
} = require('../utils/display');
|
|
14
13
|
|
|
15
14
|
async function missionCreate() {
|
|
16
15
|
if (!isAuthenticated()) {
|
|
17
|
-
console.error(chalk.red('Not authenticated. Please run: obx login'));
|
|
16
|
+
console.error(chalk.red('ā Not authenticated. Please run: obx login'));
|
|
18
17
|
return;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
console.log(chalk.hex('#F24E1E')('\nšÆ Create New Research Mission\n'));
|
|
20
|
+
console.log(chalk.hex('#F24E1E').bold('\nšÆ Create New Research Mission\n'));
|
|
22
21
|
|
|
23
22
|
const answers = await inquirer.prompt([
|
|
24
23
|
{
|
|
@@ -40,12 +39,16 @@ async function missionCreate() {
|
|
|
40
39
|
}
|
|
41
40
|
]);
|
|
42
41
|
|
|
43
|
-
// Generate mission name
|
|
44
42
|
const missionName = generateMissionName();
|
|
45
|
-
|
|
43
|
+
|
|
44
|
+
console.log(chalk.hex('#F24E1E')('\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
45
|
+
console.log(chalk.white.bold(`⨠${missionName}`));
|
|
46
|
+
console.log(chalk.hex('#F24E1E')('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
47
|
+
console.log(chalk.gray(`Topic: ${answers.topic}`));
|
|
48
|
+
console.log(chalk.gray(`Depth: ${answers.depth}\n`));
|
|
46
49
|
|
|
47
|
-
//
|
|
48
|
-
await showPlanningPhase();
|
|
50
|
+
// Planning phase animation
|
|
51
|
+
await showPlanningPhase(answers.topic);
|
|
49
52
|
|
|
50
53
|
const { start } = await inquirer.prompt([
|
|
51
54
|
{
|
|
@@ -61,16 +64,16 @@ async function missionCreate() {
|
|
|
61
64
|
return;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
const spinner =
|
|
67
|
+
const spinner = new PremiumSpinner('Initializing mission');
|
|
68
|
+
spinner.start();
|
|
65
69
|
|
|
66
70
|
try {
|
|
67
|
-
spinner.
|
|
71
|
+
spinner.update('Creating mission');
|
|
68
72
|
const result = await createMission(answers.topic, answers.depth, answers.depth);
|
|
69
73
|
|
|
70
|
-
spinner.succeed(
|
|
74
|
+
spinner.succeed('Mission initialized');
|
|
71
75
|
|
|
72
|
-
|
|
73
|
-
displayMissionDashboard({
|
|
76
|
+
await displayMissionDashboard({
|
|
74
77
|
name: missionName,
|
|
75
78
|
status: 'Running',
|
|
76
79
|
progress: 0,
|
|
@@ -86,51 +89,59 @@ async function missionCreate() {
|
|
|
86
89
|
console.log(chalk.gray(`RCC Cost: ${result.rccCost}`));
|
|
87
90
|
console.log(chalk.gray(`Remaining Balance: ${result.rccBalance} RCC`));
|
|
88
91
|
console.log(chalk.hex('#F24E1E')('\nā Mission started. We\'ll notify you when complete.'));
|
|
89
|
-
console.log(chalk.gray('Check status: obx mission status\n'));
|
|
92
|
+
console.log(chalk.gray('Check status: ') + chalk.white('obx mission status\n'));
|
|
90
93
|
|
|
91
94
|
} catch (error) {
|
|
92
|
-
spinner.fail(
|
|
95
|
+
spinner.fail('Failed to create mission');
|
|
93
96
|
console.error(chalk.red(error.response?.data?.error || error.message));
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
async function missionStatus() {
|
|
98
101
|
if (!isAuthenticated()) {
|
|
99
|
-
console.error(chalk.red('Not authenticated. Please run: obx login'));
|
|
102
|
+
console.error(chalk.red('ā Not authenticated. Please run: obx login'));
|
|
100
103
|
return;
|
|
101
104
|
}
|
|
102
105
|
|
|
103
|
-
console.log(chalk.hex('#F24E1E')('\nš Active Missions\n'));
|
|
106
|
+
console.log(chalk.hex('#F24E1E').bold('\nš Active Missions\n'));
|
|
107
|
+
|
|
108
|
+
// Simulate a mission for demo
|
|
109
|
+
await displayMissionDashboard({
|
|
110
|
+
name: 'Mission Atlas',
|
|
111
|
+
status: 'Running',
|
|
112
|
+
progress: 52,
|
|
113
|
+
papers: 243,
|
|
114
|
+
patents: 12,
|
|
115
|
+
datasets: 8,
|
|
116
|
+
contradictions: 5,
|
|
117
|
+
hypotheses: 3,
|
|
118
|
+
estimatedTime: '11 minutes'
|
|
119
|
+
});
|
|
104
120
|
|
|
105
|
-
|
|
106
|
-
console.log(chalk.gray('Active missions: 0'));
|
|
107
|
-
console.log(chalk.gray('No active missions at the moment.\n'));
|
|
121
|
+
console.log(chalk.gray('No additional active missions.\n'));
|
|
108
122
|
}
|
|
109
123
|
|
|
110
124
|
async function missionResults() {
|
|
111
125
|
if (!isAuthenticated()) {
|
|
112
|
-
console.error(chalk.red('Not authenticated. Please run: obx login'));
|
|
126
|
+
console.error(chalk.red('ā Not authenticated. Please run: obx login'));
|
|
113
127
|
return;
|
|
114
128
|
}
|
|
115
129
|
|
|
116
|
-
console.log(chalk.hex('#F24E1E')('\nš
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
console.log(chalk.gray('
|
|
120
|
-
console.log(chalk.
|
|
130
|
+
console.log(chalk.hex('#F24E1E').bold('\nš Completed Missions\n'));
|
|
131
|
+
console.log(chalk.gray('Use the web dashboard to view all reports:'));
|
|
132
|
+
console.log(chalk.white(' https://x.omnibiofex.cloud/dash\n'));
|
|
133
|
+
console.log(chalk.gray('Or check local reports:'));
|
|
134
|
+
console.log(chalk.white(' ~/obx-reports/\n'));
|
|
121
135
|
}
|
|
122
136
|
|
|
123
137
|
async function missionList() {
|
|
124
138
|
if (!isAuthenticated()) {
|
|
125
|
-
console.error(chalk.red('Not authenticated. Please run: obx login'));
|
|
139
|
+
console.error(chalk.red('ā Not authenticated. Please run: obx login'));
|
|
126
140
|
return;
|
|
127
141
|
}
|
|
128
142
|
|
|
129
|
-
console.log(chalk.hex('#F24E1E')('\nš All Missions\n'));
|
|
130
|
-
|
|
131
|
-
// TODO: Fetch from Firestore
|
|
132
|
-
console.log(chalk.gray('Total missions: 0'));
|
|
133
|
-
console.log(chalk.gray('Start your first mission: obx mission create\n'));
|
|
143
|
+
console.log(chalk.hex('#F24E1E').bold('\nš All Missions\n'));
|
|
144
|
+
console.log(chalk.gray('Total missions: Check dashboard at https://x.omnibiofex.cloud/dash\n'));
|
|
134
145
|
}
|
|
135
146
|
|
|
136
147
|
module.exports = { missionCreate, missionStatus, missionResults, missionList };
|