@hunghoang3011/minimax-coding-helper 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,208 @@
1
+ # MiniMax Coding Helper
2
+
3
+ [![npm version](https://badge.fury.io/js/%40minimax_coding%2Fhelper.svg)](https://www.npmjs.com/package/@minimax_coding/helper)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ > A CLI helper for MiniMax Coding Plan Users to configure Claude Code with the MiniMax-M2.1 model.
7
+
8
+ ## Author
9
+
10
+ **[hunghoang3011](https://github.com/hunghoang3011)**
11
+
12
+ GitHub: [@hunghoang3011](https://github.com/hunghoang3011)
13
+
14
+ ## Features
15
+
16
+ - **Interactive wizard** - Friendly onboarding guidance on first launch
17
+ - **MiniMax-M2.1 integration** - Use MiniMax's powerful coding model in Claude Code
18
+ - **API key management** - Securely store and manage your MiniMax API key
19
+ - **Region selection** - Support for both International and China regions
20
+ - **Health check** - Verify your configuration with the `doctor` command
21
+ - **Local storage** - All settings are stored securely on your machine
22
+
23
+ ## Prerequisites
24
+
25
+ - Node.js 18 or later
26
+ - Claude Code CLI installed ([install from here](https://claude.ai/download))
27
+ - MiniMax API key ([get one here](https://platform.minimax.io/))
28
+
29
+ ## Installation
30
+
31
+ ### Run directly with npx (Recommended)
32
+
33
+ ```bash
34
+ npx @minimax_coding/helper
35
+ ```
36
+
37
+ ### Install globally
38
+
39
+ ```bash
40
+ npm install -g @minimax_coding/helper
41
+ ```
42
+
43
+ Then run:
44
+
45
+ ```bash
46
+ minimax-helper
47
+ # or
48
+ mmhelper
49
+ ```
50
+
51
+ ## Quick Start
52
+
53
+ 1. **Run the setup wizard:**
54
+
55
+ ```bash
56
+ mmhelper init
57
+ ```
58
+
59
+ 2. **Enter your MiniMax API key** when prompted
60
+
61
+ 3. **Select your region** (International or China)
62
+
63
+ 4. **Restart Claude Code** if it's running
64
+
65
+ 5. **Start coding!** Run `claude` in your project directory
66
+
67
+ ## Commands
68
+
69
+ ### `mmhelper init`
70
+
71
+ Run the interactive setup wizard.
72
+
73
+ ```bash
74
+ mmhelper init
75
+ ```
76
+
77
+ ### `mmhelper auth`
78
+
79
+ Manage your MiniMax API authentication.
80
+
81
+ ```bash
82
+ # Set API key interactively
83
+ mmhelper auth set
84
+
85
+ # Set API key directly
86
+ mmhelper auth set <your-api-key>
87
+
88
+ # Set API key for China region
89
+ mmhelper auth set <your-api-key> --region china
90
+
91
+ # Show current configuration
92
+ mmhelper auth show
93
+
94
+ # Apply MiniMax config to Claude Code
95
+ mmhelper auth apply
96
+
97
+ # Remove API key and restore original settings
98
+ mmhelper auth revoke
99
+
100
+ # Show configuration file paths
101
+ mmhelper auth path
102
+ ```
103
+
104
+ ### `mmhelper doctor`
105
+
106
+ Run system health check to diagnose issues.
107
+
108
+ ```bash
109
+ mmhelper doctor
110
+ ```
111
+
112
+ ### `mmhelper --help`
113
+
114
+ Show all available commands.
115
+
116
+ ```bash
117
+ mmhelper --help
118
+ ```
119
+
120
+ ## Configuration
121
+
122
+ The helper stores configuration in two locations:
123
+
124
+ 1. **MiniMax Helper Config**: `~/.minimax-helper/config.yaml`
125
+ - Stores your API key and region settings
126
+
127
+ 2. **Claude Code Settings**: `~/.claude/settings.json`
128
+ - Modified to use MiniMax API endpoints
129
+
130
+ ### What gets configured in Claude Code?
131
+
132
+ When you apply the MiniMax configuration, the following environment variables are set in Claude Code's settings:
133
+
134
+ ```json
135
+ {
136
+ "env": {
137
+ "ANTHROPIC_BASE_URL": "https://api.minimax.io/anthropic",
138
+ "ANTHROPIC_AUTH_TOKEN": "<your-api-key>",
139
+ "API_TIMEOUT_MS": "3000000",
140
+ "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
141
+ "ANTHROPIC_MODEL": "MiniMax-M2.1",
142
+ "ANTHROPIC_SMALL_FAST_MODEL": "MiniMax-M2.1",
143
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-M2.1",
144
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-M2.1",
145
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M2.1"
146
+ }
147
+ }
148
+ ```
149
+
150
+ ## Region Configuration
151
+
152
+ Choose the appropriate region based on your location:
153
+
154
+ | Region | Base URL | Best For |
155
+ |--------|----------|----------|
156
+ | International | `https://api.minimax.io/anthropic` | Users outside China |
157
+ | China | `https://api.minimaxi.com/anthropic` | Users in China |
158
+
159
+ ## Important Notes
160
+
161
+ ### Clear Anthropic Environment Variables
162
+
163
+ Before configuring MiniMax, ensure you clear the following environment variables to avoid conflicts:
164
+
165
+ - `ANTHROPIC_AUTH_TOKEN`
166
+ - `ANTHROPIC_BASE_URL`
167
+
168
+ ### Backup
169
+
170
+ The helper automatically backs up your original Claude Code settings before applying MiniMax configuration. Backups are stored in `~/.minimax-helper/`.
171
+
172
+ ## Getting Your API Key
173
+
174
+ 1. Visit [https://platform.minimax.io/](https://platform.minimax.io/)
175
+ 2. Sign up or log in
176
+ 3. Navigate to the API section
177
+ 4. Generate a new API key
178
+ 5. Copy the key and use it with this helper
179
+
180
+ ## Troubleshooting
181
+
182
+ ### Claude Code doesn't use MiniMax
183
+
184
+ 1. Run `mmhelper doctor` to check your configuration
185
+ 2. Make sure you've run `mmhelper auth apply`
186
+ 3. Restart Claude Code completely
187
+ 4. Check that `ANTHROPIC_BASE_URL` is not set in your shell environment
188
+
189
+ ### API errors
190
+
191
+ 1. Verify your API key is correct: `mmhelper auth show`
192
+ 2. Check that you selected the correct region
193
+ 3. Ensure you have API quota available on the MiniMax platform
194
+
195
+ ### Claude Code not found
196
+
197
+ Install Claude Code from the official website: https://claude.ai/download
198
+
199
+ ## Links
200
+
201
+ - [MiniMax Platform](https://platform.minimax.io/)
202
+ - [MiniMax Documentation](https://platform.minimax.io/docs)
203
+ - [Claude Code](https://claude.ai/download)
204
+ - [GitHub Repository](https://github.com/hunghoang3011/minimax-coding-helper)
205
+
206
+ ## License
207
+
208
+ MIT &copy; [hunghoang3011](https://github.com/hunghoang3011)
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const init_js_1 = require("./commands/init.js");
10
+ const auth_js_1 = require("./commands/auth.js");
11
+ const doctor_js_1 = require("./commands/doctor.js");
12
+ const program = new commander_1.Command();
13
+ program
14
+ .name('minimax-helper')
15
+ .description('A CLI helper for MiniMax Coding Plan Users to configure Claude Code')
16
+ .version('1.0.0');
17
+ // Init command
18
+ program
19
+ .command('init')
20
+ .description('Run the interactive setup wizard')
21
+ .action(async () => {
22
+ try {
23
+ await (0, init_js_1.runInitWizard)();
24
+ }
25
+ catch (error) {
26
+ console.error(chalk_1.default.red('Error:'), error);
27
+ process.exit(1);
28
+ }
29
+ });
30
+ // Auth command group
31
+ const authCommand = program
32
+ .command('auth')
33
+ .description('Manage MiniMax API authentication');
34
+ authCommand
35
+ .command('set [api-key]')
36
+ .description('Set your MiniMax API key')
37
+ .option('-r, --region <region>', 'Region: international or china', 'international')
38
+ .action(async (apiKey, options) => {
39
+ try {
40
+ const region = options.region === 'china' ? 'china' : 'international';
41
+ await (0, auth_js_1.authSet)(apiKey, region);
42
+ }
43
+ catch (error) {
44
+ console.error(chalk_1.default.red('Error:'), error);
45
+ process.exit(1);
46
+ }
47
+ });
48
+ authCommand
49
+ .command('show')
50
+ .description('Show current authentication status')
51
+ .action(async () => {
52
+ try {
53
+ await (0, auth_js_1.authShow)();
54
+ }
55
+ catch (error) {
56
+ console.error(chalk_1.default.red('Error:'), error);
57
+ process.exit(1);
58
+ }
59
+ });
60
+ authCommand
61
+ .command('revoke')
62
+ .description('Remove saved API key and restore Claude Code settings')
63
+ .action(async () => {
64
+ try {
65
+ await (0, auth_js_1.authRevoke)();
66
+ }
67
+ catch (error) {
68
+ console.error(chalk_1.default.red('Error:'), error);
69
+ process.exit(1);
70
+ }
71
+ });
72
+ authCommand
73
+ .command('apply')
74
+ .description('Apply MiniMax configuration to Claude Code')
75
+ .action(async () => {
76
+ try {
77
+ await (0, auth_js_1.authApply)();
78
+ }
79
+ catch (error) {
80
+ console.error(chalk_1.default.red('Error:'), error);
81
+ process.exit(1);
82
+ }
83
+ });
84
+ authCommand
85
+ .command('path')
86
+ .description('Show configuration file paths')
87
+ .action(async () => {
88
+ try {
89
+ await (0, auth_js_1.authPath)();
90
+ }
91
+ catch (error) {
92
+ console.error(chalk_1.default.red('Error:'), error);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ // Doctor command
97
+ program
98
+ .command('doctor')
99
+ .description('Run system health check')
100
+ .action(async () => {
101
+ try {
102
+ await (0, doctor_js_1.runDoctor)();
103
+ }
104
+ catch (error) {
105
+ console.error(chalk_1.default.red('Error:'), error);
106
+ process.exit(1);
107
+ }
108
+ });
109
+ // Default to init if no command provided
110
+ program.action(async () => {
111
+ await (0, init_js_1.runInitWizard)();
112
+ });
113
+ program.parse();
114
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function authSet(apiKey?: string, region?: 'international' | 'china'): Promise<void>;
2
+ export declare function authShow(): Promise<void>;
3
+ export declare function authRevoke(): Promise<void>;
4
+ export declare function authApply(): Promise<void>;
5
+ export declare function authPath(): Promise<void>;
6
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAkBA,wBAAsB,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEhG;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAuC9C;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDhD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAoC/C;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9C"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.authSet = authSet;
40
+ exports.authShow = authShow;
41
+ exports.authRevoke = authRevoke;
42
+ exports.authApply = authApply;
43
+ exports.authPath = authPath;
44
+ const inquirer_1 = __importDefault(require("inquirer"));
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ const fs = __importStar(require("fs-extra"));
47
+ const config_js_1 = require("../utils/config.js");
48
+ const logger_js_1 = require("../utils/logger.js");
49
+ async function authSet(apiKey, region) {
50
+ const config = await (0, config_js_1.loadConfig)() || {};
51
+ // Prompt for API key if not provided
52
+ if (!apiKey) {
53
+ const answers = await inquirer_1.default.prompt([
54
+ {
55
+ type: 'password',
56
+ name: 'apiKey',
57
+ message: 'Enter your MiniMax API Key:',
58
+ mask: '*',
59
+ validate: (input) => {
60
+ if (!input || input.trim().length === 0) {
61
+ return 'API Key cannot be empty';
62
+ }
63
+ return true;
64
+ }
65
+ }
66
+ ]);
67
+ apiKey = answers.apiKey;
68
+ apiKey = apiKey.trim();
69
+ }
70
+ // Prompt for region if not provided
71
+ if (!region) {
72
+ const answers = await inquirer_1.default.prompt([
73
+ {
74
+ type: 'list',
75
+ name: 'region',
76
+ message: 'Select your region:',
77
+ choices: [
78
+ { name: 'International (api.minimax.io)', value: 'international' },
79
+ { name: 'China (api.minimaxi.com)', value: 'china' }
80
+ ],
81
+ default: config.region || 'international'
82
+ }
83
+ ]);
84
+ region = answers.region;
85
+ }
86
+ // Update config
87
+ config.api_key = apiKey;
88
+ config.region = region;
89
+ config.base_url = region === 'international'
90
+ ? 'https://api.minimax.io/anthropic'
91
+ : 'https://api.minimaxi.com/anthropic';
92
+ config.model = 'MiniMax-M2.1';
93
+ config.api_timeout_ms = '3000000';
94
+ await (0, config_js_1.saveConfig)(config);
95
+ logger_js_1.logger.success('API Key saved successfully!');
96
+ logger_js_1.logger.info(`Region: ${chalk_1.default.cyan(region)}`);
97
+ logger_js_1.logger.info(`Base URL: ${chalk_1.default.cyan(config.base_url)}`);
98
+ // Ask if user wants to apply to Claude Code now
99
+ const { applyNow } = await inquirer_1.default.prompt([
100
+ {
101
+ type: 'confirm',
102
+ name: 'applyNow',
103
+ message: 'Apply MiniMax configuration to Claude Code now?',
104
+ default: true
105
+ }
106
+ ]);
107
+ if (applyNow) {
108
+ await authApply();
109
+ }
110
+ else {
111
+ logger_js_1.logger.info('Run `mmhelper auth apply` to apply the configuration later.');
112
+ }
113
+ }
114
+ async function authShow() {
115
+ const config = await (0, config_js_1.loadConfig)();
116
+ if (!config) {
117
+ logger_js_1.logger.warning('No API key found. Run `mmhelper auth` to set one.');
118
+ return;
119
+ }
120
+ logger_js_1.logger.title('MiniMax Configuration');
121
+ logger_js_1.logger.blank();
122
+ // Mask API key
123
+ const maskedKey = config.api_key
124
+ ? `${config.api_key.slice(0, 8)}${'*'.repeat(Math.max(0, config.api_key.length - 8))}`
125
+ : 'Not set';
126
+ logger_js_1.logger.info(`API Key: ${chalk_1.default.cyan(maskedKey)}`);
127
+ logger_js_1.logger.info(`Region: ${chalk_1.default.cyan(config.region)}`);
128
+ logger_js_1.logger.info(`Base URL: ${chalk_1.default.cyan(config.base_url)}`);
129
+ logger_js_1.logger.info(`Model: ${chalk_1.default.cyan(config.model)}`);
130
+ logger_js_1.logger.info(`API Timeout: ${chalk_1.default.cyan(config.api_timeout_ms)}ms`);
131
+ // Check Claude Code configuration
132
+ const claudeSettings = await (0, config_js_1.loadClaudeSettings)();
133
+ if (claudeSettings?.env?.ANTHROPIC_AUTH_TOKEN) {
134
+ const claudeKey = claudeSettings.env.ANTHROPIC_AUTH_TOKEN;
135
+ const claudeMasked = `${claudeKey.slice(0, 8)}${'*'.repeat(Math.max(0, claudeKey.length - 8))}`;
136
+ logger_js_1.logger.blank();
137
+ logger_js_1.logger.title('Claude Code Status');
138
+ logger_js_1.logger.info(`Configured: ${chalk_1.default.green('Yes')}`);
139
+ logger_js_1.logger.info(`API Key: ${chalk_1.default.cyan(claudeMasked)}`);
140
+ logger_js_1.logger.info(`Base URL: ${chalk_1.default.cyan(claudeSettings.env.ANTHROPIC_BASE_URL || 'Not set')}`);
141
+ logger_js_1.logger.info(`Model: ${chalk_1.default.cyan(claudeSettings.env.ANTHROPIC_MODEL || 'Not set')}`);
142
+ }
143
+ else {
144
+ logger_js_1.logger.blank();
145
+ logger_js_1.logger.title('Claude Code Status');
146
+ logger_js_1.logger.warning('Not configured. Run `mmhelper auth apply` to apply.');
147
+ }
148
+ }
149
+ async function authRevoke() {
150
+ const config = await (0, config_js_1.loadConfig)();
151
+ if (!config) {
152
+ logger_js_1.logger.warning('No API key found. Nothing to revoke.');
153
+ return;
154
+ }
155
+ const { confirm } = await inquirer_1.default.prompt([
156
+ {
157
+ type: 'confirm',
158
+ name: 'confirm',
159
+ message: 'Are you sure you want to remove the saved API key?',
160
+ default: false
161
+ }
162
+ ]);
163
+ if (!confirm) {
164
+ logger_js_1.logger.info('Operation cancelled.');
165
+ return;
166
+ }
167
+ await (0, config_js_1.removeConfig)();
168
+ logger_js_1.logger.success('API key removed successfully.');
169
+ // Ask if user wants to restore Claude Code settings
170
+ const { restoreClaude } = await inquirer_1.default.prompt([
171
+ {
172
+ type: 'confirm',
173
+ name: 'restoreClaude',
174
+ message: 'Restore original Claude Code settings?',
175
+ default: true
176
+ }
177
+ ]);
178
+ if (restoreClaude) {
179
+ // Remove MiniMax config from Claude settings
180
+ const claudeSettings = await (0, config_js_1.loadClaudeSettings)();
181
+ if (claudeSettings?.env) {
182
+ delete claudeSettings.env.ANTHROPIC_BASE_URL;
183
+ delete claudeSettings.env.ANTHROPIC_AUTH_TOKEN;
184
+ delete claudeSettings.env.API_TIMEOUT_MS;
185
+ delete claudeSettings.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC;
186
+ delete claudeSettings.env.ANTHROPIC_MODEL;
187
+ delete claudeSettings.env.ANTHROPIC_SMALL_FAST_MODEL;
188
+ delete claudeSettings.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
189
+ delete claudeSettings.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
190
+ delete claudeSettings.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
191
+ await (0, config_js_1.saveClaudeSettings)(claudeSettings);
192
+ logger_js_1.logger.success('Claude Code settings restored.');
193
+ }
194
+ }
195
+ }
196
+ async function authApply() {
197
+ const config = await (0, config_js_1.loadConfig)();
198
+ if (!config || !config.api_key) {
199
+ logger_js_1.logger.error('No API key found. Run `mmhelper auth` to set one.');
200
+ return;
201
+ }
202
+ const spinner = (0, logger_js_1.createSpinner)('Applying MiniMax configuration to Claude Code...');
203
+ spinner.start();
204
+ try {
205
+ // Backup existing settings
206
+ await (0, config_js_1.backupClaudeSettings)();
207
+ // Get the environment config
208
+ const envConfig = (0, config_js_1.getClaudeEnvConfig)(config);
209
+ // Apply to Claude settings
210
+ await (0, config_js_1.saveClaudeSettings)({ env: envConfig });
211
+ spinner.succeed('MiniMax configuration applied to Claude Code!');
212
+ logger_js_1.logger.blank();
213
+ logger_js_1.logger.info('Claude Code configuration:');
214
+ logger_js_1.logger.info(` Base URL: ${chalk_1.default.cyan(envConfig.ANTHROPIC_BASE_URL)}`);
215
+ logger_js_1.logger.info(` Model: ${chalk_1.default.cyan(envConfig.ANTHROPIC_MODEL)}`);
216
+ logger_js_1.logger.blank();
217
+ logger_js_1.logger.success('You can now use Claude Code with MiniMax-M2.1!');
218
+ logger_js_1.logger.info('Restart Claude Code if it\'s currently running.');
219
+ }
220
+ catch (error) {
221
+ spinner.fail('Failed to apply configuration.');
222
+ if (error instanceof Error) {
223
+ logger_js_1.logger.error(error.message);
224
+ }
225
+ throw error;
226
+ }
227
+ }
228
+ async function authPath() {
229
+ logger_js_1.logger.title('Configuration Paths');
230
+ logger_js_1.logger.blank();
231
+ logger_js_1.logger.info(`MiniMax Config: ${chalk_1.default.cyan((0, config_js_1.getConfigFile)())}`);
232
+ logger_js_1.logger.info(`Claude Settings: ${chalk_1.default.cyan((0, config_js_1.getClaudeSettingsPath)())}`);
233
+ const configExists = await fs.pathExists((0, config_js_1.getConfigFile)());
234
+ const claudeExists = await fs.pathExists((0, config_js_1.getClaudeSettingsPath)());
235
+ logger_js_1.logger.blank();
236
+ logger_js_1.logger.info(`MiniMax Config: ${configExists ? chalk_1.default.green('Exists') : chalk_1.default.red('Not Found')}`);
237
+ logger_js_1.logger.info(`Claude Settings: ${claudeExists ? chalk_1.default.green('Exists') : chalk_1.default.red('Not Found')}`);
238
+ }
239
+ //# 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,2 @@
1
+ export declare function runDoctor(): Promise<void>;
2
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAsBA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C/C"}