@kenz1117/dsh-ui-usage-billing 1.4.3 → 1.4.4
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/lib/client.js +5 -5
- package/lib/index.js +665 -616
- package/lib/types/aggregate.d.ts +3 -2
- package/lib/types/builtin-catalog.d.ts +15 -0
- package/lib/types/client/TrendChart.d.ts +2 -1
- package/lib/types/client/heatmap.d.ts +12 -6
- package/lib/types/client/label-display.d.ts +19 -0
- package/lib/types/client/locales.d.ts +1 -1
- package/lib/types/client/pricing.d.ts +9 -6
- package/lib/types/client/round-chart.d.ts +1 -1
- package/package.json +1 -1
- package/lib/types/client/vendor-logos.d.ts +0 -12
package/lib/types/aggregate.d.ts
CHANGED
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
import { SessionLogOffset } from '@deepseek-ai/dsh-session/types';
|
|
14
14
|
import type { SessionEvent, SessionHeader, SessionId } from '@deepseek-ai/dsh-session/types';
|
|
15
15
|
import type { TokenUsage } from '@deepseek-ai/dsh-llm';
|
|
16
|
-
import {
|
|
17
|
-
|
|
16
|
+
import { resolveCatalogKey } from './client/pricing.ts';
|
|
17
|
+
import { BUILTIN_MODEL_KEY_ALIASES } from './builtin-catalog.ts';
|
|
18
|
+
export { BUILTIN_MODEL_KEY_ALIASES, resolveCatalogKey };
|
|
18
19
|
/**
|
|
19
20
|
* 走订阅套餐(coding / token plan / opencode 订阅)的 provider id:这些通道的
|
|
20
21
|
* 调用按套餐计费,不再按 token 计费,因此即使模型 id 与计费表撞名也一律豁免。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 内置价格目录与别名表的纯数据模块:只随 node 半构建发布(宿主聚合计价使用),
|
|
3
|
+
* 并经 /api/billing/pricing 下发给客户端注入——client bundle 不携带这份数据
|
|
4
|
+
* (瘦身:lib/client.js 约 -30 KiB)。条目结构与消费逻辑见 ./client/pricing.ts。
|
|
5
|
+
*/
|
|
6
|
+
import type { ModelEntry } from './client/pricing.ts';
|
|
7
|
+
export declare const BUILTIN_MODEL_CATALOG: readonly ModelEntry[];
|
|
8
|
+
/**
|
|
9
|
+
* 真实 provider model id → 计费目录键(`MODEL_CATALOG[].key`)的映射。未知 id
|
|
10
|
+
* 原样保留并落回 `other`(未知模型不估算费用)。聚合层(aggregate.ts)在折叠时
|
|
11
|
+
* 用同一张表把日志里的 model id 归并为目录键,客户端渲染(`modelOf`)也按它
|
|
12
|
+
* 解析,两侧共用一份映射,避免同一模型两侧不一致导致「未收录」。
|
|
13
|
+
*/
|
|
14
|
+
export declare const BUILTIN_MODEL_KEY_ALIASES: Readonly<Record<string, string>>;
|
|
15
|
+
//# sourceMappingURL=builtin-catalog.d.ts.map
|
|
@@ -40,10 +40,11 @@ export type TrendMetric = 'cost' | 'tokens';
|
|
|
40
40
|
* @param props.currency - display currency for the cost labels.
|
|
41
41
|
* @param props.metric - `cost` (stacked per-model CNY, default) or `tokens` (single-color total tokens).
|
|
42
42
|
*/
|
|
43
|
-
export declare function TrendChart({ data, models, currency, metric }: {
|
|
43
|
+
export declare function TrendChart({ data, models, currency, metric, t }: {
|
|
44
44
|
data: readonly TrendPoint[];
|
|
45
45
|
models?: readonly TrendSeriesModel[];
|
|
46
46
|
currency?: CostCurrency;
|
|
47
47
|
metric?: TrendMetric;
|
|
48
|
+
t?: (key: 'trendEmpty' | 'trendTotal' | 'calls') => string;
|
|
48
49
|
}): React.ReactNode;
|
|
49
50
|
//# sourceMappingURL=TrendChart.d.ts.map
|
|
@@ -20,18 +20,24 @@ export interface HeatmapDay {
|
|
|
20
20
|
value: number;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Render the month or
|
|
24
|
-
* @param props.days - daily
|
|
25
|
-
*
|
|
23
|
+
* Render the month or week-column heatmap.
|
|
24
|
+
* @param props.days - daily value rows (keys are `YYYY-MM-DD`); the value's
|
|
25
|
+
* meaning follows `props.unit` (CNY cost or raw token count).
|
|
26
|
+
* @param props.currency - display currency for the hover amount (cost unit).
|
|
26
27
|
* @param props.now - anchor date (defaults to today); injectable for tests.
|
|
27
28
|
* @param props.t - locale function (used for the legend labels).
|
|
28
|
-
* @param props.range - `month` (calendar month)
|
|
29
|
+
* @param props.range - `month` (calendar month), `half` (last 26 weeks, large
|
|
30
|
+
* cells — the screenshot-friendly Codex-style view) or `year` (last 52
|
|
31
|
+
* weeks, GitHub style).
|
|
32
|
+
* @param props.unit - value metric: `cost` (default, money formatting) or
|
|
33
|
+
* `tokens` (compact token formatting).
|
|
29
34
|
*/
|
|
30
|
-
export declare function UsageHeatmap({ days, currency, now, t, range }: {
|
|
35
|
+
export declare function UsageHeatmap({ days, currency, now, t, range, unit }: {
|
|
31
36
|
days: readonly HeatmapDay[];
|
|
32
37
|
currency: CostCurrency;
|
|
33
38
|
now?: Date;
|
|
34
|
-
range?: 'month' | 'year';
|
|
39
|
+
range?: 'month' | 'half' | 'year';
|
|
40
|
+
unit?: 'cost' | 'tokens';
|
|
35
41
|
t: (key: 'costAbbr' | 'noData' | 'heatmapLess' | 'heatmapMore') => string;
|
|
36
42
|
}): React.ReactNode;
|
|
37
43
|
//# sourceMappingURL=heatmap.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 费率表附加行文案本地化:目录条目里的 `extraRows` `label`/`note`(`显式缓存创建`、
|
|
3
|
+
* `长期半价` 等)是数据层的中文字面量,同时充当渲染 key。与 provider-display.ts
|
|
4
|
+
* 同样的做法:不改动数据层形态,只在渲染层提供一张「中文文案 → 英文文案」映射,
|
|
5
|
+
* 未收录的字符串原样返回。集中一处便于统一管理与将来扩展第三语言。
|
|
6
|
+
*/
|
|
7
|
+
type LabelLang = 'zh' | 'en';
|
|
8
|
+
/**
|
|
9
|
+
* 把费率表附加行的 label/note 按界面语言本地化:中文映射成英文,其余原样返回。
|
|
10
|
+
* 仅在渲染层调用,不影响数据层的中文字面量与 key 匹配。
|
|
11
|
+
* @param text - 数据层原始文案(可能为 undefined,例如没有 note 的行)。
|
|
12
|
+
* @param lang - 当前界面语言。
|
|
13
|
+
* @returns 本地化后的文案;`undefined` 原样传回。
|
|
14
|
+
*/
|
|
15
|
+
export declare function localizeRowLabel(text: string, lang: LabelLang): string;
|
|
16
|
+
export declare function localizeRowLabel(text: undefined, lang: LabelLang): undefined;
|
|
17
|
+
export declare function localizeRowLabel(text: string | undefined, lang: LabelLang): string | undefined;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=label-display.d.ts.map
|
|
@@ -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' | 'trendEmpty' | 'budget' | 'budgetRemain' | 'budgetAmount' | 'budgetSummary' | 'sessions' | 'sessionTitle' | 'lastActive' | 'sessionOverflow' | 'budgetTierBody' | 'models' | 'providerBilling' | 'channelUnknown' | 'directTag' | 'relayTag' | 'unknownTag' | 'planCountUnit' | 'actual' | 'pricing' | 'input' | 'output' | 'cacheHit' | 'peak' | 'offPeak' | 'flat' | 'band' | 'close' | 'footer' | 'footerCredit' | 'lastUpdated' | 'noData' | 'todayRate' | 'rateLive' | 'rateBuiltin' | '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' | 'tokenCacheWrite' | 'toolRank' | 'toolName' | 'userPrices' | 'userPricesHint' | 'userPriceSave' | 'userPriceModel' | 'userPriceSource' | 'userPriceSourceHint' | 'userPriceOffPeak' | 'userPriceNormal' | 'userPriceCurrency' | 'userPriceAdd' | 'userPriceRemoveSelected' | 'userPriceSelect' | 'sessionStaleBadge' | 'sessionUntitled' | 'heatmapLess' | 'heatmapMore' | 'currency' | 'currencyCny' | 'currencyUsd' | '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' | 'free' | 'perfSamples' | 'perfTtft' | 'perfP50' | 'perfP90' | 'perfTps' | 'perfLatency' | 'perfEstimated' | 'perfEmpty' | 'perfTpsUnit' | 'perfTitle' | 'perfHint' | 'perfAll' | 'perfChartEmpty' | 'heatmapYear' | 'heatmapMonth' | 'activeDays' | 'streakDays' | 'subscriptionAutoDetect' | 'pluginAuthor' | 'pluginRepository' | 'pluginNpm' | 'pluginLicense' | 'tabToken' | 'tokenExport' | 'tokenExportCsv' | 'tokenReasoningShare' | 'tokenReasoningShort' | 'tokenIo' | 'tokenPeak' | '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';
|
|
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' | 'trendEmpty' | 'trendTotal' | 'roundsUnit' | 'healthModelsLive' | 'healthVendorsDown' | 'healthVendorsUnavailable' | 'budget' | 'budgetRemain' | 'budgetAmount' | 'budgetSummary' | 'sessions' | 'sessionTitle' | 'lastActive' | 'sessionOverflow' | 'budgetTierBody' | 'models' | 'providerBilling' | 'channelUnknown' | 'directTag' | 'relayTag' | 'unknownTag' | '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' | 'tokenCacheWrite' | 'toolRank' | 'toolName' | 'userPrices' | 'userPricesHint' | 'userPriceSave' | 'userPriceModel' | 'userPriceSource' | 'userPriceSourceHint' | 'userPriceOffPeak' | 'userPriceNormal' | 'userPriceCurrency' | 'userPriceAdd' | 'userPriceRemoveSelected' | 'userPriceSelect' | 'sessionStaleBadge' | 'sessionUntitled' | 'heatmapLess' | 'heatmapMore' | 'currency' | 'currencyCny' | 'currencyUsd' | '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' | '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' | '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';
|
|
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>;
|
|
@@ -341,14 +341,17 @@ export interface ModelEntry {
|
|
|
341
341
|
*/
|
|
342
342
|
retired?: boolean;
|
|
343
343
|
}
|
|
344
|
-
export declare const MODEL_CATALOG: readonly ModelEntry[];
|
|
345
344
|
/**
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
345
|
+
* 注入内置目录与别名表(两侧各调用一次:宿主 activate、客户端首个 pricing 响应)。
|
|
346
|
+
* 重复注入整体替换并重建归一化索引。
|
|
347
|
+
* @param catalog - 内置目录条目(BUILTIN_MODEL_CATALOG 全量)。
|
|
348
|
+
* @param aliases - 内置别名表(BUILTIN_MODEL_KEY_ALIASES 全量)。
|
|
350
349
|
*/
|
|
351
|
-
export declare
|
|
350
|
+
export declare function applyBuiltinCatalog(catalog: readonly ModelEntry[], aliases: Readonly<Record<string, string>>): void;
|
|
351
|
+
/** 内置目录当前快照:未注入为空数组(client 首帧前渲染加载态)。 */
|
|
352
|
+
export declare function modelCatalog(): readonly ModelEntry[];
|
|
353
|
+
/** 内置别名表当前快照:未注入为空对象。 */
|
|
354
|
+
export declare function modelKeyAliases(): Readonly<Record<string, string>>;
|
|
352
355
|
/**
|
|
353
356
|
* 模型 id 归一化:小写、去括号附注(如 `gpt5.6 luna(go)` 只看主体)、再去所有
|
|
354
357
|
* 非字母数字分隔符(空格 / 横杠 / 点 / 下划线)。用于日志里的模型 id 与计费
|
|
@@ -32,6 +32,6 @@ export declare function RoundCostChart({ rounds, flags, currency, t }: {
|
|
|
32
32
|
rounds: readonly RoundChartRow[];
|
|
33
33
|
flags: readonly AnomalyFlag[];
|
|
34
34
|
currency: CostCurrency;
|
|
35
|
-
t: (key: 'model' | 'costAbbr') => string;
|
|
35
|
+
t: (key: 'model' | 'costAbbr' | 'roundsUnit') => string;
|
|
36
36
|
}): React.ReactNode;
|
|
37
37
|
//# sourceMappingURL=round-chart.d.ts.map
|
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.4.
|
|
4
|
+
"version": "1.4.4",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
7
7
|
"deepseek",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vendor logos: inlined data URIs fetched from models.dev /logos/{id}.svg.
|
|
3
|
-
* Kept to the highest-traffic providers only to hold the client bundle under the
|
|
4
|
-
* DSH Store 256 KiB single-file cap. Every other provider falls back to a
|
|
5
|
-
* brand-color letter badge in the UI (see VendorLogo in UsageBilling.tsx), so no
|
|
6
|
-
* external asset or copyright risk is introduced for unlisted vendors. 月之暗面 is
|
|
7
|
-
* a hand-redrawn minimal crescent — its official SVG is a multi-thousand-node path
|
|
8
|
-
* that alone cost ~6.8 KiB.
|
|
9
|
-
*/
|
|
10
|
-
export declare const VENDOR_LOGOS: Readonly<Record<string, string>>;
|
|
11
|
-
export declare function vendorLogoOf(provider: string): string | undefined;
|
|
12
|
-
//# sourceMappingURL=vendor-logos.d.ts.map
|