taolib.symphony.workspace.manager#

工作区管理器。

为每个 Issue 创建隔离的文件系统工作区, 支持生命周期钩子(after_create / before_remove), 并通过路径安全工具防止遍历攻击。

Classes#

Workspace

工作区描述。

WorkspaceManager

工作区生命周期管理器。

Module Contents#

class taolib.symphony.workspace.manager.Workspace#

工作区描述。

path: pathlib.Path#

工作区在文件系统上的绝对路径。

workspace_key: str#

净化后的标识符键名。

created_now: bool#

是否为本次调用新创建(False 表示复用已有目录)。

class taolib.symphony.workspace.manager.WorkspaceManager(root: pathlib.Path, hooks_config: HooksConfig | None = None)#

工作区生命周期管理器。

为每个 Issue 标识符创建或复用独立的文件系统目录, 并在关键节点执行配置的钩子脚本。

_root#
_hooks#
property root: pathlib.Path#

工作区根目录。

async create_for_issue(identifier: str) Workspace#

创建或重用工作区。

如果工作区目录已存在则复用(created_now=False), 否则创建新目录并执行 after_create 钩子。

参数:

identifier -- Issue 标识符(如 Linear issue 标识)。

返回:

工作区描述对象。

抛出:
async cleanup_workspace(identifier: str) None#

清理工作区(执行 before_remove 钩子后删除)。

参数:

identifier -- Issue 标识符。

抛出:
list_workspaces() list[str]#

列出根目录下所有工作区键名。

workspace_exists(identifier: str) bool#

检查指定标识符的工作区是否已存在。