vigthoria-cli 1.0.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.
Files changed (75) hide show
  1. package/README.md +413 -0
  2. package/dist/commands/auth.d.ts +24 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +194 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/chat.d.ts +64 -0
  7. package/dist/commands/chat.d.ts.map +1 -0
  8. package/dist/commands/chat.js +596 -0
  9. package/dist/commands/chat.js.map +1 -0
  10. package/dist/commands/config.d.ts +25 -0
  11. package/dist/commands/config.d.ts.map +1 -0
  12. package/dist/commands/config.js +291 -0
  13. package/dist/commands/config.js.map +1 -0
  14. package/dist/commands/edit.d.ts +28 -0
  15. package/dist/commands/edit.d.ts.map +1 -0
  16. package/dist/commands/edit.js +257 -0
  17. package/dist/commands/edit.js.map +1 -0
  18. package/dist/commands/explain.d.ts +21 -0
  19. package/dist/commands/explain.d.ts.map +1 -0
  20. package/dist/commands/explain.js +98 -0
  21. package/dist/commands/explain.js.map +1 -0
  22. package/dist/commands/generate.d.ts +25 -0
  23. package/dist/commands/generate.d.ts.map +1 -0
  24. package/dist/commands/generate.js +155 -0
  25. package/dist/commands/generate.js.map +1 -0
  26. package/dist/commands/review.d.ts +24 -0
  27. package/dist/commands/review.d.ts.map +1 -0
  28. package/dist/commands/review.js +153 -0
  29. package/dist/commands/review.js.map +1 -0
  30. package/dist/index.d.ts +16 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +205 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/utils/api.d.ts +88 -0
  35. package/dist/utils/api.d.ts.map +1 -0
  36. package/dist/utils/api.js +431 -0
  37. package/dist/utils/api.js.map +1 -0
  38. package/dist/utils/config.d.ts +57 -0
  39. package/dist/utils/config.d.ts.map +1 -0
  40. package/dist/utils/config.js +167 -0
  41. package/dist/utils/config.js.map +1 -0
  42. package/dist/utils/files.d.ts +31 -0
  43. package/dist/utils/files.d.ts.map +1 -0
  44. package/dist/utils/files.js +217 -0
  45. package/dist/utils/files.js.map +1 -0
  46. package/dist/utils/logger.d.ts +23 -0
  47. package/dist/utils/logger.d.ts.map +1 -0
  48. package/dist/utils/logger.js +104 -0
  49. package/dist/utils/logger.js.map +1 -0
  50. package/dist/utils/session.d.ts +61 -0
  51. package/dist/utils/session.d.ts.map +1 -0
  52. package/dist/utils/session.js +172 -0
  53. package/dist/utils/session.js.map +1 -0
  54. package/dist/utils/tools.d.ts +145 -0
  55. package/dist/utils/tools.d.ts.map +1 -0
  56. package/dist/utils/tools.js +781 -0
  57. package/dist/utils/tools.js.map +1 -0
  58. package/install.sh +248 -0
  59. package/package.json +52 -0
  60. package/src/commands/auth.ts +225 -0
  61. package/src/commands/chat.ts +690 -0
  62. package/src/commands/config.ts +297 -0
  63. package/src/commands/edit.ts +310 -0
  64. package/src/commands/explain.ts +115 -0
  65. package/src/commands/generate.ts +177 -0
  66. package/src/commands/review.ts +186 -0
  67. package/src/index.ts +221 -0
  68. package/src/types/marked-terminal.d.ts +31 -0
  69. package/src/utils/api.ts +531 -0
  70. package/src/utils/config.ts +224 -0
  71. package/src/utils/files.ts +212 -0
  72. package/src/utils/logger.ts +125 -0
  73. package/src/utils/session.ts +167 -0
  74. package/src/utils/tools.ts +933 -0
  75. package/tsconfig.json +20 -0
package/README.md ADDED
@@ -0,0 +1,413 @@
1
+ # Vigthoria CLI
2
+
3
+ AI-powered terminal coding assistant for Vigthoria Coder subscribers.
4
+
5
+ Similar to Claude Code, but integrated with Vigthoria's AI models and subscription system.
6
+
7
+ ```
8
+ ╔═══════════════════════════════════════════════════════════╗
9
+ ║ ║
10
+ ║ VIGTHORIA CLI - AI-Powered Coding Assistant ║
11
+ ║ ║
12
+ ╚═══════════════════════════════════════════════════════════╝
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - 🤖 **Interactive Chat** - Natural language coding assistance
18
+ - ✏️ **File Editing** - AI-powered code modifications with diff preview
19
+ - 🔧 **Code Generation** - Generate code from descriptions
20
+ - 📖 **Code Explanation** - Understand complex code
21
+ - 🐛 **Bug Fixing** - Automatic issue detection and fixing
22
+ - 📊 **Code Review** - Quality analysis and suggestions
23
+ - 🔐 **Secure Auth** - Integration with Vigthoria accounts
24
+ - 📦 **Project Context** - Understands your codebase
25
+
26
+ ## Installation
27
+
28
+ ### Quick Install (Recommended)
29
+
30
+ ```bash
31
+ curl -fsSL https://cli.vigthoria.io/install.sh | bash
32
+ ```
33
+
34
+ ### Manual Install
35
+
36
+ ```bash
37
+ # Clone from Vigthoria Market
38
+ git clone https://market.vigthoria.io/vigthoria/vigthoria-cli.git
39
+ cd vigthoria-cli
40
+
41
+ # Or from Vigthoria Community
42
+ git clone https://community.vigthoria.io/repos/vigthoria-cli.git
43
+ cd vigthoria-cli
44
+
45
+ # Install dependencies
46
+ npm install
47
+
48
+ # Build
49
+ npm run build
50
+
51
+ # Link globally
52
+ npm link
53
+ ```
54
+
55
+ ### npm Install
56
+
57
+ ```bash
58
+ npm install -g vigthoria-cli
59
+ ```
60
+
61
+ ## Quick Start
62
+
63
+ ### 1. Login
64
+
65
+ ```bash
66
+ vigthoria login
67
+ ```
68
+
69
+ Options:
70
+ - Email & Password
71
+ - API Token
72
+ - Browser OAuth
73
+
74
+ ### 2. Start Chatting
75
+
76
+ ```bash
77
+ vigthoria chat
78
+ # or
79
+ vig c
80
+ ```
81
+
82
+ ### 3. Edit Files
83
+
84
+ ```bash
85
+ vigthoria edit src/index.ts
86
+ # or
87
+ vig e src/index.ts
88
+ ```
89
+
90
+ ## Commands
91
+
92
+ ### Chat Mode
93
+
94
+ ```bash
95
+ vigthoria chat [options]
96
+
97
+ Options:
98
+ -m, --model <model> Select AI model (fast, mini, code, creative, pro, ultra)
99
+ -p, --project <path> Set project context path
100
+ ```
101
+
102
+ In chat mode, you can use these special commands:
103
+ - `/file <path>` - Add file to context
104
+ - `/edit <path>` - Switch to edit mode
105
+ - `/diff` - Show pending changes
106
+ - `/apply` - Apply pending changes
107
+ - `/model <name>` - Switch AI model
108
+ - `/clear` - Clear conversation
109
+ - `/help` - Show commands
110
+ - `/exit` - Exit chat
111
+
112
+ ### Edit File
113
+
114
+ ```bash
115
+ vigthoria edit <file> [options]
116
+
117
+ Options:
118
+ -i, --instruction <text> Editing instruction
119
+ -m, --model <model> Select AI model
120
+ ```
121
+
122
+ Example:
123
+ ```bash
124
+ vigthoria edit src/api.ts -i "Add error handling to all endpoints"
125
+ ```
126
+
127
+ ### Generate Code
128
+
129
+ ```bash
130
+ vigthoria generate <description> [options]
131
+
132
+ Options:
133
+ -l, --language <lang> Target language (default: typescript)
134
+ -o, --output <file> Output file path
135
+ -m, --model <model> Select AI model
136
+ ```
137
+
138
+ Example:
139
+ ```bash
140
+ vigthoria generate "REST API endpoint for user authentication" -l typescript -o src/auth.ts
141
+ ```
142
+
143
+ ### Explain Code
144
+
145
+ ```bash
146
+ vigthoria explain <file> [options]
147
+
148
+ Options:
149
+ -l, --lines <range> Line range (e.g., 1-50)
150
+ -d, --detail <level> Detail level (brief, normal, detailed)
151
+ ```
152
+
153
+ Example:
154
+ ```bash
155
+ vigthoria explain src/complex.ts -l 50-100 -d detailed
156
+ ```
157
+
158
+ ### Fix Code
159
+
160
+ ```bash
161
+ vigthoria fix <file> [options]
162
+
163
+ Options:
164
+ -t, --type <type> Fix type (bugs, style, security, performance)
165
+ --apply Auto-apply fixes
166
+ ```
167
+
168
+ Example:
169
+ ```bash
170
+ vigthoria fix src/index.ts -t security --apply
171
+ ```
172
+
173
+ ### Code Review
174
+
175
+ ```bash
176
+ vigthoria review <file> [options]
177
+
178
+ Options:
179
+ -f, --format <format> Output format (text, json, markdown)
180
+ ```
181
+
182
+ Example:
183
+ ```bash
184
+ vigthoria review src/app.ts -f markdown > review.md
185
+ ```
186
+
187
+ ### Configuration
188
+
189
+ ```bash
190
+ # Interactive configuration
191
+ vigthoria config
192
+
193
+ # Set value
194
+ vigthoria config --set model=vigthoria-code
195
+
196
+ # Get value
197
+ vigthoria config --get model
198
+
199
+ # List all settings
200
+ vigthoria config --list
201
+
202
+ # Reset to defaults
203
+ vigthoria config --reset
204
+ ```
205
+
206
+ ### Initialize Project
207
+
208
+ ```bash
209
+ vigthoria init
210
+ ```
211
+
212
+ Creates a `.vigthoria.json` file with project-specific settings.
213
+
214
+ ## Available Models
215
+
216
+ | Model | Size | Best For | Plans |
217
+ |-------|------|----------|-------|
218
+ | `vigthoria-fast` | 1.1B | Quick responses | Free, Pro, Ultra |
219
+ | `vigthoria-mini` | 3.8B | Balanced tasks | Free, Pro, Ultra |
220
+ | `vigthoria-code` | 8B | Code generation | Pro, Ultra |
221
+ | `vigthoria-creative` | 9B | Creative writing | Pro, Ultra |
222
+ | `vigthoria-pro` | 32B | Advanced tasks | Ultra |
223
+ | `vigthoria-ultra` | 70B | Maximum capability | Ultra |
224
+
225
+ ## Configuration File
226
+
227
+ ### Global Config
228
+
229
+ Located at `~/.config/vigthoria-cli/config.json`:
230
+
231
+ ```json
232
+ {
233
+ "apiUrl": "https://api.vigthoria.io",
234
+ "preferences": {
235
+ "defaultModel": "vigthoria-code",
236
+ "theme": "dark",
237
+ "autoApplyFixes": false,
238
+ "showDiffs": true,
239
+ "maxTokens": 4096
240
+ },
241
+ "project": {
242
+ "ignorePatterns": [
243
+ "node_modules",
244
+ ".git",
245
+ "dist"
246
+ ]
247
+ }
248
+ }
249
+ ```
250
+
251
+ ### Project Config
252
+
253
+ Create `.vigthoria.json` in your project root:
254
+
255
+ ```json
256
+ {
257
+ "defaultModel": "vigthoria-code",
258
+ "ignorePatterns": ["build", "coverage"],
259
+ "autoApplyFixes": false
260
+ }
261
+ ```
262
+
263
+ ## Shortcuts
264
+
265
+ For faster access, use the `vig` command:
266
+
267
+ ```bash
268
+ vig c # vigthoria chat
269
+ vig e <file> # vigthoria edit
270
+ vig g <desc> # vigthoria generate
271
+ vig x <file> # vigthoria explain
272
+ vig f <file> # vigthoria fix
273
+ vig r <file> # vigthoria review
274
+ ```
275
+
276
+ ## Shell Completion
277
+
278
+ ### Bash
279
+
280
+ ```bash
281
+ source ~/.bash_completion.d/vigthoria
282
+ ```
283
+
284
+ ### Zsh
285
+
286
+ Add to `~/.zshrc`:
287
+ ```bash
288
+ fpath=(~/.zsh/completion $fpath)
289
+ autoload -Uz compinit && compinit
290
+ ```
291
+
292
+ ## Environment Variables
293
+
294
+ ```bash
295
+ # Custom API endpoint
296
+ export VIGTHORIA_API_URL="https://custom.api.vigthoria.io"
297
+
298
+ # Default model
299
+ export VIGTHORIA_DEFAULT_MODEL="vigthoria-code"
300
+
301
+ # API token (alternative to login)
302
+ export VIGTHORIA_TOKEN="your-api-token"
303
+ ```
304
+
305
+ ## Examples
306
+
307
+ ### Interactive Coding Session
308
+
309
+ ```bash
310
+ $ vigthoria chat
311
+
312
+ ╔═══════════════════════════════════════════════════════════╗
313
+ ║ VIGTHORIA CLI - AI-Powered Coding Assistant ║
314
+ ╚═══════════════════════════════════════════════════════════╝
315
+
316
+ you › /file src/api.ts
317
+ ✓ Added src/api.ts to context (150 lines)
318
+
319
+ you › Add rate limiting to the authentication endpoint
320
+
321
+ vigthoria ›
322
+ I'll add rate limiting using express-rate-limit. Here's the implementation:
323
+
324
+ ```typescript
325
+ import rateLimit from 'express-rate-limit';
326
+
327
+ const authLimiter = rateLimit({
328
+ windowMs: 15 * 60 * 1000, // 15 minutes
329
+ max: 5, // 5 attempts
330
+ message: 'Too many login attempts, please try again later'
331
+ });
332
+
333
+ app.post('/auth/login', authLimiter, authController.login);
334
+ ```
335
+
336
+ you › /edit src/api.ts
337
+ What changes would you like to make?
338
+ > Add the rate limiting code you showed
339
+
340
+ [Diff preview shown]
341
+ Apply changes? (Y/n) y
342
+ ✓ Changes applied to src/api.ts
343
+ ```
344
+
345
+ ### Batch Code Review
346
+
347
+ ```bash
348
+ # Review all TypeScript files
349
+ for file in src/**/*.ts; do
350
+ vigthoria review "$file" -f markdown >> review-report.md
351
+ done
352
+ ```
353
+
354
+ ### Git Pre-commit Hook
355
+
356
+ ```bash
357
+ #!/bin/bash
358
+ # .git/hooks/pre-commit
359
+
360
+ changed_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.ts$')
361
+
362
+ for file in $changed_files; do
363
+ vigthoria fix "$file" -t style --apply
364
+ done
365
+ ```
366
+
367
+ ## Troubleshooting
368
+
369
+ ### "Not authenticated" Error
370
+
371
+ ```bash
372
+ vigthoria login
373
+ # or
374
+ export VIGTHORIA_TOKEN="your-token"
375
+ ```
376
+
377
+ ### "Subscription expired" Warning
378
+
379
+ Your Vigthoria Coder subscription has expired. Visit https://coder.vigthoria.io to renew.
380
+
381
+ ### Connection Issues
382
+
383
+ ```bash
384
+ # Check API status
385
+ vigthoria status
386
+
387
+ # Use different API endpoint
388
+ vigthoria config --set apiUrl=https://backup.api.vigthoria.io
389
+ ```
390
+
391
+ ### Reset Configuration
392
+
393
+ ```bash
394
+ vigthoria config --reset
395
+ ```
396
+
397
+ ## Support
398
+
399
+ - **User Handbook (EN)**: [VIGTHORIA_CLI_USER_HANDBOOK_EN.md](../docs/VIGTHORIA_CLI_USER_HANDBOOK_EN.md)
400
+ - **Benutzerhandbuch (DE)**: [VIGTHORIA_CLI_USER_HANDBOOK_DE.md](../docs/VIGTHORIA_CLI_USER_HANDBOOK_DE.md)
401
+ - **PDF Handbooks**: [Download EN](https://landing.vigthoria.io/docs/pdf/VIGTHORIA_CLI_USER_HANDBOOK_EN.pdf) | [Download DE](https://landing.vigthoria.io/docs/pdf/VIGTHORIA_CLI_USER_HANDBOOK_DE.pdf)
402
+ - Documentation: https://docs.vigthoria.io/cli
403
+ - Issues: https://community.vigthoria.io/forums/cli-support
404
+ - Discord: https://discord.gg/vigthoria
405
+ - Email: support@vigthoria.io
406
+
407
+ ## License
408
+
409
+ MIT License - See [LICENSE](LICENSE) for details.
410
+
411
+ ---
412
+
413
+ Built with ❤️ by Vigthoria GmbH
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Auth Command - Authentication management
3
+ */
4
+ import { Config } from '../utils/config.js';
5
+ import { Logger } from '../utils/logger.js';
6
+ interface LoginOptions {
7
+ token?: string;
8
+ }
9
+ export declare class AuthCommand {
10
+ private config;
11
+ private logger;
12
+ private api;
13
+ constructor(config: Config, logger: Logger);
14
+ login(options: LoginOptions): Promise<void>;
15
+ private loginWithCredentials;
16
+ private loginWithTokenPrompt;
17
+ private loginWithToken;
18
+ private loginWithBrowser;
19
+ logout(): Promise<void>;
20
+ status(): Promise<void>;
21
+ private printLoginSuccess;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAY;gBAEX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMpC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCnC,oBAAoB;YAiCpB,oBAAoB;YAcpB,cAAc;YAcd,gBAAgB;IAWxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAwD7B,OAAO,CAAC,iBAAiB;CAgB1B"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Auth Command - Authentication management
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AuthCommand = void 0;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const ora_1 = __importDefault(require("ora"));
12
+ const inquirer_1 = __importDefault(require("inquirer"));
13
+ const api_js_1 = require("../utils/api.js");
14
+ class AuthCommand {
15
+ config;
16
+ logger;
17
+ api;
18
+ constructor(config, logger) {
19
+ this.config = config;
20
+ this.logger = logger;
21
+ this.api = new api_js_1.APIClient(config, logger);
22
+ }
23
+ async login(options) {
24
+ // If token provided, use token auth
25
+ if (options.token) {
26
+ await this.loginWithToken(options.token);
27
+ return;
28
+ }
29
+ console.log();
30
+ console.log(chalk_1.default.cyan('═══ Vigthoria Login ═══'));
31
+ console.log();
32
+ // Prompt for credentials
33
+ const answers = await inquirer_1.default.prompt([
34
+ {
35
+ type: 'list',
36
+ name: 'method',
37
+ message: 'Choose login method:',
38
+ choices: [
39
+ { name: 'Email & Password', value: 'credentials' },
40
+ { name: 'API Token', value: 'token' },
41
+ { name: 'Browser Login', value: 'browser' },
42
+ ],
43
+ },
44
+ ]);
45
+ switch (answers.method) {
46
+ case 'credentials':
47
+ await this.loginWithCredentials();
48
+ break;
49
+ case 'token':
50
+ await this.loginWithTokenPrompt();
51
+ break;
52
+ case 'browser':
53
+ await this.loginWithBrowser();
54
+ break;
55
+ }
56
+ }
57
+ async loginWithCredentials() {
58
+ const credentials = await inquirer_1.default.prompt([
59
+ {
60
+ type: 'input',
61
+ name: 'email',
62
+ message: 'Email:',
63
+ validate: (input) => {
64
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
65
+ return emailRegex.test(input) || 'Please enter a valid email';
66
+ },
67
+ },
68
+ {
69
+ type: 'password',
70
+ name: 'password',
71
+ message: 'Password:',
72
+ mask: '*',
73
+ validate: (input) => input.length >= 6 || 'Password must be at least 6 characters',
74
+ },
75
+ ]);
76
+ const spinner = (0, ora_1.default)('Logging in...').start();
77
+ const success = await this.api.login(credentials.email, credentials.password);
78
+ spinner.stop();
79
+ if (success) {
80
+ this.printLoginSuccess();
81
+ }
82
+ else {
83
+ this.logger.error('Login failed. Please check your credentials.');
84
+ }
85
+ }
86
+ async loginWithTokenPrompt() {
87
+ const { token } = await inquirer_1.default.prompt([
88
+ {
89
+ type: 'password',
90
+ name: 'token',
91
+ message: 'API Token:',
92
+ mask: '*',
93
+ validate: (input) => input.length > 0 || 'Please enter your API token',
94
+ },
95
+ ]);
96
+ await this.loginWithToken(token);
97
+ }
98
+ async loginWithToken(token) {
99
+ const spinner = (0, ora_1.default)('Validating token...').start();
100
+ const success = await this.api.loginWithToken(token);
101
+ spinner.stop();
102
+ if (success) {
103
+ this.printLoginSuccess();
104
+ }
105
+ else {
106
+ this.logger.error('Invalid token. Please check and try again.');
107
+ }
108
+ }
109
+ async loginWithBrowser() {
110
+ console.log();
111
+ console.log(chalk_1.default.gray('Opening browser for authentication...'));
112
+ console.log();
113
+ console.log(chalk_1.default.cyan('Visit: https://coder.vigthoria.io/cli-auth'));
114
+ console.log();
115
+ console.log(chalk_1.default.gray('After authenticating, copy the token and run:'));
116
+ console.log(chalk_1.default.white(' vigthoria login --token YOUR_TOKEN'));
117
+ console.log();
118
+ }
119
+ async logout() {
120
+ const { confirm } = await inquirer_1.default.prompt([
121
+ {
122
+ type: 'confirm',
123
+ name: 'confirm',
124
+ message: 'Are you sure you want to logout?',
125
+ default: false,
126
+ },
127
+ ]);
128
+ if (confirm) {
129
+ this.config.clearAuth();
130
+ this.logger.success('Logged out successfully');
131
+ }
132
+ }
133
+ async status() {
134
+ console.log();
135
+ console.log(chalk_1.default.cyan('═══ Account Status ═══'));
136
+ console.log();
137
+ if (!this.config.isAuthenticated()) {
138
+ this.logger.warn('Not logged in');
139
+ console.log();
140
+ console.log(chalk_1.default.gray('Run `vigthoria login` to authenticate'));
141
+ return;
142
+ }
143
+ const email = this.config.get('email');
144
+ const sub = this.config.get('subscription');
145
+ // Account info
146
+ console.log(chalk_1.default.white('Account:'));
147
+ console.log(chalk_1.default.gray(' Email: ') + chalk_1.default.cyan(email));
148
+ console.log(chalk_1.default.gray(' User ID: ') + chalk_1.default.gray(this.config.get('userId')));
149
+ console.log();
150
+ // Subscription info
151
+ console.log(chalk_1.default.white('Subscription:'));
152
+ const planDisplay = sub.plan ? chalk_1.default.green(sub.plan.toUpperCase()) : chalk_1.default.yellow('FREE');
153
+ const statusDisplay = sub.status === 'active' ? chalk_1.default.green('Active') : chalk_1.default.red(sub.status || 'N/A');
154
+ console.log(chalk_1.default.gray(' Plan: ') + planDisplay);
155
+ console.log(chalk_1.default.gray(' Status: ') + statusDisplay);
156
+ if (sub.expiresAt) {
157
+ const expiresDate = new Date(sub.expiresAt);
158
+ const daysLeft = Math.ceil((expiresDate.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
159
+ const expiresColor = daysLeft > 7 ? chalk_1.default.green : daysLeft > 0 ? chalk_1.default.yellow : chalk_1.default.red;
160
+ console.log(chalk_1.default.gray(' Expires: ') + expiresColor(`${expiresDate.toLocaleDateString()} (${daysLeft} days)`));
161
+ }
162
+ console.log();
163
+ // Available models
164
+ console.log(chalk_1.default.white('Available Models:'));
165
+ const models = this.config.getAvailableModels();
166
+ models.forEach(m => {
167
+ console.log(chalk_1.default.gray(' • ') + chalk_1.default.cyan(m.id) + chalk_1.default.gray(` - ${m.description}`));
168
+ });
169
+ console.log();
170
+ // API status
171
+ const spinner = (0, ora_1.default)('Checking API status...').start();
172
+ const apiOk = await this.api.healthCheck();
173
+ spinner.stop();
174
+ console.log(chalk_1.default.white('API Status:'));
175
+ console.log(chalk_1.default.gray(' Server: ') + (apiOk ? chalk_1.default.green('Online') : chalk_1.default.red('Offline')));
176
+ console.log(chalk_1.default.gray(' Endpoint: ') + chalk_1.default.gray(this.config.get('apiUrl')));
177
+ console.log();
178
+ }
179
+ printLoginSuccess() {
180
+ const email = this.config.get('email');
181
+ const sub = this.config.get('subscription');
182
+ console.log();
183
+ this.logger.success(`Logged in as ${chalk_1.default.cyan(email)}`);
184
+ if (sub.plan) {
185
+ console.log(chalk_1.default.gray(` Plan: ${chalk_1.default.green(sub.plan.toUpperCase())}`));
186
+ }
187
+ console.log();
188
+ console.log(chalk_1.default.gray('You can now use all Vigthoria CLI features.'));
189
+ console.log(chalk_1.default.gray('Run `vigthoria chat` to start coding with AI!'));
190
+ console.log();
191
+ }
192
+ }
193
+ exports.AuthCommand = AuthCommand;
194
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}