mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-05 08:58:34 +00:00
21 lines
758 B
Python
21 lines
758 B
Python
"""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()
|