@eddyskywalker/dsh-chatgpt-subscription 0.1.21 → 0.1.23
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 +2 -1
- package/lib/client.js +67 -5
- package/lib/client.js.map +1 -1
- package/lib/index.js +138 -1
- package/lib/types/client/CodexSubscriptionSection.d.ts +8 -1
- package/lib/types/client/CodexSubscriptionSection.d.ts.map +1 -1
- package/lib/types/client/api.d.ts +1 -0
- package/lib/types/client/api.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +11 -1
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/styles.d.ts.map +1 -1
- package/lib/types/compat.d.ts +2 -0
- package/lib/types/compat.d.ts.map +1 -1
- package/lib/types/host/routes.d.ts.map +1 -1
- package/lib/types/host/usage-service.d.ts +9 -0
- package/lib/types/host/usage-service.d.ts.map +1 -1
- package/lib/types/shared/contracts.d.ts +2 -0
- package/lib/types/shared/contracts.d.ts.map +1 -1
- package/package.json +31 -31
package/lib/index.js
CHANGED
|
@@ -33,6 +33,8 @@ const CODEX_RESPONSES_URL = `${CODEX_API_BASE}/responses`;
|
|
|
33
33
|
const CODEX_IMAGE_GENERATION_URL = `${CODEX_API_BASE}/images/generations`;
|
|
34
34
|
const CODEX_SEARCH_URL = `${CODEX_API_BASE}/alpha/search`;
|
|
35
35
|
const CODEX_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
|
|
36
|
+
const CODEX_RESET_CREDITS_URL = "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits";
|
|
37
|
+
const CODEX_RESET_CREDITS_CONSUME_URL = `${CODEX_RESET_CREDITS_URL}/consume`;
|
|
36
38
|
const CODEX_ORIGINATOR = "opencode";
|
|
37
39
|
const CODEX_IMAGE_TOOL_NAME = "codex_image_generate";
|
|
38
40
|
const CODEX_IMAGE_MODEL = "gpt-image-2";
|
|
@@ -1914,6 +1916,7 @@ var UsageService = class {
|
|
|
1914
1916
|
blockedUntil = 0;
|
|
1915
1917
|
invalidated = false;
|
|
1916
1918
|
inFlight = null;
|
|
1919
|
+
resetConsumeInFlight = null;
|
|
1917
1920
|
constructor(oauth, options = {}) {
|
|
1918
1921
|
this.oauth = oauth;
|
|
1919
1922
|
this.fetchFn = options.fetchFn ?? fetch;
|
|
@@ -1958,6 +1961,89 @@ var UsageService = class {
|
|
|
1958
1961
|
this.blockedUntil = 0;
|
|
1959
1962
|
this.invalidated = false;
|
|
1960
1963
|
}
|
|
1964
|
+
async consumeResetCredit() {
|
|
1965
|
+
if (this.resetConsumeInFlight !== null) return this.resetConsumeInFlight;
|
|
1966
|
+
this.resetConsumeInFlight = this.consumeResetCreditUpstream().finally(() => {
|
|
1967
|
+
this.resetConsumeInFlight = null;
|
|
1968
|
+
});
|
|
1969
|
+
return this.resetConsumeInFlight;
|
|
1970
|
+
}
|
|
1971
|
+
async consumeResetCreditUpstream() {
|
|
1972
|
+
let credentials;
|
|
1973
|
+
try {
|
|
1974
|
+
credentials = await this.oauth.credentials();
|
|
1975
|
+
let creditsResponse = await this.fetchResetCredits(credentials);
|
|
1976
|
+
if (creditsResponse.status === 401) {
|
|
1977
|
+
await creditsResponse.body?.cancel().catch(() => void 0);
|
|
1978
|
+
credentials = await this.oauth.credentials(true);
|
|
1979
|
+
creditsResponse = await this.fetchResetCredits(credentials);
|
|
1980
|
+
}
|
|
1981
|
+
if (!creditsResponse.ok) {
|
|
1982
|
+
const status = creditsResponse.status;
|
|
1983
|
+
await creditsResponse.body?.cancel().catch(() => void 0);
|
|
1984
|
+
throw new UsageServiceError({
|
|
1985
|
+
code: status === 429 ? "rate-limited" : "quota-failed",
|
|
1986
|
+
message: status === 429 ? "Reset credit request was rate limited." : `Reset credit request failed (${status}).`
|
|
1987
|
+
});
|
|
1988
|
+
}
|
|
1989
|
+
const creditId = parseResetCredits(await creditsResponse.json()).availableCreditIds[0];
|
|
1990
|
+
if (creditId === void 0) throw new UsageServiceError({
|
|
1991
|
+
code: "bad-request",
|
|
1992
|
+
message: "No reset credits are currently available."
|
|
1993
|
+
});
|
|
1994
|
+
const redeemRequestId = randomUUID();
|
|
1995
|
+
let consumeResponse = await this.fetchFn(CODEX_RESET_CREDITS_CONSUME_URL, {
|
|
1996
|
+
method: "POST",
|
|
1997
|
+
headers: {
|
|
1998
|
+
...codexHeaders(credentials),
|
|
1999
|
+
accept: "application/json",
|
|
2000
|
+
"content-type": "application/json"
|
|
2001
|
+
},
|
|
2002
|
+
body: JSON.stringify({
|
|
2003
|
+
credit_id: creditId,
|
|
2004
|
+
redeem_request_id: redeemRequestId
|
|
2005
|
+
})
|
|
2006
|
+
});
|
|
2007
|
+
if (consumeResponse.status === 401) {
|
|
2008
|
+
await consumeResponse.body?.cancel().catch(() => void 0);
|
|
2009
|
+
credentials = await this.oauth.credentials(true);
|
|
2010
|
+
consumeResponse = await this.fetchFn(CODEX_RESET_CREDITS_CONSUME_URL, {
|
|
2011
|
+
method: "POST",
|
|
2012
|
+
headers: {
|
|
2013
|
+
...codexHeaders(credentials),
|
|
2014
|
+
accept: "application/json",
|
|
2015
|
+
"content-type": "application/json"
|
|
2016
|
+
},
|
|
2017
|
+
body: JSON.stringify({
|
|
2018
|
+
credit_id: creditId,
|
|
2019
|
+
redeem_request_id: redeemRequestId
|
|
2020
|
+
})
|
|
2021
|
+
});
|
|
2022
|
+
}
|
|
2023
|
+
if (!consumeResponse.ok) {
|
|
2024
|
+
const status = consumeResponse.status;
|
|
2025
|
+
await consumeResponse.body?.cancel().catch(() => void 0);
|
|
2026
|
+
throw new UsageServiceError({
|
|
2027
|
+
code: status === 429 ? "rate-limited" : "quota-failed",
|
|
2028
|
+
message: status === 429 ? "Using the reset credit was rate limited." : `Using the reset credit failed (${status}).`
|
|
2029
|
+
});
|
|
2030
|
+
}
|
|
2031
|
+
await consumeResponse.body?.cancel().catch(() => void 0);
|
|
2032
|
+
this.clear();
|
|
2033
|
+
const refreshed = await this.refreshUpstream(credentials, identityKey(credentials));
|
|
2034
|
+
if (refreshed.error !== void 0) throw new UsageServiceError({
|
|
2035
|
+
code: "quota-failed",
|
|
2036
|
+
message: "The reset credit was used, but usage could not be refreshed."
|
|
2037
|
+
});
|
|
2038
|
+
return refreshed;
|
|
2039
|
+
} catch (error) {
|
|
2040
|
+
if (error instanceof UsageServiceError) throw error;
|
|
2041
|
+
throw new UsageServiceError({
|
|
2042
|
+
code: "quota-failed",
|
|
2043
|
+
message: "The reset credit could not be used."
|
|
2044
|
+
});
|
|
2045
|
+
}
|
|
2046
|
+
}
|
|
1961
2047
|
async testConnection() {
|
|
1962
2048
|
const started = this.now();
|
|
1963
2049
|
const result = await this.status(true, true);
|
|
@@ -2000,6 +2086,16 @@ var UsageService = class {
|
|
|
2000
2086
|
});
|
|
2001
2087
|
}
|
|
2002
2088
|
const usage = parseCodexUsage(await response.json());
|
|
2089
|
+
if ((usage.resetCredits?.availableCount ?? 0) > 0) {
|
|
2090
|
+
const resetResponse = await this.fetchResetCredits(credentials).catch(() => null);
|
|
2091
|
+
if (resetResponse?.ok === true) {
|
|
2092
|
+
const reset = parseResetCredits(await resetResponse.json());
|
|
2093
|
+
usage.resetCredits = {
|
|
2094
|
+
availableCount: reset.availableCount,
|
|
2095
|
+
expiresAt: reset.expiresAt
|
|
2096
|
+
};
|
|
2097
|
+
} else await resetResponse?.body?.cancel().catch(() => void 0);
|
|
2098
|
+
}
|
|
2003
2099
|
this.cache = {
|
|
2004
2100
|
usage,
|
|
2005
2101
|
fetchedAt: this.now(),
|
|
@@ -2021,6 +2117,12 @@ var UsageService = class {
|
|
|
2021
2117
|
accept: "application/json"
|
|
2022
2118
|
} });
|
|
2023
2119
|
}
|
|
2120
|
+
fetchResetCredits(credentials) {
|
|
2121
|
+
return this.fetchFn(CODEX_RESET_CREDITS_URL, { headers: {
|
|
2122
|
+
...codexHeaders(credentials),
|
|
2123
|
+
accept: "application/json"
|
|
2124
|
+
} });
|
|
2125
|
+
}
|
|
2024
2126
|
fromCache(stale, error) {
|
|
2025
2127
|
if (this.cache === null) return {
|
|
2026
2128
|
state: error ? "error" : "empty",
|
|
@@ -2136,7 +2238,35 @@ function mapResetCredits(value) {
|
|
|
2136
2238
|
if (data === null) return null;
|
|
2137
2239
|
const available = numeric(data.available_count);
|
|
2138
2240
|
if (available === void 0) return null;
|
|
2139
|
-
return {
|
|
2241
|
+
return {
|
|
2242
|
+
availableCount: Math.max(0, Math.floor(available)),
|
|
2243
|
+
expiresAt: null
|
|
2244
|
+
};
|
|
2245
|
+
}
|
|
2246
|
+
function parseResetCredits(value) {
|
|
2247
|
+
const data = record(value);
|
|
2248
|
+
if (data === null) return {
|
|
2249
|
+
availableCount: 0,
|
|
2250
|
+
expiresAt: null,
|
|
2251
|
+
availableCreditIds: []
|
|
2252
|
+
};
|
|
2253
|
+
const available = (Array.isArray(data.credits) ? data.credits : []).map(record).filter((credit) => credit !== null && credit.status === "available").map((credit) => ({
|
|
2254
|
+
id: text(credit.id),
|
|
2255
|
+
expiresAt: timestamp(credit.expires_at)
|
|
2256
|
+
})).filter((credit) => credit.id !== null).sort((left, right) => (left.expiresAt ?? Number.MAX_SAFE_INTEGER) - (right.expiresAt ?? Number.MAX_SAFE_INTEGER));
|
|
2257
|
+
const reported = numeric(data.available_count);
|
|
2258
|
+
return {
|
|
2259
|
+
availableCount: reported === void 0 ? available.length : Math.max(0, Math.floor(reported)),
|
|
2260
|
+
expiresAt: available.map((credit) => credit.expiresAt).find((expiresAt) => expiresAt !== null) ?? null,
|
|
2261
|
+
availableCreditIds: available.map((credit) => credit.id)
|
|
2262
|
+
};
|
|
2263
|
+
}
|
|
2264
|
+
function timestamp(value) {
|
|
2265
|
+
const numericValue = numeric(value);
|
|
2266
|
+
if (numericValue !== void 0 && numericValue > 0) return numericValue > 1e10 ? Math.floor(numericValue / 1e3) : Math.floor(numericValue);
|
|
2267
|
+
if (typeof value !== "string") return null;
|
|
2268
|
+
const parsed = Date.parse(value);
|
|
2269
|
+
return Number.isFinite(parsed) ? Math.floor(parsed / 1e3) : null;
|
|
2140
2270
|
}
|
|
2141
2271
|
function record(value) {
|
|
2142
2272
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
@@ -2327,6 +2457,13 @@ function registerRoutes(ctx, oauth, usage, preferences) {
|
|
|
2327
2457
|
value: await usage.status(true, true)
|
|
2328
2458
|
});
|
|
2329
2459
|
return;
|
|
2460
|
+
case `${ROUTE_PREFIX}/quota/reset-credit/use`:
|
|
2461
|
+
if (!(await oauth.status()).authenticated) throw new Error("not authenticated");
|
|
2462
|
+
json(response, {
|
|
2463
|
+
ok: true,
|
|
2464
|
+
value: await usage.consumeResetCredit()
|
|
2465
|
+
});
|
|
2466
|
+
return;
|
|
2330
2467
|
case `${ROUTE_PREFIX}/connection/test`:
|
|
2331
2468
|
json(response, {
|
|
2332
2469
|
ok: true,
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
-
import type { CredentialStorageDto, QuotaWindowDto } from '../shared/contracts.ts';
|
|
2
|
+
import type { CredentialStorageDto, PluginStatusDto, QuotaWindowDto } from '../shared/contracts.ts';
|
|
3
3
|
import { NS } from './locales.ts';
|
|
4
4
|
type Props = PropsRuntime<'settings.section'> & PropsLocale<typeof NS>;
|
|
5
|
+
type BusyAction = 'login' | 'token' | 'quota' | 'reset-credit' | 'test' | 'logout' | 'preferences' | null;
|
|
5
6
|
type Translate = Props['t'];
|
|
6
7
|
export declare function CodexSubscriptionSection({ t }: Props): React.JSX.Element;
|
|
7
8
|
export declare function storageLabel(storage: CredentialStorageDto | undefined, t: Translate): string;
|
|
8
9
|
export declare function storageNotice(storage: CredentialStorageDto | undefined, t: Translate): string;
|
|
10
|
+
export declare function ResetCreditsFact({ resetCredits, busy, onUse, t }: {
|
|
11
|
+
resetCredits: NonNullable<PluginStatusDto['quota']['resetCredits']>;
|
|
12
|
+
busy: BusyAction;
|
|
13
|
+
onUse: () => Promise<void>;
|
|
14
|
+
t: Translate;
|
|
15
|
+
}): React.JSX.Element;
|
|
9
16
|
export declare function QuotaBar({ label, window, t }: {
|
|
10
17
|
label: string;
|
|
11
18
|
window: QuotaWindowDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAkB,cAAc,EAAoC,MAAM,wBAAwB,CAAA;AAGrJ,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAGjC,KAAK,KAAK,GAAG,YAAY,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;AACtE,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAA;AACzG,KAAK,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AAE3B,wBAAgB,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4RxE;AAiBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAO5F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAO7F;AAcD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUzN;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAczH;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAQxE;AAcD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AA0BD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUnD"}
|
|
@@ -11,6 +11,7 @@ export declare class SubscriptionApi {
|
|
|
11
11
|
}>;
|
|
12
12
|
refresh(): Promise<PluginStatusDto>;
|
|
13
13
|
refreshQuota(): Promise<QuotaStatusDto>;
|
|
14
|
+
useResetCredit(): Promise<QuotaStatusDto>;
|
|
14
15
|
testConnection(): Promise<ConnectionTestDto>;
|
|
15
16
|
updatePreferences(patch: SubscriptionPreferencesUpdateDto): Promise<SubscriptionPreferencesDto>;
|
|
16
17
|
events(loginId: string): EventSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,wBAAwB,CAAA;AAE/B,qBAAa,eAAe;IAC1B,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAIlC,MAAM,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI1C,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAIpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAI7D,MAAM,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,KAAK,CAAA;KAAE,CAAC;IAI3C,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAInC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5C,iBAAiB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAI/F,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;CAGrC;AAmBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,IAAI,CAOjF"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,gCAAgC,EACjC,MAAM,wBAAwB,CAAA;AAE/B,qBAAa,eAAe;IAC1B,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAIlC,MAAM,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAI1C,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAIpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAI7D,MAAM,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,KAAK,CAAA;KAAE,CAAC;IAI3C,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAInC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAIzC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5C,iBAAiB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAI/F,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;CAGrC;AAmBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,IAAI,CAOjF"}
|
|
@@ -97,6 +97,11 @@ export declare const zh: {
|
|
|
97
97
|
readonly credits: "Credits";
|
|
98
98
|
readonly monthlySpend: "月度消费控制";
|
|
99
99
|
readonly resetCredits: "重置次数";
|
|
100
|
+
readonly resetCreditExpires: "到期时间";
|
|
101
|
+
readonly useResetCredit: "使用重置卡";
|
|
102
|
+
readonly usingResetCredit: "使用中…";
|
|
103
|
+
readonly useResetCreditConfirm: "使用后会立即消耗 1 次重置机会,并重置符合条件的 Codex 额度窗口。确定继续吗?";
|
|
104
|
+
readonly resetCreditUsed: "重置卡已使用,用量数据已刷新。";
|
|
100
105
|
readonly spendControlReached: "已触发月度消费控制,新的订阅调用可能被限制。";
|
|
101
106
|
readonly limit: "上限";
|
|
102
107
|
readonly exhausted: "额度已用尽";
|
|
@@ -217,6 +222,11 @@ export declare const dictionaries: {
|
|
|
217
222
|
readonly credits: "Credits";
|
|
218
223
|
readonly monthlySpend: "月度消费控制";
|
|
219
224
|
readonly resetCredits: "重置次数";
|
|
225
|
+
readonly resetCreditExpires: "到期时间";
|
|
226
|
+
readonly useResetCredit: "使用重置卡";
|
|
227
|
+
readonly usingResetCredit: "使用中…";
|
|
228
|
+
readonly useResetCreditConfirm: "使用后会立即消耗 1 次重置机会,并重置符合条件的 Codex 额度窗口。确定继续吗?";
|
|
229
|
+
readonly resetCreditUsed: "重置卡已使用,用量数据已刷新。";
|
|
220
230
|
readonly spendControlReached: "已触发月度消费控制,新的订阅调用可能被限制。";
|
|
221
231
|
readonly limit: "上限";
|
|
222
232
|
readonly exhausted: "额度已用尽";
|
|
@@ -236,6 +246,6 @@ export declare const dictionaries: {
|
|
|
236
246
|
readonly retry: "重试";
|
|
237
247
|
readonly unknown: "未知";
|
|
238
248
|
};
|
|
239
|
-
en: Record<"
|
|
249
|
+
en: Record<"quota" | "account" | "storage" | "stale" | "pending" | "tokens" | "title" | "intro" | "signedOut" | "signedIn" | "plan" | "accountId" | "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" | "models" | "enhancements" | "subagentSettingsNav" | "subagentSettingsTitle" | "subagentSettingsIntro" | "subagentModelGroup" | "subagentLimitsGroup" | "subagentMaxDepth" | "subagentMaxDepthHint" | "subagentMaxAgents" | "subagentMaxAgentsHint" | "subagentLimitsNotice" | "levels" | "agents" | "searchProvider" | "searchProviderHint" | "searchProviderDsh" | "searchProviderCodex" | "subagentProvider" | "subagentProviderHint" | "subagentModel" | "subagentModelHint" | "subagentReasoningEffort" | "subagentReasoningEffortHint" | "providerDefault" | "effectiveContextWindow" | "selectedModelContextHint" | "reasoningNone" | "reasoningLow" | "reasoningMedium" | "reasoningHigh" | "reasoningXhigh" | "reasoningMax" | "contextWindows" | "contextWindowsHint" | "contextWindow" | "contextWindowInvalid" | "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", string>;
|
|
240
250
|
};
|
|
241
251
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAG,0BAAmC,CAAA;AAErD,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAG,0BAAmC,CAAA;AAErD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAyH9C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAA;AACvC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/client/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/client/styles.ts"],"names":[],"mappings":"AAiGA,wBAAgB,aAAa,IAAI,MAAM,IAAI,CAQ1C"}
|
package/lib/types/compat.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export declare const CODEX_RESPONSES_URL: "https://chatgpt.com/backend-api/codex
|
|
|
21
21
|
export declare const CODEX_IMAGE_GENERATION_URL: "https://chatgpt.com/backend-api/codex/images/generations";
|
|
22
22
|
export declare const CODEX_SEARCH_URL: "https://chatgpt.com/backend-api/codex/alpha/search";
|
|
23
23
|
export declare const CODEX_USAGE_URL: "https://chatgpt.com/backend-api/wham/usage";
|
|
24
|
+
export declare const CODEX_RESET_CREDITS_URL: "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits";
|
|
25
|
+
export declare const CODEX_RESET_CREDITS_CONSUME_URL: "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume";
|
|
24
26
|
export declare const CODEX_ORIGINATOR: "opencode";
|
|
25
27
|
export declare const CODEX_ENHANCED_ORIGINATOR: "pi";
|
|
26
28
|
export declare const CODEX_IMAGE_TOOL_NAME: "codex_image_generate";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAG,yBAAkC,CAAA;AACtE,eAAO,MAAM,uBAAuB,EAAG,8BAAuC,CAAA;AAC9E,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAA;AACvD,eAAO,MAAM,mBAAmB,EAAG,IAAa,CAAA;AAChD,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAA;AAC5D,eAAO,MAAM,kBAAkB,uCAAwF,CAAA;AACvH,eAAO,MAAM,WAAW,EAAG,qCAA8C,CAAA;AACzE,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAChD,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAC7C,eAAO,MAAM,YAAY,EAAG,+BAAwC,CAAA;AACpE,eAAO,MAAM,cAAc,EAAG,eAAwB,CAAA;AACtD,eAAO,MAAM,yBAAyB,EAAG,eAAwB,CAAA;AAEjE,eAAO,MAAM,cAAc,EAAG,uCAAgD,CAAA;AAC9E,eAAO,MAAM,mBAAmB,mDAAyC,CAAA;AACzE,eAAO,MAAM,0BAA0B,4DAAkD,CAAA;AACzF,eAAO,MAAM,gBAAgB,sDAA4C,CAAA;AACzE,eAAO,MAAM,eAAe,EAAG,4CAAqD,CAAA;AACpF,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,yBAAyB,EAAG,IAAa,CAAA;AACtD,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAA;AACpE,eAAO,MAAM,iBAAiB,EAAG,aAAsB,CAAA;AACvD,eAAO,MAAM,wBAAwB,EAAG,oBAA6B,CAAA;AACrE,eAAO,MAAM,cAAc,QAAS,CAAA;AACpC,eAAO,MAAM,8BAA8B,QAAS,CAAA;AAEpD,eAAO,MAAM,mBAAmB,2CAAqD,CAAA;AACrF,eAAO,MAAM,eAAe,uCAAiD,CAAA"}
|
|
1
|
+
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAG,yBAAkC,CAAA;AACtE,eAAO,MAAM,uBAAuB,EAAG,8BAAuC,CAAA;AAC9E,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAA;AACvD,eAAO,MAAM,mBAAmB,EAAG,IAAa,CAAA;AAChD,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAA;AAC5D,eAAO,MAAM,kBAAkB,uCAAwF,CAAA;AACvH,eAAO,MAAM,WAAW,EAAG,qCAA8C,CAAA;AACzE,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,sBAAsB,QAAa,CAAA;AAChD,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAC7C,eAAO,MAAM,YAAY,EAAG,+BAAwC,CAAA;AACpE,eAAO,MAAM,cAAc,EAAG,eAAwB,CAAA;AACtD,eAAO,MAAM,yBAAyB,EAAG,eAAwB,CAAA;AAEjE,eAAO,MAAM,cAAc,EAAG,uCAAgD,CAAA;AAC9E,eAAO,MAAM,mBAAmB,mDAAyC,CAAA;AACzE,eAAO,MAAM,0BAA0B,4DAAkD,CAAA;AACzF,eAAO,MAAM,gBAAgB,sDAA4C,CAAA;AACzE,eAAO,MAAM,eAAe,EAAG,4CAAqD,CAAA;AACpF,eAAO,MAAM,uBAAuB,EAAG,+DAAwE,CAAA;AAC/G,eAAO,MAAM,+BAA+B,yEAAgD,CAAA;AAC5F,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAA;AACnD,eAAO,MAAM,yBAAyB,EAAG,IAAa,CAAA;AACtD,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAA;AACpE,eAAO,MAAM,iBAAiB,EAAG,aAAsB,CAAA;AACvD,eAAO,MAAM,wBAAwB,EAAG,oBAA6B,CAAA;AACrE,eAAO,MAAM,cAAc,QAAS,CAAA;AACpC,eAAO,MAAM,8BAA8B,QAAS,CAAA;AAEpD,eAAO,MAAM,mBAAmB,2CAAqD,CAAA;AACrF,eAAO,MAAM,eAAe,uCAAiD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/host/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAmB,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AAKpE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,2BAA2B,GAAG,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/host/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAmB,KAAK,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AAKpE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,2BAA2B,GAAG,MAAM,IAAI,CAyJ3I"}
|
|
@@ -14,13 +14,17 @@ export declare class UsageService {
|
|
|
14
14
|
private blockedUntil;
|
|
15
15
|
private invalidated;
|
|
16
16
|
private inFlight;
|
|
17
|
+
private resetConsumeInFlight;
|
|
17
18
|
constructor(oauth: OAuthService, options?: UsageServiceOptions);
|
|
18
19
|
status(authenticated: boolean, force?: boolean): Promise<QuotaStatusDto>;
|
|
19
20
|
invalidate(): void;
|
|
20
21
|
clear(): void;
|
|
22
|
+
consumeResetCredit(): Promise<QuotaStatusDto>;
|
|
23
|
+
private consumeResetCreditUpstream;
|
|
21
24
|
testConnection(): Promise<ConnectionTestDto>;
|
|
22
25
|
private refreshUpstream;
|
|
23
26
|
private fetch;
|
|
27
|
+
private fetchResetCredits;
|
|
24
28
|
private fromCache;
|
|
25
29
|
private failure;
|
|
26
30
|
}
|
|
@@ -30,5 +34,10 @@ export declare class UsageServiceError extends Error {
|
|
|
30
34
|
}
|
|
31
35
|
export declare function mapCodexUsage(value: unknown): QuotaBucketDto[];
|
|
32
36
|
export declare function parseCodexUsage(value: unknown): QuotaUsageDto;
|
|
37
|
+
export declare function parseResetCredits(value: unknown): {
|
|
38
|
+
availableCount: number;
|
|
39
|
+
expiresAt: number | null;
|
|
40
|
+
availableCreditIds: string[];
|
|
41
|
+
};
|
|
33
42
|
export {};
|
|
34
43
|
//# sourceMappingURL=usage-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-service.d.ts","sourceRoot":"","sources":["../../../src/host/usage-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage-service.d.ts","sourceRoot":"","sources":["../../../src/host/usage-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EAEf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAIjD,KAAK,SAAS,GAAG,OAAO,KAAK,CAAA;AAgB7B,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,KAAK;IATlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,oBAAoB,CAAuC;gBAEtC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,mBAAwB;IAK7E,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B5E,UAAU,IAAI,IAAI;IAIlB,KAAK,IAAI,IAAI;IAMP,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC;YAQrC,0BAA0B;IA2DlC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;YASpC,eAAe;IA4C7B,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,OAAO;CAGhB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC9B,QAAQ,CAAC,WAAW,EAAE,cAAc;gBAA3B,WAAW,EAAE,cAAc;CAGjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CAE9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAwB7D;AAuED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CAAE,CAmBpI"}
|
|
@@ -105,6 +105,8 @@ export interface QuotaIndividualLimitDto {
|
|
|
105
105
|
}
|
|
106
106
|
export interface QuotaResetCreditsDto {
|
|
107
107
|
availableCount: number;
|
|
108
|
+
/** Earliest expiration among currently available reset credits, as Unix seconds. */
|
|
109
|
+
expiresAt: number | null;
|
|
108
110
|
}
|
|
109
111
|
export interface QuotaUsageDto {
|
|
110
112
|
buckets: QuotaBucketDto[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/shared/contracts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/shared/contracts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eddyskywalker/dsh-chatgpt-subscription",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "DSH provider plugin for Codex access through a ChatGPT subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "eddyskywalker",
|
|
@@ -61,44 +61,44 @@
|
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
63
63
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.2",
|
|
64
|
-
"@deepseek-ai/dsh-agent": "^0.1.1-rc.
|
|
65
|
-
"@deepseek-ai/dsh-attachment": "^0.1.1-rc.
|
|
66
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.
|
|
67
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.1-rc.
|
|
68
|
-
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.
|
|
69
|
-
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.
|
|
70
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.
|
|
71
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.
|
|
72
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.
|
|
73
|
-
"@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.
|
|
74
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.
|
|
64
|
+
"@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
|
|
65
|
+
"@deepseek-ai/dsh-attachment": "^0.1.1-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.2",
|
|
72
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.2",
|
|
73
|
+
"@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.2",
|
|
74
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.2",
|
|
75
75
|
"@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
|
|
76
|
-
"@deepseek-ai/dsh-settings": "^0.1.1-rc.
|
|
77
|
-
"@deepseek-ai/dsh-subagent": "^0.1.1-rc.
|
|
78
|
-
"@deepseek-ai/dsh-tools": "^0.1.1-rc.
|
|
79
|
-
"@deepseek-ai/dsh-web": "^0.1.1-rc.
|
|
76
|
+
"@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-tools": "^0.1.1-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-web": "^0.1.1-rc.2",
|
|
80
80
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
81
81
|
"react": "^18.2.0"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
85
85
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.2",
|
|
86
|
-
"@deepseek-ai/dsh-agent": "^0.1.1-rc.
|
|
87
|
-
"@deepseek-ai/dsh-attachment": "^0.1.1-rc.
|
|
88
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.
|
|
89
|
-
"@deepseek-ai/dsh-client-locale": "^0.1.1-rc.
|
|
90
|
-
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.
|
|
91
|
-
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.
|
|
92
|
-
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.
|
|
93
|
-
"@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.
|
|
94
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.
|
|
95
|
-
"@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.
|
|
96
|
-
"@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.
|
|
86
|
+
"@deepseek-ai/dsh-agent": "^0.1.1-rc.2",
|
|
87
|
+
"@deepseek-ai/dsh-attachment": "^0.1.1-rc.2",
|
|
88
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
|
|
89
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.1-rc.2",
|
|
90
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
|
|
91
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2",
|
|
92
|
+
"@deepseek-ai/dsh-client-ui-model-selection": "^0.1.1-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.1-rc.2",
|
|
94
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.1-rc.2",
|
|
95
|
+
"@deepseek-ai/dsh-client-ui-tool": "^0.1.1-rc.2",
|
|
96
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.1-rc.2",
|
|
97
97
|
"@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
|
|
98
|
-
"@deepseek-ai/dsh-settings": "^0.1.1-rc.
|
|
99
|
-
"@deepseek-ai/dsh-subagent": "^0.1.1-rc.
|
|
100
|
-
"@deepseek-ai/dsh-tools": "^0.1.1-rc.
|
|
101
|
-
"@deepseek-ai/dsh-web": "^0.1.1-rc.
|
|
98
|
+
"@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
|
|
99
|
+
"@deepseek-ai/dsh-subagent": "^0.1.1-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-tools": "^0.1.1-rc.2",
|
|
101
|
+
"@deepseek-ai/dsh-web": "^0.1.1-rc.2",
|
|
102
102
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
103
103
|
"@types/node": "^22.20.0",
|
|
104
104
|
"@types/react": "~18.3.1",
|