@closedloop-ai/cli 0.2.2 → 0.2.4

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 (36) hide show
  1. package/README.md +61 -47
  2. package/docs/CLI_COMMANDS.md +78 -64
  3. package/package.json +9 -1
  4. package/packages/cli/dist/__tests__/api.test.js +151 -0
  5. package/packages/cli/dist/__tests__/api.test.js.map +1 -0
  6. package/packages/cli/dist/__tests__/errors.test.js +1 -1
  7. package/packages/cli/dist/__tests__/errors.test.js.map +1 -1
  8. package/packages/cli/dist/__tests__/performance.test.js +221 -0
  9. package/packages/cli/dist/__tests__/performance.test.js.map +1 -0
  10. package/packages/cli/dist/__tests__/setup.js +37 -7
  11. package/packages/cli/dist/__tests__/setup.js.map +1 -1
  12. package/packages/cli/dist/__tests__/team-simple.test.js +38 -0
  13. package/packages/cli/dist/__tests__/team-simple.test.js.map +1 -0
  14. package/packages/cli/dist/__tests__/test-factories.js +148 -0
  15. package/packages/cli/dist/__tests__/test-factories.js.map +1 -0
  16. package/packages/cli/dist/__tests__/validation.test.js +1 -1
  17. package/packages/cli/dist/api/feedback.js +2 -2
  18. package/packages/cli/dist/api/feedback.js.map +1 -1
  19. package/packages/cli/dist/api/ingest.js +60 -0
  20. package/packages/cli/dist/api/ingest.js.map +1 -0
  21. package/packages/cli/dist/api/team.js +14 -0
  22. package/packages/cli/dist/api/team.js.map +1 -1
  23. package/packages/cli/dist/cli.js +64 -26
  24. package/packages/cli/dist/cli.js.map +1 -1
  25. package/packages/cli/dist/commands/config.js +1 -1
  26. package/packages/cli/dist/commands/config.js.map +1 -1
  27. package/packages/cli/dist/commands/feedback.js +23 -23
  28. package/packages/cli/dist/commands/feedback.js.map +1 -1
  29. package/packages/cli/dist/commands/ingest.js +391 -0
  30. package/packages/cli/dist/commands/ingest.js.map +1 -0
  31. package/packages/cli/dist/commands/insight.js +234 -0
  32. package/packages/cli/dist/commands/insight.js.map +1 -0
  33. package/packages/cli/dist/commands/team.js +58 -20
  34. package/packages/cli/dist/commands/team.js.map +1 -1
  35. package/packages/cli/dist/config/constants.js +4 -3
  36. package/packages/cli/dist/config/constants.js.map +1 -1
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ // Test data factories for consistent test data generation
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.securityTestData = exports.performanceTestData = exports.generateRandomUuid = exports.generateRandomUrl = exports.generateRandomEmail = exports.generateRandomString = exports.testScenarios = exports.mockTeam = exports.mockConfig = exports.mockFeedbacks = exports.mockInputs = exports.createNetworkError = exports.createApiError = exports.createPaginatedResponse = exports.createApiResponse = exports.createTestTeam = exports.createTestConfig = exports.createTestFeedbacks = exports.createTestFeedback = exports.createTestInputs = exports.createTestInput = void 0;
5
+ // Input factories
6
+ const createTestInput = (overrides = {}) => ({
7
+ id: 'input-' + Math.random().toString(36).substr(2, 9),
8
+ content: 'Test feedback content',
9
+ status: 'processed',
10
+ created_at: new Date().toISOString(),
11
+ ...overrides
12
+ });
13
+ exports.createTestInput = createTestInput;
14
+ const createTestInputs = (count, overrides = {}) => {
15
+ return Array.from({ length: count }, (_, i) => (0, exports.createTestInput)({
16
+ id: `input-${i + 1}`,
17
+ content: `Test feedback content ${i + 1}`,
18
+ ...overrides
19
+ }));
20
+ };
21
+ exports.createTestInputs = createTestInputs;
22
+ // Feedback factories
23
+ const createTestFeedback = (overrides = {}) => ({
24
+ id: 'feedback-' + Math.random().toString(36).substr(2, 9),
25
+ summary: 'Test feedback summary',
26
+ priority: 'medium',
27
+ created_at: new Date().toISOString(),
28
+ insights: ['Insight 1', 'Insight 2'],
29
+ ...overrides
30
+ });
31
+ exports.createTestFeedback = createTestFeedback;
32
+ const createTestFeedbacks = (count, overrides = {}) => {
33
+ return Array.from({ length: count }, (_, i) => (0, exports.createTestFeedback)({
34
+ id: `feedback-${i + 1}`,
35
+ summary: `Test feedback summary ${i + 1}`,
36
+ ...overrides
37
+ }));
38
+ };
39
+ exports.createTestFeedbacks = createTestFeedbacks;
40
+ // Config factories
41
+ const createTestConfig = (overrides = {}) => ({
42
+ apiKey: 'test-api-key-' + Math.random().toString(36).substr(2, 9),
43
+ configFile: '/path/to/config.json',
44
+ configured: true,
45
+ ...overrides
46
+ });
47
+ exports.createTestConfig = createTestConfig;
48
+ // Team factories
49
+ const createTestTeam = (overrides = {}) => ({
50
+ id: 'team-' + Math.random().toString(36).substr(2, 9),
51
+ name: 'Test Team',
52
+ website: 'https://example.com',
53
+ updated_at: new Date().toISOString(),
54
+ ...overrides
55
+ });
56
+ exports.createTestTeam = createTestTeam;
57
+ // API response factories
58
+ const createApiResponse = (data, success = true) => ({
59
+ success,
60
+ data,
61
+ message: success ? 'Success' : 'Error'
62
+ });
63
+ exports.createApiResponse = createApiResponse;
64
+ const createPaginatedResponse = (data, page = 1, limit = 20, total = data.length) => ({
65
+ success: true,
66
+ data,
67
+ pagination: {
68
+ page,
69
+ limit,
70
+ total,
71
+ pages: Math.ceil(total / limit)
72
+ }
73
+ });
74
+ exports.createPaginatedResponse = createPaginatedResponse;
75
+ // Error factories
76
+ const createApiError = (status, message) => ({
77
+ response: {
78
+ status,
79
+ data: { message }
80
+ }
81
+ });
82
+ exports.createApiError = createApiError;
83
+ const createNetworkError = (code) => ({
84
+ code,
85
+ message: 'Network error'
86
+ });
87
+ exports.createNetworkError = createNetworkError;
88
+ // Mock data sets
89
+ exports.mockInputs = (0, exports.createTestInputs)(5);
90
+ exports.mockFeedbacks = (0, exports.createTestFeedbacks)(3);
91
+ exports.mockConfig = (0, exports.createTestConfig)();
92
+ exports.mockTeam = (0, exports.createTestTeam)();
93
+ // Common test scenarios
94
+ exports.testScenarios = {
95
+ // Success scenarios
96
+ successfulInputSubmission: () => (0, exports.createApiResponse)((0, exports.createTestInput)()),
97
+ successfulFeedbackList: () => (0, exports.createPaginatedResponse)(exports.mockFeedbacks),
98
+ successfulConfigRetrieval: () => (0, exports.createApiResponse)(exports.mockConfig),
99
+ // Error scenarios
100
+ apiKeyNotFound: () => (0, exports.createApiError)(401, 'Invalid API key'),
101
+ resourceNotFound: () => (0, exports.createApiError)(404, 'Resource not found'),
102
+ rateLimited: () => (0, exports.createApiError)(429, 'Rate limit exceeded'),
103
+ serverError: () => (0, exports.createApiError)(500, 'Internal server error'),
104
+ networkError: () => (0, exports.createNetworkError)('ENOTFOUND'),
105
+ timeoutError: () => (0, exports.createNetworkError)('ETIMEDOUT'),
106
+ // Edge cases
107
+ emptyResponse: () => (0, exports.createApiResponse)([]),
108
+ largeDataset: () => (0, exports.createPaginatedResponse)((0, exports.createTestInputs)(1000), 1, 100, 1000),
109
+ malformedResponse: () => ({ invalid: 'response' })
110
+ };
111
+ // Test data generators
112
+ const generateRandomString = (length = 10) => {
113
+ return Math.random().toString(36).substr(2, length);
114
+ };
115
+ exports.generateRandomString = generateRandomString;
116
+ const generateRandomEmail = () => {
117
+ return `test-${(0, exports.generateRandomString)(8)}@example.com`;
118
+ };
119
+ exports.generateRandomEmail = generateRandomEmail;
120
+ const generateRandomUrl = () => {
121
+ return `https://${(0, exports.generateRandomString)(10)}.example.com`;
122
+ };
123
+ exports.generateRandomUrl = generateRandomUrl;
124
+ const generateRandomUuid = () => {
125
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
126
+ const r = Math.random() * 16 | 0;
127
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
128
+ return v.toString(16);
129
+ });
130
+ };
131
+ exports.generateRandomUuid = generateRandomUuid;
132
+ // Performance test data
133
+ exports.performanceTestData = {
134
+ largeInput: 'a'.repeat(50000),
135
+ manyInputs: (0, exports.createTestInputs)(1000),
136
+ manyFeedbacks: (0, exports.createTestFeedbacks)(500),
137
+ longUuid: (0, exports.generateRandomUuid)() + (0, exports.generateRandomUuid)()
138
+ };
139
+ // Security test data
140
+ exports.securityTestData = {
141
+ xssPayload: '<script>alert("xss")</script>',
142
+ sqlInjection: "'; DROP TABLE users; --",
143
+ pathTraversal: '../../../etc/passwd',
144
+ commandInjection: '; rm -rf /',
145
+ htmlInjection: '<img src="x" onerror="alert(1)">',
146
+ javascriptUrl: 'javascript:alert("xss")'
147
+ };
148
+ //# sourceMappingURL=test-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-factories.js","sourceRoot":"","sources":["../../src/__tests__/test-factories.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ describe('Validation Utils', () => {
24
24
  expect(() => (0, validation_1.validateInputContent)(' ')).toThrow(errors_1.CliError);
25
25
  });
26
26
  it('should reject content that is too long', () => {
27
- const longContent = 'a'.repeat(10001);
27
+ const longContent = 'a'.repeat(50001);
28
28
  expect(() => (0, validation_1.validateInputContent)(longContent)).toThrow(errors_1.CliError);
29
29
  });
30
30
  });
@@ -29,7 +29,7 @@ const getClient = () => {
29
29
  async function submitFeedback(data) {
30
30
  try {
31
31
  const client = getClient();
32
- const response = await client.post('/feedbacks', data);
32
+ const response = await client.post('/ingest', data);
33
33
  return response.data.data;
34
34
  }
35
35
  catch (error) {
@@ -50,7 +50,7 @@ async function listFeedbacks(params, isNew = false) {
50
50
  async function getFeedbackStatus(id) {
51
51
  try {
52
52
  const client = getClient();
53
- const response = await client.get(`/feedbacks/new/${id}`);
53
+ const response = await client.get(`/ingest/${id}`);
54
54
  return response.data.data;
55
55
  }
56
56
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/api/feedback.ts"],"names":[],"mappings":";;;;;AAwBA,wCAQC;AAED,sCASC;AAED,8CAQC;AAED,8CAQC;AA/DD,kDAA0B;AAC1B,sCAAmC;AAEnC,mDAAuD;AACvD,4CAAwE;AAExE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAQ,CAAC,oBAAQ,CAAC,UAAU,EAAE,oBAAW,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,kBAAM,CAAC,YAAY;QAC5B,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAM,CAAC,UAAU;SAChC;QACD,OAAO,EAAE,kBAAM,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,KAAK,GAAG,KAAK;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/api/feedback.ts"],"names":[],"mappings":";;;;;AAwBA,wCAQC;AAED,sCASC;AAED,8CAQC;AAED,8CAQC;AA/DD,kDAA0B;AAC1B,sCAAmC;AAEnC,mDAAuD;AACvD,4CAAwE;AAExE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAQ,CAAC,oBAAQ,CAAC,UAAU,EAAE,oBAAW,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,kBAAM,CAAC,YAAY;QAC5B,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAM,CAAC,UAAU;SAChC;QACD,OAAO,EAAE,kBAAM,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,KAAK,GAAG,KAAK;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,60 @@
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.listIngests = listIngests;
7
+ exports.getIngestDetail = getIngestDetail;
8
+ exports.getIngestStatus = getIngestStatus;
9
+ const axios_1 = __importDefault(require("axios"));
10
+ const config_1 = require("../config");
11
+ const constants_1 = require("../config/constants");
12
+ const errors_1 = require("../utils/errors");
13
+ const getClient = () => {
14
+ const apiKey = config_1.config.get('apiKey');
15
+ if (!apiKey) {
16
+ throw new errors_1.CliError(constants_1.MESSAGES.NO_API_KEY, errors_1.ERROR_CODES.NO_API_KEY);
17
+ }
18
+ return axios_1.default.create({
19
+ baseURL: constants_1.CONFIG.API_BASE_URL,
20
+ headers: {
21
+ 'Authorization': `Bearer ${apiKey}`,
22
+ 'Content-Type': 'application/json',
23
+ 'User-Agent': constants_1.CONFIG.USER_AGENT
24
+ },
25
+ timeout: constants_1.CONFIG.TIMEOUT_MS
26
+ });
27
+ };
28
+ async function listIngests(page = 1, limit = 20) {
29
+ try {
30
+ const client = getClient();
31
+ const response = await client.get('/ingest', {
32
+ params: { page, limit }
33
+ });
34
+ return response.data.data;
35
+ }
36
+ catch (error) {
37
+ throw (0, errors_1.handleApiError)(error);
38
+ }
39
+ }
40
+ async function getIngestDetail(id) {
41
+ try {
42
+ const client = getClient();
43
+ const response = await client.get(`/ingest/${id}`);
44
+ return response.data.data;
45
+ }
46
+ catch (error) {
47
+ throw (0, errors_1.handleApiError)(error);
48
+ }
49
+ }
50
+ async function getIngestStatus(id) {
51
+ try {
52
+ const client = getClient();
53
+ const response = await client.get(`/ingest/${id}`);
54
+ return response.data.data;
55
+ }
56
+ catch (error) {
57
+ throw (0, errors_1.handleApiError)(error);
58
+ }
59
+ }
60
+ //# sourceMappingURL=ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/api/ingest.ts"],"names":[],"mappings":";;;;;AAwBA,kCAUC;AAED,0CAQC;AAED,0CAQC;AAtDD,kDAA0B;AAC1B,sCAAmC;AAEnC,mDAAuD;AACvD,4CAAwE;AAExE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAQ,CAAC,oBAAQ,CAAC,UAAU,EAAE,oBAAW,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,kBAAM,CAAC,YAAY;QAC5B,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAM,CAAC,UAAU;SAChC;QACD,OAAO,EAAE,kBAAM,CAAC,UAAU;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,KAAK,UAAU,WAAW,CAAC,OAAe,CAAC,EAAE,QAAgB,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EAAU;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTeamWebsite = getTeamWebsite;
6
7
  exports.updateTeamWebsite = updateTeamWebsite;
7
8
  const axios_1 = __importDefault(require("axios"));
8
9
  const config_1 = require("../config");
@@ -22,6 +23,19 @@ const getClient = () => {
22
23
  timeout: 30000,
23
24
  });
24
25
  };
26
+ async function getTeamWebsite() {
27
+ try {
28
+ const client = getClient();
29
+ const response = await client.get('/team/website');
30
+ if (!response.data.success) {
31
+ throw new Error('Failed to fetch team website');
32
+ }
33
+ return response.data.data;
34
+ }
35
+ catch (error) {
36
+ throw (0, errors_1.handleApiError)(error);
37
+ }
38
+ }
25
39
  async function updateTeamWebsite(website) {
26
40
  // Validate website URL format
27
41
  const websiteRegex = /^https?:\/\/.+\..+/;
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/api/team.ts"],"names":[],"mappings":";;;;;AA4BA,8CAqBC;AAjDD,kDAA0B;AAC1B,sCAAmC;AAEnC,mDAA6C;AAC7C,4CAAwE;AAOxE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAQ,CAAC,4DAA4D,EAAE,oBAAW,CAAC,UAAU,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,kBAAM,CAAC,YAAY;QAC5B,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,8BAA8B;IAC9B,MAAM,YAAY,GAAG,oBAAoB,CAAC;IAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAA+B,eAAe,EAAE;YAChF,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/api/team.ts"],"names":[],"mappings":";;;;;AA4BA,wCAaC;AAED,8CAqBC;AAhED,kDAA0B;AAC1B,sCAAmC;AAEnC,mDAA6C;AAC7C,4CAAwE;AAOxE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,MAAM,GAAG,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAQ,CAAC,4DAA4D,EAAE,oBAAW,CAAC,UAAU,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,kBAAM,CAAC,YAAY;QAC5B,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA+B,eAAe,CAAC,CAAC;QAEjF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,8BAA8B;IAC9B,MAAM,YAAY,GAAG,oBAAoB,CAAC;IAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAA+B,eAAe,EAAE;YAChF,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAA,uBAAc,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -6,31 +6,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const commander_1 = require("commander");
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
- const input_1 = require("./commands/input");
10
- const feedback_1 = require("./commands/feedback");
9
+ const ingest_1 = require("./commands/ingest");
10
+ const insight_1 = require("./commands/insight");
11
11
  const config_1 = require("./commands/config");
12
12
  const team_1 = require("./commands/team");
13
13
  const errors_1 = require("./utils/errors");
14
+ const constants_1 = require("./config/constants");
14
15
  // Create the main program
15
16
  const program = new commander_1.Command();
16
17
  program
17
18
  .name('cl')
18
19
  .description('ClosedLoop AI CLI - AI-powered customer feedback analysis for product management')
19
- .version('0.2.0')
20
+ .version(constants_1.VERSION)
20
21
  .addHelpText('before', chalk_1.default.blue(`
21
22
  ╔══════════════════════════════════════════════════════════════════════════════╗
22
- ║ ClosedLoop AI CLI v0.2.0 ║
23
+ ║ ClosedLoop AI CLI v${constants_1.VERSION} ║
23
24
  ║ AI-Powered Customer Feedback Analysis ║
24
25
  ╚══════════════════════════════════════════════════════════════════════════════╝
25
26
  `))
26
27
  .addHelpText('after', chalk_1.default.black(`
27
28
  Commands:
28
- input [content] Submit customer input for AI analysis
29
- input List all customer inputs
30
- input <id> Show specific input details
29
+ ingest [content] Ingest customer feedback for AI analysis
30
+ --customer <id> Customer identifier
31
+ --name <name> Reporter name
32
+ --email <email> Reporter email
33
+ --title <title> Title for this input
34
+ --url <url> Source URL (support ticket, survey, etc.)
35
+ --file <path> Read content from file
36
+ --wait Wait for processing to complete
37
+ --interactive Fill in details step by step
38
+ ingest List all ingested feedback
39
+ ingest <id> Show specific ingested feedback details
31
40
 
32
- feedback List AI-generated feedback
33
- feedback <id> Show specific feedback details
41
+ insight List AI-generated insights
42
+ insight <id> Show specific insight details
34
43
 
35
44
  team Manage team settings
36
45
  team website update <url> Update team website
@@ -42,29 +51,33 @@ Commands:
42
51
  help [command] Show help for a command
43
52
 
44
53
  Examples:
45
- $ cl input "Dashboard is confusing"
46
- $ cl input
47
- $ cl input 74e3dd87-878f-41cf-8e5a-87527bbf7770
48
- $ cl feedback
49
- $ cl feedback 2ea8f556-052b-4f5c-bf86-833780b3d00d
54
+ $ cl ingest "Dashboard is confusing"
55
+ $ cl ingest "App crashes" --customer "user-123" --wait
56
+ $ cl ingest --file feedback.txt --customer "user-456"
57
+ $ cl ingest --interactive
58
+ $ cl ingest
59
+ $ cl ingest 74e3dd87-878f-41cf-8e5a-87527bbf7770
60
+ $ cl insight
61
+ $ cl insight 2ea8f556-052b-4f5c-bf86-833780b3d00d
50
62
  $ cl team website update "https://example.com"
51
63
  $ cl config set --api-key your-api-key-here
52
64
 
53
65
  Pagination:
54
- $ cl input --page 2 --limit 10
55
- $ cl feedback --page 2
66
+ $ cl ingest --page 2 --limit 10
67
+ $ cl insight --page 2
56
68
 
57
69
  Get API keys for free at https://closedloop.sh
58
70
  `));
59
- // Add input command
71
+ // Add ingest command
60
72
  program
61
- .command('input [content]')
62
- .description('Submit customer input for AI analysis or list inputs')
73
+ .command('ingest [content]')
74
+ .description('Ingest customer feedback for AI analysis or list ingested feedback')
63
75
  .option('-t, --title <title>', 'Title for this input')
64
76
  .option('-u, --url <url>', 'Source URL (support ticket, survey, etc.)')
65
77
  .option('-c, --customer <id>', 'Customer identifier')
66
78
  .option('-n, --name <name>', 'Name of person who provided the input')
67
79
  .option('-e, --email <email>', 'Email of person who provided the input')
80
+ .option('-f, --file <path>', 'Read content from file')
68
81
  .option('--interactive', 'Fill in details step by step')
69
82
  .option('-w, --wait', 'Wait until processing is completed')
70
83
  .option('--json', 'Output in JSON format')
@@ -74,23 +87,23 @@ program
74
87
  .option('--search <query>', 'Search in input content')
75
88
  .action(async (content, options) => {
76
89
  try {
77
- await (0, input_1.handleInputCommand)(content, options);
90
+ await (0, ingest_1.handleIngestCommand)(content, options);
78
91
  }
79
92
  catch (error) {
80
93
  handleError(error, options);
81
94
  }
82
95
  });
83
- // Add feedback command
96
+ // Add insight command
84
97
  program
85
- .command('feedback [id]')
86
- .description('List AI-generated feedback or show specific feedback details')
98
+ .command('insight [id]')
99
+ .description('List AI-generated insights or show specific insight details')
87
100
  .option('--json', 'Output in JSON format')
88
101
  .option('--page <number>', 'Page number for list', '1')
89
102
  .option('--limit <number>', 'Items per page for list', '20')
90
- .option('--search <query>', 'Search feedback by content')
103
+ .option('--search <query>', 'Search insights by content')
91
104
  .action(async (id, options) => {
92
105
  try {
93
- await (0, feedback_1.handleFeedbackCommand)(id, options);
106
+ await (0, insight_1.handleInsightCommand)(id, options);
94
107
  }
95
108
  catch (error) {
96
109
  handleError(error, options);
@@ -100,12 +113,37 @@ program
100
113
  program.addCommand(config_1.configCommand);
101
114
  // Add team command
102
115
  program.addCommand(team_1.teamCommand);
116
+ // Add backward compatibility alias for input command
117
+ program
118
+ .command('input [content]')
119
+ .description('Alias for ingest command (deprecated)')
120
+ .option('-t, --title <title>', 'Title for this input')
121
+ .option('-u, --url <url>', 'Source URL (support ticket, survey, etc.)')
122
+ .option('-c, --customer <id>', 'Customer identifier')
123
+ .option('-n, --name <name>', 'Name of person who provided the input')
124
+ .option('-e, --email <email>', 'Email of person who provided the input')
125
+ .option('--interactive', 'Fill in details step by step')
126
+ .option('-w, --wait', 'Wait until processing is completed')
127
+ .option('--json', 'Output in JSON format')
128
+ .option('--page <number>', 'Page number for list', '1')
129
+ .option('--limit <number>', 'Items per page for list', '20')
130
+ .option('--status <status>', 'Filter by status (processing, completed, failed)')
131
+ .option('--search <query>', 'Search in input content')
132
+ .action(async (content, options) => {
133
+ console.log(chalk_1.default.yellow('⚠️ "input" is deprecated. Use "ingest" instead.'));
134
+ try {
135
+ await (0, ingest_1.handleIngestCommand)(content, options);
136
+ }
137
+ catch (error) {
138
+ handleError(error, options);
139
+ }
140
+ });
103
141
  // Add version command
104
142
  program
105
143
  .command('version')
106
144
  .description('Show version information')
107
145
  .action(() => {
108
- console.log(chalk_1.default.blue('ClosedLoop AI CLI v0.2.0'));
146
+ console.log(chalk_1.default.blue(`ClosedLoop AI CLI v${constants_1.VERSION}`));
109
147
  console.log(chalk_1.default.gray('AI-Powered Customer Feedback Analysis'));
110
148
  console.log(chalk_1.default.gray('Get started: https://closedloop.sh'));
111
149
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -160,7 +160,7 @@ async function showConfig(currentConfig, options) {
160
160
  console.log(chalk_1.default.yellow('\n💡 Get started:'));
161
161
  console.log(chalk_1.default.black(' 1. Get your free API key at: https://closedloop.sh'));
162
162
  console.log(chalk_1.default.black(' 2. Run: cl config set-api-key <your-key>'));
163
- console.log(chalk_1.default.black(' 3. Submit your first input: cl input "Your feedback here"'));
163
+ console.log(chalk_1.default.black(' 3. Ingest your first feedback: cl ingest "Your feedback here"'));
164
164
  }
165
165
  }
166
166
  function handleError(error, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,sCAAmC;AACnC,sCAA6C;AAG7C,oDAA6E;AAE7E,wBAAwB;AACX,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AA0KqB,kBArLb,qBAAa,CAqLO;AAxKjC,4BAA4B;AAC5B,MAAM,gBAAgB,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;KACxC,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;KACxC,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,iBAAiB,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC1C,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,qBAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC3C,qBAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAE5C,mBAAmB;AACnB,KAAK,UAAU,YAAY,CAAC,OAAuB;IACjD,MAAM,aAAa,GAAG,eAAM,CAAC,GAAG,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAuB;IACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAuB;IACrD,MAAM,aAAa,GAAG,eAAM,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,OAAuB;IAC9D,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,eAAe,GAAG,IAAA,2BAAoB,EAAC,MAAM,CAAC,CAAC;QAErD,4CAA4C;QAC5C,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,IAAA,qBAAc,EAAC,eAAe,CAAC,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAEnD,mBAAmB;YACnB,eAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAEtC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,0BAA0B;oBACnC,IAAI,EAAE;wBACJ,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;wBAC/C,UAAU,EAAE,eAAM,CAAC,aAAa,EAAE;wBAClC,UAAU,EAAE,IAAI;qBACjB;iBACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,eAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAE1C,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,aAAkB,EAAE,OAAuB;IACnE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;gBAClF,UAAU,EAAE,eAAM,CAAC,aAAa,EAAE;gBAClC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM;aACnC;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,eAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAEhE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAU,EAAE,OAAuB;IACtD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,wBAAwB;SAC1D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,yCAAyC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}