Spaces:
Running
Running
sync: 190 file da Baida98/AI@5e779bf0 (2026-08-26 16:26 UTC) [deploy-all]
Browse files- api/agent.py +18 -0
api/agent.py
CHANGED
|
@@ -1046,6 +1046,24 @@ async def stream_agent_task(task_id: str, request: Request, resume: int = 0, rol
|
|
| 1046 |
"Il frontend mostrerà automaticamente un pulsante 'Connetti' all'utente."
|
| 1047 |
)
|
| 1048 |
context_str = f"{context_str}\n\n{_connector_hint}".strip() if context_str else _connector_hint
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1049 |
# GAP-SYNC-FIX: inject _resume_context (set da stream_agent_task su reconnect con checkpoint)
|
| 1050 |
# Bug: _resume_context era settato su task{} ma mai letto qui → context perduto su resume.
|
| 1051 |
_resume_ctx = task.get('_resume_context', '')
|
|
|
|
| 1046 |
"Il frontend mostrerà automaticamente un pulsante 'Connetti' all'utente."
|
| 1047 |
)
|
| 1048 |
context_str = f"{context_str}\n\n{_connector_hint}".strip() if context_str else _connector_hint
|
| 1049 |
+
# ARTIFACT-CONTRACT: le richieste di pagina/app richiedono un
|
| 1050 |
+
# artifact reale, non una risposta narrativa. Il frontend committa
|
| 1051 |
+
# solo file_written + vfs_sync_complete, quindi l'agente deve
|
| 1052 |
+
# scrivere e rileggere almeno un file prima di dichiarare successo.
|
| 1053 |
+
_artifact_goal = bool(re.search(
|
| 1054 |
+
r"\b(?:pagina|sito|website|webapp|app|mini[- ]app|ui|interfaccia)\b",
|
| 1055 |
+
task.get('goal', ''), re.IGNORECASE,
|
| 1056 |
+
))
|
| 1057 |
+
if _artifact_goal:
|
| 1058 |
+
_artifact_hint = (
|
| 1059 |
+
"[CONTRATTO ARTIFACT UI]\n"
|
| 1060 |
+
"Per questa richiesta devi creare davvero i file nel workspace usando write_file "
|
| 1061 |
+
"(non limitarti a proporre codice in chat). Dopo la scrittura, usa read_file o "
|
| 1062 |
+
"un controllo equivalente per verificare il contenuto. Dichiara completamento "
|
| 1063 |
+
"solo se la scrittura è riuscita; in caso contrario segnala l'errore senza inventare "
|
| 1064 |
+
"un link o un'anteprima."
|
| 1065 |
+
)
|
| 1066 |
+
context_str = f"{_artifact_hint}\n\n{context_str}".strip()
|
| 1067 |
# GAP-SYNC-FIX: inject _resume_context (set da stream_agent_task su reconnect con checkpoint)
|
| 1068 |
# Bug: _resume_context era settato su task{} ma mai letto qui → context perduto su resume.
|
| 1069 |
_resume_ctx = task.get('_resume_context', '')
|