Skip to content

Batch rollback

batch_rollback

BatchRollbackTool — restore project state to a checkpoint.

Registered as batch_rollback via the axm.tools entry point.

BatchRollbackTool

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))
name property

Tool name used for MCP registration.

execute(**kwargs)

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))