fix(codex-bridge): preserve tool model and stream preparation without Jev fallback

This commit is contained in:
yilsem committed 2026-10-11 15:51:43 +03:00
1 parent 8fbbe226db
commit 3726d2a553
6 files changed
+118 -14

No files matched your search

@@ -93,6 +93,32 @@ def son_istek(req):
return ""
def hazirlik_mi(govde):
"""Araç çağrısı veya commentary görüldüyse adım nihai cevap değildir.
Tam SSE satırları üzerinden bakılır; parçalı olay bir sonraki parçada tamamlanır.
Araç argümanında geçen olay adı hazırlık sayılmaz.
"""
for satir in govde.splitlines():
if not satir.startswith(b'data:'):
continue
try:
olay = json.loads(satir[5:])
except (ValueError, UnicodeDecodeError):
continue
if not isinstance(olay, dict):
continue
tip = str(olay.get('type') or '')
oge = olay.get('item') or {}
if tip in ('response.output_item.added', 'response.output_item.done') and isinstance(oge, dict):
if str(oge.get('type') or '').endswith('_call') or oge.get('phase') == 'commentary':
return True
if tip in ('response.function_call_arguments.delta', 'response.function_call_arguments.done',
'response.custom_tool_call_input.delta', 'response.custom_tool_call_input.done'):
return True
return False
def komutlar(govde):
"""Yazisi olmayan adimda Jev'e giden metin: modelin bu adimda cagirdigi araclar (ad ve arguman).
govde: ust kaynagin SSE yaniti (bayt). Arac cagrisi yoksa ""."""