dsh-switchman 1.11.5 → 1.11.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.de.md CHANGED
@@ -102,7 +102,7 @@ Alles Folgende sind die vollständigen Werte direkt nach der Neuinstallation (ma
102
102
 
103
103
  **Intent-Routing** (ab Werk unbrauchbar; nötig sind Klassifikator + mindestens ein Kandidat + der Hauptschalter): `intentEnabled` = aus (ist er aus, bleibt der Auto-Eintrag verborgen, und Sessions, die bereits Auto gewählt hatten, laufen über die Fallback-Kette); Klassifikator-Route nicht gesetzt; Klassifikatortyp `chat`; Kandidatenliste leer (die mitgelieferten Kategorien nehmen erst mit eingetragenem Modell am Routing teil); Cache-Fenster `300` s / Umschalt-Vertrauensschwelle `80` / Klassifikations-Timeout `60000` ms; Verlauf `6` Nachrichten / `2400` Zeichen; `intentContextWindow` = `200000`.
104
104
 
105
- **Kontext-Trimming**: `trimEnabled` = an; `trimMode` = `auto` (vollautomatisch); Wachstumsschwelle `22500` + Zuwachs `25000` Tokens; Druck `65%` / Notfall `95%`; geschütztes Ende `10` Nachrichten; Fold-Takt-Obergrenze `30` pro Stunde; Nebenmodell nicht gesetzt (erbt das Session-Modell) — Details im Abschnitt „Automatisches Kontext-Trimming“ unten.
105
+ **Kontext-Trimming**: `trimEnabled` = an; `trimMode` = `auto` (vollautomatisch); Wachstumsschwelle `22500` + Zuwachs `25000` Tokens; Druck `65%` / Notfall `95%`; Advisory-Hinweis `65%` / `95%`; geschütztes Ende `10` Nachrichten; Fold-Takt-Obergrenze `30` pro Stunde; Nebenmodell nicht gesetzt (erbt das Session-Modell) — Details im Abschnitt „Automatisches Kontext-Trimming“ unten.
106
106
 
107
107
  **Out-of-the-Box-Anmerkungen**: ① dass Intent-Routing ab Werk unbrauchbar ist, ist Absicht — drei Schritte zum Einschalten (Klassifikator, Kandidaten, Schalter); ② das wirksame Auto-Fenster steht ab Werk auf 200000 — die Leitplanke garantiert 0.8×Fenster ≥ force (150000), die Kern-Komprimierlinie (160000) liegt also stets hinter der Linie der weichen Übergabe (150000); ③ am spürbarsten ab Werk ist das Wasserstands-Trio: 80k mahnt zur Delegation / 95k strafft das Lesen / 150k übergibt automatisch (Dokument schreiben + Komprimierung) — ganz ohne Einstellungen.
108
108
 
@@ -113,7 +113,7 @@ Lange Sessions bleiben günstig: verarbeitete Gesprächsbereiche werden zu kompa
113
113
  Automatisierungsstufen (`trimMode`):
114
114
 
115
115
  - **`off`** — nur messen: Usage- und Cache-Hit-Sampling läuft weiter; kein Banner, keine Folds.
116
- - **`advisory`** — das Session-Modell faltet selbst: die Tools `ctx_trim_fold` und `ctx_trim_status` plus der Protokollkopf werden dafür freigegeben.
116
+ - **`advisory`** — das Session-Modell faltet selbst: die Tools `ctx_trim_fold` und `ctx_trim_status` plus der Protokollkopf werden dafür freigegeben. Erreicht der Sitzungsdruck `trimAdvisoryPercent` des effektiven Fensters, hängt die Engine einen einmaligen, angehefteten Fold-Hinweis als `user/message`-Suffix an das Ende der Live-Session-Surface an (nicht an den Systemkopf des Dispatchs) — bei Eskalation auf critical sofort erneut, unterhalb der Linie wird er entfernt.
117
117
  - **`auto`** (Standard) — alles darüber hinaus plus automatische Folds an der Leerlauf-Grenze, in drei Stufen: eine Wachstumsschwelle (Zuwachs > `trimGrowthTokens`, gemessen ab dem Tiefpunkt nach dem letzten Fold — der Anker, der die Schwelle nach Folds auf hohem View-Stand scharf hält — UND ein zusammenhängender komprimierbarer Zuwachs ≥ `trimIncrementTokens`), eine Druckstufe (`trimPressurePercent` des Kontextfensters) und eine Notfallstufe (`trimEmergencyPercent` — ein mechanischer Fold mit eigener Abklingzeit).
118
118
 
119
119
  Alle Schlüssel liegen unter Einstellungen → dsh-switchman; Defaults aus `host/config.js`:
@@ -126,6 +126,8 @@ Alle Schlüssel liegen unter Einstellungen → dsh-switchman; Defaults aus `host
126
126
  | `trimIncrementTokens` | `25000` | Schwellen-Begleiter: der zusammenhängende komprimierbare Zuwachs muss ebenfalls diese Größe erreichen. |
127
127
  | `trimPressurePercent` | `65` | Druckstufe: falte, wenn die View-Nutzung diesen Prozentsatz des Kontextfensters erreicht. |
128
128
  | `trimEmergencyPercent` | `95` | Notfallstufe: erzwungener mechanischer Fold (kein Nebenmodell-Aufruf) bei diesem Prozentsatz. |
129
+ | `trimAdvisoryPercent` | `65` | Advisory-Hinweislinie: bei diesem Prozent des effektiven Fensters erinnert die Engine das Modell, sofort mit `ctx_trim_fold` zu falten (nur advisory-Modus). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Critical-Hinweislinie: bei Erreichen sofort erneuter Hinweis, umgeht das 10-Minuten-Throttling derselben Stufe. |
129
131
  | `trimWindowTokens` | `0` | Effektives Fensterlimit für die Stufenberechnung: gerechnet gegen min(Modellfenster, Limit). `0` = folgt `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | Die letzten N Nachrichten werden nie gefaltet. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Fold-Takt-Obergrenze pro rollierender Stunde für Nebenmodell-Folds (Notfall-Folds ausgenommen). |
package/README.es.md CHANGED
@@ -102,7 +102,7 @@ Esto es todo el conjunto de valores tras una instalación nueva (fuente autorita
102
102
 
103
103
  **Enrutado por intención** (no disponible de fábrica; hacen falta clasificador + al menos un candidato + encender el interruptor maestro): `intentEnabled` = apagado (apagado, la entrada Auto queda oculta y las sesiones que ya la tenían elegida caen en la cadena de respaldo); ruta del clasificador sin configurar; tipo de clasificador `chat`; lista de candidatos vacía (las categorías preinstaladas solo entran en el enrutado cuando se les asigna un modelo); ventana de caché `300` s / umbral de confianza para el cambio `80` / timeout de clasificación `60000` ms; historial de `6` mensajes / `2400` caracteres; `intentContextWindow` = `200000`.
104
104
 
105
- **Recorte de contexto**: `trimEnabled` = encendido; `trimMode` = `auto` (totalmente automático); compuerta de crecimiento `22500` + incremento `25000` tokens; presión `65%` / emergencia `95%`; cola protegida `10` mensajes; tope de cadencia de folds `30` por hora; modelo secundario sin definir (hereda el modelo de la sesión) — detalles en la sección «Recorte automático del contexto» más abajo.
105
+ **Recorte de contexto**: `trimEnabled` = encendido; `trimMode` = `auto` (totalmente automático); compuerta de crecimiento `22500` + incremento `25000` tokens; presión `65%` / emergencia `95%`; avisos advisory `65%` / `95%`; cola protegida `10` mensajes; tope de cadencia de folds `30` por hora; modelo secundario sin definir (hereda el modelo de la sesión) — detalles en la sección «Recorte automático del contexto» más abajo.
106
106
 
107
107
  **Notas de serie**: ① que el enrutado por intención no venga disponible de serie es intencionado: tres pasos para activarlo (clasificador, candidatos, interruptor); ② la ventana efectiva de Auto vale 200000 de serie — la barrera de seguridad garantiza 0.8×ventana ≥ force (150000), así que la línea de compactación del núcleo (160000) queda siempre por detrás de la línea de entrega suave (150000); ③ lo más perceptible de serie es el trío de niveles: 80k avisa de delegar / 95k aprieta la lectura / 150k entrega automáticamente (documento + compactación) — sin tocar ningún ajuste.
108
108
 
@@ -113,7 +113,7 @@ Las sesiones largas salen baratas: los tramos de conversación ya consumidos se
113
113
  Niveles de automatización (`trimMode`):
114
114
 
115
115
  - **`off`** — solo medir: el muestreo de uso y de aciertos de caché sigue funcionando; sin banner ni folds.
116
- - **`advisory`** — el modelo de la sesión se pliega a sí mismo: se exponen las herramientas `ctx_trim_fold` y `ctx_trim_status` más la cabecera de protocolo.
116
+ - **`advisory`** — el modelo de la sesión se pliega a sí mismo: se exponen las herramientas `ctx_trim_fold` y `ctx_trim_status` más la cabecera de protocolo. Cuando la presión de la sesión alcanza `trimAdvisoryPercent` de la ventana efectiva, el motor añade un aviso de plegado fijado como sufijo `user/message` al final de la surface activa de la sesión (no a la cabecera system del dispatch) — se repite de inmediato al escalar a crítico y se elimina cuando la presión baja de la línea.
117
117
  - **`auto`** (predeterminado) — todo lo anterior más folds automáticos en el límite de inactividad, en tres escalones: una compuerta de crecimiento (crecimiento > `trimGrowthTokens` medido desde el mínimo tras el último plegado — el ancla que mantiene la compuerta activa tras plegados que confirman en puntos altos de la view — Y un incremento comprimible contiguo ≥ `trimIncrementTokens`), un escalón de presión (`trimPressurePercent` de la ventana de contexto) y un escalón de emergencia (`trimEmergencyPercent` — un fold mecánico con su propio enfriamiento).
118
118
 
119
119
  Todas las claves viven en Ajustes → dsh-switchman; los valores por defecto salen de `host/config.js`:
@@ -126,6 +126,8 @@ Todas las claves viven en Ajustes → dsh-switchman; los valores por defecto sal
126
126
  | `trimIncrementTokens` | `25000` | Compañera de la compuerta: el incremento comprimible contiguo también debe alcanzar este tamaño. |
127
127
  | `trimPressurePercent` | `65` | Escalón de presión: pliega cuando el uso de la view alcance este porcentaje de la ventana de contexto. |
128
128
  | `trimEmergencyPercent` | `95` | Escalón de emergencia: fold mecánico forzado (sin llamada al modelo secundario) a este porcentaje. |
129
+ | `trimAdvisoryPercent` | `65` | Línea de aviso advisory: al alcanzar este porcentaje de la ventana efectiva, el motor insta al modelo a plegar ya con `ctx_trim_fold` (solo modo advisory). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Línea crítica: al alcanzarla repite el aviso de inmediato, sin el límite de 10 minutos de la misma banda. |
129
131
  | `trimWindowTokens` | `0` | Límite de ventana efectivo para el cálculo de niveles: se calcula sobre min(ventana del modelo, límite). `0` = sigue a `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | Los últimos N mensajes nunca se pliegan. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Tope de cadencia de folds por hora móvil para el modelo secundario (los de emergencia quedan exentos). |
package/README.fr.md CHANGED
@@ -102,7 +102,7 @@ Voici l'ensemble complet des valeurs juste après une installation neuve (source
102
102
 
103
103
  **Routage par intention** (indisponible par défaut ; il exige un classifieur + au moins un candidat + l'interrupteur général) : `intentEnabled` = désactivé (désactivé, l'entrée Auto reste cachée et les sessions déjà passées en Auto empruntent la chaîne de repli) ; route du classifieur non définie ; type de classifieur `chat` ; liste de candidats vide (les catégories préinstallées ne participent au routage qu'une fois un modèle renseigné) ; fenêtre de cache `300` s / seuil de confiance du basculement `80` / timeout de classification `60000` ms ; historique de `6` messages / `2400` caractères ; `intentContextWindow` = `200000`.
104
104
 
105
- **Trim de contexte** : `trimEnabled` = activé ; `trimMode` = `auto` (entièrement automatique) ; porte de croissance `22500` + incrément `25000` tokens ; pression `65%` / urgence `95%` ; queue protégée `10` messages ; plafond de cadence des folds `30` par heure ; modèle annexe non défini (hérite du modèle de la session) — détails dans la section « Trim automatique du contexte » ci-dessous.
105
+ **Trim de contexte** : `trimEnabled` = activé ; `trimMode` = `auto` (entièrement automatique) ; porte de croissance `22500` + incrément `25000` tokens ; pression `65%` / urgence `95%` ; rappels advisory `65%` / `95%` ; queue protégée `10` messages ; plafond de cadence des folds `30` par heure ; modèle annexe non défini (hérite du modèle de la session) — détails dans la section « Trim automatique du contexte » ci-dessous.
106
106
 
107
107
  **À savoir dès l'installation** : ① l'indisponibilité du routage par intention en sortie d'usine est un choix délibéré — trois étapes pour l'activer (classifieur, candidats, interrupteur) ; ② la fenêtre effective d'Auto vaut 200000 dès l'usine — le garde-fou garantit 0.8×fenêtre ≥ force (150000), si bien que la ligne de compactage cœur (160000) se situe toujours après la ligne de remise en douceur (150000) ; ③ l'effet le plus tangible dès l'usine est le trio de niveaux : 80k rappelle de déléguer / 95k resserre la lecture / 150k remet automatiquement (document + compactage) — sans aucun réglage.
108
108
 
@@ -113,7 +113,7 @@ Les longues sessions restent bon marché : les plages de conversation consommée
113
113
  Niveaux d'automatisation (`trimMode`) :
114
114
 
115
115
  - **`off`** — mesure seule : l'échantillonnage de l'usage et des hits de cache tourne toujours ; pas de bannière, pas de folds.
116
- - **`advisory`** — le modèle de session se replie lui-même : les outils `ctx_trim_fold` et `ctx_trim_status` plus l'en-tête de protocole sont exposés.
116
+ - **`advisory`** — le modèle de session se replie lui-même : les outils `ctx_trim_fold` et `ctx_trim_status` plus l’en-tête de protocole sont exposés. Quand la pression de session atteint `trimAdvisoryPercent` de la fenêtre effective, le moteur ajoute un rappel de repli épinglé sous forme de suffixe `user/message` à la fin de la surface de session active (pas à l’en-tête system du dispatch) — répété immédiatement au passage au niveau critique et supprimé dès que la pression repasse sous la ligne.
117
117
  - **`auto`** (par défaut) — tout ce qui précède, plus des folds automatiques à la frontière d'inactivité, en trois paliers : une porte de croissance (croissance > `trimGrowthTokens` mesurée depuis le point bas après le dernier pli — l'ancre qui garde la porte armée après des plis confirmés à des points hauts de la view — ET un incrément compressible contigu ≥ `trimIncrementTokens`), un palier de pression (`trimPressurePercent` de la fenêtre de contexte) et un palier d'urgence (`trimEmergencyPercent` — un fold mécanique avec son propre refroidissement).
118
118
 
119
119
  Toutes les clés vivent dans Réglages → dsh-switchman ; les valeurs par défaut viennent de `host/config.js` :
@@ -126,6 +126,8 @@ Toutes les clés vivent dans Réglages → dsh-switchman ; les valeurs par défa
126
126
  | `trimIncrementTokens` | `25000` | Compagnon de la porte : l'incrément compressible contigu doit aussi atteindre cette taille. |
127
127
  | `trimPressurePercent` | `65` | Palier de pression : on plie quand l'usage de la view atteint ce pourcentage de la fenêtre de contexte. |
128
128
  | `trimEmergencyPercent` | `95` | Palier d'urgence : fold mécanique forcé (sans appel de modèle annexe) à ce pourcentage. |
129
+ | `trimAdvisoryPercent` | `65` | Ligne de rappel advisory : à ce pourcentage de la fenêtre effective, le moteur invite le modèle à replier immédiatement via `ctx_trim_fold` (mode advisory uniquement). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Ligne critique : l'atteindre répète le rappel immédiatement, en contournant le bridage de 10 minutes à palier égal. |
129
131
  | `trimWindowTokens` | `0` | Plafond de fenêtre effectif pour le calcul des paliers : calculé sur min(fenêtre du modèle, plafond). `0` = suit `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | Les N derniers messages ne sont jamais repliés. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Plafond de cadence des folds par heure glissante pour le modèle annexe (les folds d'urgence en sont exemptés). |
package/README.it.md CHANGED
@@ -102,7 +102,7 @@ Questi sono tutti i valori così come si presentano dopo una nuova installazione
102
102
 
103
103
  **Instradamento per intent** (non disponibile per predefinito; servono classificatore + almeno un candidato + l'interruttore principale): `intentEnabled` = spento (spento, la voce Auto resta nascosta e le sessioni che l'avevano già scelta percorrono la catena di fallback); route del classificatore non impostata; tipo di classificatore `chat`; lista dei candidati vuota (le categorie preinstallate entrano nell'instradamento solo con un modello assegnato); finestra di cache `300` s / soglia di confidenza del cambio `80` / timeout di classificazione `60000` ms; cronologia di `6` messaggi / `2400` caratteri; `intentContextWindow` = `200000`.
104
104
 
105
- **Trim del contesto**: `trimEnabled` = acceso; `trimMode` = `auto` (del tutto automatico); cancello di crescita `22500` + incremento `25000` token; pressione `65%` / emergenza `95%`; coda protetta `10` messaggi; tetto di cadenza dei fold `30` all'ora; modello secondario non impostato (eredita il modello della sessione) — dettagli nella sezione «Trim automatico del contesto» più sotto.
105
+ **Trim del contesto**: `trimEnabled` = acceso; `trimMode` = `auto` (del tutto automatico); cancello di crescita `22500` + incremento `25000` token; pressione `65%` / emergenza `95%`; avvisi advisory `65%` / `95%`; coda protetta `10` messaggi; tetto di cadenza dei fold `30` all'ora; modello secondario non impostato (eredita il modello della sessione) — dettagli nella sezione «Trim automatico del contesto» più sotto.
106
106
 
107
107
  **Note di serie**: ① l'instradamento per intent non disponibile di serie è una scelta voluta — tre passi per attivarlo (classificatore, candidati, interruttore); ② la finestra effettiva di Auto vale di serie 200000 — la barriera di sicurezza garantisce 0.8×finestra ≥ force (150000), così la linea di compattazione del cuore (160000) resta sempre dopo la linea di consegna morbida (150000); ③ di serie la cosa più percettibile è il terzetto di soglie: 80k ricorda di delegare / 95k stringe la lettura / 150k consegna da sola (documento + compattazione) — senza alcuna impostazione.
108
108
 
@@ -113,7 +113,7 @@ Le sessioni lunghe restano economiche: le porzioni di conversazione già consuma
113
113
  Livelli di automazione (`trimMode`):
114
114
 
115
115
  - **`off`** — solo misura: il campionamento di uso e hit di cache continua; niente banner, niente fold.
116
- - **`advisory`** — il modello della sessione si ripiega da sé: vengono esposti gli strumenti `ctx_trim_fold` e `ctx_trim_status` più l'intestazione di protocollo.
116
+ - **`advisory`** — il modello della sessione si ripiega da sé: vengono esposti gli strumenti `ctx_trim_fold` e `ctx_trim_status` più l’intestazione di protocollo. Quando la pressione della sessione raggiunge `trimAdvisoryPercent` della finestra effettiva, il motore aggiunge un sollecito di ripiegamento fissato come suffisso `user/message` alla fine della surface attiva della sessione (non all’intestazione system del dispatch) — ripetuto immediatamente all’escalation a critical e rimosso quando la pressione rientra sotto la linea.
117
117
  - **`auto`** (predefinito) — tutto quanto sopra più fold automatici al confine di inattività, su tre scalini: un cancello di crescita (crescita > `trimGrowthTokens` misurata dal minimo post-ripiegamento dell'ultimo fold — l'ancora che mantiene il cancello armato dopo ripiegamenti confermati su punti alti della view — E un incremento comprimibile contiguo ≥ `trimIncrementTokens`), uno scalino di pressione (`trimPressurePercent` della finestra di contesto) e uno scalino di emergenza (`trimEmergencyPercent` — un fold meccanico con il proprio raffreddamento).
118
118
 
119
119
  Tutte le chiavi stanno in Impostazioni → dsh-switchman; i valori predefiniti vengono da `host/config.js`:
@@ -126,6 +126,8 @@ Tutte le chiavi stanno in Impostazioni → dsh-switchman; i valori predefiniti v
126
126
  | `trimIncrementTokens` | `25000` | Compagno del cancello: anche l'incremento comprimibile contiguo deve raggiungere questa taglia. |
127
127
  | `trimPressurePercent` | `65` | Scalino di pressione: ripiega quando l'uso della view raggiunge questa percentuale della finestra di contesto. |
128
128
  | `trimEmergencyPercent` | `95` | Scalino di emergenza: fold meccanico forzato (nessuna chiamata al modello secondario) a questa percentuale. |
129
+ | `trimAdvisoryPercent` | `65` | Linea di sollecito advisory: a questa percentuale della finestra effettiva il motore invita il modello a ripiegare subito con `ctx_trim_fold` (solo modalità advisory). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Linea critica: al raggiungimento ripete subito il sollecito, bypassando il throttle di 10 minuti sulla stessa fascia. |
129
131
  | `trimWindowTokens` | `0` | Limite di finestra effettivo per il calcolo delle soglie: calcolato su min(finestra del modello, limite). `0` = segue `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | Gli ultimi N messaggi non vengono mai ripiegati. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Tetto di cadenza dei fold per ora mobile per il modello secondario (quelli di emergenza ne sono esenti). |
package/README.ja.md CHANGED
@@ -102,7 +102,7 @@ bash <インストールディレクトリ>/skills/db-query/scripts/setup.sh
102
102
 
103
103
  **意図認識**(既定では利用不可。分類器+候補最低1つ+マスタートグルのオンが必要):`intentEnabled` = オフ(オフの間は Auto エントリが隠れ、Auto を選んでいたセッションはフォールバックチェーンへ流れる)。分類器ルートは未設定。分類器タイプは `chat`。候補リストは空(プリセット分類はモデルを埋めないとルーティングに参加しない)。キャッシュウィンドウ `300` 秒 / 切替信頼度 `80` / 分類タイムアウト `60000` ms。履歴 `6` 件 / `2400` 文字。`intentContextWindow` = `200000`。
104
104
 
105
- **コンテキストトリム**:`trimEnabled` = オン;`trimMode` = `auto`(完全自動);成長ゲート `22500` + インクリメント `25000` トークン;圧力 `65%` / 緊急 `95%`;保護テール `10` 件;fold ペース上限は毎時 `30` 回;サイドモデルは未設定(セッションモデルを継承)——詳細は下の「自動コンテキストトリム」節で。
105
+ **コンテキストトリム**:`trimEnabled` = オン;`trimMode` = `auto`(完全自動);成長ゲート `22500` + インクリメント `25000` トークン;圧力 `65%` / 緊急 `95%`;advisory 通知 `65%` / `95%`;保護テール `10` 件;fold ペース上限は毎時 `30` 回;サイドモデルは未設定(セッションモデルを継承)——詳細は下の「自動コンテキストトリム」節で。
106
106
 
107
107
  **初期状態のポイント**:① 意図認識が既定で使えないのは意図的な設計で、有効化は3ステップ(分類器、候補、トグル)。② Auto の実効ウィンドウは既定で 200000——ガードレールにより 0.8×ウィンドウ ≥ force 段(150000)が保証され、コア圧縮線(160000)は常にスムーズ引き継ぎ線(150000)より後ろにある。③ 既定でいちばん体感できるのは水位の3点セット:80k で委譲を促し、95k で読み取りを収束させ、150k で自動引き継ぎ(文書作成+圧縮)。設定は一切不要。
108
108
 
@@ -113,7 +113,7 @@ bash <インストールディレクトリ>/skills/db-query/scripts/setup.sh
113
113
  自動化レベル(`trimMode`):
114
114
 
115
115
  - **`off`**——計測のみ:使用量とキャッシュヒットのサンプリングは動作;バナーなし、fold なし。
116
- - **`advisory`**——セッションモデルが自ら fold する:`ctx_trim_fold` と `ctx_trim_status` のツールとプロトコルヘッドを公開。
116
+ - **`advisory`**——セッションモデルが自ら fold する:`ctx_trim_fold` と `ctx_trim_status` のツールとプロトコルヘッドを公開。セッション圧力が実効ウィンドウの `trimAdvisoryPercent` に達すると、エンジンは一度限りの固定 fold 催促を `user/message` サフィックスとしてライブの session surface の末尾に追加し(dispatch の system ヘッドは変更しません)、critical へのエスカレーションで即再通知し、圧力が線を下回ると prune します。
117
117
  - **`auto`**(既定)——advisory のすべてに加え、アイドル境界での自動 fold が3段階で動く:成長ゲート(前回の折り返し後の低点から測定した成長 > `trimGrowthTokens`——高位で折り返してもゲートが有効であり続けるためのアンカー——かつ連続圧縮可能インクリメントが `trimIncrementTokens` 以上)、圧力段(コンテキストウィンドウの `trimPressurePercent`)、緊急段(`trimEmergencyPercent`——独自クールダウン付きの機械 fold)。
118
118
 
119
119
  すべてのキーは「設定 → dsh-switchman」にあり、既定値は `host/config.js` 由来:
@@ -126,6 +126,8 @@ bash <インストールディレクトリ>/skills/db-query/scripts/setup.sh
126
126
  | `trimIncrementTokens` | `25000` | ゲートの同伴条件:連続圧縮可能インクリメントもこの規模に達する必要あり。 |
127
127
  | `trimPressurePercent` | `65` | 圧力段:view 使用量がコンテキストウィンドウのこの割合に達したら fold。 |
128
128
  | `trimEmergencyPercent` | `95` | 緊急段:この割合で機械 fold を強制(サイドモデル呼び出しなし)。 |
129
+ | `trimAdvisoryPercent` | `65` | advisory 通知線:圧力が実効ウィンドウのこの割合に達すると、モデルに `ctx_trim_fold` での即時 fold を促します(advisory モードのみ)。 |
130
+ | `trimAdvisoryCriticalPercent` | `95` | critical 通知線:到達すると 10 分の同帯域スロットルを無視して即再通知。 |
129
131
  | `trimWindowTokens` | `0` | ティア計算の実効ウィンドウ上限:min(モデルウィンドウ, 上限) で計算。`0` = `wmForceTokens` に追従。 |
130
132
  | `trimProtectedTail` | `10` | 最後の N メッセージは決して fold されない。 |
131
133
  | `trimMaxFoldsPerHour` | `30` | ローリング1時間あたりのサイドモデル fold ペース上限(緊急段は対象外)。 |
package/README.ko.md CHANGED
@@ -102,7 +102,7 @@ bash <설치-디렉터리>/skills/db-query/scripts/setup.sh
102
102
 
103
103
  **의도 인식**(기본은 사용 불가. 분류기 + 후보 최소 1개 + 마스터 토글 켜기가 필요): `intentEnabled` = 끔(꺼져 있으면 Auto 항목은 숨겨지고, Auto를 선택해 둔 세션은 폴백 체인으로 흐른다). 분류기 라우트 미설정. 분류기 유형 `chat`. 후보 목록은 빈 상태(프리셋 분류는 모델을 채워야 라우팅에 참여). 캐시 창 `300`초 / 전환 신뢰도 `80` / 분류 타임아웃 `60000`ms. 히스토리 `6`건 / `2400`자. `intentContextWindow` = `200000`.
104
104
 
105
- **컨텍스트 트림**: `trimEnabled` = 켬; `trimMode` = `auto`(완전 자동); 성장 게이트 `22500` + 증분 `25000` 토큰; 압력 `65%` / 비상 `95%`; 보호 테일 `10`건; fold 케이던스 상한 시간당 `30`회; 사이드 모델 미설정(세션 모델 상속) — 자세한 내용은 아래 "자동 컨텍스트 트림" 절에서.
105
+ **컨텍스트 트림**: `trimEnabled` = 켬; `trimMode` = `auto`(완전 자동); 성장 게이트 `22500` + 증분 `25000` 토큰; 압력 `65%` / 비상 `95%`; advisory 알림 `65%` / `95%`; 보호 테일 `10`건; fold 케이던스 상한 시간당 `30`회; 사이드 모델 미설정(세션 모델 상속) — 자세한 내용은 아래 "자동 컨텍스트 트림" 절에서.
106
106
 
107
107
  **기본 상태에서 알아둘 점**: ① 의도 인식이 기본으로 불가능한 것은 의도된 설계고, 세 단계로 켠다(분류기, 후보, 토글). ② Auto의 실효 창은 기본값이 200000이다 — 가드레일이 0.8×창 ≥ force 단계(150000)를 보장하므로, 코어 압축선(160000)은 언제나 부드러운 인계선(150000)보다 뒤에 있다. ③ 기본 상태에서 가장 체감되는 건 수위 3종 세트다: 80k에 위임 알림 / 95k에 읽기 수렴 / 150k에 자동 인계(문서 작성 + 압축) — 설정은 아무것도 필요 없다.
108
108
 
@@ -113,7 +113,7 @@ bash <설치-디렉터리>/skills/db-query/scripts/setup.sh
113
113
  자동화 수준(`trimMode`):
114
114
 
115
115
  - **`off`** — 측정만: 사용량과 캐시 히트 샘플링은 계속 돌아간다; 배너 없음, fold 없음.
116
- - **`advisory`** — 세션 모델이 스스로 fold 한다: `ctx_trim_fold`와 `ctx_trim_status` 도구와 프로토콜 헤드를 노출.
116
+ - **`advisory`** — 세션 모델이 스스로 fold 한다: `ctx_trim_fold`와 `ctx_trim_status` 도구와 프로토콜 헤드를 노출. 세션 압력이 실효 윈도의 `trimAdvisoryPercent`에 도달하면 엔진이 한 번만 고정하는 fold 권고를 `user/message` 접미사로 실시간 세션 surface 끝에 추가합니다(디스패치 system 헤드는 수정하지 않음) — critical로 상승하면 즉시 다시 알리고, 압력이 선 아래로 내려가면 prune합니다.
117
117
  - **`auto`**(기본값) — 위의 모든 것에 더해 유휴 경계에서 자동 fold가 세 단계로 동작한다: 성장 게이트(지난 접기 후 저점부터 측정한 성장 > `trimGrowthTokens` — 높은 지점에서 접은 후에도 게이트가 계속 작동하도록 유지하는 앵커 — + 연속 압축 가능 증분이 `trimIncrementTokens` 이상), 압력 단계(컨텍스트 창의 `trimPressurePercent`), 비상 단계(`trimEmergencyPercent` — 독립 쿨다운을 가진 기계 fold).
118
118
 
119
119
  모든 키는 설정 → dsh-switchman에 있고, 기본값은 `host/config.js` 기준이다:
@@ -126,6 +126,8 @@ bash <설치-디렉터리>/skills/db-query/scripts/setup.sh
126
126
  | `trimIncrementTokens` | `25000` | 게이트 동반 조건: 연속 압축 가능 증분도 이 규모에 달해야 한다. |
127
127
  | `trimPressurePercent` | `65` | 압력 단계: view 사용량이 컨텍스트 창의 이 백분율에 달하면 fold. |
128
128
  | `trimEmergencyPercent` | `95` | 비상 단계: 이 백분율에서 기계 fold 강제(사이드 모델 호출 없음). |
129
+ | `trimAdvisoryPercent` | `65` | advisory 알림 선: 압력이 실효 윈도의 이 백분율에 도달하면 모델에게 `ctx_trim_fold`로 즉시 fold할 것을 권고(advisory 모드 전용). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | critical 알림 선: 도달 시 10분 동일 밴드 스로틀을 우회해 즉시 재알림. |
129
131
  | `trimWindowTokens` | `0` | 티어 계산의 유효 윈도우 상한: min(모델 윈도우, 상한)으로 계산. `0` = `wmForceTokens`를 따름. |
130
132
  | `trimProtectedTail` | `10` | 마지막 N개 메시지는 절대 fold되지 않는다. |
131
133
  | `trimMaxFoldsPerHour` | `30` | 롤링 1시간당 사이드 모델 fold 케이던스 상한(비상 단계는 제외). |
package/README.md CHANGED
@@ -102,7 +102,7 @@ Everything below is the full set of defaults after a fresh install (authoritativ
102
102
 
103
103
  **Intent routing** (unavailable by default; needs a classifier + at least one candidate + the master switch on): `intentEnabled` = off (while off, the Auto entry stays hidden and sessions already on Auto fall through the fallback chain); the classifier route is unset; the classifier type is `chat`; the candidate list is empty (the preset categories join routing only once given a model); cache window `300` s / switch confidence threshold `80` / classification timeout `60000` ms; history `6` messages / `2400` characters; optional `intentFallbackRoute` is unset, and its own effort is model-default when later configured; `intentContextWindow` = `200000`.
104
104
 
105
- **Context trim**: `trimEnabled` = on; `trimMode` = `auto` (fully automatic); growth gate `22500` tokens + increment `25000` tokens; pressure `65%` / emergency `95%`; protected tail `10` messages; fold cadence cap `30` per hour; side model unset (follows the session provider/model, not the session call's effort); without an explicit effort pin, use the lowest enabled reasoning level from model metadata, choose `off` for toggle-only models, and omit effort when reasoning is unsupported or metadata is unavailable (model default). Ladder distillation shares that route and policy; a configured fold-fallback route has an independent effort pin with the same model-aware default. **Ladder folding on** — T2 distills accumulated T1 summaries (8000-token mass, ≥3 blocks), T3 distills T2 (6000-token mass, ≥2 blocks); the engine never shows the model a water level, percentage, or progress number — details in the "Automatic context trim" section below and [docs/ladder-fold.md](./docs/ladder-fold.md).
105
+ **Context trim**: `trimEnabled` = on; `trimMode` = `auto` (fully automatic); growth gate `22500` tokens + increment `25000` tokens; pressure `65%` / emergency `95%`; advisory nudge `65%` / `95%`; protected tail `10` messages; fold cadence cap `30` per hour; side model unset (follows the session provider/model, not the session call's effort); without an explicit effort pin, use the lowest enabled reasoning level from model metadata, choose `off` for toggle-only models, and omit effort when reasoning is unsupported or metadata is unavailable (model default). Ladder distillation shares that route and policy; a configured fold-fallback route has an independent effort pin with the same model-aware default. **Ladder folding on** — T2 distills accumulated T1 summaries (8000-token mass, ≥3 blocks), T3 distills T2 (6000-token mass, ≥2 blocks); the engine never shows the model a water level, percentage, or progress number — details in the "Automatic context trim" section below and [docs/ladder-fold.md](./docs/ladder-fold.md).
106
106
 
107
107
  **Out-of-the-box notes**: ① intent routing being unavailable out of the box is by design — three steps to switch it on (classifier, candidates, the master switch); ② Auto's effective window is 200000 out of the box — the guardrail guarantees 0.8×window ≥ force (150000), so the core compaction line (160000) always sits after the smooth-handover line (150000); ③ the most tangible out-of-the-box effect is the watermark trio: 80k nudges delegation / 95k tightens reading / 150k backs up and hands over automatically — no configuration needed.
108
108
 
@@ -113,7 +113,7 @@ Long sessions stay cheap: consumed conversation ranges are folded into compact d
113
113
  Automation levels (`trimMode`):
114
114
 
115
115
  - **`off`** — measure only: usage and cache-hit sampling still runs; no banner, no folds.
116
- - **`advisory`** — the session model folds itself: the `ctx_trim_fold` and `ctx_trim_status` tools plus the protocol head are exposed for it.
116
+ - **`advisory`** — the session model folds itself: the `ctx_trim_fold` and `ctx_trim_status` tools plus the protocol head are exposed for it. When session pressure reaches `trimAdvisoryPercent` of the effective window the engine appends a one-off pinned fold nudge as a `user/message` suffix to the live session surface tail (not the dispatch system head) — it is re-spoken immediately on escalation to critical and pruned once pressure falls back below the line.
117
117
  - **`auto`** (default) — everything above plus automatic folds at the idle boundary, in three tiers: a growth gate (growth > `trimGrowthTokens` measured from the last fold's post-fold low — the anchor that keeps the gate armed after folds committing at high view points — AND a contiguous compressible increment ≥ `trimIncrementTokens`; the increment floor is what actually binds), a pressure tier (`trimPressurePercent` of the context window), and an emergency tier (`trimEmergencyPercent` — a mechanical fold with its own cooldown). Pressure and emergency usage is measured on `max(view, wire)`, i.e. on the real provider prompt when it is known.
118
118
 
119
119
  All keys live in Settings → dsh-switchman; defaults from `host/config.js`:
@@ -126,6 +126,8 @@ All keys live in Settings → dsh-switchman; defaults from `host/config.js`:
126
126
  | `trimIncrementTokens` | `25000` | Gate companion: the contiguous compressible increment must also reach this size. |
127
127
  | `trimPressurePercent` | `65` | Pressure tier: fold when view usage reaches this percent of the context window. |
128
128
  | `trimEmergencyPercent` | `95` | Emergency tier: forced mechanical fold (no side-model call) at this percent. |
129
+ | `trimAdvisoryPercent` | `65` | Advisory nudge line: when pressure reaches this percent of the effective window, the engine nudges the model to fold now with `ctx_trim_fold` (advisory mode only). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Critical nudge line: reaching it re-speaks the nudge immediately, bypassing the 10-minute same-band throttle. |
129
131
  | `trimWindowTokens` | `0` | Effective-window cap for tier math: tiers are computed against min(model window, cap). `0` = follow `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | The last N messages are never folded. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Side-model fold cadence cap per rolling hour (emergency folds are exempt). |
@@ -146,7 +148,7 @@ All keys live in Settings → dsh-switchman; defaults from `host/config.js`:
146
148
 
147
149
  **The ladder (v1.11): T1/T2/T3 tiered folding.** Every raw-range fold produces a T1 block. As T1 summaries themselves accumulate (≥8000 tokens of summary mass across ≥3 blocks), the engine distills them into ONE T2 block; T2s condense into a T3 the same way — month-long sessions stop drifting upward, because the folded floor no longer grows with every fold. Consumed blocks deactivate (never deleted), so coverage stays expressible and the ledger stays inspectable. Distillation runs through the same side model, on its own 120 s cadence, mass-gated so it stays rare (each distill rewrites the wire from its anchor onward — the mass gates keep that cost rare on purpose).
148
150
 
149
- **Nothing leaks to the model.** The engine never tells the session model a water level, a fill percentage, a window size, or a growth number — judgment stays rooted in the task (a model told "you're at 20%" anchors on "looks healthy" and refuses to fold). What the model MAY see, on demand, is `ctx_trim_status`: concrete compressible ranges with their true sizes. All metering lives in `decisions.log` and the settings-page badge — human channels.
151
+ **Nothing leaks to the model.** The engine never tells the session model a water level, a fill percentage, a window size, or a growth number — judgment stays rooted in the task (a model told "you're at 20%" anchors on "looks healthy" and refuses to fold). What the model MAY see, on demand, is `ctx_trim_status`: concrete compressible ranges with their true sizes. All metering lives in `decisions.log` and the settings-page badge — human channels. The advisory-mode pressure nudge is the deliberate exception: in `advisory` mode the model drives the fold, so the engine does tell it the pressure and the fold line, on the explicit instruction channel.
150
152
 
151
153
  **Fork inheritance.** A forked session (a subagent fork) inherits the parent's fold state copy-on-fork — but only when the parent state exists and the child's history actually resolves the parent's frontier; otherwise the child starts clean. One inheritance per child, idempotent across restarts.
152
154
 
package/README.pt.md CHANGED
@@ -102,7 +102,7 @@ Estes são todos os valores logo depois de uma instalação nova (fonte autorita
102
102
 
103
103
  **Roteamento por intenção** (indisponível por padrão; são precisos classificador + pelo menos um candidato + ligar a chave mestra): `intentEnabled` = desligado (desligado, a entrada Auto fica oculta e as sessões que já a tinham escolhido caem na cadeia de fallback); rota do classificador sem definir; tipo de classificador `chat`; lista de candidatos vazia (as categorias pré-instaladas só entram no roteamento com um modelo preenchido); janela de cache `300` s / limiar de confiança da troca `80` / timeout de classificação `60000` ms; histórico de `6` mensagens / `2400` caracteres; `intentContextWindow` = `200000`.
104
104
 
105
- **Trim de contexto**: `trimEnabled` = ligado; `trimMode` = `auto` (totalmente automático); portão de crescimento `22500` + incremento `25000` tokens; pressão `65%` / emergência `95%`; cauda protegida `10` mensagens; teto de cadência de folds `30` por hora; modelo secundário não definido (herda o modelo da sessão) — detalhes na seção «Trim automático do contexto» abaixo.
105
+ **Trim de contexto**: `trimEnabled` = ligado; `trimMode` = `auto` (totalmente automático); portão de crescimento `22500` + incremento `25000` tokens; pressão `65%` / emergência `95%`; avisos advisory `65%` / `95%`; cauda protegida `10` mensagens; teto de cadência de folds `30` por hora; modelo secundário não definido (herda o modelo da sessão) — detalhes na seção «Trim automático do contexto» abaixo.
106
106
 
107
107
  **Observações de fábrica**: ① o roteamento por intenção vir indisponível de fábrica é proposital — três passos para ligar (classificador, candidatos, chave); ② a janela efetiva do Auto já nasce em 200000 — o guard-rail garante 0.8×janela ≥ force (150000), então a linha de compactação do núcleo (160000) fica sempre depois da linha de entrega suave (150000); ③ o que mais se sente de fábrica é o trio de níveis: 80k lembra de delegar / 95k aperta a leitura / 150k entrega sozinho (documento + compactação) — sem nenhuma configuração.
108
108
 
@@ -113,7 +113,7 @@ Sessões longas ficam baratas: os trechos já consumidos da conversa viram resum
113
113
  Níveis de automação (`trimMode`):
114
114
 
115
115
  - **`off`** — só medição: a amostragem de uso e de acertos de cache continua rodando; sem banner, sem folds.
116
- - **`advisory`** — o modelo da sessão dobra sozinho: as ferramentas `ctx_trim_fold` e `ctx_trim_status` mais o cabeçalho de protocolo ficam expostas.
116
+ - **`advisory`** — o modelo da sessão dobra sozinho: as ferramentas `ctx_trim_fold` e `ctx_trim_status` mais o cabeçalho de protocolo ficam expostas. Quando a pressão da sessão atinge `trimAdvisoryPercent` da janela efetiva, o motor acrescenta um lembrete de dobra fixado como sufixo `user/message` ao final da surface ativa da sessão (não ao cabeçalho system do despacho) — repetido imediatamente ao escalar para crítico e removido quando a pressão volta abaixo da linha.
117
117
  - **`auto`** (padrão) — tudo isso mais folds automáticos na fronteira de ociosidade, em três degraus: um portão de crescimento (crescimento > `trimGrowthTokens` medido a partir da mínima pós-dobra do último fold — a âncora que mantém o portão armado após dobras confirmadas em pontos altos da view — E um incremento comprimível contíguo ≥ `trimIncrementTokens`), um degrau de pressão (`trimPressurePercent` da janela de contexto) e um degrau de emergência (`trimEmergencyPercent` — um fold mecânico com cooldown próprio).
118
118
 
119
119
  Todas as chaves ficam em Configurações → dsh-switchman; os padrões vêm de `host/config.js`:
@@ -126,6 +126,8 @@ Todas as chaves ficam em Configurações → dsh-switchman; os padrões vêm de
126
126
  | `trimIncrementTokens` | `25000` | Companheiro do portão: o incremento comprimível contíguo também precisa alcançar esse tamanho. |
127
127
  | `trimPressurePercent` | `65` | Degrau de pressão: dobra quando o uso da view alcança essa porcentagem da janela de contexto. |
128
128
  | `trimEmergencyPercent` | `95` | Degrau de emergência: fold mecânico forçado (sem chamada ao modelo secundário) nessa porcentagem. |
129
+ | `trimAdvisoryPercent` | `65` | Linha de lembrete advisory: ao atingir essa porcentagem da janela efetiva, o motor insta o modelo a dobrar já com `ctx_trim_fold` (somente modo advisory). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Linha crítica: ao atingi-la, repete o lembrete de imediato, contornando o limite de 10 minutos na mesma faixa. |
129
131
  | `trimWindowTokens` | `0` | Limite de janela efetivo para o cálculo dos níveis: calculado sobre min(janela do modelo, limite). `0` = segue `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | As últimas N mensagens nunca são dobradas. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Teto de cadência de folds por hora rolante para o modelo secundário (os de emergência ficam fora). |
package/README.ru.md CHANGED
@@ -102,7 +102,7 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
102
102
 
103
103
  **Маршрутизация по намерению** (по умолчанию недоступна; нужны классификатор + хотя бы один кандидат + включённый главный переключатель): `intentEnabled` = выключен (пока выключен, вход Auto скрыт, а сессии, где Auto уже выбран, идут по цепочке запасных моделей); маршрут классификатора не задан; тип классификатора `chat`; список кандидатов пуст (предустановленные категории участвуют в маршрутизации, только если у них указана модель); окно кэша `300` с / порог уверенности для переключения `80` / тайм-аут классификации `60000` мс; история `6` сообщений / `2400` символов; `intentContextWindow` = `200000`.
104
104
 
105
- **Обрезка контекста**: `trimEnabled` = включено; `trimMode` = `auto` (полностью автоматически); ворота роста `22500` + прирост `25000` токенов; давление `65%` / авария `95%`; защищённый хвост `10` сообщений; потолок частоты fold-ов `30` в час; боковая модель не задана (наследует модель сессии) — подробности в разделе «Автоматическая обрезка контекста» ниже.
105
+ **Обрезка контекста**: `trimEnabled` = включено; `trimMode` = `auto` (полностью автоматически); ворота роста `22500` + прирост `25000` токенов; давление `65%` / авария `95%`; advisory-напоминания `65%` / `95%`; защищённый хвост `10` сообщений; потолок частоты fold-ов `30` в час; боковая модель не задана (наследует модель сессии) — подробности в разделе «Автоматическая обрезка контекста» ниже.
106
106
 
107
107
  **Что важно знать из коробки**: ① то, что маршрутизация по намерению недоступна из коробки, — намеренное решение; включается в три шага (классификатор, кандидаты, переключатель); ② эффективное окно Auto из коробки равно 200000 — защитная планка гарантирует 0.8×окна ≥ force (150000), поэтому линия сжатия ядра (160000) всегда стоит после линии плавной передачи (150000); ③ заметнее всего из коробки троица уровней: 80k напоминает делегировать / 95k ужимает чтение / 150k сам передаёт управление (документ + сжатие) — без каких-либо настроек.
108
108
 
@@ -113,7 +113,7 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
113
113
  Уровни автоматизации (`trimMode`):
114
114
 
115
115
  - **`off`** — только измерения: сэмплирование расхода и попаданий кэша продолжается; без баннера и без fold-ов.
116
- - **`advisory`** — модель сессии сворачивает сама: ей открываются инструменты `ctx_trim_fold` и `ctx_trim_status` плюс заголовок протокола.
116
+ - **`advisory`** — модель сессии сворачивает сама: ей открываются инструменты `ctx_trim_fold` и `ctx_trim_status` плюс заголовок протокола. Когда давление сессии достигает `trimAdvisoryPercent` эффективного окна, движок добавляет закреплённое напоминание свернуть контекст в виде суффикса `user/message` в конец активной поверхности сессии (не в system-заголовок dispatch-а) — повторяет сразу при переходе в critical и удаляет, когда давление опускается ниже линии.
117
117
  - **`auto`** (по умолчанию) — всё вышеперечисленное плюс автоматические fold-ы на границе простоя, тремя ступенями: ворота роста (рост > `trimGrowthTokens`, отсчитываемый от низшей точки после последнего fold-а — этот якорь сохраняет ворота взведёнными после fold-ов, фиксирующихся на высоких точках view — И непрерывный сжимаемый прирост ≥ `trimIncrementTokens`), ступень давления (`trimPressurePercent` окна контекста) и аварийная ступень (`trimEmergencyPercent` — механический fold с собственным охлаждением).
118
118
 
119
119
  Все ключи живут в разделе Настройки → dsh-switchman; значения по умолчанию — из `host/config.js`:
@@ -126,6 +126,8 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
126
126
  | `trimIncrementTokens` | `25000` | Спутник ворот: непрерывный сжимаемый прирост тоже должен достичь этого размера. |
127
127
  | `trimPressurePercent` | `65` | Ступень давления: fold, когда использование view достигает этого процента окна контекста. |
128
128
  | `trimEmergencyPercent` | `95` | Аварийная ступень: принудительный механический fold (без вызова боковой модели) на этом проценте. |
129
+ | `trimAdvisoryPercent` | `65` | Линия advisory-напоминания: при достижении этой доли эффективного окна движок предлагает модели немедленно сложить контекст через `ctx_trim_fold` (только режим advisory). |
130
+ | `trimAdvisoryCriticalPercent` | `95` | Критическая линия: при её достижении напоминание повторяется сразу, минуя 10-минутный троттлинг той же полосы. |
129
131
  | `trimWindowTokens` | `0` | Эффективный лимит окна для расчёта уровней: считается от min(окно модели, лимит). `0` = следует за `wmForceTokens`. |
130
132
  | `trimProtectedTail` | `10` | Последние N сообщений никогда не сворачиваются. |
131
133
  | `trimMaxFoldsPerHour` | `30` | Потолок частоты fold-ов боковой модели за скользящий час (аварийные не в счёт). |
package/README.zh-TW.md CHANGED
@@ -102,7 +102,7 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
102
102
 
103
103
  **意圖識別**(預設不可用,需設定分類器 + 至少一個候選 + 打開主開關):`intentEnabled` = 關(關閉時 Auto 入口隱藏,已選 Auto 的對話走備援鏈);分類器路由未設定;分類器類型 `chat`;候選清單空(預置分類需填模型才參與路由);快取視窗 `300` 秒 / 切換信心閾值 `80` / 分類逾時 `60000` ms;歷史 `6` 則 / `2400` 字元;`intentContextWindow` = `200000`。
104
104
 
105
- **上下文裁剪**:`trimEnabled` = 開;`trimMode` = `auto`(全自動);增長閘門 `22500` token + 增量 `25000` token;壓力 `65%` / 緊急 `95%`;保護尾部 `10` 則;折疊節奏上限每小時 `30` 次;side model 未設定(繼承對話模型)——詳見下文「自動上下文裁剪」一節。
105
+ **上下文裁剪**:`trimEnabled` = 開;`trimMode` = `auto`(全自動);增長閘門 `22500` token + 增量 `25000` token;壓力 `65%` / 緊急 `95%`;advisory 提醒 `65%` / `95%`;保護尾部 `10` 則;折疊節奏上限每小時 `30` 次;side model 未設定(繼承對話模型)——詳見下文「自動上下文裁剪」一節。
106
106
 
107
107
  **開箱要點**:① 意圖識別開箱不可用是有意設計,三步開啟(分類器、候選、開關);② Auto 有效視窗開箱即為 200000——護欄保證 0.8×視窗 ≥ force 級(150000),核心壓縮線(160000)永遠在平滑交接線(150000)之後;③ 開箱最有感的是水位三件套:80k 提醒委派 / 95k 收斂讀取 / 150k 自動交接(寫文件+壓縮),無須任何設定。
108
108
 
@@ -113,7 +113,7 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
113
113
  自動化層級(`trimMode`):
114
114
 
115
115
  - **`off`**——只測量:用量與快取命中取樣照常執行;無橫幅、無折疊。
116
- - **`advisory`**——對話模型自己折疊:向其暴露 `ctx_trim_fold` 與 `ctx_trim_status` 工具和協定頭。
116
+ - **`advisory`**——對話模型自己折疊:向其暴露 `ctx_trim_fold` 與 `ctx_trim_status` 工具和協定頭。對話壓力達到有效視窗的 `trimAdvisoryPercent` 時,引擎將一次性固定摺疊提醒作為 `user/message` 後綴追加到即時對話 surface 尾端(不修改本次派發的 system 頭)——升級到 critical 立即重發,壓力回落到線下後清除。
117
117
  - **`auto`**(預設)——以上全部,外加閒置邊界上的自動折疊,分三級:增長閘門(自上次折疊後的低谷起算的增長 > `trimGrowthTokens`——該錨點保證高位折疊後閘門依然有效——且連續可壓縮增量 ≥ `trimIncrementTokens`)、壓力級(上下文視窗的 `trimPressurePercent`)、緊急級(`trimEmergencyPercent`——帶獨立冷卻的機械折疊)。
118
118
 
119
119
  所有鍵位於 設定 → dsh-switchman;預設值出自 `host/config.js`:
@@ -126,6 +126,8 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
126
126
  | `trimIncrementTokens` | `25000` | 閘門搭檔:連續可壓縮增量也須達到該規模。 |
127
127
  | `trimPressurePercent` | `65` | 壓力級:view 用量達到上下文視窗該百分比即折疊。 |
128
128
  | `trimEmergencyPercent` | `95` | 緊急級:到該百分比強制機械折疊(無 side model 呼叫)。 |
129
+ | `trimAdvisoryPercent` | `65` | advisory 提醒線:壓力達到有效視窗的該百分比時,引擎提醒模型立即用 `ctx_trim_fold` 摺疊(僅 advisory 模式)。 |
130
+ | `trimAdvisoryCriticalPercent` | `95` | critical 提醒線:到線立即重發提醒,不受 10 分鐘同檔節流限制。 |
129
131
  | `trimWindowTokens` | `0` | 視窗上限:壓力與緊急檔按 min(模型視窗, 上限) 計算。`0` = 跟隨 `wmForceTokens`。 |
130
132
  | `trimProtectedTail` | `10` | 最後 N 則訊息永不折疊。 |
131
133
  | `trimMaxFoldsPerHour` | `30` | 每滾動小時 side model 折疊的節奏上限(緊急級豁免)。 |
package/README.zh.md CHANGED
@@ -102,7 +102,7 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
102
102
 
103
103
  **意图识别**(默认不可用,需配置分类器 + 至少一个候选 + 打开主开关):`intentEnabled` = 关(关闭时 Auto 入口隐藏,已选 Auto 的会话走兜底链);分类器路由未设置;分类器类型 `chat`;候选列表空(预置分类需填模型才参与路由);缓存窗口 `300` 秒 / 切换置信度 `80` / 分类超时 `60000` ms;历史 `6` 条 / `2400` 字符;`intentContextWindow` = `200000`。
104
104
 
105
- **上下文裁剪**:`trimEnabled` = 开;`trimMode` = `auto`(全自动);增长闸门 `22500` token + 增量 `25000` token;压力 `65%` / 紧急 `95%`;保护尾部 `10` 条;折叠节奏上限每小时 `30` 次;side model 未设置(继承会话模型)——详见下文「自动上下文裁剪」一节。
105
+ **上下文裁剪**:`trimEnabled` = 开;`trimMode` = `auto`(全自动);增长闸门 `22500` token + 增量 `25000` token;压力 `65%` / 紧急 `95%`;advisory 提醒 `65%` / `95%`;保护尾部 `10` 条;折叠节奏上限每小时 `30` 次;side model 未设置(继承会话模型)——详见下文「自动上下文裁剪」一节。
106
106
 
107
107
  **开箱要点**:① 意图识别开箱不可用是有意设计,三步开启(分类器、候选、开关);② Auto 有效窗口开箱即为 200000——护栏保证 0.8×窗口 ≥ force 档(150000),核心压缩线(160000)永远在平滑交接线(150000)之后;③ 开箱最有感的是水位三件套:80k 提醒委派 / 95k 收敛读取 / 150k 自动交接(写文档+压缩),无需任何设置。
108
108
 
@@ -113,7 +113,7 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
113
113
  自动化层级(`trimMode`):
114
114
 
115
115
  - **`off`**——只测量:用量与缓存命中采样照常运行;无横幅、无折叠。
116
- - **`advisory`**——会话模型自己折叠:向其暴露 `ctx_trim_fold` 与 `ctx_trim_status` 工具和协议头。
116
+ - **`advisory`**——会话模型自己折叠:向其暴露 `ctx_trim_fold` 与 `ctx_trim_status` 工具和协议头。会话压力达到有效窗口的 `trimAdvisoryPercent` 时,引擎将一次性固定折叠提醒作为 `user/message` 后缀追加到实时会话 surface 尾部(不修改本次派发的 system 头)——升级到 critical 立即重发,压力回落到线下后清除。
117
117
  - **`auto`**(默认)——以上全部,外加空闲边界上的自动折叠,分三档:增长闸门(自上次折叠后的低谷起算的增长 > `trimGrowthTokens`——该锚点保证高位折叠后闸门依然有效——且连续可压缩增量 ≥ `trimIncrementTokens`)、压力档(上下文窗口的 `trimPressurePercent`)、紧急档(`trimEmergencyPercent`——带独立冷却的机械折叠)。
118
118
 
119
119
  所有键位于 设置 → dsh-switchman;默认值出自 `host/config.js`:
@@ -126,6 +126,8 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
126
126
  | `trimIncrementTokens` | `25000` | 闸门搭档:连续可压缩增量也须达到该规模。 |
127
127
  | `trimPressurePercent` | `65` | 压力档:view 用量达到上下文窗口该百分比即折叠。 |
128
128
  | `trimEmergencyPercent` | `95` | 紧急档:到该百分比强制机械折叠(无 side model 调用)。 |
129
+ | `trimAdvisoryPercent` | `65` | advisory 提醒线:压力达到有效窗口的该百分比时,引擎提醒模型立即用 `ctx_trim_fold` 折叠(仅 advisory 模式)。 |
130
+ | `trimAdvisoryCriticalPercent` | `95` | critical 提醒线:到线立即重发提醒,不受 10 分钟同档节流限制。 |
129
131
  | `trimWindowTokens` | `0` | 窗口上限:压力与紧急档按 min(模型窗口, 上限) 计算。`0` = 跟随 `wmForceTokens`。 |
130
132
  | `trimProtectedTail` | `10` | 最后 N 条消息永不折叠。 |
131
133
  | `trimMaxFoldsPerHour` | `30` | 每滚动小时 side model 折叠的节奏上限(紧急档豁免)。 |