{
  "$schema": "../schemas/tool-detail.schema.json",
  "formatVersion": "roslyn-workbench-tool-reference/v1",
  "productVersion": "0.1.0-beta.294",
  "sourceTag": "0.1.0-beta.294",
  "commit": "4c70250e5e02c4109ceff810651918d34513225b",
  "name": "get-error-details",
  "title": "Get Error Details",
  "area": "Server",
  "category": "Error reporting",
  "operationKind": "Query",
  "summary": "Returns temporary local diagnostic details for an unexpected tool failure. The result may contain paths and user-authored identifiers, is intended only for the trusted local agent, and must never be submitted externally.",
  "availability": "Built in and published by default.",
  "documentationUrl": "https://lantean-code.github.io/roslyn-workbench-mcp/0.1.0-beta.294/reference/tools/get-error-details.html",
  "tool": {
    "name": "get-error-details",
    "title": "Get Error Details",
    "description": "Returns temporary local diagnostic details for an unexpected tool failure. The result may contain paths and user-authored identifiers, is intended only for the trusted local agent, and must never be submitted externally.",
    "inputSchema": {
      "type": "object",
      "properties": {
        "correlationId": {
          "description": "Correlation identifier returned with the failed tool invocation.",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "correlationId"
      ]
    },
    "outputSchema": {
      "type": "object",
      "oneOf": [
        {
          "type": "object",
          "required": [
            "ok",
            "data"
          ],
          "properties": {
            "ok": {
              "const": true,
              "description": "Whether the tool invocation succeeded."
            },
            "data": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "sensitivity": {
                  "description": "Sensitivity classification applied to the captured error details.",
                  "type": "string"
                },
                "safeForExternalSubmission": {
                  "description": "Whether the captured details are safe to submit outside the local process.",
                  "type": "boolean"
                },
                "error": {
                  "description": "Captured diagnostic record for the failed tool invocation.",
                  "type": "object",
                  "properties": {
                    "correlationId": {
                      "description": "Correlation identifier assigned to the captured failure.",
                      "type": "string",
                      "format": "uuid"
                    },
                    "failureTime": {
                      "description": "Time at which the tool invocation failed.",
                      "type": "string",
                      "format": "date-time"
                    },
                    "expiresAt": {
                      "description": "Time at which this locally retained error record expires.",
                      "type": "string",
                      "format": "date-time"
                    },
                    "toolName": {
                      "description": "MCP tool that failed.",
                      "type": "string"
                    },
                    "executionFamily": {
                      "description": "Execution path used by the failed tool, such as server, plugin, or Code Action.",
                      "type": "string"
                    },
                    "pluginClassification": {
                      "description": "Plugin ownership classification when the failed tool was plugin-backed.",
                      "type": "string"
                    },
                    "durationMilliseconds": {
                      "description": "Tool execution duration in milliseconds before failure.",
                      "type": "integer"
                    },
                    "cancellationRequested": {
                      "description": "Whether cancellation had been requested when the failure occurred.",
                      "type": "boolean"
                    },
                    "exceptions": {
                      "description": "Captured exception chain for the failure.",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "component": {
                            "description": "Roslyn Workbench component in which the exception originated.",
                            "type": "string",
                            "enum": [
                              "Unknown",
                              "RoslynWorkbench",
                              "Roslyn",
                              "DotNet"
                            ]
                          },
                          "type": {
                            "description": "Exception type name.",
                            "type": "string"
                          },
                          "message": {
                            "description": "Exception message included with the user's consent.",
                            "type": "string"
                          },
                          "stackFrames": {
                            "description": "Diagnostic stack frames retained from the exception and classified by owning component.",
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "component": {
                                  "description": "Roslyn Workbench component that owns this frame.",
                                  "type": "string",
                                  "enum": [
                                    "Unknown",
                                    "RoslynWorkbench",
                                    "Roslyn",
                                    "DotNet"
                                  ]
                                },
                                "assembly": {
                                  "description": "Assembly name, when available.",
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "type": {
                                  "description": "Declaring type name, when available.",
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "method": {
                                  "description": "Method name, when available.",
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "file": {
                                  "description": "First-party source file path recorded by symbols, when available.",
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "line": {
                                  "description": "One-based source line number, when available.",
                                  "type": [
                                    "integer",
                                    "null"
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "type",
                          "message"
                        ]
                      }
                    },
                    "workspace": {
                      "description": "Workspace context active during the failure, when available.",
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "workspaceId": {
                          "description": "Server-generated identifier of the workspace active during the failure.",
                          "type": "string",
                          "format": "uuid"
                        },
                        "workspaceEpoch": {
                          "description": "Workspace epoch active during the failure.",
                          "type": "integer"
                        },
                        "lifecycleState": {
                          "description": "Workspace lifecycle state at the time of failure.",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "projectCount": {
                          "description": "Number of loaded projects at the time of failure.",
                          "type": "integer"
                        },
                        "documentCount": {
                          "description": "Number of loaded documents at the time of failure.",
                          "type": "integer"
                        },
                        "transactionRevision": {
                          "description": "Active transaction revision at the time of failure, when applicable.",
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "serverVersion": {
                      "description": "Roslyn Workbench server version that captured the failure.",
                      "type": "string"
                    },
                    "roslynVersion": {
                      "description": "Roslyn version used by the server.",
                      "type": "string"
                    },
                    "dotNetVersion": {
                      "description": ".NET runtime version used by the server.",
                      "type": "string"
                    },
                    "operatingSystem": {
                      "description": "Operating system on which the server was running.",
                      "type": "string"
                    },
                    "processorArchitecture": {
                      "description": "Processor architecture of the server process.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "correlationId",
                    "failureTime",
                    "expiresAt",
                    "toolName",
                    "executionFamily",
                    "pluginClassification",
                    "durationMilliseconds",
                    "serverVersion",
                    "roslynVersion",
                    "dotNetVersion",
                    "operatingSystem",
                    "processorArchitecture"
                  ]
                }
              },
              "required": [
                "error"
              ],
              "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."
            }
          }
        }
      ]
    },
    "annotations": {
      "title": "Get Error Details",
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": false,
      "readOnlyHint": true
    }
  },
  "examples": []
}
