Initial commit
This commit is contained in:
33
server/context_vars.py
Normal file
33
server/context_vars.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""
|
||||
context_vars.py — asyncio ContextVars for per-request state.
|
||||
|
||||
Set by the agent loop before dispatching tool calls.
|
||||
Read by tools that need session/task context (e.g. WebTool for Tier 2 check).
|
||||
Using ContextVar is safe in async code — each task gets its own copy.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from contextvars import ContextVar
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .auth import CurrentUser
|
||||
|
||||
# Current session ID (None for anonymous/scheduled)
|
||||
current_session_id: ContextVar[str | None] = ContextVar("session_id", default=None)
|
||||
|
||||
# Current authenticated user (None for scheduled/API-key-less tasks)
|
||||
current_user: ContextVar[CurrentUser | None] = ContextVar("current_user", default=None)
|
||||
|
||||
# Current task ID (None for interactive sessions)
|
||||
current_task_id: ContextVar[str | None] = ContextVar("task_id", default=None)
|
||||
|
||||
# Whether Tier 2 web access is enabled for this session
|
||||
# Set True when the agent determines the user is requesting external web access
|
||||
web_tier2_enabled: ContextVar[bool] = ContextVar("web_tier2_enabled", default=False)
|
||||
|
||||
# Absolute path to the calling user's personal folder (e.g. /users/rune).
|
||||
# Set by agent.py at run start so assert_path_allowed can implicitly allow it.
|
||||
current_user_folder: ContextVar[str | None] = ContextVar("current_user_folder", default=None)
|
||||
Reference in New Issue
Block a user