@danhachuel/thunderbolt 0.3.86 → 0.3.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/app/main.py CHANGED
@@ -5473,28 +5473,29 @@ def _render_llm_card(settings: dict[str, Any], cards: list[dict[str, Any]], inde
5473
5473
  if not isinstance(model_catalog, list):
5474
5474
  model_catalog = []
5475
5475
  current_model = str(card.get("model") or "").strip()
5476
- manual_model = "__manual_model__"
5477
5476
  discovered_models = [str(item).strip() for item in model_catalog if str(item).strip()]
5478
- options = list(dict.fromkeys(discovered_models))
5477
+ default_models = [
5478
+ "gpt-4.1-mini",
5479
+ "gpt-4o-mini",
5480
+ "meta/llama-3.1-8b-instruct",
5481
+ "meta/llama-3.1-70b-instruct",
5482
+ "meta/llama-3.3-70b-instruct",
5483
+ "nvidia/llama-3.1-nemotron-70b-instruct",
5484
+ ] if definition.code == "openai" else []
5485
+ options = ["__select_model__", *list(dict.fromkeys([*discovered_models, *default_models]))]
5479
5486
  # Mantém modelos guardados mesmo quando a descoberta ainda não foi
5480
5487
  # executada ou quando o provider deixou de os devolver temporariamente.
5481
5488
  if current_model and current_model not in options:
5482
- options.insert(0, current_model)
5483
- options.append(manual_model)
5489
+ options.insert(1, current_model)
5484
5490
  selected = st.selectbox(
5485
5491
  "Modelo",
5486
5492
  options,
5487
- index=options.index(current_model) if current_model in options else len(options) - 1,
5488
- format_func=lambda value: "Escrever modelo manualmente" if value == manual_model else value,
5489
- help="Seleccione um modelo descoberto pelo provider. Use a opção manual apenas quando o endpoint exigir um identificador que não esteja na lista.",
5493
+ index=options.index(current_model) if current_model in options else 0,
5494
+ format_func=lambda value: "Seleccione um modelo" if value == "__select_model__" else value,
5495
+ help="Seleccione um modelo da lista ou actualize o catálogo a partir do endpoint do provider.",
5490
5496
  key=f"llm_card_{card_id}_model_select",
5491
5497
  )
5492
- model = st.text_input(
5493
- "Modelo manual",
5494
- value=current_model if selected == manual_model and current_model not in discovered_models else "",
5495
- help="ID do modelo usado pelo endpoint Chat Completions.",
5496
- key=f"llm_card_{card_id}_model_manual",
5497
- ) if selected == manual_model else selected
5498
+ model = "" if selected == "__select_model__" else selected
5498
5499
  base_url = str(card.get("base_url") or definition.default_base_url)
5499
5500
  endpoint_col, action_col = st.columns([1.65, 1.05])
5500
5501
  with endpoint_col:
@@ -1332,6 +1332,17 @@ def _run_task(task: dict[str, Any]) -> dict[str, Any]:
1332
1332
  if isinstance(stored_upload, dict) and stored_upload:
1333
1333
  return _update(task_id, stage="upload", state="done", progress=100, artifacts=artifacts, video_ready=True, error=None)
1334
1334
 
1335
+ configured_account_id = str(channel.get("google_account_id") or "").strip()
1336
+ configured_upload_post = bool(settings.get("upload_post_enabled", False)) and bool(settings.get("upload_post_auto_upload", False))
1337
+ configured_postiz = bool(settings.get("postiz_enabled", False)) and bool(settings.get("postiz_auto_publish", False))
1338
+ if not (configured_account_id or configured_upload_post or configured_postiz):
1339
+ artifacts["upload"] = {
1340
+ "route": "local",
1341
+ "status": "skipped",
1342
+ "reason": "Nenhuma rota de publicação foi configurada para esta tarefa; os artefactos foram concluídos localmente.",
1343
+ }
1344
+ return _update(task_id, stage="upload", state="done", progress=100, artifacts=artifacts, video_ready=True, error=None)
1345
+
1335
1346
  _update(task_id, stage="upload", state="doing", progress=max(94, int(task.get("progress") or 0)), error=None)
1336
1347
  result = upload_with_default_route(
1337
1348
  settings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danhachuel/thunderbolt",
3
- "version": "0.3.86",
3
+ "version": "0.3.88",
4
4
  "description": "Thunderbolt — interface local para operação de canais faceless e motor MoneyPrinterTurbo",
5
5
  "license": "MIT",
6
6
  "main": "scripts/cli.mjs",