@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.
Files changed (41) hide show
  1. package/dist/commands/api-keys.d.ts +1 -2
  2. package/dist/commands/api-keys.js +78 -73
  3. package/dist/commands/auth.js +167 -160
  4. package/dist/commands/completion.js +39 -31
  5. package/dist/commands/config.js +201 -162
  6. package/dist/commands/enhanced-memory.js +17 -11
  7. package/dist/commands/guide.js +88 -79
  8. package/dist/commands/init.js +20 -14
  9. package/dist/commands/mcp.js +173 -142
  10. package/dist/commands/memory.js +83 -77
  11. package/dist/commands/organization.js +21 -15
  12. package/dist/commands/topics.js +58 -52
  13. package/dist/core/achievements.js +26 -19
  14. package/dist/core/architecture.js +59 -42
  15. package/dist/core/dashboard.js +81 -71
  16. package/dist/core/error-handler.js +39 -30
  17. package/dist/core/power-mode.js +53 -46
  18. package/dist/core/progress.js +44 -35
  19. package/dist/core/welcome.js +64 -56
  20. package/dist/enhanced-cli.js +58 -49
  21. package/dist/index-simple.js +112 -74
  22. package/dist/index.js +68 -63
  23. package/dist/mcp/access-control.js +17 -13
  24. package/dist/mcp/client/enhanced-client.js +23 -16
  25. package/dist/mcp/enhanced-server.js +14 -10
  26. package/dist/mcp/logger.js +6 -2
  27. package/dist/mcp/memory-state.js +17 -13
  28. package/dist/mcp/schemas/tool-schemas.d.ts +28 -28
  29. package/dist/mcp/schemas/tool-schemas.js +126 -122
  30. package/dist/mcp/server/lanonasis-server.js +51 -44
  31. package/dist/mcp/transports/transport-manager.js +25 -18
  32. package/dist/mcp/vector-store.js +10 -6
  33. package/dist/mcp-server.js +21 -17
  34. package/dist/utils/api.js +30 -21
  35. package/dist/utils/config.js +61 -15
  36. package/dist/utils/formatting.js +14 -6
  37. package/dist/utils/mcp-client.js +132 -77
  38. package/package.json +17 -92
  39. package/dist/completions/bash-completion.sh +0 -88
  40. package/dist/completions/fish-completion.fish +0 -132
  41. package/dist/completions/zsh-completion.zsh +0 -196
@@ -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
- import chalk from 'chalk';
6
- import inquirer from 'inquirer';
7
- import boxen from 'boxen';
8
- import ora from 'ora';
9
- export class WelcomeExperience {
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 = boxen(chalk.bold.blue('🧠 Welcome to Onasis Memory Service\n') +
22
- chalk.cyan(' Your Knowledge, Amplified'), {
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: chalk.green.bold('[↵] Start Interactive Setup') + chalk.gray(' (Recommended)'),
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: chalk.bold('[↵] Continue to Dashboard'),
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 inquirer.prompt([
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(boxen(chalk.bold('šŸ“š Documentation\n\n') +
125
- 'Online Docs: ' + chalk.cyan('https://docs.lanonasis.com/cli\n') +
126
- 'Quick Start: ' + chalk.cyan('https://docs.lanonasis.com/quickstart\n') +
127
- 'API Reference: ' + chalk.cyan('https://api.lanonasis.com/docs\n\n') +
128
- chalk.dim('Press any key to continue...'), {
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(boxen(chalk.bold('🧠 About Onasis Memory Service\n\n') +
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
- ' • ' + chalk.green('Captures') + ' and organizes your knowledge\n' +
138
- ' • ' + chalk.blue('Searches') + ' with AI-powered semantic understanding\n' +
139
- ' • ' + chalk.magenta('Integrates') + ' with your existing tools\n' +
140
- ' • ' + chalk.yellow('Scales') + ' from personal to enterprise use\n\n' +
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
- chalk.dim('Learn more at lanonasis.com'), {
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(chalk.yellow('Settings panel coming soon...'));
157
+ console.log(chalk_1.default.yellow('Settings panel coming soon...'));
152
158
  }
153
159
  showHelp() {
154
- console.log(chalk.cyan('šŸ’” Tip: You can always type "help" for assistance'));
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
- export class InteractiveSetup {
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(boxen('Setup Progress\n' +
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 ? chalk.green(step.name) : chalk.gray(step.name);
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 chalk.cyan(bar) + ' ' + chalk.bold(`${percentage}%`);
232
+ return chalk_1.default.cyan(bar) + ' ' + chalk_1.default.bold(`${percentage}%`);
226
233
  }
227
234
  async setupConnection() {
228
- console.log(chalk.bold.blue('šŸ”— Step 1: Connection Setup'));
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 inquirer.prompt([
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)' + chalk.gray(' ← Recommended for most users'),
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' + chalk.gray(' Enter your server URL'),
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' + chalk.gray(' Use localhost:3000'),
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 inquirer.prompt([
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 = ora('Testing connection...').start();
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(chalk.bold.blue('\nšŸ” Step 2: Authentication'));
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 chalk.bold(title) + '\n' +
289
- chalk.gray(description) + '\n' +
290
- features.map(f => chalk.dim(` ā–Ŗ ${f}`)).join('\n');
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 inquirer.prompt([
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 inquirer.prompt([
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 = ora('Authenticating...').start();
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(chalk.cyan('\n🌐 Opening browser for authentication...'));
355
- console.log(chalk.gray('Please complete the login in your browser'));
356
- const spinner = ora('Waiting for browser authentication...').start();
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 inquirer.prompt([
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 = ora('Signing in...').start();
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(chalk.bold.blue('\nāš™ļø Step 3: Configuration'));
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 inquirer.prompt([
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(chalk.green('\nāœ“ Configuration saved!'));
436
+ console.log(chalk_1.default.green('\nāœ“ Configuration saved!'));
430
437
  }
431
438
  async showSetupComplete() {
432
- console.log(boxen(chalk.green.bold('šŸŽ‰ Setup Complete!\n\n') +
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
- chalk.bold('Quick Commands:\n') +
435
- ' ' + chalk.cyan('onasis memory create') + ' - Create a new memory\n' +
436
- ' ' + chalk.cyan('onasis search "query"') + ' - Search your memories\n' +
437
- ' ' + chalk.cyan('onasis help') + ' - Show all commands\n\n' +
438
- chalk.dim('Press Enter to continue to the dashboard...'), {
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 inquirer.prompt([
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;
@@ -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
- import { Command } from 'commander';
7
- import chalk from 'chalk';
8
- import { config } from 'dotenv';
9
- import { createCLIArchitecture } from './core/architecture.js';
10
- import { WelcomeExperience } from './core/welcome.js';
11
- import { DashboardCommandCenter } from './core/dashboard.js';
12
- import { ErrorHandler, ErrorBoundary } from './core/error-handler.js';
13
- import { PowerUserMode } from './core/power-mode.js';
14
- import { AchievementSystem } from './core/achievements.js';
15
- import { ProgressIndicator } from './core/progress.js';
16
- import { CLIConfig } from './utils/config.js';
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
- const errorBoundary = new ErrorBoundary(errorHandler);
25
- const achievementSystem = new AchievementSystem(stateManager);
26
- const progressIndicator = new ProgressIndicator();
27
- const cliConfig = new CLIConfig();
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(chalk.cyan('🧠 Onasis Memory Service - Enhanced CLI Experience'))
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(chalk.green('āœ“ Memory created successfully'));
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(chalk.cyan('Memories listed'));
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(chalk.green(`āœ“ Topic "${name}" created`));
154
+ console.log(chalk_1.default.green(`āœ“ Topic "${name}" created`));
144
155
  break;
145
156
  case 'list':
146
- console.log(chalk.bold('šŸ“ Topics:'));
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(chalk.red(`āœ“ Topic "${name}" deleted`));
163
+ console.log(chalk_1.default.red(`āœ“ Topic "${name}" deleted`));
153
164
  break;
154
165
  default:
155
- console.log(chalk.yellow('Usage: onasis topic [create|list|delete] [name]'));
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(chalk.bold('āš™ļø Settings:\n'));
198
+ console.log(chalk_1.default.bold('āš™ļø Settings:\n'));
188
199
  Object.entries(prefs).forEach(([k, v]) => {
189
- console.log(` ${chalk.cyan(k)}: ${v}`);
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(chalk.green(`āœ“ ${key} set to ${value}`));
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(chalk.red(`Command "${command}" not found`));
225
+ console.log(chalk_1.default.red(`Command "${command}" not found`));
215
226
  }
216
227
  }
217
228
  else {
218
- console.log(chalk.bold.cyan('\n🧠 Onasis Memory Service - Enhanced CLI\n'));
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(` ${chalk.cyan(name)} ${desc}`);
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(chalk.green('āœ“ Service: Online'));
241
- console.log(chalk.green('āœ“ API: Connected'));
242
- console.log(chalk.green('āœ“ Auth: Valid'));
243
- console.log(chalk.cyan(' Endpoint: api.lanonasis.com'));
244
- console.log(chalk.cyan(' Version: 2.0.0'));
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(chalk.dim('Verbose mode enabled'));
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(chalk.dim(`API URL set to: ${options.apiUrl}`));
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(chalk.yellow('⚠ Running in offline mode'));
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 };