@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,81 +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.listCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const table_1 = require("table");
10
- const feedback_1 = require("../api/feedback");
11
- const constants_1 = require("../config/constants");
12
- exports.listCommand = new commander_1.Command('list')
13
- .description('List customer inputs and generated AI feedback')
14
- .option('-p, --page <number>', 'Page number to show', '1')
15
- .option('-l, --limit <number>', 'How many items to show per page', '20')
16
- .option('-s, --status <status>', 'Show only items with this status (processing, completed, failed)')
17
- .option('--new', 'Show only inputs that are still being processed')
18
- .option('--json', 'Output in JSON format')
19
- .action(async (options) => {
20
- try {
21
- const params = {
22
- page: options.page || 1,
23
- limit: options.limit || constants_1.CONFIG.DEFAULT_PAGE_SIZE
24
- };
25
- if (options.status) {
26
- params.status = options.status;
27
- }
28
- const result = options.new
29
- ? await (0, feedback_1.listFeedbacks)(params, true) // new feedbacks
30
- : await (0, feedback_1.listFeedbacks)(params, false); // processed feedbacks
31
- const feedbacks = result.feedbacks || result.data || [];
32
- if (feedbacks.length === 0) {
33
- if (options.json) {
34
- console.log(JSON.stringify({ success: true, data: [], pagination: result.pagination || {} }, null, 2));
35
- }
36
- else {
37
- console.log(chalk_1.default.yellow('No customer inputs found.'));
38
- }
39
- return;
40
- }
41
- if (options.json) {
42
- console.log(JSON.stringify({ success: true, data: feedbacks, pagination: result.pagination || {} }, null, 2));
43
- return;
44
- }
45
- // Create table data
46
- const tableData = [
47
- ['ID', 'Title', 'Status', 'AI Feedback', 'Credits Used', 'Submitted']
48
- ];
49
- feedbacks.forEach((item) => {
50
- const statusColor = item.status === 'completed' ? 'green' :
51
- item.status === 'processing' ? 'yellow' :
52
- item.status === 'pending_step2' ? 'yellow' :
53
- item.status === 'failed' ? 'red' :
54
- item.status === 'new' ? 'blue' :
55
- item.status === 'in_review' ? 'yellow' :
56
- item.status === 'addressed' ? 'green' :
57
- item.status === 'archived' ? 'gray' : 'red';
58
- tableData.push([
59
- item.id,
60
- item.title || 'Untitled',
61
- chalk_1.default[statusColor](item.status || 'unknown'),
62
- (item.feedbackCount || 0).toString(),
63
- (item.creditsConsumed || 0).toString(),
64
- item.timestamp ? new Date(item.timestamp).toLocaleString() : 'Unknown'
65
- ]);
66
- });
67
- console.log(chalk_1.default.blue('\n📋 Customer Inputs & AI Feedback:'));
68
- console.log((0, table_1.table)(tableData));
69
- // Pagination info
70
- const pagination = result.pagination || {};
71
- if (pagination.pages > 1) {
72
- console.log(chalk_1.default.gray(`\nPage ${pagination.page} of ${pagination.pages} (${pagination.total} total items)`));
73
- console.log(chalk_1.default.gray('Use --page <number> to see more'));
74
- }
75
- }
76
- catch (error) {
77
- console.error(chalk_1.default.red('Error:'), error.message);
78
- process.exit(1);
79
- }
80
- });
81
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,93 +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.statusCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const ora_1 = __importDefault(require("ora"));
10
- const feedback_1 = require("../api/feedback");
11
- const constants_1 = require("../config/constants");
12
- exports.statusCommand = new commander_1.Command('status')
13
- .description('Check processing status of a feedback submission')
14
- .argument('<id>', 'Feedback submission ID')
15
- .option('-w, --watch', 'Watch for status changes')
16
- .option('--json', 'Output in JSON format')
17
- .action(async (id, options) => {
18
- try {
19
- if (options.watch) {
20
- // Watch mode - check status every few seconds
21
- const spinner = (0, ora_1.default)('Watching for status changes...').start();
22
- const checkStatus = async () => {
23
- try {
24
- const result = await (0, feedback_1.getFeedbackStatus)(id);
25
- if (result.status === 'completed') {
26
- spinner.succeed(chalk_1.default.green(`✅ Processing completed! Generated ${result.feedbackCount} insights`));
27
- process.exit(0);
28
- }
29
- else if (result.status === 'failed') {
30
- spinner.fail(chalk_1.default.red('❌ Processing failed'));
31
- process.exit(1);
32
- }
33
- else {
34
- spinner.text = `Processing... (${result.status})`;
35
- }
36
- }
37
- catch (error) {
38
- spinner.fail(chalk_1.default.red('Error checking status:') + ' ' + error.message);
39
- process.exit(1);
40
- }
41
- };
42
- // Check immediately
43
- await checkStatus();
44
- // Then check every few seconds
45
- const interval = setInterval(checkStatus, constants_1.CONFIG.POLL_INTERVAL_MS);
46
- // Stop watching on Ctrl+C
47
- process.on('SIGINT', () => {
48
- clearInterval(interval);
49
- spinner.stop();
50
- console.log(chalk_1.default.yellow('\nStopped watching.'));
51
- process.exit(0);
52
- });
53
- }
54
- else {
55
- // Single check
56
- const spinner = (0, ora_1.default)('Checking status...').start();
57
- const result = await (0, feedback_1.getFeedbackStatus)(id);
58
- spinner.stop();
59
- if (options.json) {
60
- console.log(JSON.stringify({ success: true, data: result }, null, 2));
61
- return;
62
- }
63
- console.log(chalk_1.default.blue('\n📊 Status Information:'));
64
- console.log(chalk_1.default.gray('─'.repeat(40)));
65
- console.log(chalk_1.default.blue('ID:'), result.id);
66
- console.log(chalk_1.default.blue('Title:'), result.signal_title || result.title);
67
- console.log(chalk_1.default.blue('Status:'), result.status === 'completed' ? chalk_1.default.green(result.status) :
68
- result.status === 'processing' ? chalk_1.default.yellow(result.status) :
69
- result.status === 'pending_step2' ? chalk_1.default.yellow('pending') :
70
- result.status === 'failed' ? chalk_1.default.red(result.status) :
71
- result.status === 'new' ? chalk_1.default.blue(result.status) :
72
- result.status === 'in_review' ? chalk_1.default.yellow(result.status) :
73
- result.status === 'addressed' ? chalk_1.default.green(result.status) :
74
- result.status === 'archived' ? chalk_1.default.gray(result.status) :
75
- chalk_1.default.red(result.status));
76
- console.log(chalk_1.default.blue('Created:'), result.created_at ? new Date(result.created_at).toLocaleString() : 'Unknown');
77
- console.log(chalk_1.default.blue('Updated:'), result.updated_at ? new Date(result.updated_at).toLocaleString() : 'Unknown');
78
- console.log(chalk_1.default.blue('Credits Used:'), result.creditsConsumed || 'Unknown');
79
- console.log(chalk_1.default.blue('AI Feedback Generated:'), result.feedbackCount || 0);
80
- if (result.status === 'completed' && (result.feedbackCount || 0) > 0) {
81
- console.log(chalk_1.default.green('\n🎯 Use "cl list" to see the generated AI feedback!'));
82
- }
83
- else if (result.status === 'processing') {
84
- console.log(chalk_1.default.yellow('\n⏳ Still processing... Use "cl status <id> --watch" to monitor'));
85
- }
86
- }
87
- }
88
- catch (error) {
89
- console.error(chalk_1.default.red('Error:'), error.message);
90
- process.exit(1);
91
- }
92
- });
93
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -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,82 +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('Show or set team website')
20
- .argument('[website]', 'Team website URL (must include http:// or https://)')
21
- .option('--json', 'Output in JSON format')
22
- .action(async (website, options) => {
23
- if (website) {
24
- // Set website
25
- try {
26
- const spinner = (0, ora_1.default)('Updating team website...').start();
27
- const result = await (0, team_1.updateTeamWebsite)(website);
28
- spinner.succeed('Team website updated successfully');
29
- if (options.json) {
30
- console.log(JSON.stringify({
31
- success: true,
32
- data: {
33
- website: result.website,
34
- updated_at: result.updated_at
35
- }
36
- }, null, 2));
37
- }
38
- else {
39
- console.log(chalk_1.default.green(`Website: ${result.website}`));
40
- console.log(chalk_1.default.gray(`Updated: ${result.updated_at}`));
41
- }
42
- }
43
- catch (error) {
44
- (0, ora_1.default)().fail('Failed to update team website');
45
- console.error(chalk_1.default.red(error.message));
46
- process.exit(1);
47
- }
48
- }
49
- else {
50
- // Show current website
51
- try {
52
- const spinner = (0, ora_1.default)('Fetching team website...').start();
53
- const result = await (0, team_1.getTeamWebsite)();
54
- spinner.succeed('Team website retrieved');
55
- if (options.json) {
56
- console.log(JSON.stringify({
57
- success: true,
58
- data: {
59
- website: result.website || null,
60
- updated_at: result.updated_at
61
- }
62
- }, null, 2));
63
- }
64
- else {
65
- if (result.website) {
66
- console.log(chalk_1.default.green(`Website: ${result.website}`));
67
- console.log(chalk_1.default.gray(`Updated: ${result.updated_at}`));
68
- }
69
- else {
70
- console.log(chalk_1.default.yellow('No website set for this team'));
71
- }
72
- }
73
- }
74
- catch (error) {
75
- (0, ora_1.default)().fail('Failed to fetch team website');
76
- console.error(chalk_1.default.red(error.message));
77
- process.exit(1);
78
- }
79
- }
80
- });
81
- exports.teamCommand.addCommand(teamWebsiteCommand);
82
- //# sourceMappingURL=team.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"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"}