feat(agent): make model presets session-scoped (#4866)

This commit is contained in:
chengyongru
2026-07-23 00:38:49 +08:00
committed by GitHub
parent 66690fdb0c
commit c22efb5f7a
41 changed files with 1140 additions and 155 deletions
+20
View File
@@ -0,0 +1,20 @@
"""Session-scoped model preset metadata."""
from __future__ import annotations
from collections.abc import Mapping
# Session.metadata is public SDK data, so internal selectors use a reserved namespace.
SESSION_MODEL_PRESET_METADATA_KEY = "_nanobot_model_preset"
def model_preset_from_metadata(metadata: object) -> str | None:
"""Read the canonical session preset name from persisted metadata."""
if not isinstance(metadata, Mapping):
return None
if SESSION_MODEL_PRESET_METADATA_KEY not in metadata:
return None
value = metadata[SESSION_MODEL_PRESET_METADATA_KEY]
if not isinstance(value, str) or not value.strip():
raise ValueError("session model preset must be a non-empty string")
return value.strip()