@lanonasis/cli 3.6.3 ā 3.6.5
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/commands/api-keys.d.ts +1 -2
- package/dist/commands/api-keys.js +78 -73
- package/dist/commands/auth.js +167 -160
- package/dist/commands/completion.js +39 -31
- package/dist/commands/config.js +201 -162
- package/dist/commands/enhanced-memory.js +17 -11
- package/dist/commands/guide.js +88 -79
- package/dist/commands/init.js +20 -14
- package/dist/commands/mcp.js +173 -142
- package/dist/commands/memory.js +83 -77
- package/dist/commands/organization.js +21 -15
- package/dist/commands/topics.js +58 -52
- package/dist/core/achievements.js +26 -19
- package/dist/core/architecture.js +59 -42
- package/dist/core/dashboard.js +81 -71
- package/dist/core/error-handler.js +39 -30
- package/dist/core/power-mode.js +53 -46
- package/dist/core/progress.js +44 -35
- package/dist/core/welcome.js +64 -56
- package/dist/enhanced-cli.js +58 -49
- package/dist/index-simple.js +112 -74
- package/dist/index.js +68 -63
- package/dist/mcp/access-control.js +17 -13
- package/dist/mcp/client/enhanced-client.js +23 -16
- package/dist/mcp/enhanced-server.js +14 -10
- package/dist/mcp/logger.js +6 -2
- package/dist/mcp/memory-state.js +17 -13
- package/dist/mcp/schemas/tool-schemas.d.ts +28 -28
- package/dist/mcp/schemas/tool-schemas.js +126 -122
- package/dist/mcp/server/lanonasis-server.js +51 -44
- package/dist/mcp/transports/transport-manager.js +25 -18
- package/dist/mcp/vector-store.js +10 -6
- package/dist/mcp-server.js +21 -17
- package/dist/utils/api.js +30 -21
- package/dist/utils/config.js +61 -15
- package/dist/utils/formatting.js +14 -6
- package/dist/utils/mcp-client.js +132 -77
- package/package.json +17 -92
- package/dist/completions/bash-completion.sh +0 -88
- package/dist/completions/fish-completion.fish +0 -132
- package/dist/completions/zsh-completion.zsh +0 -196
package/dist/core/welcome.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Welcome and Onboarding Experience
|
|
3
4
|
* Provides first-time user experience and guided setup
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.InteractiveSetup = exports.WelcomeExperience = void 0;
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
13
|
+
const boxen_1 = __importDefault(require("boxen"));
|
|
14
|
+
const ora_1 = __importDefault(require("ora"));
|
|
15
|
+
class WelcomeExperience {
|
|
10
16
|
stateManager;
|
|
11
17
|
isFirstRun = false;
|
|
12
18
|
constructor(stateManager) {
|
|
@@ -18,8 +24,8 @@ export class WelcomeExperience {
|
|
|
18
24
|
await this.handleMenuChoice(choice);
|
|
19
25
|
}
|
|
20
26
|
displayWelcomeBanner() {
|
|
21
|
-
const banner =
|
|
22
|
-
|
|
27
|
+
const banner = (0, boxen_1.default)(chalk_1.default.bold.blue('š§ Welcome to Onasis Memory Service\n') +
|
|
28
|
+
chalk_1.default.cyan(' Your Knowledge, Amplified'), {
|
|
23
29
|
padding: 2,
|
|
24
30
|
margin: 1,
|
|
25
31
|
borderStyle: 'round',
|
|
@@ -32,7 +38,7 @@ export class WelcomeExperience {
|
|
|
32
38
|
async showMainMenu() {
|
|
33
39
|
const newUserOptions = [
|
|
34
40
|
{
|
|
35
|
-
name:
|
|
41
|
+
name: chalk_1.default.green.bold('[āµ] Start Interactive Setup') + chalk_1.default.gray(' (Recommended)'),
|
|
36
42
|
value: 'setup',
|
|
37
43
|
short: 'Setup'
|
|
38
44
|
},
|
|
@@ -54,7 +60,7 @@ export class WelcomeExperience {
|
|
|
54
60
|
];
|
|
55
61
|
const existingUserOptions = [
|
|
56
62
|
{
|
|
57
|
-
name:
|
|
63
|
+
name: chalk_1.default.bold('[āµ] Continue to Dashboard'),
|
|
58
64
|
value: 'dashboard',
|
|
59
65
|
short: 'Dashboard'
|
|
60
66
|
},
|
|
@@ -71,7 +77,7 @@ export class WelcomeExperience {
|
|
|
71
77
|
];
|
|
72
78
|
const isAuthenticated = await this.checkAuthentication();
|
|
73
79
|
const choices = isAuthenticated ? existingUserOptions : newUserOptions;
|
|
74
|
-
const { choice } = await
|
|
80
|
+
const { choice } = await inquirer_1.default.prompt([
|
|
75
81
|
{
|
|
76
82
|
type: 'list',
|
|
77
83
|
name: 'choice',
|
|
@@ -121,26 +127,26 @@ export class WelcomeExperience {
|
|
|
121
127
|
});
|
|
122
128
|
}
|
|
123
129
|
showDocumentation() {
|
|
124
|
-
console.log(
|
|
125
|
-
'Online Docs: ' +
|
|
126
|
-
'Quick Start: ' +
|
|
127
|
-
'API Reference: ' +
|
|
128
|
-
|
|
130
|
+
console.log((0, boxen_1.default)(chalk_1.default.bold('š Documentation\n\n') +
|
|
131
|
+
'Online Docs: ' + chalk_1.default.cyan('https://docs.lanonasis.com/cli\n') +
|
|
132
|
+
'Quick Start: ' + chalk_1.default.cyan('https://docs.lanonasis.com/quickstart\n') +
|
|
133
|
+
'API Reference: ' + chalk_1.default.cyan('https://api.lanonasis.com/docs\n\n') +
|
|
134
|
+
chalk_1.default.dim('Press any key to continue...'), {
|
|
129
135
|
padding: 1,
|
|
130
136
|
borderStyle: 'single',
|
|
131
137
|
borderColor: 'gray'
|
|
132
138
|
}));
|
|
133
139
|
}
|
|
134
140
|
showAbout() {
|
|
135
|
-
console.log(
|
|
141
|
+
console.log((0, boxen_1.default)(chalk_1.default.bold('š§ About Onasis Memory Service\n\n') +
|
|
136
142
|
'Onasis is an enterprise-grade Memory as a Service platform that:\n\n' +
|
|
137
|
-
' ⢠' +
|
|
138
|
-
' ⢠' +
|
|
139
|
-
' ⢠' +
|
|
140
|
-
' ⢠' +
|
|
143
|
+
' ⢠' + chalk_1.default.green('Captures') + ' and organizes your knowledge\n' +
|
|
144
|
+
' ⢠' + chalk_1.default.blue('Searches') + ' with AI-powered semantic understanding\n' +
|
|
145
|
+
' ⢠' + chalk_1.default.magenta('Integrates') + ' with your existing tools\n' +
|
|
146
|
+
' ⢠' + chalk_1.default.yellow('Scales') + ' from personal to enterprise use\n\n' +
|
|
141
147
|
'Built for developers, teams, and organizations who want to\n' +
|
|
142
148
|
'transform information into actionable intelligence.\n\n' +
|
|
143
|
-
|
|
149
|
+
chalk_1.default.dim('Learn more at lanonasis.com'), {
|
|
144
150
|
padding: 1,
|
|
145
151
|
borderStyle: 'double',
|
|
146
152
|
borderColor: 'cyan'
|
|
@@ -148,10 +154,10 @@ export class WelcomeExperience {
|
|
|
148
154
|
}
|
|
149
155
|
async showSettings() {
|
|
150
156
|
// Settings implementation
|
|
151
|
-
console.log(
|
|
157
|
+
console.log(chalk_1.default.yellow('Settings panel coming soon...'));
|
|
152
158
|
}
|
|
153
159
|
showHelp() {
|
|
154
|
-
console.log(
|
|
160
|
+
console.log(chalk_1.default.cyan('š” Tip: You can always type "help" for assistance'));
|
|
155
161
|
}
|
|
156
162
|
async checkAuthentication() {
|
|
157
163
|
// Check if user is authenticated
|
|
@@ -159,10 +165,11 @@ export class WelcomeExperience {
|
|
|
159
165
|
return !!context.userId;
|
|
160
166
|
}
|
|
161
167
|
}
|
|
168
|
+
exports.WelcomeExperience = WelcomeExperience;
|
|
162
169
|
/**
|
|
163
170
|
* Interactive Setup Flow
|
|
164
171
|
*/
|
|
165
|
-
|
|
172
|
+
class InteractiveSetup {
|
|
166
173
|
stateManager;
|
|
167
174
|
setupProgress = {
|
|
168
175
|
connection: false,
|
|
@@ -202,10 +209,10 @@ export class InteractiveSetup {
|
|
|
202
209
|
{ name: 'Ready!', done: this.setupProgress.ready }
|
|
203
210
|
];
|
|
204
211
|
console.clear();
|
|
205
|
-
console.log(
|
|
212
|
+
console.log((0, boxen_1.default)('Setup Progress\n' +
|
|
206
213
|
steps.map((step, i) => {
|
|
207
214
|
const num = `[${i + 1}]`;
|
|
208
|
-
const name = step.done ?
|
|
215
|
+
const name = step.done ? chalk_1.default.green(step.name) : chalk_1.default.gray(step.name);
|
|
209
216
|
return `${num} ${name}`;
|
|
210
217
|
}).join(' ') + '\n' +
|
|
211
218
|
this.renderProgressBar(steps), {
|
|
@@ -222,29 +229,29 @@ export class InteractiveSetup {
|
|
|
222
229
|
const barLength = 40;
|
|
223
230
|
const filled = Math.round((completed / total) * barLength);
|
|
224
231
|
const bar = 'ā'.repeat(filled) + 'ā'.repeat(barLength - filled);
|
|
225
|
-
return
|
|
232
|
+
return chalk_1.default.cyan(bar) + ' ' + chalk_1.default.bold(`${percentage}%`);
|
|
226
233
|
}
|
|
227
234
|
async setupConnection() {
|
|
228
|
-
console.log(
|
|
235
|
+
console.log(chalk_1.default.bold.blue('š Step 1: Connection Setup'));
|
|
229
236
|
console.log("Let's connect to your Onasis service\n");
|
|
230
|
-
const { connectionType } = await
|
|
237
|
+
const { connectionType } = await inquirer_1.default.prompt([
|
|
231
238
|
{
|
|
232
239
|
type: 'list',
|
|
233
240
|
name: 'connectionType',
|
|
234
241
|
message: 'Where is your Onasis service hosted?',
|
|
235
242
|
choices: [
|
|
236
243
|
{
|
|
237
|
-
name: 'āļø Cloud (api.lanonasis.com)' +
|
|
244
|
+
name: 'āļø Cloud (api.lanonasis.com)' + chalk_1.default.gray(' ā Recommended for most users'),
|
|
238
245
|
value: 'cloud',
|
|
239
246
|
short: 'Cloud'
|
|
240
247
|
},
|
|
241
248
|
{
|
|
242
|
-
name: 'š¢ Self-hosted' +
|
|
249
|
+
name: 'š¢ Self-hosted' + chalk_1.default.gray(' Enter your server URL'),
|
|
243
250
|
value: 'self-hosted',
|
|
244
251
|
short: 'Self-hosted'
|
|
245
252
|
},
|
|
246
253
|
{
|
|
247
|
-
name: 'š» Local development' +
|
|
254
|
+
name: 'š» Local development' + chalk_1.default.gray(' Use localhost:3000'),
|
|
248
255
|
value: 'local',
|
|
249
256
|
short: 'Local'
|
|
250
257
|
}
|
|
@@ -253,7 +260,7 @@ export class InteractiveSetup {
|
|
|
253
260
|
]);
|
|
254
261
|
let serverUrl = 'https://api.lanonasis.com';
|
|
255
262
|
if (connectionType === 'self-hosted') {
|
|
256
|
-
const { customUrl } = await
|
|
263
|
+
const { customUrl } = await inquirer_1.default.prompt([
|
|
257
264
|
{
|
|
258
265
|
type: 'input',
|
|
259
266
|
name: 'customUrl',
|
|
@@ -273,7 +280,7 @@ export class InteractiveSetup {
|
|
|
273
280
|
serverUrl = 'http://localhost:3000';
|
|
274
281
|
}
|
|
275
282
|
// Test connection
|
|
276
|
-
const spinner =
|
|
283
|
+
const spinner = (0, ora_1.default)('Testing connection...').start();
|
|
277
284
|
await this.simulateDelay(1500);
|
|
278
285
|
spinner.succeed('Connection successful!');
|
|
279
286
|
// Save to state
|
|
@@ -282,14 +289,14 @@ export class InteractiveSetup {
|
|
|
282
289
|
});
|
|
283
290
|
}
|
|
284
291
|
async setupAuthentication() {
|
|
285
|
-
console.log(
|
|
292
|
+
console.log(chalk_1.default.bold.blue('\nš Step 2: Authentication'));
|
|
286
293
|
console.log('Choose how you\'d like to connect:\n');
|
|
287
294
|
const authBox = (title, description, features) => {
|
|
288
|
-
return
|
|
289
|
-
|
|
290
|
-
features.map(f =>
|
|
295
|
+
return chalk_1.default.bold(title) + '\n' +
|
|
296
|
+
chalk_1.default.gray(description) + '\n' +
|
|
297
|
+
features.map(f => chalk_1.default.dim(` āŖ ${f}`)).join('\n');
|
|
291
298
|
};
|
|
292
|
-
const { authMethod } = await
|
|
299
|
+
const { authMethod } = await inquirer_1.default.prompt([
|
|
293
300
|
{
|
|
294
301
|
type: 'list',
|
|
295
302
|
name: 'authMethod',
|
|
@@ -327,7 +334,7 @@ export class InteractiveSetup {
|
|
|
327
334
|
}
|
|
328
335
|
}
|
|
329
336
|
async authenticateWithVendorKey() {
|
|
330
|
-
const { vendorKey } = await
|
|
337
|
+
const { vendorKey } = await inquirer_1.default.prompt([
|
|
331
338
|
{
|
|
332
339
|
type: 'password',
|
|
333
340
|
name: 'vendorKey',
|
|
@@ -342,7 +349,7 @@ export class InteractiveSetup {
|
|
|
342
349
|
}
|
|
343
350
|
]);
|
|
344
351
|
void vendorKey; // collected for future use when hooking real auth
|
|
345
|
-
const spinner =
|
|
352
|
+
const spinner = (0, ora_1.default)('Authenticating...').start();
|
|
346
353
|
await this.simulateDelay(1000);
|
|
347
354
|
spinner.succeed('Authentication successful!');
|
|
348
355
|
this.stateManager.updateUserContext({
|
|
@@ -351,9 +358,9 @@ export class InteractiveSetup {
|
|
|
351
358
|
});
|
|
352
359
|
}
|
|
353
360
|
async authenticateWithBrowser() {
|
|
354
|
-
console.log(
|
|
355
|
-
console.log(
|
|
356
|
-
const spinner =
|
|
361
|
+
console.log(chalk_1.default.cyan('\nš Opening browser for authentication...'));
|
|
362
|
+
console.log(chalk_1.default.gray('Please complete the login in your browser'));
|
|
363
|
+
const spinner = (0, ora_1.default)('Waiting for browser authentication...').start();
|
|
357
364
|
await this.simulateDelay(3000);
|
|
358
365
|
spinner.succeed('Browser authentication successful!');
|
|
359
366
|
this.stateManager.updateUserContext({
|
|
@@ -362,7 +369,7 @@ export class InteractiveSetup {
|
|
|
362
369
|
});
|
|
363
370
|
}
|
|
364
371
|
async authenticateWithEmail() {
|
|
365
|
-
const auth = await
|
|
372
|
+
const auth = await inquirer_1.default.prompt([
|
|
366
373
|
{
|
|
367
374
|
type: 'input',
|
|
368
375
|
name: 'email',
|
|
@@ -382,7 +389,7 @@ export class InteractiveSetup {
|
|
|
382
389
|
mask: '*'
|
|
383
390
|
}
|
|
384
391
|
]);
|
|
385
|
-
const spinner =
|
|
392
|
+
const spinner = (0, ora_1.default)('Signing in...').start();
|
|
386
393
|
await this.simulateDelay(1000);
|
|
387
394
|
spinner.succeed('Sign in successful!');
|
|
388
395
|
this.stateManager.updateUserContext({
|
|
@@ -391,9 +398,9 @@ export class InteractiveSetup {
|
|
|
391
398
|
});
|
|
392
399
|
}
|
|
393
400
|
async setupConfiguration() {
|
|
394
|
-
console.log(
|
|
401
|
+
console.log(chalk_1.default.bold.blue('\nāļø Step 3: Configuration'));
|
|
395
402
|
console.log("Let's personalize your experience\n");
|
|
396
|
-
const answers = await
|
|
403
|
+
const answers = await inquirer_1.default.prompt([
|
|
397
404
|
{
|
|
398
405
|
type: 'list',
|
|
399
406
|
name: 'outputFormat',
|
|
@@ -426,22 +433,22 @@ export class InteractiveSetup {
|
|
|
426
433
|
// Update preferences
|
|
427
434
|
const currentPrefs = this.stateManager.getPreferences();
|
|
428
435
|
Object.assign(currentPrefs, preferences);
|
|
429
|
-
console.log(
|
|
436
|
+
console.log(chalk_1.default.green('\nā Configuration saved!'));
|
|
430
437
|
}
|
|
431
438
|
async showSetupComplete() {
|
|
432
|
-
console.log(
|
|
439
|
+
console.log((0, boxen_1.default)(chalk_1.default.green.bold('š Setup Complete!\n\n') +
|
|
433
440
|
'Your Onasis CLI is ready to use.\n\n' +
|
|
434
|
-
|
|
435
|
-
' ' +
|
|
436
|
-
' ' +
|
|
437
|
-
' ' +
|
|
438
|
-
|
|
441
|
+
chalk_1.default.bold('Quick Commands:\n') +
|
|
442
|
+
' ' + chalk_1.default.cyan('onasis memory create') + ' - Create a new memory\n' +
|
|
443
|
+
' ' + chalk_1.default.cyan('onasis search "query"') + ' - Search your memories\n' +
|
|
444
|
+
' ' + chalk_1.default.cyan('onasis help') + ' - Show all commands\n\n' +
|
|
445
|
+
chalk_1.default.dim('Press Enter to continue to the dashboard...'), {
|
|
439
446
|
padding: 1,
|
|
440
447
|
borderStyle: 'double',
|
|
441
448
|
borderColor: 'green',
|
|
442
449
|
textAlignment: 'center'
|
|
443
450
|
}));
|
|
444
|
-
await
|
|
451
|
+
await inquirer_1.default.prompt([
|
|
445
452
|
{
|
|
446
453
|
type: 'input',
|
|
447
454
|
name: 'continue',
|
|
@@ -453,3 +460,4 @@ export class InteractiveSetup {
|
|
|
453
460
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
454
461
|
}
|
|
455
462
|
}
|
|
463
|
+
exports.InteractiveSetup = InteractiveSetup;
|
package/dist/enhanced-cli.js
CHANGED
|
@@ -1,35 +1,46 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
2
3
|
/**
|
|
3
4
|
* Enhanced CLI Entry Point
|
|
4
5
|
* Integrates all the enhanced experience components
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.progressIndicator = exports.achievementSystem = exports.errorHandler = exports.stateManager = exports.architecture = void 0;
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const dotenv_1 = require("dotenv");
|
|
15
|
+
const architecture_js_1 = require("./core/architecture.js");
|
|
16
|
+
const welcome_js_1 = require("./core/welcome.js");
|
|
17
|
+
const dashboard_js_1 = require("./core/dashboard.js");
|
|
18
|
+
const error_handler_js_1 = require("./core/error-handler.js");
|
|
19
|
+
const power_mode_js_1 = require("./core/power-mode.js");
|
|
20
|
+
const achievements_js_1 = require("./core/achievements.js");
|
|
21
|
+
const progress_js_1 = require("./core/progress.js");
|
|
22
|
+
const config_js_1 = require("./utils/config.js");
|
|
17
23
|
// Load environment variables
|
|
18
|
-
config();
|
|
24
|
+
(0, dotenv_1.config)();
|
|
19
25
|
// Initialize the enhanced architecture
|
|
20
|
-
const architecture = createCLIArchitecture();
|
|
26
|
+
const architecture = (0, architecture_js_1.createCLIArchitecture)();
|
|
27
|
+
exports.architecture = architecture;
|
|
21
28
|
const { stateManager } = architecture;
|
|
29
|
+
exports.stateManager = stateManager;
|
|
22
30
|
// Initialize systems
|
|
23
|
-
const errorHandler = new ErrorHandler(stateManager);
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
31
|
+
const errorHandler = new error_handler_js_1.ErrorHandler(stateManager);
|
|
32
|
+
exports.errorHandler = errorHandler;
|
|
33
|
+
const errorBoundary = new error_handler_js_1.ErrorBoundary(errorHandler);
|
|
34
|
+
const achievementSystem = new achievements_js_1.AchievementSystem(stateManager);
|
|
35
|
+
exports.achievementSystem = achievementSystem;
|
|
36
|
+
const progressIndicator = new progress_js_1.ProgressIndicator();
|
|
37
|
+
exports.progressIndicator = progressIndicator;
|
|
38
|
+
const cliConfig = new config_js_1.CLIConfig();
|
|
28
39
|
// Create the main program
|
|
29
|
-
const program = new Command();
|
|
40
|
+
const program = new commander_1.Command();
|
|
30
41
|
program
|
|
31
42
|
.name('onasis')
|
|
32
|
-
.description(
|
|
43
|
+
.description(chalk_1.default.cyan('š§ Onasis Memory Service - Enhanced CLI Experience'))
|
|
33
44
|
.version('2.0.0', '-v, --version', 'display version number')
|
|
34
45
|
.option('-V, --verbose', 'enable verbose logging')
|
|
35
46
|
.option('--api-url <url>', 'override API URL')
|
|
@@ -42,7 +53,7 @@ program
|
|
|
42
53
|
.command('init')
|
|
43
54
|
.description('Initialize and configure Onasis CLI')
|
|
44
55
|
.action(errorBoundary.wrapAsync(async () => {
|
|
45
|
-
const welcome = new WelcomeExperience(stateManager);
|
|
56
|
+
const welcome = new welcome_js_1.WelcomeExperience(stateManager);
|
|
46
57
|
await welcome.show();
|
|
47
58
|
}));
|
|
48
59
|
// Interactive dashboard command
|
|
@@ -51,7 +62,7 @@ program
|
|
|
51
62
|
.alias('home')
|
|
52
63
|
.description('Open the interactive command center')
|
|
53
64
|
.action(errorBoundary.wrapAsync(async () => {
|
|
54
|
-
const dashboard = new DashboardCommandCenter(stateManager);
|
|
65
|
+
const dashboard = new dashboard_js_1.DashboardCommandCenter(stateManager);
|
|
55
66
|
await dashboard.show();
|
|
56
67
|
}));
|
|
57
68
|
// Power mode for expert users
|
|
@@ -60,7 +71,7 @@ program
|
|
|
60
71
|
.alias('expert')
|
|
61
72
|
.description('Enter power user mode for streamlined operations')
|
|
62
73
|
.action(errorBoundary.wrapAsync(async () => {
|
|
63
|
-
const powerMode = new PowerUserMode(stateManager);
|
|
74
|
+
const powerMode = new power_mode_js_1.PowerUserMode(stateManager);
|
|
64
75
|
await powerMode.enter();
|
|
65
76
|
}));
|
|
66
77
|
// Enhanced memory commands with progress and feedback
|
|
@@ -92,7 +103,7 @@ program
|
|
|
92
103
|
else {
|
|
93
104
|
await progressIndicator.withSpinner(async () => {
|
|
94
105
|
// Create memory logic here
|
|
95
|
-
console.log(
|
|
106
|
+
console.log(chalk_1.default.green('ā Memory created successfully'));
|
|
96
107
|
}, 'Creating memory...');
|
|
97
108
|
}
|
|
98
109
|
break;
|
|
@@ -107,12 +118,12 @@ program
|
|
|
107
118
|
case 'list':
|
|
108
119
|
await progressIndicator.withSpinner(async () => {
|
|
109
120
|
// List memories logic
|
|
110
|
-
console.log(
|
|
121
|
+
console.log(chalk_1.default.cyan('Memories listed'));
|
|
111
122
|
}, 'Loading memories...');
|
|
112
123
|
break;
|
|
113
124
|
default: {
|
|
114
125
|
// If no action specified, go to interactive mode
|
|
115
|
-
const dashboard = new DashboardCommandCenter(stateManager);
|
|
126
|
+
const dashboard = new dashboard_js_1.DashboardCommandCenter(stateManager);
|
|
116
127
|
await dashboard.show();
|
|
117
128
|
break;
|
|
118
129
|
}
|
|
@@ -140,19 +151,19 @@ program
|
|
|
140
151
|
]);
|
|
141
152
|
name = topicName;
|
|
142
153
|
}
|
|
143
|
-
console.log(
|
|
154
|
+
console.log(chalk_1.default.green(`ā Topic "${name}" created`));
|
|
144
155
|
break;
|
|
145
156
|
case 'list':
|
|
146
|
-
console.log(
|
|
157
|
+
console.log(chalk_1.default.bold('š Topics:'));
|
|
147
158
|
console.log(' ⢠Architecture');
|
|
148
159
|
console.log(' ⢠API Documentation');
|
|
149
160
|
console.log(' ⢠Meeting Notes');
|
|
150
161
|
break;
|
|
151
162
|
case 'delete':
|
|
152
|
-
console.log(
|
|
163
|
+
console.log(chalk_1.default.red(`ā Topic "${name}" deleted`));
|
|
153
164
|
break;
|
|
154
165
|
default:
|
|
155
|
-
console.log(
|
|
166
|
+
console.log(chalk_1.default.yellow('Usage: onasis topic [create|list|delete] [name]'));
|
|
156
167
|
}
|
|
157
168
|
}));
|
|
158
169
|
// Achievement system
|
|
@@ -184,15 +195,15 @@ program
|
|
|
184
195
|
if (!key) {
|
|
185
196
|
// Show all settings
|
|
186
197
|
const prefs = stateManager.getPreferences();
|
|
187
|
-
console.log(
|
|
198
|
+
console.log(chalk_1.default.bold('āļø Settings:\n'));
|
|
188
199
|
Object.entries(prefs).forEach(([k, v]) => {
|
|
189
|
-
console.log(` ${
|
|
200
|
+
console.log(` ${chalk_1.default.cyan(k)}: ${v}`);
|
|
190
201
|
});
|
|
191
202
|
}
|
|
192
203
|
else if (value !== undefined) {
|
|
193
204
|
// Set a value
|
|
194
205
|
stateManager.updatePreference(key, value);
|
|
195
|
-
console.log(
|
|
206
|
+
console.log(chalk_1.default.green(`ā ${key} set to ${value}`));
|
|
196
207
|
}
|
|
197
208
|
else {
|
|
198
209
|
// Get a value
|
|
@@ -211,16 +222,16 @@ program
|
|
|
211
222
|
cmd.outputHelp();
|
|
212
223
|
}
|
|
213
224
|
else {
|
|
214
|
-
console.log(
|
|
225
|
+
console.log(chalk_1.default.red(`Command "${command}" not found`));
|
|
215
226
|
}
|
|
216
227
|
}
|
|
217
228
|
else {
|
|
218
|
-
console.log(
|
|
229
|
+
console.log(chalk_1.default.bold.cyan('\nš§ Onasis Memory Service - Enhanced CLI\n'));
|
|
219
230
|
console.log('Available commands:\n');
|
|
220
231
|
program.commands.forEach(cmd => {
|
|
221
232
|
const name = cmd.name().padEnd(15);
|
|
222
233
|
const desc = cmd.description();
|
|
223
|
-
console.log(` ${
|
|
234
|
+
console.log(` ${chalk_1.default.cyan(name)} ${desc}`);
|
|
224
235
|
});
|
|
225
236
|
console.log('\nFor detailed help: onasis help [command]');
|
|
226
237
|
console.log('Interactive mode: onasis (no arguments)');
|
|
@@ -237,11 +248,11 @@ program
|
|
|
237
248
|
// Check API connection
|
|
238
249
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
239
250
|
}, 'Checking service status...');
|
|
240
|
-
console.log(
|
|
241
|
-
console.log(
|
|
242
|
-
console.log(
|
|
243
|
-
console.log(
|
|
244
|
-
console.log(
|
|
251
|
+
console.log(chalk_1.default.green('ā Service: Online'));
|
|
252
|
+
console.log(chalk_1.default.green('ā API: Connected'));
|
|
253
|
+
console.log(chalk_1.default.green('ā Auth: Valid'));
|
|
254
|
+
console.log(chalk_1.default.cyan(' Endpoint: api.lanonasis.com'));
|
|
255
|
+
console.log(chalk_1.default.cyan(' Version: 2.0.0'));
|
|
245
256
|
}));
|
|
246
257
|
// Default action - show interactive dashboard if no command
|
|
247
258
|
if (process.argv.length === 2) {
|
|
@@ -250,11 +261,11 @@ if (process.argv.length === 2) {
|
|
|
250
261
|
// Check if first run
|
|
251
262
|
const isFirstRun = !(await cliConfig.isAuthenticated());
|
|
252
263
|
if (isFirstRun) {
|
|
253
|
-
const welcome = new WelcomeExperience(stateManager);
|
|
264
|
+
const welcome = new welcome_js_1.WelcomeExperience(stateManager);
|
|
254
265
|
await welcome.show();
|
|
255
266
|
}
|
|
256
267
|
else {
|
|
257
|
-
const dashboard = new DashboardCommandCenter(stateManager);
|
|
268
|
+
const dashboard = new dashboard_js_1.DashboardCommandCenter(stateManager);
|
|
258
269
|
await dashboard.show();
|
|
259
270
|
}
|
|
260
271
|
}
|
|
@@ -272,11 +283,11 @@ else {
|
|
|
272
283
|
const options = program.opts();
|
|
273
284
|
if (options.verbose) {
|
|
274
285
|
process.env.CLI_VERBOSE = 'true';
|
|
275
|
-
console.log(
|
|
286
|
+
console.log(chalk_1.default.dim('Verbose mode enabled'));
|
|
276
287
|
}
|
|
277
288
|
if (options.apiUrl) {
|
|
278
289
|
process.env.MEMORY_API_URL = options.apiUrl;
|
|
279
|
-
console.log(
|
|
290
|
+
console.log(chalk_1.default.dim(`API URL set to: ${options.apiUrl}`));
|
|
280
291
|
}
|
|
281
292
|
if (options.output) {
|
|
282
293
|
stateManager.updatePreference('outputFormat', options.output);
|
|
@@ -287,13 +298,11 @@ if (options.noAnimations) {
|
|
|
287
298
|
if (options.expert) {
|
|
288
299
|
// Start directly in power mode
|
|
289
300
|
(async () => {
|
|
290
|
-
const powerMode = new PowerUserMode(stateManager);
|
|
301
|
+
const powerMode = new power_mode_js_1.PowerUserMode(stateManager);
|
|
291
302
|
await powerMode.enter();
|
|
292
303
|
})();
|
|
293
304
|
}
|
|
294
305
|
if (options.offline) {
|
|
295
306
|
process.env.CLI_OFFLINE = 'true';
|
|
296
|
-
console.log(
|
|
307
|
+
console.log(chalk_1.default.yellow('ā Running in offline mode'));
|
|
297
308
|
}
|
|
298
|
-
// Export for testing and extension
|
|
299
|
-
export { architecture, stateManager, errorHandler, achievementSystem, progressIndicator };
|