mirror of
https://github.com/yusufipk/dikte.git
synced 2026-09-12 03:16:19 +00:00
Fetch every model list at open, without being asked
Codex's list already arrived on its own, because reading a cache on disk costs nothing. The other three lists were behind a Fetch button, which meant the built-in ones aged in front of anyone who never pressed it. Now OpenRouter's and Google's lists are fetched when the settings window opens, and Antigravity's comes off `agy models`, which prints one id-tab-name line per model and answers over the network in a couple of seconds; all three run off the interface thread. Nobody asked, so nothing is reported: a failure changes nothing on screen, the built-in lists stay, and the Fetch buttons remain both the retry and the place an error is worth explaining. A provider whose key has not been given is not called at all, so opening Settings is not by itself a request to two vendors. Also drops an import the merge had left in twice. Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
@@ -487,6 +487,32 @@ def _agy_label(step):
|
||||
return t("Using {name}…", name=name or "a tool")
|
||||
|
||||
|
||||
def agy_models():
|
||||
"""The models Antigravity itself would offer right now, in its own order.
|
||||
|
||||
`agy models` prints one `id<TAB>display name` line per model, so the list
|
||||
is as current as the account behind the CLI. Unlike Codex it asks Google
|
||||
rather than a cache on disk, a couple of seconds the caller spends off the
|
||||
interface thread. A machine without agy, or a call that fails, answers
|
||||
with nothing and the caller keeps its built-in list.
|
||||
"""
|
||||
if not shutil.which("agy"):
|
||||
return []
|
||||
try:
|
||||
proc = subprocess.run(["agy", "models"],
|
||||
capture_output=True, text=True, timeout=30)
|
||||
except (OSError, subprocess.SubprocessError):
|
||||
return []
|
||||
if proc.returncode != 0:
|
||||
return []
|
||||
ids = []
|
||||
for line in (proc.stdout or "").splitlines():
|
||||
model_id, tab, _ = line.partition("\t")
|
||||
if tab and model_id.strip():
|
||||
ids.append(model_id.strip())
|
||||
return ids
|
||||
|
||||
|
||||
# --- OpenRouter -----------------------------------------------------------
|
||||
|
||||
def _ask_openrouter(prompt, conf, on_stage):
|
||||
|
||||
Reference in New Issue
Block a user