@eddyskywalker/dsh-chatgpt-subscription 0.18.0 → 0.19.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/CHANGELOG.md +31 -0
- package/README.md +103 -1
- package/lib/client.js +1543 -269
- package/lib/client.js.map +1 -1
- package/lib/index.js +9092 -2555
- package/lib/types/client/glm-coding-plan/GlmCodingPlanComposerQuota.d.ts +27 -0
- package/lib/types/client/glm-coding-plan/GlmCodingPlanComposerQuota.d.ts.map +1 -0
- package/lib/types/client/glm-coding-plan/GlmCodingPlanSection.d.ts +22 -0
- package/lib/types/client/glm-coding-plan/GlmCodingPlanSection.d.ts.map +1 -0
- package/lib/types/client/glm-coding-plan/api.d.ts +4 -0
- package/lib/types/client/glm-coding-plan/api.d.ts.map +1 -0
- package/lib/types/client/glm-coding-plan/locales.d.ts +412 -0
- package/lib/types/client/glm-coding-plan/locales.d.ts.map +1 -0
- package/lib/types/client/glm-coding-plan/styles.d.ts +15 -0
- package/lib/types/client/glm-coding-plan/styles.d.ts.map +1 -0
- package/lib/types/client/glm-coding-plan/useGlmCodingPlanSection.d.ts +65 -0
- package/lib/types/client/glm-coding-plan/useGlmCodingPlanSection.d.ts.map +1 -0
- package/lib/types/client/hub/brand-icons.d.ts +7 -5
- package/lib/types/client/hub/brand-icons.d.ts.map +1 -1
- package/lib/types/client/hub/providers.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/kimi-code/locales.d.ts +2 -2
- package/lib/types/client/minimax-code/locales.d.ts +2 -2
- package/lib/types/host/antigravity/oauth.d.ts +11 -1
- package/lib/types/host/antigravity/oauth.d.ts.map +1 -1
- package/lib/types/host/common/model-request-control.d.ts +1 -1
- package/lib/types/host/common/model-request-control.d.ts.map +1 -1
- package/lib/types/host/common/request-diagnostics.d.ts +1 -1
- package/lib/types/host/common/request-diagnostics.d.ts.map +1 -1
- package/lib/types/host/glm-coding-plan/account-pool.d.ts +152 -0
- package/lib/types/host/glm-coding-plan/account-pool.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/adapter.d.ts +169 -0
- package/lib/types/host/glm-coding-plan/adapter.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/adopt.d.ts +354 -0
- package/lib/types/host/glm-coding-plan/adopt.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/biz-token-cache.d.ts +99 -0
- package/lib/types/host/glm-coding-plan/biz-token-cache.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/client.d.ts +218 -0
- package/lib/types/host/glm-coding-plan/client.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/exchange.d.ts +223 -0
- package/lib/types/host/glm-coding-plan/exchange.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/mapper-anthropic.d.ts +308 -0
- package/lib/types/host/glm-coding-plan/mapper-anthropic.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/mapper-openai.d.ts +213 -0
- package/lib/types/host/glm-coding-plan/mapper-openai.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/model-catalog.d.ts +232 -0
- package/lib/types/host/glm-coding-plan/model-catalog.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/oauth.d.ts +211 -0
- package/lib/types/host/glm-coding-plan/oauth.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/routes.d.ts +93 -0
- package/lib/types/host/glm-coding-plan/routes.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/signing.d.ts +323 -0
- package/lib/types/host/glm-coding-plan/signing.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/token-store.d.ts +202 -0
- package/lib/types/host/glm-coding-plan/token-store.d.ts.map +1 -0
- package/lib/types/host/glm-coding-plan/types.d.ts +413 -0
- package/lib/types/host/glm-coding-plan/types.d.ts.map +1 -0
- package/lib/types/host/kimi-code/routes.d.ts +10 -0
- package/lib/types/host/kimi-code/routes.d.ts.map +1 -1
- package/lib/types/index.d.ts +9 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/glm-coding-plan-contracts.d.ts +315 -0
- package/lib/types/shared/glm-coding-plan-contracts.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/brand-icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"brand-icons.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/brand-icons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,YAAY,EAAqB,MAAM,gBAAgB,CAAA;AAElF,MAAM,MAAM,aAAa,GACrB,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,GACxD,WAAW,GAAG,cAAc,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAkB1E,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,KAAK,CAAA;AASlD,UAAU,aAAa;IACrB,iFAAiF;IACjF,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAUhE,CAAA;AAED,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUjI;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,IAAS,EAAE,EAAE;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAWpG;AAoBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/providers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/client/hub/providers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAgBpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,gFAAgF;IAChF,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,aAAa,CAAA;IACjB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IACxD,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAAA;CACxD;AA4BD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,SAAS,qBAAqB,EAwDzD,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAEnF"}
|
|
@@ -6,6 +6,7 @@ import { type CommandCodeLocaleKey } from './command-code/locales.ts';
|
|
|
6
6
|
import { type KimiCodeLocaleKey } from './kimi-code/locales.ts';
|
|
7
7
|
import { type MinimaxCodeLocaleKey } from './minimax-code/locales.ts';
|
|
8
8
|
import { type WorkBuddyLocaleKey } from './workbuddy/locales.ts';
|
|
9
|
+
import { type GlmCodingPlanLocaleKey } from './glm-coding-plan/locales.ts';
|
|
9
10
|
import { type OllamaLocaleKey } from './ollama/locales.ts';
|
|
10
11
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
11
12
|
/**
|
|
@@ -24,6 +25,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
24
25
|
'dsh-kimi-code': KimiCodeLocaleKey;
|
|
25
26
|
'dsh-minimax-code': MinimaxCodeLocaleKey;
|
|
26
27
|
'dsh-workbuddy': WorkBuddyLocaleKey;
|
|
28
|
+
'dsh-glm-coding-plan': GlmCodingPlanLocaleKey;
|
|
27
29
|
'dsh-ollama': OllamaLocaleKey;
|
|
28
30
|
}
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/D,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGtH,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlG,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAExH,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG5G,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGxH,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenE,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAM/D,OAAO,EAAoD,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGtH,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlG,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAExH,OAAO,EAA+C,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG5G,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGxH,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAG9G,OAAO,EAA0D,KAAK,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAElI,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGlG,OAAO,QAAQ,kCAAkC,CAAC;IAChD;;;;;;;OAOG;IACH,UAAU,kBAAkB;QAC1B,0BAA0B,EAAE,SAAS,CAAA;QACrC,iBAAiB,EAAE,oBAAoB,CAAA;QACvC,YAAY,EAAE,eAAe,CAAA;QAC7B,kBAAkB,EAAE,oBAAoB,CAAA;QACxC,eAAe,EAAE,iBAAiB,CAAA;QAClC,kBAAkB,EAAE,oBAAoB,CAAA;QACxC,eAAe,EAAE,kBAAkB,CAAA;QACnC,qBAAqB,EAAE,sBAAsB,CAAA;QAC7C,YAAY,EAAE,eAAe,CAAA;KAC9B;CACF;AAED,eAAO,MAAM,MAAM,UAQlB,CAAA;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA0H9C"}
|
|
@@ -454,8 +454,8 @@ export declare const dictionaries: {
|
|
|
454
454
|
readonly quotaFactsScope: string;
|
|
455
455
|
readonly composerLabel: string;
|
|
456
456
|
};
|
|
457
|
-
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheDriftTools" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "cacheTtl" | "cacheTtlHint" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortHigh" | "effortMax" | "resetAt" | "copied" | "authenticatedAt" | "openSignInPage" | "wireAnthropic" | "wireOpenai" | "
|
|
458
|
-
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheDriftTools" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "cacheTtl" | "cacheTtlHint" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortHigh" | "effortMax" | "resetAt" | "copied" | "authenticatedAt" | "openSignInPage" | "wireAnthropic" | "wireOpenai" | "
|
|
457
|
+
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheDriftTools" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "cacheTtl" | "cacheTtlHint" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortHigh" | "effortMax" | "resetAt" | "copied" | "authenticatedAt" | "openSignInPage" | "wireAnthropic" | "wireOpenai" | "region" | "quotaPlan" | "nickname" | "regionMainland" | "regionGlobal" | "refreshRejected" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "requestingCode" | "oauthHost" | "codingEndpoint" | "capVideo" | "capDynamicTools" | "capImageOnly" | "capNone" | "capVideoFootnote" | "capabilitiesTitle" | "capColMedia" | "capColTools" | "capColNotes" | "capPlan" | "capInputCap" | "capNoTools" | "speedRegular" | "speedHighspeed" | "quotaCost" | "minimumPlan" | "cacheTtlDefault" | "effortNone" | "contextWindowPlan" | "cacheOutput" | "cacheHint" | "cacheExpired" | "cacheDrift" | "cacheDriftFirst" | "cacheDriftStable" | "cacheDriftSystemPrompt" | "cacheDriftCacheKey" | "cacheDriftColdKey" | "preserveThinking" | "preserveOn" | "preserveOff" | "outputCap" | "quotaWallet" | "quotaWalletLimit" | "quotaWalletUsed" | "requests", string>;
|
|
458
|
+
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheDriftTools" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "cacheTtl" | "cacheTtlHint" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortHigh" | "effortMax" | "resetAt" | "copied" | "authenticatedAt" | "openSignInPage" | "wireAnthropic" | "wireOpenai" | "region" | "quotaPlan" | "nickname" | "regionMainland" | "regionGlobal" | "refreshRejected" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "requestingCode" | "oauthHost" | "codingEndpoint" | "capVideo" | "capDynamicTools" | "capImageOnly" | "capNone" | "capVideoFootnote" | "capabilitiesTitle" | "capColMedia" | "capColTools" | "capColNotes" | "capPlan" | "capInputCap" | "capNoTools" | "speedRegular" | "speedHighspeed" | "quotaCost" | "minimumPlan" | "cacheTtlDefault" | "effortNone" | "contextWindowPlan" | "cacheOutput" | "cacheHint" | "cacheExpired" | "cacheDrift" | "cacheDriftFirst" | "cacheDriftStable" | "cacheDriftSystemPrompt" | "cacheDriftCacheKey" | "cacheDriftColdKey" | "preserveThinking" | "preserveOn" | "preserveOff" | "outputCap" | "quotaWallet" | "quotaWalletLimit" | "quotaWalletUsed" | "requests", string>;
|
|
459
459
|
};
|
|
460
460
|
export type KimiCodeLocaleKey = keyof typeof zh;
|
|
461
461
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -349,8 +349,8 @@ export declare const dictionaries: {
|
|
|
349
349
|
readonly quotaUsed: string;
|
|
350
350
|
readonly quotaFactsScope: string;
|
|
351
351
|
};
|
|
352
|
-
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "
|
|
353
|
-
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "
|
|
352
|
+
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
|
|
353
|
+
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "expires" | "signIn" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "save" | "unknown" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "loginFailed" | "cancelSignIn" | "testingConnection" | "testSuccess" | "testFailed" | "routeOwned" | "routeConflict" | "capImage" | "copied" | "openSignInPage" | "region" | "regionCn" | "testSuccessModel" | "modelsUnavailable" | "invalidCapacity" | "quotaRefresh" | "expiresAt" | "regionGlobal" | "deviceCodeSection" | "deviceCodeHint" | "copyCode" | "userCode" | "codeExpires" | "waitingAuthorization" | "accountLabel" | "expiresRemaining" | "expiresExpired" | "expiresHint" | "codeMinutes" | "loginExpired" | "loginDenied" | "logoutOwnedByApp" | "dailyCheckin" | "checkinHint" | "checkinAuto" | "checkinToday" | "checkinSkipped" | "checkinFailed" | "checkinStreak" | "checkinClaimed" | "checkinLastRun" | "checkinNever" | "checkinNow" | "checkinRunning" | "quotaUnavailable" | "quotaNeedsApiKey" | "quotaUnreachable" | "quotaTokenExpired" | "quotaStale" | "quotaUsedShare" | "thinkingAlwaysOn" | "thinkingToggle" | "thinkingForced" | "capText", string>;
|
|
354
354
|
};
|
|
355
355
|
export type MinimaxCodeLocaleKey = keyof typeof zh;
|
|
356
356
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -54,5 +54,15 @@ export declare function ensureApiKey(store: FileCredentialStore, fetchFn?: typeo
|
|
|
54
54
|
token: string;
|
|
55
55
|
projectId?: string;
|
|
56
56
|
}>;
|
|
57
|
-
export declare function loginAndSave(store: FileCredentialStore, signal?: AbortSignal, onUrl?: (url: string) => void, fetchFn?: typeof fetch, onProgress?: (stage: string) => void
|
|
57
|
+
export declare function loginAndSave(store: FileCredentialStore, signal?: AbortSignal, onUrl?: (url: string) => void, fetchFn?: typeof fetch, onProgress?: (stage: string) => void,
|
|
58
|
+
/**
|
|
59
|
+
* 打开授权页的方式;缺省是本模块那份平台实现。
|
|
60
|
+
*
|
|
61
|
+
* 这一栏只是给测试留的口子:这一行以前是硬编码的 openBrowser(authUrl),将来
|
|
62
|
+
* 任何调用 loginAndSave 的用例都会在跑测试的机器上真的弹出窗口,而写用例的人
|
|
63
|
+
* 不会事先知道。
|
|
64
|
+
*
|
|
65
|
+
* 默认值就是改动前那一行本身,所以**生产行为一点没变**:该开还是开。
|
|
66
|
+
*/
|
|
67
|
+
openFn?: (url: string) => void): Promise<AntigravityCredentials>;
|
|
58
68
|
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/oauth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/host/antigravity/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConcurrencyGate } from './concurrency-gate.ts';
|
|
2
|
-
export declare const CONTROLLED_PROVIDERS: readonly ["codex-chatgpt", "claude", "antigravity", "kimi-code", "minimax-code", "command-code", "workbuddy", "ollama"];
|
|
2
|
+
export declare const CONTROLLED_PROVIDERS: readonly ["codex-chatgpt", "claude", "antigravity", "kimi-code", "minimax-code", "command-code", "workbuddy", "ollama", "glm-coding-plan"];
|
|
3
3
|
export type ControlledProvider = typeof CONTROLLED_PROVIDERS[number];
|
|
4
4
|
export interface ModelRequestLimits {
|
|
5
5
|
/** Per credential limits, not guessed subscription entitlements. Zero disables. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-request-control.d.ts","sourceRoot":"","sources":["../../../../src/host/common/model-request-control.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"model-request-control.d.ts","sourceRoot":"","sources":["../../../../src/host/common/model-request-control.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,eAAO,MAAM,oBAAoB,4IAA6I,CAAA;AAC9K,MAAM,MAAM,kBAAkB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACpE,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA;IACvD,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,kBAAkB,CAqB/F;AAED,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAO9F;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,KAAK,CAmErH"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @module dsh-chatgpt-subscription/request-diagnostics
|
|
15
15
|
*/
|
|
16
|
-
export declare const DIAGNOSTIC_PROVIDERS: readonly ["codex-chatgpt", "claude-subscription", "antigravity", "kimi-code", "minimax-code", "command-code", "workbuddy-subscription", "ollama", "claude", "workbuddy", "codex"];
|
|
16
|
+
export declare const DIAGNOSTIC_PROVIDERS: readonly ["codex-chatgpt", "claude-subscription", "antigravity", "kimi-code", "minimax-code", "command-code", "workbuddy-subscription", "ollama", "claude", "workbuddy", "codex", "glm-coding-plan"];
|
|
17
17
|
export type DiagnosticProviderId = (typeof DIAGNOSTIC_PROVIDERS)[number];
|
|
18
18
|
export declare const KNOWN_WIRE_ENDPOINTS: readonly ["messages", "responses", "chat_completions", "generate_content", "stream_generate_content", "ollama_chat", "ollama_generate", "workbuddy_chat", "unknown"];
|
|
19
19
|
export type KnownWireEndpoint = (typeof KNOWN_WIRE_ENDPOINTS)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-diagnostics.d.ts","sourceRoot":"","sources":["../../../../src/host/common/request-diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"request-diagnostics.d.ts","sourceRoot":"","sources":["../../../../src/host/common/request-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLM(ZCode 账号)线路的号池。
|
|
3
|
+
*
|
|
4
|
+
* 走共享的 `AccountPoolCore`:存储、序列化、可用性、轮转、429 冷却都��它管,
|
|
5
|
+
* 本文件只回答「GLM 这条线的凭据长什么样、谁能被刷新、配额怎么装配」。
|
|
6
|
+
*
|
|
7
|
+
* 三个与兄弟线路不同的地方,各有理由:
|
|
8
|
+
*
|
|
9
|
+
* 1. **两区可以同时在池里**。区域是凭据的属性(计划 §1、§3.3),一区铸造的 Key 被另一区拒绝,
|
|
10
|
+
* 所以去重键里必须带区域,否则两个部署上同一个邮箱会被合并成一行,
|
|
11
|
+
* 然后那一行的凭据被拿去打另一个区的主机——一次不会被任何本地检查发现的串区。
|
|
12
|
+
* 2. **adopt 来的账号永不可刷新**。它只是本机 ZCode 客户端登录态的一份拷贝,
|
|
13
|
+
* 上游才是权威;计划 §3.6 又没有 refresh 接口。`needsRefresh` 对它恒为 false,
|
|
14
|
+
* `refresh` 直接拒绝,而卡片上它标记为 `removable: false`——删掉它等于删掉用户的
|
|
15
|
+
* ZCode 客户端登录态,那不是本插件的文件。
|
|
16
|
+
* 3. **配额装配调用共享的 `quotaWindow()` / `poolQuota()`**,不另写第三份。
|
|
17
|
+
* 窗口长度取 `types.ts` 的 `QUOTA_WINDOW_MINUTES`(共享的窗口 DTO 里没有窗口 key,
|
|
18
|
+
* 那是线路自己的桥),`label` 传空串(窗口名的规范在客户端字典里),
|
|
19
|
+
* `usedPercent` 为 null 的窗口由 `quotaWindow()` 丢弃(null 不是 0%,是「未说明」)。
|
|
20
|
+
*/
|
|
21
|
+
import { AccountPoolCore, type PoolAccountShape, type PoolData } from '../common/account-pool.ts';
|
|
22
|
+
import type { CredentialStore } from '../token-store.ts';
|
|
23
|
+
import { GlmCodingPlanCredentialStore, type GlmCodingPlanCredentials } from './token-store.ts';
|
|
24
|
+
import type { GlmAdoptedCredential } from './adopt.ts';
|
|
25
|
+
import type { GlmAccountSummaryDto, GlmQuotaSnapshotDto, GlmRegion } from '../../shared/glm-coding-plan-contracts.ts';
|
|
26
|
+
import type { AccountRotationStrategy, PoolAccountQuotaDto } from '../../shared/account-pool-contracts.ts';
|
|
27
|
+
/** 一个池内账号行。凭据整个随行存放;其余是卡片渲染用的非机密事实。 */
|
|
28
|
+
export interface GlmCodingPlanPoolAccount extends PoolAccountShape<GlmCodingPlanCredentials> {
|
|
29
|
+
/** 账号所属部署;由凭据决定,这里是给它做索引用。 */
|
|
30
|
+
region: GlmRegion;
|
|
31
|
+
/** 浏览器登录 / adopt 捡回。 */
|
|
32
|
+
origin: GlmCodingPlanCredentials['origin'];
|
|
33
|
+
/** 兑换链解析出的默认机构 id(非机密,用于诊断两区是否串号)。 */
|
|
34
|
+
organizationId?: string;
|
|
35
|
+
/** 控制台侧的机构名 / 用户邮箱。 */
|
|
36
|
+
accountName?: string;
|
|
37
|
+
email?: string;
|
|
38
|
+
}
|
|
39
|
+
/** 号池切片:共享摘要 + 本线路的区域与来源。 */
|
|
40
|
+
export interface GlmCodingPlanAccountSummary extends GlmAccountSummaryDto {
|
|
41
|
+
/** 这份快照是不是从本机 ZCode 客户端捡回来的(捡回来的永不可刷新,也不可删除)。 */
|
|
42
|
+
adopted?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** 本线路自己拥有的加密号池文件。与凭据文件分开:池可以有多行,凭据文件只有主账号一份。 */
|
|
45
|
+
export declare function glmCodingPlanPoolPath(): string;
|
|
46
|
+
/**
|
|
47
|
+
* 身份:两个凭据什么时候是同一个上游账号。
|
|
48
|
+
*
|
|
49
|
+
* 组成是「区域 + 机构 + 上游 user_id」,三段都非机密,且都不随重新兑换而变:
|
|
50
|
+
* `codingPlanKey` 每次兑换都可能换一把新的(同名 Key 被轮转时就换),拿它当键会让
|
|
51
|
+
* 同一个账号在每次轮转后看起来都是新账号,于是号池无限增长。
|
|
52
|
+
*
|
|
53
|
+
* user_id 缺失时退回机构 + 邮箱,再退回机构 + apiKeyId(apiKeyId 是 `{id}.{secret}` 的 id 段,
|
|
54
|
+
* 非机密且由本线路自己建的那把 Key 给出)。三段全空才返回 undefined:那时没有稳定的东西可键,
|
|
55
|
+
* 核心会自己生成 `acc_<random>`,把这一行**新增**而不是与某个无关凭据合并。
|
|
56
|
+
*/
|
|
57
|
+
export declare function glmCodingPlanPoolIdentity(credentials: GlmCodingPlanCredentials): string | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* 校验并归一化整份号池文档。
|
|
60
|
+
*
|
|
61
|
+
* 凭据重新过一遍 token-store 的校验器,所以一行不可能装着一份 store 会拒绝写回的形状。
|
|
62
|
+
* `region` / `origin` 必须显式恢复:行上的这两个字段是索引,丢了会让卡片把国区账号画成国际区。
|
|
63
|
+
* 一行凭据读不通就**丢弃这一行**而不是整体报错——`read()` 会吞掉一次加载失败并回落,
|
|
64
|
+
* 抛错等于让一行坏数据带走整个池。
|
|
65
|
+
*/
|
|
66
|
+
export declare function parseGlmCodingPlanPoolData(value: unknown): PoolData<GlmCodingPlanPoolAccount>;
|
|
67
|
+
/**
|
|
68
|
+
* 配额快照 → 号池卡片渲染的形状。
|
|
69
|
+
*
|
|
70
|
+
* 每个窗口**按长度**而不是按一个字符串来标注:窗口名的规范在客户端字典里,host 没有资格
|
|
71
|
+
* 下发展示文案,而知道自己长度的窗口可以让共享卡片直接从长度推出名字。
|
|
72
|
+
* `usedPercent` 为 null 的窗口由 `quotaWindow()` 丢掉——null 不是 0%,是「未说明」,
|
|
73
|
+
* 画成一条进度条等于谎报用量。
|
|
74
|
+
*/
|
|
75
|
+
export declare function glmCodingPlanPoolQuota(snapshot: GlmQuotaSnapshotDto | null | undefined): PoolAccountQuotaDto | undefined;
|
|
76
|
+
/** 本线路的号池。 */
|
|
77
|
+
export interface GlmCodingPlanAccountPoolOptions {
|
|
78
|
+
/** 凭据存储:号池把主账号镜像进去,也在号池为空时用它投影出一个账号。 */
|
|
79
|
+
store?: GlmCodingPlanCredentialStore;
|
|
80
|
+
/** 测试缝;生产按池文件路径构造平台后端。 */
|
|
81
|
+
backend?: CredentialStore<PoolData<GlmCodingPlanPoolAccount>>;
|
|
82
|
+
/** 本池接受的账号数上限。 */
|
|
83
|
+
maxAccounts?: number;
|
|
84
|
+
/** 用户在设置里钉住的账号;钉住的账号冷却时自动让位给轮转(核心自己处理)。 */
|
|
85
|
+
preferAccountId?: () => string | null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 对一份 adopt 快照的凭据提出的刷新。
|
|
89
|
+
*
|
|
90
|
+
* 它永远不会成功,而**必须**是一个显式错误而不是一次静默的空操作:调用方(核心的刷新路径)
|
|
91
|
+
* 会把这个错误报给用户,而静默返回旧凭据会让一次注定失败的请求看起来像成功了。
|
|
92
|
+
*/
|
|
93
|
+
export declare class GlmAdoptedCredentialRefreshError extends Error {
|
|
94
|
+
constructor();
|
|
95
|
+
}
|
|
96
|
+
export declare class GlmCodingPlanAccountPool extends AccountPoolCore<GlmCodingPlanCredentials, GlmCodingPlanPoolAccount, GlmCodingPlanAccountSummary> {
|
|
97
|
+
private readonly store;
|
|
98
|
+
constructor(options?: GlmCodingPlanAccountPoolOptions);
|
|
99
|
+
/**
|
|
100
|
+
* 把一份 adopt 快照收进号池。
|
|
101
|
+
*
|
|
102
|
+
* 快照本身已经跑过兑换链并验过活,所以这里只做形状转换;账号仍以
|
|
103
|
+
* {@link glmCodingPlanPoolIdentity} 的身份落进池,重复 adopt 同一次登录只会更新同一行。
|
|
104
|
+
*/
|
|
105
|
+
addAdoptedCredential(adopted: GlmAdoptedCredential, alias?: string): Promise<GlmCodingPlanPoolAccount>;
|
|
106
|
+
/**
|
|
107
|
+
* 移除一个账号(事务内)。
|
|
108
|
+
*
|
|
109
|
+
* adopt 来的账号被拒绝:它对应的是 ZCode 客户端自己的登录态文件,删掉它等于把用户
|
|
110
|
+
* 从那个客户端里登出,而那不是本插件有权做的事。卡片上它是 `removable: false`。
|
|
111
|
+
*/
|
|
112
|
+
protected deleteAccountFromPool(data: PoolData<GlmCodingPlanPoolAccount>, accountId: string): void;
|
|
113
|
+
/**
|
|
114
|
+
* 适配器取下一个账号用的入口。
|
|
115
|
+
*
|
|
116
|
+
* 核心在这里做轮转、冷却、可用性判断与(被拒绝的)刷新;本方法只多给适配器一件事:
|
|
117
|
+
* 一次请求内换过账号时,把试过的账号排除掉。
|
|
118
|
+
*/
|
|
119
|
+
getEffectiveCredential(excludeIds?: ReadonlySet<string>, fetchFn?: typeof fetch): Promise<{
|
|
120
|
+
account: GlmCodingPlanPoolAccount;
|
|
121
|
+
credentials: GlmCodingPlanCredentials;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* 一次配额读属于哪个账号,连同读它用的凭据。
|
|
125
|
+
*
|
|
126
|
+
* 写在这里而不是路由里,是因为它是线路形状的:路由需要的是凭据**和**这次读所属的账号,
|
|
127
|
+
* 这样快照才能记在它描述的那一行上,不会被一次轮转画到另一行名下。
|
|
128
|
+
* 选谁读是核心自己对「没有指名账号的调用方」的规则,这里照抄那三行,
|
|
129
|
+
* 因为核心只通过 `getFreshCredential` 暴露凭据本身。
|
|
130
|
+
*/
|
|
131
|
+
getQuotaReadTarget(fetchFn?: typeof fetch): Promise<{
|
|
132
|
+
accountId: string;
|
|
133
|
+
credentials: GlmCodingPlanCredentials;
|
|
134
|
+
}>;
|
|
135
|
+
/** 本池镜像主账号进去的那份凭据存储。 */
|
|
136
|
+
mirrorStore(): GlmCodingPlanCredentialStore;
|
|
137
|
+
}
|
|
138
|
+
/** 状态应答里的号池切片。 */
|
|
139
|
+
export interface GlmCodingPlanPoolStatus {
|
|
140
|
+
accounts: GlmCodingPlanAccountSummary[];
|
|
141
|
+
activeAccountId?: string;
|
|
142
|
+
rotationStrategy: AccountRotationStrategy;
|
|
143
|
+
/** 本进程是否装上了号池。 */
|
|
144
|
+
poolInstalled: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 读状态应答的号池切片。
|
|
148
|
+
*
|
|
149
|
+
* 读不出来的号池不能带倒整张卡:连接那一半仍然值得渲染,只是账号列表是空的。
|
|
150
|
+
*/
|
|
151
|
+
export declare function glmCodingPlanPoolStatus(pool: GlmCodingPlanAccountPool | undefined): Promise<GlmCodingPlanPoolStatus>;
|
|
152
|
+
//# sourceMappingURL=account-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../../../../src/host/glm-coding-plan/account-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GLM(ZCode 账号)线路的 DSH 适配器。
|
|
3
|
+
*
|
|
4
|
+
* 它做的是这一轮里**唯一**一件两个交付模块都做不了的事:
|
|
5
|
+
*
|
|
6
|
+
* > 按 `GlmModelOption.wire` 把一次请求送到对应的协议面。
|
|
7
|
+
*
|
|
8
|
+
* 目录逐行声明协议(计划 D3),所以这里不猜:`wire` 为 `anthropic` 就走
|
|
9
|
+
* `mapper-anthropic.ts` 的 Messages 线,`openai` 就走 `mapper-openai.ts` 的
|
|
10
|
+
* Chat Completions 线,`null`(目录没有转录过的 id)**拒绝这个模型**——挑错的表现是
|
|
11
|
+
* 1212 `WRONG_METHOD`,比直接拒绝更难排查。
|
|
12
|
+
*
|
|
13
|
+
* 另外三件事也刻意留在这里而不是散进两个 mapper:
|
|
14
|
+
*
|
|
15
|
+
* - **ladder 由本层传入**:`glmEffortForLadder` / `buildChatRequest` 只收敛,不查目录。
|
|
16
|
+
* 梯子来自 `GlmModelOption.reasoningEfforts`,空数组 = 该模型完全不发思考控制
|
|
17
|
+
* (**有意语义**,不是 bug)。
|
|
18
|
+
* - **签名层就地合并**:`applyGlmClientSigning` 门控关闭时原样返回、零网络请求,
|
|
19
|
+
* 所以这里不写任何 `if`。sessionId 在一个适配器实例的生命周期内固定复用,
|
|
20
|
+
* 每次新生成会让 PoW seed 与签名串都变。
|
|
21
|
+
* - **冷却键看状态码 429 与正文里的重置时刻**,而不是只看 `code`。冻结的错误码表里
|
|
22
|
+
* 七条 429 有五条是额度类(`USAGE_LIMIT` / `PLAN_LIMIT` / `NO_BALANCE` / `PLAN_EXPIRED` /
|
|
23
|
+
* `MODEL_NOT_IN_PLAN`),它们不可重试,而「`code === 'RATE_LIMIT'` 才冷却」会让
|
|
24
|
+
* **已用尽的窗口永远不被冷却**——号池会一遍又一遍把同一个已用尽账号派出去。
|
|
25
|
+
*/
|
|
26
|
+
import { LlmAdapter, type GenerateOptions, type LlmModelInfo, type LlmProviderInfo, type LlmResolvedModelInfo, type PreparedAdapterCall, type ResolvedRetryPolicy, type StreamChunk } from '@deepseek-ai/dsh-llm';
|
|
27
|
+
import { type GenerateOptions as NormalizedGenerateOptions } from '../common/llm-compat.ts';
|
|
28
|
+
import { type AttachmentImageReader, type ResolvedRequestImages } from '../common/request-images.ts';
|
|
29
|
+
import { type GlmModelEntry } from './model-catalog.ts';
|
|
30
|
+
import { GlmCodingPlanCredentialStore, GlmCodingPlanModelSettingsStore, type GlmCodingPlanPreferenceStore } from './token-store.ts';
|
|
31
|
+
import type { GlmCodingPlanAccountPool } from './account-pool.ts';
|
|
32
|
+
import type { GlmRegion, GlmWire } from '../../shared/glm-coding-plan-contracts.ts';
|
|
33
|
+
/**
|
|
34
|
+
* 这条路由的瞬时故障重试策略。
|
|
35
|
+
*
|
|
36
|
+
* 可重试的集合与兄弟线路逐字一致:RATE_LIMIT(真的背压)、SERVER(上游 5xx)、
|
|
37
|
+
* TRANSPORT(没有应答的连接)、TIMEOUT(卡住的流,由空闲看门狗负责)。
|
|
38
|
+
*
|
|
39
|
+
* 刻意不在集合里:AUTH(被拒的 Key 每次都一样)、QUOTA(额度用尽,等窗口重置)、
|
|
40
|
+
* PROVIDER_ERROR(400 或套餐拒绝)、ABORTED(调用方自己取消)。
|
|
41
|
+
*/
|
|
42
|
+
export declare const GLM_CODING_PLAN_RETRY_POLICY_CONFIG: {
|
|
43
|
+
mode: 'normal';
|
|
44
|
+
maxRetries: number;
|
|
45
|
+
retryableCodes: string[];
|
|
46
|
+
backoff: {
|
|
47
|
+
initialDelayMs: number;
|
|
48
|
+
maxDelayMs: number;
|
|
49
|
+
jitterRatio: number;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** 上游没有给 `Retry-After`、正文也没有重置时刻时,一次冷却按多久算。 */
|
|
53
|
+
export declare const GLM_POOL_COOLDOWN_MS: number;
|
|
54
|
+
/**
|
|
55
|
+
* 从一份 429 正文里取窗口重置时刻(Unix 毫秒)。
|
|
56
|
+
*
|
|
57
|
+
* 它**不做分类**——分类是两个 mapper 各自唯一的一份,本文件只取一个时间:
|
|
58
|
+
* 「这个账号要到什么时候才能再用」是号池需要的,而「这是不是限流」不是。
|
|
59
|
+
*
|
|
60
|
+
* **未验证**:字段名。上游的配额响应里出现过 `nextResetTime` 与 `resetTime`,
|
|
61
|
+
* 429 正文用什么字段没有样本,所以这里只认这几个已知拼写,认不出就返回 undefined,
|
|
62
|
+
* 由调用方回落到 `Retry-After` 或默认冷却时长。
|
|
63
|
+
*/
|
|
64
|
+
export declare function readGlmResetAt(body: unknown): number | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* 一次 429 该不该冷却这个账号、冷却多久。
|
|
67
|
+
*
|
|
68
|
+
* 判据是**状态码 429**,而不是错误码:冻结的 `ERROR_CODE` 表里七条 429 中五条是额度类,
|
|
69
|
+
* 它们分别映射到 `QUOTA` / `PROVIDER_ERROR`,只认 `code === 'RATE_LIMIT'` 会让
|
|
70
|
+
* 「窗口已用尽」永远走不到冷却这一步——而那恰恰是最需要冷却的场景。
|
|
71
|
+
*
|
|
72
|
+
* 时长按可靠度依次取:正文里的重置时刻 → `Retry-After` → 默认 5 分钟。
|
|
73
|
+
* 重置时刻是唯一能让「等窗口重开再试」变成事实的那个数。
|
|
74
|
+
*/
|
|
75
|
+
export declare function glmCooldownDecision(input: {
|
|
76
|
+
status: number;
|
|
77
|
+
headers?: Headers;
|
|
78
|
+
body?: unknown;
|
|
79
|
+
}): {
|
|
80
|
+
cooldown: boolean;
|
|
81
|
+
durationMs: number;
|
|
82
|
+
reason: string;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* 一次请求的线路形状:URL、请求头、请求体,以及它走了哪个协议面。
|
|
86
|
+
*
|
|
87
|
+
* 做成一个**纯函数**而不是把构建过程埋进流里,是为了「两个 mapper 按 wire 正确路由」
|
|
88
|
+
* 与「ladder 正确传入」这两条验收点能被直接断言:它们是这个函数的输出,不是
|
|
89
|
+
* 一次网络往返的副产品。
|
|
90
|
+
*/
|
|
91
|
+
export interface GlmRequestPlan {
|
|
92
|
+
/** 实际走的协议面;调用方据此选流解析器。 */
|
|
93
|
+
wire: GlmWire;
|
|
94
|
+
url: string;
|
|
95
|
+
headers: Record<string, string>;
|
|
96
|
+
body: Record<string, unknown>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 构造一次请求。**不联网、不读设置**,所以可以被单独测。
|
|
100
|
+
*
|
|
101
|
+
* @param options - harness 归一化后的会话。
|
|
102
|
+
* @param request - 区域、目录行、已读图片与环境覆盖。
|
|
103
|
+
*/
|
|
104
|
+
export declare function buildGlmRequestPlan(options: NormalizedGenerateOptions, request: {
|
|
105
|
+
region: GlmRegion;
|
|
106
|
+
entry: GlmModelEntry;
|
|
107
|
+
images?: ResolvedRequestImages;
|
|
108
|
+
env?: NodeJS.ProcessEnv;
|
|
109
|
+
}): GlmRequestPlan;
|
|
110
|
+
export interface GlmCodingPlanAdapterOptions {
|
|
111
|
+
fetchFn?: typeof fetch;
|
|
112
|
+
attachments?: AttachmentImageReader;
|
|
113
|
+
/** 多账号号池;缺省走单凭据路径(无头 host 与测试)。 */
|
|
114
|
+
accountPool?: GlmCodingPlanAccountPool;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* GLM(ZCode 账号)线路的 LlmAdapter 实现。
|
|
118
|
+
*
|
|
119
|
+
* 目录在进程内缓存优先:请求路径上不去打上游拉目录(那会让每一次请求都多一个往返,
|
|
120
|
+
* 而且卡片打开时就能把目录同步好),实时目录只作为 `/catalog/refresh` 的产物存在。
|
|
121
|
+
*/
|
|
122
|
+
export declare class GlmCodingPlanAdapter extends LlmAdapter {
|
|
123
|
+
private readonly store;
|
|
124
|
+
private readonly modelSettings;
|
|
125
|
+
private readonly preferences;
|
|
126
|
+
private readonly accountPool;
|
|
127
|
+
private readonly options;
|
|
128
|
+
/**
|
|
129
|
+
* 签名器:每个适配器实例一个。
|
|
130
|
+
*
|
|
131
|
+
* 握手结果与私钥按凭据缓存,而一个池里可以同时有两区多个账号,所以做成实例级而不是模块级单例。
|
|
132
|
+
* 默认门控关闭时它从不被用到(`applyGlmClientSigning` 直接原样返回),
|
|
133
|
+
* 换凭据时也不需要手动清——因为它按 `apiKey` 派生缓存键。
|
|
134
|
+
*/
|
|
135
|
+
private readonly signer;
|
|
136
|
+
/** 一个实例内固定复用的会话 id;每次新生成都会改变 PoW seed 与签名串。 */
|
|
137
|
+
private readonly signingSessionId;
|
|
138
|
+
constructor(store?: GlmCodingPlanCredentialStore, modelSettings?: GlmCodingPlanModelSettingsStore, preferences?: GlmCodingPlanPreferenceStore, options?: GlmCodingPlanAdapterOptions);
|
|
139
|
+
providerInfo(provider: string): LlmProviderInfo;
|
|
140
|
+
providerRetryPolicy(): ResolvedRetryPolicy;
|
|
141
|
+
imageRequestPricing(): undefined;
|
|
142
|
+
private settings;
|
|
143
|
+
/**
|
|
144
|
+
* 这个部署能调的模型。
|
|
145
|
+
*
|
|
146
|
+
* 进程内缓存优先、随包目录兜底:**请求路径上绝不联网**。
|
|
147
|
+
* 实时目录只由 `/catalog/refresh` 与连接测试拉取,落进 `client.ts` 的缓存。
|
|
148
|
+
*/
|
|
149
|
+
private catalog;
|
|
150
|
+
/**
|
|
151
|
+
* 这一行请求用哪份凭据。
|
|
152
|
+
*
|
|
153
|
+
* 有池时轮转;没有池时读单凭据存储(无头 host 与测试的形态)。
|
|
154
|
+
* 两条路径都不主动刷新:Coding Plan Key 不声明失效时刻(见 account-pool 的 needsRefresh)。
|
|
155
|
+
*/
|
|
156
|
+
private credentialFor;
|
|
157
|
+
listModels(provider?: string): Promise<readonly LlmModelInfo[]>;
|
|
158
|
+
resolveModel(provider: string, model: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
|
159
|
+
prepareCall(provider: string, model: string, signal?: AbortSignal): Promise<PreparedAdapterCall>;
|
|
160
|
+
stream(options: GenerateOptions): AsyncIterable<StreamChunk>;
|
|
161
|
+
/**
|
|
162
|
+
* 一次请求的完整往返:选账号 → 定协议面 → 发 → 解析流。
|
|
163
|
+
*
|
|
164
|
+
* 账号轮转的循环只有一处:一次 429 或一次 AUTH 会把那个账号移出本次请求,
|
|
165
|
+
* 由另一个账号来发**同一份**请求体。没有池时这个循环只跑一次。
|
|
166
|
+
*/
|
|
167
|
+
private requestStream;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/host/glm-coding-plan/adapter.ts"],"names":[],"mappings":"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"}
|