renderers 0.1.13.dev7__tar.gz → 0.1.13.dev8__tar.gz
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.
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/PKG-INFO +2 -2
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/README.md +1 -1
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/docs/renderer-config.md +2 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/__init__.py +4 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/_version.py +2 -2
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/base.py +4 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/configs.py +31 -0
- renderers-0.1.13.dev8/renderers/muse_glimmer.py +887 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/fixtures/prefix_stability.json +10 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/parity.py +6 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_build_helpers.py +8 -0
- renderers-0.1.13.dev8/tests/test_muse_glimmer.py +740 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_reasoning_boundaries.py +14 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.github/workflows/publish-dev.yml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.github/workflows/publish.yml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.github/workflows/style.yml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.github/workflows/test.yml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.gitignore +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/.pre-commit-config.yaml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/LICENSE +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/README.md +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/sglang/multiturn_generate_sglang.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/sglang/online_multiturn_sglang.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/tinker/multiturn_generate_tinker.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/transformers/multiturn_generate_transformers.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/examples/vllm/multiturn_generate_vllm.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/pyproject.toml +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/client.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/custom.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/deepseek_r1.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/deepseek_v3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/deepseek_v4.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/default.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/gemma4.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/glm45.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/glm5.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/gpt_oss.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/hy3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/inkling.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/kimi_k2.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/kimi_k25.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/laguna_s21.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/laguna_xs2.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/llama_3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/minimax_m2.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/nemotron3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/parsers.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/parsing.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/prime_qwen3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/qwen3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/qwen35.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/qwen36.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/qwen38.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/qwen3_vl.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/reasoning.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/renderers/tagged.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/audit_prefix_stability.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/conftest.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/reference_continuations.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/reference_rendering.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/replay.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_bridge.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_client.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_custom.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_deepseek_r1.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_deepseek_v4.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_disabled_thinking_stability.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_gemma4.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_glm53_flash.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_glm_tool_name_validation.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_hy3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_incremental.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_inkling.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_is_content.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_kimi_k25_tool_schema.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_laguna_m1.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_laguna_xs21.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_llama_3.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_load_tokenizer.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_message_indices.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_message_tool_names.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_multimodal.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_nemotron35_vlm.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_nemotron3_ultra.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_offsetless_tokenizers.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_parity.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_parse_response.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_parse_response_robustness.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_parsers.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_preserve_thinking.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_qwen35_size_coverage.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_qwen38.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_renderer_config.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_roundtrip.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_sampled_mask.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_tagged_rollout.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_tokens_per_message.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/tests/test_tool_arg_type_preservation.py +0 -0
- {renderers-0.1.13.dev7 → renderers-0.1.13.dev8}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: renderers
|
|
3
|
-
Version: 0.1.13.
|
|
3
|
+
Version: 0.1.13.dev8
|
|
4
4
|
Summary: Chat template renderers — deterministic message-to-token conversion for LLM training
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -114,7 +114,7 @@ next_prompt_ids = r.bridge_to_next_turn(
|
|
|
114
114
|
)
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
Hand-coded renderers ship for `qwen3`, `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5`, `glm-5.1`, `glm-5.3`, `glm-5.3-flash`, `glm-4.5`, `minimax-m2`, `deepseek-v3`, `deepseek-r1`, `deepseek-v4` (V4 Flash 0731), `kimi-k2`, `kimi-k2.5` / `kimi-k2.6`, `laguna-xs.2`, `laguna-xs-2.1`, `laguna-s-2.1`, `laguna-m.1`, `nemotron-3`, `nemotron-3-ultra`, `nemotron-3.5`, `llama-3`, `gpt-oss`, `hy3`, `inkling` / `inkling-small`, and `prime-qwen3`. Anything else falls back to `DefaultRenderer`, a generic `apply_chat_template` wrapper. `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5.3-flash`, `kimi-k2.5` / `kimi-k2.6`, and the Inkling checkpoints are multimodal (Inkling handles both image **and** audio; `glm-5.3-flash`
|
|
117
|
+
Hand-coded renderers ship for `qwen3`, `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5`, `glm-5.1`, `glm-5.3`, `glm-5.3-flash`, `glm-4.5`, `minimax-m2`, `deepseek-v3`, `deepseek-r1`, `deepseek-v4` (V4 Flash 0731), `kimi-k2`, `kimi-k2.5` / `kimi-k2.6`, `laguna-xs.2`, `laguna-xs-2.1`, `laguna-s-2.1`, `laguna-m.1`, `nemotron-3`, `nemotron-3-ultra`, `nemotron-3.5`, `llama-3`, `gpt-oss`, `muse-glimmer`, `hy3`, `inkling` / `inkling-small`, and `prime-qwen3`. Anything else falls back to `DefaultRenderer`, a generic `apply_chat_template` wrapper. `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5.3-flash`, `muse-glimmer`, `kimi-k2.5` / `kimi-k2.6`, and the Inkling checkpoints are multimodal (Inkling handles both image **and** audio; `glm-5.3-flash` and `muse-glimmer` render images only with `process_multimodal=False`).
|
|
118
118
|
|
|
119
119
|
## API
|
|
120
120
|
|
|
@@ -94,7 +94,7 @@ next_prompt_ids = r.bridge_to_next_turn(
|
|
|
94
94
|
)
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
Hand-coded renderers ship for `qwen3`, `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5`, `glm-5.1`, `glm-5.3`, `glm-5.3-flash`, `glm-4.5`, `minimax-m2`, `deepseek-v3`, `deepseek-r1`, `deepseek-v4` (V4 Flash 0731), `kimi-k2`, `kimi-k2.5` / `kimi-k2.6`, `laguna-xs.2`, `laguna-xs-2.1`, `laguna-s-2.1`, `laguna-m.1`, `nemotron-3`, `nemotron-3-ultra`, `nemotron-3.5`, `llama-3`, `gpt-oss`, `hy3`, `inkling` / `inkling-small`, and `prime-qwen3`. Anything else falls back to `DefaultRenderer`, a generic `apply_chat_template` wrapper. `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5.3-flash`, `kimi-k2.5` / `kimi-k2.6`, and the Inkling checkpoints are multimodal (Inkling handles both image **and** audio; `glm-5.3-flash`
|
|
97
|
+
Hand-coded renderers ship for `qwen3`, `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5`, `glm-5.1`, `glm-5.3`, `glm-5.3-flash`, `glm-4.5`, `minimax-m2`, `deepseek-v3`, `deepseek-r1`, `deepseek-v4` (V4 Flash 0731), `kimi-k2`, `kimi-k2.5` / `kimi-k2.6`, `laguna-xs.2`, `laguna-xs-2.1`, `laguna-s-2.1`, `laguna-m.1`, `nemotron-3`, `nemotron-3-ultra`, `nemotron-3.5`, `llama-3`, `gpt-oss`, `muse-glimmer`, `hy3`, `inkling` / `inkling-small`, and `prime-qwen3`. Anything else falls back to `DefaultRenderer`, a generic `apply_chat_template` wrapper. `qwen3-vl`, `qwen3.5`, `qwen3.6`, `qwen3.8`, `gemma4`, `glm-5.3-flash`, `muse-glimmer`, `kimi-k2.5` / `kimi-k2.6`, and the Inkling checkpoints are multimodal (Inkling handles both image **and** audio; `glm-5.3-flash` and `muse-glimmer` render images only with `process_multimodal=False`).
|
|
98
98
|
|
|
99
99
|
## API
|
|
100
100
|
|
|
@@ -37,6 +37,7 @@ product in `tests/test_parity.py`.
|
|
|
37
37
|
| GLM-5.3 / 5.3 Flash | `GLM53RendererConfig` / `GLM53FlashRendererConfig` | `clear_thinking`, `reasoning_effort` | - |
|
|
38
38
|
| GLM-4.5 | `GLM45RendererConfig` | `enable_thinking` | - |
|
|
39
39
|
| gpt-oss | `GptOssRendererConfig` | `reasoning_effort`, `conversation_start_date` | `use_system_prompt`, `knowledge_cutoff`, `model_identity`, `auto_drop_analysis` |
|
|
40
|
+
| Muse Glimmer | `MuseGlimmerRendererConfig` | `reasoning_strength`, `knowledge_cutoff`, `current_date` | - |
|
|
40
41
|
| Hy3 | `Hy3RendererConfig` | `reasoning_effort`, `preserved_thinking`, `is_training`, `raw_last_assistant`, `fallback_strategy` | - |
|
|
41
42
|
| Kimi K2 | `KimiK2RendererConfig` | - | `enable_thinking` |
|
|
42
43
|
| Kimi K2.5 / 2.6 | `KimiK25RendererConfig` | `thinking` | `image_cache_max` |
|
|
@@ -144,6 +145,7 @@ the knobs its template actually exposes:
|
|
|
144
145
|
| GLM-5.3 / 5.3 Flash | `clear_thinking=False -> all`, else `tool_cycle` |
|
|
145
146
|
| GLM-4.5 | `enable_thinking=False -> all`, else `tool_cycle` |
|
|
146
147
|
| gpt-oss | `auto_drop_analysis=False -> all`, else `tool_cycle` |
|
|
148
|
+
| Muse Glimmer | `all` (the template keeps every assistant's reasoning) |
|
|
147
149
|
| Hy3 | `preserved_thinking=True -> all`, else `tool_cycle` |
|
|
148
150
|
| Kimi K2.5 / 2.6 | `thinking=False -> all`, else `tool_cycle` |
|
|
149
151
|
| Nemotron-3 / 3.5 | `truncate_history_thinking=False -> all`; else `enable_thinking=False -> all`; else `tool_cycle` |
|
|
@@ -68,6 +68,7 @@ from renderers.configs import (
|
|
|
68
68
|
LagunaXS21RendererConfig,
|
|
69
69
|
Llama3RendererConfig,
|
|
70
70
|
MiniMaxM2RendererConfig,
|
|
71
|
+
MuseGlimmerRendererConfig,
|
|
71
72
|
Nemotron3RendererConfig,
|
|
72
73
|
Nemotron3UltraRendererConfig,
|
|
73
74
|
Nemotron35RendererConfig,
|
|
@@ -111,6 +112,7 @@ _LAZY_RENDERERS: dict[str, str] = {
|
|
|
111
112
|
"LagunaXS2Renderer": "renderers.laguna_xs2",
|
|
112
113
|
"Llama3Renderer": "renderers.llama_3",
|
|
113
114
|
"MiniMaxM2Renderer": "renderers.minimax_m2",
|
|
115
|
+
"MuseGlimmerRenderer": "renderers.muse_glimmer",
|
|
114
116
|
"Nemotron35Renderer": "renderers.nemotron3",
|
|
115
117
|
"Nemotron3Renderer": "renderers.nemotron3",
|
|
116
118
|
"Nemotron3UltraRenderer": "renderers.nemotron3",
|
|
@@ -193,6 +195,8 @@ __all__ = [
|
|
|
193
195
|
"MiniMaxM2RendererConfig",
|
|
194
196
|
"MultiModalData",
|
|
195
197
|
"MultimodalRenderer",
|
|
198
|
+
"MuseGlimmerRenderer",
|
|
199
|
+
"MuseGlimmerRendererConfig",
|
|
196
200
|
"Nemotron35Renderer",
|
|
197
201
|
"Nemotron35RendererConfig",
|
|
198
202
|
"Nemotron3Renderer",
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.13.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1, 13, '
|
|
21
|
+
__version__ = version = '0.1.13.dev8'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 13, 'dev8')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1063,6 +1063,8 @@ MODEL_RENDERER_MAP: dict[str, str] = {
|
|
|
1063
1063
|
# GPT-OSS.
|
|
1064
1064
|
"openai/gpt-oss-20b": "gpt-oss",
|
|
1065
1065
|
"openai/gpt-oss-120b": "gpt-oss",
|
|
1066
|
+
# Muse Glimmer (ATEM channel format; images as one <|patch|> each).
|
|
1067
|
+
"meta-models/Muse-Glimmer-30B": "muse-glimmer",
|
|
1066
1068
|
# Thinking Machines Inkling checkpoints share byte-identical tokenizer,
|
|
1067
1069
|
# chat-template, and processor assets (vision + audio; transformers >= 5.14).
|
|
1068
1070
|
"thinkingmachines/Inkling": "inkling",
|
|
@@ -1375,6 +1377,7 @@ def _populate_registry():
|
|
|
1375
1377
|
)
|
|
1376
1378
|
from renderers.llama_3 import Llama3Renderer
|
|
1377
1379
|
from renderers.minimax_m2 import MiniMaxM2Renderer
|
|
1380
|
+
from renderers.muse_glimmer import MuseGlimmerRenderer
|
|
1378
1381
|
from renderers.nemotron3 import (
|
|
1379
1382
|
Nemotron3Renderer,
|
|
1380
1383
|
Nemotron3UltraRenderer,
|
|
@@ -1419,6 +1422,7 @@ def _populate_registry():
|
|
|
1419
1422
|
"nemotron-3-ultra": Nemotron3UltraRenderer,
|
|
1420
1423
|
"nemotron-3.5": Nemotron35Renderer,
|
|
1421
1424
|
"gpt-oss": GptOssRenderer,
|
|
1425
|
+
"muse-glimmer": MuseGlimmerRenderer,
|
|
1422
1426
|
}
|
|
1423
1427
|
)
|
|
1424
1428
|
|
|
@@ -647,6 +647,34 @@ class GptOssRendererConfig(BaseRendererConfig):
|
|
|
647
647
|
return self
|
|
648
648
|
|
|
649
649
|
|
|
650
|
+
class MuseGlimmerRendererConfig(BaseRendererConfig):
|
|
651
|
+
"""Muse Glimmer (ATEM) renderer config.
|
|
652
|
+
|
|
653
|
+
The chat template never drops historical reasoning, so bridges keep all
|
|
654
|
+
reasoning by default (``thinking_retention`` resolves to ``"all"``).
|
|
655
|
+
"""
|
|
656
|
+
|
|
657
|
+
name: Literal["muse-glimmer"] = "muse-glimmer"
|
|
658
|
+
_template_fields = frozenset(
|
|
659
|
+
{"reasoning_strength", "knowledge_cutoff", "current_date"}
|
|
660
|
+
)
|
|
661
|
+
|
|
662
|
+
reasoning_strength: Literal["low", "medium", "high", "xhigh"] = "high"
|
|
663
|
+
"""``Reasoning strength: <value>.`` line in the system preamble. Mirrors
|
|
664
|
+
the template's ``reasoning_strength`` kwarg (template default ``high``).
|
|
665
|
+
A system message that already states a reasoning strength (or effort)
|
|
666
|
+
keeps its own line instead."""
|
|
667
|
+
|
|
668
|
+
knowledge_cutoff: str = "2026-01-04"
|
|
669
|
+
"""Knowledge-cutoff date in the default preamble (used only when the
|
|
670
|
+
conversation has no system message). Mirrors ``knowledge_cutoff``."""
|
|
671
|
+
|
|
672
|
+
current_date: str | None = None
|
|
673
|
+
"""``Current date`` in the default preamble, as ``YYYY-MM-DD``. ``None``
|
|
674
|
+
uses today's date (the template's ``strftime_now`` fallback), fixed when
|
|
675
|
+
the renderer is constructed. Pin it for reproducible training renders."""
|
|
676
|
+
|
|
677
|
+
|
|
650
678
|
class KimiK2RendererConfig(BaseRendererConfig):
|
|
651
679
|
"""Kimi K2 renderer config.
|
|
652
680
|
|
|
@@ -1051,6 +1079,7 @@ RendererConfig = Annotated[
|
|
|
1051
1079
|
GLM53FlashRendererConfig,
|
|
1052
1080
|
GLM45RendererConfig,
|
|
1053
1081
|
GptOssRendererConfig,
|
|
1082
|
+
MuseGlimmerRendererConfig,
|
|
1054
1083
|
Hy3RendererConfig,
|
|
1055
1084
|
InklingRendererConfig,
|
|
1056
1085
|
KimiK2RendererConfig,
|
|
@@ -1101,6 +1130,7 @@ _CONFIG_BY_NAME: dict[str, type[BaseRendererConfig]] = {
|
|
|
1101
1130
|
"glm-5.3-flash": GLM53FlashRendererConfig,
|
|
1102
1131
|
"glm-4.5": GLM45RendererConfig,
|
|
1103
1132
|
"gpt-oss": GptOssRendererConfig,
|
|
1133
|
+
"muse-glimmer": MuseGlimmerRendererConfig,
|
|
1104
1134
|
"hy3": Hy3RendererConfig,
|
|
1105
1135
|
"inkling": InklingRendererConfig,
|
|
1106
1136
|
"kimi-k2": KimiK2RendererConfig,
|
|
@@ -1168,6 +1198,7 @@ __all__ = [
|
|
|
1168
1198
|
"LagunaXS21RendererConfig",
|
|
1169
1199
|
"Llama3RendererConfig",
|
|
1170
1200
|
"MiniMaxM2RendererConfig",
|
|
1201
|
+
"MuseGlimmerRendererConfig",
|
|
1171
1202
|
"Nemotron35RendererConfig",
|
|
1172
1203
|
"Nemotron3RendererConfig",
|
|
1173
1204
|
"Nemotron3UltraRendererConfig",
|