@kenz1117/dsh-ui-usage-billing 1.5.0-alpha.2 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/lib/client.js +4 -4
- package/lib/index.js +230 -77
- package/lib/types/aggregate.d.ts +52 -2
- package/lib/types/client/UsageBilling.d.ts +11 -0
- package/lib/types/client/export.d.ts +7 -1
- package/lib/types/client/live-cost.d.ts +13 -3
- package/lib/types/client/locales.d.ts +1 -1
- package/lib/types/client/usage-billing-settings.d.ts +3 -1
- package/package.json +33 -31
|
@@ -18,6 +18,12 @@ export interface SessionExportRow {
|
|
|
18
18
|
id: string;
|
|
19
19
|
title?: string;
|
|
20
20
|
cwd?: string;
|
|
21
|
+
/** 直接父会话 id(仅子智能体会话携带);顶层会话缺失。 */
|
|
22
|
+
parentId?: string;
|
|
23
|
+
/** 后代子会话费用合计(人民币元);无后代时缺失。 */
|
|
24
|
+
subCost?: number;
|
|
25
|
+
/** 后代子会话调用数;无后代时缺失。 */
|
|
26
|
+
subCalls?: number;
|
|
21
27
|
calls: number;
|
|
22
28
|
cost: number;
|
|
23
29
|
lastActive: number;
|
|
@@ -26,7 +32,7 @@ export interface SessionExportRow {
|
|
|
26
32
|
export declare function dayRowsCsv(byDay: Record<string, DayExportRow>): string;
|
|
27
33
|
/** 按站点(中转站/直连/未知路由)CSV:站点,类别,调用,费用(元)。 */
|
|
28
34
|
export declare function siteRowsCsv(bySite: Record<string, DayExportRow>): string;
|
|
29
|
-
/** 按会话 CSV:会话 id,标题,项目,调用,费用(元),最后活跃(ISO)。 */
|
|
35
|
+
/** 按会话 CSV:会话 id,标题,项目,调用,费用(元),最后活跃(ISO),父会话,子会话调用,子会话费用(元)。 */
|
|
30
36
|
export declare function sessionRowsCsv(rows: readonly SessionExportRow[]): string;
|
|
31
37
|
/** 导出文件名:带日期范围(usage-2026-08-01_2026-08-22.csv);无日期时只带前缀。 */
|
|
32
38
|
export declare function exportFileName(prefix: string, ext: 'csv' | 'json', dates: readonly string[]): string;
|
|
@@ -22,6 +22,7 @@ export interface LiveStats {
|
|
|
22
22
|
bySession?: readonly {
|
|
23
23
|
id: string;
|
|
24
24
|
cost: number;
|
|
25
|
+
subCost?: number;
|
|
25
26
|
}[];
|
|
26
27
|
byTurn?: readonly {
|
|
27
28
|
sessionId: string;
|
|
@@ -40,13 +41,22 @@ export interface QuotaSlice {
|
|
|
40
41
|
}[];
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
|
-
* 当前会话累计费用:bySession 里会话 id
|
|
44
|
-
*
|
|
44
|
+
* 当前会话累计费用:bySession 里会话 id 匹配的那行(含后代子智能体费用
|
|
45
|
+
* subCost——子智能体是宿主的独立会话,其消耗按父链并入本对话的口径);
|
|
46
|
+
* 缺省为 0。导出供测试:纯函数。
|
|
45
47
|
* @param stats - 薄统计切片。
|
|
46
48
|
* @param sessionId - 当前会话 id。
|
|
47
|
-
* @returns
|
|
49
|
+
* @returns 该会话累计费用(人民币元,含子智能体)。
|
|
48
50
|
*/
|
|
49
51
|
export declare function sessionCostOf(stats: LiveStats | null, sessionId: string | undefined): number;
|
|
52
|
+
/**
|
|
53
|
+
* 当前会话的后代子智能体费用(bySession 行的 subCost):供「含子」拆分展示,
|
|
54
|
+
* 让胶囊上的总额与本体会话费用对得上账。导出供测试:纯函数。
|
|
55
|
+
* @param stats - 薄统计切片。
|
|
56
|
+
* @param sessionId - 当前会话 id。
|
|
57
|
+
* @returns 后代子会话费用合计(人民币元);无则 0。
|
|
58
|
+
*/
|
|
59
|
+
export declare function sessionSubCostOf(stats: LiveStats | null, sessionId: string | undefined): number;
|
|
50
60
|
/**
|
|
51
61
|
* 当前轮费用:byTurn 里该会话最新一轮的 cost;缺省为 0。
|
|
52
62
|
* byTurn 服务端按起始时间倒序下发,但求 max(turn) 更稳健(不依赖顺序)。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Locale dictionaries for the usage billing surface. */
|
|
2
|
-
export type UsageBillingKey = 'title' | 'cost' | 'todayCost' | 'monthCost' | 'yearCost' | 'monthProjected' | 'liveTurn' | 'liveSession' | 'calls' | 'cacheHitRate' | 'tokens' | 'inputTokens' | 'outputTokens' | 'avgCost' | 'kpiRange' | 'avgRangeToday' | 'avgRange7d' | 'avgRangeWeek' | 'avgRangeMonth' | 'avgRangeAll' | 'trend' | 'trend7d' | 'trend30d' | 'trendMetric' | 'trendMetricCost' | 'trendMetricTokens' | 'pricingSearch' | 'bandPinHint' | 'trendEmpty' | 'trendTotal' | 'roundsUnit' | 'healthModelsLive' | 'healthVendorsDown' | 'healthVendorsUnavailable' | 'budget' | 'budgetRemain' | 'budgetAmount' | 'budgetSummary' | 'sessions' | 'sessionTitle' | 'lastActive' | 'sessionOverflow' | 'budgetTierBody' | 'models' | 'providerBilling' | 'channelUnknown' | 'directTag' | 'relayTag' | 'unknownTag' | 'unknownChannelHint' | 'planCountUnit' | 'actual' | 'pricing' | 'input' | 'output' | 'cacheHit' | 'peak' | 'offPeak' | 'flat' | 'band' | 'close' | 'footer' | 'footerCredit' | 'lastUpdated' | 'noData' | 'todayRate' | 'rateLive' | 'rateBuiltin' | 'pricingSyncedAt' | 'pricingSyncNow' | 'pricingSyncing' | 'promoBadge' | 'promoUntil' | 'promoOpenEnded' | 'pricingTip' | 'pricingUnit' | 'pricingNotes' | 'ubPeak' | 'ubOff' | 'ubStd' | 'peakBand' | 'pricingSource' | 'noteCache' | 'noteBand' | 'noteSource' | 'balance' | 'recharge' | 'rechargeHint' | 'balanceUnconfigured' | 'balanceUnauthorized' | 'balanceUnreachable' | 'uncatalogued' | 'estimatedPricing' | 'balanceDays' | 'balanceLowBody' | 'reconcileDrift' | 'reconcileDismiss' | 'subscriptionNotConfigured' | 'subscriptionUnauthorized' | 'subscriptionUnavailable' | 'subscriptionInvalid' | 'subscriptionRateLimited' | 'subscriptionSession' | 'subscriptionWeekly' | 'subscriptionMonthly' | 'subscriptionBilling' | 'subscriptionRemaining' | 'subscriptionExhausted' | 'subscriptionReset' | 'subscriptionNoApi' | 'floatWindow' | 'floatModeCombined' | 'floatModeSubscription' | 'floatMode' | 'floatTargets' | 'floatWindowHint' | 'floatPrimaryToday' | 'floatPrimaryWeek' | 'floatPrimaryMonth' | 'floatNoTargets' | 'floatNoTargetsHint' | 'cardDisplay' | 'cardDisplayHint' | 'cardMetric' | 'cardMetricMoney' | 'cardMetricTokens' | 'cardSpan' | 'cardSpanDay' | 'cardSpanWeek' | 'cardSpanMonth' | 'triggerMonthTokens' | 'triggerTodayTokens' | 'triggerWeekTokens' | 'subscriptionsStale' | 'staleLedgerNotice' | 'unreadableNotice' | 'unreadableFormatNotice' | 'unreadableNoLedgerNotice' | 'tokenCacheWrite' | 'toolRank' | 'toolName' | 'userPrices' | 'userPricesHint' | 'userPriceSave' | 'userPriceModel' | 'userPriceSource' | 'userPriceSourceHint' | 'userPriceOffPeak' | 'userPriceNormal' | 'userPriceCurrency' | 'userPriceAdd' | 'userPriceRemoveSelected' | 'userPriceSelect' | 'sessionStaleBadge' | 'sessionUntitled' | 'heatmapLess' | 'heatmapMore' | 'currency' | 'currencyCny' | 'currencyUsd' | 'currencyEur' | 'language' | 'heatmap' | 'rounds' | 'roundsHint' | 'anomaly' | 'model' | 'thModel' | 'thInputMiss' | 'thInputHit' | 'costAbbr' | 'tabOverview' | 'tabTrends' | 'tabProviders' | 'tabPricing' | 'tabSettings' | 'budgetHint' | 'peakAlertHint' | 'peakAlertDescPeak' | 'peakAlertDescOff' | 'peakAlertDescPeakZhipu' | 'peakAlertDescOffZhipu' | 'export' | 'exportCsvDay' | 'exportCsvSession' | 'exportJson' | 'peakShare' | 'peakSharePerCall' | 'offPeakSavings' | 'perfMax' | 'weekCost' | 'roleCost' | 'roleUser' | 'roleAssistant' | 'roleTool' | 'roleHint' | 'tierPeak' | 'tierOff' | 'tierToPeak' | 'tierToOff' | 'tierAlertEnterPeak' | 'tierAlertEnterOff' | 'tierAlertEnterPeakZhipu' | 'tierAlertEnterOffZhipu' | 'peakAlertTitlePeak' | 'peakAlertTitleOff' | 'peakAlert' | 'peakAlertLeadMin' | 'peakAlertPos' | 'peakAlertMode' | 'peakAlertPosCorner' | 'peakAlertPosCenter' | 'peakAlertModePeak' | 'peakAlertModeOff' | 'peakAlertModeBoth' | 'peakAlertWebNotify' | 'peakAlertPreview' | 'planTypeCode' | 'planTypeToken' | 'subscriptionFeePerMonth' | 'triggerToday' | 'triggerMonth' | 'subscriptionTag' | 'cellEstimateHint' | 'free' | 'perfSamples' | 'perfTtft' | 'perfP50' | 'perfP90' | 'perfTps' | 'perfLatency' | 'perfEstimated' | 'perfEmpty' | 'perfTpsUnit' | 'perfTitle' | 'perfHint' | 'perfAll' | 'perfChartEmpty' | 'heatmapYear' | 'heatmapHalf' | 'heatmapMonth' | 'metricCost' | 'metricTokens' | 'heatmapTotal' | 'activeDays' | 'streakDays' | 'subscriptionAutoDetect' | 'pluginAuthor' | 'pluginRepository' | 'pluginNpm' | 'pluginLicense' | 'tabToken' | 'tokenExport' | 'tokenExportCsv' | 'tokenReasoningShare' | 'tokenReasoningShort' | 'tokenIo' | 'tokenPeak' | 'densityLabel' | 'densityHint' | 'densityCompact' | 'densityDefault' | 'densityComfortable' | 'motionLabel' | 'motionHint' | 'motionOff' | 'motionSubtle' | 'motionRich' | 'settingsNavBudget' | 'settingsNavAlert' | 'settingsNavDisplay' | 'settingsNavAdvanced' | 'settingsNavAbout' | 'settingsSectionDisplay' | 'emptyHint' | 'tokenDaily' | 'tokenByModel' | 'tokenMiss' | 'tokenHit' | 'tokenOutput' | 'tokenViewStructure' | 'tokenViewModel' | 'tokenHitShort' | 'tokenMissShort' | 'tokenTotal' | 'tokenShare' | 'usageStatsTool' | 'usageStatsToolHint' | 'balanceGranted' | 'balanceTopped' | 'balanceDaily' | 'balanceDaysLong' | 'balanceDaysUnit' | 'popTodayModel' | 'popNoConsumption' | 'popTitle' | 'popDirectLead' | 'popSubLead' | 'unpricedHint' | 'searchEstimateHint' | 'siteListDisplay' | 'siteListDisplayHint' | 'liveCostBar' | 'liveCostBarHint' | 'liveCostBarPosition' | 'liveCostBarPosBelow' | 'liveCostBarPosAbove' | 'liveCostBarPosToolbar' | 'exportCsvSite' | 'panelRelayQuota' | 'relayBalance' | 'relayNoQuota' | 'relayWindowUsed' | 'relayKindNewApi' | 'relayKindSub2Api' | 'relayKindUnknown' | 'expandAll' | 'collapseAll' | 'todayOnly' | 'todayNoConsumption';
|
|
2
|
+
export type UsageBillingKey = 'title' | 'cost' | 'todayCost' | 'monthCost' | 'yearCost' | 'monthProjected' | 'liveTurn' | 'liveSession' | 'liveSessionSub' | 'calls' | 'cacheHitRate' | 'tokens' | 'inputTokens' | 'outputTokens' | 'avgCost' | 'kpiRange' | 'avgRangeToday' | 'avgRange7d' | 'avgRangeWeek' | 'avgRangeMonth' | 'avgRangeAll' | 'trend' | 'trend7d' | 'trend30d' | 'trendMetric' | 'trendMetricCost' | 'trendMetricTokens' | 'pricingSearch' | 'bandPinHint' | 'trendEmpty' | 'trendTotal' | 'roundsUnit' | 'healthModelsLive' | 'healthVendorsDown' | 'healthVendorsUnavailable' | 'budget' | 'budgetRemain' | 'budgetAmount' | 'budgetSummary' | 'sessions' | 'sessionTitle' | 'lastActive' | 'sessionOverflow' | 'budgetTierBody' | 'models' | 'providerBilling' | 'channelUnknown' | 'directTag' | 'relayTag' | 'unknownTag' | 'unknownChannelHint' | 'planCountUnit' | 'actual' | 'pricing' | 'input' | 'output' | 'cacheHit' | 'peak' | 'offPeak' | 'flat' | 'band' | 'close' | 'footer' | 'footerCredit' | 'lastUpdated' | 'noData' | 'todayRate' | 'rateLive' | 'rateBuiltin' | 'pricingSyncedAt' | 'pricingSyncNow' | 'pricingSyncing' | 'promoBadge' | 'promoUntil' | 'promoOpenEnded' | 'pricingTip' | 'pricingUnit' | 'pricingNotes' | 'ubPeak' | 'ubOff' | 'ubStd' | 'peakBand' | 'pricingSource' | 'noteCache' | 'noteBand' | 'noteSource' | 'balance' | 'recharge' | 'rechargeHint' | 'balanceUnconfigured' | 'balanceUnauthorized' | 'balanceUnreachable' | 'uncatalogued' | 'estimatedPricing' | 'balanceDays' | 'balanceLowBody' | 'reconcileDrift' | 'reconcileDismiss' | 'subscriptionNotConfigured' | 'subscriptionUnauthorized' | 'subscriptionUnavailable' | 'subscriptionInvalid' | 'subscriptionRateLimited' | 'subscriptionSession' | 'subscriptionWeekly' | 'subscriptionMonthly' | 'subscriptionBilling' | 'subscriptionRemaining' | 'subscriptionExhausted' | 'subscriptionReset' | 'subscriptionNoApi' | 'floatWindow' | 'floatModeCombined' | 'floatModeSubscription' | 'floatMode' | 'floatTargets' | 'floatWindowHint' | 'floatPrimaryToday' | 'floatPrimaryWeek' | 'floatPrimaryMonth' | 'floatNoTargets' | 'floatNoTargetsHint' | 'cardDisplay' | 'cardDisplayHint' | 'cardMetric' | 'cardMetricMoney' | 'cardMetricTokens' | 'cardSpan' | 'cardSpanDay' | 'cardSpanWeek' | 'cardSpanMonth' | 'cardDeltaBadge' | 'cardDeltaShow' | 'cardDeltaHide' | 'triggerMonthTokens' | 'triggerTodayTokens' | 'triggerWeekTokens' | 'subscriptionsStale' | 'staleLedgerNotice' | 'unreadableNotice' | 'unreadableFormatNotice' | 'unreadableNoLedgerNotice' | 'tokenCacheWrite' | 'toolRank' | 'toolName' | 'userPrices' | 'userPricesHint' | 'userPriceSave' | 'userPriceModel' | 'userPriceSource' | 'userPriceSourceHint' | 'userPriceOffPeak' | 'userPriceNormal' | 'userPriceCurrency' | 'userPriceAdd' | 'userPriceRemoveSelected' | 'userPriceSelect' | 'sessionStaleBadge' | 'sessionUntitled' | 'sessionSubCost' | 'sessionSubCalls' | 'sessionSubRow' | 'heatmapLess' | 'heatmapMore' | 'currency' | 'currencyCny' | 'currencyUsd' | 'currencyEur' | 'language' | 'heatmap' | 'rounds' | 'roundsHint' | 'anomaly' | 'model' | 'thModel' | 'thInputMiss' | 'thInputHit' | 'costAbbr' | 'tabOverview' | 'tabTrends' | 'tabProviders' | 'tabPricing' | 'tabSettings' | 'budgetHint' | 'peakAlertHint' | 'peakAlertDescPeak' | 'peakAlertDescOff' | 'peakAlertDescPeakZhipu' | 'peakAlertDescOffZhipu' | 'export' | 'exportCsvDay' | 'exportCsvSession' | 'exportJson' | 'peakShare' | 'peakSharePerCall' | 'offPeakSavings' | 'perfMax' | 'weekCost' | 'roleCost' | 'roleUser' | 'roleAssistant' | 'roleTool' | 'roleHint' | 'tierPeak' | 'tierOff' | 'tierToPeak' | 'tierToOff' | 'tierAlertEnterPeak' | 'tierAlertEnterOff' | 'tierAlertEnterPeakZhipu' | 'tierAlertEnterOffZhipu' | 'peakAlertTitlePeak' | 'peakAlertTitleOff' | 'peakAlert' | 'peakAlertLeadMin' | 'peakAlertPos' | 'peakAlertMode' | 'peakAlertPosCorner' | 'peakAlertPosCenter' | 'peakAlertModePeak' | 'peakAlertModeOff' | 'peakAlertModeBoth' | 'peakAlertWebNotify' | 'peakAlertPreview' | 'planTypeCode' | 'planTypeToken' | 'subscriptionFeePerMonth' | 'triggerToday' | 'triggerMonth' | 'subscriptionTag' | 'cellEstimateHint' | 'free' | 'perfSamples' | 'perfTtft' | 'perfP50' | 'perfP90' | 'perfTps' | 'perfLatency' | 'perfEstimated' | 'perfEmpty' | 'perfTpsUnit' | 'perfTitle' | 'perfHint' | 'perfAll' | 'perfChartEmpty' | 'heatmapYear' | 'heatmapHalf' | 'heatmapMonth' | 'metricCost' | 'metricTokens' | 'heatmapTotal' | 'activeDays' | 'streakDays' | 'subscriptionAutoDetect' | 'pluginAuthor' | 'pluginRepository' | 'pluginNpm' | 'pluginLicense' | 'tabToken' | 'tokenExport' | 'tokenExportCsv' | 'tokenReasoningShare' | 'tokenReasoningShort' | 'tokenIo' | 'tokenPeak' | 'densityLabel' | 'densityHint' | 'densityCompact' | 'densityDefault' | 'densityComfortable' | 'motionLabel' | 'motionHint' | 'motionOff' | 'motionSubtle' | 'motionRich' | 'settingsNavBudget' | 'settingsNavAlert' | 'settingsNavDisplay' | 'settingsNavAdvanced' | 'settingsNavAbout' | 'settingsSectionDisplay' | 'emptyHint' | 'tokenDaily' | 'tokenByModel' | 'tokenMiss' | 'tokenHit' | 'tokenOutput' | 'tokenViewStructure' | 'tokenViewModel' | 'tokenHitShort' | 'tokenMissShort' | 'tokenTotal' | 'tokenShare' | 'usageStatsTool' | 'usageStatsToolHint' | 'balanceGranted' | 'balanceTopped' | 'balanceDaily' | 'balanceDaysLong' | 'balanceDaysUnit' | 'popTodayModel' | 'popNoConsumption' | 'popTitle' | 'popDirectLead' | 'popSubLead' | 'unpricedHint' | 'searchEstimateHint' | 'siteListDisplay' | 'siteListDisplayHint' | 'liveCostBar' | 'liveCostBarHint' | 'liveCostBarPosition' | 'liveCostBarPosBelow' | 'liveCostBarPosAbove' | 'liveCostBarPosToolbar' | 'exportCsvSite' | 'panelRelayQuota' | 'relayBalance' | 'relayNoQuota' | 'relayWindowUsed' | 'relayKindNewApi' | 'relayKindSub2Api' | 'relayKindUnknown' | 'expandAll' | 'collapseAll' | 'todayOnly' | 'todayNoConsumption';
|
|
3
3
|
export declare const NS = "usageBilling";
|
|
4
4
|
export declare const zh: Record<UsageBillingKey, string>;
|
|
5
5
|
export declare const en: Record<UsageBillingKey, string>;
|
|
@@ -54,8 +54,10 @@ export interface BillingCardPrefs {
|
|
|
54
54
|
metric: BillingCardMetric;
|
|
55
55
|
/** 主数字统计范围:今日 / 本周 / 本月(默认今日)。 */
|
|
56
56
|
span: BillingCardSpan;
|
|
57
|
+
/** 是否显示「今日环比」涨跌徽章(默认显示;issue #93:部分用户觉得红色横条太醒目)。 */
|
|
58
|
+
showDelta: boolean;
|
|
57
59
|
}
|
|
58
|
-
/** 默认计费卡偏好:花费金额 +
|
|
60
|
+
/** 默认计费卡偏好:花费金额 + 今日口径 + 显示环比徽章(保持 v1.5.0 行为)。 */
|
|
59
61
|
export declare const DEFAULT_BILLING_CARD_PREFS: BillingCardPrefs;
|
|
60
62
|
/** localStorage key(与 budget store 的 `dsh.ui-usage-billing.*` 命名空间一致)。 */
|
|
61
63
|
export declare const BILLING_CARD_STORAGE_KEY = "dsh.ui-usage-billing.card";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kenz1117/dsh-ui-usage-billing",
|
|
3
3
|
"description": "Usage billing dashboard for DeepSeek Harness: sidebar cost metrics plus a full dashboard modal, priced from a current multi-provider catalog with real usage aggregated from session logs.",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
7
7
|
"deepseek",
|
|
@@ -77,7 +77,8 @@
|
|
|
77
77
|
"0.2.0-rc.2": "compatible",
|
|
78
78
|
"0.2.1-alpha.1": "compatible",
|
|
79
79
|
"0.2.1-alpha.2": "compatible",
|
|
80
|
-
"0.2.1-alpha.3": "compatible"
|
|
80
|
+
"0.2.1-alpha.3": "compatible",
|
|
81
|
+
"0.2.1-rc.2": "compatible"
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
},
|
|
@@ -122,35 +123,36 @@
|
|
|
122
123
|
"@deepseek-ai/cordis": "*",
|
|
123
124
|
"@deepseek-ai/cordis-plugin-include": "^1.0.7",
|
|
124
125
|
"@deepseek-ai/cordis-plugin-loader": "^1.0.5",
|
|
125
|
-
"@deepseek-ai/dsh-api-gateway": "0.1
|
|
126
|
-
"@deepseek-ai/dsh-api-remotes": "0.1
|
|
127
|
-
"@deepseek-ai/dsh-api-session-controller": "0.1
|
|
128
|
-
"@deepseek-ai/dsh-atomic-write": "0.1
|
|
129
|
-
"@deepseek-ai/dsh-agent": "0.1
|
|
130
|
-
"@deepseek-ai/dsh-client-locale": "0.1
|
|
131
|
-
"@deepseek-ai/dsh-client-store": "0.1
|
|
132
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.1
|
|
133
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.1
|
|
134
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.1
|
|
135
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "0.1
|
|
136
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.1
|
|
137
|
-
"@deepseek-ai/dsh-credentials": "0.1
|
|
138
|
-
"@deepseek-ai/dsh-host-webserver": "0.1
|
|
139
|
-
"@deepseek-ai/dsh-home-paths": "0.1
|
|
140
|
-
"@deepseek-ai/dsh-invariants": "0.
|
|
141
|
-
"@deepseek-ai/dsh-
|
|
142
|
-
"@deepseek-ai/dsh-
|
|
143
|
-
"@deepseek-ai/dsh-
|
|
144
|
-
"@deepseek-ai/dsh-sandbox
|
|
145
|
-
"@deepseek-ai/dsh-
|
|
146
|
-
"@deepseek-ai/dsh-
|
|
147
|
-
"@deepseek-ai/dsh-session
|
|
148
|
-
"@deepseek-ai/dsh-
|
|
149
|
-
"@deepseek-ai/dsh-
|
|
150
|
-
"@deepseek-ai/dsh-
|
|
151
|
-
"@deepseek-ai/dsh-
|
|
152
|
-
"@deepseek-ai/dsh-
|
|
153
|
-
"@deepseek-ai/dsh-
|
|
126
|
+
"@deepseek-ai/dsh-api-gateway": "0.2.1-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.1-rc.2",
|
|
128
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-atomic-write": "0.2.1-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-agent": "0.2.1-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-client-locale": "0.2.1-rc.2",
|
|
132
|
+
"@deepseek-ai/dsh-client-store": "0.2.1-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "0.2.1-rc.2",
|
|
137
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.2",
|
|
138
|
+
"@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
|
|
139
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.1-rc.2",
|
|
140
|
+
"@deepseek-ai/dsh-home-paths": "0.2.1-rc.2",
|
|
141
|
+
"@deepseek-ai/dsh-invariants": "0.2.0-rc.2",
|
|
142
|
+
"@deepseek-ai/dsh-util-code-language": "0.2.1-rc.2",
|
|
143
|
+
"@deepseek-ai/dsh-llm": "0.2.1-rc.2",
|
|
144
|
+
"@deepseek-ai/dsh-ptc-runtime": "0.2.1-rc.2",
|
|
145
|
+
"@deepseek-ai/dsh-sandbox": "0.2.1-rc.2",
|
|
146
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
|
|
147
|
+
"@deepseek-ai/dsh-scope": "0.2.1-rc.2",
|
|
148
|
+
"@deepseek-ai/dsh-session": "0.2.1-rc.2",
|
|
149
|
+
"@deepseek-ai/dsh-session-persistence": "0.2.1-rc.2",
|
|
150
|
+
"@deepseek-ai/dsh-settings": "0.2.1-rc.2",
|
|
151
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
|
|
152
|
+
"@deepseek-ai/dsh-tools": "0.2.1-rc.2",
|
|
153
|
+
"@deepseek-ai/dsh-typert-protocol": "0.2.1-rc.2",
|
|
154
|
+
"@deepseek-ai/dsh-user-approval": "0.2.1-rc.2",
|
|
155
|
+
"@deepseek-ai/dsh-util-workspace-path": "0.2.1-rc.2",
|
|
154
156
|
"@deepseek-ai/schemastery": "^3.18.4",
|
|
155
157
|
"@shikijs/langs": "^4.3.1",
|
|
156
158
|
"@testing-library/dom": "^10.4.1",
|