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.
- package/README.md +413 -0
- package/dist/commands/auth.d.ts +24 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +194 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/chat.d.ts +64 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +596 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/config.d.ts +25 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +291 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/edit.d.ts +28 -0
- package/dist/commands/edit.d.ts.map +1 -0
- package/dist/commands/edit.js +257 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/explain.d.ts +21 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +98 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/generate.d.ts +25 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +155 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/review.d.ts +24 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +153 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +205 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/api.d.ts +88 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +431 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/config.d.ts +57 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +167 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/files.d.ts +31 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +217 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/logger.d.ts +23 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +104 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/session.d.ts +61 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +172 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/utils/tools.d.ts +145 -0
- package/dist/utils/tools.d.ts.map +1 -0
- package/dist/utils/tools.js +781 -0
- package/dist/utils/tools.js.map +1 -0
- package/install.sh +248 -0
- package/package.json +52 -0
- package/src/commands/auth.ts +225 -0
- package/src/commands/chat.ts +690 -0
- package/src/commands/config.ts +297 -0
- package/src/commands/edit.ts +310 -0
- package/src/commands/explain.ts +115 -0
- package/src/commands/generate.ts +177 -0
- package/src/commands/review.ts +186 -0
- package/src/index.ts +221 -0
- package/src/types/marked-terminal.d.ts +31 -0
- package/src/utils/api.ts +531 -0
- package/src/utils/config.ts +224 -0
- package/src/utils/files.ts +212 -0
- package/src/utils/logger.ts +125 -0
- package/src/utils/session.ts +167 -0
- package/src/utils/tools.ts +933 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Review Command - Code review with AI
|
|
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.ReviewCommand = void 0;
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const ora_1 = __importDefault(require("ora"));
|
|
12
|
+
const marked_1 = require("marked");
|
|
13
|
+
const marked_terminal_1 = require("marked-terminal");
|
|
14
|
+
const api_js_1 = require("../utils/api.js");
|
|
15
|
+
const files_js_1 = require("../utils/files.js");
|
|
16
|
+
class ReviewCommand {
|
|
17
|
+
config;
|
|
18
|
+
logger;
|
|
19
|
+
api;
|
|
20
|
+
fileUtils;
|
|
21
|
+
marked;
|
|
22
|
+
constructor(config, logger) {
|
|
23
|
+
this.config = config;
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
this.api = new api_js_1.APIClient(config, logger);
|
|
26
|
+
this.fileUtils = new files_js_1.FileUtils(process.cwd(), config.get('project').ignorePatterns);
|
|
27
|
+
this.marked = new marked_1.Marked();
|
|
28
|
+
this.marked.use((0, marked_terminal_1.markedTerminal)());
|
|
29
|
+
}
|
|
30
|
+
async run(filePath, options) {
|
|
31
|
+
// Check auth
|
|
32
|
+
if (!this.config.isAuthenticated()) {
|
|
33
|
+
this.logger.error('Not authenticated. Run: vigthoria login');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
// Read file
|
|
37
|
+
const file = this.fileUtils.readFile(filePath);
|
|
38
|
+
if (!file) {
|
|
39
|
+
this.logger.error(`File not found: ${filePath}`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.logger.section(`Reviewing: ${file.relativePath}`);
|
|
43
|
+
console.log(chalk_1.default.gray(`Language: ${file.language} | Lines: ${file.lines}`));
|
|
44
|
+
console.log();
|
|
45
|
+
const spinner = (0, ora_1.default)({
|
|
46
|
+
text: 'Analyzing code quality...',
|
|
47
|
+
spinner: 'dots',
|
|
48
|
+
}).start();
|
|
49
|
+
try {
|
|
50
|
+
const review = await this.api.reviewCode(file.content, file.language);
|
|
51
|
+
spinner.stop();
|
|
52
|
+
// Format output
|
|
53
|
+
switch (options.format) {
|
|
54
|
+
case 'json':
|
|
55
|
+
console.log(JSON.stringify(review, null, 2));
|
|
56
|
+
break;
|
|
57
|
+
case 'markdown':
|
|
58
|
+
this.printMarkdownReview(review, file.relativePath);
|
|
59
|
+
break;
|
|
60
|
+
case 'text':
|
|
61
|
+
default:
|
|
62
|
+
this.printTextReview(review);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
spinner.stop();
|
|
68
|
+
this.logger.error('Review failed:', error.message);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
printTextReview(review) {
|
|
72
|
+
// Score
|
|
73
|
+
const scoreColor = review.score >= 80 ? chalk_1.default.green : review.score >= 60 ? chalk_1.default.yellow : chalk_1.default.red;
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(chalk_1.default.bold('Quality Score: ') + scoreColor(`${review.score}/100`));
|
|
76
|
+
console.log(this.renderScoreBar(review.score));
|
|
77
|
+
console.log();
|
|
78
|
+
// Issues
|
|
79
|
+
if (review.issues.length > 0) {
|
|
80
|
+
this.logger.section(`Issues (${review.issues.length})`);
|
|
81
|
+
review.issues.forEach((issue, i) => {
|
|
82
|
+
const severityIcon = this.getSeverityIcon(issue.severity);
|
|
83
|
+
const severityColor = this.getSeverityColor(issue.severity);
|
|
84
|
+
console.log(severityColor(`${severityIcon} [${issue.type}]`) +
|
|
85
|
+
chalk_1.default.gray(` Line ${issue.line}:`) +
|
|
86
|
+
` ${issue.message}`);
|
|
87
|
+
});
|
|
88
|
+
console.log();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.logger.success('No issues found!');
|
|
92
|
+
}
|
|
93
|
+
// Suggestions
|
|
94
|
+
if (review.suggestions.length > 0) {
|
|
95
|
+
this.logger.section('Suggestions');
|
|
96
|
+
review.suggestions.forEach((suggestion, i) => {
|
|
97
|
+
console.log(chalk_1.default.cyan(`${i + 1}.`) + ` ${suggestion}`);
|
|
98
|
+
});
|
|
99
|
+
console.log();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
printMarkdownReview(review, filePath) {
|
|
103
|
+
let markdown = `# Code Review: ${filePath}\n\n`;
|
|
104
|
+
markdown += `## Score: ${review.score}/100\n\n`;
|
|
105
|
+
if (review.issues.length > 0) {
|
|
106
|
+
markdown += `## Issues\n\n`;
|
|
107
|
+
review.issues.forEach(issue => {
|
|
108
|
+
markdown += `- **[${issue.severity.toUpperCase()}]** Line ${issue.line}: ${issue.message} (${issue.type})\n`;
|
|
109
|
+
});
|
|
110
|
+
markdown += '\n';
|
|
111
|
+
}
|
|
112
|
+
if (review.suggestions.length > 0) {
|
|
113
|
+
markdown += `## Suggestions\n\n`;
|
|
114
|
+
review.suggestions.forEach((s, i) => {
|
|
115
|
+
markdown += `${i + 1}. ${s}\n`;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
console.log(this.marked.parse(markdown));
|
|
119
|
+
}
|
|
120
|
+
renderScoreBar(score) {
|
|
121
|
+
const width = 30;
|
|
122
|
+
const filled = Math.round((score / 100) * width);
|
|
123
|
+
const empty = width - filled;
|
|
124
|
+
const color = score >= 80 ? chalk_1.default.green : score >= 60 ? chalk_1.default.yellow : chalk_1.default.red;
|
|
125
|
+
return color('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
|
|
126
|
+
}
|
|
127
|
+
getSeverityIcon(severity) {
|
|
128
|
+
switch (severity.toLowerCase()) {
|
|
129
|
+
case 'error':
|
|
130
|
+
return '✗';
|
|
131
|
+
case 'warning':
|
|
132
|
+
return '⚠';
|
|
133
|
+
case 'info':
|
|
134
|
+
return 'ℹ';
|
|
135
|
+
default:
|
|
136
|
+
return '•';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
getSeverityColor(severity) {
|
|
140
|
+
switch (severity.toLowerCase()) {
|
|
141
|
+
case 'error':
|
|
142
|
+
return chalk_1.default.red;
|
|
143
|
+
case 'warning':
|
|
144
|
+
return chalk_1.default.yellow;
|
|
145
|
+
case 'info':
|
|
146
|
+
return chalk_1.default.blue;
|
|
147
|
+
default:
|
|
148
|
+
return chalk_1.default.white;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.ReviewCommand = ReviewCommand;
|
|
153
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Vigthoria CLI - AI-Powered Terminal Coding Assistant
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* vigthoria chat - Start interactive chat
|
|
7
|
+
* vigthoria edit <file> - Edit a file with AI assistance
|
|
8
|
+
* vigthoria generate <desc> - Generate code from description
|
|
9
|
+
* vigthoria explain <file> - Explain code in a file
|
|
10
|
+
* vigthoria fix <file> - Fix issues in a file
|
|
11
|
+
* vigthoria review <file> - Review code quality
|
|
12
|
+
* vigthoria login - Authenticate with Vigthoria
|
|
13
|
+
* vigthoria config - Configure settings
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Vigthoria CLI - AI-Powered Terminal Coding Assistant
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* vigthoria chat - Start interactive chat
|
|
8
|
+
* vigthoria edit <file> - Edit a file with AI assistance
|
|
9
|
+
* vigthoria generate <desc> - Generate code from description
|
|
10
|
+
* vigthoria explain <file> - Explain code in a file
|
|
11
|
+
* vigthoria fix <file> - Fix issues in a file
|
|
12
|
+
* vigthoria review <file> - Review code quality
|
|
13
|
+
* vigthoria login - Authenticate with Vigthoria
|
|
14
|
+
* vigthoria config - Configure settings
|
|
15
|
+
*/
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
const commander_1 = require("commander");
|
|
21
|
+
const chat_js_1 = require("./commands/chat.js");
|
|
22
|
+
const edit_js_1 = require("./commands/edit.js");
|
|
23
|
+
const generate_js_1 = require("./commands/generate.js");
|
|
24
|
+
const explain_js_1 = require("./commands/explain.js");
|
|
25
|
+
const auth_js_1 = require("./commands/auth.js");
|
|
26
|
+
const config_js_1 = require("./commands/config.js");
|
|
27
|
+
const review_js_1 = require("./commands/review.js");
|
|
28
|
+
const config_js_2 = require("./utils/config.js");
|
|
29
|
+
const logger_js_1 = require("./utils/logger.js");
|
|
30
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
31
|
+
const VERSION = '1.0.0';
|
|
32
|
+
async function main() {
|
|
33
|
+
const program = new commander_1.Command();
|
|
34
|
+
const config = new config_js_2.Config();
|
|
35
|
+
const logger = new logger_js_1.Logger();
|
|
36
|
+
// Banner - Fixed alignment with proper padding
|
|
37
|
+
const boxWidth = 61; // Inner content width
|
|
38
|
+
const titleText = 'VIGTHORIA CLI - AI-Powered Coding Assistant';
|
|
39
|
+
const versionText = `Version ${VERSION}`;
|
|
40
|
+
// Calculate padding for centering
|
|
41
|
+
const titlePad = Math.floor((boxWidth - 4 - titleText.length) / 2);
|
|
42
|
+
const versionPad = Math.floor((boxWidth - 4 - versionText.length) / 2);
|
|
43
|
+
console.log(chalk_1.default.cyan('╔' + '═'.repeat(boxWidth) + '╗'));
|
|
44
|
+
console.log(chalk_1.default.cyan('║' + ' '.repeat(boxWidth) + '║'));
|
|
45
|
+
console.log(chalk_1.default.cyan('║') + ' '.repeat(titlePad) + chalk_1.default.bold.white('VIGTHORIA CLI') + chalk_1.default.cyan(' - AI-Powered Coding Assistant') + ' '.repeat(boxWidth - titlePad - titleText.length) + chalk_1.default.cyan('║'));
|
|
46
|
+
console.log(chalk_1.default.cyan('║') + ' '.repeat(versionPad) + chalk_1.default.gray(versionText) + ' '.repeat(boxWidth - versionPad - versionText.length) + chalk_1.default.cyan('║'));
|
|
47
|
+
console.log(chalk_1.default.cyan('║' + ' '.repeat(boxWidth) + '║'));
|
|
48
|
+
console.log(chalk_1.default.cyan('╚' + '═'.repeat(boxWidth) + '╝'));
|
|
49
|
+
console.log();
|
|
50
|
+
program
|
|
51
|
+
.name('vigthoria')
|
|
52
|
+
.description('AI-powered terminal coding assistant for Vigthoria Coder subscribers')
|
|
53
|
+
.version(VERSION);
|
|
54
|
+
// Chat command - Interactive mode
|
|
55
|
+
program
|
|
56
|
+
.command('chat')
|
|
57
|
+
.alias('c')
|
|
58
|
+
.description('Start interactive chat with Vigthoria AI')
|
|
59
|
+
.option('-m, --model <model>', 'Select AI model (fast, balanced, code, creative)', 'balanced')
|
|
60
|
+
.option('-p, --project <path>', 'Set project context path', process.cwd())
|
|
61
|
+
.option('-a, --agent', 'Enable agentic mode (Claude Code-like autonomous actions)', false)
|
|
62
|
+
.option('-r, --resume', 'Resume last session for this project', false)
|
|
63
|
+
.option('-l, --local', 'Local mode: use Ollama directly without auth', false)
|
|
64
|
+
.option('--auto-approve', 'Auto-approve agent actions (dangerous!)', false)
|
|
65
|
+
.action(async (options) => {
|
|
66
|
+
const chat = new chat_js_1.ChatCommand(config, logger);
|
|
67
|
+
await chat.run({
|
|
68
|
+
model: options.model,
|
|
69
|
+
project: options.project,
|
|
70
|
+
agent: options.agent,
|
|
71
|
+
autoApprove: options.autoApprove,
|
|
72
|
+
resume: options.resume,
|
|
73
|
+
local: options.local,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
// Agent command - Agentic mode (Claude Code-like)
|
|
77
|
+
program
|
|
78
|
+
.command('agent')
|
|
79
|
+
.alias('a')
|
|
80
|
+
.description('Start agentic mode - AI can read/write files, run commands')
|
|
81
|
+
.option('-m, --model <model>', 'Select AI model', 'code')
|
|
82
|
+
.option('-p, --project <path>', 'Set project context path', process.cwd())
|
|
83
|
+
.option('-l, --local', 'Local mode: use Ollama directly without auth', false)
|
|
84
|
+
.option('--auto-approve', 'Auto-approve all actions (dangerous!)', false)
|
|
85
|
+
.action(async (options) => {
|
|
86
|
+
const chat = new chat_js_1.ChatCommand(config, logger);
|
|
87
|
+
await chat.run({
|
|
88
|
+
model: options.model,
|
|
89
|
+
project: options.project,
|
|
90
|
+
agent: true,
|
|
91
|
+
autoApprove: options.autoApprove,
|
|
92
|
+
local: options.local,
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
// Edit command - Edit files with AI
|
|
96
|
+
program
|
|
97
|
+
.command('edit <file>')
|
|
98
|
+
.alias('e')
|
|
99
|
+
.description('Edit a file with AI assistance')
|
|
100
|
+
.option('-i, --instruction <text>', 'Editing instruction')
|
|
101
|
+
.option('-m, --model <model>', 'Select AI model', 'code')
|
|
102
|
+
.action(async (file, options) => {
|
|
103
|
+
const edit = new edit_js_1.EditCommand(config, logger);
|
|
104
|
+
await edit.run(file, options);
|
|
105
|
+
});
|
|
106
|
+
// Generate command - Generate code
|
|
107
|
+
program
|
|
108
|
+
.command('generate <description>')
|
|
109
|
+
.alias('g')
|
|
110
|
+
.description('Generate code from description')
|
|
111
|
+
.option('-l, --language <lang>', 'Target language', 'typescript')
|
|
112
|
+
.option('-o, --output <file>', 'Output file path')
|
|
113
|
+
.option('-m, --model <model>', 'Select AI model', 'code')
|
|
114
|
+
.action(async (description, options) => {
|
|
115
|
+
const generate = new generate_js_1.GenerateCommand(config, logger);
|
|
116
|
+
await generate.run(description, options);
|
|
117
|
+
});
|
|
118
|
+
// Explain command - Explain code
|
|
119
|
+
program
|
|
120
|
+
.command('explain <file>')
|
|
121
|
+
.alias('x')
|
|
122
|
+
.description('Explain code in a file')
|
|
123
|
+
.option('-l, --lines <range>', 'Line range (e.g., 1-50)')
|
|
124
|
+
.option('-d, --detail <level>', 'Detail level (brief, normal, detailed)', 'normal')
|
|
125
|
+
.action(async (file, options) => {
|
|
126
|
+
const explain = new explain_js_1.ExplainCommand(config, logger);
|
|
127
|
+
await explain.run(file, options);
|
|
128
|
+
});
|
|
129
|
+
// Fix command - Fix code issues
|
|
130
|
+
program
|
|
131
|
+
.command('fix <file>')
|
|
132
|
+
.alias('f')
|
|
133
|
+
.description('Fix issues in a file')
|
|
134
|
+
.option('-t, --type <type>', 'Fix type (bugs, style, security, performance)', 'bugs')
|
|
135
|
+
.option('--apply', 'Automatically apply fixes', false)
|
|
136
|
+
.action(async (file, options) => {
|
|
137
|
+
const edit = new edit_js_1.EditCommand(config, logger);
|
|
138
|
+
await edit.fix(file, options);
|
|
139
|
+
});
|
|
140
|
+
// Review command - Code review
|
|
141
|
+
program
|
|
142
|
+
.command('review <file>')
|
|
143
|
+
.alias('r')
|
|
144
|
+
.description('Review code quality')
|
|
145
|
+
.option('-f, --format <format>', 'Output format (text, json, markdown)', 'text')
|
|
146
|
+
.action(async (file, options) => {
|
|
147
|
+
const review = new review_js_1.ReviewCommand(config, logger);
|
|
148
|
+
await review.run(file, options);
|
|
149
|
+
});
|
|
150
|
+
// Auth commands
|
|
151
|
+
program
|
|
152
|
+
.command('login')
|
|
153
|
+
.description('Login to Vigthoria Coder')
|
|
154
|
+
.option('-t, --token <token>', 'API token')
|
|
155
|
+
.action(async (options) => {
|
|
156
|
+
const auth = new auth_js_1.AuthCommand(config, logger);
|
|
157
|
+
await auth.login(options);
|
|
158
|
+
});
|
|
159
|
+
program
|
|
160
|
+
.command('logout')
|
|
161
|
+
.description('Logout from Vigthoria Coder')
|
|
162
|
+
.action(async () => {
|
|
163
|
+
const auth = new auth_js_1.AuthCommand(config, logger);
|
|
164
|
+
await auth.logout();
|
|
165
|
+
});
|
|
166
|
+
program
|
|
167
|
+
.command('status')
|
|
168
|
+
.description('Show authentication and subscription status')
|
|
169
|
+
.action(async () => {
|
|
170
|
+
const auth = new auth_js_1.AuthCommand(config, logger);
|
|
171
|
+
await auth.status();
|
|
172
|
+
});
|
|
173
|
+
// Config command
|
|
174
|
+
program
|
|
175
|
+
.command('config')
|
|
176
|
+
.description('Configure Vigthoria CLI settings')
|
|
177
|
+
.option('-s, --set <key=value>', 'Set a configuration value')
|
|
178
|
+
.option('-g, --get <key>', 'Get a configuration value')
|
|
179
|
+
.option('-l, --list', 'List all settings')
|
|
180
|
+
.option('-r, --reset', 'Reset to defaults')
|
|
181
|
+
.action(async (options) => {
|
|
182
|
+
const configCmd = new config_js_1.ConfigCommand(config, logger);
|
|
183
|
+
await configCmd.run(options);
|
|
184
|
+
});
|
|
185
|
+
// Init command - Initialize project
|
|
186
|
+
program
|
|
187
|
+
.command('init')
|
|
188
|
+
.description('Initialize Vigthoria in current project')
|
|
189
|
+
.action(async () => {
|
|
190
|
+
const configCmd = new config_js_1.ConfigCommand(config, logger);
|
|
191
|
+
await configCmd.init();
|
|
192
|
+
});
|
|
193
|
+
// Default to chat if no command
|
|
194
|
+
if (process.argv.length === 2) {
|
|
195
|
+
const chat = new chat_js_1.ChatCommand(config, logger);
|
|
196
|
+
await chat.run({ model: 'code', project: process.cwd() });
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
await program.parseAsync(process.argv);
|
|
200
|
+
}
|
|
201
|
+
main().catch((err) => {
|
|
202
|
+
console.error(chalk_1.default.red('Error:'), err.message);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Client for Vigthoria Backend
|
|
3
|
+
* Connects to coder.vigthoria.io API endpoints
|
|
4
|
+
*/
|
|
5
|
+
import { Config } from './config.js';
|
|
6
|
+
import { Logger } from './logger.js';
|
|
7
|
+
export interface ChatMessage {
|
|
8
|
+
role: 'user' | 'assistant' | 'system';
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ChatResponse {
|
|
12
|
+
id: string;
|
|
13
|
+
message: string;
|
|
14
|
+
model: string;
|
|
15
|
+
usage?: {
|
|
16
|
+
prompt_tokens: number;
|
|
17
|
+
completion_tokens: number;
|
|
18
|
+
total_tokens: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface StreamChunk {
|
|
22
|
+
type: 'content' | 'done' | 'error';
|
|
23
|
+
content?: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface VigthoriUser {
|
|
27
|
+
id: string;
|
|
28
|
+
username: string;
|
|
29
|
+
email: string;
|
|
30
|
+
isAdmin: boolean;
|
|
31
|
+
subscription: {
|
|
32
|
+
plan: string;
|
|
33
|
+
projectLimit: number;
|
|
34
|
+
storageLimit: number;
|
|
35
|
+
viagen6Access: boolean;
|
|
36
|
+
aiModelsLimit: number;
|
|
37
|
+
prioritySupport: boolean;
|
|
38
|
+
teamCollaboration: boolean;
|
|
39
|
+
adminAccess: boolean;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export declare class APIClient {
|
|
43
|
+
private client;
|
|
44
|
+
private modelRouterClient;
|
|
45
|
+
private config;
|
|
46
|
+
private logger;
|
|
47
|
+
private ws;
|
|
48
|
+
constructor(config: Config, logger: Logger);
|
|
49
|
+
login(email: string, password: string): Promise<boolean>;
|
|
50
|
+
loginWithToken(token: string): Promise<boolean>;
|
|
51
|
+
private refreshToken;
|
|
52
|
+
getSubscriptionStatus(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Chat API - Supports multiple inference strategies
|
|
55
|
+
*
|
|
56
|
+
* For authenticated users: Uses Vigthoria Cloud API
|
|
57
|
+
* For local users: Uses local Ollama or Model Router
|
|
58
|
+
*/
|
|
59
|
+
chat(messages: ChatMessage[], model: string, useLocal?: boolean): Promise<ChatResponse>;
|
|
60
|
+
private resolveToOllamaModel;
|
|
61
|
+
private formatMessagesForOllama;
|
|
62
|
+
chatStream(messages: ChatMessage[], model: string): AsyncGenerator<StreamChunk>;
|
|
63
|
+
chatWithCallback(messages: ChatMessage[], model: string, onChunk: (chunk: string) => void, onDone: () => void, onError: (error: Error) => void): Promise<void>;
|
|
64
|
+
generateCode(prompt: string, language: string, model: string): Promise<string>;
|
|
65
|
+
explainCode(code: string, language: string): Promise<string>;
|
|
66
|
+
reviewCode(code: string, language: string): Promise<{
|
|
67
|
+
score: number;
|
|
68
|
+
issues: {
|
|
69
|
+
type: string;
|
|
70
|
+
line: number;
|
|
71
|
+
message: string;
|
|
72
|
+
severity: string;
|
|
73
|
+
}[];
|
|
74
|
+
suggestions: string[];
|
|
75
|
+
}>;
|
|
76
|
+
fixCode(code: string, language: string, fixType: string): Promise<{
|
|
77
|
+
fixed: string;
|
|
78
|
+
changes: {
|
|
79
|
+
line: number;
|
|
80
|
+
before: string;
|
|
81
|
+
after: string;
|
|
82
|
+
reason: string;
|
|
83
|
+
}[];
|
|
84
|
+
}>;
|
|
85
|
+
private resolveModelId;
|
|
86
|
+
healthCheck(): Promise<boolean>;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAA0B;gBAExB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA2DpC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCxD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAsCvC,YAAY;IAsBpB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAgGpG,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,uBAAuB;IAYxB,UAAU,CACf,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,WAAW,CAAC;IAmCxB,gBAAgB,CACpB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,MAAM,EAAE,MAAM,IAAI,EAClB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC;IAkDV,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACxD,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC5E,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IASI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC5E,CAAC;IAWF,OAAO,CAAC,cAAc;IA6BhB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAQtC"}
|