@linxiraos/pi-stats 1.1.26 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -5
- package/build.ts +4 -0
- package/dist/client/favicon.ico +0 -0
- package/dist/client/index.css +1 -1
- package/dist/client/index.html +1 -0
- package/dist/client/index.js +96 -96
- package/dist/types/aggregator.d.ts +4 -1
- package/dist/types/client/api.d.ts +5 -1
- package/dist/types/client/app/nav.d.ts +5 -2
- package/dist/types/client/data/formatters.d.ts +7 -2
- package/dist/types/client/data/live.d.ts +16 -11
- package/dist/types/client/data/query-store.d.ts +39 -0
- package/dist/types/client/data/query.d.ts +10 -5
- package/dist/types/client/data/range.d.ts +4 -3
- package/dist/types/client/i18n/format.d.ts +9 -0
- package/dist/types/client/i18n/index.d.ts +18 -0
- package/dist/types/client/i18n/messages/charts.d.ts +8 -0
- package/dist/types/client/i18n/messages/common.d.ts +153 -0
- package/dist/types/client/i18n/messages/costs.d.ts +92 -0
- package/dist/types/client/i18n/messages/en.d.ts +1255 -0
- package/dist/types/client/i18n/messages/errors.d.ts +78 -0
- package/dist/types/client/i18n/messages/frustration.d.ts +191 -0
- package/dist/types/client/i18n/messages/gain.d.ts +54 -0
- package/dist/types/client/i18n/messages/models.d.ts +94 -0
- package/dist/types/client/i18n/messages/nav.d.ts +46 -0
- package/dist/types/client/i18n/messages/overview.d.ts +80 -0
- package/dist/types/client/i18n/messages/projects.d.ts +84 -0
- package/dist/types/client/i18n/messages/providers.d.ts +142 -0
- package/dist/types/client/i18n/messages/requests.d.ts +72 -0
- package/dist/types/client/i18n/messages/tools.d.ts +119 -0
- package/dist/types/client/i18n/messages/traces.d.ts +144 -0
- package/dist/types/client/i18n/messages/ui.d.ts +44 -0
- package/dist/types/client/i18n/messages/zh-CN.d.ts +13 -0
- package/dist/types/client/i18n/types.d.ts +15 -0
- package/dist/types/client/traces/Minimap.d.ts +2 -0
- package/dist/types/client/traces/TimelineCanvas.d.ts +29 -8
- package/dist/types/client/traces/TranscriptList.d.ts +3 -1
- package/dist/types/db.d.ts +14 -21
- package/dist/types/embedded-client.d.ts +5 -0
- package/dist/types/frustration.d.ts +18 -9
- package/dist/types/live.d.ts +5 -3
- package/dist/types/locale.d.ts +16 -0
- package/dist/types/parser.d.ts +0 -17
- package/dist/types/rollup.d.ts +9 -1
- package/dist/types/server.d.ts +6 -0
- package/dist/types/shared-types.d.ts +7 -0
- package/dist/types/trace.d.ts +18 -6
- package/dist/types/types.d.ts +13 -1
- package/dist/types/user-metrics.d.ts +23 -1
- package/package.json +5 -5
- package/src/aggregator.ts +31 -11
- package/src/client/api.ts +40 -5
- package/src/client/app/LiveChip.tsx +14 -13
- package/src/client/app/Shell.tsx +19 -13
- package/src/client/app/ThemeToggle.tsx +4 -3
- package/src/client/app/nav.ts +19 -16
- package/src/client/data/formatters.ts +80 -13
- package/src/client/data/live.tsx +85 -45
- package/src/client/data/query-store.ts +108 -0
- package/src/client/data/query.ts +47 -56
- package/src/client/data/range.ts +34 -14
- package/src/client/data/series.ts +7 -1
- package/src/client/favicon.ico +0 -0
- package/src/client/i18n/format.ts +28 -0
- package/src/client/i18n/index.ts +53 -0
- package/src/client/i18n/messages/charts.ts +8 -0
- package/src/client/i18n/messages/common.ts +157 -0
- package/src/client/i18n/messages/costs.ts +104 -0
- package/src/client/i18n/messages/en.ts +40 -0
- package/src/client/i18n/messages/errors.ts +80 -0
- package/src/client/i18n/messages/frustration.ts +198 -0
- package/src/client/i18n/messages/gain.ts +54 -0
- package/src/client/i18n/messages/models.ts +94 -0
- package/src/client/i18n/messages/nav.ts +46 -0
- package/src/client/i18n/messages/overview.ts +90 -0
- package/src/client/i18n/messages/projects.ts +84 -0
- package/src/client/i18n/messages/providers.ts +165 -0
- package/src/client/i18n/messages/requests.ts +73 -0
- package/src/client/i18n/messages/tools.ts +120 -0
- package/src/client/i18n/messages/traces.ts +160 -0
- package/src/client/i18n/messages/ui.ts +46 -0
- package/src/client/i18n/messages/zh-CN.ts +43 -0
- package/src/client/i18n/types.ts +19 -0
- package/src/client/index.tsx +4 -0
- package/src/client/routes/CostsRoute.tsx +61 -48
- package/src/client/routes/ErrorsRoute.tsx +71 -47
- package/src/client/routes/FrustrationRoute.tsx +131 -116
- package/src/client/routes/GainRoute.tsx +42 -30
- package/src/client/routes/ModelsRoute.tsx +90 -73
- package/src/client/routes/OverviewRoute.tsx +109 -63
- package/src/client/routes/ProjectsRoute.tsx +73 -46
- package/src/client/routes/ProvidersRoute.tsx +151 -114
- package/src/client/routes/RequestsRoute.tsx +69 -46
- package/src/client/routes/ToolsRoute.tsx +108 -94
- package/src/client/routes/TracesRoute.tsx +25 -23
- package/src/client/styles.css +5 -2
- package/src/client/traces/AggregatesPanel.tsx +19 -8
- package/src/client/traces/Minimap.tsx +65 -27
- package/src/client/traces/SpanDrawer.tsx +46 -21
- package/src/client/traces/SummaryStrip.tsx +27 -11
- package/src/client/traces/TimelineCanvas.tsx +245 -116
- package/src/client/traces/TraceView.tsx +51 -36
- package/src/client/traces/TranscriptList.tsx +20 -11
- package/src/client/traces/traces.css +26 -0
- package/src/client/ui/JsonBlock.tsx +3 -2
- package/src/client/ui/Modal.tsx +3 -2
- package/src/client/ui/RequestDrawer.tsx +33 -30
- package/src/client/ui/SearchInput.tsx +2 -1
- package/src/client/ui/States.tsx +3 -2
- package/src/client/ui/Table.tsx +7 -3
- package/src/db.ts +150 -135
- package/src/embedded-client.ts +9 -0
- package/src/frustration.ts +9 -30
- package/src/index.ts +2 -1
- package/src/live.ts +36 -11
- package/src/locale.ts +29 -0
- package/src/parser.ts +37 -72
- package/src/port-conflict.ts +1 -1
- package/src/prompts/judge/frustration.json +19 -0
- package/src/rollup.ts +41 -20
- package/src/server.ts +67 -27
- package/src/shared-types.ts +7 -0
- package/src/trace.ts +54 -40
- package/src/types.ts +13 -1
- package/src/user-metrics.ts +220 -6
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Projects copy. Keys are slugs (`projects.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const projects: {
|
|
6
|
+
readonly en: {
|
|
7
|
+
readonly "projects.title": "Projects";
|
|
8
|
+
readonly "projects.description": "Usage by session folder in {window}.";
|
|
9
|
+
readonly "projects.folders": "Folders";
|
|
10
|
+
readonly "projects.folder": "Folder";
|
|
11
|
+
readonly "projects.temporary-n": "{count} temporary";
|
|
12
|
+
readonly "projects.failed-n": "{count} failed";
|
|
13
|
+
readonly "projects.api-equivalent-cost": "API-equivalent cost";
|
|
14
|
+
readonly "projects.api-equivalent-cost-hint": "What this usage would cost at public API rates";
|
|
15
|
+
readonly "projects.unpriced-n": "{count} unpriced";
|
|
16
|
+
readonly "projects.conversation-tokens": "Conversation tokens";
|
|
17
|
+
readonly "projects.conversation-tokens-hint": "Uncached input + cache reads + cache writes + output";
|
|
18
|
+
readonly "projects.cache-rate": "Cache rate";
|
|
19
|
+
readonly "projects.cache-rate-hint": "Cache reads ÷ (uncached input + cache reads)";
|
|
20
|
+
readonly "projects.cache-rate-hint-all": "Cache reads ÷ (uncached input + cache reads), across every folder";
|
|
21
|
+
readonly "projects.top-by-cost": "Top by cost";
|
|
22
|
+
readonly "projects.top-by-cost-description": "Share of API-equivalent cost";
|
|
23
|
+
readonly "projects.top-by-requests": "Top by requests";
|
|
24
|
+
readonly "projects.top-by-requests-description": "Share of all requests";
|
|
25
|
+
readonly "projects.folders-n": "{count} folders";
|
|
26
|
+
readonly "projects.folders-of-n": "{count} of {total} folders";
|
|
27
|
+
readonly "projects.hide-temporary": "Hide temporary ({count})";
|
|
28
|
+
readonly "projects.hide-temporary-hint": "Session folders under /tmp or /var/folders";
|
|
29
|
+
readonly "projects.filter-placeholder": "Filter folders…";
|
|
30
|
+
readonly "projects.empty-no-folders": "No project folders in this range";
|
|
31
|
+
readonly "projects.empty-only-temporary": "Only temporary folders in this range";
|
|
32
|
+
readonly "projects.empty-no-match": "No folders match";
|
|
33
|
+
readonly "projects.hint-longer-range": "Try a longer range.";
|
|
34
|
+
readonly "projects.hint-temporary-hidden": "Temporary folders are hidden.";
|
|
35
|
+
readonly "projects.temp": "temp";
|
|
36
|
+
readonly "projects.share-of-requests": "{share} of all requests";
|
|
37
|
+
readonly "projects.share-of-cost": "{share} of all cost";
|
|
38
|
+
readonly "projects.api-equivalent-cost-rates": "API-equivalent cost at public API rates";
|
|
39
|
+
readonly "projects.cache-savings": "Cache savings";
|
|
40
|
+
readonly "projects.cache-savings-hint": "Prompt-input cost saved versus billing the same tokens uncached";
|
|
41
|
+
readonly "projects.errors": "Errors";
|
|
42
|
+
readonly "projects.avg-duration": "Avg duration";
|
|
43
|
+
readonly "projects.last-active": "Last active";
|
|
44
|
+
};
|
|
45
|
+
readonly "zh-CN": {
|
|
46
|
+
readonly "projects.title": "项目";
|
|
47
|
+
readonly "projects.description": "{window}内按会话文件夹统计的用量。";
|
|
48
|
+
readonly "projects.folders": "文件夹";
|
|
49
|
+
readonly "projects.folder": "文件夹";
|
|
50
|
+
readonly "projects.temporary-n": "{count} 个临时";
|
|
51
|
+
readonly "projects.failed-n": "{count} 个失败";
|
|
52
|
+
readonly "projects.api-equivalent-cost": "API 等效费用";
|
|
53
|
+
readonly "projects.api-equivalent-cost-hint": "这些用量按公开 API 费率计算所需的费用";
|
|
54
|
+
readonly "projects.unpriced-n": "{count} 个未计价";
|
|
55
|
+
readonly "projects.conversation-tokens": "对话 Token";
|
|
56
|
+
readonly "projects.conversation-tokens-hint": "未缓存输入 + 缓存读取 + 缓存写入 + 输出";
|
|
57
|
+
readonly "projects.cache-rate": "缓存命中率";
|
|
58
|
+
readonly "projects.cache-rate-hint": "缓存读取 ÷(未缓存输入 + 缓存读取)";
|
|
59
|
+
readonly "projects.cache-rate-hint-all": "缓存读取 ÷(未缓存输入 + 缓存读取),覆盖所有文件夹";
|
|
60
|
+
readonly "projects.top-by-cost": "费用最高";
|
|
61
|
+
readonly "projects.top-by-cost-description": "占 API 等效费用的比例";
|
|
62
|
+
readonly "projects.top-by-requests": "请求最多";
|
|
63
|
+
readonly "projects.top-by-requests-description": "占全部请求的比例";
|
|
64
|
+
readonly "projects.folders-n": "{count} 个文件夹";
|
|
65
|
+
readonly "projects.folders-of-n": "{total} 个文件夹中的 {count} 个";
|
|
66
|
+
readonly "projects.hide-temporary": "隐藏临时文件夹({count})";
|
|
67
|
+
readonly "projects.hide-temporary-hint": "/tmp 或 /var/folders 下的会话文件夹";
|
|
68
|
+
readonly "projects.filter-placeholder": "筛选文件夹…";
|
|
69
|
+
readonly "projects.empty-no-folders": "该时间范围内没有项目文件夹";
|
|
70
|
+
readonly "projects.empty-only-temporary": "该时间范围内只有临时文件夹";
|
|
71
|
+
readonly "projects.empty-no-match": "没有匹配的文件夹";
|
|
72
|
+
readonly "projects.hint-longer-range": "试试更长的时间范围。";
|
|
73
|
+
readonly "projects.hint-temporary-hidden": "临时文件夹已隐藏。";
|
|
74
|
+
readonly "projects.temp": "临时";
|
|
75
|
+
readonly "projects.share-of-requests": "占全部请求的 {share}";
|
|
76
|
+
readonly "projects.share-of-cost": "占全部费用的 {share}";
|
|
77
|
+
readonly "projects.api-equivalent-cost-rates": "按公开 API 费率计算的等效费用";
|
|
78
|
+
readonly "projects.cache-savings": "缓存节省";
|
|
79
|
+
readonly "projects.cache-savings-hint": "同样的 Token 按未缓存计费时,提示输入费用节省的比例";
|
|
80
|
+
readonly "projects.errors": "错误";
|
|
81
|
+
readonly "projects.avg-duration": "平均耗时";
|
|
82
|
+
readonly "projects.last-active": "最近活动";
|
|
83
|
+
};
|
|
84
|
+
};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Providers copy. Keys are slugs (`providers.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const providers: {
|
|
6
|
+
readonly en: {
|
|
7
|
+
readonly "providers.description": "Burn, reliability and subscription headroom per provider over {window}.";
|
|
8
|
+
readonly "providers.most-tokens": "Most tokens: {provider}";
|
|
9
|
+
readonly "providers.failed-n": "{count} failed";
|
|
10
|
+
readonly "providers.succeeded-n": "{count} succeeded";
|
|
11
|
+
readonly "providers.tokens-title": "Uncached input + cache reads + cache writes + output";
|
|
12
|
+
readonly "providers.api-equivalent-cost": "API-equivalent cost";
|
|
13
|
+
readonly "providers.api-cost-title": "What this usage would cost at public API rates";
|
|
14
|
+
readonly "providers.unpriced-n": "{count} unpriced";
|
|
15
|
+
readonly "providers.totals": "Provider totals";
|
|
16
|
+
readonly "providers.totals-description": "Cost is an API-equivalent estimate. Select a row for its token mix.";
|
|
17
|
+
readonly "providers.totals-description-unpriced-one": "Cost is an API-equivalent estimate and excludes {count} unpriced subscription request. Select a row for its token mix.";
|
|
18
|
+
readonly "providers.totals-description-unpriced-n": "Cost is an API-equivalent estimate and excludes {count} unpriced subscription requests. Select a row for its token mix.";
|
|
19
|
+
readonly "providers.no-requests-in-range": "No requests in this range";
|
|
20
|
+
readonly "providers.models-title": "Distinct models used through this provider";
|
|
21
|
+
readonly "providers.share-title": "Fraction of all tokens in range";
|
|
22
|
+
readonly "providers.cost-title": "API-equivalent estimate";
|
|
23
|
+
readonly "providers.tps-title": "Average output throughput";
|
|
24
|
+
readonly "providers.premium-title": "Premium requests (subscription multiplier units)";
|
|
25
|
+
readonly "providers.burn": "Burn by provider";
|
|
26
|
+
readonly "providers.burn-estimate-description": "API-equivalent estimate per {bucket}; excludes unpriced subscription requests";
|
|
27
|
+
readonly "providers.burn-description": "Per {bucket}, top {count} providers stacked";
|
|
28
|
+
readonly "providers.bucket-5m": "5 minutes";
|
|
29
|
+
readonly "providers.bucket-hour": "hour";
|
|
30
|
+
readonly "providers.bucket-day": "day";
|
|
31
|
+
readonly "providers.no-provider-activity": "No provider activity in this range";
|
|
32
|
+
readonly "providers.peak-burn-hours": "Peak burn hours";
|
|
33
|
+
readonly "providers.peak-hours-description": "Tokens by local hour of day; peak at {hour}";
|
|
34
|
+
readonly "providers.hours-description": "Tokens by local hour of day";
|
|
35
|
+
readonly "providers.all-providers": "All providers";
|
|
36
|
+
readonly "providers.tokens-peak-hour": "Tokens (peak hour)";
|
|
37
|
+
readonly "providers.no-activity-in-range": "No activity in this range";
|
|
38
|
+
readonly "providers.subscription-windows": "Subscription windows";
|
|
39
|
+
readonly "providers.subscription-windows-description": "What one usage window buys you and how many accounts peak demand needs. Select a row to chart it.";
|
|
40
|
+
readonly "providers.window": "Window";
|
|
41
|
+
readonly "providers.accounts": "Accounts";
|
|
42
|
+
readonly "providers.accounts-title": "Accounts with at least one snapshot for this window in range";
|
|
43
|
+
readonly "providers.resets": "Resets";
|
|
44
|
+
readonly "providers.resets-title": "Window resets observed (drops in used fraction)";
|
|
45
|
+
readonly "providers.windows-burned": "Windows burned";
|
|
46
|
+
readonly "providers.windows-burned-title": "Subscription-window equivalents consumed in range (sum of used-fraction increases across accounts)";
|
|
47
|
+
readonly "providers.tokens-per-window": "Tokens / window";
|
|
48
|
+
readonly "providers.tokens-per-window-title": "Provider tokens burned in range ÷ windows burned — what one full window is worth";
|
|
49
|
+
readonly "providers.too-little-consumed": "Too little of the window was consumed to extrapolate";
|
|
50
|
+
readonly "providers.peak-utilization": "Peak utilization";
|
|
51
|
+
readonly "providers.peak-utilization-title": "Peak of summed used fraction across accounts at any sampled instant; the bar is relative to fleet capacity";
|
|
52
|
+
readonly "providers.accounts-needed": "Accounts needed";
|
|
53
|
+
readonly "providers.accounts-needed-title": "Accounts needed to keep peak demand under 90% of fleet capacity";
|
|
54
|
+
readonly "providers.ideal-accounts": "{ideal} · have {have}";
|
|
55
|
+
readonly "providers.exhaustions": "Exhaustions";
|
|
56
|
+
readonly "providers.exhaustions-title": "Transitions into an exhausted state observed in range";
|
|
57
|
+
readonly "providers.exhausted-n": "{count} exhausted";
|
|
58
|
+
readonly "providers.no-snapshots-in-range": "No usage snapshots in this range";
|
|
59
|
+
readonly "providers.snapshot-hint": "Usage snapshots accumulate whenever usage limits are fetched (TUI footer, /usage, zeta-c usage).";
|
|
60
|
+
readonly "providers.utilization": "Window utilization";
|
|
61
|
+
readonly "providers.utilization-description": "{window} used fraction per account, {from} – {to}";
|
|
62
|
+
readonly "providers.utilization-description-plain": "Recorded limit utilization per account";
|
|
63
|
+
readonly "providers.no-utilization-readings": "No utilization readings for this window";
|
|
64
|
+
readonly "providers.exhausted": "Exhausted";
|
|
65
|
+
readonly "providers.no-reading": "No reading";
|
|
66
|
+
readonly "providers.high": "High";
|
|
67
|
+
readonly "providers.account": "Account";
|
|
68
|
+
readonly "providers.latest-used": "Latest used";
|
|
69
|
+
readonly "providers.status": "Status";
|
|
70
|
+
readonly "providers.peak-in-range": "Peak in range";
|
|
71
|
+
readonly "providers.snapshots": "Snapshots";
|
|
72
|
+
readonly "providers.recorded": "Recorded";
|
|
73
|
+
};
|
|
74
|
+
readonly "zh-CN": {
|
|
75
|
+
readonly "providers.description": "各服务商在{window}内的消耗、可靠性与订阅余量。";
|
|
76
|
+
readonly "providers.most-tokens": "Token 最多:{provider}";
|
|
77
|
+
readonly "providers.failed-n": "{count} 次失败";
|
|
78
|
+
readonly "providers.succeeded-n": "{count} 次成功";
|
|
79
|
+
readonly "providers.tokens-title": "未缓存输入 + 缓存读取 + 缓存写入 + 输出";
|
|
80
|
+
readonly "providers.api-equivalent-cost": "API 等效费用";
|
|
81
|
+
readonly "providers.api-cost-title": "此用量按公开 API 费率计算需要多少费用";
|
|
82
|
+
readonly "providers.unpriced-n": "{count} 个未定价";
|
|
83
|
+
readonly "providers.totals": "服务商汇总";
|
|
84
|
+
readonly "providers.totals-description": "费用为 API 等效估算。选择一行可查看其 Token 构成。";
|
|
85
|
+
readonly "providers.totals-description-unpriced-one": "费用为 API 等效估算,且未包含 {count} 个未定价的订阅请求。选择一行可查看其 Token 构成。";
|
|
86
|
+
readonly "providers.totals-description-unpriced-n": "费用为 API 等效估算,且未包含 {count} 个未定价的订阅请求。选择一行可查看其 Token 构成。";
|
|
87
|
+
readonly "providers.no-requests-in-range": "该时间范围内没有请求";
|
|
88
|
+
readonly "providers.models-title": "通过该服务商使用的不同模型";
|
|
89
|
+
readonly "providers.share-title": "该时间范围内全部 Token 中的占比";
|
|
90
|
+
readonly "providers.cost-title": "API 等效估算";
|
|
91
|
+
readonly "providers.tps-title": "平均输出吞吐量";
|
|
92
|
+
readonly "providers.premium-title": "溢价请求(订阅倍率单位)";
|
|
93
|
+
readonly "providers.burn": "按服务商的消耗";
|
|
94
|
+
readonly "providers.burn-estimate-description": "每{bucket}的 API 等效估算;不含未定价的订阅请求";
|
|
95
|
+
readonly "providers.burn-description": "每{bucket},堆叠显示前 {count} 个服务商";
|
|
96
|
+
readonly "providers.bucket-5m": "5 分钟";
|
|
97
|
+
readonly "providers.bucket-hour": "小时";
|
|
98
|
+
readonly "providers.bucket-day": "天";
|
|
99
|
+
readonly "providers.no-provider-activity": "该时间范围内没有服务商活动";
|
|
100
|
+
readonly "providers.peak-burn-hours": "消耗高峰时段";
|
|
101
|
+
readonly "providers.peak-hours-description": "按本地时段统计的 Token;高峰在 {hour}";
|
|
102
|
+
readonly "providers.hours-description": "按本地时段统计的 Token";
|
|
103
|
+
readonly "providers.all-providers": "全部服务商";
|
|
104
|
+
readonly "providers.tokens-peak-hour": "Token(高峰时段)";
|
|
105
|
+
readonly "providers.no-activity-in-range": "该时间范围内没有活动";
|
|
106
|
+
readonly "providers.subscription-windows": "订阅窗口";
|
|
107
|
+
readonly "providers.subscription-windows-description": "一个用量窗口能带来多少用量,以及峰值需求需要多少个账号。选择一行可将它绘制成图表。";
|
|
108
|
+
readonly "providers.window": "窗口";
|
|
109
|
+
readonly "providers.accounts": "账号";
|
|
110
|
+
readonly "providers.accounts-title": "该时间范围内对此窗口至少有一个快照的账号";
|
|
111
|
+
readonly "providers.resets": "重置次数";
|
|
112
|
+
readonly "providers.resets-title": "观测到的窗口重置次数(已用比例下降)";
|
|
113
|
+
readonly "providers.windows-burned": "消耗的窗口数";
|
|
114
|
+
readonly "providers.windows-burned-title": "该时间范围内消耗的订阅窗口等效量(各账号已用比例增量之和)";
|
|
115
|
+
readonly "providers.tokens-per-window": "Token / 窗口";
|
|
116
|
+
readonly "providers.tokens-per-window-title": "该时间范围内消耗的服务商 Token ÷ 消耗的窗口数 —— 一个完整窗口的价值";
|
|
117
|
+
readonly "providers.too-little-consumed": "该窗口消耗太少,无法外推";
|
|
118
|
+
readonly "providers.peak-utilization": "峰值利用率";
|
|
119
|
+
readonly "providers.peak-utilization-title": "任意采样时刻各账号已用比例之和的峰值;进度条相对于整体容量";
|
|
120
|
+
readonly "providers.accounts-needed": "所需账号数";
|
|
121
|
+
readonly "providers.accounts-needed-title": "将峰值需求控制在整体容量 90% 以下所需的账号数";
|
|
122
|
+
readonly "providers.ideal-accounts": "{ideal} · 现有 {have}";
|
|
123
|
+
readonly "providers.exhaustions": "耗尽次数";
|
|
124
|
+
readonly "providers.exhaustions-title": "该时间范围内观测到的进入耗尽状态的次数";
|
|
125
|
+
readonly "providers.exhausted-n": "{count} 次耗尽";
|
|
126
|
+
readonly "providers.no-snapshots-in-range": "该时间范围内没有用量快照";
|
|
127
|
+
readonly "providers.snapshot-hint": "每当获取用量限额时都会累积用量快照(TUI 底部、/usage、zeta-c usage)。";
|
|
128
|
+
readonly "providers.utilization": "窗口利用率";
|
|
129
|
+
readonly "providers.utilization-description": "{window} 各账号的已用比例,{from} – {to}";
|
|
130
|
+
readonly "providers.utilization-description-plain": "各账号已记录的限额利用率";
|
|
131
|
+
readonly "providers.no-utilization-readings": "该窗口没有利用率记录";
|
|
132
|
+
readonly "providers.exhausted": "已耗尽";
|
|
133
|
+
readonly "providers.no-reading": "无读数";
|
|
134
|
+
readonly "providers.high": "偏高";
|
|
135
|
+
readonly "providers.account": "账号";
|
|
136
|
+
readonly "providers.latest-used": "最新已用";
|
|
137
|
+
readonly "providers.status": "状态";
|
|
138
|
+
readonly "providers.peak-in-range": "范围内峰值";
|
|
139
|
+
readonly "providers.snapshots": "快照数";
|
|
140
|
+
readonly "providers.recorded": "记录时间";
|
|
141
|
+
};
|
|
142
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Requests copy. Keys are slugs (`requests.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const requests: {
|
|
6
|
+
readonly en: {
|
|
7
|
+
readonly "requests.description": "Every model call zeta made in {window}, newest first. Open a row for its full payload.";
|
|
8
|
+
readonly "requests.loading": "Loading…";
|
|
9
|
+
readonly "requests.load-latest": "Load latest {count}";
|
|
10
|
+
readonly "requests.status": "Status";
|
|
11
|
+
readonly "requests.status-all": "All";
|
|
12
|
+
readonly "requests.none-in-window": "none in {window}";
|
|
13
|
+
readonly "requests.since": "since {time}";
|
|
14
|
+
readonly "requests.failed-hint": "{rate} · {count} aborted";
|
|
15
|
+
readonly "requests.tokens-hint": "Total tokens across these requests";
|
|
16
|
+
readonly "requests.api-equivalent-cost": "API-equivalent cost";
|
|
17
|
+
readonly "requests.cost-hint": "What these requests would cost at public API rates";
|
|
18
|
+
readonly "requests.unpriced-n": "{count} unpriced";
|
|
19
|
+
readonly "requests.median-duration": "Median duration";
|
|
20
|
+
readonly "requests.p95": "p95 {value}";
|
|
21
|
+
readonly "requests.median-ttft": "Median TTFT";
|
|
22
|
+
readonly "requests.ttft": "TTFT";
|
|
23
|
+
readonly "requests.ttft-hint": "Time to first token";
|
|
24
|
+
readonly "requests.log-title": "Request log";
|
|
25
|
+
readonly "requests.log-loading": "Loading the latest requests…";
|
|
26
|
+
readonly "requests.log-count-in-window": "{shown} of {total} requests in {window}";
|
|
27
|
+
readonly "requests.log-count-latest": "{shown} of the latest {total} requests";
|
|
28
|
+
readonly "requests.search-placeholder": "Model, provider or project";
|
|
29
|
+
readonly "requests.footer": "Showing the latest {count} requests, back to {time}. Older requests in {window} are not loaded.";
|
|
30
|
+
readonly "requests.empty-in-window": "No requests in {window}";
|
|
31
|
+
readonly "requests.empty-no-match": "No requests match";
|
|
32
|
+
readonly "requests.empty-no-match-hint": "Clear the search or status filter.";
|
|
33
|
+
readonly "requests.when": "When";
|
|
34
|
+
readonly "requests.uncached-input": "Uncached input tokens";
|
|
35
|
+
readonly "requests.cache-read-title": "Cache read tokens (hover a cell for cache writes)";
|
|
36
|
+
readonly "requests.cache-write": "Cache write: {count}";
|
|
37
|
+
readonly "requests.cost-estimate": "API-equivalent estimate";
|
|
38
|
+
};
|
|
39
|
+
readonly "zh-CN": {
|
|
40
|
+
readonly "requests.description": "zeta 在 {window} 内发出的每一次模型调用,最新在前。打开某一行可查看其完整载荷。";
|
|
41
|
+
readonly "requests.loading": "加载中…";
|
|
42
|
+
readonly "requests.load-latest": "加载最新 {count} 条";
|
|
43
|
+
readonly "requests.status": "状态";
|
|
44
|
+
readonly "requests.status-all": "全部";
|
|
45
|
+
readonly "requests.none-in-window": "{window} 内没有请求";
|
|
46
|
+
readonly "requests.since": "自 {time} 起";
|
|
47
|
+
readonly "requests.failed-hint": "{rate} · {count} 个已中止";
|
|
48
|
+
readonly "requests.tokens-hint": "这些请求的 Token 总量";
|
|
49
|
+
readonly "requests.api-equivalent-cost": "API 等价费用";
|
|
50
|
+
readonly "requests.cost-hint": "这些请求按公开 API 费率计算的费用";
|
|
51
|
+
readonly "requests.unpriced-n": "{count} 个未定价";
|
|
52
|
+
readonly "requests.median-duration": "耗时中位数";
|
|
53
|
+
readonly "requests.p95": "p95 分位 {value}";
|
|
54
|
+
readonly "requests.median-ttft": "首 Token 延迟中位数";
|
|
55
|
+
readonly "requests.ttft": "首 Token 延迟";
|
|
56
|
+
readonly "requests.ttft-hint": "首 Token 延迟";
|
|
57
|
+
readonly "requests.log-title": "请求日志";
|
|
58
|
+
readonly "requests.log-loading": "正在加载最新请求…";
|
|
59
|
+
readonly "requests.log-count-in-window": "{window} 内共 {total} 个请求,显示 {shown} 个";
|
|
60
|
+
readonly "requests.log-count-latest": "最新 {total} 个请求中显示 {shown} 个";
|
|
61
|
+
readonly "requests.search-placeholder": "模型、服务商或项目";
|
|
62
|
+
readonly "requests.footer": "显示最新 {count} 个请求,回溯至 {time}。{window} 内更早的请求未加载。";
|
|
63
|
+
readonly "requests.empty-in-window": "{window} 内没有请求";
|
|
64
|
+
readonly "requests.empty-no-match": "没有匹配的请求";
|
|
65
|
+
readonly "requests.empty-no-match-hint": "清除搜索内容或状态筛选。";
|
|
66
|
+
readonly "requests.when": "时间";
|
|
67
|
+
readonly "requests.uncached-input": "未缓存输入 Token";
|
|
68
|
+
readonly "requests.cache-read-title": "缓存读取 Token(将鼠标悬停在单元格上可查看缓存写入)";
|
|
69
|
+
readonly "requests.cache-write": "缓存写入:{count}";
|
|
70
|
+
readonly "requests.cost-estimate": "API 等价估算";
|
|
71
|
+
};
|
|
72
|
+
};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools copy. Keys are slugs (`tools.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it. Tool names themselves (`bash`,
|
|
4
|
+
* `read`, `edit`) are identifiers and are never translated.
|
|
5
|
+
*/
|
|
6
|
+
export declare const tools: {
|
|
7
|
+
readonly en: {
|
|
8
|
+
readonly "tools.title": "Tools";
|
|
9
|
+
readonly "tools.description": "Which tools zeta called in {window}, how often they failed, and what they cost.";
|
|
10
|
+
readonly "tools.tool-calls": "Tool calls";
|
|
11
|
+
readonly "tools.failed-n": "{count} failed";
|
|
12
|
+
readonly "tools.distinct-tools": "Distinct tools";
|
|
13
|
+
readonly "tools.most-used": "Most used: {tool}";
|
|
14
|
+
readonly "tools.error-rate-title": "Tool results that came back flagged as errors";
|
|
15
|
+
readonly "tools.succeeded-n": "{count} succeeded";
|
|
16
|
+
readonly "tools.attributed-tokens": "Attributed tokens";
|
|
17
|
+
readonly "tools.tokens-output": "{tokens} output";
|
|
18
|
+
readonly "tools.attributed-cost": "Attributed cost";
|
|
19
|
+
readonly "tools.attribution-note": "Tokens and API-equivalent cost of each invoking turn, split evenly across that turn's tool calls";
|
|
20
|
+
readonly "tools.attribution-estimate": "{note}; API-equivalent estimate";
|
|
21
|
+
readonly "tools.unpriced-requests-n": "{count} unpriced requests";
|
|
22
|
+
readonly "tools.api-equivalent": "API-equivalent";
|
|
23
|
+
readonly "tools.result-text": "Result text";
|
|
24
|
+
readonly "tools.result-chars-title": "Characters of tool-result text fed back into context";
|
|
25
|
+
readonly "tools.chars": "{count} chars";
|
|
26
|
+
readonly "tools.call-arguments": "Call arguments";
|
|
27
|
+
readonly "tools.args-chars-title": "Characters of serialized tool-call arguments";
|
|
28
|
+
readonly "tools.avg-result-per-call": "Avg result per call";
|
|
29
|
+
readonly "tools.avg-args-per-call": "Avg arguments per call";
|
|
30
|
+
readonly "tools.calls-over-time": "Calls over time";
|
|
31
|
+
readonly "tools.errors-over-time": "Errors over time";
|
|
32
|
+
readonly "tools.chart-description": "Per {bucket}, top {count} tools stacked";
|
|
33
|
+
readonly "tools.bucket-5m": "5 minutes";
|
|
34
|
+
readonly "tools.bucket-hour": "hour";
|
|
35
|
+
readonly "tools.bucket-day": "day";
|
|
36
|
+
readonly "tools.calls": "Calls";
|
|
37
|
+
readonly "tools.errors": "Errors";
|
|
38
|
+
readonly "tools.no-tool-errors": "No tool errors in this range";
|
|
39
|
+
readonly "tools.by-tool": "By tool";
|
|
40
|
+
readonly "tools.by-tool-description": "{note}. Select a tool to break it down by model.";
|
|
41
|
+
readonly "tools.by-tool-and-model": "By tool and model";
|
|
42
|
+
readonly "tools.by-tool-and-model-description": "Which models call which tools, and how often those calls fail";
|
|
43
|
+
readonly "tools.filter-by-tool": "Filter by tool";
|
|
44
|
+
readonly "tools.all-tools": "All tools";
|
|
45
|
+
readonly "tools.clear-tool-filter": "Clear tool filter";
|
|
46
|
+
readonly "tools.no-tool-calls": "No tool calls in this range";
|
|
47
|
+
readonly "tools.no-calls-to-tool": "No calls to {tool} in this range";
|
|
48
|
+
readonly "tools.tool": "Tool";
|
|
49
|
+
readonly "tools.trend": "Trend";
|
|
50
|
+
readonly "tools.trend-title": "Calls per bucket over the range";
|
|
51
|
+
readonly "tools.share-of-calls": "{percent} of all tool calls";
|
|
52
|
+
readonly "tools.errors-title": "Calls whose result came back flagged as an error";
|
|
53
|
+
readonly "tools.args": "Args";
|
|
54
|
+
readonly "tools.result": "Result";
|
|
55
|
+
readonly "tools.result-per-call": "Result / call";
|
|
56
|
+
readonly "tools.result-per-call-title": "Mean tool-result characters per call";
|
|
57
|
+
readonly "tools.attr-tokens": "Attr. tokens";
|
|
58
|
+
readonly "tools.share-of-tokens": "{percent} of attributed tokens";
|
|
59
|
+
readonly "tools.attr-cost": "Attr. cost";
|
|
60
|
+
readonly "tools.share-of-cost": "{percent} of attributed cost";
|
|
61
|
+
readonly "tools.last-used": "Last used";
|
|
62
|
+
};
|
|
63
|
+
readonly "zh-CN": {
|
|
64
|
+
readonly "tools.title": "工具";
|
|
65
|
+
readonly "tools.description": "zeta 在{window}调用了哪些工具、它们的失败频率如何,以及产生了多少费用。";
|
|
66
|
+
readonly "tools.tool-calls": "工具调用";
|
|
67
|
+
readonly "tools.failed-n": "{count} 个失败";
|
|
68
|
+
readonly "tools.distinct-tools": "不同工具数";
|
|
69
|
+
readonly "tools.most-used": "使用最多:{tool}";
|
|
70
|
+
readonly "tools.error-rate-title": "返回时被标记为错误的工具结果";
|
|
71
|
+
readonly "tools.succeeded-n": "{count} 个成功";
|
|
72
|
+
readonly "tools.attributed-tokens": "归属 Token";
|
|
73
|
+
readonly "tools.tokens-output": "{tokens} 输出";
|
|
74
|
+
readonly "tools.attributed-cost": "归属费用";
|
|
75
|
+
readonly "tools.attribution-note": "每次调用回合的 Token 与 API 等价费用,平均分摊到该回合的各个工具调用";
|
|
76
|
+
readonly "tools.attribution-estimate": "{note};按 API 等价估算";
|
|
77
|
+
readonly "tools.unpriced-requests-n": "{count} 个未定价请求";
|
|
78
|
+
readonly "tools.api-equivalent": "按 API 等价";
|
|
79
|
+
readonly "tools.result-text": "结果文本";
|
|
80
|
+
readonly "tools.result-chars-title": "回填到上下文中的工具结果文本字符数";
|
|
81
|
+
readonly "tools.chars": "{count} 字符";
|
|
82
|
+
readonly "tools.call-arguments": "调用参数";
|
|
83
|
+
readonly "tools.args-chars-title": "序列化后的工具调用参数字符数";
|
|
84
|
+
readonly "tools.avg-result-per-call": "每次调用平均结果";
|
|
85
|
+
readonly "tools.avg-args-per-call": "每次调用平均参数";
|
|
86
|
+
readonly "tools.calls-over-time": "调用次数随时间变化";
|
|
87
|
+
readonly "tools.errors-over-time": "错误数随时间变化";
|
|
88
|
+
readonly "tools.chart-description": "按{bucket}统计,堆叠显示前 {count} 个工具";
|
|
89
|
+
readonly "tools.bucket-5m": "5 分钟";
|
|
90
|
+
readonly "tools.bucket-hour": "小时";
|
|
91
|
+
readonly "tools.bucket-day": "天";
|
|
92
|
+
readonly "tools.calls": "调用次数";
|
|
93
|
+
readonly "tools.errors": "错误数";
|
|
94
|
+
readonly "tools.no-tool-errors": "该时间范围内没有工具错误";
|
|
95
|
+
readonly "tools.by-tool": "按工具";
|
|
96
|
+
readonly "tools.by-tool-description": "{note}。选择某个工具可按模型细分。";
|
|
97
|
+
readonly "tools.by-tool-and-model": "按工具和模型";
|
|
98
|
+
readonly "tools.by-tool-and-model-description": "哪些模型调用了哪些工具,以及这些调用的失败频率";
|
|
99
|
+
readonly "tools.filter-by-tool": "按工具筛选";
|
|
100
|
+
readonly "tools.all-tools": "全部工具";
|
|
101
|
+
readonly "tools.clear-tool-filter": "清除工具筛选";
|
|
102
|
+
readonly "tools.no-tool-calls": "该时间范围内没有工具调用";
|
|
103
|
+
readonly "tools.no-calls-to-tool": "该时间范围内没有对 {tool} 的调用";
|
|
104
|
+
readonly "tools.tool": "工具";
|
|
105
|
+
readonly "tools.trend": "趋势";
|
|
106
|
+
readonly "tools.trend-title": "时间范围内每个分桶的调用次数";
|
|
107
|
+
readonly "tools.share-of-calls": "占全部工具调用的 {percent}";
|
|
108
|
+
readonly "tools.errors-title": "结果返回时被标记为错误的调用";
|
|
109
|
+
readonly "tools.args": "参数";
|
|
110
|
+
readonly "tools.result": "结果";
|
|
111
|
+
readonly "tools.result-per-call": "结果 / 次";
|
|
112
|
+
readonly "tools.result-per-call-title": "每次调用平均工具结果字符数";
|
|
113
|
+
readonly "tools.attr-tokens": "归属 Token";
|
|
114
|
+
readonly "tools.share-of-tokens": "占归属 Token 的 {percent}";
|
|
115
|
+
readonly "tools.attr-cost": "归属费用";
|
|
116
|
+
readonly "tools.share-of-cost": "占归属费用的 {percent}";
|
|
117
|
+
readonly "tools.last-used": "最近使用";
|
|
118
|
+
};
|
|
119
|
+
};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Traces copy. Keys are slugs (`trace.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const traces: {
|
|
6
|
+
readonly en: {
|
|
7
|
+
readonly "trace.title": "Traces";
|
|
8
|
+
readonly "trace.description": "Recent sessions with subagent activity folded in. Open one to inspect its timeline.";
|
|
9
|
+
readonly "trace.sessions": "Sessions";
|
|
10
|
+
readonly "trace.session": "Session";
|
|
11
|
+
readonly "trace.most-recent": "{count} most recent";
|
|
12
|
+
readonly "trace.most-recent-filtered": "{shown} of {total} most recent";
|
|
13
|
+
readonly "trace.filter-placeholder": "Filter by title, project, model…";
|
|
14
|
+
readonly "trace.empty-title": "No sessions found";
|
|
15
|
+
readonly "trace.empty-hint": "Run a sync to index recent activity.";
|
|
16
|
+
readonly "trace.no-matching-title": "No matching sessions";
|
|
17
|
+
readonly "trace.no-matching-hint": "Try a different filter.";
|
|
18
|
+
readonly "trace.tool": "Tool";
|
|
19
|
+
readonly "trace.tools": "Tools";
|
|
20
|
+
readonly "trace.agent": "Agent";
|
|
21
|
+
readonly "trace.agents": "Agents";
|
|
22
|
+
readonly "trace.background": "Background";
|
|
23
|
+
readonly "trace.bg": "Bg";
|
|
24
|
+
readonly "trace.refresh": "Refresh trace";
|
|
25
|
+
readonly "trace.timeline": "Timeline";
|
|
26
|
+
readonly "trace.timeline-hint": "W/S zoom · A/D pan · drag pan · wheel zoom · 0 fit · F focus selection · dbl-click focus · Esc deselect";
|
|
27
|
+
readonly "trace.expand-all": "Expand all";
|
|
28
|
+
readonly "trace.collapse-all": "Collapse all";
|
|
29
|
+
readonly "trace.axis-mode": "Axis mode";
|
|
30
|
+
readonly "trace.mode-time-title": "Real wall-clock time";
|
|
31
|
+
readonly "trace.mode-turns-title": "Equal width per user turn";
|
|
32
|
+
readonly "trace.mode-calls-title": "Equal width per model/tool call boundary";
|
|
33
|
+
readonly "trace.turns": "Turns";
|
|
34
|
+
readonly "trace.calls": "Calls";
|
|
35
|
+
readonly "trace.compress-idle": "Compress idle";
|
|
36
|
+
readonly "trace.search-placeholder": "Search spans…";
|
|
37
|
+
readonly "trace.previous-match": "Previous match";
|
|
38
|
+
readonly "trace.next-match": "Next match";
|
|
39
|
+
readonly "trace.transcript": "Transcript";
|
|
40
|
+
readonly "trace.transcript-description": "Every span and marker in order; click to inspect";
|
|
41
|
+
readonly "trace.no-matching-events": "No matching events";
|
|
42
|
+
readonly "trace.canvas-aria": "Trace timeline. W and S zoom, A and D pan, 0 fits all, F focuses the selection.";
|
|
43
|
+
readonly "trace.minimap-aria": "Timeline overview brush";
|
|
44
|
+
readonly "trace.expand-track": "Expand {track}";
|
|
45
|
+
readonly "trace.collapse-track": "Collapse {track}";
|
|
46
|
+
readonly "trace.unterminated": "unterminated";
|
|
47
|
+
readonly "trace.tok": "tok";
|
|
48
|
+
readonly "trace.ttft": "TTFT";
|
|
49
|
+
readonly "trace.wall-time": "Wall time";
|
|
50
|
+
readonly "trace.model-time": "Model time";
|
|
51
|
+
readonly "trace.tool-time": "Tool time";
|
|
52
|
+
readonly "trace.idle": "Idle";
|
|
53
|
+
readonly "trace.tool-calls-n": "{count} tool calls";
|
|
54
|
+
readonly "trace.of-wall": "{percent} of wall";
|
|
55
|
+
readonly "trace.tool-aggregates": "Tool aggregates";
|
|
56
|
+
readonly "trace.tool-aggregates-desc": "{count} tools, by total time";
|
|
57
|
+
readonly "trace.errors": "Errors";
|
|
58
|
+
readonly "trace.failed-n": "{count} failed";
|
|
59
|
+
readonly "trace.avg": "Avg";
|
|
60
|
+
readonly "trace.max": "Max";
|
|
61
|
+
readonly "trace.start": "Start";
|
|
62
|
+
readonly "trace.track": "Track";
|
|
63
|
+
readonly "trace.io-cached": "Input / output / cached";
|
|
64
|
+
readonly "trace.stop-reason": "Stop reason";
|
|
65
|
+
readonly "trace.copy-json": "Copy raw JSON";
|
|
66
|
+
readonly "trace.error-message": "Error message";
|
|
67
|
+
readonly "trace.task": "Task";
|
|
68
|
+
readonly "trace.open-child-track": "Open child track";
|
|
69
|
+
readonly "trace.args": "Args";
|
|
70
|
+
readonly "trace.thinking": "Thinking";
|
|
71
|
+
readonly "trace.text": "Text";
|
|
72
|
+
readonly "trace.raw-entry": "Raw entry";
|
|
73
|
+
readonly "trace.load-failed": "Failed to load entry: {message}";
|
|
74
|
+
};
|
|
75
|
+
readonly "zh-CN": {
|
|
76
|
+
readonly "trace.title": "调用链";
|
|
77
|
+
readonly "trace.description": "最近的会话,已合并子代理活动。打开其中一个即可查看其时间线。";
|
|
78
|
+
readonly "trace.sessions": "会话";
|
|
79
|
+
readonly "trace.session": "会话";
|
|
80
|
+
readonly "trace.most-recent": "最近 {count} 条";
|
|
81
|
+
readonly "trace.most-recent-filtered": "最近 {total} 条中的 {shown} 条";
|
|
82
|
+
readonly "trace.filter-placeholder": "按标题、项目或模型筛选…";
|
|
83
|
+
readonly "trace.empty-title": "未找到会话";
|
|
84
|
+
readonly "trace.empty-hint": "运行一次同步以索引最近的活动。";
|
|
85
|
+
readonly "trace.no-matching-title": "没有匹配的会话";
|
|
86
|
+
readonly "trace.no-matching-hint": "请尝试其他筛选条件。";
|
|
87
|
+
readonly "trace.tool": "工具";
|
|
88
|
+
readonly "trace.tools": "工具";
|
|
89
|
+
readonly "trace.agent": "智能体";
|
|
90
|
+
readonly "trace.agents": "智能体";
|
|
91
|
+
readonly "trace.background": "后台";
|
|
92
|
+
readonly "trace.bg": "背景";
|
|
93
|
+
readonly "trace.refresh": "刷新调用链";
|
|
94
|
+
readonly "trace.timeline": "时间线";
|
|
95
|
+
readonly "trace.timeline-hint": "W/S 缩放 · A/D 平移 · 拖拽平移 · 滚轮缩放 · 0 适应全部 · F 聚焦所选 · 双击聚焦 · Esc 取消选择";
|
|
96
|
+
readonly "trace.expand-all": "全部展开";
|
|
97
|
+
readonly "trace.collapse-all": "全部折叠";
|
|
98
|
+
readonly "trace.axis-mode": "坐标轴模式";
|
|
99
|
+
readonly "trace.mode-time-title": "真实墙钟时间";
|
|
100
|
+
readonly "trace.mode-turns-title": "每个用户轮次等宽";
|
|
101
|
+
readonly "trace.mode-calls-title": "每个模型/工具调用边界等宽";
|
|
102
|
+
readonly "trace.turns": "轮次";
|
|
103
|
+
readonly "trace.calls": "调用次数";
|
|
104
|
+
readonly "trace.compress-idle": "压缩空闲时间";
|
|
105
|
+
readonly "trace.search-placeholder": "搜索跨度…";
|
|
106
|
+
readonly "trace.previous-match": "上一个匹配";
|
|
107
|
+
readonly "trace.next-match": "下一个匹配";
|
|
108
|
+
readonly "trace.transcript": "对话记录";
|
|
109
|
+
readonly "trace.transcript-description": "按顺序列出所有跨度和标记;点击可查看详情";
|
|
110
|
+
readonly "trace.no-matching-events": "没有匹配的事件";
|
|
111
|
+
readonly "trace.canvas-aria": "调用链时间线。W 和 S 缩放,A 和 D 平移,0 适应全部,F 聚焦所选。";
|
|
112
|
+
readonly "trace.minimap-aria": "时间线概览刷选";
|
|
113
|
+
readonly "trace.expand-track": "展开 {track}";
|
|
114
|
+
readonly "trace.collapse-track": "折叠 {track}";
|
|
115
|
+
readonly "trace.unterminated": "未结束";
|
|
116
|
+
readonly "trace.tok": "Token";
|
|
117
|
+
readonly "trace.ttft": "首 Token 延迟";
|
|
118
|
+
readonly "trace.wall-time": "墙钟时间";
|
|
119
|
+
readonly "trace.model-time": "模型耗时";
|
|
120
|
+
readonly "trace.tool-time": "工具耗时";
|
|
121
|
+
readonly "trace.idle": "空闲";
|
|
122
|
+
readonly "trace.tool-calls-n": "{count} 次工具调用";
|
|
123
|
+
readonly "trace.of-wall": "占墙钟时间 {percent}";
|
|
124
|
+
readonly "trace.tool-aggregates": "工具汇总";
|
|
125
|
+
readonly "trace.tool-aggregates-desc": "{count} 个工具,按总耗时排序";
|
|
126
|
+
readonly "trace.errors": "错误";
|
|
127
|
+
readonly "trace.failed-n": "{count} 个失败";
|
|
128
|
+
readonly "trace.avg": "平均";
|
|
129
|
+
readonly "trace.max": "最大";
|
|
130
|
+
readonly "trace.start": "开始";
|
|
131
|
+
readonly "trace.track": "轨道";
|
|
132
|
+
readonly "trace.io-cached": "输入 / 输出 / 缓存读取";
|
|
133
|
+
readonly "trace.stop-reason": "停止原因";
|
|
134
|
+
readonly "trace.copy-json": "复制原始 JSON";
|
|
135
|
+
readonly "trace.error-message": "错误信息";
|
|
136
|
+
readonly "trace.task": "任务";
|
|
137
|
+
readonly "trace.open-child-track": "打开子轨道";
|
|
138
|
+
readonly "trace.args": "参数";
|
|
139
|
+
readonly "trace.thinking": "思考过程";
|
|
140
|
+
readonly "trace.text": "文本";
|
|
141
|
+
readonly "trace.raw-entry": "原始条目";
|
|
142
|
+
readonly "trace.load-failed": "加载条目失败:{message}";
|
|
143
|
+
};
|
|
144
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ui copy. Keys are slugs (`ui.<name>`); the English string is the
|
|
3
|
+
* source of truth and `zh-CN` overrides it.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ui: {
|
|
6
|
+
readonly en: {
|
|
7
|
+
readonly "ui.table-shown-of": "{shown} of {total}";
|
|
8
|
+
readonly "ui.show-fewer": "Show fewer";
|
|
9
|
+
readonly "ui.retry": "Retry";
|
|
10
|
+
readonly "ui.delta-new": "new";
|
|
11
|
+
readonly "ui.json": "JSON";
|
|
12
|
+
readonly "ui.trace": "Trace";
|
|
13
|
+
readonly "ui.open-trace": "Open this request's session in the trace view";
|
|
14
|
+
readonly "ui.status-ok": "OK";
|
|
15
|
+
readonly "ui.section-timing": "Timing";
|
|
16
|
+
readonly "ui.time-to-first-token": "Time to first token";
|
|
17
|
+
readonly "ui.uncached-input": "Uncached input";
|
|
18
|
+
readonly "ui.section-cost": "API-equivalent cost";
|
|
19
|
+
readonly "ui.section-identity": "Identity";
|
|
20
|
+
readonly "ui.stop-reason": "Stop reason";
|
|
21
|
+
readonly "ui.api": "API";
|
|
22
|
+
readonly "ui.session-file": "Session file";
|
|
23
|
+
readonly "ui.stats-row": "Stats row";
|
|
24
|
+
};
|
|
25
|
+
readonly "zh-CN": {
|
|
26
|
+
readonly "ui.table-shown-of": "已显示 {shown} / 共 {total}";
|
|
27
|
+
readonly "ui.show-fewer": "收起";
|
|
28
|
+
readonly "ui.retry": "重试";
|
|
29
|
+
readonly "ui.delta-new": "新增";
|
|
30
|
+
readonly "ui.json": "JSON 数据";
|
|
31
|
+
readonly "ui.trace": "调用链";
|
|
32
|
+
readonly "ui.open-trace": "在调用链视图中打开该请求的会话";
|
|
33
|
+
readonly "ui.status-ok": "正常";
|
|
34
|
+
readonly "ui.section-timing": "时间";
|
|
35
|
+
readonly "ui.time-to-first-token": "首 Token 延迟";
|
|
36
|
+
readonly "ui.uncached-input": "未缓存输入";
|
|
37
|
+
readonly "ui.section-cost": "API 等价费用";
|
|
38
|
+
readonly "ui.section-identity": "标识";
|
|
39
|
+
readonly "ui.stop-reason": "停止原因";
|
|
40
|
+
readonly "ui.api": "接口";
|
|
41
|
+
readonly "ui.session-file": "会话文件";
|
|
42
|
+
readonly "ui.stats-row": "统计行";
|
|
43
|
+
};
|
|
44
|
+
};
|