PathResolver

interface PathResolver(source)

AutoTweaker 支持容器内工作区,并将宿主目录挂载到容器内以便程序直接读写宿主文件系统。

需要保障 LLM 始终以“容器内”的视角执行操作,而程序在读写文件系统时又能够正确得到宿主路径。

此接口用于处理容器内 <---> 宿主的路径映射关系。

AutoTweaker 会挂载 io.github.autotweaker.api.CONFIG_PATH /container/workspace 以及 io.github.autotweaker.api.TMP_PATH /container 到容器内。

Functions

Link copied to clipboard
abstract fun inContainer(workspace: Path): Boolean

判断一个工作区是否为容器内工作区,只需提供 Path

Link copied to clipboard
abstract fun toAbsolutePath(workspace: Path, path: Path): Path

基于工作区路径解析相对路径为绝对路径,不会进行转换,容器内得到的是“容器内视角”的绝对路径,宿主得到的是“宿主视角”的绝对路径。

Link copied to clipboard
abstract fun toContainerPath(path: Path): Path

将宿主路径转换为容器内路径,适用于保存文件后提供给 LLM 路径,或在容器内执行命令的场景。

Link copied to clipboard
abstract fun toHostPath(path: Path): Path

将容器内路径转换为宿主路径,适用于根据 LLM 的请求读写宿主文件系统。