mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-12 07:09:19 +03:00
27 lines
902 B
Python
27 lines
902 B
Python
"""Shared path helpers for workspace-scoped tools."""
|
|
|
|
from pathlib import Path
|
|
|
|
from nanobot.config.paths import get_media_dir
|
|
from nanobot.security.workspace_policy import resolve_allowed_path
|
|
|
|
|
|
def resolve_workspace_path(
|
|
path: str,
|
|
workspace: Path | None = None,
|
|
allowed_dir: Path | None = None,
|
|
extra_allowed_dirs: list[Path] | None = None,
|
|
extra_allowed_files: list[Path] | None = None,
|
|
include_media_dir: bool = True,
|
|
) -> Path:
|
|
"""Resolve path against workspace and enforce allowed directory containment."""
|
|
media_roots = [get_media_dir()] if include_media_dir else []
|
|
extra_roots = [*media_roots, *(extra_allowed_dirs or [])] if allowed_dir else None
|
|
return resolve_allowed_path(
|
|
path,
|
|
workspace=workspace,
|
|
allowed_root=allowed_dir,
|
|
extra_allowed_roots=extra_roots,
|
|
extra_allowed_files=extra_allowed_files,
|
|
)
|