Wire authenticated voice watch notices through an owned native launcher

This commit is contained in:
yilsem committed 2026-10-12 19:24:33 +03:00
1 parent eeee2756c7
commit b66d9164ad
23 files changed
+1981 -10

No files matched your search

+44 -1
View File
@@ -32,6 +32,11 @@ import is_hatti
import internet
import jev_denetim
from bekci_watch import MetadataFilter
# Installed only by owned native launcher, never an HTTP control endpoint.
WATCH_OWNER = None
SURUM = "8"
HERE = os.path.dirname(os.path.abspath(__file__))
try:
@@ -122,7 +127,7 @@ seq = [0]
def log(msg):
line = time.strftime("%Y-%m-%d %H:%M:%S ") + msg
print(line, flush=True)
print(line, file=sys.stderr, flush=True)
with lock:
with open(os.path.join(LOGDIR, "bridge.log"), "a", encoding="utf-8") as f:
f.write(line + "\n")
@@ -1071,6 +1076,8 @@ class H(http.server.BaseHTTPRequestHandler):
body = self._read()
path = self.path
if path.startswith("/aiturk/codex-baglama/"):
if WATCH_OWNER is not None:
return self._send_json(404, {"error": "not available on native owner"})
return self._control(path)
if DEBUG:
log(f"[{n} giris {self.command} {path[:70]}] cl={self.headers.get('Content-Length')} enc={self.headers.get('Content-Encoding')} govde={len(body)}")
@@ -1391,6 +1398,7 @@ class H(http.server.BaseHTTPRequestHandler):
except Exception as e:
log(f"[{n} responses] govde cozulemedi: {e}")
return self._send_json(400, {"error": {"message": f"bridge: govde cozulemedi: {e}"}})
self.watch_correlation = WATCH_OWNER.capture(dict(self.headers), req) if WATCH_OWNER else None
slug = req.get("model", "")
gelen = slug # Codex'in bu sohbet icin gonderdigi ad (listeden secilen model)
if not ek_model_mu(gelen):
@@ -1669,6 +1677,23 @@ class H(http.server.BaseHTTPRequestHandler):
break
log(f"{tag} deneme {attempt}: {e}")
time.sleep(min(2 * attempt, 8)); continue
# Only the resolved exact voice target owns this sideband protocol.
# Other models retain their original response/Jev/stream pipeline.
if target == 'Sesli-Hizli-Zeki':
# Capture was taken before rewriting/request dispatch. Only this exact
# route credential may authenticate the returned public receipt.
correlation = self.watch_correlation
accept_watch = lambda metadata: WATCH_OWNER.accept(metadata, correlation, route['key'], route['url']) if WATCH_OWNER else None
if 'application/json' in str(resp.headers.get('Content-Type', '')):
try:
reply = json.loads(resp.read())
if isinstance(reply, dict):
metadata = reply.pop('_bekci_watch', None)
if metadata is not None: accept_watch(metadata)
return self._send_json(resp.status, reply)
finally:
resp.close()
resp = WatchResponse(resp, accept_watch)
# Headers go to the client from here on: a cut stream is never resent.
if ozet_tetik:
akis = ozet_kopru.OzetAkisi(rewriter, tohum=str(n), en_az=ozet_kopru.en_az_karakter(girdi_bayt, ozet_cfg))
@@ -1688,6 +1713,24 @@ class H(http.server.BaseHTTPRequestHandler):
do_DELETE = _handle
do_PATCH = _handle
class WatchResponse:
"""Remove metadata before any response rewriter, log or history observer."""
def __init__(self, response, accept):
self.response, self.filter = response, MetadataFilter(accept)
self.done = False
def __getattr__(self, name):
return getattr(self.response, name)
def read1(self, size):
while not self.done:
raw = self.response.read1(size)
if raw:
data = self.filter.feed(raw)
if data: return data
else:
self.done = True
return self.filter.flush()
return b''
class TS(http.server.ThreadingHTTPServer):
daemon_threads = True
# Windows'ta SO_REUSEADDR baska bir surecin ayni portu "calmasina" izin verir.