edf345cd72
- Freeze all config models (AppConfig + 15 sub-configs) with frozen=True - Purify from_file() — remove 9 load_*_from_dict() side-effect calls - Replace mtime/reload/push/pop machinery with single ContextVar + init_app_config() - Delete 10 sub-module globals and their getters/setters/loaders - Migrate 50+ consumers from get_*_config() to get_app_config().xxx - Expand DeerFlowContext: app_config + thread_id + agent_name (frozen dataclass) - Wire into Gateway runtime (worker.py) and DeerFlowClient via context= parameter - Remove sandbox_id from runtime.context — flows through ThreadState.sandbox only - Middleware/tools access runtime.context directly via Runtime[DeerFlowContext] generic - resolve_context() retained at server entry points for LangGraph Server fallback
21 lines
658 B
Python
21 lines
658 B
Python
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class ToolGroupConfig(BaseModel):
|
|
"""Config section for a tool group"""
|
|
|
|
name: str = Field(..., description="Unique name for the tool group")
|
|
model_config = ConfigDict(extra="allow", frozen=True)
|
|
|
|
|
|
class ToolConfig(BaseModel):
|
|
"""Config section for a tool"""
|
|
|
|
name: str = Field(..., description="Unique name for the tool")
|
|
group: str = Field(..., description="Group name for the tool")
|
|
use: str = Field(
|
|
...,
|
|
description="Variable name of the tool provider(e.g. deerflow.sandbox.tools:bash_tool)",
|
|
)
|
|
model_config = ConfigDict(extra="allow", frozen=True)
|