feat(stream): dispatch extract_dossier -> handler serveur
Câble le type d'action 'extract_dossier' dans get_next_action (api_stream) vers _handle_extract_dossier_action (replay_engine). La brique 3 (OCR -> gate -> persist dossier VWB) était committée mais non atteignable au runtime faute de dispatch. Import + elif dédié, timeout 180s, exécuteur non bloquant. Note: le handler utilise encore l'ancienne chaîne (extract_grid + gate maison). Le remplacement par l'extraction ancrée (map_roles/vlm_client) est une modif séparée côté replay_engine (ma zone). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -423,6 +423,7 @@ from .replay_engine import (
|
|||||||
_SERVER_SIDE_ACTION_TYPES,
|
_SERVER_SIDE_ACTION_TYPES,
|
||||||
_handle_extract_text_action,
|
_handle_extract_text_action,
|
||||||
_handle_extract_table_action,
|
_handle_extract_table_action,
|
||||||
|
_handle_extract_dossier_action,
|
||||||
_handle_t2a_decision_action,
|
_handle_t2a_decision_action,
|
||||||
_handle_llm_generate_action,
|
_handle_llm_generate_action,
|
||||||
_handle_concat_text_vars_action,
|
_handle_concat_text_vars_action,
|
||||||
@@ -4443,6 +4444,15 @@ async def get_next_action(session_id: str, machine_id: str = "default"):
|
|||||||
),
|
),
|
||||||
timeout=180,
|
timeout=180,
|
||||||
)
|
)
|
||||||
|
elif type_ == "extract_dossier":
|
||||||
|
await asyncio.wait_for(
|
||||||
|
loop.run_in_executor(
|
||||||
|
None,
|
||||||
|
_handle_extract_dossier_action,
|
||||||
|
action, owning_replay, session_id,
|
||||||
|
),
|
||||||
|
timeout=180,
|
||||||
|
)
|
||||||
elif type_ == "t2a_decision":
|
elif type_ == "t2a_decision":
|
||||||
await asyncio.wait_for(
|
await asyncio.wait_for(
|
||||||
loop.run_in_executor(
|
loop.run_in_executor(
|
||||||
|
|||||||
Reference in New Issue
Block a user