dsh-plugin-subscription-usage 0.0.0-stage → 0.1.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/LICENSE +22 -0
- package/README.md +38 -2
- package/cordis.patch.yml +5 -0
- package/icon.svg +9 -0
- package/lib/auth/claude-code-creds.d.ts +23 -0
- package/lib/auth/claude-code-creds.js +172 -0
- package/lib/auth/device-flow.d.ts +55 -0
- package/lib/auth/device-flow.js +177 -0
- package/lib/auth/jwt.d.ts +10 -0
- package/lib/auth/jwt.js +25 -0
- package/lib/auth/oauth-flow.d.ts +91 -0
- package/lib/auth/oauth-flow.js +227 -0
- package/lib/auth/pkce.d.ts +31 -0
- package/lib/auth/pkce.js +35 -0
- package/lib/auth/rpc.d.ts +233 -0
- package/lib/auth/rpc.js +501 -0
- package/lib/auth/store.d.ts +198 -0
- package/lib/auth/store.js +473 -0
- package/lib/client/Footer.d.ts +3 -0
- package/lib/client/Footer.js +73 -0
- package/lib/client/Gauge.d.ts +28 -0
- package/lib/client/Gauge.js +139 -0
- package/lib/client/ImageGallery.d.ts +54 -0
- package/lib/client/ImageGallery.js +112 -0
- package/lib/client/ImageGenerateToolview.d.ts +48 -0
- package/lib/client/ImageGenerateToolview.js +130 -0
- package/lib/client/Notice.d.ts +15 -0
- package/lib/client/Notice.js +93 -0
- package/lib/client/ProviderCard.d.ts +35 -0
- package/lib/client/ProviderCard.js +240 -0
- package/lib/client/SpeedSelect.d.ts +72 -0
- package/lib/client/SpeedSelect.js +214 -0
- package/lib/client/Usage.d.ts +7 -0
- package/lib/client/Usage.js +83 -0
- package/lib/client/VideoGenerateToolview.d.ts +42 -0
- package/lib/client/VideoGenerateToolview.js +172 -0
- package/lib/client/context.d.ts +16 -0
- package/lib/client/context.js +11 -0
- package/lib/client/fast-command.d.ts +2 -0
- package/lib/client/fast-command.js +4 -0
- package/lib/client/hooks.d.ts +2 -0
- package/lib/client/hooks.js +10 -0
- package/lib/client/index.d.ts +3 -0
- package/lib/client/index.js +113 -0
- package/lib/client/locales.d.ts +139 -0
- package/lib/client/locales.js +267 -0
- package/lib/client/meter.d.ts +91 -0
- package/lib/client/meter.js +196 -0
- package/lib/client/prefs.d.ts +51 -0
- package/lib/client/prefs.js +71 -0
- package/lib/client/rpc.d.ts +161 -0
- package/lib/client/rpc.js +31 -0
- package/lib/client/store.d.ts +67 -0
- package/lib/client/store.js +129 -0
- package/lib/client/styles.d.ts +7 -0
- package/lib/client/styles.js +176 -0
- package/lib/client.js +3933 -0
- package/lib/client.js.map +1 -0
- package/lib/compat.d.ts +55 -0
- package/lib/compat.js +20 -0
- package/lib/http.d.ts +134 -0
- package/lib/http.js +431 -0
- package/lib/index.d.ts +121 -0
- package/lib/index.js +13210 -0
- package/lib/json-text.d.ts +2 -0
- package/lib/json-text.js +4 -0
- package/lib/model-defaults.d.ts +23 -0
- package/lib/model-defaults.js +238 -0
- package/lib/model-speeds.d.ts +10 -0
- package/lib/model-speeds.js +48 -0
- package/lib/models-directory.d.ts +17 -0
- package/lib/models-directory.js +25 -0
- package/lib/provider-settings.d.ts +55 -0
- package/lib/provider-settings.js +215 -0
- package/lib/providers/account-preferences.d.ts +46 -0
- package/lib/providers/account-preferences.js +188 -0
- package/lib/providers/accounts.d.ts +113 -0
- package/lib/providers/accounts.js +142 -0
- package/lib/providers/antigravity-oauth-client.d.ts +7 -0
- package/lib/providers/antigravity-oauth-client.js +7 -0
- package/lib/providers/antigravity.d.ts +119 -0
- package/lib/providers/antigravity.js +552 -0
- package/lib/providers/catalog-refresh.d.ts +4 -0
- package/lib/providers/catalog-refresh.js +30 -0
- package/lib/providers/catalog-store.d.ts +47 -0
- package/lib/providers/catalog-store.js +283 -0
- package/lib/providers/claude-cli-version.d.ts +15 -0
- package/lib/providers/claude-cli-version.js +24 -0
- package/lib/providers/claude.d.ts +212 -0
- package/lib/providers/claude.js +726 -0
- package/lib/providers/codex-client-version.d.ts +8 -0
- package/lib/providers/codex-client-version.js +17 -0
- package/lib/providers/codex-search.d.ts +29 -0
- package/lib/providers/codex-search.js +198 -0
- package/lib/providers/codex.d.ts +253 -0
- package/lib/providers/codex.js +930 -0
- package/lib/providers/common.d.ts +415 -0
- package/lib/providers/common.js +679 -0
- package/lib/providers/copilot.d.ts +365 -0
- package/lib/providers/copilot.js +956 -0
- package/lib/providers/grok.d.ts +214 -0
- package/lib/providers/grok.js +750 -0
- package/lib/providers/image-pool.d.ts +30 -0
- package/lib/providers/image-pool.js +89 -0
- package/lib/providers/npm-cli-version.d.ts +56 -0
- package/lib/providers/npm-cli-version.js +98 -0
- package/lib/providers/pool-family.d.ts +56 -0
- package/lib/providers/pool-family.js +45 -0
- package/lib/providers/pool-health.d.ts +91 -0
- package/lib/providers/pool-health.js +164 -0
- package/lib/providers/pool-usage.d.ts +106 -0
- package/lib/providers/pool-usage.js +302 -0
- package/lib/providers/pool.d.ts +115 -0
- package/lib/providers/pool.js +461 -0
- package/lib/providers/rate-limit.d.ts +192 -0
- package/lib/providers/rate-limit.js +338 -0
- package/lib/providers/replay.d.ts +4 -0
- package/lib/providers/replay.js +37 -0
- package/lib/providers/reset-redemption.d.ts +20 -0
- package/lib/providers/reset-redemption.js +70 -0
- package/lib/tools/image-generate.d.ts +128 -0
- package/lib/tools/image-generate.js +438 -0
- package/lib/tools/registration.d.ts +15 -0
- package/lib/tools/registration.js +24 -0
- package/lib/tools/video-generate.d.ts +89 -0
- package/lib/tools/video-generate.js +257 -0
- package/lib/tools/x-search.d.ts +58 -0
- package/lib/tools/x-search.js +197 -0
- package/lib/translate/anthropic.d.ts +180 -0
- package/lib/translate/anthropic.js +534 -0
- package/lib/translate/antigravity-images.d.ts +11 -0
- package/lib/translate/antigravity-images.js +62 -0
- package/lib/translate/antigravity-schema.d.ts +4 -0
- package/lib/translate/antigravity-schema.js +145 -0
- package/lib/translate/antigravity-thinking.d.ts +5 -0
- package/lib/translate/antigravity-thinking.js +44 -0
- package/lib/translate/antigravity.d.ts +120 -0
- package/lib/translate/antigravity.js +412 -0
- package/lib/translate/chat-completions.d.ts +120 -0
- package/lib/translate/chat-completions.js +382 -0
- package/lib/translate/resolved.d.ts +98 -0
- package/lib/translate/resolved.js +186 -0
- package/lib/translate/responses.d.ts +192 -0
- package/lib/translate/responses.js +443 -0
- package/lib/translate/sse.d.ts +21 -0
- package/lib/translate/sse.js +62 -0
- package/lib/usage/headers.d.ts +21 -0
- package/lib/usage/headers.js +64 -0
- package/lib/usage/pace.d.ts +53 -0
- package/lib/usage/pace.js +48 -0
- package/lib/usage/service.d.ts +64 -0
- package/lib/usage/service.js +104 -0
- package/lib/usage-providers/common.d.ts +23 -0
- package/lib/usage-providers/common.js +28 -0
- package/lib/usage-providers/index.d.ts +42 -0
- package/lib/usage-providers/index.js +71 -0
- package/lib/usage-providers/keys.d.ts +11 -0
- package/lib/usage-providers/keys.js +52 -0
- package/lib/usage-providers/kimi.d.ts +4 -0
- package/lib/usage-providers/kimi.js +52 -0
- package/lib/usage-providers/ollama-cloud.d.ts +4 -0
- package/lib/usage-providers/ollama-cloud.js +42 -0
- package/lib/usage-providers/zai.d.ts +5 -0
- package/lib/usage-providers/zai.js +53 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +115 -4
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Kimi Code usage from `/coding/v1/usages`. */
|
|
2
|
+
import { monthBefore } from '../providers/copilot.js';
|
|
3
|
+
import { bearerJson, clampPercent, finite, isRecord, KeyRejectedError, timestamp } from './common.js';
|
|
4
|
+
/** Which host serves a key is not documented, so the second is tried when the first rejects it. */
|
|
5
|
+
const URLS = ['https://api.kimi.com/coding/v1/usages', 'https://api.kimi.ai/coding/v1/usages'];
|
|
6
|
+
const HOUR_MS = 3_600_000;
|
|
7
|
+
const RATIOS = [
|
|
8
|
+
{ key: 'limit_5h', kind: 'session', durationMs: 5 * HOUR_MS },
|
|
9
|
+
{ key: 'limit_7d', kind: 'weekly', durationMs: 7 * 24 * HOUR_MS },
|
|
10
|
+
{ key: 'limit_month_total', kind: 'other', durationMs: undefined },
|
|
11
|
+
];
|
|
12
|
+
export function parseKimiUsage(payload) {
|
|
13
|
+
const usages = isRecord(payload) && isRecord(payload.usages) ? payload.usages : {};
|
|
14
|
+
const windows = [];
|
|
15
|
+
for (const { key, kind, durationMs } of RATIOS) {
|
|
16
|
+
const entry = usages[key];
|
|
17
|
+
if (!isRecord(entry))
|
|
18
|
+
continue;
|
|
19
|
+
const ratio = finite(entry.used_ratio);
|
|
20
|
+
if (ratio === undefined)
|
|
21
|
+
continue;
|
|
22
|
+
const resetsAt = timestamp(entry.reset_time);
|
|
23
|
+
const length = durationMs ?? (resetsAt === undefined ? undefined : monthBefore(resetsAt));
|
|
24
|
+
windows.push({
|
|
25
|
+
kind, usedPercent: clampPercent(ratio * 100),
|
|
26
|
+
...length === undefined ? {} : { durationMs: length },
|
|
27
|
+
...resetsAt === undefined ? {} : { resetsAt },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return windows;
|
|
31
|
+
}
|
|
32
|
+
export const kimi = {
|
|
33
|
+
id: 'kimi',
|
|
34
|
+
name: 'Kimi Code',
|
|
35
|
+
async fetchUsage(key, fetchFn, signal) {
|
|
36
|
+
let rejected;
|
|
37
|
+
for (const url of URLS) {
|
|
38
|
+
try {
|
|
39
|
+
const windows = parseKimiUsage(await bearerJson('Kimi', url, key, fetchFn, signal));
|
|
40
|
+
if (windows.length === 0)
|
|
41
|
+
throw new Error('Kimi usage data could not be parsed');
|
|
42
|
+
return { supported: true, windows };
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (!(error instanceof KeyRejectedError))
|
|
46
|
+
throw error;
|
|
47
|
+
rejected = error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`${rejected?.message ?? 'Kimi rejected the key'}. It may not be a Kimi Code key.`);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Ollama Cloud usage from `ollama.com/api/balance`, with the plan from `/api/me`. */
|
|
2
|
+
import { monthBefore } from '../providers/copilot.js';
|
|
3
|
+
import { bearerJson, clampPercent, finite, isRecord, timestamp } from './common.js';
|
|
4
|
+
const BALANCE_URL = 'https://ollama.com/api/balance';
|
|
5
|
+
const ME_URL = 'https://ollama.com/api/me';
|
|
6
|
+
export function parseOllamaUsage(payload) {
|
|
7
|
+
const included = isRecord(payload) && isRecord(payload.included) ? payload.included : {};
|
|
8
|
+
const windows = [];
|
|
9
|
+
const allowance = finite(included.allowance_usd);
|
|
10
|
+
const balance = finite(included.balance_usd);
|
|
11
|
+
if (allowance !== undefined && allowance > 0 && balance !== undefined) {
|
|
12
|
+
const resetsAt = timestamp(isRecord(included.period) ? included.period.until : undefined);
|
|
13
|
+
windows.push({
|
|
14
|
+
kind: 'other', usedPercent: clampPercent((allowance - balance) / allowance * 100),
|
|
15
|
+
...resetsAt === undefined ? {} : { resetsAt, durationMs: monthBefore(resetsAt) },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
for (const [name, kind] of [['session', 'session'], ['weekly', 'weekly']]) {
|
|
19
|
+
const limit = included[name];
|
|
20
|
+
if (!isRecord(limit))
|
|
21
|
+
continue;
|
|
22
|
+
const remaining = finite(limit.remaining_percent);
|
|
23
|
+
if (remaining === undefined)
|
|
24
|
+
continue;
|
|
25
|
+
const resetsAt = timestamp(limit.resets_at);
|
|
26
|
+
windows.push({ kind, usedPercent: clampPercent(100 - remaining), ...resetsAt === undefined ? {} : { resetsAt } });
|
|
27
|
+
}
|
|
28
|
+
return windows;
|
|
29
|
+
}
|
|
30
|
+
export const ollamaCloud = {
|
|
31
|
+
id: 'ollama-cloud',
|
|
32
|
+
name: 'Ollama Cloud',
|
|
33
|
+
async fetchUsage(key, fetchFn, signal) {
|
|
34
|
+
const windows = parseOllamaUsage(await bearerJson('Ollama Cloud', BALANCE_URL, key, fetchFn, signal));
|
|
35
|
+
if (windows.length === 0)
|
|
36
|
+
throw new Error('Ollama Cloud usage data could not be parsed');
|
|
37
|
+
// The plan name is optional: a failure here drops the label, not the reading.
|
|
38
|
+
const plan = await bearerJson('Ollama Cloud', ME_URL, key, fetchFn, signal, 'POST')
|
|
39
|
+
.then(body => isRecord(body) && typeof body.Plan === 'string' && body.Plan !== '' ? body.Plan : undefined, () => undefined);
|
|
40
|
+
return { supported: true, windows, ...plan === undefined ? {} : { plan } };
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Z.ai coding plan usage from `api.z.ai/api/monitor/usage/quota/limit`. */
|
|
2
|
+
import type { ProviderUsage } from '../providers/common.js';
|
|
3
|
+
import type { KeyProvider } from './common.js';
|
|
4
|
+
export declare function parseZaiUsage(payload: unknown): ProviderUsage;
|
|
5
|
+
export declare const zai: KeyProvider;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { bearerJson, clampPercent, finite, isRecord, timestamp } from './common.js';
|
|
2
|
+
const URL = 'https://api.z.ai/api/monitor/usage/quota/limit';
|
|
3
|
+
const HOUR_MS = 3_600_000;
|
|
4
|
+
const DAY_MS = 24 * HOUR_MS;
|
|
5
|
+
/** Z.ai's `unit` codes for a token window, as the length of one unit. */
|
|
6
|
+
const UNIT_MS = { 3: HOUR_MS, 6: 7 * DAY_MS };
|
|
7
|
+
export function parseZaiUsage(payload) {
|
|
8
|
+
if (!isRecord(payload))
|
|
9
|
+
throw new Error('Z.ai returned no object');
|
|
10
|
+
// A bad key or missing plan arrives as HTTP 200 with `success: false`.
|
|
11
|
+
const code = payload.code;
|
|
12
|
+
if (payload.success === false || (code !== undefined && code !== null && code !== 200)) {
|
|
13
|
+
throw new Error(typeof payload.msg === 'string' && payload.msg !== '' ? payload.msg : `Z.ai error ${String(code)}`);
|
|
14
|
+
}
|
|
15
|
+
const data = isRecord(payload.data) ? payload.data : {};
|
|
16
|
+
const limits = Array.isArray(data.limits) ? data.limits : [];
|
|
17
|
+
const windows = [];
|
|
18
|
+
for (const limit of limits) {
|
|
19
|
+
if (!isRecord(limit))
|
|
20
|
+
continue;
|
|
21
|
+
const percent = finite(limit.percentage);
|
|
22
|
+
if (percent === undefined)
|
|
23
|
+
continue;
|
|
24
|
+
const resetsAt = timestamp(limit.nextResetTime);
|
|
25
|
+
if (limit.type === 'TIME_LIMIT') {
|
|
26
|
+
windows.push({ kind: 'other', scope: 'MCP', usedPercent: clampPercent(percent), durationMs: 30 * DAY_MS, ...resetsAt === undefined ? {} : { resetsAt } });
|
|
27
|
+
}
|
|
28
|
+
else if (limit.type === 'TOKENS_LIMIT' || limit.type === 'CREDIT_LIMIT') {
|
|
29
|
+
const unit = finite(limit.unit);
|
|
30
|
+
const number = finite(limit.number);
|
|
31
|
+
const unitMs = unit === undefined ? undefined : UNIT_MS[unit];
|
|
32
|
+
const durationMs = unitMs === undefined || number === undefined || number <= 0 ? undefined : unitMs * number;
|
|
33
|
+
const used = finite(limit.currentValue);
|
|
34
|
+
const total = finite(limit.usage);
|
|
35
|
+
windows.push({
|
|
36
|
+
kind: durationMs === 5 * HOUR_MS ? 'session' : durationMs === 7 * DAY_MS ? 'weekly' : 'other',
|
|
37
|
+
usedPercent: clampPercent(percent),
|
|
38
|
+
...durationMs === undefined ? {} : { durationMs },
|
|
39
|
+
...resetsAt === undefined ? {} : { resetsAt },
|
|
40
|
+
...used === undefined || total === undefined ? {} : { used, limit: total },
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const plan = typeof data.level === 'string' && data.level !== '' ? data.level : undefined;
|
|
45
|
+
return { supported: true, windows, ...plan === undefined ? {} : { plan } };
|
|
46
|
+
}
|
|
47
|
+
export const zai = {
|
|
48
|
+
id: 'zai',
|
|
49
|
+
name: 'Z.ai',
|
|
50
|
+
async fetchUsage(key, fetchFn, signal) {
|
|
51
|
+
return parseZaiUsage(await bearerJson('Z.ai', URL, key, fetchFn, signal));
|
|
52
|
+
},
|
|
53
|
+
};
|
package/locale/en.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,117 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-subscription-usage",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "ChatGPT (Codex), Claude, Grok, GitHub Copilot and Google Antigravity subscriptions as rows on the DSH Models page, with pace-aware usage meters",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Parth Patel <pp542004@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/P4rthPat3l/dsh-plugin-subscription-usage.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/P4rthPat3l/dsh-plugin-subscription-usage#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/P4rthPat3l/dsh-plugin-subscription-usage/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"deepseek-harness",
|
|
17
|
+
"dsh-plugin",
|
|
18
|
+
"llm",
|
|
19
|
+
"oauth",
|
|
20
|
+
"subscriptions",
|
|
21
|
+
"usage"
|
|
22
|
+
],
|
|
23
|
+
"type": "module",
|
|
24
|
+
"packageManager": "pnpm@10.26.2",
|
|
25
|
+
"main": "lib/index.js",
|
|
26
|
+
"types": "lib/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./lib/index.d.ts",
|
|
30
|
+
"default": "./lib/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./client": {
|
|
33
|
+
"types": "./lib/client/index.d.ts",
|
|
34
|
+
"default": "./lib/client.js"
|
|
35
|
+
},
|
|
36
|
+
"./locale/*.json": "./locale/*.json",
|
|
37
|
+
"./icon": "./icon.svg",
|
|
38
|
+
"./package.json": "./package.json"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"lib",
|
|
42
|
+
"cordis.patch.yml",
|
|
43
|
+
"locale",
|
|
44
|
+
"icon.svg"
|
|
45
|
+
],
|
|
46
|
+
"dsh": {
|
|
47
|
+
"bundle": {
|
|
48
|
+
"patch": "./cordis.patch.yml"
|
|
49
|
+
},
|
|
50
|
+
"client": {
|
|
51
|
+
"platform": "web",
|
|
52
|
+
"inject": [
|
|
53
|
+
"@deepseek-ai/dsh-client-ui-renderer",
|
|
54
|
+
"@deepseek-ai/dsh-client-ui-settings",
|
|
55
|
+
"@deepseek-ai/dsh-client-ui-settings-models",
|
|
56
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
57
|
+
"@deepseek-ai/dsh-client-locale"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsc && tsdown",
|
|
63
|
+
"test": "tsc -p tsconfig.test.json && node --test \"lib-test/test/**/*.spec.js\"",
|
|
64
|
+
"prepare": "tsdown -c tsdown.prepare.config.ts"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"@deepseek-ai/cordis": "^4.0.1 || 4.0.5-alpha.1 || 4.0.5-alpha.2",
|
|
68
|
+
"@deepseek-ai/dsh-attachment": ">=0.2.2-rc.1",
|
|
69
|
+
"@deepseek-ai/dsh-home-paths": ">=0.2.2-rc.1",
|
|
70
|
+
"@deepseek-ai/dsh-llm": ">=0.2.2-rc.1",
|
|
71
|
+
"@deepseek-ai/dsh-tools": ">=0.2.2-rc.1",
|
|
72
|
+
"@deepseek-ai/dsh-web": ">=0.2.2-rc.1",
|
|
73
|
+
"@deepseek-ai/schemastery": "^3.18.1 || 3.18.5-alpha.1 || 3.18.5-alpha.2"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@deepseek-ai/cordis": "4.0.5",
|
|
77
|
+
"@deepseek-ai/cordis-plugin-loader": "1.1.0",
|
|
78
|
+
"@deepseek-ai/dsh-agent": "0.2.2-rc.1",
|
|
79
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.2-rc.1",
|
|
80
|
+
"@deepseek-ai/dsh-attachment": "0.2.2-rc.1",
|
|
81
|
+
"@deepseek-ai/dsh-client-connection": "0.2.2-rc.1",
|
|
82
|
+
"@deepseek-ai/dsh-client-locale": "0.2.2-rc.1",
|
|
83
|
+
"@deepseek-ai/dsh-client-ui-commands": "0.2.2-rc.1",
|
|
84
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.2-rc.1",
|
|
85
|
+
"@deepseek-ai/dsh-client-ui-layout": "0.2.2-rc.1",
|
|
86
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.2-rc.1",
|
|
87
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.1",
|
|
88
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.2-rc.1",
|
|
89
|
+
"@deepseek-ai/dsh-client-ui-settings-models": "0.2.2-rc.1",
|
|
90
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.2-rc.1",
|
|
91
|
+
"@deepseek-ai/dsh-home-paths": "0.2.2-rc.1",
|
|
92
|
+
"@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
|
|
93
|
+
"@deepseek-ai/dsh-llm": "0.2.2-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-scope": "0.2.2-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-session": "0.2.2-rc.1",
|
|
96
|
+
"@deepseek-ai/dsh-session-projection": "0.2.2-rc.1",
|
|
97
|
+
"@deepseek-ai/dsh-settings": "0.2.2-rc.1",
|
|
98
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.2-rc.1",
|
|
99
|
+
"@deepseek-ai/dsh-tools": "0.2.2-rc.1",
|
|
100
|
+
"@deepseek-ai/dsh-user-approval": "0.2.2-rc.1",
|
|
101
|
+
"@deepseek-ai/dsh-util-values": "0.2.2-rc.1",
|
|
102
|
+
"@deepseek-ai/dsh-web": "0.2.2-rc.1",
|
|
103
|
+
"@deepseek-ai/schemastery": "3.18.5",
|
|
104
|
+
"@types/node": "^24.0.0",
|
|
105
|
+
"@types/react": "~18.3.1",
|
|
106
|
+
"@types/react-dom": "~18.3.7",
|
|
107
|
+
"@types/semver": "^7.8.0",
|
|
108
|
+
"react": "^18.2.0",
|
|
109
|
+
"react-dom": "^18.2.0",
|
|
110
|
+
"semver": "^7.8.5",
|
|
111
|
+
"tsdown": "^0.15.0",
|
|
112
|
+
"typescript": "^5.8.0"
|
|
113
|
+
},
|
|
114
|
+
"dependencies": {
|
|
115
|
+
"undici": "^7.0.0"
|
|
116
|
+
}
|
|
117
|
+
}
|