feat(agent): make model presets session-scoped (#4866)
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user