taolib.symphony.workspace.manager#
工作区管理器。
为每个 Issue 创建隔离的文件系统工作区, 支持生命周期钩子(after_create / before_remove), 并通过路径安全工具防止遍历攻击。
Classes#
工作区描述。 |
|
工作区生命周期管理器。 |
Module Contents#
- class taolib.symphony.workspace.manager.Workspace#
工作区描述。
- path: pathlib.Path#
工作区在文件系统上的绝对路径。
- 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 标识)。
- 返回:
工作区描述对象。
- 抛出:
ValueError -- 净化后的路径脱离根目录。
HookTimeoutError -- 钩子执行超时。
HookError -- 钩子执行失败。
- async cleanup_workspace(identifier: str) None#
清理工作区(执行 before_remove 钩子后删除)。
- 参数:
identifier -- Issue 标识符。
- 抛出:
ValueError -- 净化后的路径脱离根目录。
HookTimeoutError -- 钩子执行超时。
HookError -- 钩子执行失败。