@closedloop-ai/cli 0.2.3 → 0.3.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 +106 -258
- package/dist/THIRD_PARTY_NOTICES.txt +24 -0
- package/dist/closedloop.js +156 -0
- package/package.json +31 -62
- package/CONTRIBUTING.md +0 -437
- package/LICENSE +0 -21
- package/docs/CLI_COMMANDS.md +0 -508
- package/packages/cli/dist/__tests__/cli.test.js +0 -37
- package/packages/cli/dist/__tests__/cli.test.js.map +0 -1
- package/packages/cli/dist/__tests__/config.test.js +0 -33
- package/packages/cli/dist/__tests__/config.test.js.map +0 -1
- package/packages/cli/dist/__tests__/errors.test.js +0 -109
- package/packages/cli/dist/__tests__/errors.test.js.map +0 -1
- package/packages/cli/dist/__tests__/setup.js +0 -20
- package/packages/cli/dist/__tests__/setup.js.map +0 -1
- package/packages/cli/dist/__tests__/validation.test.js +0 -124
- package/packages/cli/dist/__tests__/validation.test.js.map +0 -1
- package/packages/cli/dist/api/auth.js +0 -27
- package/packages/cli/dist/api/auth.js.map +0 -1
- package/packages/cli/dist/api/feedback.js +0 -70
- package/packages/cli/dist/api/feedback.js.map +0 -1
- package/packages/cli/dist/api/input.js +0 -60
- package/packages/cli/dist/api/input.js.map +0 -1
- package/packages/cli/dist/api/team.js +0 -45
- package/packages/cli/dist/api/team.js.map +0 -1
- package/packages/cli/dist/api/usage.js +0 -49
- package/packages/cli/dist/api/usage.js.map +0 -1
- package/packages/cli/dist/cli.js +0 -163
- package/packages/cli/dist/cli.js.map +0 -1
- package/packages/cli/dist/commands/config.js +0 -186
- package/packages/cli/dist/commands/config.js.map +0 -1
- package/packages/cli/dist/commands/feedback.js +0 -234
- package/packages/cli/dist/commands/feedback.js.map +0 -1
- package/packages/cli/dist/commands/input.js +0 -370
- package/packages/cli/dist/commands/input.js.map +0 -1
- package/packages/cli/dist/commands/list.js +0 -81
- package/packages/cli/dist/commands/list.js.map +0 -1
- package/packages/cli/dist/commands/status.js +0 -93
- package/packages/cli/dist/commands/status.js.map +0 -1
- package/packages/cli/dist/commands/submit.js +0 -225
- package/packages/cli/dist/commands/submit.js.map +0 -1
- package/packages/cli/dist/commands/team.js +0 -44
- package/packages/cli/dist/commands/team.js.map +0 -1
- package/packages/cli/dist/commands/usage.js +0 -168
- package/packages/cli/dist/commands/usage.js.map +0 -1
- package/packages/cli/dist/config/constants.js +0 -37
- package/packages/cli/dist/config/constants.js.map +0 -1
- package/packages/cli/dist/config/index.js +0 -84
- package/packages/cli/dist/config/index.js.map +0 -1
- package/packages/cli/dist/types/index.js +0 -3
- package/packages/cli/dist/types/index.js.map +0 -1
- package/packages/cli/dist/utils/config.js +0 -55
- package/packages/cli/dist/utils/config.js.map +0 -1
- package/packages/cli/dist/utils/errors.js +0 -70
- package/packages/cli/dist/utils/errors.js.map +0 -1
- package/packages/cli/dist/utils/validation.js +0 -133
- package/packages/cli/dist/utils/validation.js.map +0 -1
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.submitCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
|
-
const feedback_1 = require("../api/feedback");
|
|
12
|
-
const constants_1 = require("../config/constants");
|
|
13
|
-
exports.submitCommand = new commander_1.Command('submit')
|
|
14
|
-
.description('Submit customer input for AI analysis and insight generation')
|
|
15
|
-
.argument('[content]', 'Customer input content to analyze')
|
|
16
|
-
.option('-t, --title <title>', 'Title for this customer input')
|
|
17
|
-
.option('-u, --url <url>', 'Where this input came from (support ticket, survey, etc.)')
|
|
18
|
-
.option('-c, --customer <id>', 'Customer identifier')
|
|
19
|
-
.option('-n, --name <name>', 'Name of person who provided the input')
|
|
20
|
-
.option('-e, --email <email>', 'Email of person who provided the input')
|
|
21
|
-
.option('--interactive', 'Fill in details step by step')
|
|
22
|
-
.option('-w, --wait', 'Wait until processing is completed')
|
|
23
|
-
.option('--json', 'Output in JSON format')
|
|
24
|
-
.action(async (content, options) => {
|
|
25
|
-
try {
|
|
26
|
-
let feedbackData = {};
|
|
27
|
-
if (options.interactive || !content) {
|
|
28
|
-
// Interactive mode
|
|
29
|
-
const answers = await inquirer_1.default.prompt([
|
|
30
|
-
{
|
|
31
|
-
type: 'input',
|
|
32
|
-
name: 'content',
|
|
33
|
-
message: 'What customer input would you like to analyze?',
|
|
34
|
-
validate: (input) => input.length >= 10 || 'Input must be at least 10 characters',
|
|
35
|
-
default: content
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
type: 'input',
|
|
39
|
-
name: 'title',
|
|
40
|
-
message: 'What should we call this input? (optional):',
|
|
41
|
-
default: options.title
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
type: 'input',
|
|
45
|
-
name: 'sourceUrl',
|
|
46
|
-
message: 'Where did this come from? (support ticket, survey, etc.) (optional):',
|
|
47
|
-
default: options.url
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
type: 'input',
|
|
51
|
-
name: 'customerId',
|
|
52
|
-
message: 'Customer identifier (optional):',
|
|
53
|
-
default: options.customer
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
type: 'input',
|
|
57
|
-
name: 'reporterName',
|
|
58
|
-
message: 'Who provided this input? (optional):',
|
|
59
|
-
default: options.name
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'input',
|
|
63
|
-
name: 'reporterEmail',
|
|
64
|
-
message: 'Their email address (optional):',
|
|
65
|
-
default: options.email
|
|
66
|
-
}
|
|
67
|
-
]);
|
|
68
|
-
feedbackData = {
|
|
69
|
-
content: answers.content,
|
|
70
|
-
title: answers.title,
|
|
71
|
-
source_url: answers.sourceUrl,
|
|
72
|
-
customer_id: answers.customerId,
|
|
73
|
-
reporter_name: answers.reporterName,
|
|
74
|
-
reporter_email: answers.reporterEmail
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// Command line mode
|
|
79
|
-
feedbackData = {
|
|
80
|
-
content,
|
|
81
|
-
title: options.title,
|
|
82
|
-
source_url: options.url,
|
|
83
|
-
customer_id: options.customer,
|
|
84
|
-
reporter_name: options.name,
|
|
85
|
-
reporter_email: options.email
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
const spinner = (0, ora_1.default)('Submitting customer input for AI analysis...').start();
|
|
89
|
-
const result = await (0, feedback_1.submitFeedback)(feedbackData);
|
|
90
|
-
if (options.wait) {
|
|
91
|
-
// Wait for processing to complete
|
|
92
|
-
if (options.json) {
|
|
93
|
-
// For JSON, we'll output the final result after waiting
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
console.log(chalk_1.default.green('✅ Customer input submitted successfully!'));
|
|
97
|
-
console.log(chalk_1.default.blue(`Submission ID: ${result.id}`));
|
|
98
|
-
}
|
|
99
|
-
const waitSpinner = (0, ora_1.default)('Processing...').start();
|
|
100
|
-
let attempts = 0;
|
|
101
|
-
const maxAttempts = constants_1.CONFIG.MAX_RETRY_ATTEMPTS;
|
|
102
|
-
while (attempts < maxAttempts) {
|
|
103
|
-
await new Promise(resolve => setTimeout(resolve, constants_1.CONFIG.POLL_INTERVAL_MS));
|
|
104
|
-
try {
|
|
105
|
-
const statusResult = await (0, feedback_1.getFeedbackStatus)(result.id);
|
|
106
|
-
if (statusResult.status === 'completed') {
|
|
107
|
-
waitSpinner.succeed('Processing completed!');
|
|
108
|
-
if (options.json) {
|
|
109
|
-
console.log(JSON.stringify({ success: true, data: statusResult }, null, 2));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
console.log(chalk_1.default.blue(`Feedback generated: ${statusResult.feedbackCount || 0}`));
|
|
113
|
-
console.log(chalk_1.default.blue(`Credits used: ${statusResult.creditsConsumed || 0}`));
|
|
114
|
-
if ((statusResult.feedbackCount || 0) > 0) {
|
|
115
|
-
console.log(chalk_1.default.gray('Run "cl list" to see all feedback'));
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
else if (statusResult.status === 'failed') {
|
|
121
|
-
waitSpinner.fail('Processing failed');
|
|
122
|
-
if (options.json) {
|
|
123
|
-
console.log(JSON.stringify({ success: false, error: 'Processing failed', data: statusResult }, null, 2));
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
console.log(chalk_1.default.red('\n❌ Processing failed. Check the status for more details.'));
|
|
127
|
-
}
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
// Still processing
|
|
132
|
-
waitSpinner.text = `Processing... (${statusResult.status})`;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
catch (error) {
|
|
136
|
-
// Continue waiting on API errors
|
|
137
|
-
waitSpinner.text = 'Processing... (checking status)';
|
|
138
|
-
}
|
|
139
|
-
attempts++;
|
|
140
|
-
}
|
|
141
|
-
if (attempts >= maxAttempts) {
|
|
142
|
-
waitSpinner.warn('Processing is taking longer than expected');
|
|
143
|
-
if (options.json) {
|
|
144
|
-
console.log(JSON.stringify({ success: false, error: 'Processing timeout', data: { id: result.id, message: 'Processing is taking longer than expected' } }, null, 2));
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
console.log(chalk_1.default.yellow('\n⏳ Processing is still in progress. You can check status manually:'));
|
|
148
|
-
console.log(chalk_1.default.gray(` cl status ${result.id}`));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
if (options.json) {
|
|
154
|
-
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
console.log(chalk_1.default.green('✅ Customer input submitted successfully!'));
|
|
158
|
-
console.log(chalk_1.default.blue(`Submission ID: ${result.id}`));
|
|
159
|
-
console.log(chalk_1.default.gray('Run "cl status ' + result.id + '" to check progress'));
|
|
160
|
-
console.log(chalk_1.default.gray('Or use "cl submit --wait" to wait for completion'));
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
if (options.json) {
|
|
166
|
-
console.log(JSON.stringify({
|
|
167
|
-
success: false,
|
|
168
|
-
error: error.message,
|
|
169
|
-
details: error.response?.data || 'Unknown error occurred'
|
|
170
|
-
}, null, 2));
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
// User-friendly error messages
|
|
174
|
-
if (error.response?.status === 400) {
|
|
175
|
-
const errorData = error.response.data;
|
|
176
|
-
if (errorData?.code === 'VALIDATION_ERROR') {
|
|
177
|
-
console.error(chalk_1.default.red('❌ Validation Error:'), errorData.error);
|
|
178
|
-
console.log(chalk_1.default.gray('\n💡 Common issues:'));
|
|
179
|
-
console.log(chalk_1.default.gray(' • Content must be at least 10 characters'));
|
|
180
|
-
console.log(chalk_1.default.gray(' • Check that all required fields are provided'));
|
|
181
|
-
console.log(chalk_1.default.gray(' • Ensure API key is valid: cl config'));
|
|
182
|
-
}
|
|
183
|
-
else if (errorData?.code === 'PROCESSING_ERROR') {
|
|
184
|
-
console.error(chalk_1.default.red('❌ Processing Error:'), errorData.error);
|
|
185
|
-
console.log(chalk_1.default.gray('\n💡 This usually means:'));
|
|
186
|
-
console.log(chalk_1.default.gray(' • The content could not be processed by our AI'));
|
|
187
|
-
console.log(chalk_1.default.gray(' • Try rephrasing your input'));
|
|
188
|
-
console.log(chalk_1.default.gray(' • Make sure the content is clear and meaningful'));
|
|
189
|
-
console.log(chalk_1.default.gray(' • Check API key: cl config'));
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
console.error(chalk_1.default.red('❌ Bad Request:'), errorData?.error || 'Invalid input provided');
|
|
193
|
-
console.log(chalk_1.default.gray('\n💡 Try:'));
|
|
194
|
-
console.log(chalk_1.default.gray(' • Check your input content'));
|
|
195
|
-
console.log(chalk_1.default.gray(' • Verify API key: cl config'));
|
|
196
|
-
console.log(chalk_1.default.gray(' • Get help: cl submit --help'));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else if (error.response?.status === 401) {
|
|
200
|
-
console.error(chalk_1.default.red('❌ Authentication Error:'), 'Invalid API key');
|
|
201
|
-
console.log(chalk_1.default.gray('\n💡 To fix:'));
|
|
202
|
-
console.log(chalk_1.default.gray(' 1. Get your free API key at: https://closedloop.sh'));
|
|
203
|
-
console.log(chalk_1.default.gray(' 2. Run: cl config --set-api-key <your-key>'));
|
|
204
|
-
}
|
|
205
|
-
else if (error.response?.status === 429) {
|
|
206
|
-
console.error(chalk_1.default.red('❌ Rate Limited:'), 'Too many requests');
|
|
207
|
-
console.log(chalk_1.default.gray('\n💡 Wait a moment and try again'));
|
|
208
|
-
}
|
|
209
|
-
else if (error.response?.status >= 500) {
|
|
210
|
-
console.error(chalk_1.default.red('❌ Server Error:'), 'Our servers are having issues');
|
|
211
|
-
console.log(chalk_1.default.gray('\n💡 Try again in a few minutes'));
|
|
212
|
-
}
|
|
213
|
-
else if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
|
|
214
|
-
console.error(chalk_1.default.red('❌ Connection Error:'), 'Cannot connect to ClosedLoop servers');
|
|
215
|
-
console.log(chalk_1.default.gray('\n💡 Check your internet connection and try again'));
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
219
|
-
console.log(chalk_1.default.gray('\n💡 Get help: cl --help'));
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
process.exit(1);
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
//# sourceMappingURL=submit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.teamCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const team_1 = require("../api/team");
|
|
11
|
-
exports.teamCommand = new commander_1.Command('team')
|
|
12
|
-
.description('Manage team settings')
|
|
13
|
-
.action(async (options) => {
|
|
14
|
-
console.log(chalk_1.default.yellow('Use team subcommands to manage team settings'));
|
|
15
|
-
console.log(chalk_1.default.black('Available commands: website'));
|
|
16
|
-
});
|
|
17
|
-
// Team website subcommand
|
|
18
|
-
const teamWebsiteCommand = new commander_1.Command('website')
|
|
19
|
-
.description('Manage team website')
|
|
20
|
-
.action(async (options) => {
|
|
21
|
-
console.log(chalk_1.default.yellow('Use website subcommands to manage team website'));
|
|
22
|
-
console.log(chalk_1.default.black('Available commands: update'));
|
|
23
|
-
});
|
|
24
|
-
// Update team website
|
|
25
|
-
const teamWebsiteUpdateCommand = new commander_1.Command('update')
|
|
26
|
-
.description('Update team website')
|
|
27
|
-
.argument('<website>', 'Team website URL (must include http:// or https://)')
|
|
28
|
-
.action(async (website, options) => {
|
|
29
|
-
try {
|
|
30
|
-
const spinner = (0, ora_1.default)('Updating team website...').start();
|
|
31
|
-
const result = await (0, team_1.updateTeamWebsite)(website);
|
|
32
|
-
spinner.succeed('Team website updated successfully');
|
|
33
|
-
console.log(chalk_1.default.green(`Website: ${result.website}`));
|
|
34
|
-
console.log(chalk_1.default.gray(`Updated: ${result.updated_at}`));
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
(0, ora_1.default)().fail('Failed to update team website');
|
|
38
|
-
console.error(chalk_1.default.red(error.message));
|
|
39
|
-
process.exit(1);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
teamWebsiteCommand.addCommand(teamWebsiteUpdateCommand);
|
|
43
|
-
exports.teamCommand.addCommand(teamWebsiteCommand);
|
|
44
|
-
//# sourceMappingURL=team.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AAEtB,sCAAgD;AAEnC,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,0BAA0B;AAC1B,MAAM,kBAAkB,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KAC9C,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,MAAM,wBAAwB,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACnD,WAAW,CAAC,qBAAqB,CAAC;KAClC,QAAQ,CAAC,WAAW,EAAE,qDAAqD,CAAC;KAC5E,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAuB,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAEhD,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAE3D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAA,aAAG,GAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;AACxD,mBAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleUsageCommand = handleUsageCommand;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const table_1 = require("table");
|
|
9
|
-
const usage_1 = require("../api/usage");
|
|
10
|
-
// UUID regex pattern for detecting IDs
|
|
11
|
-
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
12
|
-
// Main usage command handler
|
|
13
|
-
async function handleUsageCommand(id, options) {
|
|
14
|
-
// If ID provided, show specific usage details
|
|
15
|
-
if (id) {
|
|
16
|
-
if (!UUID_REGEX.test(id)) {
|
|
17
|
-
console.log(chalk_1.default.yellow('💡 Invalid usage ID format'));
|
|
18
|
-
console.log(chalk_1.default.black('Usage ID should be a UUID like: 74e3dd87-878f-41cf-8e5a-87527bbf7770'));
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
return await showUsage(id, options);
|
|
22
|
-
}
|
|
23
|
-
// Otherwise, list all usage
|
|
24
|
-
return await listUsageData(options);
|
|
25
|
-
}
|
|
26
|
-
// Helper functions
|
|
27
|
-
async function listUsageData(options) {
|
|
28
|
-
const page = parseInt(options.page) || 1;
|
|
29
|
-
const limit = parseInt(options.limit) || 20;
|
|
30
|
-
const result = await (0, usage_1.listUsage)(page, limit);
|
|
31
|
-
if (options.json) {
|
|
32
|
-
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const usage = result.usage || [];
|
|
36
|
-
if (usage.length === 0) {
|
|
37
|
-
console.log(chalk_1.default.yellow('💰 No usage data found'));
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
console.log(chalk_1.default.blue('\n💰 Usage Summary:'));
|
|
41
|
-
const tableData = [
|
|
42
|
-
[
|
|
43
|
-
chalk_1.default.bold('ID'),
|
|
44
|
-
chalk_1.default.bold('Title'),
|
|
45
|
-
chalk_1.default.bold('Status'),
|
|
46
|
-
chalk_1.default.bold('Credits Used'),
|
|
47
|
-
chalk_1.default.bold('AI Feedback'),
|
|
48
|
-
chalk_1.default.bold('Submitted')
|
|
49
|
-
]
|
|
50
|
-
];
|
|
51
|
-
usage.forEach((item) => {
|
|
52
|
-
tableData.push([
|
|
53
|
-
item.id,
|
|
54
|
-
item.title || chalk_1.default.gray('null'),
|
|
55
|
-
item.status || 'unknown',
|
|
56
|
-
item.credits_consumed || 0,
|
|
57
|
-
item.feedback_count || 0,
|
|
58
|
-
item.created_at ? new Date(item.created_at).toLocaleString() : 'Unknown'
|
|
59
|
-
]);
|
|
60
|
-
});
|
|
61
|
-
console.log((0, table_1.table)(tableData, {
|
|
62
|
-
border: {
|
|
63
|
-
topBody: '─',
|
|
64
|
-
topJoin: '┬',
|
|
65
|
-
topLeft: '┌',
|
|
66
|
-
topRight: '┐',
|
|
67
|
-
bottomBody: '─',
|
|
68
|
-
bottomJoin: '┴',
|
|
69
|
-
bottomLeft: '└',
|
|
70
|
-
bottomRight: '┘',
|
|
71
|
-
bodyLeft: '│',
|
|
72
|
-
bodyRight: '│',
|
|
73
|
-
bodyJoin: '│',
|
|
74
|
-
joinBody: '─',
|
|
75
|
-
joinLeft: '├',
|
|
76
|
-
joinRight: '┤',
|
|
77
|
-
joinJoin: '┼'
|
|
78
|
-
}
|
|
79
|
-
}));
|
|
80
|
-
if (result.pagination) {
|
|
81
|
-
console.log(chalk_1.default.black(`\nPage ${result.pagination.page} of ${result.pagination.pages} (${result.pagination.total} total submissions)`));
|
|
82
|
-
if (result.pagination.page < result.pagination.pages) {
|
|
83
|
-
console.log(chalk_1.default.gray(`💡 Use --page ${result.pagination.page + 1} to see next page`));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Show total credits
|
|
87
|
-
const totalCredits = usage.reduce((sum, item) => sum + (item.credits_consumed || 0), 0);
|
|
88
|
-
console.log(chalk_1.default.blue(`\n💰 Total Credits Used: ${totalCredits}`));
|
|
89
|
-
}
|
|
90
|
-
async function showUsage(id, options) {
|
|
91
|
-
try {
|
|
92
|
-
const result = await (0, usage_1.getUsageDetail)(id);
|
|
93
|
-
if (options.json) {
|
|
94
|
-
console.log(JSON.stringify({ success: true, data: result }, null, 2));
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
console.log(chalk_1.default.blue('\n💰 Usage Details:'));
|
|
98
|
-
console.log(chalk_1.default.black('─'.repeat(50)));
|
|
99
|
-
console.log(chalk_1.default.blue('ID:'), result.id);
|
|
100
|
-
console.log(chalk_1.default.blue('Title:'), result.title || chalk_1.default.gray('null'));
|
|
101
|
-
console.log(chalk_1.default.blue('Status:'), result.status || 'unknown');
|
|
102
|
-
console.log(chalk_1.default.blue('Credits Used:'), result.credits_consumed || 0);
|
|
103
|
-
console.log(chalk_1.default.blue('AI Feedback Generated:'), result.feedback_count || 0);
|
|
104
|
-
console.log(chalk_1.default.blue('Submitted:'), result.created_at ? new Date(result.created_at).toLocaleString() : 'Unknown');
|
|
105
|
-
console.log(chalk_1.default.blue('Updated:'), result.updated_at ? new Date(result.updated_at).toLocaleString() : 'Unknown');
|
|
106
|
-
if (result.feedbacks && result.feedbacks.length > 0) {
|
|
107
|
-
console.log(chalk_1.default.blue('\nGenerated Feedback:'));
|
|
108
|
-
result.feedbacks.forEach((feedback, index) => {
|
|
109
|
-
console.log(chalk_1.default.black(` ${index + 1}. ${feedback.title || 'Untitled'}`));
|
|
110
|
-
console.log(chalk_1.default.gray(` ID: ${feedback.id}`));
|
|
111
|
-
console.log(chalk_1.default.gray(` Created: ${feedback.created_at ? new Date(feedback.created_at).toLocaleString() : 'Unknown'}`));
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
if (options.json) {
|
|
117
|
-
console.log(JSON.stringify({
|
|
118
|
-
success: false,
|
|
119
|
-
error: error.message,
|
|
120
|
-
details: error.response?.data || 'Unknown error occurred'
|
|
121
|
-
}, null, 2));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
if (error.response?.status === 404) {
|
|
125
|
-
console.error(chalk_1.default.red('❌ Usage record not found'));
|
|
126
|
-
console.log(chalk_1.default.black('The usage ID you provided does not exist or is not accessible.'));
|
|
127
|
-
}
|
|
128
|
-
else if (error.response?.status === 401) {
|
|
129
|
-
console.error(chalk_1.default.red('❌ Authentication Error:'), 'Invalid API key');
|
|
130
|
-
console.log(chalk_1.default.black('\n💡 To fix:'));
|
|
131
|
-
console.log(chalk_1.default.black(' 1. Get your free API key at: https://closedloop.sh'));
|
|
132
|
-
console.log(chalk_1.default.black(' 2. Run: cl config set --api-key <your-key>'));
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
136
|
-
console.log(chalk_1.default.black('\n💡 Get help: cl --help'));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
process.exit(1);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
function handleError(error, options) {
|
|
143
|
-
if (options.json) {
|
|
144
|
-
console.log(JSON.stringify({
|
|
145
|
-
success: false,
|
|
146
|
-
error: error.message,
|
|
147
|
-
details: error.response?.data || 'Unknown error occurred'
|
|
148
|
-
}, null, 2));
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
if (error.response?.status === 404) {
|
|
152
|
-
console.error(chalk_1.default.red('❌ Not found'));
|
|
153
|
-
console.log(chalk_1.default.black('The requested resource does not exist or is not accessible.'));
|
|
154
|
-
}
|
|
155
|
-
else if (error.response?.status === 401) {
|
|
156
|
-
console.error(chalk_1.default.red('❌ Authentication Error:'), 'Invalid API key');
|
|
157
|
-
console.log(chalk_1.default.black('\n💡 To fix:'));
|
|
158
|
-
console.log(chalk_1.default.black(' 1. Get your free API key at: https://closedloop.sh'));
|
|
159
|
-
console.log(chalk_1.default.black(' 2. Run: cl config set --api-key <your-key>'));
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
console.error(chalk_1.default.red('❌ Error:'), error.message);
|
|
163
|
-
console.log(chalk_1.default.black('\n💡 Get help: cl --help'));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
process.exit(1);
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=usage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/commands/usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.URLS = exports.MESSAGES = exports.CONFIG = void 0;
|
|
4
|
-
exports.CONFIG = {
|
|
5
|
-
API_BASE_URL: process.env.CLOSEDLOOP_API_URL || 'https://mcp.closedloop.sh',
|
|
6
|
-
USER_AGENT: 'closedloop-cli/0.2.0',
|
|
7
|
-
MAX_RETRY_ATTEMPTS: 100,
|
|
8
|
-
POLL_INTERVAL_MS: 3000,
|
|
9
|
-
DEFAULT_PAGE_SIZE: 20,
|
|
10
|
-
MAX_PAGE_SIZE: 100,
|
|
11
|
-
MIN_API_KEY_LENGTH: 10,
|
|
12
|
-
MAX_CONTENT_LENGTH: 10000,
|
|
13
|
-
TIMEOUT_MS: 30000
|
|
14
|
-
};
|
|
15
|
-
exports.MESSAGES = {
|
|
16
|
-
NO_API_KEY: `🔑 No API key configured!
|
|
17
|
-
|
|
18
|
-
To get started:
|
|
19
|
-
1. Go to https://closedloop.sh
|
|
20
|
-
2. Sign up for a free account
|
|
21
|
-
3. Generate your API key
|
|
22
|
-
4. Run: cl config --set-api-key <your-key>
|
|
23
|
-
|
|
24
|
-
Get your free API key at: https://closedloop.sh`,
|
|
25
|
-
INVALID_API_KEY: '❌ Invalid API key. Get your free API key at https://closedloop.sh',
|
|
26
|
-
CONNECTION_ERROR: '❌ Connection Error: Cannot connect to ClosedLoop AI servers',
|
|
27
|
-
CHECK_INTERNET: 'Check your internet connection and try again',
|
|
28
|
-
GET_HELP: 'Get help: cl --help',
|
|
29
|
-
PROCESSING_ERROR: '❌ Processing Error: Unable to process feedback',
|
|
30
|
-
VALIDATION_ERROR: '❌ Validation Error:',
|
|
31
|
-
UNKNOWN_ERROR: 'Unknown error occurred'
|
|
32
|
-
};
|
|
33
|
-
exports.URLS = {
|
|
34
|
-
CLOSEDLOOP_HOME: 'https://closedloop.sh',
|
|
35
|
-
GET_API_KEY: 'https://closedloop.sh'
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/config/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,2BAA2B;IAC3E,UAAU,EAAE,sBAAsB;IAClC,kBAAkB,EAAE,GAAG;IACvB,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,EAAE;IACrB,aAAa,EAAE,GAAG;IAClB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,KAAK;IACzB,UAAU,EAAE,KAAK;CACT,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,UAAU,EAAE;;;;;;;;gDAQkC;IAE9C,eAAe,EAAE,mEAAmE;IACpF,gBAAgB,EAAE,6DAA6D;IAC/E,cAAc,EAAE,8CAA8C;IAC9D,QAAQ,EAAE,qBAAqB;IAC/B,gBAAgB,EAAE,gDAAgD;IAClE,gBAAgB,EAAE,qBAAqB;IACvC,aAAa,EAAE,wBAAwB;CAC/B,CAAC;AAEE,QAAA,IAAI,GAAG;IAClB,eAAe,EAAE,uBAAuB;IACxC,WAAW,EAAE,uBAAuB;CAC5B,CAAC"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.config = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const os = __importStar(require("os"));
|
|
40
|
-
class ConfigManager {
|
|
41
|
-
constructor() {
|
|
42
|
-
this.config = {};
|
|
43
|
-
this.configPath = path.join(os.homedir(), '.closedloop', 'config.json');
|
|
44
|
-
this.load();
|
|
45
|
-
}
|
|
46
|
-
load() {
|
|
47
|
-
try {
|
|
48
|
-
if (fs.existsSync(this.configPath)) {
|
|
49
|
-
const data = fs.readFileSync(this.configPath, 'utf8');
|
|
50
|
-
this.config = JSON.parse(data);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
// Ignore config load errors
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
save() {
|
|
58
|
-
try {
|
|
59
|
-
const dir = path.dirname(this.configPath);
|
|
60
|
-
if (!fs.existsSync(dir)) {
|
|
61
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
62
|
-
}
|
|
63
|
-
fs.writeFileSync(this.configPath, JSON.stringify(this.config, null, 2));
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
throw new Error('Failed to save configuration');
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
get(key) {
|
|
70
|
-
if (key) {
|
|
71
|
-
return this.config[key];
|
|
72
|
-
}
|
|
73
|
-
return { ...this.config };
|
|
74
|
-
}
|
|
75
|
-
set(key, value) {
|
|
76
|
-
this.config[key] = value;
|
|
77
|
-
this.save();
|
|
78
|
-
}
|
|
79
|
-
getConfigPath() {
|
|
80
|
-
return fs.existsSync(this.configPath) ? this.configPath : 'Not created yet';
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.config = new ConfigManager();
|
|
84
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAOzB,MAAM,aAAa;IAIjB;QAFQ,WAAM,GAAW,EAAE,CAAC;QAG1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4BAA4B;QAC9B,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,GAAG,CAAC,GAAkB;QACpB,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAiB,EAAE,KAAU;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9E,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|