feat(gateway): add /context command for a detailed context-window view

A dedicated /context (alias /ctx) gateway slash command that gives a full
context-window view with:

- Usage gauge: visual bar + fraction + percentage + headroom
- Auto-compression threshold and how far away it is
- Compression count and how much the last one freed
- Cumulative session throughput (explicitly labelled as throughput,
  NOT context size — each call re-sends the window)
- Cascading fallback: running agent → cached agent → SessionStore metadata
  → rough transcript estimate

Not included (per current-main design):
- Cache reporting removed: commit 446b8e239 intentionally removed cache
  reporting from user-facing surfaces because providers that omit cached-token
  details produce misleading values
- Sync DB calls replaced with async_session_store (current main requires
  AsyncSessionStore with await)

Also rewords the /status tokens line from 'Cumulative API tokens (re-sent
each call)' to 'Lifetime tokens billed: ... (not your current context size;
use /context)' to reduce the recurring confusion that the cumulative figure
is the current context window.

Fixes salvation of PR #52184 (salvage commit replaces a 12K-commit-behind
fork branch with a fresh implementation against current main, incorporating
reviewer feedback from @whoislikemiha and the hermes-sweeper).
This commit is contained in:
CharlesMcquade
2026-07-14 22:47:05 -05:00
committed by Teknium
parent 3dccc45032
commit 4fe2fecf54
20 changed files with 654 additions and 22 deletions
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Kon nie tuiste-kanaal stoor nie: {error}"
success: "✅ Tuiste-kanaal gestel op **{name}** (ID: {chat_id}).\nKron-take en kruisplatform-boodskappe sal hier afgelewer word."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes Gateway Status**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Kumulatiewe API-tokens (elke oproep weer gestuur):** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agent loop:** {state}"
state_yes: "Ja ⚡"
state_no: "Nee"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Home-Kanal konnte nicht gespeichert werden: {error}"
success: "✅ Home-Kanal auf **{name}** (ID: {chat_id}) gesetzt.\nCron-Jobs und plattformübergreifende Nachrichten werden hierher geliefert."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes-Gateway-Status**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Modell:** `{model}` ({provider})"
context: "**Kontext:** {used} / {total} ({pct}%)"
context_used: "**Kontext:** ~{used} Tokens"
tokens: "**Kumulierte API-Tokens (bei jedem Aufruf erneut gesendet):** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agent läuft:** {state}"
state_yes: "Ja ⚡"
state_no: "Nein"
+20 -1
View File
@@ -295,6 +295,25 @@ gateway:
save_failed: "Failed to save home channel: {error}"
success: "✅ Home channel set to **{name}** (ID: {chat_id}).\nCron jobs and cross-platform messages will be delivered here."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes Gateway Status**"
matrix_scope_header: "**Matrix scope:**"
@@ -311,7 +330,7 @@ gateway:
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Cumulative API tokens (re-sent each call):** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agent Running:** {state}"
state_yes: "Yes ⚡"
state_no: "No"
+19 -1
View File
@@ -279,6 +279,24 @@ gateway:
set_home:
save_failed: "No se pudo guardar el canal principal: {error}"
success: "✅ Canal principal establecido en **{name}** (ID: {chat_id}).\nLas tareas cron y los mensajes entre plataformas se entregarán aquí."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Estado de Hermes Gateway**"
@@ -296,7 +314,7 @@ gateway:
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Tokens de API acumulados (reenviados en cada llamada):** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agente activo:** {state}"
state_yes: "Sí ⚡"
state_no: "No"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Impossible d'enregistrer le canal principal : {error}"
success: "✅ Canal principal défini sur **{name}** (ID : {chat_id}).\nLes tâches cron et les messages multi-plateformes seront livrés ici."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **État de Hermes Gateway**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Jetons :** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agent en cours :** {state}"
state_yes: "Oui ⚡"
state_no: "Non"
+19 -1
View File
@@ -286,6 +286,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Theip ar shábháil chainéil bhaile: {error}"
success: "✅ Cainéal baile socraithe go **{name}** (ID: {chat_id}).\nSeachadfar tascanna cron agus teachtaireachtaí trasardáin anseo."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Stádas Hermes Gateway**"
@@ -303,7 +321,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Comharthaí:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Gníomhaire ag rith:** {state}"
state_yes: "Tá ⚡"
state_no: "Níl"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Nem sikerült menteni a kezdőcsatornát: {error}"
success: "✅ Kezdőcsatorna beállítva: **{name}** (ID: {chat_id}).\nA cron-feladatok és a platformok közötti üzenetek ide érkeznek."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes Gateway állapot**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Tokenek:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Ügynök fut:** {state}"
state_yes: "Igen ⚡"
state_no: "Nem"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Salvataggio del canale home non riuscito: {error}"
success: "✅ Canale home impostato su **{name}** (ID: {chat_id}).\nI cron job e i messaggi cross-platform verranno consegnati qui."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Stato del Gateway Hermes**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Token:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agente in esecuzione:** {state}"
state_yes: "Sì ⚡"
state_no: "No"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "ホームチャンネルを保存できませんでした: {error}"
success: "✅ ホームチャンネルを **{name}** (ID: {chat_id}) に設定しました。\nCron ジョブとプラットフォーム間メッセージはここに配信されます。"
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes ゲートウェイ状態**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**トークン:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**エージェント実行中:** {state}"
state_yes: "はい ⚡"
state_no: "いいえ"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "홈 채널 저장에 실패했습니다: {error}"
success: "✅ 홈 채널이 **{name}**(ID: {chat_id})(으)로 설정되었습니다.\n크론 작업과 플랫폼 간 메시지가 여기로 전달됩니다."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes 게이트웨이 상태**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**토큰:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**에이전트 실행 중:** {state}"
state_yes: "예 ⚡"
state_no: "아니오"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Falha ao guardar o canal principal: {error}"
success: "✅ Canal principal definido como **{name}** (ID: {chat_id}).\nAs tarefas cron e mensagens entre plataformas serão entregues aqui."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Estado do Hermes Gateway**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Tokens de API cumulativos (reenviados a cada chamada):** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Agente em execução:** {state}"
state_yes: "Sim ⚡"
state_no: "Não"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Не удалось сохранить главный канал: {error}"
success: "✅ Главный канал установлен на **{name}** (ID: {chat_id}).\nCron-задачи и межплатформенные сообщения будут доставляться сюда."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Состояние Hermes Gateway**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Токены:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Агент активен:** {state}"
state_yes: "Да ⚡"
state_no: "Нет"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Ana kanal kaydedilemedi: {error}"
success: "✅ Ana kanal **{name}** (ID: {chat_id}) olarak ayarlandı.\nCron işleri ve platformlar arası mesajlar buraya iletilecek."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes Gateway Durumu**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Token:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Aracı çalışıyor:** {state}"
state_yes: "Evet ⚡"
state_no: "Hayır"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "Не вдалося зберегти головний канал: {error}"
success: "✅ Головний канал встановлено на **{name}** (ID: {chat_id}).\nCron-завдання та міжплатформні повідомлення доставлятимуться сюди."
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Стан Hermes Gateway**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Токени:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**Агент активний:** {state}"
state_yes: "Так ⚡"
state_no: "Ні"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "無法儲存主頻道:{error}"
success: "✅ 主頻道已設定為 **{name}**(ID:{chat_id})。\n排程任務和跨平台訊息將傳送至此處。"
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes 閘道狀態**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Token 數:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**代理執行中:** {state}"
state_yes: "是 ⚡"
state_no: "否"
+19 -1
View File
@@ -282,6 +282,24 @@ Future messages in this room will use that transcript until `/reset` or another
set_home:
save_failed: "无法保存主频道:{error}"
success: "✅ 主频道已设置为 **{name}**(ID:{chat_id})。\n定时任务和跨平台消息将发送到此处。"
context:
header: "🧠 **Context Window**"
model: "Model: `{model}`"
window: "Window: {total} tokens"
in_use: "In use: {used} / {total} ({pct}%)"
bar: "{bar}"
headroom: "Headroom to limit: {headroom} tokens"
threshold: "Auto-compresses at: {threshold} ({threshold_pct}%) — {to_go} to go"
over_threshold: "⚠️ **Over auto-compression threshold ({threshold}, {threshold_pct}%)**"
compressions: "Compressions this session: {count}"
last_savings: "Last compression freed: {savings}% of context"
totals_header: "Session totals (cumulative across {calls} API calls)"
totals_line: "Input {input} · Output {output} · Reasoning {reasoning}"
total_billed: "Total billed: {total}"
throughput_note: "_Throughput, not context size — each call re-sends the window above._"
estimated: "Estimated context: ~{count} tokens across {messages} messages"
detail_after_first: "_(Full compression and throughput stats available after the first agent response)_"
no_data: "No context data available yet. Send a message to start a session."
status:
header: "📊 **Hermes 网关状态**"
@@ -299,7 +317,7 @@ Future messages in this room will use that transcript until `/reset` or another
model_provider: "**Model:** `{model}` ({provider})"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Token 数:** {tokens}"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
agent_running: "**代理运行中:** {state}"
state_yes: "是 ⚡"
state_no: "否"