from __future__ import annotations from s2s_client.core import config as settings from s2s_client.core import logging as app_logging # Resolve the execution URL for the startup banner using the same normalization # as _apipilot_resolve_execute_url. def _resolve_exec_url_for_startup_banner() -> str: base = (settings.S2S_APIPILOT_TOOLS_EXECUTE_URL or settings.S2S_APIPILOT_TOOLS_URL).strip().rstrip("/") if not base: return "" if base.lower().endswith("/execute"): return base return f"{base}/execute" _STARTUP_APIPILOT_EXEC_URL = _resolve_exec_url_for_startup_banner() del _resolve_exec_url_for_startup_banner app_logging.logger.info( "[STARTUP] Other externals — reasoning=%s nodeRed=%s serper=%s lb=%s s2sProxy=%s s2sDirect=%s userAuth=%s reportsApi=%s injectReports=%s reportsHintMax=%d reportsInjectMode=%s injectToday=%s summaryApi=%s summaryText=%s loginApi=%s injectProfile=%s debugPrompt=%s startSessionMode=%s theme=%s apipilotToolsUrl=%s apipilotExecuteUrlOverride=%s apipilotServiceToken=%s apipilotTtl=%ds apipilotTimeout=%.1fs apipilotReasoningPass2=%s apipilotApiKeyBypass=%s", settings.S2S_REASONING_TYPE, settings.NODE_RED_REASONING_URL or "-", bool(settings.SERPER_KEY), bool(settings.LOAD_BALANCER_URL), bool(settings.S2S_PROXY_TARGET), bool(settings.SPEECH_TO_SPEECH_URL), bool(settings.VOCERO_USER_PHONE_AUTH_URL), bool(settings.S2S_REPORT_LIST), settings.S2S_INJECT_REPORTS, settings.S2S_REPORTS_QUICK_HINT_MAX, settings.S2S_REPORTS_INJECT_MODE, settings.S2S_INJECT_TODAY, bool(settings.S2S_LATEST_SUMMARY), bool(settings.S2S_LATEST_SUMMARY_TEXT), bool(settings.S2S_LOGIN_BY_PHONE), settings.S2S_INJECT_PROFILE, settings.S2S_DEBUG_PROMPT, settings.S2S_START_SESSION_MODE or "-", settings.S2S_THEME or "-", settings.S2S_APIPILOT_TOOLS_URL or "-", (settings.S2S_APIPILOT_TOOLS_EXECUTE_URL + f"(resolved:{_STARTUP_APIPILOT_EXEC_URL})") if settings.S2S_APIPILOT_TOOLS_EXECUTE_URL else "-", "Y" if bool(settings.S2S_APIPILOT_SERVICE_TOKEN) else "-", settings.APIPILOT_CACHE_TTL_SEC, settings.APIPILOT_HTTP_TIMEOUT, "Y" if (bool(settings.S2S_APIPILOT_TOOLS_URL) or bool(settings.S2S_APIPILOT_TOOLS_EXECUTE_URL)) else "-", ( "YES head=" + ( settings.S2S_APIPILOT_API_KEY[:6] + "..." if len(settings.S2S_APIPILOT_API_KEY) > 6 else settings.S2S_APIPILOT_API_KEY ) + " (3 FORMS!)" ) if settings.S2S_APIPILOT_API_KEY else "-", ) del _STARTUP_APIPILOT_EXEC_URL