refactor: split flat core into capability packages, layer the conversations service, English defaults for every model-facing text
This commit is contained in:
1 parent
253bde1b11
commit
9aaddbed75
77 files changed
+2987
-2944
No files matched your search
@@ -0,0 +1,30 @@
|
||||
"""Where a frontend is reachable from outside, as seen by one request."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from starlette.requests import Request
|
||||
|
||||
from beaver_gateway.frontends.base import Frontend, GatewayRuntime
|
||||
|
||||
|
||||
def request_origin(request: Request, runtime: GatewayRuntime) -> str:
|
||||
"""``Gateway.public_url`` if configured, else the request's own origin."""
|
||||
if runtime.public_url:
|
||||
return runtime.public_url
|
||||
host = request.headers.get("host")
|
||||
if not host:
|
||||
return f"http://{request.url.hostname}:{request.url.port}"
|
||||
scheme = request.headers.get("x-forwarded-proto") or request.url.scheme
|
||||
return f"{scheme}://{host}"
|
||||
|
||||
|
||||
def external_base(request: Request, runtime: GatewayRuntime) -> str:
|
||||
"""Origin plus the mount path of the app handling ``request``."""
|
||||
return request_origin(request, runtime) + str(request.scope.get("root_path", ""))
|
||||
|
||||
|
||||
def frontend_url(request: Request, runtime: GatewayRuntime, fe: Frontend) -> str | None:
|
||||
return request_origin(request, runtime) + fe.path if fe.path else None
|
||||
Reference in new issue
Block a user