@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 +208 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +114 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth.d.ts +6 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +239 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +284 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +173 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/config.d.ts +31 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +191 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +77 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +55 -0
package/README.md
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# MiniMax Coding Helper
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@minimax_coding/helper)
|
|
4
|
+
[](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 © [hunghoang3011](https://github.com/hunghoang3011)
|
package/dist/cli.d.ts
ADDED
|
@@ -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
|
package/dist/cli.js.map
ADDED
|
@@ -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 @@
|
|
|
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"}
|