@closedloop-ai/cli 0.2.4 → 0.3.1

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 (71) hide show
  1. package/README.md +176 -270
  2. package/dist/THIRD_PARTY_NOTICES.txt +24 -0
  3. package/dist/closedloop.js +156 -0
  4. package/package.json +31 -62
  5. package/CONTRIBUTING.md +0 -437
  6. package/LICENSE +0 -21
  7. package/docs/CLI_COMMANDS.md +0 -522
  8. package/packages/cli/dist/__tests__/api.test.js +0 -151
  9. package/packages/cli/dist/__tests__/api.test.js.map +0 -1
  10. package/packages/cli/dist/__tests__/cli.test.js +0 -37
  11. package/packages/cli/dist/__tests__/cli.test.js.map +0 -1
  12. package/packages/cli/dist/__tests__/config.test.js +0 -33
  13. package/packages/cli/dist/__tests__/config.test.js.map +0 -1
  14. package/packages/cli/dist/__tests__/errors.test.js +0 -109
  15. package/packages/cli/dist/__tests__/errors.test.js.map +0 -1
  16. package/packages/cli/dist/__tests__/performance.test.js +0 -221
  17. package/packages/cli/dist/__tests__/performance.test.js.map +0 -1
  18. package/packages/cli/dist/__tests__/setup.js +0 -50
  19. package/packages/cli/dist/__tests__/setup.js.map +0 -1
  20. package/packages/cli/dist/__tests__/team-simple.test.js +0 -38
  21. package/packages/cli/dist/__tests__/team-simple.test.js.map +0 -1
  22. package/packages/cli/dist/__tests__/test-factories.js +0 -148
  23. package/packages/cli/dist/__tests__/test-factories.js.map +0 -1
  24. package/packages/cli/dist/__tests__/validation.test.js +0 -124
  25. package/packages/cli/dist/__tests__/validation.test.js.map +0 -1
  26. package/packages/cli/dist/api/auth.js +0 -27
  27. package/packages/cli/dist/api/auth.js.map +0 -1
  28. package/packages/cli/dist/api/feedback.js +0 -70
  29. package/packages/cli/dist/api/feedback.js.map +0 -1
  30. package/packages/cli/dist/api/ingest.js +0 -60
  31. package/packages/cli/dist/api/ingest.js.map +0 -1
  32. package/packages/cli/dist/api/input.js +0 -60
  33. package/packages/cli/dist/api/input.js.map +0 -1
  34. package/packages/cli/dist/api/team.js +0 -59
  35. package/packages/cli/dist/api/team.js.map +0 -1
  36. package/packages/cli/dist/api/usage.js +0 -49
  37. package/packages/cli/dist/api/usage.js.map +0 -1
  38. package/packages/cli/dist/cli.js +0 -201
  39. package/packages/cli/dist/cli.js.map +0 -1
  40. package/packages/cli/dist/commands/config.js +0 -186
  41. package/packages/cli/dist/commands/config.js.map +0 -1
  42. package/packages/cli/dist/commands/feedback.js +0 -234
  43. package/packages/cli/dist/commands/feedback.js.map +0 -1
  44. package/packages/cli/dist/commands/ingest.js +0 -391
  45. package/packages/cli/dist/commands/ingest.js.map +0 -1
  46. package/packages/cli/dist/commands/input.js +0 -370
  47. package/packages/cli/dist/commands/input.js.map +0 -1
  48. package/packages/cli/dist/commands/insight.js +0 -234
  49. package/packages/cli/dist/commands/insight.js.map +0 -1
  50. package/packages/cli/dist/commands/list.js +0 -81
  51. package/packages/cli/dist/commands/list.js.map +0 -1
  52. package/packages/cli/dist/commands/status.js +0 -93
  53. package/packages/cli/dist/commands/status.js.map +0 -1
  54. package/packages/cli/dist/commands/submit.js +0 -225
  55. package/packages/cli/dist/commands/submit.js.map +0 -1
  56. package/packages/cli/dist/commands/team.js +0 -82
  57. package/packages/cli/dist/commands/team.js.map +0 -1
  58. package/packages/cli/dist/commands/usage.js +0 -168
  59. package/packages/cli/dist/commands/usage.js.map +0 -1
  60. package/packages/cli/dist/config/constants.js +0 -38
  61. package/packages/cli/dist/config/constants.js.map +0 -1
  62. package/packages/cli/dist/config/index.js +0 -84
  63. package/packages/cli/dist/config/index.js.map +0 -1
  64. package/packages/cli/dist/types/index.js +0 -3
  65. package/packages/cli/dist/types/index.js.map +0 -1
  66. package/packages/cli/dist/utils/config.js +0 -55
  67. package/packages/cli/dist/utils/config.js.map +0 -1
  68. package/packages/cli/dist/utils/errors.js +0 -70
  69. package/packages/cli/dist/utils/errors.js.map +0 -1
  70. package/packages/cli/dist/utils/validation.js +0 -133
  71. package/packages/cli/dist/utils/validation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"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"}
@@ -1,391 +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.handleIngestCommand = handleIngestCommand;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const ora_1 = __importDefault(require("ora"));
9
- const inquirer_1 = __importDefault(require("inquirer"));
10
- const table_1 = require("table");
11
- const fs_1 = require("fs");
12
- const path_1 = __importDefault(require("path"));
13
- const feedback_1 = require("../api/feedback");
14
- const ingest_1 = require("../api/ingest");
15
- const constants_1 = require("../config/constants");
16
- const validation_1 = require("../utils/validation");
17
- // UUID regex pattern for detecting IDs
18
- const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
19
- // Main ingest command handler
20
- async function handleIngestCommand(content, options) {
21
- // Handle file option
22
- if (options.file) {
23
- try {
24
- const filePath = path_1.default.resolve(options.file);
25
- const fileContent = await fs_1.promises.readFile(filePath, 'utf8');
26
- if (!fileContent.trim()) {
27
- console.error(chalk_1.default.red('Error: File is empty'));
28
- return;
29
- }
30
- // Use file content as the content parameter
31
- content = fileContent;
32
- }
33
- catch (error) {
34
- console.error(chalk_1.default.red(`Error reading file: ${error.message}`));
35
- return;
36
- }
37
- }
38
- // Check for common command mistakes
39
- if (content && ['list', 'show', 'status', 'help'].includes(content.toLowerCase())) {
40
- console.log(chalk_1.default.yellow('šŸ’” Did you mean one of these commands?'));
41
- console.log(chalk_1.default.black(''));
42
- console.log(chalk_1.default.blue(' cl ingest') + chalk_1.default.black(' # List all ingested feedback'));
43
- console.log(chalk_1.default.blue(' cl ingest <id>') + chalk_1.default.black(' # Show specific ingested feedback details'));
44
- console.log(chalk_1.default.blue(' cl ingest "your content"') + chalk_1.default.black(' # Ingest new feedback for analysis'));
45
- console.log(chalk_1.default.blue(' cl ingest --file <path>') + chalk_1.default.black(' # Ingest feedback from file'));
46
- console.log(chalk_1.default.black(''));
47
- console.log(chalk_1.default.gray('Examples:'));
48
- console.log(chalk_1.default.gray(' cl ingest "Dashboard is confusing"'));
49
- console.log(chalk_1.default.gray(' cl ingest --file feedback.txt'));
50
- console.log(chalk_1.default.gray(' cl ingest 74e3dd87-878f-41cf-8e5a-87527bbf7770'));
51
- return;
52
- }
53
- // If content looks like a UUID, treat it as an ID and show details
54
- if (content && (0, validation_1.validateUuid)(content)) {
55
- return await showIngest(content, options);
56
- }
57
- // If content provided and not a UUID, create new ingest
58
- if (content) {
59
- return await createIngest(content, options);
60
- }
61
- // If no content provided, list ingests
62
- return await listIngests(options);
63
- }
64
- // Helper functions
65
- async function createIngest(content, options) {
66
- // Validate and sanitize input data
67
- const validatedData = (0, validation_1.validateAndSanitizeInput)({
68
- content,
69
- title: options.title,
70
- source_url: options.url,
71
- customer_id: options.customer,
72
- reporter_name: options.name,
73
- reporter_email: options.email
74
- });
75
- let feedbackData = validatedData;
76
- if (options.interactive || !content) {
77
- const answers = await inquirer_1.default.prompt([
78
- {
79
- type: 'input',
80
- name: 'content',
81
- message: 'What customer feedback would you like to ingest for analysis?',
82
- validate: (input) => input.length >= 10 || 'Input must be at least 10 characters',
83
- default: content
84
- },
85
- {
86
- type: 'input',
87
- name: 'title',
88
- message: 'Title for this input (optional):',
89
- default: options.title
90
- },
91
- {
92
- type: 'input',
93
- name: 'url',
94
- message: 'Source URL (optional):',
95
- default: options.url
96
- },
97
- {
98
- type: 'input',
99
- name: 'customer_id',
100
- message: 'Customer ID (optional):',
101
- default: options.customer
102
- },
103
- {
104
- type: 'input',
105
- name: 'reporter_name',
106
- message: 'Reporter name (optional):',
107
- default: options.name
108
- },
109
- {
110
- type: 'input',
111
- name: 'reporter_email',
112
- message: 'Reporter email (optional):',
113
- default: options.email
114
- }
115
- ]);
116
- feedbackData = {
117
- content: answers.content,
118
- ...(answers.title && { title: answers.title }),
119
- ...(answers.url && { source_url: answers.url }),
120
- ...(answers.customer_id && { customer_id: answers.customer_id }),
121
- ...(answers.reporter_name && { reporter_name: answers.reporter_name }),
122
- ...(answers.reporter_email && { reporter_email: answers.reporter_email })
123
- };
124
- }
125
- else {
126
- feedbackData = {
127
- content,
128
- ...(options.title && { title: options.title }),
129
- ...(options.url && { source_url: options.url }),
130
- ...(options.customer && { customer_id: options.customer }),
131
- ...(options.name && { reporter_name: options.name }),
132
- ...(options.email && { reporter_email: options.email })
133
- };
134
- }
135
- const spinner = (0, ora_1.default)('Ingesting your feedback...').start();
136
- const result = await (0, feedback_1.submitFeedback)(feedbackData);
137
- spinner.succeed('Submitted!');
138
- if (options.wait) {
139
- if (options.json) {
140
- // For JSON, we'll output the final result after waiting
141
- }
142
- else {
143
- console.log(chalk_1.default.blue(`Ingest ID: ${result.id}`));
144
- }
145
- const waitSpinner = (0, ora_1.default)('Processing...').start();
146
- let attempts = 0;
147
- const maxAttempts = constants_1.CONFIG.MAX_RETRY_ATTEMPTS;
148
- while (attempts < maxAttempts) {
149
- await new Promise(resolve => setTimeout(resolve, constants_1.CONFIG.POLL_INTERVAL_MS));
150
- try {
151
- const statusResult = await (0, ingest_1.getIngestStatus)(result.id);
152
- if (statusResult.status === 'completed') {
153
- waitSpinner.succeed('Processing complete!');
154
- if (options.json) {
155
- console.log(JSON.stringify({ success: true, data: statusResult }, null, 2));
156
- }
157
- else {
158
- console.log(chalk_1.default.blue(`šŸ“Š Results: ${statusResult.feedback_count || 0} customer product insights generated, ${statusResult.credits_consumed || 0} credits used`));
159
- if (statusResult.feedback_count > 0) {
160
- console.log(chalk_1.default.black('Run "cl insight" to see generated insights'));
161
- }
162
- }
163
- break;
164
- }
165
- else if (statusResult.status === 'failed') {
166
- waitSpinner.fail('Processing failed');
167
- if (options.json) {
168
- console.log(JSON.stringify({ success: false, error: 'Processing failed', data: statusResult }, null, 2));
169
- }
170
- else {
171
- console.log(chalk_1.default.red('\nāŒ Processing failed. Check the status for more details.'));
172
- }
173
- break;
174
- }
175
- else {
176
- waitSpinner.text = `Processing... (${statusResult.status})`;
177
- }
178
- }
179
- catch (error) {
180
- waitSpinner.text = 'Processing... (checking status)';
181
- }
182
- attempts++;
183
- }
184
- if (attempts >= maxAttempts) {
185
- waitSpinner.warn('Processing is taking longer than expected');
186
- if (options.json) {
187
- console.log(JSON.stringify({ success: false, error: 'Processing timeout', data: { id: result.id, message: 'Processing is taking longer than expected' } }, null, 2));
188
- }
189
- else {
190
- console.log(chalk_1.default.yellow('\nā³ Processing is still in progress. You can check status manually:'));
191
- console.log(chalk_1.default.black(` cl input status ${result.id}`));
192
- }
193
- }
194
- }
195
- else {
196
- spinner.succeed('Submitted!');
197
- if (options.json) {
198
- console.log(JSON.stringify({ success: true, data: result }, null, 2));
199
- }
200
- else {
201
- console.log(chalk_1.default.green('āœ… Submitted!'));
202
- console.log(chalk_1.default.blue(`Ingest ID: ${result.id}`));
203
- console.log(chalk_1.default.black('Run "cl ingest status ' + result.id + '" to check progress'));
204
- console.log(chalk_1.default.black('Or use "cl ingest --wait" to wait for completion'));
205
- }
206
- }
207
- }
208
- async function listRecentIngests(options) {
209
- const result = await (0, ingest_1.listIngests)(1, 5);
210
- const inputs = result.inputs || [];
211
- if (options.json) {
212
- console.log(JSON.stringify({ success: true, data: { inputs, pagination: result.pagination } }, null, 2));
213
- return;
214
- }
215
- if (inputs.length === 0) {
216
- console.log(chalk_1.default.yellow('No recent ingests found.'));
217
- console.log(chalk_1.default.black('Ingest your first feedback: cl ingest "Your customer feedback here"'));
218
- return;
219
- }
220
- console.log(chalk_1.default.blue('\nšŸ“ Recent Ingested Feedback:'));
221
- console.log(chalk_1.default.black('─'.repeat(60)));
222
- inputs.forEach((input, index) => {
223
- const statusColor = input.status === 'completed' ? 'green' :
224
- input.status === 'processing' ? 'yellow' : 'red';
225
- console.log(chalk_1.default.blue(`${index + 1}.`), chalk_1.default.bold(input.title || 'Untitled'));
226
- console.log(chalk_1.default.black(` ID: ${input.id}`));
227
- console.log(chalk_1.default.black(` Status: ${chalk_1.default[statusColor](input.status || 'unknown')}`));
228
- console.log(chalk_1.default.black(` Content: ${input.content ? input.content.substring(0, 100) + (input.content.length > 100 ? '...' : '') : 'N/A'}`));
229
- console.log(chalk_1.default.black(` Submitted: ${input.created_at ? new Date(input.created_at).toLocaleString() : 'Unknown'}`));
230
- console.log();
231
- });
232
- console.log(chalk_1.default.black('Run "cl ingest list" to see all ingests'));
233
- }
234
- async function listIngests(options) {
235
- const { page, limit } = (0, validation_1.validatePagination)(options.page, options.limit);
236
- const status = options.status;
237
- const result = await (0, ingest_1.listIngests)(page, limit);
238
- const inputs = result.inputs || [];
239
- if (options.json) {
240
- console.log(JSON.stringify({ success: true, data: { inputs, pagination: result.pagination } }, null, 2));
241
- return;
242
- }
243
- if (inputs.length === 0) {
244
- console.log(chalk_1.default.yellow('No ingests found.'));
245
- console.log(chalk_1.default.black('Ingest your first feedback: cl ingest "Your customer feedback here"'));
246
- return;
247
- }
248
- // Create table
249
- const tableData = [
250
- [
251
- chalk_1.default.bold('ID'),
252
- chalk_1.default.bold('Title'),
253
- chalk_1.default.bold('Status'),
254
- chalk_1.default.bold('Insights'),
255
- chalk_1.default.bold('Credits'),
256
- chalk_1.default.bold('Submitted')
257
- ]
258
- ];
259
- inputs.forEach((input) => {
260
- const statusColor = input.status === 'completed' ? 'green' :
261
- input.status === 'processing' ? 'yellow' : 'red';
262
- tableData.push([
263
- input.id,
264
- input.title || chalk_1.default.gray('null'),
265
- chalk_1.default[statusColor](input.status || 'unknown'),
266
- input.feedback_count || 0,
267
- input.credits_consumed || 0,
268
- input.created_at ? new Date(input.created_at).toLocaleString() : 'Unknown'
269
- ]);
270
- });
271
- console.log(chalk_1.default.blue('\nšŸ“ Ingested Feedback:'));
272
- console.log((0, table_1.table)(tableData, {
273
- border: {
274
- topBody: '─',
275
- topJoin: '┬',
276
- topLeft: 'ā”Œ',
277
- topRight: '┐',
278
- bottomBody: '─',
279
- bottomJoin: '┓',
280
- bottomLeft: 'ā””',
281
- bottomRight: 'ā”˜',
282
- bodyLeft: '│',
283
- bodyRight: '│',
284
- bodyJoin: '│',
285
- joinBody: '─',
286
- joinLeft: 'ā”œ',
287
- joinRight: '┤',
288
- joinJoin: '┼'
289
- }
290
- }));
291
- if (result.pagination) {
292
- console.log(chalk_1.default.black(`\nPage ${result.pagination.page} of ${result.pagination.pages} (${result.pagination.total} total ingests)`));
293
- if (result.pagination.page < result.pagination.pages) {
294
- console.log(chalk_1.default.gray(`šŸ’” Use --page ${result.pagination.page + 1} to see next page`));
295
- }
296
- }
297
- }
298
- async function showIngest(id, options) {
299
- const result = await (0, ingest_1.getIngestDetail)(id);
300
- if (options.json) {
301
- console.log(JSON.stringify({ success: true, data: result }, null, 2));
302
- return;
303
- }
304
- console.log(chalk_1.default.blue('\nšŸ“ Ingest Details:'));
305
- console.log(chalk_1.default.black('─'.repeat(50)));
306
- console.log(chalk_1.default.blue('ID:'), result.id);
307
- console.log(chalk_1.default.blue('Title:'), result.title || chalk_1.default.gray('null'));
308
- console.log(chalk_1.default.blue('Status:'), result.status);
309
- console.log(chalk_1.default.blue('Content:'), result.content || 'No content');
310
- console.log(chalk_1.default.blue('Source URL:'), result.source_url || chalk_1.default.gray('null'));
311
- console.log(chalk_1.default.blue('Customer ID:'), result.customer_id || chalk_1.default.gray('null'));
312
- console.log(chalk_1.default.blue('Reporter:'), result.reporter_name || chalk_1.default.gray('null'));
313
- console.log(chalk_1.default.blue('Email:'), result.reporter_email || chalk_1.default.gray('null'));
314
- console.log(chalk_1.default.blue('AI Insights Generated:'), result.feedback_count || 0);
315
- console.log(chalk_1.default.blue('Credits Used:'), result.credits_consumed || 0);
316
- console.log(chalk_1.default.blue('Submitted:'), result.created_at ? new Date(result.created_at).toLocaleString() : 'Unknown');
317
- console.log(chalk_1.default.blue('Updated:'), result.updated_at ? new Date(result.updated_at).toLocaleString() : 'Unknown');
318
- }
319
- async function checkIngestStatus(id, options) {
320
- const result = await (0, ingest_1.getIngestStatus)(id);
321
- if (options.json) {
322
- console.log(JSON.stringify({ success: true, data: result }, null, 2));
323
- return;
324
- }
325
- console.log(chalk_1.default.blue('\nšŸ“Š Processing Status:'));
326
- console.log(chalk_1.default.black('─'.repeat(40)));
327
- console.log(chalk_1.default.blue('ID:'), result.id);
328
- console.log(chalk_1.default.blue('Status:'), result.status);
329
- console.log(chalk_1.default.blue('Created:'), result.created_at ? new Date(result.created_at).toLocaleString() : 'Unknown');
330
- console.log(chalk_1.default.blue('Updated:'), result.updated_at ? new Date(result.updated_at).toLocaleString() : 'Unknown');
331
- }
332
- function handleError(error, options) {
333
- if (options.json) {
334
- console.log(JSON.stringify({
335
- success: false,
336
- error: error.message,
337
- details: error.response?.data || 'Unknown error occurred'
338
- }, null, 2));
339
- }
340
- else {
341
- if (error.response?.status === 400) {
342
- const errorData = error.response.data;
343
- if (errorData?.code === 'VALIDATION_ERROR') {
344
- console.error(chalk_1.default.red('āŒ Validation Error:'), errorData.error);
345
- console.log(chalk_1.default.black('\nšŸ’” Common issues:'));
346
- console.log(chalk_1.default.black(' • Content must be at least 10 characters'));
347
- console.log(chalk_1.default.black(' • Check that all required fields are provided'));
348
- console.log(chalk_1.default.black(' • Ensure API key is valid: cl config'));
349
- }
350
- else if (errorData?.code === 'PROCESSING_ERROR') {
351
- console.error(chalk_1.default.red('āŒ Processing Error:'), errorData.error);
352
- console.log(chalk_1.default.black('\nšŸ’” This usually means:'));
353
- console.log(chalk_1.default.black(' • The content could not be processed by our AI'));
354
- console.log(chalk_1.default.black(' • Try rephrasing your input'));
355
- console.log(chalk_1.default.black(' • Make sure the content is clear and meaningful'));
356
- console.log(chalk_1.default.black(' • Check API key: cl config'));
357
- }
358
- else {
359
- console.error(chalk_1.default.red('āŒ Bad Request:'), errorData?.error || 'Invalid input provided');
360
- console.log(chalk_1.default.black('\nšŸ’” Try:'));
361
- console.log(chalk_1.default.black(' • Check your input content'));
362
- console.log(chalk_1.default.black(' • Verify API key: cl config'));
363
- console.log(chalk_1.default.black(' • Get help: cl input --help'));
364
- }
365
- }
366
- else if (error.response?.status === 401) {
367
- console.error(chalk_1.default.red('āŒ Authentication Error:'), 'Invalid API key');
368
- console.log(chalk_1.default.black('\nšŸ’” To fix:'));
369
- console.log(chalk_1.default.black(' 1. Get your free API key at: https://closedloop.sh'));
370
- console.log(chalk_1.default.black(' 2. Run: cl config set-api-key <your-key>'));
371
- }
372
- else if (error.response?.status === 429) {
373
- console.error(chalk_1.default.red('āŒ Rate Limited:'), 'Too many requests');
374
- console.log(chalk_1.default.black('\nšŸ’” Wait a moment and try again'));
375
- }
376
- else if (error.response?.status >= 500) {
377
- console.error(chalk_1.default.red('āŒ Server Error:'), 'Our servers are having issues');
378
- console.log(chalk_1.default.black('\nšŸ’” Try again in a few minutes'));
379
- }
380
- else if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
381
- console.error(chalk_1.default.red('āŒ Connection Error:'), 'Cannot connect to ClosedLoop AI servers');
382
- console.log(chalk_1.default.black('\nšŸ’” Check your internet connection and try again'));
383
- }
384
- else {
385
- console.error(chalk_1.default.red('āŒ Error:'), error.message);
386
- console.log(chalk_1.default.black('\nšŸ’” Get help: cl --help'));
387
- }
388
- }
389
- process.exit(1);
390
- }
391
- //# sourceMappingURL=ingest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/commands/ingest.ts"],"names":[],"mappings":"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"}