@eddyskywalker/dsh-chatgpt-subscription 0.10.7 → 0.10.9

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 (30) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +2 -1
  3. package/lib/client.js +36 -24
  4. package/lib/client.js.map +1 -1
  5. package/lib/index.js +730 -62
  6. package/lib/types/client/locales.d.ts +1 -1
  7. package/lib/types/client/minimax-code/MinimaxCodeSection.d.ts.map +1 -1
  8. package/lib/types/client/minimax-code/locales.d.ts +8 -2
  9. package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
  10. package/lib/types/host/common/account-pool.d.ts +20 -0
  11. package/lib/types/host/common/account-pool.d.ts.map +1 -1
  12. package/lib/types/host/minimax-code/account-pool.d.ts +59 -0
  13. package/lib/types/host/minimax-code/account-pool.d.ts.map +1 -1
  14. package/lib/types/host/minimax-code/checkin.d.ts.map +1 -1
  15. package/lib/types/host/minimax-code/client.d.ts +27 -1
  16. package/lib/types/host/minimax-code/client.d.ts.map +1 -1
  17. package/lib/types/host/minimax-code/oauth.d.ts +23 -7
  18. package/lib/types/host/minimax-code/oauth.d.ts.map +1 -1
  19. package/lib/types/host/minimax-code/routes.d.ts.map +1 -1
  20. package/lib/types/host/minimax-code/token-store.d.ts +75 -0
  21. package/lib/types/host/minimax-code/token-store.d.ts.map +1 -1
  22. package/lib/types/host/minimax-code/types.d.ts +37 -6
  23. package/lib/types/host/minimax-code/types.d.ts.map +1 -1
  24. package/lib/types/host/reasoning-collapse-guard/index.d.ts +130 -0
  25. package/lib/types/host/reasoning-collapse-guard/index.d.ts.map +1 -0
  26. package/lib/types/index.d.ts +8 -0
  27. package/lib/types/index.d.ts.map +1 -1
  28. package/lib/types/shared/minimax-code-contracts.d.ts +6 -1
  29. package/lib/types/shared/minimax-code-contracts.d.ts.map +1 -1
  30. package/package.json +31 -31
@@ -306,6 +306,6 @@ export declare const dictionaries: {
306
306
  readonly email: string;
307
307
  readonly lastUsed: string;
308
308
  };
309
- en: Record<"quota" | "account" | "storage" | "rotationStrategy" | "stale" | "pending" | "accountId" | "relogin" | "tokens" | "title" | "hubTitle" | "intro" | "signedOut" | "signedIn" | "plan" | "expires" | "storageWindows" | "storageMacKeychain" | "storageLinuxFile" | "storageMemory" | "storageUnavailable" | "securityWindows" | "securityMacKeychain" | "securityLinuxFile" | "securityMemory" | "securityUnavailable" | "signIn" | "signInAgain" | "cancel" | "signOut" | "refreshToken" | "popupBlocked" | "continueLogin" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "testing" | "latency" | "enableProvider" | "selectAll" | "unselectAll" | "models" | "modelsHint" | "proxySettings" | "proxyMode" | "proxyModeHint" | "proxyModeAuto" | "proxyModeCustom" | "proxyModeDirect" | "customProxyUrl" | "customProxyUrlHint" | "customProxyUrlPlaceholder" | "saveProxyUrl" | "proxyDetected" | "proxyDetectedEffective" | "proxyNoneDetected" | "proxyDirectHint" | "enhancements" | "fastMode" | "fastModeHint" | "outputVerbosity" | "outputVerbosityHint" | "verbosityLow" | "verbosityMedium" | "verbosityHigh" | "reasoningSummary" | "reasoningSummaryHint" | "summaryAuto" | "summaryConcise" | "summaryDetailed" | "summaryNone" | "searchProvider" | "searchProviderHint" | "searchProviderDsh" | "searchProviderCodex" | "providerDefault" | "contextWindows" | "contextWindowsHint" | "contextWindow" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "contextWindowsNoneEnabled" | "saveContextWindow" | "save" | "quickQuota" | "quickQuotaHint" | "quotaIntro" | "refreshQuota" | "refreshing" | "noQuota" | "quotaSignedOut" | "updated" | "primary" | "secondary" | "limitWindow" | "used" | "remaining" | "available" | "unavailable" | "unlimited" | "credits" | "monthlySpend" | "resetCredits" | "resetCreditExpires" | "useResetCredit" | "usingResetCredit" | "useResetCreditConfirm" | "resetCreditUsed" | "spendControlReached" | "limit" | "exhausted" | "resets" | "quickQuotaLabel" | "quickQuotaLoading" | "imageToolRunning" | "imageToolDone" | "imageToolFailed" | "image" | "openImage" | "openNamedImage" | "imageLoading" | "imageLoadFailed" | "imagePreviewClose" | "imagePreviewOpenOriginal" | "retry" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed", string>;
309
+ en: Record<"stale" | "quota" | "account" | "storage" | "rotationStrategy" | "pending" | "accountId" | "relogin" | "tokens" | "title" | "hubTitle" | "intro" | "signedOut" | "signedIn" | "plan" | "expires" | "storageWindows" | "storageMacKeychain" | "storageLinuxFile" | "storageMemory" | "storageUnavailable" | "securityWindows" | "securityMacKeychain" | "securityLinuxFile" | "securityMemory" | "securityUnavailable" | "signIn" | "signInAgain" | "cancel" | "signOut" | "refreshToken" | "popupBlocked" | "continueLogin" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "testing" | "latency" | "enableProvider" | "selectAll" | "unselectAll" | "models" | "modelsHint" | "proxySettings" | "proxyMode" | "proxyModeHint" | "proxyModeAuto" | "proxyModeCustom" | "proxyModeDirect" | "customProxyUrl" | "customProxyUrlHint" | "customProxyUrlPlaceholder" | "saveProxyUrl" | "proxyDetected" | "proxyDetectedEffective" | "proxyNoneDetected" | "proxyDirectHint" | "enhancements" | "fastMode" | "fastModeHint" | "outputVerbosity" | "outputVerbosityHint" | "verbosityLow" | "verbosityMedium" | "verbosityHigh" | "reasoningSummary" | "reasoningSummaryHint" | "summaryAuto" | "summaryConcise" | "summaryDetailed" | "summaryNone" | "searchProvider" | "searchProviderHint" | "searchProviderDsh" | "searchProviderCodex" | "providerDefault" | "contextWindows" | "contextWindowsHint" | "contextWindow" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "contextWindowsNoneEnabled" | "saveContextWindow" | "save" | "quickQuota" | "quickQuotaHint" | "quotaIntro" | "refreshQuota" | "refreshing" | "noQuota" | "quotaSignedOut" | "updated" | "primary" | "secondary" | "limitWindow" | "used" | "remaining" | "available" | "unavailable" | "unlimited" | "credits" | "monthlySpend" | "resetCredits" | "resetCreditExpires" | "useResetCredit" | "usingResetCredit" | "useResetCreditConfirm" | "resetCreditUsed" | "spendControlReached" | "limit" | "exhausted" | "resets" | "quickQuotaLabel" | "quickQuotaLoading" | "imageToolRunning" | "imageToolDone" | "imageToolFailed" | "image" | "openImage" | "openNamedImage" | "imageLoading" | "imageLoadFailed" | "imagePreviewClose" | "imagePreviewOpenOriginal" | "retry" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed", string>;
310
310
  };
311
311
  //# sourceMappingURL=locales.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MinimaxCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,EAIL,KAAK,4BAA4B,EAGlC,MAAM,wCAAwC,CAAA;AAa/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAiDjC;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AA0CD;;;;;;;GAOG;AACH,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,CAAA;AAKjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK7E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,4BAA4B,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAOpG;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,aAAa,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA22B9E"}
1
+ {"version":3,"file":"MinimaxCodeSection.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/MinimaxCodeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AACvE,OAAO,EAIL,KAAK,4BAA4B,EAGlC,MAAM,wCAAwC,CAAA;AAa/C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAiDjC;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AA0CD;;;;;;;GAOG;AACH,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,CAAA;AAKjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK7E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,4BAA4B,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAOpG;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,aAAa,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA23B9E"}
@@ -68,6 +68,8 @@ export declare const zh: {
68
68
  readonly quotaUnavailable: "暂时没有用量数据。";
69
69
  readonly quotaNeedsApiKey: "上游拒绝了这个登录态读取用量(官方客户端的用量端点要求带官方客户端标识头,本插件默认不伪造)。请在 MiniMax 控制台的用量条里查看 Token Plan 用量;如果你接受该取舍,可设 DSH_MINIMAX_CODE_QUOTA_ATTRIBUTION=1 后重试。";
70
70
  readonly quotaUnreachable: "暂时读不到用量(用量端点未应答),稍后会自动重试。";
71
+ readonly quotaTokenExpired: "读取用量时令牌刚好过期,正在自动续期——账号仍然是登录状态,无需重新登录。";
72
+ readonly quotaStale: "下面是上一次成功读取到的用量(本次刷新未成功),稍后会自动重试。";
71
73
  readonly quotaUsed: "已用 {percent}%";
72
74
  readonly quotaRemaining: "剩余 {percent}%";
73
75
  readonly quotaReset: "重置:{time}";
@@ -193,6 +195,8 @@ export declare const dictionaries: {
193
195
  readonly quotaUnavailable: "暂时没有用量数据。";
194
196
  readonly quotaNeedsApiKey: "上游拒绝了这个登录态读取用量(官方客户端的用量端点要求带官方客户端标识头,本插件默认不伪造)。请在 MiniMax 控制台的用量条里查看 Token Plan 用量;如果你接受该取舍,可设 DSH_MINIMAX_CODE_QUOTA_ATTRIBUTION=1 后重试。";
195
197
  readonly quotaUnreachable: "暂时读不到用量(用量端点未应答),稍后会自动重试。";
198
+ readonly quotaTokenExpired: "读取用量时令牌刚好过期,正在自动续期——账号仍然是登录状态,无需重新登录。";
199
+ readonly quotaStale: "下面是上一次成功读取到的用量(本次刷新未成功),稍后会自动重试。";
196
200
  readonly quotaUsed: "已用 {percent}%";
197
201
  readonly quotaRemaining: "剩余 {percent}%";
198
202
  readonly quotaReset: "重置:{time}";
@@ -316,6 +320,8 @@ export declare const dictionaries: {
316
320
  readonly quotaUnavailable: "暂时没有用量数据。";
317
321
  readonly quotaNeedsApiKey: "上游拒绝了这个登录态读取用量(官方客户端的用量端点要求带官方客户端标识头,本插件默认不伪造)。请在 MiniMax 控制台的用量条里查看 Token Plan 用量;如果你接受该取舍,可设 DSH_MINIMAX_CODE_QUOTA_ATTRIBUTION=1 后重试。";
318
322
  readonly quotaUnreachable: "暂时读不到用量(用量端点未应答),稍后会自动重试。";
323
+ readonly quotaTokenExpired: "读取用量时令牌刚好过期,正在自动续期——账号仍然是登录状态,无需重新登录。";
324
+ readonly quotaStale: "下面是上一次成功读取到的用量(本次刷新未成功),稍后会自动重试。";
319
325
  readonly quotaUsed: "已用 {percent}%";
320
326
  readonly quotaRemaining: "剩余 {percent}%";
321
327
  readonly quotaReset: "重置:{time}";
@@ -370,8 +376,8 @@ export declare const dictionaries: {
370
376
  readonly expires: string;
371
377
  readonly lastUsed: string;
372
378
  };
373
- en: Record<"account" | "storage" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "enableProvider" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed" | "pageDesc" | "signingIn" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "modelsSection" | "capImage" | "copied" | "openSignInPage" | "quotaUnlimited" | "region" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "regionCn" | "storageNative" | "storageDpapi" | "storageFile" | "storagePath" | "expiresAt" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "testSuccessModel" | "modelsUnavailable" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaUsed" | "quotaRemaining" | "quotaReset" | "quotaRefresh" | "quotaWindowInterval" | "quotaWindowWeekly" | "quotaCounts" | "composerLabel" | "invalidCapacity" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
374
- 'en-US': Record<"account" | "storage" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "enableProvider" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed" | "pageDesc" | "signingIn" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "modelsSection" | "capImage" | "copied" | "openSignInPage" | "quotaUnlimited" | "region" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "regionCn" | "storageNative" | "storageDpapi" | "storageFile" | "storagePath" | "expiresAt" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "testSuccessModel" | "modelsUnavailable" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaUsed" | "quotaRemaining" | "quotaReset" | "quotaRefresh" | "quotaWindowInterval" | "quotaWindowWeekly" | "quotaCounts" | "composerLabel" | "invalidCapacity" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
379
+ en: Record<"account" | "storage" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "enableProvider" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed" | "pageDesc" | "signingIn" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "modelsSection" | "capImage" | "copied" | "openSignInPage" | "quotaUnlimited" | "region" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "regionCn" | "storageNative" | "storageDpapi" | "storageFile" | "storagePath" | "expiresAt" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "testSuccessModel" | "modelsUnavailable" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsed" | "quotaRemaining" | "quotaReset" | "quotaRefresh" | "quotaWindowInterval" | "quotaWindowWeekly" | "quotaCounts" | "composerLabel" | "invalidCapacity" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
380
+ 'en-US': Record<"account" | "storage" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "provider" | "connectionState" | "connected" | "untested" | "testConnection" | "enableProvider" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "storageNotice" | "email" | "lastUsed" | "pageDesc" | "signingIn" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "modelsSection" | "capImage" | "copied" | "openSignInPage" | "quotaUnlimited" | "region" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "regionCn" | "storageNative" | "storageDpapi" | "storageFile" | "storagePath" | "expiresAt" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "testSuccessModel" | "modelsUnavailable" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsed" | "quotaRemaining" | "quotaReset" | "quotaRefresh" | "quotaWindowInterval" | "quotaWindowWeekly" | "quotaCounts" | "composerLabel" | "invalidCapacity" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
375
381
  };
376
382
  export type MinimaxCodeLocaleKey = keyof typeof zh;
377
383
  //# sourceMappingURL=locales.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAuG9C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/minimax-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAyG9C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
@@ -91,6 +91,26 @@ export interface AccountPoolHooks<TCredentials, TAccount extends PoolAccountShap
91
91
  * refresh token, for instance). Reported purely: nothing is written here.
92
92
  */
93
93
  authRejectedReason?(credentials: TCredentials): string | undefined;
94
+ /**
95
+ * Best-effort repair for an account the pool no longer owns.
96
+ *
97
+ * The pool holds a COPY of an account's credential when one was adopted from
98
+ * another application, and a copy can go stale: the moment either side rotates,
99
+ * the refresh token the pool holds is spent. Recovery is not a refresh (that
100
+ * would spend the dead token again) but a re-read of the authority, keeping the
101
+ * authoritative copy only when it still describes the same account.
102
+ *
103
+ * Returning null means "no newer authority"; the pool then leaves the row alone.
104
+ * Absent means the provider keeps no external authority at all.
105
+ *
106
+ * The "has it moved on" test belongs to the provider, which knows what identity
107
+ * means for its credential: the core only asks for the authority and lets the
108
+ * provider decide whether it is a newer state of the same account.
109
+ */
110
+ liveCredentialsFor?(account: TAccount): Promise<{
111
+ credentials: TCredentials;
112
+ advanced: boolean;
113
+ } | null>;
94
114
  /** Pre-pool single credential, projected as the primary account on read. */
95
115
  legacyAccount?(): Promise<TAccount | null>;
96
116
  /** Mirror the primary account into the single-credential store; `null` clears it. */
@@ -1 +1 @@
1
- {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/common/account-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/common/account-pool.ts"],"names":[],"mappings":"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"}
@@ -128,6 +128,50 @@ export interface MinimaxCodeAccountPoolOptions {
128
128
  export declare class MinimaxCodeAccountPool extends AccountPoolCore<MinimaxCodeCredentials, MinimaxCodePoolAccount, MinimaxCodeAccountSummaryDto> {
129
129
  private readonly store;
130
130
  constructor(options?: MinimaxCodeAccountPoolOptions);
131
+ /**
132
+ * Account summaries, with a false auth failure cleared.
133
+ *
134
+ * A row can carry an `authStatus` of expired for a rotation that actually
135
+ * succeeded — the second of two concurrent rotations of one session gets a final
136
+ * verdict for a token the first already spent. Nobody comes back to clear that
137
+ * marker, so the account stays out of rotation until the user presses 重新登录.
138
+ *
139
+ * The verdict is re-checked against the token in force instead: a row whose
140
+ * credential has moved on since the failure is routable again, and the marker is
141
+ * removed. A row still holding the refused token keeps its marker, because that
142
+ * one really does need a sign-in.
143
+ */
144
+ listAccounts(): Promise<MinimaxCodeAccountSummaryDto[]>;
145
+ /**
146
+ * Pick an account, healing a stale auth failure first.
147
+ *
148
+ * The healing matters here, not only on the card: an account marked expired is
149
+ * excluded by the core's eligibility rule, so until the marker is gone the line
150
+ * answers a single-account pool with "all accounts need a new sign-in" — for a
151
+ * rotation that succeeded. Doing it on the request path means the very next
152
+ * request after a false refusal routes normally instead of waiting for the card's
153
+ * next poll.
154
+ */
155
+ getEffectiveAccount(excludeIds?: ReadonlySet<string>, fetchFn?: typeof fetch): Promise<{
156
+ account: MinimaxCodePoolAccount;
157
+ credentials: MinimaxCodeCredentials;
158
+ }>;
159
+ /**
160
+ * Drop an `authStatus` that describes a credential this machine no longer holds.
161
+ *
162
+ * A row can be marked expired by a rotation that actually SUCCEEDED: the refresh
163
+ * token is single-use, so when two callers of one session rotate at the same time
164
+ * the loser is told `invalid_grant` for a token the winner already spent. That is
165
+ * a verdict about a spent generation, not about the sign-in — and nothing else in
166
+ * the system ever revisits it, which is why the account stayed parked at
167
+ * "需要重新登录" until the user pressed a button.
168
+ *
169
+ * The verdict is re-checked against the credential in force: if the stored
170
+ * credential for the same session has moved on, the marker was about the old
171
+ * token and is removed. A row still holding the refused token keeps its marker,
172
+ * because that one genuinely needs a sign-in.
173
+ */
174
+ private healStaleAuthFailures;
131
175
  /**
132
176
  * Pick the account for the next request.
133
177
  *
@@ -151,6 +195,21 @@ export declare class MinimaxCodeAccountPool extends AccountPoolCore<MinimaxCodeC
151
195
  * pair back, and reading the pre-refresh file would undo it.
152
196
  */
153
197
  private liveNativeCredential;
198
+ /**
199
+ * The desktop app's own copy of one native account's session, and whether it has
200
+ * moved on from the row's copy.
201
+ *
202
+ * The app rotates its token on its own schedule, so the copy the pool adopted can
203
+ * be older than what is on disk. Only the same record slot counts: a different
204
+ * record key or region is a different account, and substituting it would present
205
+ * one account's token as another's.
206
+ *
207
+ * `advanced` is the whole reason this does not simply return the file: an
208
+ * EXPIRED file is not newer authority (that is the app's session having lapsed),
209
+ * while one that has moved on from the row is. The row's refresh token was spent
210
+ * by whichever side rotated last, and only the file can say what replaced it.
211
+ */
212
+ private nativeAuthority;
154
213
  /**
155
214
  * Adopt the sign-in the desktop app currently holds into the pool.
156
215
  *
@@ -1 +1 @@
1
- {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/account-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/account-pool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAgC,MAAM,mBAAmB,CAAA;AAY7F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAiB,CAAA;AAEzD,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAwDD,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAC1D,CAAA;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IAmBlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnB1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,MAAM,CAAQ;IACtB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,SAAS,CAAsB;IACvC,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAA6B;gBAG3B,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,gCAAgC;IAS5D;;;;;;;;OAQG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,OAAO,CAAC,KAAK;YAQC,QAAQ;YAoBR,GAAG;IAmCjB,yDAAyD;YAC3C,KAAK;IAOnB;;;;;;;OAOG;YACW,WAAW;IAgBzB,wEAAwE;YAC1D,UAAU;IAkCxB;;;;OAIG;YACW,WAAW;IAgBzB,uDAAuD;YACzC,KAAK;IAWnB,sDAAsD;YACxC,KAAK;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAQpB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;YAwCrC,IAAI;YA+BJ,IAAI;CAYnB"}
1
+ {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/checkin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AACvF,OAAO,KAAK,EAAE,sBAAsB,EAAgC,MAAM,mBAAmB,CAAA;AAY7F;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QAAiB,CAAA;AAEzD,yEAAyE;AACzE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAwDD,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAC1D,CAAA;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED;;;GAGG;AACH,qBAAa,yBAAyB;IAmBlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnB1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,MAAM,CAAQ;IACtB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,SAAS,CAAsB;IACvC,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAA6B;gBAG3B,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,gCAAgC;IAS5D;;;;;;;;OAQG;IACG,IAAI,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzC,OAAO,CAAC,KAAK;YAQC,QAAQ;YAoBR,GAAG;IAmCjB,yDAAyD;YAC3C,KAAK;IAOnB;;;;;;;OAOG;YACW,WAAW;IAgBzB,wEAAwE;YAC1D,UAAU;IAmCxB;;;;OAIG;YACW,WAAW;IAgBzB,uDAAuD;YACzC,KAAK;IAWnB,sDAAsD;YACxC,KAAK;IAWnB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAsB1B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IAQpB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;YAwCrC,IAAI;YA+BJ,IAAI;CAYnB"}
@@ -117,8 +117,17 @@ export declare function quotaRequestHeaders(accessToken: string, pathWithSearch:
117
117
  * host answers HTTP 200 with `base_resp.status_code: 1004` for an
118
118
  * `mcode-public` (MiniMax Code) token, under every auth shape tried.
119
119
  * - `unreachable` — no candidate host produced a usable answer at all.
120
+ * - `token-expired` — every candidate refused the bearer with 401/403, and the
121
+ * one refresh that follows also failed.
122
+ *
123
+ * `token-expired` exists because a refusal and an outage are different facts for
124
+ * the person looking at the card: an outage means "try again in a minute", while a
125
+ * refused bearer means the access token aged out. Collapsing the two into
126
+ * `unreachable` is what made a perfectly healthy account read as signed-out.
127
+ * - `stale` - the newest read failed, but the card is still being served the last
128
+ * numbers that parsed. The value is real; only its age is not.
120
129
  */
121
- export type MinimaxCodeQuotaUnavailable = 'credential-not-accepted' | 'unreachable';
130
+ export type MinimaxCodeQuotaUnavailable = 'credential-not-accepted' | 'unreachable' | 'token-expired' | 'stale';
122
131
  /** Forget the cached usage snapshot (a sign-out, a sign-in, a test). */
123
132
  export declare function clearCachedQuota(): void;
124
133
  /** The last usage snapshot without touching the network. */
@@ -161,6 +170,23 @@ export declare function fetchTokenPlanQuota(credentials: MinimaxCodeCredentials,
161
170
  fetchFn?: typeof fetch;
162
171
  signal?: AbortSignal;
163
172
  force?: boolean;
173
+ /**
174
+ * Renew the credential and hand back the pair to retry with.
175
+ *
176
+ * Injected by the route, which owns the store: this module reads credentials,
177
+ * it does not write them. Returns null when the credential cannot be renewed,
178
+ * and callers treat that as "still expired" rather than "signed out".
179
+ */
180
+ renewCredential?: () => Promise<MinimaxCodeCredentials | null>;
181
+ /**
182
+ * Whether the credential this read presented has already been replaced.
183
+ *
184
+ * Set by the caller, which can see the credential in force. A 401 that arrives
185
+ * for a token that is no longer current is not a verdict on the account, and
186
+ * reporting it as `token-expired` would put "sign in again" on a card whose
187
+ * sign-in is in perfect health.
188
+ */
189
+ isCredentialStale?: () => Promise<boolean>;
164
190
  }): Promise<MinimaxCodeQuota | null>;
165
191
  /**
166
192
  * Every model id the hardcoded directory offers.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/client.ts"],"names":[],"mappings":"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"}
@@ -150,6 +150,8 @@ export { accountHost };
150
150
  export declare function isRefreshTokenRejected(refreshToken: string): boolean;
151
151
  /** Test seam: forget every remembered rejection. */
152
152
  export declare function resetRefreshRejections(): void;
153
+ /** Test seam: forget every in-flight rotation. */
154
+ export declare function resetInFlightRefreshes(): void;
153
155
  export interface EnsureTokenOptions {
154
156
  fetchFn?: typeof fetch;
155
157
  signal?: AbortSignal;
@@ -161,14 +163,28 @@ export interface EnsureTokenOptions {
161
163
  *
162
164
  * This is the whole of the contention discipline in one function:
163
165
  *
164
- * 1. read the stored credential and use it as-is while it is valid — the
165
- * common case, and the one that never touches the file or the network;
166
- * 2. refresh only when it is not (or when `force` reports a 401 the service has
167
- * already issued);
168
- * 3. share one rotation between concurrent callers, so a burst of tool calls at
169
- * expiry cannot each try to rotate the same refresh token;
166
+ * 1. read the stored credential and use it as-is while it is comfortably valid —
167
+ * the common case, and the one that never touches the file or the network;
168
+ * 2. renew EARLY (PRE_EXPIRY_REFRESH_MS before expiry) rather than at the boundary
169
+ * the service refuses at, or when `force` reports a 401 the service has already
170
+ * issued;
171
+ * 3. share one rotation between concurrent callers of the SAME credential, and go
172
+ * through the store's rotation registry so a rotation the desktop app is doing
173
+ * to the same file is waited for rather than raced;
170
174
  * 4. write the result back through the store's atomic replacement, and remember a
171
- * rejected token so the next caller is told to sign in instead of retrying.
175
+ * rejection only when the credential on disk is still the rejected one.
176
+ *
177
+ * Step 4 is the one the every-hour sign-out hung on. `invalid_grant` used to be
178
+ * recorded unconditionally, but that verdict has two possible meanings and only
179
+ * one of them is "this sign-in is dead":
180
+ *
181
+ * - the token really is revoked (`invalid_grant` / `invalid_client`), which is a
182
+ * sign-in problem;
183
+ * - another holder of the very same session rotated first, so the token this call
184
+ * presented was already spent. The service cannot tell the two apart, and the
185
+ * plugin must not either — so it looks at the file. A credential newer than the
186
+ * one it presented means somebody else rotated successfully, and that credential
187
+ * is adopted instead of being buried under a tombstone.
172
188
  */
173
189
  export declare function ensureAccessToken(store: MinimaxCodeCredentialStore, options?: EnsureTokenOptions): Promise<MinimaxCodeCredentials>;
174
190
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/oauth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EACL,wBAAwB,EAMxB,KAAK,oBAAoB,EAC1B,MAAM,wCAAwC,CAAA;AAG/C,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAE7B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAIL,iBAAiB,EACjB,WAAW,EAKZ,MAAM,YAAY,CAAA;AAQnB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AA+C7D,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAA;IACtE,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;CAC3E;AAuBD,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IACpC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC9D;AAOD,4CAA4C;AAC5C,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,0BAA0B,EACjC,OAAO,GAAE,wBAA6B,EACtC,cAAc,CAAC,EAAE,yBAAyB,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAoE/B;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,0BAA6D,EACpE,OAAO,GAAE,wBAA6B,EACtC,aAAa,GAAE,6BAAmE,EAClF,WAAW,CAAC,EAAE,0BAA0B,GACvC,MAAM,IAAI,CA0RZ;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EACL,wBAAwB,EAMxB,KAAK,oBAAoB,EAC1B,MAAM,wCAAwC,CAAA;AAG/C,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAE7B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAIL,iBAAiB,EACjB,WAAW,EAKZ,MAAM,YAAY,CAAA;AAQnB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AA+C7D,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAA;IACtE,MAAM,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;CAC3E;AAuBD,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IACpC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAA;IACpC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC9D;AAOD,4CAA4C;AAC5C,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,0BAA0B,EACjC,OAAO,GAAE,wBAA6B,EACtC,cAAc,CAAC,EAAE,yBAAyB,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAoE/B;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,KAAK,GAAE,0BAA6D,EACpE,OAAO,GAAE,wBAA6B,EACtC,aAAa,GAAE,6BAAmE,EAClF,WAAW,CAAC,EAAE,0BAA0B,GACvC,MAAM,IAAI,CAqTZ;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA"}
@@ -95,6 +95,61 @@ export declare function parseMinimaxCodeCredentials(value: unknown, fallback: {
95
95
  }): MinimaxCodeCredentials;
96
96
  /** Whether a credential is valid for long enough to use as-is. */
97
97
  export declare function credentialIsFresh(credentials: MinimaxCodeCredentials, now?: number): boolean;
98
+ /**
99
+ * Whether a credential should be renewed BEFORE it can be refused.
100
+ *
101
+ * {@link credentialIsFresh} answers "can this token be presented right now"; this
102
+ * answers "is it worth rotating on this plugin's own schedule instead of waiting
103
+ * for the service to say no". The two questions need different answers: the whole
104
+ * one-hour sign-out was the second question being answered with the first, so the
105
+ * line only ever rotated inside the last sixty seconds of a sixty-minute token —
106
+ * exactly the window in which concurrent callers spend the same rotating refresh
107
+ * token, and exactly the window in which a request can already be refused.
108
+ *
109
+ * The desktop app reads the same file and remains the first authority for it: this
110
+ * plugin renews a few minutes early, writes the rotation back atomically, and
111
+ * never touches the app's own `auth.lock`.
112
+ */
113
+ export declare function credentialNeedsRefresh(credentials: MinimaxCodeCredentials, now?: number): boolean;
114
+ /** Test seam: forget the snapshot, so one case cannot observe another's read. */
115
+ export declare function resetMinimaxCodeCredentialReads(): void;
116
+ /**
117
+ * Whether two credentials are two generations of ONE session.
118
+ *
119
+ * The file this line reads holds a single record, but the plugin's own file is a
120
+ * mirror that the pool writes for whichever account is primary — so a credential
121
+ * read from storage may belong to a completely different account than the one a
122
+ * caller is working on. Adopting a stranger's token would present one account's
123
+ * session as another's, which is the one mistake this whole line must never make.
124
+ *
125
+ * The identity is therefore the same one {@link rotationKey} uses: a native record
126
+ * slot, or the sign-in that produced a plugin-owned credential.
127
+ */
128
+ export declare function minimaxCodeSameCredentialSession(a: MinimaxCodeCredentials | null, b: MinimaxCodeCredentials | null): boolean;
129
+ /**
130
+ * Whether one credential is a LATER state of another.
131
+ *
132
+ * The generation is the desktop app's own rotation counter and the expiry moves
133
+ * forward with every rotation, so either being greater means the candidate is the
134
+ * result of a rotation the baseline predates. This is also what stops a stale copy
135
+ * from rolling a newer state back: a pool row the mirror could not write must never
136
+ * overwrite a fresh file.
137
+ */
138
+ export declare function minimaxCodeCredentialAdvancedPast(candidate: MinimaxCodeCredentials | null, baseline: MinimaxCodeCredentials): boolean;
139
+ /**
140
+ * Rotate one credential, or adopt the rotation somebody else is doing.
141
+ *
142
+ * The distinction matters: a caller that ADOPTED a result must use the credential
143
+ * that comes back, because the winner replaced the whole record.
144
+ */
145
+ export declare function rotateMinimaxCodeCredential(store: MinimaxCodeCredentialStore, credentials: MinimaxCodeCredentials, perform: () => Promise<MinimaxCodeCredentials>, options?: {
146
+ signal?: AbortSignal;
147
+ }): Promise<{
148
+ credentials: MinimaxCodeCredentials;
149
+ adopted: boolean;
150
+ }>;
151
+ /** Test seam: forget every rotation, so one test cannot leak into the next. */
152
+ export declare function resetMinimaxCodeRotations(): void;
98
153
  /**
99
154
  * The credential store for this line.
100
155
  *
@@ -111,6 +166,18 @@ export declare class MinimaxCodeCredentialStore {
111
166
  private readNative;
112
167
  private readPluginFile;
113
168
  read(): Promise<MinimaxCodeCredentials | null>;
169
+ /** Resolve once every operation already queued for this store's file settled. */
170
+ private drain;
171
+ /**
172
+ * Read storage, ignoring the snapshot.
173
+ *
174
+ * Used by the rotation path, where the whole question is whether somebody else
175
+ * has already replaced the credential: a cached answer would report the very
176
+ * state the caller is trying to move past. This is also what makes a rotation
177
+ * observable at all - the desktop app's write is only visible by reading the
178
+ * file again.
179
+ */
180
+ readFresh(): Promise<MinimaxCodeCredentials | null>;
114
181
  /**
115
182
  * The credential in force plus where it came from, in one pass.
116
183
  *
@@ -134,6 +201,14 @@ export declare class MinimaxCodeCredentialStore {
134
201
  * written to the plugin's own file. Either way the write is atomic.
135
202
  */
136
203
  write(credentials: MinimaxCodeCredentials): Promise<void>;
204
+ /**
205
+ * One write, to whichever file the credential came from.
206
+ *
207
+ * Called with the destination already held by {@link write}'s `serialize`; it
208
+ * must NOT claim the same chain again, or the outer frame would be waiting on the
209
+ * inner one while the inner one waits on the outer.
210
+ */
211
+ private writeOnce;
137
212
  /**
138
213
  * Forget the credential this plugin owns.
139
214
  *
@@ -1 +1 @@
1
- {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/token-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/token-store.ts"],"names":[],"mappings":"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"}
@@ -154,14 +154,45 @@ export declare const USER_AGENT = "dsh-chatgpt-subscription (+https://github.com
154
154
  /**
155
155
  * How long before expiry a token is replaced.
156
156
  *
157
- * The access token lives about 24 hours, and MiniMax Code refreshes the same file
158
- * this plugin reads, so the policy is "read-only first": a token that is still
159
- * comfortably valid is used exactly as stored. The margin exists only so a
160
- * request cannot start with a token that expires while it is in flight — it is
161
- * deliberately far below the token's own lifetime so the plugin does not race the
162
- * desktop app for a rotation it does not need.
157
+ * The measured MiniMax Code access token lives ONE HOUR, not the day an earlier
158
+ * note assumed, and the desktop app refreshes the same file this plugin reads, so
159
+ * the policy is "read-only first": a token that is still comfortably valid is used
160
+ * exactly as stored. The margin exists only so a request cannot start with a token
161
+ * that expires while it is in flight — it is deliberately far below the token's
162
+ * own lifetime so the plugin does not race the desktop app for a rotation it does
163
+ * not need.
163
164
  */
164
165
  export declare const REFRESH_MARGIN_MS = 60000;
166
+ /**
167
+ * How long before expiry this plugin renews the credential ON ITS OWN schedule.
168
+ *
169
+ * This is the constant that removes the every-hour sign-out. The access token
170
+ * lives one hour, so a reader that only acts once the token is already inside
171
+ * {@link REFRESH_MARGIN_MS} of expiry presents a bearer the service has already
172
+ * stopped accepting: every hour the line dips through 401 → refresh → retry, and
173
+ * a burst of tool calls at that boundary has two callers spend the same rotating
174
+ * refresh token. Renewing a few minutes early moves the rotation off the boundary
175
+ * and onto a schedule this plugin controls.
176
+ *
177
+ * It must stay far away from the token's lifetime for the opposite reason: a
178
+ * margin near the lifetime would rotate on every single read and race the desktop
179
+ * app for a rotation neither side needs. Five minutes of a sixty-minute token is
180
+ * the balance — the rotation happens once, well before the token can be refused.
181
+ */
182
+ export declare const PRE_EXPIRY_REFRESH_MS: number;
183
+ /** Failures cheap enough to retry under {@link PRE_EXPIRY_REFRESH_MS}. */
184
+ export declare const PRE_EXPIRY_REFRESH_MAX_ATTEMPTS = 2;
185
+ /**
186
+ * How long a rotation stays "recent" for other readers of the same credential.
187
+ *
188
+ * A refresh token rotates: the moment one holder spends it, every other holder is
189
+ * left with a token the service has already invalidated. This window is the answer
190
+ * — a caller that observes the credential rotating right now waits for the winner
191
+ * to write its result back and adopts that result instead of spending a token that
192
+ * is already gone. It is a local patience bound, not a lock: no file is created,
193
+ * and the desktop app's own `auth.lock` is never touched.
194
+ */
195
+ export declare const CREDENTIAL_ROTATION_WAIT_MS = 15000;
165
196
  /** Attempts one refresh gets before the stored credential is called dead. */
166
197
  export declare const REFRESH_MAX_RETRIES = 3;
167
198
  /** Exponential backoff base for a retryable refresh failure. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/host/minimax-code/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAG3G,eAAO,MAAM,WAAW,iBAA2B,CAAA;AACnD,eAAO,MAAM,aAAa,qDAA6B,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,iBAAiB,CAAA;AAEpD,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAE5C,yFAAyF;AACzF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAStF,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,6CAA6C,CAAA;AAEjF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAG9E,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C,kFAAkF;AAClF,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAIvE;AAED,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,wBAAwB,CAAA;AACrD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,kBAAkB,CAAA;AAC/C,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,mBAAmB,CAAA;AAEjD,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,iDAAiD,CAAA;AACpF,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,SAAS,CAAA;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,yBAAyB,CAAA;AACtD,sDAAsD;AACtD,eAAO,MAAM,aAAa,cAAc,CAAA;AACxC,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,eAAe,CAAA;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,qFAC6D,CAAA;AAEpF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,QAAa,CAAA;AAE/C,0EAA0E;AAC1E,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAAS,CAAA;AAEjD,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,OAAQ,CAAA;AAC5C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAsC,CAAA;AAEjG,gEAAgE;AAChE,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,eAAO,MAAM,8BAA8B,MAAM,CAAA;AACjD,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,QAAS,CAAA;AACtC,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,QAAiB,CAAA;AAE9C,eAAO,MAAM,sBAAsB,SAAU,CAAA;AAC7C,eAAO,MAAM,wBAAwB,4BAA4B,CAAA;AAEjE,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,OAAQ,CAAA;AAC5C,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,SAAU,CAAA;AAE7C,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAI9D;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAE7D;AAED,yDAAyD;AACzD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEnE;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,0BAA0B,CAOhG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAIpE"}