Skip to content

Transaction Preview

transaction-preview · Query · Server · Transactions

Previews the current staged transaction.

Availability: Built in and published by default.

Generated from Roslyn Workbench MCP 0.1.0-beta.294 (0.1.0-beta.294).

Behaviour annotations

Annotation Value
destructiveHint false
idempotentHint true
openWorldHint false
readOnlyHint true
title "Transaction Preview"

Request

Property Type Required Description
document object | null No Document whose detailed diff should be returned; provide it when includeDiff is true.
includeDiff boolean No Whether to include a detailed diff.
contextLines integer No Number of unchanged context lines around each diff hunk when includeDiff is true.
workspace object | null No Provide workspaceId, alias, path, or any combination.

Response

Success response

Property Type Required Description
ok boolean constant (true) Yes Whether the tool invocation succeeded.
data object | null Yes Tool-specific result payload.
snapshot object No Exact immutable workspace snapshot associated with the result, when available.

Error response

Property Type Required Description
ok boolean constant (false) Yes Whether the tool invocation succeeded.
error object Yes Structured error details when the invocation failed.
continuation oneOf No Action the agent should take before retrying or continuing.

Continuations and required actions

A non-success response may include a structured continuation at the following schema location. Follow its tool call or user-action instruction instead of guessing how to retry:

  • $/oneOf/1/properties/continuation

Examples

Preview staged changes

Workflow: Stage, review and commit one change, step 3.

Inspect a focused diff before deciding whether to commit or roll back the transaction.

Expected outcome: A three-line-context diff is returned for the selected document without writing files.

{
  "document": {
    "path": "src/Sample.cs"
  },
  "includeDiff": true,
  "contextLines": 3,
  "workspace": {
    "alias": "sample"
  }
}
Complete input schema
{
  "type": "object",
  "properties": {
    "document": {
      "description": "Document whose detailed diff should be returned; provide it when includeDiff is true.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "project": {
          "description": "Disambiguates documents with matching paths or IDs.",
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "projectId": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "path": {
              "description": "Workspace-relative path.",
              "type": "string"
            },
            "targetFramework": {
              "type": "string"
            }
          }
        },
        "path": {
          "description": "Workspace-relative path.",
          "type": "string"
        },
        "documentId": {
          "description": "Workspace-local document ID.",
          "type": "string"
        }
      }
    },
    "includeDiff": {
      "description": "Whether to include a detailed diff.",
      "type": "boolean"
    },
    "contextLines": {
      "description": "Number of unchanged context lines around each diff hunk when includeDiff is true.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647,
      "default": 3
    },
    "workspace": {
      "description": "Provide workspaceId, alias, path, or any combination.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "workspaceId": {
          "type": "string",
          "format": "uuid"
        },
        "alias": {
          "type": "string"
        },
        "path": {
          "description": "Absolute workspace path.",
          "type": "string"
        }
      }
    }
  }
}
Complete output schema
{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "ok",
        "data"
      ],
      "properties": {
        "ok": {
          "const": true,
          "description": "Whether the tool invocation succeeded."
        },
        "data": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "transaction": {
              "description": "The active transaction info.",
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "revision": {
                  "description": "Current staged transaction revision.",
                  "type": "integer"
                },
                "revisionCount": {
                  "description": "Number of revisions retained in transaction history.",
                  "type": "integer"
                },
                "maxRevisions": {
                  "description": "Maximum number of revisions the transaction can retain.",
                  "type": "integer"
                },
                "remainingRevisions": {
                  "description": "Number of additional revisions that can be staged.",
                  "type": "integer"
                },
                "canMutate": {
                  "description": "Whether mutation tools may stage another change.",
                  "type": "boolean"
                },
                "canUndo": {
                  "description": "Whether transaction history can move to the preceding revision.",
                  "type": "boolean"
                },
                "canRedo": {
                  "description": "Whether transaction history can move to the following revision.",
                  "type": "boolean"
                },
                "canCommit": {
                  "description": "Whether the staged transaction can be committed to disk.",
                  "type": "boolean"
                },
                "canRollback": {
                  "description": "Whether the complete staged transaction can be discarded.",
                  "type": "boolean"
                }
              }
            },
            "documents": {
              "description": "The changed documents in the preview.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "document": {
                    "description": "The document that changed.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "documentId": {
                        "description": "The document identifier.",
                        "type": "string"
                      },
                      "path": {
                        "description": "The normalized document path.",
                        "type": "string"
                      },
                      "projectId": {
                        "description": "The owning project identifier.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "documentId",
                      "path",
                      "projectId"
                    ]
                  },
                  "changeKind": {
                    "description": "The kind of change applied to the document.",
                    "type": "string",
                    "enum": [
                      "Added",
                      "Modified",
                      "Deleted"
                    ]
                  },
                  "preview": {
                    "description": "The optional diff summary for the change.",
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "addedLines": {
                        "description": "The number of added lines.",
                        "type": "integer"
                      },
                      "removedLines": {
                        "description": "The number of removed lines.",
                        "type": "integer"
                      },
                      "changedLines": {
                        "description": "The number of changed lines.",
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            },
            "diff": {
              "description": "The optional detailed diff.",
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "document": {
                  "description": "Document for which the detailed diff was produced.",
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "documentId": {
                      "description": "The document identifier.",
                      "type": "string"
                    },
                    "path": {
                      "description": "The normalized document path.",
                      "type": "string"
                    },
                    "projectId": {
                      "description": "The owning project identifier.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "documentId",
                    "path",
                    "projectId"
                  ]
                },
                "hunks": {
                  "description": "Changed regions in unified-diff form.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "originalStartLine": {
                        "description": "One-based starting line in the original document.",
                        "type": "integer"
                      },
                      "originalLineCount": {
                        "description": "Number of original-document lines covered by the hunk.",
                        "type": "integer"
                      },
                      "updatedStartLine": {
                        "description": "One-based starting line in the updated document.",
                        "type": "integer"
                      },
                      "updatedLineCount": {
                        "description": "Number of updated-document lines covered by the hunk.",
                        "type": "integer"
                      },
                      "lines": {
                        "description": "Unified-diff content lines prefixed with space, +, or -.",
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "truncated": {
                  "description": "Whether one or more diff hunks were omitted from the response.",
                  "type": "boolean"
                }
              }
            }
          },
          "description": "Tool-specific result payload."
        },
        "snapshot": {
          "type": "object",
          "properties": {
            "workspaceId": {
              "type": "string",
              "format": "uuid"
            },
            "workspaceEpoch": {
              "type": "integer"
            },
            "snapshotId": {
              "type": "string",
              "format": "uuid"
            },
            "transactionRevision": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "workspaceId",
            "workspaceEpoch",
            "snapshotId",
            "transactionRevision"
          ],
          "description": "Exact immutable workspace snapshot associated with the result, when available."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "error"
      ],
      "properties": {
        "ok": {
          "const": false,
          "description": "Whether the tool invocation succeeded."
        },
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "description": "Stable machine-readable error code.",
              "type": "string"
            },
            "message": {
              "description": "Human-readable explanation of the failure.",
              "type": "string"
            },
            "correlationId": {
              "description": "Correlation identifier for matching the failure to server-side diagnostics, when available.",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "code",
            "message"
          ],
          "description": "Structured error details when the invocation failed."
        },
        "continuation": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tool",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "CallTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tool": {
                  "type": "string",
                  "description": "Tool to call before continuing the original request.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "tools",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ChooseTool",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                },
                "tools": {
                  "type": "array",
                  "description": "Allowed tool choices from which the agent must select one.",
                  "minItems": 1,
                  "uniqueItems": true,
                  "items": {
                    "type": "string",
                    "description": "Name of a tool the agent may choose.",
                    "minLength": 1
                  }
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "RetryRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ReviseRequest",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "kind",
                "instruction"
              ],
              "properties": {
                "kind": {
                  "const": "ResolveExternally",
                  "description": "Action required before the original request can continue."
                },
                "instruction": {
                  "type": "string",
                  "description": "Agent-facing instruction explaining how to continue.",
                  "minLength": 1
                }
              }
            }
          ],
          "description": "Action the agent should take before retrying or continuing."
        }
      }
    }
  ]
}

Machine reference