refactor(hermes_cli): flag tokenizer via iterator; signature packing

This commit is contained in:
Teknium
2026-09-02 23:09:45 -07:00
parent 97ff1f5ad4
commit aeabe4374f
2 changed files with 14 additions and 31 deletions

View File

@@ -356,10 +356,7 @@ class StartupModelRoute(NamedTuple):
def resolve_startup_model_route(
raw_model: str,
*,
explicit_provider: str = "",
current_provider: str = "",
raw_model: str, *, explicit_provider: str = "", current_provider: str = "",
user_providers: Optional[dict] = None,
custom_providers: Optional[list] = None) -> Optional[StartupModelRoute]:
"""Resolve aliases and configured ``provider/model`` input at startup.
@@ -477,18 +474,15 @@ def parse_model_flags_detailed(raw_args: str) -> ModelFlagParseResult:
# require shell quoting.
flags = dict.fromkeys(_BOOL_FLAGS.values(), False)
explicit_provider = ""
parts = raw_args.split()
i = 0
filtered: list[str] = []
while i < len(parts):
if parts[i] in _BOOL_FLAGS:
flags[_BOOL_FLAGS[parts[i]]] = True
elif parts[i] == "--provider" and i + 1 < len(parts):
explicit_provider = parts[i + 1]
i += 1
tokens = iter(raw_args.split())
for tok in tokens:
if tok in _BOOL_FLAGS:
flags[_BOOL_FLAGS[tok]] = True
elif tok == "--provider" and (value := next(tokens, None)) is not None:
explicit_provider = value
else:
filtered.append(parts[i])
i += 1
filtered.append(tok) # a trailing bare ``--provider`` stays part of the model text
return ModelFlagParseResult(model_input=" ".join(filtered).strip(), explicit_provider=explicit_provider, **flags)
@@ -796,14 +790,9 @@ def _resolve_alias_fallback(
def resolve_display_context_length(
model: str,
provider: str,
base_url: str = "",
api_key: str = "",
model_info: Optional[ModelInfo] = None,
custom_providers: list | None = None,
config_context_length: int | None = None,
configured_model: str | None = None,
model: str, provider: str, base_url: str = "", api_key: str = "",
model_info: Optional[ModelInfo] = None, custom_providers: list | None = None,
config_context_length: int | None = None, configured_model: str | None = None,
configured_provider: str | None = None,
configured_base_url: str | None = None) -> Optional[int]:
"""Context length to show in /model output.
@@ -867,12 +856,10 @@ def _configured_provider_matches(
matches: dict[str, str] = {}
for slug, cfg in candidates:
if slug in matches:
continue
hit = next((mid for key in ("models", "model", "default_model")
for mid in _declared_model_ids(cfg.get(key)) if mid.lower() == target), None)
if hit:
matches[slug] = hit
matches.setdefault(slug, hit) # first declaration wins
return matches

View File

@@ -93,12 +93,8 @@ class _NativePickerModelList(list[str]):
def _fetch_picker_live_models(
api_key: str,
api_url: str,
native_catalog_provider: str,
preserve_native_models: bool,
headers: dict[str, str] | None = None,
timeout: float = 5.0,
api_key: str, api_url: str, native_catalog_provider: str, preserve_native_models: bool,
headers: dict[str, str] | None = None, timeout: float = 5.0,
api_mode: str | None = None) -> list[str] | None:
"""Fetch picker models with native Ollama and cached generic discovery."""
from hermes_cli.models import (