omnibiofex 2.8.5 ā 4.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.
- package/bin/obx +41 -154
- package/package.json +13 -28
- package/src/auth.js +181 -381
- package/src/commands/account.js +35 -88
- package/src/commands/data.js +40 -114
- package/src/commands/debug.js +28 -25
- package/src/commands/diagram.js +340 -0
- package/src/commands/earnings.js +31 -86
- package/src/commands/mission.js +194 -98
- package/src/commands/morning.js +39 -107
- package/src/commands/open.js +26 -36
- package/src/commands/publish.js +81 -126
- package/src/commands/research.js +148 -281
- package/src/commands/timeline.js +15 -54
- package/src/firebase.js +4 -14
- package/src/user.js +94 -0
- package/src/utils/display.js +27 -856
- package/src/api.js +0 -72
- package/src/config.js +0 -16
package/bin/obx
CHANGED
|
@@ -6,204 +6,91 @@ const figlet = require('figlet');
|
|
|
6
6
|
const path = require('path');
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
const packageJson = JSON.parse(
|
|
11
|
-
fs.readFileSync(path.join(__dirname, '../package.json'), 'utf8')
|
|
12
|
-
);
|
|
9
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../package.json'), 'utf8'));
|
|
13
10
|
const VERSION = packageJson.version;
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
console.log(
|
|
17
|
-
chalk.hex('#F24E1E')(
|
|
18
|
-
figlet.textSync('OmniBioFex X', { horizontalLayout: 'full' })
|
|
19
|
-
)
|
|
20
|
-
);
|
|
12
|
+
console.log(chalk.hex('#F24E1E')(figlet.textSync('OmniBioFex X', { horizontalLayout: 'full' })));
|
|
21
13
|
console.log(chalk.gray(`The Autonomous Research Operating System v${VERSION}\n`));
|
|
22
14
|
console.log(chalk.hex('#F24E1E')('Create Research. Publish It. Earn From It.\n'));
|
|
23
15
|
|
|
24
|
-
// Global error handler
|
|
25
16
|
process.on('unhandledRejection', (error) => {
|
|
26
17
|
console.error(chalk.red('\nā Error:'), error.message);
|
|
27
18
|
process.exit(1);
|
|
28
19
|
});
|
|
29
20
|
|
|
30
|
-
|
|
31
|
-
program
|
|
32
|
-
.name('obx')
|
|
33
|
-
.version(VERSION, '-v, --version', 'Show CLI version')
|
|
34
|
-
.description('OmniBioFex X - The Autonomous Research Operating System');
|
|
21
|
+
program.name('obx').version(VERSION, '-v, --version', 'Show CLI version').description('OmniBioFex X');
|
|
35
22
|
|
|
36
|
-
// ==================== AUTHENTICATION ====================
|
|
37
23
|
const { login, logout } = require('../src/auth');
|
|
24
|
+
program.command('login').description('Sign in with Google').action(login);
|
|
25
|
+
program.command('logout').description('Sign out').action(logout);
|
|
38
26
|
|
|
39
|
-
program
|
|
40
|
-
.command('login')
|
|
41
|
-
.description('Authenticate with your OmniBioFex X account')
|
|
42
|
-
.action(login);
|
|
43
|
-
|
|
44
|
-
program
|
|
45
|
-
.command('logout')
|
|
46
|
-
.description('Sign out of your account')
|
|
47
|
-
.action(logout);
|
|
48
|
-
|
|
49
|
-
// ==================== MISSION COMMANDS ====================
|
|
50
27
|
const { missionCreate, missionStatus, missionResults, missionList } = require('../src/commands/mission');
|
|
51
|
-
|
|
52
|
-
program
|
|
53
|
-
.command('mission')
|
|
54
|
-
.description('Manage research missions')
|
|
55
|
-
.argument('<action>', 'create | status | results | list')
|
|
28
|
+
program.command('mission').description('Manage missions').argument('<action>', 'create | status | results | list')
|
|
56
29
|
.action(async (action) => {
|
|
57
30
|
switch (action) {
|
|
58
|
-
case 'create':
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
case '
|
|
62
|
-
|
|
63
|
-
break;
|
|
64
|
-
case 'results':
|
|
65
|
-
await missionResults();
|
|
66
|
-
break;
|
|
67
|
-
case 'list':
|
|
68
|
-
await missionList();
|
|
69
|
-
break;
|
|
70
|
-
default:
|
|
71
|
-
console.error(chalk.red('Unknown action. Use: create, status, results, or list'));
|
|
31
|
+
case 'create': await missionCreate(); break;
|
|
32
|
+
case 'status': await missionStatus(); break;
|
|
33
|
+
case 'results': await missionResults(); break;
|
|
34
|
+
case 'list': await missionList(); break;
|
|
35
|
+
default: console.error(chalk.red('Use: create, status, results, or list')); process.exit(1);
|
|
72
36
|
}
|
|
73
37
|
});
|
|
74
38
|
|
|
75
|
-
// ==================== RESEARCH COMMANDS ====================
|
|
76
39
|
const { literatureReview, paper, compare, gaps, hypothesis } = require('../src/commands/research');
|
|
40
|
+
program.command('literature').description('Literature review').argument('<topic>').action(literatureReview);
|
|
41
|
+
program.command('paper').description('Analyze paper').argument('<file>').action(paper);
|
|
42
|
+
program.command('compare').description('Compare papers').arguments('<files...>').action(compare);
|
|
43
|
+
program.command('gaps').description('Discover gaps').argument('<topic>').action(gaps);
|
|
44
|
+
program.command('hypothesis').description('Generate hypotheses').argument('<topic>').action(hypothesis);
|
|
77
45
|
|
|
78
|
-
program
|
|
79
|
-
.command('literature')
|
|
80
|
-
.description('Generate literature review')
|
|
81
|
-
.argument('<topic>', 'Research topic')
|
|
82
|
-
.action(literatureReview);
|
|
83
|
-
|
|
84
|
-
program
|
|
85
|
-
.command('paper')
|
|
86
|
-
.description('Analyze a research paper')
|
|
87
|
-
.argument('<file>', 'PDF file path')
|
|
88
|
-
.action(paper);
|
|
89
|
-
|
|
90
|
-
program
|
|
91
|
-
.command('compare')
|
|
92
|
-
.description('Compare multiple papers')
|
|
93
|
-
.arguments('<files...>')
|
|
94
|
-
.action(compare);
|
|
95
|
-
|
|
96
|
-
program
|
|
97
|
-
.command('gaps')
|
|
98
|
-
.description('Discover research gaps')
|
|
99
|
-
.argument('<topic>', 'Research topic')
|
|
100
|
-
.action(gaps);
|
|
101
|
-
|
|
102
|
-
program
|
|
103
|
-
.command('hypothesis')
|
|
104
|
-
.description('Generate research hypotheses')
|
|
105
|
-
.argument('<topic>', 'Research topic')
|
|
106
|
-
.action(hypothesis);
|
|
107
|
-
|
|
108
|
-
// ==================== TIMELINE COMMAND ====================
|
|
109
46
|
const { timeline } = require('../src/commands/timeline');
|
|
47
|
+
program.command('timeline').description('Research timeline').argument('<topic>').action(timeline);
|
|
48
|
+
|
|
49
|
+
// ==================== DIAGRAM COMMAND ====================
|
|
50
|
+
const { diagram } = require('../src/commands/diagram');
|
|
110
51
|
|
|
111
52
|
program
|
|
112
|
-
.command('
|
|
113
|
-
.description('
|
|
53
|
+
.command('diagram')
|
|
54
|
+
.description('š Generate ASCII research ecosystem diagrams')
|
|
114
55
|
.argument('<topic>', 'Research topic')
|
|
115
|
-
.
|
|
56
|
+
.option('--style <style>', 'Diagram style: minimal, detailed, flowchart, network', 'detailed')
|
|
57
|
+
.option('--save', 'Save diagram to file')
|
|
58
|
+
.option('--publish', 'Save and prepare for publishing')
|
|
59
|
+
.action(async (topic, options) => {
|
|
60
|
+
await diagram(topic, options);
|
|
61
|
+
});
|
|
116
62
|
|
|
117
63
|
// ==================== DATA COMMANDS ====================
|
|
118
64
|
const { dataset, code } = require('../src/commands/data');
|
|
65
|
+
program.command('dataset').description('Analyze dataset').argument('<file>').action(dataset);
|
|
66
|
+
program.command('code').description('Review code').argument('[directory]', '.').action(code);
|
|
119
67
|
|
|
120
|
-
program
|
|
121
|
-
.command('dataset')
|
|
122
|
-
.description('Analyze dataset')
|
|
123
|
-
.argument('<file>', 'CSV/Excel file path')
|
|
124
|
-
.action(dataset);
|
|
125
|
-
|
|
126
|
-
program
|
|
127
|
-
.command('code')
|
|
128
|
-
.description('Review code repository')
|
|
129
|
-
.argument('[directory]', 'Directory path', '.')
|
|
130
|
-
.action(code);
|
|
131
|
-
|
|
132
|
-
// ==================== PUBLISH & EARN COMMANDS ====================
|
|
133
68
|
const { publish } = require('../src/commands/publish');
|
|
134
69
|
const { earnings } = require('../src/commands/earnings');
|
|
70
|
+
program.command('publish').description('Publish research').argument('[mission-id]').action(publish);
|
|
71
|
+
program.command('earnings').description('View earnings').action(earnings);
|
|
135
72
|
|
|
136
|
-
program
|
|
137
|
-
.command('publish')
|
|
138
|
-
.description('š¤ Publish research and start earning')
|
|
139
|
-
.argument('[mission-id]', 'Mission ID to publish')
|
|
140
|
-
.action(publish);
|
|
141
|
-
|
|
142
|
-
program
|
|
143
|
-
.command('earnings')
|
|
144
|
-
.description('š° View your earnings dashboard')
|
|
145
|
-
.action(earnings);
|
|
146
|
-
|
|
147
|
-
// ==================== MORNING COMMAND ====================
|
|
148
73
|
const { morning } = require('../src/commands/morning');
|
|
74
|
+
program.command('morning').description('Daily briefing').action(morning);
|
|
149
75
|
|
|
150
|
-
program
|
|
151
|
-
.command('morning')
|
|
152
|
-
.description('āļø Get daily research briefing')
|
|
153
|
-
.action(morning);
|
|
154
|
-
|
|
155
|
-
// ==================== OPEN COMMANDS ====================
|
|
156
76
|
const { openPage } = require('../src/commands/open');
|
|
77
|
+
program.command('open').description('Open pages').argument('[page]').action(openPage);
|
|
78
|
+
program.command('dashboard').description('Open dashboard').action(() => openPage('dashboard'));
|
|
79
|
+
program.command('earn').description('Open earn page').action(() => openPage('earn'));
|
|
157
80
|
|
|
158
|
-
program
|
|
159
|
-
.command('open')
|
|
160
|
-
.description('š Open OmniBioFex X pages in browser')
|
|
161
|
-
.argument('[page]', 'Page to open (dashboard, earn, pricing, agents, etc.)')
|
|
162
|
-
.action(openPage);
|
|
163
|
-
|
|
164
|
-
program
|
|
165
|
-
.command('dashboard')
|
|
166
|
-
.description('š Open web dashboard')
|
|
167
|
-
.action(() => openPage('dashboard'));
|
|
168
|
-
|
|
169
|
-
program
|
|
170
|
-
.command('earn')
|
|
171
|
-
.description('š° Open earn page')
|
|
172
|
-
.action(() => openPage('earn'));
|
|
173
|
-
|
|
174
|
-
// ==================== ACCOUNT COMMANDS ====================
|
|
175
81
|
const { credits, usage, buy } = require('../src/commands/account');
|
|
82
|
+
program.command('credits').description('Check balance').action(credits);
|
|
83
|
+
program.command('usage').description('View usage').action(usage);
|
|
84
|
+
program.command('buy').description('Purchase credits').action(buy);
|
|
176
85
|
|
|
177
|
-
program
|
|
178
|
-
.command('credits')
|
|
179
|
-
.description('Check your RCC balance')
|
|
180
|
-
.action(credits);
|
|
181
|
-
|
|
182
|
-
program
|
|
183
|
-
.command('usage')
|
|
184
|
-
.description('View usage statistics')
|
|
185
|
-
.action(usage);
|
|
186
|
-
|
|
187
|
-
program
|
|
188
|
-
.command('buy')
|
|
189
|
-
.description('Open browser to purchase credits')
|
|
190
|
-
.action(buy);
|
|
191
|
-
|
|
192
|
-
// ==================== DEBUG COMMAND ====================
|
|
193
86
|
const { debug } = require('../src/commands/debug');
|
|
87
|
+
program.command('debug').description('Debug auth').action(debug);
|
|
194
88
|
|
|
195
|
-
program
|
|
196
|
-
.command('debug')
|
|
197
|
-
.description('Debug authentication and token status')
|
|
198
|
-
.action(debug);
|
|
199
|
-
|
|
200
|
-
// Parse arguments
|
|
201
89
|
program.parse(process.argv);
|
|
202
90
|
|
|
203
|
-
// Show help if no command provided
|
|
204
91
|
if (!process.argv.slice(2).length) {
|
|
205
92
|
console.log(chalk.hex('#F24E1E')('\nš QUICK START:\n'));
|
|
206
|
-
console.log(chalk.white(' obx login #
|
|
93
|
+
console.log(chalk.white(' obx login # Sign in with Google'));
|
|
207
94
|
console.log(chalk.white(' obx morning # Daily briefing'));
|
|
208
95
|
console.log(chalk.white(' obx mission create # Create research'));
|
|
209
96
|
console.log(chalk.white(' obx publish <mission-id> # Publish & earn'));
|
package/package.json
CHANGED
|
@@ -1,48 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnibiofex",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "OmniBioFex X - The Autonomous Research
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "OmniBioFex X - The Autonomous Research Operating System",
|
|
5
5
|
"main": "bin/obx",
|
|
6
6
|
"bin": {
|
|
7
7
|
"obx": "./bin/obx"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"
|
|
11
|
-
"test": "echo \"No tests yet\" && exit 0"
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
12
11
|
},
|
|
13
12
|
"keywords": [
|
|
13
|
+
"omnibiofex",
|
|
14
14
|
"ai",
|
|
15
15
|
"research",
|
|
16
|
-
"terminal",
|
|
17
16
|
"cli",
|
|
18
|
-
"autonomous"
|
|
19
|
-
"omnibiofex"
|
|
17
|
+
"autonomous"
|
|
20
18
|
],
|
|
21
|
-
"author":
|
|
22
|
-
"name": "OmniBioFex",
|
|
23
|
-
"email": "omnibiofexcloud@gmail.com",
|
|
24
|
-
"url": "https://x.omnibiofex.cloud"
|
|
25
|
-
},
|
|
19
|
+
"author": "OmniBioFex X",
|
|
26
20
|
"license": "MIT",
|
|
27
|
-
"homepage": "https://x.omnibiofex.cloud",
|
|
28
|
-
"engines": {
|
|
29
|
-
"node": ">=14.0.0"
|
|
30
|
-
},
|
|
31
21
|
"dependencies": {
|
|
32
|
-
"firebase": "^10.7.1",
|
|
33
|
-
"axios": "^1.6.2",
|
|
34
22
|
"chalk": "^4.1.2",
|
|
35
23
|
"commander": "^11.1.0",
|
|
36
|
-
"
|
|
37
|
-
"open": "^8.4.2",
|
|
38
|
-
"ora": "^5.4.1",
|
|
24
|
+
"conf": "^10.2.0",
|
|
39
25
|
"figlet": "^1.7.0",
|
|
40
|
-
"
|
|
26
|
+
"firebase": "^10.7.1",
|
|
27
|
+
"inquirer": "^8.2.6",
|
|
28
|
+
"open": "^8.4.2"
|
|
41
29
|
},
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
"README.md",
|
|
46
|
-
"LICENSE"
|
|
47
|
-
]
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=14.0.0"
|
|
32
|
+
}
|
|
48
33
|
}
|