mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-06-15 07:14:08 +00:00
* feat(webui): add project workspaces and access controls * feat(webui): add project workspaces and access controls * refactor(tools): centralize workspace access resolution * refactor(webui): remove unused workspace host state * fix(webui): hide estimated file edit label * fix(webui): clarify file edit deletion feedback * fix(webui): label deleted file activity * fix(webui): flatten file edit activity rows * fix(core): remove path-only patch deletion * fix(core): keep apply patch non-destructive * refactor(webui): trim workspace host plumbing * fix(tools): register exec with tools config
63 lines
1.4 KiB
Python
63 lines
1.4 KiB
Python
"""RuntimeState protocol: agent loop state exposed to MyTool."""
|
|
|
|
from typing import Any, Protocol
|
|
|
|
|
|
class RuntimeState(Protocol):
|
|
"""Minimum contract that MyTool requires from its runtime state provider.
|
|
|
|
In practice, this is always satisfied by ``AgentLoop``. MyTool also
|
|
accesses arbitrary attributes dynamically (via ``getattr`` / ``setattr``)
|
|
for dot-path inspection and modification; those paths are validated at
|
|
runtime rather than by this protocol.
|
|
"""
|
|
|
|
@property
|
|
def model(self) -> str: ...
|
|
|
|
@property
|
|
def max_iterations(self) -> int: ...
|
|
|
|
@property
|
|
def current_iteration(self) -> int: ...
|
|
|
|
@property
|
|
def tool_names(self) -> list[str]: ...
|
|
|
|
@property
|
|
def workspace(self) -> str: ...
|
|
|
|
@property
|
|
def provider_retry_mode(self) -> str: ...
|
|
|
|
@property
|
|
def max_tool_result_chars(self) -> int: ...
|
|
|
|
@property
|
|
def context_window_tokens(self) -> int: ...
|
|
|
|
@property
|
|
def web_config(self) -> Any: ...
|
|
|
|
@property
|
|
def exec_config(self) -> Any: ...
|
|
|
|
@property
|
|
def workspace_sandbox(self) -> Any: ...
|
|
|
|
@property
|
|
def subagents(self) -> Any: ...
|
|
|
|
@property
|
|
def _runtime_vars(self) -> dict[str, Any]: ...
|
|
|
|
@property
|
|
def _last_usage(self) -> Any: ...
|
|
|
|
def _sync_subagent_runtime_limits(self) -> None: ...
|
|
|
|
@property
|
|
def model_preset(self) -> str | None: ...
|
|
|
|
_active_preset: str | None
|