From b029e7cb5e86844c03bb1dfa4eb450760d584e07 Mon Sep 17 00:00:00 2001 From: Roman | RyzenAdvanced Date: Tue, 26 May 2026 16:14:05 +0400 Subject: [PATCH] v3.11.5: token-aware compaction, vision filter, universal adaptive compaction, smart-continue text detection --- CHANGELOG.md | 24 +++ README.md | 4 + codex-launcher_3.11.0_all.deb | Bin 137678 -> 0 bytes codex-launcher_3.11.5_all.deb | Bin 0 -> 156116 bytes install.sh | 10 +- src/codex-launcher-gui | 37 +++- src/codex_launcher_lib.py | 16 +- src/translate-proxy.py | 360 ++++++++++++++++++++++++++++------ translate-proxy.py | 360 ++++++++++++++++++++++++++++------ 9 files changed, 684 insertions(+), 127 deletions(-) delete mode 100644 codex-launcher_3.11.0_all.deb create mode 100644 codex-launcher_3.11.5_all.deb diff --git a/CHANGELOG.md b/CHANGELOG.md index fe1eb0f..b5bf12d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## v3.11.5 (2026-05-26) + +**Vision Filter, Token-Aware Compaction, Universal Adaptive Compaction, Smart-Continue Text Detection** + +### Critical Fixes + +- **Token-aware compaction for small-context models (FIX)**: `_crof_compact_for_retry()` had an early return at `len(input_data) <= limit` (item count) — if you had 25 items × 1600 tokens = 40K tokens, it skipped compaction entirely because 25 < 30 (the default item limit). Now also checks estimated token count vs learned model max, and compacts when either item count OR token count exceeds limits. Fixes repeated `context_length_exceeded` errors on models like 0G-GLM-5.1 (~35K token context). +- **Proactive compaction now token-aware**: Previously only triggered when item count > 30. Now also triggers when estimated tokens exceed 80% of the model's learned token limit, even if item count is below the threshold. Prevents the first-request failure pattern on small-context models. +- **Compaction aggression threshold**: Changed `est > max_tok` to `est >= max_tok * 0.9` to avoid edge case where estimated tokens exactly equal the limit and compaction is skipped. +- **Removed all `crof.ai` gates from adaptive compaction**: Proactive compaction, `finish_reason=length` retry, `_crof_record`, and compaction logging were gated behind `"crof.ai" in TARGET_URL`. These gates prevented OpenAdapter and other providers from getting proactive/retry compaction, causing repeated `context_length_exceeded` failures. Now applies universally to ALL providers. + +### New Features + +- **Vision model detection + image stripping**: `_strip_images_from_input()` and `_model_supports_vision()` detect vision capability by model name pattern. Non-vision models (deepseek, glm, mixtral, llama, command, dbrx, qwen, phi-3) have `input_image`/`image_url` parts stripped and replaced with `[User attached image: filename — this model does not support vision]` text notice. Vision models (gpt-4o, gemini, claude, qwen-vl, glm-5v) keep images intact. Applied in 3 paths: main request, context_length_exceeded retry, smart-continue nudge. +- **Token estimation and per-model limit learning**: `_estimate_tokens()`, `_estimate_input_tokens()`, `_get_model_max_tokens()`, `_set_model_max_tokens()`. Extracts `~N tokens` from `context_length_exceeded` error messages and stores per-model token limits. Used by proactive compaction and retry compaction to adjust `keep` count dynamically. +- **Compaction aggression levels**: `_crof_compact_for_retry()` accepts `aggression` parameter (0=normal, 1=extreme). Extreme mode kicks in when estimated tokens > 1.5× the learned limit or on 2nd+ retry attempt. Reduces `keep` count to minimum, ensuring the compacted request fits within model limits. +- **Smart-continue text-tool detection**: Removed hard requirement for `has_function_call_output(input_data)`. Added `_TOOL_CALL_TEXT_PATTERNS` and `_text_looks_like_tool_calls()` to trigger nudging when model outputs text matching tool-call patterns (e.g., `• (exec_command cmd ...)`, `write_to_file`, `exec_command`) even without prior `function_call_output` in context. Essential for models like 0G-GLM-5.1 that never emit real `function_call_output` items. +- **Parenthesized tool call regex**: `_PAREN_TC_RE` pattern to match `• (name args...)` format from non-vision models that output tool calls as parenthesized text. + +### GUI Fixes + +- **Active endpoint sync**: Added `set_active_endpoint()` and `validate_active_endpoint()` to Linux GTK GUI. Syncs `.active-endpoint.json` with `config.toml` on every launch; auto-removes stale references to deleted providers. Fixed `"Error loading configuration: No such file or directory (os error 2)"` crash when active endpoint referenced a deleted provider. +- **Config state**: `~/.codex/.active-endpoint.json` and `config.toml` model catalog path validated and auto-corrected on GUI startup. + ## v3.11.0 (2026-05-26) **Cobra PR Merge + Smart Continuation + API Key Hot-Reload** diff --git a/README.md b/README.md index 6975940..7ee8861 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,10 @@ A three-component system: - **Response store TTL** — evicts stored responses older than 10 minutes, prevents memory leaks - **Bounded stream buffers** — 8MB cap prevents OOM on pathological responses - **Dual logging** — all proxy messages written to both stderr and `~/.cache/codex-proxy/proxy.log` +- **Vision model detection** (v3.11.5) — automatically strips images for non-vision models (DeepSeek, GLM, Qwen, etc.) and replaces with text notice; vision-capable models (GPT-4o, Gemini, Claude, Qwen-VL) keep images intact +- **Token-aware compaction** (v3.11.5) — learns per-model token limits from `context_length_exceeded` errors; proactively compacts when estimated tokens exceed 80% of limit; prevents repeated context overflow on small-context models (~35K tokens) +- **Universal adaptive compaction** (v3.11.5) — compaction now works for ALL providers (was Crof.ai-only); proactive + retry compaction with aggression levels (normal/extreme) +- **Smart-continue text detection** (v3.11.5) — triggers continuation nudging when model outputs text matching tool-call patterns, essential for text-only models that never emit real `function_call_output` items - Zero dependencies — pure Python stdlib ### Command Code Adapter diff --git a/codex-launcher_3.11.0_all.deb b/codex-launcher_3.11.0_all.deb deleted file mode 100644 index 5d375ab178c77976482800add687753972f589c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137678 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 diff --git a/codex-launcher_3.11.5_all.deb b/codex-launcher_3.11.5_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..4fff7570f7891c2abb4c136f80a90f6db080a398 GIT binary patch literal 156116 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∾TW{SV@a-(h{md4g) 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�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

?G;?dRanHb^*)3Q&` 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 W>|*9wD1uG!2w$~17Zn6%AQJ}VSotad literal 0 HcmV?d00001 diff --git a/install.sh b/install.sh index 88f869b..4dd2382 100755 --- a/install.sh +++ b/install.sh @@ -3,13 +3,13 @@ set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -if [ -f "$SCRIPT_DIR/codex-launcher_3.11.0_all.deb" ]; then - echo "Installing codex-launcher_3.11.0_all.deb ..." - sudo dpkg -i "$SCRIPT_DIR/codex-launcher_3.11.0_all.deb" +if [ -f "$SCRIPT_DIR/codex-launcher_3.11.5_all.deb" ]; then + echo "Installing codex-launcher_3.11.5_all.deb ..." + sudo dpkg -i "$SCRIPT_DIR/codex-launcher_3.11.5_all.deb" else - echo "WARNING: codex-launcher_3.11.0_all.deb not found; copying files manually." + echo "WARNING: codex-launcher_3.11.5_all.deb not found; copying files manually." fi -echo "Installed v3.11.0 via .deb package." +echo "Installed v3.11.5 via .deb package." echo " translate-proxy.py -> /usr/bin/translate-proxy.py" echo " codex-launcher-gui -> /usr/bin/codex-launcher-gui" echo " cleanup-codex-stale -> /usr/bin/cleanup-codex-stale.sh" diff --git a/src/codex-launcher-gui b/src/codex-launcher-gui index b0853fd..e39fbf0 100755 --- a/src/codex-launcher-gui +++ b/src/codex-launcher-gui @@ -20,12 +20,22 @@ BGP_POOLS_FILE = HOME / ".codex/bgp-pools.json" LOG_DIR = HOME / ".cache/codex-desktop" LAUNCH_LOG = LOG_DIR / "launcher.log" PROXY_CONFIG_DIR = HOME / ".cache/codex-proxy" +ACTIVE_ENDPOINT_FILE = HOME / ".codex/.active-endpoint.json" DEFAULT_CONFIG = """model = "" model_provider = "" model_catalog_json = "" """ CHANGELOG = [ + ("3.11.5", "2026-05-26", [ + "Token-aware compaction: fixes context_length_exceeded on small-context models", + "Proactive compaction triggers on token count, not just item count", + "Universal adaptive compaction for all providers (removed crof.ai gates)", + "Vision model detection + image stripping for non-vision models", + "Per-model token limit learning from error messages", + "Smart-continue text-tool detection for text-only models", + "Active endpoint sync: auto-removes stale references on startup", + ]), ("3.11.0", "2026-05-26", [ "Merge cobra PR: concurrency semaphore (max 3), auto-continue for truncated text", "SO_REUSEADDR on sticky port, proxy-stderr.log, stream diagnostics logging", @@ -33,7 +43,7 @@ CHANGELOG = [ "Restart Proxy button: only restarts proxy without killing Codex Desktop", "Tool call argument normalizer: fixes Arguments→arguments, strips markdown wrapping", "Smart-continue loop (2× retries): escalating nudges when model stops text-only mid-task", - "XML tool call extraction: parses patterns from text, injects as real calls", + "XML tool call extraction: parses patterns from text, injects as real calls", "Auto-continue + smart-continue ordered with skip guard to avoid double-firing", "API key hot-reload with mtime tracking + /admin/reload + /admin/verify-key endpoints", "GUI hot-reload: auto-refreshes proxy key on endpoint edit, verifies with upstream", @@ -923,6 +933,27 @@ def restore_config(): shutil.copy2(str(CONFIG_BAK), str(tmp)) os.replace(str(tmp), str(CONFIG)) +def set_active_endpoint(name): + ACTIVE_ENDPOINT_FILE.parent.mkdir(parents=True, exist_ok=True) + write_secure_text(ACTIVE_ENDPOINT_FILE, json.dumps({"active": name}, indent=2)) + +def validate_active_endpoint(logfn=None): + if not ACTIVE_ENDPOINT_FILE.exists(): + return + try: + d = json.loads(ACTIVE_ENDPOINT_FILE.read_text()) + active = d.get("active", "") + if not active: + return + eps = load_endpoints() + names = {ep.get("name", "") for ep in eps} + if active not in names: + ACTIVE_ENDPOINT_FILE.unlink() + if logfn: + logfn(f"Removed stale active-endpoint '{active}' (provider no longer exists)") + except Exception: + pass + def write_secure_text(path, text): path.parent.mkdir(parents=True, exist_ok=True) tmp = path.with_suffix(path.suffix + ".tmp") @@ -1862,6 +1893,7 @@ class LauncherWin(Gtk.Window): self._proc = None self._endpoints_data = load_endpoints() recover_config_if_needed() + validate_active_endpoint() vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=8) self.add(vbox) @@ -2607,6 +2639,8 @@ class LauncherWin(Gtk.Window): begin_config_transaction(f"launch:{ep['name']}") write_config_for_native(ep, model) + set_active_endpoint(ep["name"]) + if target == "desktop": if needs_proxy: _kill_existing_desktop(self.log) @@ -2664,6 +2698,7 @@ class LauncherWin(Gtk.Window): begin_config_transaction(f"launch:bgp:{pool['name']}") write_config_for_translated(bgp_ep, model, port) + set_active_endpoint(pool["name"]) if target == "desktop": _kill_existing_desktop(self.log) diff --git a/src/codex_launcher_lib.py b/src/codex_launcher_lib.py index 28e6e92..94249d0 100644 --- a/src/codex_launcher_lib.py +++ b/src/codex_launcher_lib.py @@ -83,14 +83,24 @@ model_catalog_json = "" """ CHANGELOG = [ + ("3.11.5", "2026-05-26", [ + "Token-aware compaction: fixes context_length_exceeded on small-context models (25 items × 1600 tokens)", + "Proactive compaction triggers on token count (>80% model limit), not just item count", + "Universal adaptive compaction: removed crof.ai-only gates, all providers get compaction", + "Vision model detection: strips images for non-vision models, keeps for vision-capable ones", + "Per-model token limit learning from context_length_exceeded error messages", + "Compaction aggression levels: normal vs extreme when tokens > 1.5× model limit", + "Smart-continue text-tool detection: triggers on tool-call text patterns, not just function_call_output", + "Active endpoint sync: GUI auto-removes stale endpoint references on startup", + ]), ("3.11.0", "2026-05-26", [ "Merge cobra PR: concurrency semaphore (max 3), auto-continue for truncated text", "SO_REUSEADDR on sticky port, proxy-stderr.log, stream diagnostics logging", "Timeout/OSError handler sends response.failed SSE instead of silent drop", "Restart Proxy button: only restarts proxy without killing Codex Desktop", - "Tool call argument normalizer: fixes Arguments→arguments, strips markdown wrapping", - "Smart-continue loop (2× retries): escalating nudges when model stops text-only mid-task", - "XML tool call extraction: parses patterns from text, injects as real calls", + "Tool call argument normalizer: fixes Arguments->arguments, strips markdown wrapping", + "Smart-continue loop (2x retries): escalating nudges when model stops text-only mid-task", + "XML tool call extraction: parses patterns from text, injects as real calls", "Auto-continue + smart-continue ordered with skip guard to avoid double-firing", "API key hot-reload with mtime tracking + /admin/reload + /admin/verify-key endpoints", "GUI hot-reload: auto-refreshes proxy key on endpoint edit, verifies with upstream", diff --git a/src/translate-proxy.py b/src/translate-proxy.py index 6d7b966..6c5906b 100755 --- a/src/translate-proxy.py +++ b/src/translate-proxy.py @@ -787,6 +787,10 @@ _GEMINI_AGENT_GUARDRAIL = ( ) _LOG_FILE_LOCK = threading.Lock() +_ANTIGRAVITY_LOOP_TRACKER = {} +_ANTIGRAVITY_LOOP_TRACKER_LOCK = threading.Lock() +def _antigravity_loop_key(session_id): + return f"ag:{session_id}" def _fetch_antigravity_version(): cache_path = os.path.join(os.path.expanduser("~"), ".cache", "codex-proxy", "antigravity-version.json") @@ -1469,6 +1473,53 @@ _CROF_ADAPTIVE = { "min_keep_recent": 6, } +_model_max_tokens = {} +_model_max_tokens_lock = threading.Lock() + +def _estimate_tokens(item): + if not isinstance(item, dict): + return 4 + t = item.get("type", "") + if t == "message": + content = item.get("content", "") + if isinstance(content, str): + return max(4, len(content) // 4) + elif isinstance(content, list): + total = 4 + for part in content: + pt = part.get("type", "") + if pt in ("input_text", "output_text"): + total += max(4, len(part.get("text", "")) // 4) + elif pt == "input_image": + total += 800 + elif pt in ("function_call",): + total += max(20, len(part.get("arguments", "{}")) // 2) + elif pt == "function_call_output": + total += max(8, len(part.get("output", "")) // 4) + return total + elif t in ("function_call_output",): + return max(8, len(item.get("output", "")) // 4) + elif t == "function_call": + return max(20, len(item.get("arguments", "{}")) // 2) + return 4 + +def _estimate_input_tokens(input_data): + if not isinstance(input_data, list): + return 0 + return sum(_estimate_tokens(i) for i in input_data) + +def _get_model_max_tokens(model): + with _model_max_tokens_lock: + return _model_max_tokens.get(model) + +def _set_model_max_tokens(model, tokens): + if model and tokens: + with _model_max_tokens_lock: + existing = _model_max_tokens.get(model) + if existing is None or tokens < existing: + _model_max_tokens[model] = tokens + print(f"[ctx-limit] learned {model} max ~{tokens} tokens", file=sys.stderr) + _BGP_STATS_PATH = os.path.join(_LOG_DIR, "bgp-route-stats.json") _bgp_stats_lock = threading.Lock() @@ -1534,8 +1585,6 @@ def _sorted_bgp_routes(): return sorted(BGP_ROUTES, key=lambda r: _score_route(r, stats)) def _crof_record(model, n_items, success): - if TARGET_URL and "crof.ai" not in TARGET_URL: - return if not isinstance(n_items, int) or n_items < 1: return entry = {"model": model, "items": n_items, "ok": success} @@ -1561,20 +1610,36 @@ def _crof_record(model, n_items, success): global_limit = v["limit"] _CROF_ADAPTIVE["global_item_limit"] = global_limit - if TARGET_URL and "crof.ai" in TARGET_URL: - print(f"[crof-adaptive] model={model} items={n_items} {'OK' if success else 'FAIL'} -> limit={ml.get('limit',30)} global={global_limit}", file=sys.stderr) + print(f"[crof-adaptive] model={model} items={n_items} {'OK' if success else 'FAIL'} -> limit={ml.get('limit',30)} global={global_limit}", file=sys.stderr) def _crof_item_limit(model): ml = _CROF_ADAPTIVE["model_limits"].get(model, {}) per_model = ml.get("limit", 30) return min(per_model, _CROF_ADAPTIVE["global_item_limit"]) -def _crof_compact_for_retry(input_data, model): +def _crof_compact_for_retry(input_data, model, aggression=0): limit = _crof_item_limit(model) - if not isinstance(input_data, list) or len(input_data) <= limit: + if not isinstance(input_data, list) or len(input_data) < 2: + return input_data + + max_tok = _get_model_max_tokens(model) + est = _estimate_input_tokens(input_data) + over_item_limit = len(input_data) > limit + over_token_limit = max_tok and est >= max_tok * 0.9 + + if not over_item_limit and not over_token_limit: return input_data keep = max(_CROF_ADAPTIVE["min_keep_recent"], limit // 3) + if over_token_limit: + ratio = est / max_tok + if aggression >= 1 or ratio > 1.5: + keep = max(2, _CROF_ADAPTIVE["min_keep_recent"] // 2) + elif ratio > 1.2: + keep = max(3, keep // 2) + print(f"[ctx-limit] model={model} est={est}tok max={max_tok}tok ratio={ratio:.2f} -> keep={keep}", file=sys.stderr) + elif over_item_limit: + keep = max(keep, 6) head_end = 0 for i, item in enumerate(input_data): t = item.get("type") @@ -1607,8 +1672,7 @@ def _crof_compact_for_retry(input_data, model): summary_lines.append(_item_summary(item, max_len=120)) summary_msg = {"type": "message", "role": "user", "content": [{"type": "input_text", "text": "\n".join(summary_lines)}]} - if TARGET_URL and "crof.ai" in TARGET_URL: - print(f"[crof-adaptive] RETRY compact: {len(input_data)} -> {len(head)+1+len(tail)} (limit={limit}, keep={len(tail)})", file=sys.stderr) + print(f"[crof-adaptive] RETRY compact: {len(input_data)} -> {len(head)+1+len(tail)} (limit={limit}, keep={len(tail)}, agg={aggression})", file=sys.stderr) return head + [summary_msg] + tail def _item_summary(item, max_len=200): @@ -2051,6 +2115,18 @@ def synthesize_tool_results_for_chat(input_items): def has_function_call_output(input_items): return isinstance(input_items, list) and any(i.get("type") == "function_call_output" for i in input_items) +_TOOL_CALL_TEXT_PATTERNS = re.compile( + r'(?:^|\n)[\s•\-\*]*\(?' + r'(?:exec_command|write_to_file|exec_bash|bash|run_command|shell|edit_file|read_file|search_files|list_files)' + r'[\s:]', + re.I | re.MULTILINE +) + +def _text_looks_like_tool_calls(text): + if not text or len(text) < 6: + return False + return bool(_TOOL_CALL_TEXT_PATTERNS.search(text)) + # ═══════════════════════════════════════════════════════════════════ # Log redaction # ═══════════════════════════════════════════════════════════════════ @@ -2233,9 +2309,14 @@ def _normalize_tool_args(raw_args): except json.JSONDecodeError: return raw_args -_XML_TC_RE = re.compile(r'(\w+)(.*?)', re.DOTALL) +_XML_TC_RE = re.compile(r'exec_command(.*?)', re.DOTALL) _XML_ARG_VALUE_RE = re.compile(r'\s*') +_PAREN_TC_RE = re.compile( + r'(?:^|[\n•\-\*]\s*)\(\s*(exec_command|write_to_file|exec_bash|bash|run_command|shell|edit_file|read_file|search_files|list_files)\b\s*(.*?)\)', + re.DOTALL | re.I +) + def _extract_xml_tool_calls(text): if not text: return [] @@ -2262,6 +2343,68 @@ def _extract_xml_tool_calls(text): results.append({"name": name, "args": args_str, "call_id": f"xml_{len(results)}"}) return results +_NON_VISION_MODEL_PATTERNS = re.compile( + r'\b(deepseek|glm|mixtral|llama\b(?!.*vision)|command|dbrx|qwen\b(?!.*vl)|phi-?3(?!.*vision))', + re.I +) + +_vision_fail_cache = set() +_vision_fail_lock = threading.Lock() + +def _model_supports_vision(model): + if not model: + return True + with _vision_fail_lock: + if model in _vision_fail_cache: + return False + if _NON_VISION_MODEL_PATTERNS.search(model): + return False + return True + +def _mark_vision_fail(model): + if model: + with _vision_fail_lock: + _vision_fail_cache.add(model) + +def _strip_images_from_input(input_data, model): + if not isinstance(input_data, list) or _model_supports_vision(model): + return input_data + modified = False + result = [] + for item in input_data: + if item.get("type") != "message": + result.append(item) + continue + content = item.get("content", []) + if isinstance(content, str): + result.append(item) + continue + new_content = [] + has_img = False + for part in content: + if isinstance(part, str): + new_content.append(part) + continue + pt = part.get("type", "") + if pt in ("input_image", "image_url"): + if not has_img: + fname = part.get("image_url", {}).get("url", part.get("url", "image.png")) + if fname.startswith("data:"): + fname = "screenshot.png" + new_content.append({"type": "output_text", "text": f"[User attached image: {fname} — this model does not support vision]"}) + has_img = True + modified = True + else: + new_content.append(part) + if modified: + result.append({**item, "content": new_content}) + else: + result.append(item) + if modified: + print(f"[vision-filter] stripped {sum(1 for i in input_data if i.get('type')=='message' and any(c.get('type') in ('input_image','image_url') for c in (i.get('content') or []) if isinstance(c,dict)))} images for model={model}", file=sys.stderr) + return result + return input_data + def oa_input_to_messages(input_data): msgs = [] tool_name_by_id = {} @@ -4889,12 +5032,25 @@ class Handler(http.server.BaseHTTPRequestHandler): body["input"] = input_data crof_limit = _crof_item_limit(model) - _crof_eligible = TARGET_URL and "crof.ai" in TARGET_URL - if _crof_eligible and not compacted and isinstance(input_data, list) and len(input_data) > crof_limit: - print(f"[crof-adaptive] proactive compact: {len(input_data)} items > limit {crof_limit}", file=sys.stderr) - input_data = _crof_compact_for_retry(input_data, model) - body = dict(body) - body["input"] = input_data + _crof_eligible = True + if _crof_eligible and not compacted and isinstance(input_data, list): + _needs_compact = len(input_data) > crof_limit + max_tok = _get_model_max_tokens(model) + est_tok = _estimate_input_tokens(input_data) if max_tok else 0 + if not _needs_compact and max_tok and est_tok > max_tok * 0.8: + _needs_compact = True + if _needs_compact: + _agg = 0 + if max_tok and est_tok > max_tok: + _agg = 1 + print(f"[crof-adaptive] proactive compact: {len(input_data)} items, est={est_tok}tok max={max_tok}tok agg={_agg}", file=sys.stderr) + input_data = _crof_compact_for_retry(input_data, model, aggression=_agg) + body = dict(body) + body["input"] = input_data + + # Strip images for non-vision models + input_data = _strip_images_from_input(input_data, model) + body["input"] = input_data messages = oa_input_to_messages(input_data) messages = _inject_stored_reasoning(messages) @@ -4927,14 +5083,19 @@ class Handler(http.server.BaseHTTPRequestHandler): except urllib.error.HTTPError as e: err_body = e.read().decode() if "context_length_exceeded" in err_body and attempt < max_retries: - print(f"[{self._session_id}] context_length_exceeded (attempt {attempt+1}/{max_retries}), retrying with extreme compaction!", file=sys.stderr) + import re as _re + _tok_m = _re.search(r'~?(\d+)\s*tokens', err_body) + if _tok_m: + _set_model_max_tokens(model, int(_tok_m.group(1))) + print(f"[{self._session_id}] context_length_exceeded (attempt {attempt+1}/{max_retries}), retrying with compaction (agg={attempt})!", file=sys.stderr) policy = provider_policy() if isinstance(input_data, list): - print(f"[{self._session_id}] applying extreme compaction to {len(input_data)} items", file=sys.stderr) - input_data = _crof_compact_for_retry(input_data, model) + est = _estimate_input_tokens(input_data) + print(f"[{self._session_id}] applying compaction to {len(input_data)} items ~{est}tok", file=sys.stderr) + input_data = _crof_compact_for_retry(input_data, model, aggression=attempt) body = dict(body) body["input"] = input_data - messages = oa_input_to_messages(input_data) + messages = oa_input_to_messages(_strip_images_from_input(input_data, model)) messages = _inject_stored_reasoning(messages) instructions = body.get("instructions", "").strip() if instructions: @@ -5267,31 +5428,88 @@ class Handler(http.server.BaseHTTPRequestHandler): if not is_latest_simple: contents.insert(0, {"role": "user", "parts": [{"text": _GEMINI_AGENT_GUARDRAIL}]}) - if OAUTH_PROVIDER == "google-antigravity" and isinstance(input_data, list): + if OAUTH_PROVIDER == "google-antigravity": + import hashlib + ag_key = _antigravity_loop_key(self._session_id) + with _ANTIGRAVITY_LOOP_TRACKER_LOCK: + if ag_key not in _ANTIGRAVITY_LOOP_TRACKER: + _ANTIGRAVITY_LOOP_TRACKER[ag_key] = { + "latest_user_hash": None, + "nudge_injected": False, + "latest_user_appended": False, + "tool_calls_for_request": 0, + "repeated_tool": False, + "force_finalize": False, + "last_tool": None, + "last_tool_count": 0, + } + ag_state = _ANTIGRAVITY_LOOP_TRACKER[ag_key] + + latest_user = "" + latest_user_hash = None + if isinstance(input_data, list): + for item in reversed(input_data): + if item.get("type") == "message" and item.get("role") == "user": + c = item.get("content", "") + if isinstance(c, str): + latest_user = c + elif isinstance(c, list): + latest_user = "\n".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)) + break + if latest_user: + latest_norm = " ".join(latest_user.strip().split())[:200] + latest_user_hash = hashlib.sha256(latest_norm.encode()).hexdigest()[:16] + if latest_user_hash != ag_state["latest_user_hash"]: + ag_state["latest_user_hash"] = latest_user_hash + ag_state["nudge_injected"] = False + ag_state["latest_user_appended"] = False + ag_state["tool_calls_for_request"] = 0 + ag_state["repeated_tool"] = False + ag_state["force_finalize"] = False + ag_state["last_tool"] = None + ag_state["last_tool_count"] = 0 + + if isinstance(input_data, list): + n_tool_calls = sum(1 for it in input_data if isinstance(it, dict) and it.get("type") == "function_call") + ag_state["tool_calls_for_request"] = n_tool_calls + last_tool_key = None + for item in reversed(input_data): + if isinstance(item, dict) and item.get("type") == "function_call": + fname = item.get("name", "") + args_str = json.dumps(item.get("arguments", {}), sort_keys=True)[:100] + last_tool_key = f"{fname}:{args_str}" + break + if last_tool_key: + if last_tool_key == ag_state["last_tool"]: + ag_state["last_tool_count"] += 1 + if ag_state["last_tool_count"] >= 5: + ag_state["repeated_tool"] = True + ag_state["force_finalize"] = True + else: + ag_state["last_tool"] = last_tool_key + ag_state["last_tool_count"] = 1 + _EDIT_WORDS = ("change", "fix", "update", "redesign", "rewrite", "modify", "improve", "replace", "edit", "make it", "add", "remove", "delete", "rename", "move", "convert") latest_lower = "" - for item in reversed(input_data): - if item.get("type") == "message" and item.get("role") == "user": - c = item.get("content", "") - if isinstance(c, str): latest_lower = c.lower() - elif isinstance(c, list): latest_lower = " ".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)).lower() - break - if latest_lower and any(w in latest_lower for w in _EDIT_WORDS): - n_tool_calls = sum(1 for it in input_data if isinstance(it, dict) and it.get("type") == "function_call") - contents.append({"role": "user", "parts": [{"text": "!!! ABSOLUTELY NO PLANNING - EMIT THE TOOL CALL NOW !!! IMPORTANT: The user is requesting a modification to existing files. You MUST use tools (exec_command, read_files, write, etc.) to make the changes RIGHT NOW. Do NOT just describe what to do — actually CALL THE TOOLS IN THIS RESPONSE. IMMEDIATELY INSPECT THE FILE OR LIST FILES USING exec_command TOOL CALL."}]}) - print(f"[antigravity] edit-intent detected; injected tool-use nudge", file=sys.stderr) + if isinstance(input_data, list): + for item in reversed(input_data): + if item.get("type") == "message" and item.get("role") == "user": + c = item.get("content", "") + if isinstance(c, str): latest_lower = c.lower() + elif isinstance(c, list): latest_lower = " ".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)).lower() + break - if OAUTH_PROVIDER == "google-antigravity" and isinstance(input_data, list): - latest_user = "" - for item in reversed(input_data): - if item.get("type") == "message" and item.get("role") == "user": - c = item.get("content", "") - if isinstance(c, str): - latest_user = c - elif isinstance(c, list): - latest_user = "\n".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)) - break - if latest_user: + if ag_state["force_finalize"]: + contents.append({"role": "user", "parts": [{"text": "STOP CALLING TOOLS. APPLY THE FINAL EDIT OR SUMMARIZE WHAT BLOCKED YOU. DO NOT CALL ANY MORE TOOLS. DO NOT PRODUCE ANY MORE PLANNING TEXT. DO NOT PRODUCE ANY MORE EXPLORATORY TOOL CALLS. PRODUCE A FINAL ANSWER OR A CLEAR STATEMENT OF WHAT IS PREVENTING YOU FROM COMPLETING THE TASK."}]}) + elif latest_lower and any(w in latest_lower for w in _EDIT_WORDS) and not ag_state["nudge_injected"] and not ag_state["force_finalize"]: + contents.append({"role": "user", "parts": [{"text": "!!! ABSOLUTELY NO PLANNING - EMIT THE TOOL CALL NOW !!! IMPORTANT: The user is requesting a modification to existing files. You MUST use tools (exec_command, read_files, write, etc.) to make the changes RIGHT NOW. Do NOT just describe what to do — actually CALL THE TOOLS IN THIS RESPONSE. IMMEDIATELY INSPECT THE FILE OR LIST FILES USING exec_command TOOL CALL."}]}) + ag_state["nudge_injected"] = True + print(f"[antigravity] edit-intent detected; injected tool-use nudge (first time for this request)", file=sys.stderr) + else: + if ag_state["nudge_injected"]: + print(f"[antigravity] edit-intent nudge already injected, skipping", file=sys.stderr) + + if latest_user and not ag_state["latest_user_appended"] and not ag_state["force_finalize"]: latest_norm = " ".join(latest_user.strip().split())[:160] final_text = "" if contents: @@ -5299,14 +5517,24 @@ class Handler(http.server.BaseHTTPRequestHandler): if last.get("role") == "user": final_text = " ".join(json.dumps(last.get("parts", []), ensure_ascii=False).split()) if latest_norm[:120] not in final_text: - print(f"[antigravity] latest user instruction was not final turn; appending", file=sys.stderr) + print(f"[antigravity] latest user instruction was not final turn; appending (first time for this request)", file=sys.stderr) contents.append({"role": "user", "parts": [{"text": latest_user}]}) + ag_state["latest_user_appended"] = True else: print(f"[antigravity] latest user instruction is final turn", file=sys.stderr) - print(f"[{self._session_id}] [antigravity-debug] input_items={len(input_data) if isinstance(input_data, list) else 1} contents={len(contents)} latest={latest_user[:80]!r}", file=sys.stderr) - if contents: - last_c = contents[-1] - print(f"[{self._session_id}] [antigravity-debug] final_role={last_c.get('role')} preview={json.dumps(last_c.get('parts', []), ensure_ascii=False)[:200]}", file=sys.stderr) + else: + if ag_state["latest_user_appended"]: + print(f"[antigravity] latest user instruction already appended, skipping", file=sys.stderr) + + print(f"[antigravity-loop] latest_user_hash={latest_user_hash}", file=sys.stderr) + print(f"[antigravity-loop] tool_calls_for_request={ag_state['tool_calls_for_request']}", file=sys.stderr) + print(f"[antigravity-loop] repeated_tool={ag_state['repeated_tool']}", file=sys.stderr) + print(f"[antigravity-loop] nudge_injected={ag_state['nudge_injected']}", file=sys.stderr) + print(f"[antigravity-loop] force_finalize={ag_state['force_finalize']}", file=sys.stderr) + print(f"[{self._session_id}] [antigravity-debug] input_items={len(input_data) if isinstance(input_data, list) else 1} contents={len(contents)} latest={latest_user[:80]!r}", file=sys.stderr) + if contents: + last_c = contents[-1] + print(f"[{self._session_id}] [antigravity-debug] final_role={last_c.get('role')} preview={json.dumps(last_c.get('parts', []), ensure_ascii=False)[:200]}", file=sys.stderr) request_body = {"contents": contents} if system_parts: @@ -5725,9 +5953,11 @@ class Handler(http.server.BaseHTTPRequestHandler): last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False def _observe_event(event): - nonlocal last_resp_id, last_output, last_status, finish_reason, has_content + nonlocal last_resp_id, last_output, last_status, finish_reason, has_content, has_message, has_tool_call for line in event.strip().split("\n"): if line.startswith("data: "): try: @@ -5737,7 +5967,9 @@ class Handler(http.server.BaseHTTPRequestHandler): last_output = d.get("response", {}).get("output", []) last_status = d.get("response", {}).get("status") finish_reason = "length" if last_status == "incomplete" else "stop" - has_content = any(o.get("type") == "message" for o in (last_output or [])) + has_tool_call = any(o.get("type") == "function_call" for o in (last_output or [])) + has_message = any(o.get("type") == "message" for o in (last_output or [])) + has_content = has_message or has_tool_call except Exception: pass @@ -5749,7 +5981,7 @@ class Handler(http.server.BaseHTTPRequestHandler): break collected_events.append(event) _observe_event(event) - print(f"[{self._session_id}] stream ended: events={len(collected_events)} finish={finish_reason} has_content={has_content} elapsed={time.time()-t0:.1f}s", file=sys.stderr) + print(f"[{self._session_id}] stream ended: events={len(collected_events)} finish={finish_reason} has_content={has_content} has_message={has_message} has_tool_call={has_tool_call} elapsed={time.time()-t0:.1f}s", file=sys.stderr) except (ConnectionResetError, BrokenPipeError, ConnectionAbortedError): print("[translate-proxy] client disconnected during stream", file=sys.stderr) _crof_record(model, n_items, False) @@ -5805,6 +6037,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5813,7 +6047,7 @@ class Handler(http.server.BaseHTTPRequestHandler): print(f"[provider-sensor] synthetic retry failed: {e}", file=sys.stderr) # Auto-retry on finish_reason=length with no content due to too much context. - if finish_reason == "length" and not has_content and isinstance(input_data, list) and len(input_data) > 5 and TARGET_URL and "crof.ai" in TARGET_URL: + if finish_reason == "length" and not has_content and isinstance(input_data, list) and len(input_data) > 5: print(f"[crof-adaptive] RETRY: finish_reason=length with no content, compacting {n_items} items", file=sys.stderr) new_input = _crof_compact_for_retry(input_data, model) if len(new_input) < len(input_data): @@ -5836,6 +6070,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5943,9 +6179,17 @@ class Handler(http.server.BaseHTTPRequestHandler): _smart_attempt = 0 while _smart_attempt < _smart_max: _has_tool_calls_in_output = any(o.get("type") == "function_call" for o in (last_output or [])) + last_text = "" + for o in (last_output or []): + if o.get("type") == "message": + for c in (o.get("content") or []): + if isinstance(c, dict) and c.get("type") == "output_text": + last_text += c.get("text", "") + _looks_like_tools = _text_looks_like_tool_calls(last_text) + _has_prior_tool_ctx = has_function_call_output(input_data) if not (finish_reason == "stop" and has_content and not _has_tool_calls_in_output and isinstance(input_data, list) and len(input_data) >= 3 - and has_function_call_output(input_data)): + and (_has_prior_tool_ctx or _looks_like_tools)): break _smart_attempt += 1 _nudges = [ @@ -5954,12 +6198,6 @@ class Handler(http.server.BaseHTTPRequestHandler): ] nudge_text = _nudges[min(_smart_attempt - 1, len(_nudges) - 1)] # Try extracting XML tool calls from text as fallback before nudging - last_text = "" - for o in (last_output or []): - if o.get("type") == "message": - for c in (o.get("content") or []): - if isinstance(c, dict) and c.get("type") == "output_text": - last_text += c.get("text", "") xml_fc = _extract_xml_tool_calls(last_text) if xml_fc: print(f"[{self._session_id}] [smart-continue] extracted {len(xml_fc)} XML tool calls from text, injecting and retrying", file=sys.stderr) @@ -5979,6 +6217,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5988,19 +6228,21 @@ class Handler(http.server.BaseHTTPRequestHandler): print(f"[{self._session_id}] [smart-continue] XML injection retry failed: {e}", file=sys.stderr) break _nudge_msg = {"role": "user", "content": nudge_text} - nudge_messages = oa_input_to_messages(input_data) + [_nudge_msg] + nudge_messages = oa_input_to_messages(_strip_images_from_input(input_data, model)) + [_nudge_msg] instructions = body.get("instructions", "").strip() if instructions: nudge_messages.insert(0, {"role": "system", "content": instructions}) nudge_chat_body = self._build_chat_body(model, nudge_messages, body, stream) nudge_req = urllib.request.Request(target, data=json.dumps(nudge_chat_body).encode(), headers=fwd) - print(f"[{self._session_id}] [smart-continue] attempt {_smart_attempt}/{_smart_max}: model stopped mid-task, nudging", file=sys.stderr) + print(f"[{self._session_id}] [smart-continue] attempt {_smart_attempt}/{_smart_max}: model stopped mid-task (prior_ctx={_has_prior_tool_ctx} text_tools={_looks_like_tools}), nudging", file=sys.stderr) try: retry_upstream = urllib.request.urlopen(nudge_req, timeout=_upstream_timeout(body, True)) collected_events = [] last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) diff --git a/translate-proxy.py b/translate-proxy.py index 6d7b966..6c5906b 100755 --- a/translate-proxy.py +++ b/translate-proxy.py @@ -787,6 +787,10 @@ _GEMINI_AGENT_GUARDRAIL = ( ) _LOG_FILE_LOCK = threading.Lock() +_ANTIGRAVITY_LOOP_TRACKER = {} +_ANTIGRAVITY_LOOP_TRACKER_LOCK = threading.Lock() +def _antigravity_loop_key(session_id): + return f"ag:{session_id}" def _fetch_antigravity_version(): cache_path = os.path.join(os.path.expanduser("~"), ".cache", "codex-proxy", "antigravity-version.json") @@ -1469,6 +1473,53 @@ _CROF_ADAPTIVE = { "min_keep_recent": 6, } +_model_max_tokens = {} +_model_max_tokens_lock = threading.Lock() + +def _estimate_tokens(item): + if not isinstance(item, dict): + return 4 + t = item.get("type", "") + if t == "message": + content = item.get("content", "") + if isinstance(content, str): + return max(4, len(content) // 4) + elif isinstance(content, list): + total = 4 + for part in content: + pt = part.get("type", "") + if pt in ("input_text", "output_text"): + total += max(4, len(part.get("text", "")) // 4) + elif pt == "input_image": + total += 800 + elif pt in ("function_call",): + total += max(20, len(part.get("arguments", "{}")) // 2) + elif pt == "function_call_output": + total += max(8, len(part.get("output", "")) // 4) + return total + elif t in ("function_call_output",): + return max(8, len(item.get("output", "")) // 4) + elif t == "function_call": + return max(20, len(item.get("arguments", "{}")) // 2) + return 4 + +def _estimate_input_tokens(input_data): + if not isinstance(input_data, list): + return 0 + return sum(_estimate_tokens(i) for i in input_data) + +def _get_model_max_tokens(model): + with _model_max_tokens_lock: + return _model_max_tokens.get(model) + +def _set_model_max_tokens(model, tokens): + if model and tokens: + with _model_max_tokens_lock: + existing = _model_max_tokens.get(model) + if existing is None or tokens < existing: + _model_max_tokens[model] = tokens + print(f"[ctx-limit] learned {model} max ~{tokens} tokens", file=sys.stderr) + _BGP_STATS_PATH = os.path.join(_LOG_DIR, "bgp-route-stats.json") _bgp_stats_lock = threading.Lock() @@ -1534,8 +1585,6 @@ def _sorted_bgp_routes(): return sorted(BGP_ROUTES, key=lambda r: _score_route(r, stats)) def _crof_record(model, n_items, success): - if TARGET_URL and "crof.ai" not in TARGET_URL: - return if not isinstance(n_items, int) or n_items < 1: return entry = {"model": model, "items": n_items, "ok": success} @@ -1561,20 +1610,36 @@ def _crof_record(model, n_items, success): global_limit = v["limit"] _CROF_ADAPTIVE["global_item_limit"] = global_limit - if TARGET_URL and "crof.ai" in TARGET_URL: - print(f"[crof-adaptive] model={model} items={n_items} {'OK' if success else 'FAIL'} -> limit={ml.get('limit',30)} global={global_limit}", file=sys.stderr) + print(f"[crof-adaptive] model={model} items={n_items} {'OK' if success else 'FAIL'} -> limit={ml.get('limit',30)} global={global_limit}", file=sys.stderr) def _crof_item_limit(model): ml = _CROF_ADAPTIVE["model_limits"].get(model, {}) per_model = ml.get("limit", 30) return min(per_model, _CROF_ADAPTIVE["global_item_limit"]) -def _crof_compact_for_retry(input_data, model): +def _crof_compact_for_retry(input_data, model, aggression=0): limit = _crof_item_limit(model) - if not isinstance(input_data, list) or len(input_data) <= limit: + if not isinstance(input_data, list) or len(input_data) < 2: + return input_data + + max_tok = _get_model_max_tokens(model) + est = _estimate_input_tokens(input_data) + over_item_limit = len(input_data) > limit + over_token_limit = max_tok and est >= max_tok * 0.9 + + if not over_item_limit and not over_token_limit: return input_data keep = max(_CROF_ADAPTIVE["min_keep_recent"], limit // 3) + if over_token_limit: + ratio = est / max_tok + if aggression >= 1 or ratio > 1.5: + keep = max(2, _CROF_ADAPTIVE["min_keep_recent"] // 2) + elif ratio > 1.2: + keep = max(3, keep // 2) + print(f"[ctx-limit] model={model} est={est}tok max={max_tok}tok ratio={ratio:.2f} -> keep={keep}", file=sys.stderr) + elif over_item_limit: + keep = max(keep, 6) head_end = 0 for i, item in enumerate(input_data): t = item.get("type") @@ -1607,8 +1672,7 @@ def _crof_compact_for_retry(input_data, model): summary_lines.append(_item_summary(item, max_len=120)) summary_msg = {"type": "message", "role": "user", "content": [{"type": "input_text", "text": "\n".join(summary_lines)}]} - if TARGET_URL and "crof.ai" in TARGET_URL: - print(f"[crof-adaptive] RETRY compact: {len(input_data)} -> {len(head)+1+len(tail)} (limit={limit}, keep={len(tail)})", file=sys.stderr) + print(f"[crof-adaptive] RETRY compact: {len(input_data)} -> {len(head)+1+len(tail)} (limit={limit}, keep={len(tail)}, agg={aggression})", file=sys.stderr) return head + [summary_msg] + tail def _item_summary(item, max_len=200): @@ -2051,6 +2115,18 @@ def synthesize_tool_results_for_chat(input_items): def has_function_call_output(input_items): return isinstance(input_items, list) and any(i.get("type") == "function_call_output" for i in input_items) +_TOOL_CALL_TEXT_PATTERNS = re.compile( + r'(?:^|\n)[\s•\-\*]*\(?' + r'(?:exec_command|write_to_file|exec_bash|bash|run_command|shell|edit_file|read_file|search_files|list_files)' + r'[\s:]', + re.I | re.MULTILINE +) + +def _text_looks_like_tool_calls(text): + if not text or len(text) < 6: + return False + return bool(_TOOL_CALL_TEXT_PATTERNS.search(text)) + # ═══════════════════════════════════════════════════════════════════ # Log redaction # ═══════════════════════════════════════════════════════════════════ @@ -2233,9 +2309,14 @@ def _normalize_tool_args(raw_args): except json.JSONDecodeError: return raw_args -_XML_TC_RE = re.compile(r'(\w+)(.*?)', re.DOTALL) +_XML_TC_RE = re.compile(r'exec_command(.*?)', re.DOTALL) _XML_ARG_VALUE_RE = re.compile(r'\s*') +_PAREN_TC_RE = re.compile( + r'(?:^|[\n•\-\*]\s*)\(\s*(exec_command|write_to_file|exec_bash|bash|run_command|shell|edit_file|read_file|search_files|list_files)\b\s*(.*?)\)', + re.DOTALL | re.I +) + def _extract_xml_tool_calls(text): if not text: return [] @@ -2262,6 +2343,68 @@ def _extract_xml_tool_calls(text): results.append({"name": name, "args": args_str, "call_id": f"xml_{len(results)}"}) return results +_NON_VISION_MODEL_PATTERNS = re.compile( + r'\b(deepseek|glm|mixtral|llama\b(?!.*vision)|command|dbrx|qwen\b(?!.*vl)|phi-?3(?!.*vision))', + re.I +) + +_vision_fail_cache = set() +_vision_fail_lock = threading.Lock() + +def _model_supports_vision(model): + if not model: + return True + with _vision_fail_lock: + if model in _vision_fail_cache: + return False + if _NON_VISION_MODEL_PATTERNS.search(model): + return False + return True + +def _mark_vision_fail(model): + if model: + with _vision_fail_lock: + _vision_fail_cache.add(model) + +def _strip_images_from_input(input_data, model): + if not isinstance(input_data, list) or _model_supports_vision(model): + return input_data + modified = False + result = [] + for item in input_data: + if item.get("type") != "message": + result.append(item) + continue + content = item.get("content", []) + if isinstance(content, str): + result.append(item) + continue + new_content = [] + has_img = False + for part in content: + if isinstance(part, str): + new_content.append(part) + continue + pt = part.get("type", "") + if pt in ("input_image", "image_url"): + if not has_img: + fname = part.get("image_url", {}).get("url", part.get("url", "image.png")) + if fname.startswith("data:"): + fname = "screenshot.png" + new_content.append({"type": "output_text", "text": f"[User attached image: {fname} — this model does not support vision]"}) + has_img = True + modified = True + else: + new_content.append(part) + if modified: + result.append({**item, "content": new_content}) + else: + result.append(item) + if modified: + print(f"[vision-filter] stripped {sum(1 for i in input_data if i.get('type')=='message' and any(c.get('type') in ('input_image','image_url') for c in (i.get('content') or []) if isinstance(c,dict)))} images for model={model}", file=sys.stderr) + return result + return input_data + def oa_input_to_messages(input_data): msgs = [] tool_name_by_id = {} @@ -4889,12 +5032,25 @@ class Handler(http.server.BaseHTTPRequestHandler): body["input"] = input_data crof_limit = _crof_item_limit(model) - _crof_eligible = TARGET_URL and "crof.ai" in TARGET_URL - if _crof_eligible and not compacted and isinstance(input_data, list) and len(input_data) > crof_limit: - print(f"[crof-adaptive] proactive compact: {len(input_data)} items > limit {crof_limit}", file=sys.stderr) - input_data = _crof_compact_for_retry(input_data, model) - body = dict(body) - body["input"] = input_data + _crof_eligible = True + if _crof_eligible and not compacted and isinstance(input_data, list): + _needs_compact = len(input_data) > crof_limit + max_tok = _get_model_max_tokens(model) + est_tok = _estimate_input_tokens(input_data) if max_tok else 0 + if not _needs_compact and max_tok and est_tok > max_tok * 0.8: + _needs_compact = True + if _needs_compact: + _agg = 0 + if max_tok and est_tok > max_tok: + _agg = 1 + print(f"[crof-adaptive] proactive compact: {len(input_data)} items, est={est_tok}tok max={max_tok}tok agg={_agg}", file=sys.stderr) + input_data = _crof_compact_for_retry(input_data, model, aggression=_agg) + body = dict(body) + body["input"] = input_data + + # Strip images for non-vision models + input_data = _strip_images_from_input(input_data, model) + body["input"] = input_data messages = oa_input_to_messages(input_data) messages = _inject_stored_reasoning(messages) @@ -4927,14 +5083,19 @@ class Handler(http.server.BaseHTTPRequestHandler): except urllib.error.HTTPError as e: err_body = e.read().decode() if "context_length_exceeded" in err_body and attempt < max_retries: - print(f"[{self._session_id}] context_length_exceeded (attempt {attempt+1}/{max_retries}), retrying with extreme compaction!", file=sys.stderr) + import re as _re + _tok_m = _re.search(r'~?(\d+)\s*tokens', err_body) + if _tok_m: + _set_model_max_tokens(model, int(_tok_m.group(1))) + print(f"[{self._session_id}] context_length_exceeded (attempt {attempt+1}/{max_retries}), retrying with compaction (agg={attempt})!", file=sys.stderr) policy = provider_policy() if isinstance(input_data, list): - print(f"[{self._session_id}] applying extreme compaction to {len(input_data)} items", file=sys.stderr) - input_data = _crof_compact_for_retry(input_data, model) + est = _estimate_input_tokens(input_data) + print(f"[{self._session_id}] applying compaction to {len(input_data)} items ~{est}tok", file=sys.stderr) + input_data = _crof_compact_for_retry(input_data, model, aggression=attempt) body = dict(body) body["input"] = input_data - messages = oa_input_to_messages(input_data) + messages = oa_input_to_messages(_strip_images_from_input(input_data, model)) messages = _inject_stored_reasoning(messages) instructions = body.get("instructions", "").strip() if instructions: @@ -5267,31 +5428,88 @@ class Handler(http.server.BaseHTTPRequestHandler): if not is_latest_simple: contents.insert(0, {"role": "user", "parts": [{"text": _GEMINI_AGENT_GUARDRAIL}]}) - if OAUTH_PROVIDER == "google-antigravity" and isinstance(input_data, list): + if OAUTH_PROVIDER == "google-antigravity": + import hashlib + ag_key = _antigravity_loop_key(self._session_id) + with _ANTIGRAVITY_LOOP_TRACKER_LOCK: + if ag_key not in _ANTIGRAVITY_LOOP_TRACKER: + _ANTIGRAVITY_LOOP_TRACKER[ag_key] = { + "latest_user_hash": None, + "nudge_injected": False, + "latest_user_appended": False, + "tool_calls_for_request": 0, + "repeated_tool": False, + "force_finalize": False, + "last_tool": None, + "last_tool_count": 0, + } + ag_state = _ANTIGRAVITY_LOOP_TRACKER[ag_key] + + latest_user = "" + latest_user_hash = None + if isinstance(input_data, list): + for item in reversed(input_data): + if item.get("type") == "message" and item.get("role") == "user": + c = item.get("content", "") + if isinstance(c, str): + latest_user = c + elif isinstance(c, list): + latest_user = "\n".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)) + break + if latest_user: + latest_norm = " ".join(latest_user.strip().split())[:200] + latest_user_hash = hashlib.sha256(latest_norm.encode()).hexdigest()[:16] + if latest_user_hash != ag_state["latest_user_hash"]: + ag_state["latest_user_hash"] = latest_user_hash + ag_state["nudge_injected"] = False + ag_state["latest_user_appended"] = False + ag_state["tool_calls_for_request"] = 0 + ag_state["repeated_tool"] = False + ag_state["force_finalize"] = False + ag_state["last_tool"] = None + ag_state["last_tool_count"] = 0 + + if isinstance(input_data, list): + n_tool_calls = sum(1 for it in input_data if isinstance(it, dict) and it.get("type") == "function_call") + ag_state["tool_calls_for_request"] = n_tool_calls + last_tool_key = None + for item in reversed(input_data): + if isinstance(item, dict) and item.get("type") == "function_call": + fname = item.get("name", "") + args_str = json.dumps(item.get("arguments", {}), sort_keys=True)[:100] + last_tool_key = f"{fname}:{args_str}" + break + if last_tool_key: + if last_tool_key == ag_state["last_tool"]: + ag_state["last_tool_count"] += 1 + if ag_state["last_tool_count"] >= 5: + ag_state["repeated_tool"] = True + ag_state["force_finalize"] = True + else: + ag_state["last_tool"] = last_tool_key + ag_state["last_tool_count"] = 1 + _EDIT_WORDS = ("change", "fix", "update", "redesign", "rewrite", "modify", "improve", "replace", "edit", "make it", "add", "remove", "delete", "rename", "move", "convert") latest_lower = "" - for item in reversed(input_data): - if item.get("type") == "message" and item.get("role") == "user": - c = item.get("content", "") - if isinstance(c, str): latest_lower = c.lower() - elif isinstance(c, list): latest_lower = " ".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)).lower() - break - if latest_lower and any(w in latest_lower for w in _EDIT_WORDS): - n_tool_calls = sum(1 for it in input_data if isinstance(it, dict) and it.get("type") == "function_call") - contents.append({"role": "user", "parts": [{"text": "!!! ABSOLUTELY NO PLANNING - EMIT THE TOOL CALL NOW !!! IMPORTANT: The user is requesting a modification to existing files. You MUST use tools (exec_command, read_files, write, etc.) to make the changes RIGHT NOW. Do NOT just describe what to do — actually CALL THE TOOLS IN THIS RESPONSE. IMMEDIATELY INSPECT THE FILE OR LIST FILES USING exec_command TOOL CALL."}]}) - print(f"[antigravity] edit-intent detected; injected tool-use nudge", file=sys.stderr) + if isinstance(input_data, list): + for item in reversed(input_data): + if item.get("type") == "message" and item.get("role") == "user": + c = item.get("content", "") + if isinstance(c, str): latest_lower = c.lower() + elif isinstance(c, list): latest_lower = " ".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)).lower() + break - if OAUTH_PROVIDER == "google-antigravity" and isinstance(input_data, list): - latest_user = "" - for item in reversed(input_data): - if item.get("type") == "message" and item.get("role") == "user": - c = item.get("content", "") - if isinstance(c, str): - latest_user = c - elif isinstance(c, list): - latest_user = "\n".join(p.get("text", p.get("input_text", "")) for p in c if isinstance(p, dict)) - break - if latest_user: + if ag_state["force_finalize"]: + contents.append({"role": "user", "parts": [{"text": "STOP CALLING TOOLS. APPLY THE FINAL EDIT OR SUMMARIZE WHAT BLOCKED YOU. DO NOT CALL ANY MORE TOOLS. DO NOT PRODUCE ANY MORE PLANNING TEXT. DO NOT PRODUCE ANY MORE EXPLORATORY TOOL CALLS. PRODUCE A FINAL ANSWER OR A CLEAR STATEMENT OF WHAT IS PREVENTING YOU FROM COMPLETING THE TASK."}]}) + elif latest_lower and any(w in latest_lower for w in _EDIT_WORDS) and not ag_state["nudge_injected"] and not ag_state["force_finalize"]: + contents.append({"role": "user", "parts": [{"text": "!!! ABSOLUTELY NO PLANNING - EMIT THE TOOL CALL NOW !!! IMPORTANT: The user is requesting a modification to existing files. You MUST use tools (exec_command, read_files, write, etc.) to make the changes RIGHT NOW. Do NOT just describe what to do — actually CALL THE TOOLS IN THIS RESPONSE. IMMEDIATELY INSPECT THE FILE OR LIST FILES USING exec_command TOOL CALL."}]}) + ag_state["nudge_injected"] = True + print(f"[antigravity] edit-intent detected; injected tool-use nudge (first time for this request)", file=sys.stderr) + else: + if ag_state["nudge_injected"]: + print(f"[antigravity] edit-intent nudge already injected, skipping", file=sys.stderr) + + if latest_user and not ag_state["latest_user_appended"] and not ag_state["force_finalize"]: latest_norm = " ".join(latest_user.strip().split())[:160] final_text = "" if contents: @@ -5299,14 +5517,24 @@ class Handler(http.server.BaseHTTPRequestHandler): if last.get("role") == "user": final_text = " ".join(json.dumps(last.get("parts", []), ensure_ascii=False).split()) if latest_norm[:120] not in final_text: - print(f"[antigravity] latest user instruction was not final turn; appending", file=sys.stderr) + print(f"[antigravity] latest user instruction was not final turn; appending (first time for this request)", file=sys.stderr) contents.append({"role": "user", "parts": [{"text": latest_user}]}) + ag_state["latest_user_appended"] = True else: print(f"[antigravity] latest user instruction is final turn", file=sys.stderr) - print(f"[{self._session_id}] [antigravity-debug] input_items={len(input_data) if isinstance(input_data, list) else 1} contents={len(contents)} latest={latest_user[:80]!r}", file=sys.stderr) - if contents: - last_c = contents[-1] - print(f"[{self._session_id}] [antigravity-debug] final_role={last_c.get('role')} preview={json.dumps(last_c.get('parts', []), ensure_ascii=False)[:200]}", file=sys.stderr) + else: + if ag_state["latest_user_appended"]: + print(f"[antigravity] latest user instruction already appended, skipping", file=sys.stderr) + + print(f"[antigravity-loop] latest_user_hash={latest_user_hash}", file=sys.stderr) + print(f"[antigravity-loop] tool_calls_for_request={ag_state['tool_calls_for_request']}", file=sys.stderr) + print(f"[antigravity-loop] repeated_tool={ag_state['repeated_tool']}", file=sys.stderr) + print(f"[antigravity-loop] nudge_injected={ag_state['nudge_injected']}", file=sys.stderr) + print(f"[antigravity-loop] force_finalize={ag_state['force_finalize']}", file=sys.stderr) + print(f"[{self._session_id}] [antigravity-debug] input_items={len(input_data) if isinstance(input_data, list) else 1} contents={len(contents)} latest={latest_user[:80]!r}", file=sys.stderr) + if contents: + last_c = contents[-1] + print(f"[{self._session_id}] [antigravity-debug] final_role={last_c.get('role')} preview={json.dumps(last_c.get('parts', []), ensure_ascii=False)[:200]}", file=sys.stderr) request_body = {"contents": contents} if system_parts: @@ -5725,9 +5953,11 @@ class Handler(http.server.BaseHTTPRequestHandler): last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False def _observe_event(event): - nonlocal last_resp_id, last_output, last_status, finish_reason, has_content + nonlocal last_resp_id, last_output, last_status, finish_reason, has_content, has_message, has_tool_call for line in event.strip().split("\n"): if line.startswith("data: "): try: @@ -5737,7 +5967,9 @@ class Handler(http.server.BaseHTTPRequestHandler): last_output = d.get("response", {}).get("output", []) last_status = d.get("response", {}).get("status") finish_reason = "length" if last_status == "incomplete" else "stop" - has_content = any(o.get("type") == "message" for o in (last_output or [])) + has_tool_call = any(o.get("type") == "function_call" for o in (last_output or [])) + has_message = any(o.get("type") == "message" for o in (last_output or [])) + has_content = has_message or has_tool_call except Exception: pass @@ -5749,7 +5981,7 @@ class Handler(http.server.BaseHTTPRequestHandler): break collected_events.append(event) _observe_event(event) - print(f"[{self._session_id}] stream ended: events={len(collected_events)} finish={finish_reason} has_content={has_content} elapsed={time.time()-t0:.1f}s", file=sys.stderr) + print(f"[{self._session_id}] stream ended: events={len(collected_events)} finish={finish_reason} has_content={has_content} has_message={has_message} has_tool_call={has_tool_call} elapsed={time.time()-t0:.1f}s", file=sys.stderr) except (ConnectionResetError, BrokenPipeError, ConnectionAbortedError): print("[translate-proxy] client disconnected during stream", file=sys.stderr) _crof_record(model, n_items, False) @@ -5805,6 +6037,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5813,7 +6047,7 @@ class Handler(http.server.BaseHTTPRequestHandler): print(f"[provider-sensor] synthetic retry failed: {e}", file=sys.stderr) # Auto-retry on finish_reason=length with no content due to too much context. - if finish_reason == "length" and not has_content and isinstance(input_data, list) and len(input_data) > 5 and TARGET_URL and "crof.ai" in TARGET_URL: + if finish_reason == "length" and not has_content and isinstance(input_data, list) and len(input_data) > 5: print(f"[crof-adaptive] RETRY: finish_reason=length with no content, compacting {n_items} items", file=sys.stderr) new_input = _crof_compact_for_retry(input_data, model) if len(new_input) < len(input_data): @@ -5836,6 +6070,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5943,9 +6179,17 @@ class Handler(http.server.BaseHTTPRequestHandler): _smart_attempt = 0 while _smart_attempt < _smart_max: _has_tool_calls_in_output = any(o.get("type") == "function_call" for o in (last_output or [])) + last_text = "" + for o in (last_output or []): + if o.get("type") == "message": + for c in (o.get("content") or []): + if isinstance(c, dict) and c.get("type") == "output_text": + last_text += c.get("text", "") + _looks_like_tools = _text_looks_like_tool_calls(last_text) + _has_prior_tool_ctx = has_function_call_output(input_data) if not (finish_reason == "stop" and has_content and not _has_tool_calls_in_output and isinstance(input_data, list) and len(input_data) >= 3 - and has_function_call_output(input_data)): + and (_has_prior_tool_ctx or _looks_like_tools)): break _smart_attempt += 1 _nudges = [ @@ -5954,12 +6198,6 @@ class Handler(http.server.BaseHTTPRequestHandler): ] nudge_text = _nudges[min(_smart_attempt - 1, len(_nudges) - 1)] # Try extracting XML tool calls from text as fallback before nudging - last_text = "" - for o in (last_output or []): - if o.get("type") == "message": - for c in (o.get("content") or []): - if isinstance(c, dict) and c.get("type") == "output_text": - last_text += c.get("text", "") xml_fc = _extract_xml_tool_calls(last_text) if xml_fc: print(f"[{self._session_id}] [smart-continue] extracted {len(xml_fc)} XML tool calls from text, injecting and retrying", file=sys.stderr) @@ -5979,6 +6217,8 @@ class Handler(http.server.BaseHTTPRequestHandler): last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event) @@ -5988,19 +6228,21 @@ class Handler(http.server.BaseHTTPRequestHandler): print(f"[{self._session_id}] [smart-continue] XML injection retry failed: {e}", file=sys.stderr) break _nudge_msg = {"role": "user", "content": nudge_text} - nudge_messages = oa_input_to_messages(input_data) + [_nudge_msg] + nudge_messages = oa_input_to_messages(_strip_images_from_input(input_data, model)) + [_nudge_msg] instructions = body.get("instructions", "").strip() if instructions: nudge_messages.insert(0, {"role": "system", "content": instructions}) nudge_chat_body = self._build_chat_body(model, nudge_messages, body, stream) nudge_req = urllib.request.Request(target, data=json.dumps(nudge_chat_body).encode(), headers=fwd) - print(f"[{self._session_id}] [smart-continue] attempt {_smart_attempt}/{_smart_max}: model stopped mid-task, nudging", file=sys.stderr) + print(f"[{self._session_id}] [smart-continue] attempt {_smart_attempt}/{_smart_max}: model stopped mid-task (prior_ctx={_has_prior_tool_ctx} text_tools={_looks_like_tools}), nudging", file=sys.stderr) try: retry_upstream = urllib.request.urlopen(nudge_req, timeout=_upstream_timeout(body, True)) collected_events = [] last_resp_id = last_output = last_status = None finish_reason = None has_content = False + has_message = False + has_tool_call = False for event in oa_stream_to_sse(retry_upstream, model, body.get("request_id") or body.get("id")): collected_events.append(event) _observe_event(event)