@memnexus-ai/cli 0.1.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.
Files changed (148) hide show
  1. package/.env.example +13 -0
  2. package/.eslintrc.js +24 -0
  3. package/.github/ISSUE_TEMPLATE/phase-1-foundation.md +1078 -0
  4. package/.github/workflows/publish.yml +277 -0
  5. package/.github/workflows/test-app-token.yml +54 -0
  6. package/.npmrc.backup +3 -0
  7. package/.npmrc.example +6 -0
  8. package/.prettierignore +4 -0
  9. package/.prettierrc +8 -0
  10. package/CHANGELOG.md +138 -0
  11. package/PLATFORM_TESTING.md +243 -0
  12. package/README.md +986 -0
  13. package/RELEASE.md +428 -0
  14. package/RELEASE_READINESS.md +253 -0
  15. package/USAGE.md +1373 -0
  16. package/bin/mx.js +2 -0
  17. package/dist/commands/apikeys.d.ts +7 -0
  18. package/dist/commands/apikeys.d.ts.map +1 -0
  19. package/dist/commands/apikeys.js +133 -0
  20. package/dist/commands/apikeys.js.map +1 -0
  21. package/dist/commands/artifacts.d.ts +7 -0
  22. package/dist/commands/artifacts.d.ts.map +1 -0
  23. package/dist/commands/artifacts.js +277 -0
  24. package/dist/commands/artifacts.js.map +1 -0
  25. package/dist/commands/auth.d.ts +7 -0
  26. package/dist/commands/auth.d.ts.map +1 -0
  27. package/dist/commands/auth.js +119 -0
  28. package/dist/commands/auth.js.map +1 -0
  29. package/dist/commands/communities.d.ts +7 -0
  30. package/dist/commands/communities.d.ts.map +1 -0
  31. package/dist/commands/communities.js +137 -0
  32. package/dist/commands/communities.js.map +1 -0
  33. package/dist/commands/config.d.ts +7 -0
  34. package/dist/commands/config.d.ts.map +1 -0
  35. package/dist/commands/config.js +138 -0
  36. package/dist/commands/config.js.map +1 -0
  37. package/dist/commands/conversations.d.ts +7 -0
  38. package/dist/commands/conversations.d.ts.map +1 -0
  39. package/dist/commands/conversations.js +160 -0
  40. package/dist/commands/conversations.js.map +1 -0
  41. package/dist/commands/facts.d.ts +7 -0
  42. package/dist/commands/facts.d.ts.map +1 -0
  43. package/dist/commands/facts.js +298 -0
  44. package/dist/commands/facts.js.map +1 -0
  45. package/dist/commands/graphrag.d.ts +7 -0
  46. package/dist/commands/graphrag.d.ts.map +1 -0
  47. package/dist/commands/graphrag.js +139 -0
  48. package/dist/commands/graphrag.js.map +1 -0
  49. package/dist/commands/memories.d.ts +7 -0
  50. package/dist/commands/memories.d.ts.map +1 -0
  51. package/dist/commands/memories.js +304 -0
  52. package/dist/commands/memories.js.map +1 -0
  53. package/dist/commands/patterns.d.ts +7 -0
  54. package/dist/commands/patterns.d.ts.map +1 -0
  55. package/dist/commands/patterns.js +227 -0
  56. package/dist/commands/patterns.js.map +1 -0
  57. package/dist/commands/system.d.ts +7 -0
  58. package/dist/commands/system.d.ts.map +1 -0
  59. package/dist/commands/system.js +97 -0
  60. package/dist/commands/system.js.map +1 -0
  61. package/dist/commands/topics.d.ts +7 -0
  62. package/dist/commands/topics.d.ts.map +1 -0
  63. package/dist/commands/topics.js +314 -0
  64. package/dist/commands/topics.js.map +1 -0
  65. package/dist/index.d.ts +3 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +44 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/lib/api-client.d.ts +29 -0
  70. package/dist/lib/api-client.d.ts.map +1 -0
  71. package/dist/lib/api-client.js +64 -0
  72. package/dist/lib/api-client.js.map +1 -0
  73. package/dist/lib/auth.d.ts +10 -0
  74. package/dist/lib/auth.d.ts.map +1 -0
  75. package/dist/lib/auth.js +47 -0
  76. package/dist/lib/auth.js.map +1 -0
  77. package/dist/lib/config.d.ts +19 -0
  78. package/dist/lib/config.d.ts.map +1 -0
  79. package/dist/lib/config.js +59 -0
  80. package/dist/lib/config.js.map +1 -0
  81. package/dist/lib/errors.d.ts +7 -0
  82. package/dist/lib/errors.d.ts.map +1 -0
  83. package/dist/lib/errors.js +133 -0
  84. package/dist/lib/errors.js.map +1 -0
  85. package/dist/lib/formatters.d.ts +12 -0
  86. package/dist/lib/formatters.d.ts.map +1 -0
  87. package/dist/lib/formatters.js +103 -0
  88. package/dist/lib/formatters.js.map +1 -0
  89. package/dist/lib/spinner.d.ts +54 -0
  90. package/dist/lib/spinner.d.ts.map +1 -0
  91. package/dist/lib/spinner.js +108 -0
  92. package/dist/lib/spinner.js.map +1 -0
  93. package/dist/lib/validators.d.ts +92 -0
  94. package/dist/lib/validators.d.ts.map +1 -0
  95. package/dist/lib/validators.js +257 -0
  96. package/dist/lib/validators.js.map +1 -0
  97. package/dist/types/index.d.ts +13 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/index.js +3 -0
  100. package/dist/types/index.js.map +1 -0
  101. package/docs/README.md +219 -0
  102. package/docs/code-generation-strategy.md +560 -0
  103. package/docs/prd.md +748 -0
  104. package/docs/sync-strategy.md +533 -0
  105. package/jest.config.js +30 -0
  106. package/package.json +67 -0
  107. package/scripts/install-deps.sh +38 -0
  108. package/src/commands/apikeys.ts +144 -0
  109. package/src/commands/artifacts.ts +296 -0
  110. package/src/commands/auth.ts +122 -0
  111. package/src/commands/communities.ts +153 -0
  112. package/src/commands/config.ts +144 -0
  113. package/src/commands/conversations.ts +176 -0
  114. package/src/commands/facts.ts +320 -0
  115. package/src/commands/graphrag.ts +149 -0
  116. package/src/commands/memories.ts +332 -0
  117. package/src/commands/patterns.ts +251 -0
  118. package/src/commands/system.ts +102 -0
  119. package/src/commands/topics.ts +354 -0
  120. package/src/index.ts +43 -0
  121. package/src/lib/api-client.ts +68 -0
  122. package/src/lib/auth.ts +42 -0
  123. package/src/lib/config.ts +68 -0
  124. package/src/lib/errors.ts +143 -0
  125. package/src/lib/formatters.ts +123 -0
  126. package/src/lib/spinner.ts +113 -0
  127. package/src/lib/validators.ts +302 -0
  128. package/src/types/index.ts +17 -0
  129. package/tests/__mocks__/chalk.ts +16 -0
  130. package/tests/__mocks__/cli-table3.ts +37 -0
  131. package/tests/__mocks__/configstore.ts +38 -0
  132. package/tests/commands/apikeys.test.ts +179 -0
  133. package/tests/commands/artifacts.test.ts +194 -0
  134. package/tests/commands/auth.test.ts +120 -0
  135. package/tests/commands/communities.test.ts +154 -0
  136. package/tests/commands/config.test.ts +154 -0
  137. package/tests/commands/conversations.test.ts +136 -0
  138. package/tests/commands/facts.test.ts +210 -0
  139. package/tests/commands/graphrag.test.ts +194 -0
  140. package/tests/commands/memories.test.ts +215 -0
  141. package/tests/commands/patterns.test.ts +201 -0
  142. package/tests/commands/system.test.ts +172 -0
  143. package/tests/commands/topics.test.ts +274 -0
  144. package/tests/lib/auth.test.ts +77 -0
  145. package/tests/lib/config.test.ts +50 -0
  146. package/tests/lib/errors.test.ts +126 -0
  147. package/tests/lib/formatters.test.ts +87 -0
  148. package/tsconfig.json +20 -0
package/bin/mx.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ require('../dist/index.js');
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register API key management commands
4
+ * @param program - Commander program instance
5
+ */
6
+ export declare function registerApikeyCommands(program: Command): void;
7
+ //# sourceMappingURL=apikeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikeys.d.ts","sourceRoot":"","sources":["../../src/commands/apikeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiI7D"}
@@ -0,0 +1,133 @@
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.registerApikeyCommands = registerApikeyCommands;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const mx_typescript_sdk_1 = require("@memnexus-ai/mx-typescript-sdk");
11
+ const api_client_1 = require("../lib/api-client");
12
+ const errors_1 = require("../lib/errors");
13
+ const formatters_1 = require("../lib/formatters");
14
+ /**
15
+ * Register API key management commands
16
+ * @param program - Commander program instance
17
+ */
18
+ function registerApikeyCommands(program) {
19
+ const apikeys = program.command('apikeys').description('Manage API keys');
20
+ /**
21
+ * mx apikeys list [options]
22
+ * List API keys (metadata only, never show actual keys)
23
+ */
24
+ apikeys
25
+ .command('list')
26
+ .description('List API keys')
27
+ .option('--page <number>', 'Page number', '0')
28
+ .option('--limit <number>', 'Results per page', '20')
29
+ .option('--format <format>', 'Output format (json|table|yaml)')
30
+ .action(async (options) => {
31
+ try {
32
+ const result = await (0, mx_typescript_sdk_1.listApiKeys)({
33
+ ...(0, api_client_1.getApiOptions)(),
34
+ });
35
+ const apiKeys = result.data?.data || result.data || [];
36
+ if (options.format === 'table' || !options.format) {
37
+ const tableData = (Array.isArray(apiKeys) ? apiKeys : []).map((k) => ({
38
+ id: k.id,
39
+ label: k.label || k.name || 'N/A',
40
+ status: k.status || 'active',
41
+ createdAt: k.createdAt ? new Date(k.createdAt).toLocaleDateString() : 'N/A',
42
+ lastUsed: k.lastUsed ? new Date(k.lastUsed).toLocaleDateString() : 'Never',
43
+ }));
44
+ (0, formatters_1.printOutput)(tableData, options.format, {
45
+ columns: ['id', 'label', 'status', 'createdAt', 'lastUsed'],
46
+ maxColumnWidth: 20,
47
+ });
48
+ console.log(chalk_1.default.gray(`\nTotal: ${tableData.length} API keys`));
49
+ }
50
+ else {
51
+ (0, formatters_1.printOutput)(result.data, options.format);
52
+ }
53
+ }
54
+ catch (error) {
55
+ (0, errors_1.handleError)(error);
56
+ }
57
+ });
58
+ // Note: There's no getApiKeyById endpoint in the API, only list
59
+ // Removed the 'get <id>' command as it's not supported by the API
60
+ /**
61
+ * mx apikeys create [options]
62
+ * Create a new API key (show value ONCE on creation)
63
+ */
64
+ apikeys
65
+ .command('create')
66
+ .description('Create API key')
67
+ .option('--label <label>', 'Key label (optional)')
68
+ .option('--expires-at <date>', 'Expiration date (ISO 8601 format, optional)')
69
+ .action(async (options) => {
70
+ try {
71
+ const spinner = (0, ora_1.default)('Creating API key...').start();
72
+ const result = await (0, mx_typescript_sdk_1.createApiKey)({
73
+ ...(0, api_client_1.getApiOptions)(),
74
+ body: {
75
+ label: options.label,
76
+ expiresAt: options.expiresAt,
77
+ },
78
+ });
79
+ spinner.succeed('API key created successfully');
80
+ const apiKey = result.data;
81
+ if (apiKey) {
82
+ console.log(chalk_1.default.green(`✓ Created API key`));
83
+ console.log(chalk_1.default.yellow('\n⚠️ IMPORTANT: Save this key securely. You will not be able to see it again.\n'));
84
+ console.log(chalk_1.default.cyan(`Key: ${apiKey.key || apiKey.value || apiKey.id}`));
85
+ console.log(chalk_1.default.gray(`\nMetadata:`));
86
+ const metadata = { ...apiKey };
87
+ delete metadata.key;
88
+ delete metadata.value;
89
+ (0, formatters_1.printOutput)(metadata, 'json');
90
+ }
91
+ }
92
+ catch (error) {
93
+ (0, errors_1.handleError)(error);
94
+ }
95
+ });
96
+ /**
97
+ * mx apikeys delete <id> [options]
98
+ * Delete an API key
99
+ */
100
+ apikeys
101
+ .command('delete <id>')
102
+ .description('Delete API key')
103
+ .option('--force', 'Skip confirmation')
104
+ .action(async (id, options) => {
105
+ try {
106
+ if (!options.force) {
107
+ const answer = await inquirer_1.default.prompt([
108
+ {
109
+ type: 'confirm',
110
+ name: 'confirm',
111
+ message: chalk_1.default.red(`Delete API key ${id}? This cannot be undone.`),
112
+ default: false,
113
+ },
114
+ ]);
115
+ if (!answer.confirm) {
116
+ console.log(chalk_1.default.gray('Delete cancelled'));
117
+ return;
118
+ }
119
+ }
120
+ const spinner = (0, ora_1.default)('Deleting API key...').start();
121
+ await (0, mx_typescript_sdk_1.deleteApiKey)({
122
+ ...(0, api_client_1.getApiOptions)(),
123
+ path: { id },
124
+ });
125
+ spinner.succeed('API key deleted successfully');
126
+ console.log(chalk_1.default.green(`✓ Deleted API key: ${id}`));
127
+ }
128
+ catch (error) {
129
+ (0, errors_1.handleError)(error);
130
+ }
131
+ });
132
+ }
133
+ //# sourceMappingURL=apikeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikeys.js","sourceRoot":"","sources":["../../src/commands/apikeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register artifact management commands
4
+ * @param program - Commander program instance
5
+ */
6
+ export declare function registerArtifactsCommands(program: Command): void;
7
+ //# sourceMappingURL=artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmRhE"}
@@ -0,0 +1,277 @@
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.registerArtifactsCommands = registerArtifactsCommands;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const mx_typescript_sdk_1 = require("@memnexus-ai/mx-typescript-sdk");
11
+ const api_client_1 = require("../lib/api-client");
12
+ const errors_1 = require("../lib/errors");
13
+ const formatters_1 = require("../lib/formatters");
14
+ /**
15
+ * Register artifact management commands
16
+ * @param program - Commander program instance
17
+ */
18
+ function registerArtifactsCommands(program) {
19
+ const artifacts = program.command('artifacts').description('Manage artifacts');
20
+ /**
21
+ * mx artifacts list [options]
22
+ * List artifacts with pagination
23
+ */
24
+ artifacts
25
+ .command('list')
26
+ .description('List artifacts')
27
+ .option('--page <number>', 'Page number', '0')
28
+ .option('--limit <number>', 'Results per page', '20')
29
+ .option('--context-id <id>', 'Filter by context')
30
+ .option('--type <type>', 'Filter by artifact type')
31
+ .option('--format <format>', 'Output format (json|table|yaml)')
32
+ .action(async (options) => {
33
+ try {
34
+ const page = parseInt(options.page, 10);
35
+ const limit = parseInt(options.limit, 10);
36
+ const offset = page * limit;
37
+ const result = await (0, mx_typescript_sdk_1.listArtifacts)({
38
+ ...(0, api_client_1.getApiOptions)(),
39
+ query: {
40
+ limit,
41
+ offset,
42
+ type: options.type,
43
+ },
44
+ });
45
+ const responseData = result.data;
46
+ if (options.format === 'table' || !options.format) {
47
+ const tableData = (responseData?.data || []).map((a) => ({
48
+ id: a.id,
49
+ name: a.name || 'N/A',
50
+ type: a.type || 'N/A',
51
+ size: a.size || 0,
52
+ createdAt: new Date(a.createdAt).toLocaleDateString(),
53
+ }));
54
+ (0, formatters_1.printOutput)(tableData, options.format, {
55
+ columns: ['id', 'name', 'type', 'size', 'createdAt'],
56
+ maxColumnWidth: 20,
57
+ });
58
+ const pagination = responseData?.pagination;
59
+ if (pagination) {
60
+ console.log(chalk_1.default.gray(`\nShowing ${pagination.offset + 1}-${pagination.offset + (responseData?.data?.length || 0)} (Page ${page + 1})`));
61
+ }
62
+ }
63
+ else {
64
+ (0, formatters_1.printOutput)(responseData, options.format);
65
+ }
66
+ }
67
+ catch (error) {
68
+ (0, errors_1.handleError)(error);
69
+ }
70
+ });
71
+ /**
72
+ * mx artifacts get <id>
73
+ * Get artifact details
74
+ */
75
+ artifacts
76
+ .command('get <id>')
77
+ .description('Get artifact details')
78
+ .option('--format <format>', 'Output format (json|table|yaml)')
79
+ .action(async (id, options) => {
80
+ try {
81
+ const result = await (0, mx_typescript_sdk_1.getArtifactById)({
82
+ ...(0, api_client_1.getApiOptions)(),
83
+ path: { id },
84
+ });
85
+ (0, formatters_1.printOutput)(result.data, options.format);
86
+ }
87
+ catch (error) {
88
+ (0, errors_1.handleError)(error);
89
+ }
90
+ });
91
+ /**
92
+ * mx artifacts create [options]
93
+ * Create a new artifact
94
+ */
95
+ artifacts
96
+ .command('create')
97
+ .description('Create artifact')
98
+ .option('--name <name>', 'Artifact name')
99
+ .option('--type <type>', 'Artifact type')
100
+ .option('--context-id <id>', 'Context ID')
101
+ .option('--data <json>', 'Artifact data as JSON')
102
+ .option('--metadata <json>', 'Artifact metadata as JSON')
103
+ .option('--interactive', 'Interactive mode')
104
+ .option('--format <format>', 'Output format (json|table|yaml)')
105
+ .action(async (options) => {
106
+ try {
107
+ let payload = {};
108
+ if (options.interactive || !options.name || !options.type) {
109
+ // Interactive mode
110
+ const answers = await inquirer_1.default.prompt([
111
+ {
112
+ type: 'input',
113
+ name: 'name',
114
+ message: 'Artifact name:',
115
+ default: options.name,
116
+ validate: (input) => input.trim().length > 0 || 'Name is required',
117
+ },
118
+ {
119
+ type: 'input',
120
+ name: 'type',
121
+ message: 'Artifact type:',
122
+ default: options.type,
123
+ validate: (input) => input.trim().length > 0 || 'Type is required',
124
+ },
125
+ {
126
+ type: 'input',
127
+ name: 'contextId',
128
+ message: 'Context ID (optional):',
129
+ default: options.contextId,
130
+ },
131
+ {
132
+ type: 'input',
133
+ name: 'data',
134
+ message: 'Artifact data as JSON (optional):',
135
+ default: options.data,
136
+ validate: (input) => {
137
+ if (!input || input.trim().length === 0)
138
+ return true;
139
+ try {
140
+ JSON.parse(input);
141
+ return true;
142
+ }
143
+ catch (e) {
144
+ return 'Invalid JSON format';
145
+ }
146
+ },
147
+ },
148
+ {
149
+ type: 'input',
150
+ name: 'metadata',
151
+ message: 'Artifact metadata as JSON (optional):',
152
+ default: options.metadata,
153
+ validate: (input) => {
154
+ if (!input || input.trim().length === 0)
155
+ return true;
156
+ try {
157
+ JSON.parse(input);
158
+ return true;
159
+ }
160
+ catch (e) {
161
+ return 'Invalid JSON format';
162
+ }
163
+ },
164
+ },
165
+ ]);
166
+ payload = {
167
+ name: answers.name,
168
+ type: answers.type,
169
+ contextId: answers.contextId || undefined,
170
+ };
171
+ if (answers.data && answers.data.trim().length > 0) {
172
+ payload.data = JSON.parse(answers.data);
173
+ }
174
+ if (answers.metadata && answers.metadata.trim().length > 0) {
175
+ payload.metadata = JSON.parse(answers.metadata);
176
+ }
177
+ }
178
+ else {
179
+ // Direct mode
180
+ payload = {
181
+ name: options.name,
182
+ type: options.type,
183
+ contextId: options.contextId,
184
+ };
185
+ if (options.data)
186
+ payload.data = JSON.parse(options.data);
187
+ if (options.metadata)
188
+ payload.metadata = JSON.parse(options.metadata);
189
+ }
190
+ const spinner = (0, ora_1.default)('Creating artifact...').start();
191
+ const result = await (0, mx_typescript_sdk_1.createArtifact)({
192
+ ...(0, api_client_1.getApiOptions)(),
193
+ body: payload,
194
+ });
195
+ spinner.succeed('Artifact created successfully');
196
+ const artifactData = result.data;
197
+ console.log(chalk_1.default.green(`✓ Created artifact: ${artifactData?.id}`));
198
+ (0, formatters_1.printOutput)(artifactData, options.format);
199
+ }
200
+ catch (error) {
201
+ (0, errors_1.handleError)(error);
202
+ }
203
+ });
204
+ /**
205
+ * mx artifacts update <id> [options]
206
+ * Update an artifact
207
+ */
208
+ artifacts
209
+ .command('update <id>')
210
+ .description('Update artifact')
211
+ .option('--name <name>', 'Updated name')
212
+ .option('--data <json>', 'Updated data')
213
+ .option('--metadata <json>', 'Updated metadata')
214
+ .option('--format <format>', 'Output format (json|table|yaml)')
215
+ .action(async (id, options) => {
216
+ try {
217
+ if (!options.name && !options.data && !options.metadata) {
218
+ console.log(chalk_1.default.red('Error: At least one option is required'));
219
+ return;
220
+ }
221
+ const updates = {};
222
+ if (options.name)
223
+ updates.name = options.name;
224
+ if (options.data)
225
+ updates.data = JSON.parse(options.data);
226
+ if (options.metadata)
227
+ updates.metadata = JSON.parse(options.metadata);
228
+ const result = await (0, mx_typescript_sdk_1.updateArtifact)({
229
+ ...(0, api_client_1.getApiOptions)(),
230
+ path: { id },
231
+ body: updates,
232
+ });
233
+ console.log(chalk_1.default.green('✓ Artifact updated successfully'));
234
+ (0, formatters_1.printOutput)(result.data, options.format);
235
+ }
236
+ catch (error) {
237
+ (0, errors_1.handleError)(error);
238
+ }
239
+ });
240
+ /**
241
+ * mx artifacts delete <id> [options]
242
+ * Delete an artifact
243
+ */
244
+ artifacts
245
+ .command('delete <id>')
246
+ .description('Delete artifact')
247
+ .option('--force', 'Skip confirmation')
248
+ .action(async (id, options) => {
249
+ try {
250
+ if (!options.force) {
251
+ const answer = await inquirer_1.default.prompt([
252
+ {
253
+ type: 'confirm',
254
+ name: 'confirm',
255
+ message: `Delete artifact ${id}?`,
256
+ default: false,
257
+ },
258
+ ]);
259
+ if (!answer.confirm) {
260
+ console.log(chalk_1.default.gray('Delete cancelled'));
261
+ return;
262
+ }
263
+ }
264
+ const spinner = (0, ora_1.default)('Deleting artifact...').start();
265
+ await (0, mx_typescript_sdk_1.deleteArtifact)({
266
+ ...(0, api_client_1.getApiOptions)(),
267
+ path: { id },
268
+ });
269
+ spinner.succeed('Artifact deleted successfully');
270
+ console.log(chalk_1.default.green(`✓ Deleted artifact: ${id}`));
271
+ }
272
+ catch (error) {
273
+ (0, errors_1.handleError)(error);
274
+ }
275
+ });
276
+ }
277
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register authentication commands
4
+ * @param program - Commander program instance
5
+ */
6
+ export declare function registerAuthCommands(program: Command): void;
7
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6G3D"}
@@ -0,0 +1,119 @@
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.registerAuthCommands = registerAuthCommands;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const cli_table3_1 = __importDefault(require("cli-table3"));
10
+ const auth_1 = require("../lib/auth");
11
+ const config_1 = require("../lib/config");
12
+ const errors_1 = require("../lib/errors");
13
+ /**
14
+ * Register authentication commands
15
+ * @param program - Commander program instance
16
+ */
17
+ function registerAuthCommands(program) {
18
+ const auth = program.command('auth').description('Manage authentication and API keys');
19
+ /**
20
+ * mx auth login
21
+ * Configure API key for authentication
22
+ */
23
+ auth
24
+ .command('login')
25
+ .description('Configure API key for authentication')
26
+ .option('--api-key <key>', 'API key to store')
27
+ .option('--interactive', 'Prompt for API key (mask input)')
28
+ .action(async (options) => {
29
+ try {
30
+ let apiKey;
31
+ if (options.apiKey) {
32
+ // Direct API key provided
33
+ apiKey = options.apiKey;
34
+ }
35
+ else {
36
+ // Interactive mode - prompt for API key
37
+ const answers = await inquirer_1.default.prompt([
38
+ {
39
+ type: 'password',
40
+ name: 'apiKey',
41
+ message: 'Enter your API key:',
42
+ mask: '*',
43
+ validate: (input) => {
44
+ if (!input || input.trim().length === 0) {
45
+ return 'API key cannot be empty';
46
+ }
47
+ if (input.length < 10) {
48
+ return 'API key seems too short. Please check and try again.';
49
+ }
50
+ return true;
51
+ },
52
+ },
53
+ ]);
54
+ apiKey = answers.apiKey;
55
+ }
56
+ // Store the API key
57
+ (0, auth_1.storeApiKey)(apiKey);
58
+ }
59
+ catch (error) {
60
+ (0, errors_1.handleError)(error);
61
+ }
62
+ });
63
+ /**
64
+ * mx auth logout
65
+ * Remove stored credentials
66
+ */
67
+ auth
68
+ .command('logout')
69
+ .description('Remove stored credentials')
70
+ .action(async () => {
71
+ try {
72
+ (0, auth_1.removeApiKey)();
73
+ }
74
+ catch (error) {
75
+ (0, errors_1.handleError)(error);
76
+ }
77
+ });
78
+ /**
79
+ * mx auth status
80
+ * Show current authentication status
81
+ */
82
+ auth
83
+ .command('status')
84
+ .description('Show current authentication status')
85
+ .action(async () => {
86
+ try {
87
+ const status = (0, auth_1.getApiKeyStatus)();
88
+ const apiUrl = config_1.config.getApiUrl();
89
+ const outputFormat = config_1.config.getFormat();
90
+ const table = new cli_table3_1.default({
91
+ head: [chalk_1.default.cyan('Property'), chalk_1.default.cyan('Value')],
92
+ colWidths: [30, 70],
93
+ wordWrap: true,
94
+ });
95
+ // Authentication status
96
+ let authStatus;
97
+ if (status.configured) {
98
+ if (status.source === 'env') {
99
+ authStatus = chalk_1.default.green('✓ Configured (via environment)');
100
+ }
101
+ else {
102
+ authStatus = chalk_1.default.green('✓ Configured (via config file)');
103
+ }
104
+ }
105
+ else {
106
+ authStatus = chalk_1.default.red('✗ Not configured');
107
+ }
108
+ table.push(['Authentication', authStatus], ['API URL', apiUrl], ['Output Format', outputFormat]);
109
+ console.log(table.toString());
110
+ if (!status.configured) {
111
+ console.log(chalk_1.default.yellow('\nTo configure authentication, run: mx auth login'));
112
+ }
113
+ }
114
+ catch (error) {
115
+ (0, errors_1.handleError)(error);
116
+ }
117
+ });
118
+ }
119
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Register community management commands
4
+ * @param program - Commander program instance
5
+ */
6
+ export declare function registerCommunitiesCommands(program: Command): void;
7
+ //# sourceMappingURL=communities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communities.d.ts","sourceRoot":"","sources":["../../src/commands/communities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsIlE"}