@eddyskywalker/dsh-chatgpt-subscription 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/README.md +39 -1
- package/lib/client.js +1569 -205
- package/lib/client.js.map +1 -1
- package/lib/index.js +4775 -1030
- package/lib/types/client/ProviderHubSection.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +2 -0
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/minimax-code/MinimaxCodeComposerQuota.d.ts +27 -0
- package/lib/types/client/minimax-code/MinimaxCodeComposerQuota.d.ts.map +1 -0
- package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts +49 -0
- package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts.map +1 -0
- package/lib/types/client/minimax-code/api.d.ts +5 -0
- package/lib/types/client/minimax-code/api.d.ts.map +1 -0
- package/lib/types/client/minimax-code/locales.d.ts +341 -0
- package/lib/types/client/minimax-code/locales.d.ts.map +1 -0
- package/lib/types/client/minimax-code/styles.d.ts +12 -0
- package/lib/types/client/minimax-code/styles.d.ts.map +1 -0
- package/lib/types/client/styles.d.ts.map +1 -1
- package/lib/types/compat.d.ts +1 -0
- package/lib/types/compat.d.ts.map +1 -1
- package/lib/types/host/minimax-code/account-pool.d.ts +219 -0
- package/lib/types/host/minimax-code/account-pool.d.ts.map +1 -0
- package/lib/types/host/minimax-code/adapter.d.ts +168 -0
- package/lib/types/host/minimax-code/adapter.d.ts.map +1 -0
- package/lib/types/host/minimax-code/client.d.ts +184 -0
- package/lib/types/host/minimax-code/client.d.ts.map +1 -0
- package/lib/types/host/minimax-code/mapper.d.ts +143 -0
- package/lib/types/host/minimax-code/mapper.d.ts.map +1 -0
- package/lib/types/host/minimax-code/model-catalog.d.ts +146 -0
- package/lib/types/host/minimax-code/model-catalog.d.ts.map +1 -0
- package/lib/types/host/minimax-code/oauth.d.ts +204 -0
- package/lib/types/host/minimax-code/oauth.d.ts.map +1 -0
- package/lib/types/host/minimax-code/routes.d.ts +79 -0
- package/lib/types/host/minimax-code/routes.d.ts.map +1 -0
- package/lib/types/host/minimax-code/token-store.d.ts +238 -0
- package/lib/types/host/minimax-code/token-store.d.ts.map +1 -0
- package/lib/types/host/minimax-code/types.d.ts +206 -0
- package/lib/types/host/minimax-code/types.d.ts.map +1 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/minimax-code-contracts.d.ts +166 -0
- package/lib/types/shared/minimax-code-contracts.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential storage for the MiniMax Code line.
|
|
3
|
+
*
|
|
4
|
+
* Unlike every other line in this package, this one does not own its credential
|
|
5
|
+
* format: MiniMax Code itself keeps the signed-in session in
|
|
6
|
+
* `~/.minimax/auth/<buildEnv>/<region>/mcode-public/auth.json`, and the whole
|
|
7
|
+
* point of reusing it is that a user who is already signed in to the desktop app
|
|
8
|
+
* does not sign in again here.
|
|
9
|
+
*
|
|
10
|
+
* That sharing is the design constraint:
|
|
11
|
+
*
|
|
12
|
+
* 1. READ-ONLY FIRST. Every call reads the file and uses the stored token when it
|
|
13
|
+
* is still valid; the plugin never rotates a credential it does not have to.
|
|
14
|
+
* 2. WRITE-BACK IS ATOMIC. A rotated token replaces the file through a temporary
|
|
15
|
+
* file plus `rename`, so a failed or interrupted refresh leaves the previous
|
|
16
|
+
* `auth.json` byte-for-byte intact — the requirement the brief states at
|
|
17
|
+
* section 2.6.4.
|
|
18
|
+
* 3. NO LOCK IS TAKEN. MiniMax Code holds `auth.lock` while it refreshes, and a
|
|
19
|
+
* second process must not create, delete or wait on that file: doing so could
|
|
20
|
+
* break the app's own refresh. Atomic replacement is what makes lock-free
|
|
21
|
+
* sharing safe instead — a reader sees either the whole old file or the whole
|
|
22
|
+
* new one, never a half-written one, and the record's key is preserved so the
|
|
23
|
+
* app finds its own entry where it left it.
|
|
24
|
+
* 4. THE SHAPE IS PRESERVED. `schemaVersion` and every other record in
|
|
25
|
+
* `records` survive a write untouched; only the `mcode-public` record and the
|
|
26
|
+
* matching `auth-state.json` fields change.
|
|
27
|
+
*
|
|
28
|
+
* A credential this plugin obtained itself (device-code login with no native file
|
|
29
|
+
* present) is kept in the plugin's own store under `$DSH_HOME/storages`, so the
|
|
30
|
+
* two provenances never overwrite each other.
|
|
31
|
+
*/
|
|
32
|
+
import { type ContextWindowOverridePatch } from '../common/context-window-overrides.ts';
|
|
33
|
+
import type { MinimaxCodeReasoningEffort, MinimaxCodeRegion } from '../../shared/minimax-code-contracts.ts';
|
|
34
|
+
/** Where the credential and the token came from. */
|
|
35
|
+
export type MinimaxCodeCredentialSource = 'minimax-native' | 'file';
|
|
36
|
+
/**
|
|
37
|
+
* One MiniMax Code subscription credential.
|
|
38
|
+
*
|
|
39
|
+
* Field names follow `auth.json` exactly; nothing is renamed on the way in or
|
|
40
|
+
* out, so a round trip cannot lose a field the desktop app depends on.
|
|
41
|
+
*/
|
|
42
|
+
export interface MinimaxCodeCredentials {
|
|
43
|
+
/** Bearer access token for the agent API. Host-only; never sent to a browser. */
|
|
44
|
+
accessToken: string;
|
|
45
|
+
/** Rotating refresh token. Host-only. */
|
|
46
|
+
refreshToken: string;
|
|
47
|
+
/** Always "Bearer" in the measured file; kept verbatim. */
|
|
48
|
+
tokenType: string;
|
|
49
|
+
/** Public client the record belongs to. */
|
|
50
|
+
clientId: string;
|
|
51
|
+
/** Scopes the token was issued for. */
|
|
52
|
+
scopes: string[];
|
|
53
|
+
/** Audience the token was issued for. */
|
|
54
|
+
audience: string;
|
|
55
|
+
/** Unix milliseconds the access token stops being valid. */
|
|
56
|
+
expiresAtMs: number;
|
|
57
|
+
/** Rotations the credential has been through; incremented on every refresh. */
|
|
58
|
+
generation: number;
|
|
59
|
+
/** Identity of the sign-in that produced the credential. */
|
|
60
|
+
loginEpoch: string;
|
|
61
|
+
/** Build environment segment of the path the credential lives under. */
|
|
62
|
+
buildEnv: string;
|
|
63
|
+
/** Region the credential was issued in. */
|
|
64
|
+
region: MinimaxCodeRegion;
|
|
65
|
+
/** Record key inside `auth.json`, preserved verbatim so a write lands in place. */
|
|
66
|
+
recordKey: string | null;
|
|
67
|
+
/** Whether this credential is the desktop app's file or the plugin's own. */
|
|
68
|
+
source: MinimaxCodeCredentialSource;
|
|
69
|
+
/** Unix milliseconds this plugin read or wrote the credential. */
|
|
70
|
+
seenAt?: number;
|
|
71
|
+
}
|
|
72
|
+
/** The MiniMax home directory: the desktop app's data root. */
|
|
73
|
+
export declare function minimaxHomeDir(env?: NodeJS.ProcessEnv): string;
|
|
74
|
+
/** Directory holding one region's auth files. */
|
|
75
|
+
export declare function authDirFor(region: MinimaxCodeRegion, buildEnv?: string): string;
|
|
76
|
+
/** Path of the desktop app's credential file for one region. */
|
|
77
|
+
export declare function authJsonPath(region: MinimaxCodeRegion, buildEnv?: string): string;
|
|
78
|
+
/** Path of the desktop app's non-secret state file for one region. */
|
|
79
|
+
export declare function authStateJsonPath(region: MinimaxCodeRegion, buildEnv?: string): string;
|
|
80
|
+
/** Path of the plugin's own credential file, used when no native file exists. */
|
|
81
|
+
export declare function pluginCredentialPath(): string;
|
|
82
|
+
/**
|
|
83
|
+
* Validate and normalize one stored credential.
|
|
84
|
+
*
|
|
85
|
+
* A payload that is missing a token or an expiry is rejected rather than
|
|
86
|
+
* defaulted: a credential with an invented expiry would be presented to the
|
|
87
|
+
* service as valid when it is not, which is exactly the failure the refresh path
|
|
88
|
+
* exists to prevent.
|
|
89
|
+
*/
|
|
90
|
+
export declare function parseMinimaxCodeCredentials(value: unknown, fallback: {
|
|
91
|
+
region: MinimaxCodeRegion;
|
|
92
|
+
buildEnv?: string;
|
|
93
|
+
recordKey?: string | null;
|
|
94
|
+
source?: MinimaxCodeCredentialSource;
|
|
95
|
+
}): MinimaxCodeCredentials;
|
|
96
|
+
/** Whether a credential is valid for long enough to use as-is. */
|
|
97
|
+
export declare function credentialIsFresh(credentials: MinimaxCodeCredentials, now?: number): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* The credential store for this line.
|
|
100
|
+
*
|
|
101
|
+
* `read()` prefers the desktop app's file and falls back to the plugin's own, so
|
|
102
|
+
* a user who signed in through either path is served. `write()` returns the
|
|
103
|
+
* credential to the file it came from, which is what keeps the two provenances
|
|
104
|
+
* from clobbering each other.
|
|
105
|
+
*/
|
|
106
|
+
export declare class MinimaxCodeCredentialStore {
|
|
107
|
+
private readonly region;
|
|
108
|
+
constructor(region?: MinimaxCodeRegion);
|
|
109
|
+
/** Path of the file the next read or write targets. */
|
|
110
|
+
path(): string;
|
|
111
|
+
private readNative;
|
|
112
|
+
private readPluginFile;
|
|
113
|
+
read(): Promise<MinimaxCodeCredentials | null>;
|
|
114
|
+
/**
|
|
115
|
+
* The credential in force plus where it came from, in one pass.
|
|
116
|
+
*
|
|
117
|
+
* A status response needs all three facts, and each of the targeted accessors
|
|
118
|
+
* re-reads and re-parses the native document (a file read plus a JSON parse per
|
|
119
|
+
* region probed). Reading once here keeps one /status call from doing that work
|
|
120
|
+
* three times, which matters because the settings card polls this route.
|
|
121
|
+
*/
|
|
122
|
+
readWithProvenance(): Promise<{
|
|
123
|
+
credentials: MinimaxCodeCredentials | null;
|
|
124
|
+
source: MinimaxCodeCredentialSource;
|
|
125
|
+
path: string;
|
|
126
|
+
}>;
|
|
127
|
+
/** Which file the credential currently in force lives in. */
|
|
128
|
+
activeSource(): Promise<MinimaxCodeCredentialSource>;
|
|
129
|
+
/**
|
|
130
|
+
* Persist a credential back where it came from.
|
|
131
|
+
*
|
|
132
|
+
* A native credential is written into the existing record, preserving the
|
|
133
|
+
* document's `schemaVersion` and every other record; a plugin credential is
|
|
134
|
+
* written to the plugin's own file. Either way the write is atomic.
|
|
135
|
+
*/
|
|
136
|
+
write(credentials: MinimaxCodeCredentials): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Forget the credential this plugin owns.
|
|
139
|
+
*
|
|
140
|
+
* The desktop app's `auth.json` is deliberately left alone: it is not this
|
|
141
|
+
* plugin's to delete, and removing it would sign the user out of MiniMax Code
|
|
142
|
+
* itself. A credential this store is only *reading* from the app therefore
|
|
143
|
+
* remains in force after a sign-out, which the status route reports so the
|
|
144
|
+
* user is not told a session ended when it did not.
|
|
145
|
+
*/
|
|
146
|
+
delete(): Promise<void>;
|
|
147
|
+
}
|
|
148
|
+
/** Namespace the model selection is registered under on a register-capable harness. */
|
|
149
|
+
export declare const MINIMAX_CODE_PREFERENCES_NAMESPACE = "dsh-minimax-code";
|
|
150
|
+
/**
|
|
151
|
+
* The model-selection half of this line's settings.
|
|
152
|
+
*
|
|
153
|
+
* The catalog (`MINIMAX_CODE_MODELS`) is deliberately not stored here. A shipped
|
|
154
|
+
* catalog changes with the code, so persisting a copy of it would leave a user
|
|
155
|
+
* whose file is a release behind reading a model list the build no longer serves;
|
|
156
|
+
* only the user's own choices live in this document.
|
|
157
|
+
*/
|
|
158
|
+
export interface MinimaxCodeModelSettings {
|
|
159
|
+
/** Line-wide switch. Absent means enabled: this line shipped enabled. */
|
|
160
|
+
enabled?: boolean;
|
|
161
|
+
/** Catalog ids DSH offers in the conversation model picker. */
|
|
162
|
+
enabledModelIds: string[];
|
|
163
|
+
/** Per-model context window, replacing the catalog's own number. */
|
|
164
|
+
contextWindowOverrides: Record<string, number>;
|
|
165
|
+
/** Level used when a conversation picks none; null means the model's own. */
|
|
166
|
+
defaultReasoningEffort: MinimaxCodeReasoningEffort | null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* One settings patch.
|
|
170
|
+
*
|
|
171
|
+
* `contextWindowOverrides` is a patch rather than the whole map because `null`
|
|
172
|
+
* has to survive as a value: it is the settings card's "restore the catalog
|
|
173
|
+
* default" and deletes exactly one key. A full replacement could not express
|
|
174
|
+
* that without the caller first reading the document it wants to edit.
|
|
175
|
+
*/
|
|
176
|
+
export interface MinimaxCodeSettingsPatch {
|
|
177
|
+
enabled?: boolean;
|
|
178
|
+
enabledModelIds?: string[];
|
|
179
|
+
contextWindowOverrides?: ContextWindowOverridePatch;
|
|
180
|
+
defaultReasoningEffort?: MinimaxCodeReasoningEffort | null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The seam the routes and the adapter share.
|
|
184
|
+
*
|
|
185
|
+
* `status()` is synchronous on purpose: it is read on every model-picker query
|
|
186
|
+
* and on every settings-card poll, and both callers only need a snapshot. A
|
|
187
|
+
* promise-shaped reader here would make each of them await a file read on a hot
|
|
188
|
+
* path for a value that changes at human speed.
|
|
189
|
+
*/
|
|
190
|
+
export interface MinimaxCodePreferenceStore {
|
|
191
|
+
status(): MinimaxCodeModelSettings;
|
|
192
|
+
update(patch: MinimaxCodeSettingsPatch): Promise<MinimaxCodeModelSettings>;
|
|
193
|
+
}
|
|
194
|
+
/** Path of the settings file used when no settings service is present. */
|
|
195
|
+
export declare function modelSettingsPath(): string;
|
|
196
|
+
/**
|
|
197
|
+
* Apply one patch to one settings document.
|
|
198
|
+
*
|
|
199
|
+
* The merge lives outside both stores because the register-backed store has to
|
|
200
|
+
* normalize the scope's value through the same rules the file store applies; two
|
|
201
|
+
* copies of this logic is how the two storage paths drift apart the first time
|
|
202
|
+
* one of them learns a new field.
|
|
203
|
+
*/
|
|
204
|
+
export declare function mergeMinimaxCodeSettings(current: MinimaxCodeModelSettings, patch: MinimaxCodeSettingsPatch): MinimaxCodeModelSettings;
|
|
205
|
+
/**
|
|
206
|
+
* The settings file beside the credentials.
|
|
207
|
+
*
|
|
208
|
+
* This is what a harness without the register seam (0.1.7, and a headless host)
|
|
209
|
+
* reads back on boot, so it is the store that has to survive a crash: the write
|
|
210
|
+
* is a temporary sibling plus `rename`, and the document just written is read
|
|
211
|
+
* back and compared before the write is reported as done. Without the read-back
|
|
212
|
+
* a partial write, or a filesystem that dropped the rename, would report a
|
|
213
|
+
* selection the next boot does not agree with — the card would show a model
|
|
214
|
+
* grid the adapter never applies.
|
|
215
|
+
*/
|
|
216
|
+
export declare class MinimaxCodeModelSettingsStore {
|
|
217
|
+
private readonly filePath;
|
|
218
|
+
constructor(filePath?: string);
|
|
219
|
+
path(): string;
|
|
220
|
+
read(): Promise<MinimaxCodeModelSettings>;
|
|
221
|
+
write(settings: MinimaxCodeModelSettings): Promise<void>;
|
|
222
|
+
/**
|
|
223
|
+
* Read-modify-write under the same per-path lock the credential writes use.
|
|
224
|
+
*
|
|
225
|
+
* Without it two patches landing together each read the same document and the
|
|
226
|
+
* second write silently discards the first — a lost model selection, with no
|
|
227
|
+
* error anywhere. The lock is shared with the credential paths because it is
|
|
228
|
+
* keyed by resolved path, and the two never name the same file.
|
|
229
|
+
*/
|
|
230
|
+
updateSettings(patch: MinimaxCodeSettingsPatch): Promise<MinimaxCodeModelSettings>;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Bind the model selection to the DSH settings document when the harness still
|
|
234
|
+
* offers one, and to the JSON file beside it otherwise: a harness without the
|
|
235
|
+
* register seam (0.1.7, and a headless host) reads that file back on boot.
|
|
236
|
+
*/
|
|
237
|
+
export declare function registerMinimaxCodePreferenceStore(settings?: unknown, fallbackStore?: MinimaxCodeModelSettingsStore): MinimaxCodePreferenceStore;
|
|
238
|
+
//# sourceMappingURL=token-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/token-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static facts about the MiniMax Code (编程订阅) provider.
|
|
3
|
+
*
|
|
4
|
+
* Every constant in this file is a measured value, transcribed from the
|
|
5
|
+
* reconnaissance brief at
|
|
6
|
+
* `_archive/minimax-probe_20260928/IMPLEMENTATION-BRIEF.md` (section 2). They are
|
|
7
|
+
* deliberately NOT re-derived from other clients or from convention:
|
|
8
|
+
*
|
|
9
|
+
* - the credential directory is `~/.minimax/auth/<buildEnv>/<region>/mcode-public/`
|
|
10
|
+
* and holds the same `auth.json` the MiniMax Code desktop app writes;
|
|
11
|
+
* - the OAuth device flow is a public-client RFC 8628 flow with PKCE(S256)
|
|
12
|
+
* against `account.minimax.cn/oauth2/*`;
|
|
13
|
+
* - the model surface is Anthropic Messages at
|
|
14
|
+
* `https://agent.minimax.cn/mavis/api/v1/llm/v1/messages`;
|
|
15
|
+
* - that endpoint authenticates with `authorization: Bearer <accessToken>`, NOT
|
|
16
|
+
* with `x-api-key` (measured: x-api-key answers 401
|
|
17
|
+
* `{"code":401,"message":"token is required"}`).
|
|
18
|
+
*
|
|
19
|
+
* Two consequences are load-bearing and are asserted where they are used rather
|
|
20
|
+
* than here: credentials are always sent as a bearer token, and the model
|
|
21
|
+
* directory is hardcoded because `GET /v1/models` answers 503
|
|
22
|
+
* `{"errorCode":50115,"errorReason":"direct_route_not_configured"}`.
|
|
23
|
+
*/
|
|
24
|
+
import type { MinimaxCodeReasoningEffort, MinimaxCodeRegion } from '../../shared/minimax-code-contracts.ts';
|
|
25
|
+
export declare const PROVIDER_ID = "minimax-code";
|
|
26
|
+
export declare const PROVIDER_NAME = "MiniMax Code\uFF08\u7F16\u7A0B\u8BA2\u9605\uFF09";
|
|
27
|
+
/**
|
|
28
|
+
* OAuth client id MiniMax Code registers.
|
|
29
|
+
*
|
|
30
|
+
* A public client with no secret: the id alone identifies the app, which is what
|
|
31
|
+
* RFC 8628 device flows assume.
|
|
32
|
+
*/
|
|
33
|
+
export declare const MINIMAX_CODE_CLIENT_ID = "mcode-public";
|
|
34
|
+
/** Scope the subscription token is issued for. */
|
|
35
|
+
export declare const MINIMAX_CODE_SCOPE = "agent.default";
|
|
36
|
+
/** Audience the subscription token is issued for. */
|
|
37
|
+
export declare const MINIMAX_CODE_AUDIENCE = "agent-backend";
|
|
38
|
+
/**
|
|
39
|
+
* Build environment segment of the credential path.
|
|
40
|
+
*
|
|
41
|
+
* `~/.minimax/auth/prod/cn/mcode-public/auth.json` on this machine. It is part of
|
|
42
|
+
* the on-disk layout, so it is a path constant rather than a remote host.
|
|
43
|
+
*/
|
|
44
|
+
export declare const MINIMAX_CODE_BUILD_ENV = "prod";
|
|
45
|
+
/** Host set per region. cn is the measured pair; global mirrors it on the .io domain. */
|
|
46
|
+
export declare const REGION_HOSTS: Record<MinimaxCodeRegion, {
|
|
47
|
+
account: string;
|
|
48
|
+
agent: string;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Path of the Token Plan usage endpoint for THIS kind of credential.
|
|
52
|
+
*
|
|
53
|
+
* TWO DIFFERENT ENDPOINTS EXIST, and the first one tried here was the wrong one:
|
|
54
|
+
*
|
|
55
|
+
* - `/v1/token_plan/remains` on the API hosts is the PLATFORM route. It takes a
|
|
56
|
+
* platform API key (or the platform OAuth the `mmx` CLI holds), and it answers
|
|
57
|
+
* an `mcode-public` sign-in with HTTP 200 + `base_resp.status_code: 1004`
|
|
58
|
+
* ("Please carry the API secret key") under every auth shape.
|
|
59
|
+
* - `/v1/api/openplatform/coding_plan/remains` on the agent/matrix hosts is what
|
|
60
|
+
* the OFFICIAL MiniMax Code client uses for exactly this credential
|
|
61
|
+
* (`packages/tui/src/account/matrix-account-client.ts`, which reads it as the
|
|
62
|
+
* Token Plan quota).
|
|
63
|
+
*
|
|
64
|
+
* So the path below is the second one. See the note on
|
|
65
|
+
* {@link QUOTA_CLIENT_ATTRIBUTION} for the one caveat that comes with it.
|
|
66
|
+
*/
|
|
67
|
+
export declare const TOKEN_PLAN_REMAINS_PATH = "/v1/api/openplatform/coding_plan/remains";
|
|
68
|
+
/**
|
|
69
|
+
* Candidate hosts for the usage endpoint, most likely first.
|
|
70
|
+
*
|
|
71
|
+
* The official client's own matrix origins are `agent.minimaxi.com` for China and
|
|
72
|
+
* `agent.minimax.io` for the rest; this line already talks to `agent.minimax.cn`
|
|
73
|
+
* for Messages and that host is measured for THIS subscription, so it is tried
|
|
74
|
+
* first and the official one is the fallback. The winner is remembered, which
|
|
75
|
+
* keeps the remaining uncertainty in one place instead of spreading a guess
|
|
76
|
+
* through every request.
|
|
77
|
+
*/
|
|
78
|
+
export declare const QUOTA_HOST_CANDIDATES: Record<MinimaxCodeRegion, readonly string[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Whether this line may send the official client's attribution headers.
|
|
81
|
+
*
|
|
82
|
+
* The official client sends `yy` / `x-timestamp` / `x-signature` on this request.
|
|
83
|
+
* Its own comment calls them what they are: literals that "tag a request as coming
|
|
84
|
+
* from a first-party MiniMax client". MiniMax's code also says they are "not
|
|
85
|
+
* credentials or a security boundary" (authorization is the bearer token), but
|
|
86
|
+
* tagging a request as first-party is precisely what this package's
|
|
87
|
+
* `types.ts` product-token note refuses to do — and the same note records that
|
|
88
|
+
* claiming to be the official app is grounds for suspension.
|
|
89
|
+
*
|
|
90
|
+
* So the default is NO: the read goes out honestly, and if the service insists on
|
|
91
|
+
* the tag the result is a refusal the card reports rather than a forged identity.
|
|
92
|
+
* `DSH_MINIMAX_CODE_QUOTA_ATTRIBUTION=1` opts in for a user who has read that
|
|
93
|
+
* trade and wants the numbers anyway.
|
|
94
|
+
*/
|
|
95
|
+
export declare const QUOTA_CLIENT_ATTRIBUTION = false;
|
|
96
|
+
/** Whether the caller opted in to sending the first-party attribution headers. */
|
|
97
|
+
export declare function quotaAttributionEnabled(): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Hosts to try for one region, in order.
|
|
100
|
+
*
|
|
101
|
+
* `DSH_MINIMAX_CODE_QUOTA_HOST` pins a single host for a deployment that has
|
|
102
|
+
* measured the right one (a proxy, or a region whose host is not listed here).
|
|
103
|
+
*/
|
|
104
|
+
export declare function quotaHostCandidates(region: MinimaxCodeRegion): string[];
|
|
105
|
+
/** Fully qualified usage URL for one host. */
|
|
106
|
+
export declare function tokenPlanRemainsUrl(host: string): string;
|
|
107
|
+
/** Device authorization endpoint (RFC 8628 section 3.1). */
|
|
108
|
+
export declare const DEVICE_CODE_PATH = "/oauth2/device/code";
|
|
109
|
+
/** Token endpoint, shared by the device-code grant and the refresh grant. */
|
|
110
|
+
export declare const OAUTH_TOKEN_PATH = "/oauth2/token";
|
|
111
|
+
/** Revocation endpoint. */
|
|
112
|
+
export declare const OAUTH_REVOKE_PATH = "/oauth2/revoke";
|
|
113
|
+
/** Grant type the device-code polling request declares. */
|
|
114
|
+
export declare const DEVICE_CODE_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:device_code";
|
|
115
|
+
/** PKCE method the device authorization declares. */
|
|
116
|
+
export declare const PKCE_CHALLENGE_METHOD = "S256";
|
|
117
|
+
/**
|
|
118
|
+
* Managed agent API prefix.
|
|
119
|
+
*
|
|
120
|
+
* The Messages endpoint is `<agentBase><prefix>/messages`; the prefix already
|
|
121
|
+
* carries its own `/v1`, which is why the documented base URL is quoted as
|
|
122
|
+
* ".../llm/v1" and never has a further `/v1` appended.
|
|
123
|
+
*/
|
|
124
|
+
export declare const AGENT_LLM_PREFIX = "/mavis/api/v1/llm/v1";
|
|
125
|
+
/** Path suffix of the Anthropic Messages endpoint. */
|
|
126
|
+
export declare const MESSAGES_PATH = "/messages";
|
|
127
|
+
/** Anthropic protocol revision the endpoint documents. */
|
|
128
|
+
export declare const ANTHROPIC_VERSION = "2023-06-01";
|
|
129
|
+
/**
|
|
130
|
+
* Product token this plugin reports.
|
|
131
|
+
*
|
|
132
|
+
* MiniMax Code's own telemetry headers are deliberately NOT forged: this is a
|
|
133
|
+
* third-party client of the subscription, and claiming to be the official app is
|
|
134
|
+
* both dishonest and, per the app's own terms, grounds for suspending the
|
|
135
|
+
* subscription.
|
|
136
|
+
*/
|
|
137
|
+
export declare const USER_AGENT = "dsh-chatgpt-subscription (+https://github.com/Aa728848/dsh-chatgpt-subscription)";
|
|
138
|
+
/**
|
|
139
|
+
* How long before expiry a token is replaced.
|
|
140
|
+
*
|
|
141
|
+
* The access token lives about 24 hours, and MiniMax Code refreshes the same file
|
|
142
|
+
* this plugin reads, so the policy is "read-only first": a token that is still
|
|
143
|
+
* comfortably valid is used exactly as stored. The margin exists only so a
|
|
144
|
+
* request cannot start with a token that expires while it is in flight — it is
|
|
145
|
+
* deliberately far below the token's own lifetime so the plugin does not race the
|
|
146
|
+
* desktop app for a rotation it does not need.
|
|
147
|
+
*/
|
|
148
|
+
export declare const REFRESH_MARGIN_MS = 60000;
|
|
149
|
+
/** Attempts one refresh gets before the stored credential is called dead. */
|
|
150
|
+
export declare const REFRESH_MAX_RETRIES = 3;
|
|
151
|
+
/** Exponential backoff base for a retryable refresh failure. */
|
|
152
|
+
export declare const REFRESH_BACKOFF_BASE_MS = 1000;
|
|
153
|
+
/**
|
|
154
|
+
* HTTP statuses a refresh treats as transient.
|
|
155
|
+
*
|
|
156
|
+
* A 429 or any 5xx says nothing about the refresh token itself, so the same token
|
|
157
|
+
* is worth retrying. A 400/401/403 is a verdict that the grant is dead.
|
|
158
|
+
*/
|
|
159
|
+
export declare const RETRYABLE_REFRESH_STATUSES: ReadonlySet<number>;
|
|
160
|
+
/** Device-flow polling defaults when the service omits them. */
|
|
161
|
+
export declare const DEFAULT_DEVICE_INTERVAL_SECONDS = 5;
|
|
162
|
+
export declare const DEFAULT_DEVICE_EXPIRES_SECONDS = 600;
|
|
163
|
+
/** Local timeout for every OAuth call. */
|
|
164
|
+
export declare const OAUTH_TIMEOUT_MS = 30000;
|
|
165
|
+
/** Lifetime of one in-process login session before the card must start over. */
|
|
166
|
+
export declare const LOGIN_TIMEOUT_MS: number;
|
|
167
|
+
export declare const STREAM_IDLE_TIMEOUT_MS = 300000;
|
|
168
|
+
export declare const STREAM_IDLE_TIMEOUT_CODE = "LLM_STREAM_IDLE_TIMEOUT";
|
|
169
|
+
/** Headroom kept below a model's context window when sizing a request. */
|
|
170
|
+
export declare const CONTEXT_HEADROOM_TOKENS = 4096;
|
|
171
|
+
/** Output cap used when a model declares none. */
|
|
172
|
+
export declare const DEFAULT_MAX_TOKENS = 32768;
|
|
173
|
+
/** Context window used when a model declares none. */
|
|
174
|
+
export declare const DEFAULT_CONTEXT_WINDOW = 512000;
|
|
175
|
+
/** The account (OAuth) host for one region. */
|
|
176
|
+
export declare function accountHost(region: MinimaxCodeRegion): string;
|
|
177
|
+
/**
|
|
178
|
+
* The agent API base URL for one region, without a trailing slash.
|
|
179
|
+
*
|
|
180
|
+
* An override that already carries the prefix is accepted as written, so a
|
|
181
|
+
* deployment that proxies the endpoint can point at the proxy root instead.
|
|
182
|
+
*/
|
|
183
|
+
export declare function agentBaseUrl(region: MinimaxCodeRegion): string;
|
|
184
|
+
/** Fully qualified Anthropic Messages URL for one region. */
|
|
185
|
+
export declare function messagesUrl(region: MinimaxCodeRegion): string;
|
|
186
|
+
/** Fully qualified OAuth endpoint URL for one region. */
|
|
187
|
+
export declare function oauthUrl(region: MinimaxCodeRegion, path: string): string;
|
|
188
|
+
/** Whether one value is a region this route understands. */
|
|
189
|
+
export declare function isRegion(value: unknown): value is MinimaxCodeRegion;
|
|
190
|
+
/** Reasoning levels the whole route understands, for route-level validation. */
|
|
191
|
+
export declare function isMinimaxCodeReasoningEffort(value: unknown): value is MinimaxCodeReasoningEffort;
|
|
192
|
+
/**
|
|
193
|
+
* Render a token for a log line or an error message without disclosing it.
|
|
194
|
+
*
|
|
195
|
+
* A real credential must never reach a log, a settings response, or a rendered
|
|
196
|
+
* error, so nothing derived from the token's *content* is emitted here. An earlier
|
|
197
|
+
* revision printed the first six characters plus the length "to tell two tokens
|
|
198
|
+
* apart"; that is still a disclosure of the credential — six characters of a
|
|
199
|
+
* bearer token is material an attacker can use, and these strings are rendered in
|
|
200
|
+
* the settings card and written to the host log. The fingerprint below is instead
|
|
201
|
+
* a truncated SHA-256 over the token, which distinguishes two credentials and
|
|
202
|
+
* pins which one was rejected (the diagnostic purpose) while being unusable as a
|
|
203
|
+
* credential prefix.
|
|
204
|
+
*/
|
|
205
|
+
export declare function redactToken(token: string | undefined | null): string;
|
|
206
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -92,4 +92,14 @@ export { FileCredentialStore, FileModelSettingsStore, credentialPath, modelSetti
|
|
|
92
92
|
export { AccountPoolStore } from './host/antigravity/account-pool.ts';
|
|
93
93
|
export { loginAndSave, beginWebLogin, refreshAntigravityToken } from './host/antigravity/oauth.ts';
|
|
94
94
|
export { clearCachedQuota, fetchAccountQuota, getCachedQuota } from './host/antigravity/client.ts';
|
|
95
|
+
export { MinimaxCodeAdapter, classifyMinimaxFailure, MINIMAX_CODE_RETRY_POLICY_CONFIG } from './host/minimax-code/adapter.ts';
|
|
96
|
+
export { MinimaxCodeAccountPool, minimaxCodePoolPath, minimaxCodePoolIdentity, minimaxCodePoolStatus, parseMinimaxCodePoolData, createMinimaxCodeAccountsHandler, type MinimaxCodePoolAccount, type MinimaxCodeAccountSummaryDto, } from './host/minimax-code/account-pool.ts';
|
|
97
|
+
export { MinimaxCodeCredentialStore, MinimaxCodeModelSettingsStore, authJsonPath as minimaxCodeAuthJsonPath, authStateJsonPath as minimaxCodeAuthStateJsonPath, credentialIsFresh as minimaxCodeCredentialIsFresh, minimaxHomeDir as minimaxCodeHomeDir, modelSettingsPath as minimaxCodeModelSettingsPath, parseMinimaxCodeCredentials, pluginCredentialPath as minimaxCodePluginCredentialPath, registerMinimaxCodePreferenceStore, type MinimaxCodeCredentialSource, type MinimaxCodeCredentials, type MinimaxCodeModelSettings, type MinimaxCodePreferenceStore, } from './host/minimax-code/token-store.ts';
|
|
98
|
+
export { accountFromCredentials as minimaxCodeAccountFromCredentials, beginWebLogin as beginMinimaxCodeLogin, cancelWebLogin as cancelMinimaxCodeLogin, ensureAccessToken as ensureMinimaxCodeAccessToken, getWebLogin as getMinimaxCodeLogin, isRefreshTokenRejected as isMinimaxCodeRefreshTokenRejected, pollWebLogin as pollMinimaxCodeLogin, refreshAccessToken as refreshMinimaxCodeToken, requestDeviceAuthorization as requestMinimaxCodeDeviceAuthorization, resetWebLogins as resetMinimaxCodeLogins, revokeToken as revokeMinimaxCodeToken, createPkcePair as createMinimaxCodePkcePair, type DeviceAuthorization as MinimaxCodeDeviceAuthorization, type MinimaxToken, } from './host/minimax-code/oauth.ts';
|
|
99
|
+
export { PROBE_MODEL as MINIMAX_CODE_PROBE_MODEL, catalogSize as minimaxCodeCatalogSize, createMessage as createMinimaxCodeMessage, describeCredentials as describeMinimaxCodeCredentials, listModelIds as listMinimaxCodeModelIds, modelRequestHeaders as minimaxCodeModelRequestHeaders, parseAnthropicUsage as parseMinimaxCodeUsage, testConnection as testMinimaxCodeConnection, summarizeFailureBody as summarizeMinimaxCodeFailureBody, clearCachedQuota as clearMinimaxCodeQuota, fetchTokenPlanQuota as fetchMinimaxCodeQuota, getCachedQuota as getMinimaxCodeQuota, parseTokenPlanQuota as parseMinimaxCodeQuota, quotaRequestHeaders as minimaxCodeQuotaRequestHeaders, resolveQuotaCounts as resolveMinimaxCodeQuotaCounts, type MinimaxProbeResult, type MinimaxUsage, } from './host/minimax-code/client.ts';
|
|
100
|
+
export { MINIMAX_CODE_MODELS, buildMinimaxCodeModelOptions, contextWindowForModel, effortForModel as minimaxCodeEffortForModel, isThinkingDisabledEffort, minimaxCodeModelDef, minimaxCodeModelIds, minimaxCodeModelName, resolveMinimaxCodeEnabledModelIds, type MinimaxCodeCatalogModel, type MinimaxCodeThinkingMode, } from './host/minimax-code/model-catalog.ts';
|
|
101
|
+
export { assertRequestBodyFits as assertMinimaxCodeBodyFits, assertStreamComplete as assertMinimaxCodeStreamComplete, buildMinimaxRequest, clampOutputToContext as clampMinimaxCodeOutputToContext, closeMinimaxStream, createStreamState as createMinimaxCodeStreamState, maxOutputTokensFor as minimaxCodeMaxOutputTokens, processMinimaxStreamLine, thinkingFieldFor as minimaxCodeThinkingField, type MinimaxStreamState, } from './host/minimax-code/mapper.ts';
|
|
102
|
+
export { getMinimaxCodeWebStatus, registerMinimaxCodeRoutes, subPathOf as minimaxCodeSubPathOf, } from './host/minimax-code/routes.ts';
|
|
103
|
+
export { AGENT_LLM_PREFIX as MINIMAX_CODE_AGENT_LLM_PREFIX, MESSAGES_PATH as MINIMAX_CODE_MESSAGES_PATH, REGION_HOSTS as MINIMAX_CODE_REGION_HOSTS, accountHost as minimaxCodeAccountHost, agentBaseUrl as minimaxCodeAgentBaseUrl, isMinimaxCodeReasoningEffort, quotaHostCandidates as minimaxCodeQuotaHostCandidates, tokenPlanRemainsUrl as minimaxCodeTokenPlanRemainsUrl, messagesUrl as minimaxCodeMessagesUrl, redactToken as redactMinimaxCodeToken, } from './host/minimax-code/types.ts';
|
|
104
|
+
export { MINIMAX_CODE_PROVIDER_ID, MINIMAX_CODE_PROVIDER_NAME, MINIMAX_CODE_REASONING_EFFORTS, MINIMAX_CODE_ROUTE_PREFIX, type MinimaxCodeAccount, type MinimaxCodeCredentialStorage, type MinimaxCodeModelOption, type MinimaxCodeQuota, type MinimaxCodeReasoningEffort, type MinimaxCodeRegion, type MinimaxCodeThinkingModeDto, type MinimaxCodeWebLogin, type MinimaxCodeWebStatus, } from './shared/minimax-code-contracts.ts';
|
|
95
105
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|