BatchRollbackTool — restore project state to a checkpoint.
Registered as batch_rollback via the axm.tools entry point.
Restore project state to a previous checkpoint.
Registered as batch_rollback via axm.tools entry point.
Source code in packages/axm-edit/src/axm_edit/tools/batch_rollback.py
| Python |
|---|
| class BatchRollbackTool:
"""Restore project state to a previous checkpoint.
Registered as ``batch_rollback`` via axm.tools entry point.
"""
@property
def name(self) -> str:
"""Tool name used for MCP registration."""
return "batch_rollback"
def execute(self, **kwargs: object) -> ToolResult:
"""Rollback to a checkpoint created by batch_edit.
Args:
**kwargs: Keyword arguments.
path: Project root directory.
checkpoint: The stash SHA from batch_edit's response.
Returns:
ToolResult indicating whether the rollback succeeded.
"""
raw_path = kwargs.get("path", ".")
path = raw_path if isinstance(raw_path, str) else "."
raw_checkpoint = kwargs.get("checkpoint")
checkpoint = raw_checkpoint if isinstance(raw_checkpoint, str) else None
if not checkpoint:
return ToolResult(
success=False,
error="checkpoint is required",
)
try:
root = Path(path).resolve()
if not root.is_dir():
return ToolResult(
success=False,
error=f"Path is not a directory: {path}",
)
success = rollback(root, checkpoint)
return ToolResult(
success=success,
data={"restored": success},
error=None if success else "Rollback failed",
)
except (OSError, ValueError) as exc:
return ToolResult(success=False, error=str(exc))
|
Tool name used for MCP registration.
Rollback to a checkpoint created by batch_edit.
Parameters:
| Name |
Type |
Description |
Default |
**kwargs
|
object
|
Keyword arguments.
path: Project root directory.
checkpoint: The stash SHA from batch_edit's response.
|
{}
|
Returns:
| Type |
Description |
ToolResult
|
ToolResult indicating whether the rollback succeeded.
|
Source code in packages/axm-edit/src/axm_edit/tools/batch_rollback.py
| Python |
|---|
| def execute(self, **kwargs: object) -> ToolResult:
"""Rollback to a checkpoint created by batch_edit.
Args:
**kwargs: Keyword arguments.
path: Project root directory.
checkpoint: The stash SHA from batch_edit's response.
Returns:
ToolResult indicating whether the rollback succeeded.
"""
raw_path = kwargs.get("path", ".")
path = raw_path if isinstance(raw_path, str) else "."
raw_checkpoint = kwargs.get("checkpoint")
checkpoint = raw_checkpoint if isinstance(raw_checkpoint, str) else None
if not checkpoint:
return ToolResult(
success=False,
error="checkpoint is required",
)
try:
root = Path(path).resolve()
if not root.is_dir():
return ToolResult(
success=False,
error=f"Path is not a directory: {path}",
)
success = rollback(root, checkpoint)
return ToolResult(
success=success,
data={"restored": success},
error=None if success else "Rollback failed",
)
except (OSError, ValueError) as exc:
return ToolResult(success=False, error=str(exc))
|