opencode-deepseek-peak 0.2.0 → 0.2.3

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/dist/tui-v1.js CHANGED
@@ -5893,261 +5893,6 @@ var require_jalaali_js = __commonJS({
5893
5893
  // src/v1/tui.tsx
5894
5894
  import { createMemo, createSignal, For, Show } from "solid-js";
5895
5895
 
5896
- // src/core/display.ts
5897
- function statusLabel(status, t) {
5898
- const period = t(status.period === "peak" ? "period.peak" : "period.offPeak");
5899
- const correction = status.mismatch ? ` \xB7 API \u2260 ${t("evidence.schedule")}` : "";
5900
- return `DeepSeek ${period}${correction}`;
5901
- }
5902
- var HOLIDAY_KEYS = {
5903
- "Mid-Autumn Festival": "holiday.midAutumn",
5904
- "National Day": "holiday.nationalDay",
5905
- "Spring Festival": "holiday.springFestival",
5906
- "Qingming Festival": "holiday.qingming",
5907
- "Dragon Boat Festival": "holiday.dragonBoat",
5908
- "Labour Day": "holiday.labourDay"
5909
- };
5910
- function evidenceLabel(status, t) {
5911
- let label;
5912
- if (status.source === "api-header") {
5913
- label = t("evidence.apiHeader", { header: status.evidence.split(":")[0] });
5914
- } else if (status.holiday) {
5915
- const key = HOLIDAY_KEYS[status.holiday];
5916
- label = t("evidence.holiday", { name: key ? t(key) : status.holiday });
5917
- } else {
5918
- label = t("evidence.schedule");
5919
- }
5920
- if (status.evidence.endsWith("(cached)")) label += ` ${t("evidence.cached")}`;
5921
- if (status.evidence.includes("no request observed yet")) label += ` ${t("evidence.preview")}`;
5922
- return label;
5923
- }
5924
-
5925
- // src/i18n.ts
5926
- var EN_T = {
5927
- "period.peak": "PEAK",
5928
- "period.offPeak": "OFF-PEAK",
5929
- "evidence.schedule": "official schedule",
5930
- "evidence.apiHeader": "via {header}",
5931
- "evidence.cached": "(cached)",
5932
- "evidence.preview": "(no request yet)",
5933
- "evidence.holiday": "Holiday: {name}",
5934
- "label.mismatch": "mismatch",
5935
- "toast.title": "DeepSeek pricing",
5936
- "status.title": "DeepSeek Peak",
5937
- "status.noSession": "Open a session first.",
5938
- "status.noRequest": "No DeepSeek request observed in this session yet.",
5939
- "status.source": "Source",
5940
- "status.evidence": "Evidence",
5941
- "status.unavailable": "DeepSeek Peak server plugin is unavailable.",
5942
- "command.status.title": "DeepSeek Peak: Show Status",
5943
- "command.status.description": "Show the last observed DeepSeek pricing period",
5944
- "command.sections.title": "DeepSeek Peak: Sections",
5945
- "command.sections.description": "Open the interactive sections menu (Esc to close)",
5946
- "command.lang.title": "DeepSeek Peak: Language",
5947
- "command.lang.description": "Switch display language",
5948
- "settings.title": "DeepSeek Peak sections",
5949
- "settings.toast": "Toast",
5950
- "settings.footer": "Footer indicator",
5951
- "settings.sidebar": "Sidebar indicator",
5952
- "settings.evidence": "Sidebar evidence",
5953
- "settings.frequency": "Toast frequency",
5954
- "settings.lang": "Language",
5955
- "settings.on": "on",
5956
- "settings.off": "off",
5957
- "frequency.change": "on change",
5958
- "frequency.every": "every request",
5959
- "holiday.midAutumn": "Mid-Autumn Festival",
5960
- "holiday.nationalDay": "National Day",
5961
- "holiday.springFestival": "Spring Festival",
5962
- "holiday.qingming": "Qingming Festival",
5963
- "holiday.dragonBoat": "Dragon Boat Festival",
5964
- "holiday.labourDay": "Labour Day"
5965
- };
5966
- var PT_T = {
5967
- "period.peak": "PICO",
5968
- "period.offPeak": "FORA DE PICO",
5969
- "evidence.schedule": "hor\xE1rio oficial",
5970
- "evidence.apiHeader": "via {header}",
5971
- "evidence.cached": "(cache)",
5972
- "evidence.preview": "(sem requisi\xE7\xE3o ainda)",
5973
- "evidence.holiday": "Feriado: {name}",
5974
- "label.mismatch": "divergente",
5975
- "toast.title": "Pre\xE7o DeepSeek",
5976
- "status.title": "DeepSeek Peak",
5977
- "status.noSession": "Abra uma sess\xE3o primeiro.",
5978
- "status.noRequest": "Nenhuma requisi\xE7\xE3o DeepSeek observada nesta sess\xE3o ainda.",
5979
- "status.source": "Fonte",
5980
- "status.evidence": "Evid\xEAncia",
5981
- "status.unavailable": "O plugin de servidor do DeepSeek Peak est\xE1 indispon\xEDvel.",
5982
- "command.status.title": "DeepSeek Peak: Mostrar status",
5983
- "command.status.description": "Mostra o \xFAltimo per\xEDodo de pre\xE7o observado da DeepSeek",
5984
- "command.sections.title": "DeepSeek Peak: Se\xE7\xF5es",
5985
- "command.sections.description": "Abre o menu interativo de se\xE7\xF5es (Esc para fechar)",
5986
- "command.lang.title": "DeepSeek Peak: Idioma",
5987
- "command.lang.description": "Troca o idioma da interface",
5988
- "settings.title": "Se\xE7\xF5es do DeepSeek Peak",
5989
- "settings.toast": "Toast",
5990
- "settings.footer": "Indicador no rodap\xE9",
5991
- "settings.sidebar": "Indicador na barra lateral",
5992
- "settings.evidence": "Evid\xEAncia na barra lateral",
5993
- "settings.frequency": "Frequ\xEAncia do toast",
5994
- "settings.lang": "Idioma",
5995
- "settings.on": "ativado",
5996
- "settings.off": "desativado",
5997
- "frequency.change": "ao mudar",
5998
- "frequency.every": "a cada requisi\xE7\xE3o",
5999
- "holiday.midAutumn": "Festival do Meio do Outono",
6000
- "holiday.nationalDay": "Dia Nacional",
6001
- "holiday.springFestival": "Festival da Primavera",
6002
- "holiday.qingming": "Festival Qingming",
6003
- "holiday.dragonBoat": "Festival do Barco Drag\xE3o",
6004
- "holiday.labourDay": "Dia do Trabalho"
6005
- };
6006
- var ZH_T = {
6007
- "period.peak": "\u9AD8\u5CF0",
6008
- "period.offPeak": "\u4F4E\u8C37",
6009
- "evidence.schedule": "\u5B98\u65B9\u65F6\u6BB5",
6010
- "evidence.apiHeader": "\u6765\u81EA {header}",
6011
- "evidence.cached": "\uFF08\u7F13\u5B58\uFF09",
6012
- "evidence.preview": "\uFF08\u5C1A\u65E0\u8BF7\u6C42\uFF09",
6013
- "evidence.holiday": "\u8282\u5047\u65E5\uFF1A{name}",
6014
- "label.mismatch": "\u4E0D\u4E00\u81F4",
6015
- "toast.title": "DeepSeek \u4EF7\u683C",
6016
- "status.title": "DeepSeek Peak",
6017
- "status.noSession": "\u8BF7\u5148\u6253\u5F00\u4E00\u4E2A\u4F1A\u8BDD\u3002",
6018
- "status.noRequest": "\u6B64\u4F1A\u8BDD\u5C1A\u672A\u89C2\u5BDF\u5230 DeepSeek \u8BF7\u6C42\u3002",
6019
- "status.source": "\u6765\u6E90",
6020
- "status.evidence": "\u8BC1\u636E",
6021
- "status.unavailable": "DeepSeek Peak \u670D\u52A1\u7AEF\u63D2\u4EF6\u4E0D\u53EF\u7528\u3002",
6022
- "command.status.title": "DeepSeek Peak\uFF1A\u663E\u793A\u72B6\u6001",
6023
- "command.status.description": "\u663E\u793A\u6700\u8FD1\u89C2\u5BDF\u5230\u7684 DeepSeek \u4EF7\u683C\u65F6\u6BB5",
6024
- "command.sections.title": "DeepSeek Peak\uFF1A\u677F\u5757",
6025
- "command.sections.description": "\u6253\u5F00\u4EA4\u4E92\u5F0F\u677F\u5757\u83DC\u5355\uFF08Esc \u5173\u95ED\uFF09",
6026
- "command.lang.title": "DeepSeek Peak\uFF1A\u8BED\u8A00",
6027
- "command.lang.description": "\u5207\u6362\u754C\u9762\u8BED\u8A00",
6028
- "settings.title": "DeepSeek Peak \u677F\u5757",
6029
- "settings.toast": "\u901A\u77E5",
6030
- "settings.footer": "\u5E95\u90E8\u6307\u793A\u5668",
6031
- "settings.sidebar": "\u4FA7\u8FB9\u680F\u6307\u793A\u5668",
6032
- "settings.evidence": "\u4FA7\u8FB9\u680F\u8BC1\u636E",
6033
- "settings.frequency": "\u901A\u77E5\u9891\u7387",
6034
- "settings.lang": "\u8BED\u8A00",
6035
- "settings.on": "\u5F00",
6036
- "settings.off": "\u5173",
6037
- "frequency.change": "\u53D8\u5316\u65F6",
6038
- "frequency.every": "\u6BCF\u6B21\u8BF7\u6C42",
6039
- "holiday.midAutumn": "\u4E2D\u79CB\u8282",
6040
- "holiday.nationalDay": "\u56FD\u5E86\u8282",
6041
- "holiday.springFestival": "\u6625\u8282",
6042
- "holiday.qingming": "\u6E05\u660E\u8282",
6043
- "holiday.dragonBoat": "\u7AEF\u5348\u8282",
6044
- "holiday.labourDay": "\u52B3\u52A8\u8282"
6045
- };
6046
- var JA_T = {
6047
- "period.peak": "\u30D4\u30FC\u30AF",
6048
- "period.offPeak": "\u30AA\u30D5\u30D4\u30FC\u30AF",
6049
- "evidence.schedule": "\u516C\u5F0F\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB",
6050
- "evidence.apiHeader": "{header} \u7D4C\u7531",
6051
- "evidence.cached": "\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\uFF09",
6052
- "evidence.preview": "\uFF08\u307E\u3060\u30EA\u30AF\u30A8\u30B9\u30C8\u306A\u3057\uFF09",
6053
- "evidence.holiday": "\u795D\u65E5\uFF1A{name}",
6054
- "label.mismatch": "\u4E0D\u4E00\u81F4",
6055
- "toast.title": "DeepSeek \u6599\u91D1",
6056
- "status.title": "DeepSeek Peak",
6057
- "status.noSession": "\u5148\u306B\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u3044\u3066\u304F\u3060\u3055\u3044\u3002",
6058
- "status.noRequest": "\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u306F\u307E\u3060 DeepSeek \u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
6059
- "status.source": "\u30BD\u30FC\u30B9",
6060
- "status.evidence": "\u30A8\u30D3\u30C7\u30F3\u30B9",
6061
- "status.unavailable": "DeepSeek Peak \u30B5\u30FC\u30D0\u30FC\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002",
6062
- "command.status.title": "DeepSeek Peak\uFF1A\u30B9\u30C6\u30FC\u30BF\u30B9\u8868\u793A",
6063
- "command.status.description": "\u6700\u5F8C\u306B\u89B3\u6E2C\u3057\u305F DeepSeek \u6599\u91D1\u671F\u9593\u3092\u8868\u793A",
6064
- "command.sections.title": "DeepSeek Peak\uFF1A\u30BB\u30AF\u30B7\u30E7\u30F3",
6065
- "command.sections.description": "\u5BFE\u8A71\u5F0F\u30BB\u30AF\u30B7\u30E7\u30F3\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F\uFF08Esc \u3067\u9589\u3058\u308B\uFF09",
6066
- "command.lang.title": "DeepSeek Peak\uFF1A\u8A00\u8A9E",
6067
- "command.lang.description": "\u8868\u793A\u8A00\u8A9E\u3092\u5207\u308A\u66FF\u3048",
6068
- "settings.title": "DeepSeek Peak \u30BB\u30AF\u30B7\u30E7\u30F3",
6069
- "settings.toast": "\u30C8\u30FC\u30B9\u30C8",
6070
- "settings.footer": "\u30D5\u30C3\u30BF\u30FC\u8868\u793A",
6071
- "settings.sidebar": "\u30B5\u30A4\u30C9\u30D0\u30FC\u8868\u793A",
6072
- "settings.evidence": "\u30B5\u30A4\u30C9\u30D0\u30FC\u306E\u30A8\u30D3\u30C7\u30F3\u30B9",
6073
- "settings.frequency": "\u30C8\u30FC\u30B9\u30C8\u983B\u5EA6",
6074
- "settings.lang": "\u8A00\u8A9E",
6075
- "settings.on": "\u30AA\u30F3",
6076
- "settings.off": "\u30AA\u30D5",
6077
- "frequency.change": "\u5909\u66F4\u6642",
6078
- "frequency.every": "\u6BCE\u30EA\u30AF\u30A8\u30B9\u30C8",
6079
- "holiday.midAutumn": "\u4E2D\u79CB\u7BC0",
6080
- "holiday.nationalDay": "\u56FD\u6176\u7BC0",
6081
- "holiday.springFestival": "\u6625\u7BC0",
6082
- "holiday.qingming": "\u6E05\u660E\u7BC0",
6083
- "holiday.dragonBoat": "\u7AEF\u5348\u7BC0",
6084
- "holiday.labourDay": "\u52B4\u50CD\u7BC0"
6085
- };
6086
- var KO_T = {
6087
- "period.peak": "\uD53C\uD06C",
6088
- "period.offPeak": "\uBE44\uD53C\uD06C",
6089
- "evidence.schedule": "\uACF5\uC2DD \uC77C\uC815",
6090
- "evidence.apiHeader": "{header} \uAE30\uC900",
6091
- "evidence.cached": "(\uCE90\uC2DC)",
6092
- "evidence.preview": "(\uC544\uC9C1 \uC694\uCCAD \uC5C6\uC74C)",
6093
- "evidence.holiday": "\uACF5\uD734\uC77C: {name}",
6094
- "label.mismatch": "\uBD88\uC77C\uCE58",
6095
- "toast.title": "DeepSeek \uC694\uAE08",
6096
- "status.title": "DeepSeek Peak",
6097
- "status.noSession": "\uBA3C\uC800 \uC138\uC158\uC744 \uC5EC\uC138\uC694.",
6098
- "status.noRequest": "\uC774 \uC138\uC158\uC5D0\uB294 \uC544\uC9C1 DeepSeek \uC694\uCCAD\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
6099
- "status.source": "\uCD9C\uCC98",
6100
- "status.evidence": "\uADFC\uAC70",
6101
- "status.unavailable": "DeepSeek Peak \uC11C\uBC84 \uD50C\uB7EC\uADF8\uC778\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
6102
- "command.status.title": "DeepSeek Peak: \uC0C1\uD0DC \uD45C\uC2DC",
6103
- "command.status.description": "\uB9C8\uC9C0\uB9C9\uC73C\uB85C \uAD00\uCE21\uB41C DeepSeek \uC694\uAE08 \uAE30\uAC04 \uD45C\uC2DC",
6104
- "command.sections.title": "DeepSeek Peak: \uC139\uC158",
6105
- "command.sections.description": "\uB300\uD654\uD615 \uC139\uC158 \uBA54\uB274 \uC5F4\uAE30 (Esc \uB2EB\uAE30)",
6106
- "command.lang.title": "DeepSeek Peak: \uC5B8\uC5B4",
6107
- "command.lang.description": "\uD45C\uC2DC \uC5B8\uC5B4 \uC804\uD658",
6108
- "settings.title": "DeepSeek Peak \uC139\uC158",
6109
- "settings.toast": "\uD1A0\uC2A4\uD2B8",
6110
- "settings.footer": "\uD558\uB2E8 \uD45C\uC2DC",
6111
- "settings.sidebar": "\uC0AC\uC774\uB4DC\uBC14 \uD45C\uC2DC",
6112
- "settings.evidence": "\uC0AC\uC774\uB4DC\uBC14 \uADFC\uAC70",
6113
- "settings.frequency": "\uD1A0\uC2A4\uD2B8 \uBE48\uB3C4",
6114
- "settings.lang": "\uC5B8\uC5B4",
6115
- "settings.on": "\uCF1C\uC9D0",
6116
- "settings.off": "\uAEBC\uC9D0",
6117
- "frequency.change": "\uBCC0\uACBD \uC2DC",
6118
- "frequency.every": "\uB9E4 \uC694\uCCAD",
6119
- "holiday.midAutumn": "\uCD94\uC11D",
6120
- "holiday.nationalDay": "\uAD6D\uACBD\uC77C",
6121
- "holiday.springFestival": "\uCD98\uC81C",
6122
- "holiday.qingming": "\uCCAD\uBA85\uC808",
6123
- "holiday.dragonBoat": "\uB2E8\uC624\uC808",
6124
- "holiday.labourDay": "\uB178\uB3D9\uC808"
6125
- };
6126
- var TRANSLATIONS = { en: EN_T, pt: PT_T, zh: ZH_T, ja: JA_T, ko: KO_T };
6127
- var LANG_META = [
6128
- { code: "en", label: "English" },
6129
- { code: "pt", label: "Portugu\xEAs" },
6130
- { code: "zh", label: "\u4E2D\u6587" },
6131
- { code: "ja", label: "\u65E5\u672C\u8A9E" },
6132
- { code: "ko", label: "\uD55C\uAD6D\uC5B4" }
6133
- ];
6134
- function detectLang() {
6135
- const raw = String(process.env.LANG ?? process.env.LC_ALL ?? "").toLowerCase();
6136
- if (raw.includes("zh")) return "zh";
6137
- if (raw.includes("ja")) return "ja";
6138
- if (raw.includes("ko")) return "ko";
6139
- if (raw.includes("pt")) return "pt";
6140
- return "en";
6141
- }
6142
- function createT(getLang) {
6143
- return (key, params) => {
6144
- const table = TRANSLATIONS[getLang()] ?? EN_T;
6145
- const template = table[key] ?? EN_T[key] ?? String(key);
6146
- if (!params) return template;
6147
- return template.replace(/\{(\w+)\}/g, (match, name) => params[name] ?? match);
6148
- };
6149
- }
6150
-
6151
5896
  // node_modules/caldate/src/CalDate.js
6152
5897
  var import_moment_timezone = __toESM(require_moment_timezone2(), 1);
6153
5898
 
@@ -47356,6 +47101,357 @@ function scheduleInfo(date, holidayName = chinesePublicHoliday) {
47356
47101
  if (holiday) return { period: "off-peak", holiday };
47357
47102
  return { period: peakWindow(date) };
47358
47103
  }
47104
+ function utcAt(date, dayOffset, hour) {
47105
+ return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate() + dayOffset, hour));
47106
+ }
47107
+ function isPeakDay(date, holidayName) {
47108
+ const day = date.getUTCDay();
47109
+ return day !== 0 && day !== 6 && holidayName(date) === void 0;
47110
+ }
47111
+ function nextTransition(date, holidayName = chinesePublicHoliday) {
47112
+ if (scheduleInfo(date, holidayName).period === "peak") {
47113
+ return { kind: "peakEnd", at: utcAt(date, 0, date.getUTCHours() < 4 ? 4 : 10) };
47114
+ }
47115
+ for (let offset = 0; offset < 15; offset += 1) {
47116
+ if (!isPeakDay(utcAt(date, offset, 0), holidayName)) continue;
47117
+ for (const hour of [1, 6]) {
47118
+ const candidate = utcAt(date, offset, hour);
47119
+ if (candidate.getTime() > date.getTime()) return { kind: "peakStart", at: candidate };
47120
+ }
47121
+ }
47122
+ return { kind: "peakStart", at: utcAt(date, 1, 1) };
47123
+ }
47124
+
47125
+ // src/core/display.ts
47126
+ function statusLabel(status, t) {
47127
+ const period = t(status.period === "peak" ? "period.peak" : "period.offPeak");
47128
+ const correction = status.mismatch ? ` \xB7 API \u2260 ${t("evidence.schedule")}` : "";
47129
+ return `DeepSeek ${period}${correction}`;
47130
+ }
47131
+ var HOLIDAY_KEYS = {
47132
+ "Mid-Autumn Festival": "holiday.midAutumn",
47133
+ "National Day": "holiday.nationalDay",
47134
+ "Spring Festival": "holiday.springFestival",
47135
+ "Qingming Festival": "holiday.qingming",
47136
+ "Dragon Boat Festival": "holiday.dragonBoat",
47137
+ "Labour Day": "holiday.labourDay"
47138
+ };
47139
+ function zoneDate(date, timeZone) {
47140
+ const parts = new Intl.DateTimeFormat("en-CA", {
47141
+ timeZone,
47142
+ year: "numeric",
47143
+ month: "2-digit",
47144
+ day: "2-digit"
47145
+ }).formatToParts(date);
47146
+ const value = (type) => parts.find((part) => part.type === type)?.value ?? "";
47147
+ return `${value("year")}-${value("month")}-${value("day")}`;
47148
+ }
47149
+ function formatClock(date, timeZone) {
47150
+ const parts = new Intl.DateTimeFormat("en-GB", {
47151
+ timeZone,
47152
+ hour: "2-digit",
47153
+ minute: "2-digit",
47154
+ hourCycle: "h23"
47155
+ }).formatToParts(date);
47156
+ const value = (type) => parts.find((part) => part.type === type)?.value ?? "";
47157
+ return `${value("hour")}:${value("minute")}`;
47158
+ }
47159
+ function formatTransitionAt(at, now, lang, timeZone) {
47160
+ const clock = timeZone === "UTC" ? `${formatClock(at, timeZone)} UTC` : formatClock(at, timeZone);
47161
+ if (zoneDate(at, timeZone) === zoneDate(now, timeZone)) return clock;
47162
+ const weekday = new Intl.DateTimeFormat(lang, { weekday: "short", timeZone }).format(at);
47163
+ return `${weekday} ${clock}`;
47164
+ }
47165
+ function transitionLabel(t, options = {}) {
47166
+ const now = options.now ?? /* @__PURE__ */ new Date();
47167
+ const next = nextTransition(now);
47168
+ return t(next.kind === "peakEnd" ? "evidence.peakEnds" : "evidence.peakStarts", {
47169
+ when: formatTransitionAt(next.at, now, options.lang ?? "en", options.timeZone)
47170
+ });
47171
+ }
47172
+ function transitionCompact(options = {}) {
47173
+ const now = options.now ?? /* @__PURE__ */ new Date();
47174
+ const next = nextTransition(now);
47175
+ const arrow = next.kind === "peakEnd" ? "\u25BC" : "\u25B2";
47176
+ return `${arrow} ${formatTransitionAt(next.at, now, options.lang ?? "en", options.timeZone)}`;
47177
+ }
47178
+ function evidenceLabel(status, t, options = {}) {
47179
+ let label;
47180
+ let transition = "";
47181
+ if (status.source === "api-header") {
47182
+ label = t("evidence.apiHeader", { header: status.evidence.split(":")[0] });
47183
+ } else if (status.holiday) {
47184
+ const key = HOLIDAY_KEYS[status.holiday];
47185
+ label = t("evidence.holiday", { name: key ? t(key) : status.holiday });
47186
+ } else {
47187
+ label = t("evidence.schedule");
47188
+ transition = ` \xB7 ${transitionCompact(options)}`;
47189
+ }
47190
+ if (status.evidence.endsWith("(cached)")) label += ` ${t("evidence.cached")}`;
47191
+ if (status.evidence.includes("no request observed yet")) label += t("evidence.preview");
47192
+ return label + transition;
47193
+ }
47194
+
47195
+ // src/i18n.ts
47196
+ var EN_T = {
47197
+ "period.peak": "PEAK",
47198
+ "period.offPeak": "OFF-PEAK",
47199
+ "evidence.schedule": "Official schedule",
47200
+ "evidence.apiHeader": "via {header}",
47201
+ "evidence.cached": "(cached)",
47202
+ "evidence.preview": "*",
47203
+ "evidence.holiday": "Holiday: {name}",
47204
+ "evidence.peakEnds": "peak ends {when}",
47205
+ "evidence.peakStarts": "peak starts {when}",
47206
+ "label.mismatch": "mismatch",
47207
+ "toast.title": "DeepSeek pricing",
47208
+ "status.title": "DeepSeek Peak",
47209
+ "status.noSession": "Open a session first.",
47210
+ "status.noRequest": "No DeepSeek request observed in this session yet.",
47211
+ "status.source": "Source",
47212
+ "status.evidence": "Evidence",
47213
+ "status.windows": "Peak: 01:00\u201304:00 and 06:00\u201310:00 UTC, Mon\u2013Fri, except Chinese public holidays",
47214
+ "status.nextChange": "Next change",
47215
+ "status.unavailable": "DeepSeek Peak server plugin is unavailable.",
47216
+ "command.status.title": "DeepSeek Peak: Show Status",
47217
+ "command.status.description": "Show the last observed DeepSeek pricing period",
47218
+ "command.sections.title": "DeepSeek Peak: Sections",
47219
+ "command.sections.description": "Open the interactive sections menu (Esc to close)",
47220
+ "command.lang.title": "DeepSeek Peak: Language",
47221
+ "command.lang.description": "Switch display language",
47222
+ "settings.title": "DeepSeek Peak sections",
47223
+ "settings.toast": "Toast",
47224
+ "settings.footer": "Footer indicator",
47225
+ "settings.sidebar": "Sidebar indicator",
47226
+ "settings.evidence": "Sidebar evidence",
47227
+ "settings.frequency": "Toast frequency",
47228
+ "settings.lang": "Language",
47229
+ "settings.timezone": "Timezone",
47230
+ "timezone.local": "Local",
47231
+ "timezone.utc": "UTC",
47232
+ "settings.on": "on",
47233
+ "settings.off": "off",
47234
+ "frequency.change": "on change",
47235
+ "frequency.every": "every request",
47236
+ "holiday.midAutumn": "Mid-Autumn Festival",
47237
+ "holiday.nationalDay": "National Day",
47238
+ "holiday.springFestival": "Spring Festival",
47239
+ "holiday.qingming": "Qingming Festival",
47240
+ "holiday.dragonBoat": "Dragon Boat Festival",
47241
+ "holiday.labourDay": "Labour Day"
47242
+ };
47243
+ var PT_T = {
47244
+ "period.peak": "PICO",
47245
+ "period.offPeak": "FORA DE PICO",
47246
+ "evidence.schedule": "Hor\xE1rio oficial",
47247
+ "evidence.apiHeader": "via {header}",
47248
+ "evidence.cached": "(cache)",
47249
+ "evidence.preview": "*",
47250
+ "evidence.holiday": "Feriado: {name}",
47251
+ "evidence.peakEnds": "pico termina {when}",
47252
+ "evidence.peakStarts": "pico come\xE7a {when}",
47253
+ "label.mismatch": "divergente",
47254
+ "toast.title": "Pre\xE7o DeepSeek",
47255
+ "status.title": "DeepSeek Peak",
47256
+ "status.noSession": "Abra uma sess\xE3o primeiro.",
47257
+ "status.noRequest": "Nenhuma requisi\xE7\xE3o DeepSeek observada nesta sess\xE3o ainda.",
47258
+ "status.source": "Fonte",
47259
+ "status.evidence": "Evid\xEAncia",
47260
+ "status.windows": "Pico: 01:00\u201304:00 e 06:00\u201310:00 UTC, seg\u2013sex, exceto feriados chineses",
47261
+ "status.nextChange": "Pr\xF3xima mudan\xE7a",
47262
+ "status.unavailable": "O plugin de servidor do DeepSeek Peak est\xE1 indispon\xEDvel.",
47263
+ "command.status.title": "DeepSeek Peak: Mostrar status",
47264
+ "command.status.description": "Mostra o \xFAltimo per\xEDodo de pre\xE7o observado da DeepSeek",
47265
+ "command.sections.title": "DeepSeek Peak: Se\xE7\xF5es",
47266
+ "command.sections.description": "Abre o menu interativo de se\xE7\xF5es (Esc para fechar)",
47267
+ "command.lang.title": "DeepSeek Peak: Idioma",
47268
+ "command.lang.description": "Troca o idioma da interface",
47269
+ "settings.title": "Se\xE7\xF5es do DeepSeek Peak",
47270
+ "settings.toast": "Toast",
47271
+ "settings.footer": "Indicador no rodap\xE9",
47272
+ "settings.sidebar": "Indicador na barra lateral",
47273
+ "settings.evidence": "Evid\xEAncia na barra lateral",
47274
+ "settings.frequency": "Frequ\xEAncia do toast",
47275
+ "settings.lang": "Idioma",
47276
+ "settings.timezone": "Fuso hor\xE1rio",
47277
+ "timezone.local": "Local",
47278
+ "timezone.utc": "UTC",
47279
+ "settings.on": "ativado",
47280
+ "settings.off": "desativado",
47281
+ "frequency.change": "ao mudar",
47282
+ "frequency.every": "a cada requisi\xE7\xE3o",
47283
+ "holiday.midAutumn": "Festival do Meio do Outono",
47284
+ "holiday.nationalDay": "Dia Nacional",
47285
+ "holiday.springFestival": "Festival da Primavera",
47286
+ "holiday.qingming": "Festival Qingming",
47287
+ "holiday.dragonBoat": "Festival do Barco Drag\xE3o",
47288
+ "holiday.labourDay": "Dia do Trabalho"
47289
+ };
47290
+ var ZH_T = {
47291
+ "period.peak": "\u9AD8\u5CF0",
47292
+ "period.offPeak": "\u4F4E\u8C37",
47293
+ "evidence.schedule": "\u5B98\u65B9\u65F6\u6BB5",
47294
+ "evidence.apiHeader": "\u6765\u81EA {header}",
47295
+ "evidence.cached": "\uFF08\u7F13\u5B58\uFF09",
47296
+ "evidence.preview": "*",
47297
+ "evidence.holiday": "\u8282\u5047\u65E5\uFF1A{name}",
47298
+ "evidence.peakEnds": "\u9AD8\u5CF0\u4E8E {when} \u7ED3\u675F",
47299
+ "evidence.peakStarts": "\u9AD8\u5CF0\u4E8E {when} \u5F00\u59CB",
47300
+ "label.mismatch": "\u4E0D\u4E00\u81F4",
47301
+ "toast.title": "DeepSeek \u4EF7\u683C",
47302
+ "status.title": "DeepSeek Peak",
47303
+ "status.noSession": "\u8BF7\u5148\u6253\u5F00\u4E00\u4E2A\u4F1A\u8BDD\u3002",
47304
+ "status.noRequest": "\u6B64\u4F1A\u8BDD\u5C1A\u672A\u89C2\u5BDF\u5230 DeepSeek \u8BF7\u6C42\u3002",
47305
+ "status.source": "\u6765\u6E90",
47306
+ "status.evidence": "\u8BC1\u636E",
47307
+ "status.windows": "\u9AD8\u5CF0\u65F6\u6BB5\uFF1A01:00\u201304:00\u300106:00\u201310:00 UTC\uFF0C\u5468\u4E00\u81F3\u5468\u4E94\uFF0C\u4E2D\u56FD\u6CD5\u5B9A\u8282\u5047\u65E5\u9664\u5916",
47308
+ "status.nextChange": "\u4E0B\u6B21\u53D8\u5316",
47309
+ "status.unavailable": "DeepSeek Peak \u670D\u52A1\u7AEF\u63D2\u4EF6\u4E0D\u53EF\u7528\u3002",
47310
+ "command.status.title": "DeepSeek Peak\uFF1A\u663E\u793A\u72B6\u6001",
47311
+ "command.status.description": "\u663E\u793A\u6700\u8FD1\u89C2\u5BDF\u5230\u7684 DeepSeek \u4EF7\u683C\u65F6\u6BB5",
47312
+ "command.sections.title": "DeepSeek Peak\uFF1A\u677F\u5757",
47313
+ "command.sections.description": "\u6253\u5F00\u4EA4\u4E92\u5F0F\u677F\u5757\u83DC\u5355\uFF08Esc \u5173\u95ED\uFF09",
47314
+ "command.lang.title": "DeepSeek Peak\uFF1A\u8BED\u8A00",
47315
+ "command.lang.description": "\u5207\u6362\u754C\u9762\u8BED\u8A00",
47316
+ "settings.title": "DeepSeek Peak \u677F\u5757",
47317
+ "settings.toast": "\u901A\u77E5",
47318
+ "settings.footer": "\u5E95\u90E8\u6307\u793A\u5668",
47319
+ "settings.sidebar": "\u4FA7\u8FB9\u680F\u6307\u793A\u5668",
47320
+ "settings.evidence": "\u4FA7\u8FB9\u680F\u8BC1\u636E",
47321
+ "settings.frequency": "\u901A\u77E5\u9891\u7387",
47322
+ "settings.lang": "\u8BED\u8A00",
47323
+ "settings.timezone": "\u65F6\u533A",
47324
+ "timezone.local": "\u672C\u5730",
47325
+ "timezone.utc": "UTC",
47326
+ "settings.on": "\u5F00",
47327
+ "settings.off": "\u5173",
47328
+ "frequency.change": "\u53D8\u5316\u65F6",
47329
+ "frequency.every": "\u6BCF\u6B21\u8BF7\u6C42",
47330
+ "holiday.midAutumn": "\u4E2D\u79CB\u8282",
47331
+ "holiday.nationalDay": "\u56FD\u5E86\u8282",
47332
+ "holiday.springFestival": "\u6625\u8282",
47333
+ "holiday.qingming": "\u6E05\u660E\u8282",
47334
+ "holiday.dragonBoat": "\u7AEF\u5348\u8282",
47335
+ "holiday.labourDay": "\u52B3\u52A8\u8282"
47336
+ };
47337
+ var JA_T = {
47338
+ "period.peak": "\u30D4\u30FC\u30AF",
47339
+ "period.offPeak": "\u30AA\u30D5\u30D4\u30FC\u30AF",
47340
+ "evidence.schedule": "\u516C\u5F0F\u30B9\u30B1\u30B8\u30E5\u30FC\u30EB",
47341
+ "evidence.apiHeader": "{header} \u7D4C\u7531",
47342
+ "evidence.cached": "\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\uFF09",
47343
+ "evidence.preview": "*",
47344
+ "evidence.holiday": "\u795D\u65E5\uFF1A{name}",
47345
+ "evidence.peakEnds": "\u30D4\u30FC\u30AF\u306F {when} \u306B\u7D42\u4E86",
47346
+ "evidence.peakStarts": "\u30D4\u30FC\u30AF\u306F {when} \u306B\u958B\u59CB",
47347
+ "label.mismatch": "\u4E0D\u4E00\u81F4",
47348
+ "toast.title": "DeepSeek \u6599\u91D1",
47349
+ "status.title": "DeepSeek Peak",
47350
+ "status.noSession": "\u5148\u306B\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u958B\u3044\u3066\u304F\u3060\u3055\u3044\u3002",
47351
+ "status.noRequest": "\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u306F\u307E\u3060 DeepSeek \u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
47352
+ "status.source": "\u30BD\u30FC\u30B9",
47353
+ "status.evidence": "\u30A8\u30D3\u30C7\u30F3\u30B9",
47354
+ "status.windows": "\u30D4\u30FC\u30AF\uFF1A01:00\u201304:00\u300106:00\u201310:00 UTC\u3001\u6708\u301C\u91D1\u3001\u4E2D\u56FD\u306E\u795D\u65E5\u3092\u9664\u304F",
47355
+ "status.nextChange": "\u6B21\u306E\u5207\u308A\u66FF\u3048",
47356
+ "status.unavailable": "DeepSeek Peak \u30B5\u30FC\u30D0\u30FC\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002",
47357
+ "command.status.title": "DeepSeek Peak\uFF1A\u30B9\u30C6\u30FC\u30BF\u30B9\u8868\u793A",
47358
+ "command.status.description": "\u6700\u5F8C\u306B\u89B3\u6E2C\u3057\u305F DeepSeek \u6599\u91D1\u671F\u9593\u3092\u8868\u793A",
47359
+ "command.sections.title": "DeepSeek Peak\uFF1A\u30BB\u30AF\u30B7\u30E7\u30F3",
47360
+ "command.sections.description": "\u5BFE\u8A71\u5F0F\u30BB\u30AF\u30B7\u30E7\u30F3\u30E1\u30CB\u30E5\u30FC\u3092\u958B\u304F\uFF08Esc \u3067\u9589\u3058\u308B\uFF09",
47361
+ "command.lang.title": "DeepSeek Peak\uFF1A\u8A00\u8A9E",
47362
+ "command.lang.description": "\u8868\u793A\u8A00\u8A9E\u3092\u5207\u308A\u66FF\u3048",
47363
+ "settings.title": "DeepSeek Peak \u30BB\u30AF\u30B7\u30E7\u30F3",
47364
+ "settings.toast": "\u30C8\u30FC\u30B9\u30C8",
47365
+ "settings.footer": "\u30D5\u30C3\u30BF\u30FC\u8868\u793A",
47366
+ "settings.sidebar": "\u30B5\u30A4\u30C9\u30D0\u30FC\u8868\u793A",
47367
+ "settings.evidence": "\u30B5\u30A4\u30C9\u30D0\u30FC\u306E\u30A8\u30D3\u30C7\u30F3\u30B9",
47368
+ "settings.frequency": "\u30C8\u30FC\u30B9\u30C8\u983B\u5EA6",
47369
+ "settings.lang": "\u8A00\u8A9E",
47370
+ "settings.timezone": "\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3",
47371
+ "timezone.local": "\u30ED\u30FC\u30AB\u30EB",
47372
+ "timezone.utc": "UTC",
47373
+ "settings.on": "\u30AA\u30F3",
47374
+ "settings.off": "\u30AA\u30D5",
47375
+ "frequency.change": "\u5909\u66F4\u6642",
47376
+ "frequency.every": "\u6BCE\u30EA\u30AF\u30A8\u30B9\u30C8",
47377
+ "holiday.midAutumn": "\u4E2D\u79CB\u7BC0",
47378
+ "holiday.nationalDay": "\u56FD\u6176\u7BC0",
47379
+ "holiday.springFestival": "\u6625\u7BC0",
47380
+ "holiday.qingming": "\u6E05\u660E\u7BC0",
47381
+ "holiday.dragonBoat": "\u7AEF\u5348\u7BC0",
47382
+ "holiday.labourDay": "\u52B4\u50CD\u7BC0"
47383
+ };
47384
+ var KO_T = {
47385
+ "period.peak": "\uD53C\uD06C",
47386
+ "period.offPeak": "\uBE44\uD53C\uD06C",
47387
+ "evidence.schedule": "\uACF5\uC2DD \uC77C\uC815",
47388
+ "evidence.apiHeader": "{header} \uAE30\uC900",
47389
+ "evidence.cached": "(\uCE90\uC2DC)",
47390
+ "evidence.preview": "*",
47391
+ "evidence.holiday": "\uACF5\uD734\uC77C: {name}",
47392
+ "evidence.peakEnds": "\uD53C\uD06C {when} \uC885\uB8CC",
47393
+ "evidence.peakStarts": "\uD53C\uD06C {when} \uC2DC\uC791",
47394
+ "label.mismatch": "\uBD88\uC77C\uCE58",
47395
+ "toast.title": "DeepSeek \uC694\uAE08",
47396
+ "status.title": "DeepSeek Peak",
47397
+ "status.noSession": "\uBA3C\uC800 \uC138\uC158\uC744 \uC5EC\uC138\uC694.",
47398
+ "status.noRequest": "\uC774 \uC138\uC158\uC5D0\uB294 \uC544\uC9C1 DeepSeek \uC694\uCCAD\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
47399
+ "status.source": "\uCD9C\uCC98",
47400
+ "status.evidence": "\uADFC\uAC70",
47401
+ "status.windows": "\uD53C\uD06C: 01:00\u201304:00, 06:00\u201310:00 UTC, \uC6D4\u2013\uAE08, \uC911\uAD6D \uACF5\uD734\uC77C \uC81C\uC678",
47402
+ "status.nextChange": "\uB2E4\uC74C \uC804\uD658",
47403
+ "status.unavailable": "DeepSeek Peak \uC11C\uBC84 \uD50C\uB7EC\uADF8\uC778\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
47404
+ "command.status.title": "DeepSeek Peak: \uC0C1\uD0DC \uD45C\uC2DC",
47405
+ "command.status.description": "\uB9C8\uC9C0\uB9C9\uC73C\uB85C \uAD00\uCE21\uB41C DeepSeek \uC694\uAE08 \uAE30\uAC04 \uD45C\uC2DC",
47406
+ "command.sections.title": "DeepSeek Peak: \uC139\uC158",
47407
+ "command.sections.description": "\uB300\uD654\uD615 \uC139\uC158 \uBA54\uB274 \uC5F4\uAE30 (Esc \uB2EB\uAE30)",
47408
+ "command.lang.title": "DeepSeek Peak: \uC5B8\uC5B4",
47409
+ "command.lang.description": "\uD45C\uC2DC \uC5B8\uC5B4 \uC804\uD658",
47410
+ "settings.title": "DeepSeek Peak \uC139\uC158",
47411
+ "settings.toast": "\uD1A0\uC2A4\uD2B8",
47412
+ "settings.footer": "\uD558\uB2E8 \uD45C\uC2DC",
47413
+ "settings.sidebar": "\uC0AC\uC774\uB4DC\uBC14 \uD45C\uC2DC",
47414
+ "settings.evidence": "\uC0AC\uC774\uB4DC\uBC14 \uADFC\uAC70",
47415
+ "settings.frequency": "\uD1A0\uC2A4\uD2B8 \uBE48\uB3C4",
47416
+ "settings.lang": "\uC5B8\uC5B4",
47417
+ "settings.timezone": "\uC2DC\uAC04\uB300",
47418
+ "timezone.local": "\uB85C\uCEEC",
47419
+ "timezone.utc": "UTC",
47420
+ "settings.on": "\uCF1C\uC9D0",
47421
+ "settings.off": "\uAEBC\uC9D0",
47422
+ "frequency.change": "\uBCC0\uACBD \uC2DC",
47423
+ "frequency.every": "\uB9E4 \uC694\uCCAD",
47424
+ "holiday.midAutumn": "\uCD94\uC11D",
47425
+ "holiday.nationalDay": "\uAD6D\uACBD\uC77C",
47426
+ "holiday.springFestival": "\uCD98\uC81C",
47427
+ "holiday.qingming": "\uCCAD\uBA85\uC808",
47428
+ "holiday.dragonBoat": "\uB2E8\uC624\uC808",
47429
+ "holiday.labourDay": "\uB178\uB3D9\uC808"
47430
+ };
47431
+ var TRANSLATIONS = { en: EN_T, pt: PT_T, zh: ZH_T, ja: JA_T, ko: KO_T };
47432
+ var LANG_META = [
47433
+ { code: "en", label: "English" },
47434
+ { code: "pt", label: "Portugu\xEAs" },
47435
+ { code: "zh", label: "\u4E2D\u6587" },
47436
+ { code: "ja", label: "\u65E5\u672C\u8A9E" },
47437
+ { code: "ko", label: "\uD55C\uAD6D\uC5B4" }
47438
+ ];
47439
+ function detectLang() {
47440
+ const raw = String(process.env.LANG ?? process.env.LC_ALL ?? "").toLowerCase();
47441
+ if (raw.includes("zh")) return "zh";
47442
+ if (raw.includes("ja")) return "ja";
47443
+ if (raw.includes("ko")) return "ko";
47444
+ if (raw.includes("pt")) return "pt";
47445
+ return "en";
47446
+ }
47447
+ function createT(getLang) {
47448
+ return (key, params) => {
47449
+ const table = TRANSLATIONS[getLang()] ?? EN_T;
47450
+ const template = table[key] ?? EN_T[key] ?? String(key);
47451
+ if (!params) return template;
47452
+ return template.replace(/\{(\w+)\}/g, (match, name) => params[name] ?? match);
47453
+ };
47454
+ }
47359
47455
 
47360
47456
  // src/v1/tui.tsx
47361
47457
  import { jsx, jsxs } from "@opentui/solid/jsx-runtime";
@@ -47364,7 +47460,8 @@ var KV = {
47364
47460
  sidebar: "deepseek-peak.sidebar",
47365
47461
  evidence: "deepseek-peak.evidence",
47366
47462
  footer: "deepseek-peak.footer",
47367
- toast: "deepseek-peak.toast"
47463
+ toast: "deepseek-peak.toast",
47464
+ timezone: "deepseek-peak.timezone"
47368
47465
  };
47369
47466
  var REFRESH_MS = 3e4;
47370
47467
  function stringList(value, fallback) {
@@ -47383,7 +47480,7 @@ function createStatus(sessionID) {
47383
47480
  mismatch: false,
47384
47481
  observedAt: Date.now(),
47385
47482
  evidence: schedule.holiday ? `Chinese public holiday: ${schedule.holiday}` : "DeepSeek official UTC pricing schedule",
47386
- holiday: schedule.holiday
47483
+ ...schedule.holiday !== void 0 ? { holiday: schedule.holiday } : {}
47387
47484
  };
47388
47485
  }
47389
47486
  function StatusPanel(props) {
@@ -47401,7 +47498,7 @@ function StatusPanel(props) {
47401
47498
  });
47402
47499
  return /* @__PURE__ */ jsxs("box", { flexDirection: "column", alignItems: "flex-start", alignSelf: "flex-start", children: [
47403
47500
  /* @__PURE__ */ jsx("text", { children: /* @__PURE__ */ jsx(For, { each: segments(), children: (segment) => /* @__PURE__ */ jsx("span", { style: { fg: segment.color }, children: segment.text }) }) }),
47404
- /* @__PURE__ */ jsx(Show, { when: props.evidence(), children: /* @__PURE__ */ jsx("text", { fg: props.colors().textMuted, children: evidenceLabel(props.status(), t) }) })
47501
+ /* @__PURE__ */ jsx(Show, { when: props.evidence(), children: /* @__PURE__ */ jsx("text", { wrapMode: "none", fg: props.colors().textMuted, children: evidenceLabel(props.status(), t, { lang: props.lang(), timeZone: props.timeZone() }) }) })
47405
47502
  ] });
47406
47503
  }
47407
47504
  function StatusFooter(props) {
@@ -47424,9 +47521,11 @@ var tui = async (api, options) => {
47424
47521
  const [showEvidence, setShowEvidence] = createSignal(true);
47425
47522
  const [showFooter, setShowFooter] = createSignal(true);
47426
47523
  const [showToast, setShowToast] = createSignal(true);
47524
+ const [utcZone, setUtcZone] = createSignal(false);
47427
47525
  const [status, setStatus] = createSignal(createStatus(""));
47428
47526
  const [revision, setRevision] = createSignal(0);
47429
47527
  const t = createT(lang);
47528
+ const timeZone = () => utcZone() ? "UTC" : void 0;
47430
47529
  const restore = () => {
47431
47530
  const stored = String(api.kv.get(KV.lang, "") ?? "");
47432
47531
  if (LANG_META.some((meta) => meta.code === stored)) setLang(stored);
@@ -47434,6 +47533,7 @@ var tui = async (api, options) => {
47434
47533
  setShowEvidence(api.kv.get(KV.evidence, true) !== false);
47435
47534
  setShowFooter(api.kv.get(KV.footer, true) !== false);
47436
47535
  setShowToast(api.kv.get(KV.toast, true) !== false);
47536
+ setUtcZone(String(api.kv.get(KV.timezone, "local") ?? "local") === "utc");
47437
47537
  };
47438
47538
  if (api.kv.ready) {
47439
47539
  restore();
@@ -47491,7 +47591,8 @@ var tui = async (api, options) => {
47491
47591
  colors: () => ctx.theme.current,
47492
47592
  status: () => status(),
47493
47593
  lang,
47494
- evidence: () => showEvidence()
47594
+ evidence: () => showEvidence(),
47595
+ timeZone
47495
47596
  }
47496
47597
  ) });
47497
47598
  }
@@ -47516,7 +47617,11 @@ var tui = async (api, options) => {
47516
47617
  { title: `${t("settings.sidebar")}: ${onOff(showSidebar())}`, value: "sidebar" },
47517
47618
  { title: `${t("settings.evidence")}: ${onOff(showEvidence())}`, value: "evidence" },
47518
47619
  { title: `${t("settings.footer")}: ${onOff(showFooter())}`, value: "footer" },
47519
- { title: `${t("settings.toast")}: ${onOff(showToast())}`, value: "toast" }
47620
+ { title: `${t("settings.toast")}: ${onOff(showToast())}`, value: "toast" },
47621
+ {
47622
+ title: `${t("settings.timezone")}: ${utcZone() ? t("timezone.utc") : t("timezone.local")}`,
47623
+ value: "timezone"
47624
+ }
47520
47625
  ],
47521
47626
  onSelect: (option) => {
47522
47627
  if (option.value === "sidebar") {
@@ -47535,6 +47640,10 @@ var tui = async (api, options) => {
47535
47640
  const value = !showToast();
47536
47641
  setShowToast(value);
47537
47642
  api.kv.set(KV.toast, value);
47643
+ } else if (option.value === "timezone") {
47644
+ const value = !utcZone();
47645
+ setUtcZone(value);
47646
+ api.kv.set(KV.timezone, value ? "utc" : "local");
47538
47647
  }
47539
47648
  openSections(dialog);
47540
47649
  }
@@ -47549,15 +47658,14 @@ var tui = async (api, options) => {
47549
47658
  slash: { name: "deepseek-peak" },
47550
47659
  onSelect: (dialog) => {
47551
47660
  const current = status();
47552
- dialog?.replace(() => /* @__PURE__ */ jsx(
47553
- api.ui.DialogAlert,
47554
- {
47555
- title: t("status.title"),
47556
- message: `${statusLabel(current, t)}
47557
- ${t("status.source")}: ${current.source}
47558
- ${t("status.evidence")}: ${current.evidence}`
47559
- }
47560
- ));
47661
+ const message = [
47662
+ statusLabel(current, t),
47663
+ `${t("status.source")}: ${current.source}`,
47664
+ `${t("status.evidence")}: ${current.evidence}`,
47665
+ t("status.windows"),
47666
+ `${t("status.nextChange")}: ${transitionLabel(t, { lang: lang(), timeZone: timeZone() })}`
47667
+ ].join("\n");
47668
+ dialog?.replace(() => /* @__PURE__ */ jsx(api.ui.DialogAlert, { title: t("status.title"), message }));
47561
47669
  }
47562
47670
  },
47563
47671
  {