changedOutput schema / oneOf
Previous value: -[
- {
- "properties": {
- "data": {
- "description": "Tool-specific result payload.",
- "properties": {
- "error": {
- "description": "Captured diagnostic record for the failed tool invocation.",
- "properties": {
- "cancellationRequested": {
- "description": "Whether cancellation had been requested when the failure occurred.",
- "type": "boolean"
- },
- "correlationId": {
- "description": "Correlation identifier assigned to the captured failure.",
- "format": "uuid",
- "type": "string"
- },
- "dotNetVersion": {
- "description": ".NET runtime version used by the server.",
- "type": "string"
- },
- "durationMilliseconds": {
- "description": "Tool execution duration in milliseconds before failure.",
- "type": "integer"
- },
- "exceptions": {
- "description": "Captured exception chain for the failure.",
- "items": {
- "properties": {
- "component": {
- "description": "Roslyn Workbench component in which the exception originated.",
- "enum": [
- "Unknown",
- "RoslynWorkbench",
- "Roslyn",
- "DotNet"
- ],
- "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.",
- "items": {
- "properties": {
- "assembly": {
- "description": "Assembly name, when available.",
- "type": [
- "string",
- "null"
- ]
- },
- "component": {
- "description": "Roslyn Workbench component that owns this frame.",
- "enum": [
- "Unknown",
- "RoslynWorkbench",
- "Roslyn",
- "DotNet"
- ],
- "type": "string"
- },
- "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"
- ]
- },
- "method": {
- "description": "Method name, when available.",
- "type": [
- "string",
- "null"
- ]
- },
- "type": {
- "description": "Declaring type name, when available.",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "type": {
- "description": "Exception type name.",
- "type": "string"
- }
- },
- "required": [
- "type",
- "message"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "executionFamily": {
- "description": "Execution path used by the failed tool, such as server, plugin, or Code Action.",
- "type": "string"
- },
- "expiresAt": {
- "description": "Time at which this locally retained error record expires.",
- "format": "date-time",
- "type": "string"
- },
- "failureTime": {
- "description": "Time at which the tool invocation failed.",
- "format": "date-time",
- "type": "string"
- },
- "operatingSystem": {
- "description": "Operating system on which the server was running.",
- "type": "string"
- },
- "pluginClassification": {
- "description": "Plugin ownership classification when the failed tool was plugin-backed.",
- "type": "string"
- },
- "processorArchitecture": {
- "description": "Processor architecture of the server process.",
- "type": "string"
- },
- "roslynVersion": {
- "description": "Roslyn version used by the server.",
- "type": "string"
- },
- "serverVersion": {
- "description": "Roslyn Workbench server version that captured the failure.",
- "type": "string"
- },
- "toolName": {
- "description": "MCP tool that failed.",
- "type": "string"
- },
- "workspace": {
- "description": "Workspace context active during the failure, when available.",
- "properties": {
- "documentCount": {
- "description": "Number of loaded documents at the time of 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"
- },
- "transactionRevision": {
- "description": "Active transaction revision at the time of failure, when applicable.",
- "type": [
- "integer",
- "null"
- ]
- },
- "workspaceEpoch": {
- "description": "Workspace epoch active during the failure.",
- "type": "integer"
- },
- "workspaceId": {
- "description": "Server-generated identifier of the workspace active during the failure.",
- "format": "uuid",
- "type": "string"
- }
- },
- "type": [
- "object",
- "null"
- ]
- }
- },
- "required": [
- "correlationId",
- "failureTime",
- "expiresAt",
- "toolName",
- "executionFamily",
- "pluginClassification",
- "durationMilliseconds",
- "serverVersion",
- "roslynVersion",
- "dotNetVersion",
- "operatingSystem",
- "processorArchitecture"
- ],
- "type": "object"
- },
- "safeForExternalSubmission": {
- "description": "Whether the captured details are safe to submit outside the local process.",
- "type": "boolean"
- },
- "sensitivity": {
- "description": "Sensitivity classification applied to the captured error details.",
- "type": "string"
- }
- },
- "required": [
- "error"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "ok": {
- "const": true,
- "description": "Whether the tool invocation succeeded."
- },
- "snapshot": {
- "description": "Exact immutable workspace snapshot associated with the result, when available.",
- "properties": {
- "snapshotId": {
- "format": "uuid",
- "type": "string"
- },
- "transactionRevision": {
- "type": [
- "integer",
- "null"
- ]
- },
- "workspaceEpoch": {
- "type": "integer"
- },
- "workspaceId": {
- "format": "uuid",
- "type": "string"
- }
- },
- "required": [
- "workspaceId",
- "workspaceEpoch",
- "snapshotId",
- "transactionRevision"
- ],
- "type": "object"
- },
- "warnings": {
- "description": "Non-fatal warnings the agent should consider.",
- "items": {
- "$ref": "#/$defs/warningInfo"
- },
- "type": "array"
- }
- },
- "required": [
- "ok",
- "data"
- ],
- "type": "object"
- },
- {
- "properties": {
- "continuation": {
- "description": "Action the agent should take before retrying or continuing.",
- "oneOf": [
- {
- "additionalProperties": false,
- "properties": {
- "instruction": {
- "description": "Agent-facing instruction explaining how to continue.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "CallTool",
- "description": "Action required before the original request can continue."
- },
- "tool": {
- "description": "Tool to call before continuing the original request.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "kind",
- "tool",
- "instruction"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "instruction": {
- "description": "Agent-facing instruction explaining how to continue.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "ChooseTool",
- "description": "Action required before the original request can continue."
- },
- "tools": {
- "description": "Allowed tool choices from which the agent must select one.",
- "items": {
- "description": "Name of a tool the agent may choose.",
- "minLength": 1,
- "type": "string"
- },
- "minItems": 1,
- "type": "array",
- "uniqueItems": true
- }
- },
- "required": [
- "kind",
- "tools",
- "instruction"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "instruction": {
- "description": "Agent-facing instruction explaining how to continue.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "RetryRequest",
- "description": "Action required before the original request can continue."
- }
- },
- "required": [
- "kind",
- "instruction"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "instruction": {
- "description": "Agent-facing instruction explaining how to continue.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "ReviseRequest",
- "description": "Action required before the original request can continue."
- }
- },
- "required": [
- "kind",
- "instruction"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "instruction": {
- "description": "Agent-facing instruction explaining how to continue.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "ResolveExternally",
- "description": "Action required before the original request can continue."
- }
- },
- "required": [
- "kind",
- "instruction"
- ],
- "type": "object"
- }
- ]
- },
- "diagnostics": {
- "description": "Diagnostics that explain the failed invocation.",
- "items": {
- "properties": {
- "id": {
- "description": "The diagnostic identifier.",
- "type": "string"
- },
- "location": {
- "description": "The optional source location of the diagnostic.",
- "properties": {
- "column": {
- "description": "The one-based column number.",
- "type": "integer"
- },
- "document": {
- "description": "The resolved document.",
- "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"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "line": {
- "description": "The one-based line number.",
- "type": "integer"
- },
- "selector": {
- "description": "The canonical selector that can resolve this source location again.",
- "properties": {
- "span": {
- "properties": {
- "document": {
- "description": "Provide exactly one of path or documentId.",
- "properties": {
- "documentId": {
- "description": "Workspace-local document ID.",
- "type": [
- "string",
- "null"
- ]
- },
- "path": {
- "description": "Workspace-relative path.",
- "type": [
- "string",
- "null"
- ]
- },
- "project": {
- "description": "Disambiguates documents with matching paths or IDs.",
- "properties": {
- "name": {
- "type": [
- "string",
- "null"
- ]
- },
- "path": {
- "description": "Workspace-relative path.",
- "type": [
- "string",
- "null"
- ]
- },
- "projectId": {
- "type": [
- "string",
- "null"
- ]
- },
- "targetFramework": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": [
- "object",
- "null"
- ]
- }
- },
- "type": "object"
- },
- "range": {
- "description": "Zero-based UTF-16 range.",
- "properties": {
- "length": {
- "description": "UTF-16 code-unit length.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "start": {
- "description": "Zero-based UTF-16 offset.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "document",
- "range"
- ],
- "type": "object"
- }
- },
- "required": [
- "span"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "snapshot": {
- "description": "The exact immutable workspace snapshot associated with this location.",
- "properties": {
- "snapshotId": {
- "format": "uuid",
- "type": "string"
- },
- "transactionRevision": {
- "type": [
- "integer",
- "null"
- ]
- },
- "workspaceEpoch": {
- "type": "integer"
- },
- "workspaceId": {
- "format": "uuid",
- "type": "string"
- }
- },
- "required": [
- "workspaceId",
- "workspaceEpoch",
- "snapshotId",
- "transactionRevision"
- ],
- "type": "object"
- },
- "span": {
- "description": "The resolved text span.",
- "properties": {
- "length": {
- "description": "UTF-16 code-unit length.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- },
- "start": {
- "description": "Zero-based UTF-16 offset.",
- "maximum": 2147483647,
- "minimum": 0,
- "type": "integer"
- }
- },
- "type": [
- "object",
- "null"
- ]
- }
- },
- "required": [
- "snapshot"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "message": {
- "description": "The diagnostic message.",
- "type": "string"
- },
- "severity": {
- "description": "The diagnostic severity.",
- "enum": [
- "Hidden",
- "Info",
- "Warning",
- "Error"
- ],
- "type": "string"
- }
- },
- "required": [
- "id",
- "message"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "error": {
- "description": "Structured error details when the invocation failed.",
- "properties": {
- "code": {
- "description": "Stable machine-readable error code.",
- "type": "string"
- },
- "correlationId": {
- "description": "Correlation identifier for matching the failure to server-side diagnostics, when available.",
- "type": [
- "string",
- "null"
- ]
- },
- "message": {
- "description": "Human-readable explanation of the failure.",
- "type": "string"
- }
- },
- "required": [
- "code",
- "message"
- ],
- "type": "object"
- },
- "ok": {
- "const": false,
- "description": "Whether the tool invocation succeeded."
- },
- "warnings": {
- "description": "Non-fatal warnings the agent should consider.",
- "items": {
- "$ref": "#/$defs/warningInfo"
- },
- "type": "array"
- }
- },
- "required": [
- "ok",
- "error"
- ],
- "type": "object"
- },
- {
- "properties": {
- "diagnostics": {
- "description": "Diagnostics that explain the failed invocation.",
- "properties": {
- "detailsAvailable": {
- "const": true
- },
- "detailsTool": {
- "const": "get-error-details"
- }
- },
- "required": [
- "detailsAvailable",
- "detailsTool"
- ],
- "type": "object"
- },
- "error": {
- "description": "Structured error details when the invocation failed.",
- "properties": {
- "code": {
- "const": "UnhandledException"
- },
- "correlationId": {
- "format": "uuid",
- "type": "string"
- },
- "message": {
- "const": "Tool execution failed."
- }
- },
- "required": [
- "code",
- "message",
- "correlationId"
- ],
- "type": "object"
- },
- "ok": {
- "const": false,
- "description": "Whether the tool invocation succeeded."
- },
- "reporting": {
- "description": "Error-reporting workflow available for an unhandled failure.",
- "properties": {
- "canPrepare": {
- "type": "boolean"
- },
- "prepareTool": {
- "type": [
- "string",
- "null"
- ]
- },
- "state": {
- "enum": [
- "Available",
- "AlwaysApproved",
- "DisabledByConfiguration",
- "ApprovalUnavailable"
- ],
- "type": "string"
- }
- },
- "required": [
- "state"
- ],
- "type": "object"
- }
- },
- "required": [
- "ok",
- "error",
- "diagnostics"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "data": {
+ "description": "Tool-specific result payload.",
+ "properties": {
+ "error": {
+ "description": "Captured diagnostic record for the failed tool invocation.",
+ "properties": {
+ "cancellationRequested": {
+ "description": "Whether cancellation had been requested when the failure occurred.",
+ "type": "boolean"
+ },
+ "correlationId": {
+ "description": "Correlation identifier assigned to the captured failure.",
+ "format": "uuid",
+ "type": "string"
+ },
+ "dotNetVersion": {
+ "description": ".NET runtime version used by the server.",
+ "type": "string"
+ },
+ "durationMilliseconds": {
+ "description": "Operation duration in milliseconds before failure.",
+ "type": "integer"
+ },
+ "exceptions": {
+ "description": "Captured exception chain for the failure.",
+ "items": {
+ "properties": {
+ "component": {
+ "description": "Roslyn Workbench component in which the exception originated.",
+ "enum": [
+ "Unknown",
+ "RoslynWorkbench",
+ "Roslyn",
+ "DotNet"
+ ],
+ "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.",
+ "items": {
+ "properties": {
+ "assembly": {
+ "description": "Assembly name, when available.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "component": {
+ "description": "Roslyn Workbench component that owns this frame.",
+ "enum": [
+ "Unknown",
+ "RoslynWorkbench",
+ "Roslyn",
+ "DotNet"
+ ],
+ "type": "string"
+ },
+ "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"
+ ]
+ },
+ "method": {
+ "description": "Method name, when available.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "description": "Declaring type name, when available.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "Exception type name.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "executionFamily": {
+ "description": "Execution path used by the failed operation, such as server, plugin, Code Action or Resource.",
+ "type": "string"
+ },
+ "expiresAt": {
+ "description": "Time at which this locally retained error record expires.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "failureTime": {
+ "description": "Time at which the MCP operation failed.",
+ "format": "date-time",
+ "type": "string"
+ },
+ "operatingSystem": {
+ "description": "Operating system on which the server was running.",
+ "type": "string"
+ },
+ "pluginClassification": {
+ "description": "Plugin ownership classification when the failed tool was plugin-backed.",
+ "type": "string"
+ },
+ "processorArchitecture": {
+ "description": "Processor architecture of the server process.",
+ "type": "string"
+ },
+ "roslynVersion": {
+ "description": "Roslyn version used by the server.",
+ "type": "string"
+ },
+ "serverVersion": {
+ "description": "Roslyn Workbench server version that captured the failure.",
+ "type": "string"
+ },
+ "toolName": {
+ "description": "Published tool name, or resources/read for a resource-read failure.",
+ "type": "string"
+ },
+ "workspace": {
+ "description": "Workspace context active during the failure, when available.",
+ "properties": {
+ "documentCount": {
+ "description": "Number of loaded documents at the time of 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"
+ },
+ "transactionRevision": {
+ "description": "Active transaction revision at the time of failure, when applicable.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "workspaceEpoch": {
+ "description": "Workspace epoch active during the failure.",
+ "type": "integer"
+ },
+ "workspaceId": {
+ "description": "Server-generated identifier of the workspace active during the failure.",
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "correlationId",
+ "failureTime",
+ "expiresAt",
+ "toolName",
+ "executionFamily",
+ "pluginClassification",
+ "durationMilliseconds",
+ "serverVersion",
+ "roslynVersion",
+ "dotNetVersion",
+ "operatingSystem",
+ "processorArchitecture"
+ ],
+ "type": "object"
+ },
+ "safeForExternalSubmission": {
+ "description": "Whether the captured details are safe to submit outside the local process.",
+ "type": "boolean"
+ },
+ "sensitivity": {
+ "description": "Sensitivity classification applied to the captured error details.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "error"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "ok": {
+ "const": true,
+ "description": "Whether the tool invocation succeeded."
+ },
+ "snapshot": {
+ "description": "Exact immutable workspace snapshot associated with the result, when available.",
+ "properties": {
+ "snapshotId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "transactionRevision": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "workspaceEpoch": {
+ "type": "integer"
+ },
+ "workspaceId": {
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "workspaceId",
+ "workspaceEpoch",
+ "snapshotId",
+ "transactionRevision"
+ ],
+ "type": "object"
+ },
+ "warnings": {
+ "description": "Non-fatal warnings the agent should consider.",
+ "items": {
+ "$ref": "#/$defs/warningInfo"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "ok",
+ "data"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "continuation": {
+ "description": "Action the agent should take before retrying or continuing.",
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "instruction": {
+ "description": "Agent-facing instruction explaining how to continue.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "CallTool",
+ "description": "Action required before the original request can continue."
+ },
+ "tool": {
+ "description": "Tool to call before continuing the original request.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "tool",
+ "instruction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "instruction": {
+ "description": "Agent-facing instruction explaining how to continue.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "ChooseTool",
+ "description": "Action required before the original request can continue."
+ },
+ "tools": {
+ "description": "Allowed tool choices from which the agent must select one.",
+ "items": {
+ "description": "Name of a tool the agent may choose.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array",
+ "uniqueItems": true
+ }
+ },
+ "required": [
+ "kind",
+ "tools",
+ "instruction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "instruction": {
+ "description": "Agent-facing instruction explaining how to continue.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "RetryRequest",
+ "description": "Action required before the original request can continue."
+ }
+ },
+ "required": [
+ "kind",
+ "instruction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "instruction": {
+ "description": "Agent-facing instruction explaining how to continue.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "ReviseRequest",
+ "description": "Action required before the original request can continue."
+ }
+ },
+ "required": [
+ "kind",
+ "instruction"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "instruction": {
+ "description": "Agent-facing instruction explaining how to continue.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "ResolveExternally",
+ "description": "Action required before the original request can continue."
+ }
+ },
+ "required": [
+ "kind",
+ "instruction"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "diagnostics": {
+ "description": "Diagnostics that explain the failed invocation.",
+ "items": {
+ "properties": {
+ "id": {
+ "description": "The diagnostic identifier.",
+ "type": "string"
+ },
+ "location": {
+ "description": "The optional source location of the diagnostic.",
+ "properties": {
+ "column": {
+ "description": "The one-based column number.",
+ "type": "integer"
+ },
+ "document": {
+ "description": "The resolved document.",
+ "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"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "line": {
+ "description": "The one-based line number.",
+ "type": "integer"
+ },
+ "selector": {
+ "description": "The canonical selector that can resolve this source location again.",
+ "properties": {
+ "span": {
+ "properties": {
+ "document": {
+ "description": "Provide exactly one of path or documentId.",
+ "properties": {
+ "documentId": {
+ "description": "Workspace-local document ID.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "path": {
+ "description": "Workspace-relative path.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "project": {
+ "description": "Disambiguates documents with matching paths or IDs.",
+ "properties": {
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "path": {
+ "description": "Workspace-relative path.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "projectId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "targetFramework": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "range": {
+ "description": "Zero-based UTF-16 range.",
+ "properties": {
+ "length": {
+ "description": "UTF-16 code-unit length.",
+ "maximum": 2147483647,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "start": {
+ "description": "Zero-based UTF-16 offset.",
+ "maximum": 2147483647,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "document",
+ "range"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "span"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "snapshot": {
+ "description": "The exact immutable workspace snapshot associated with this location.",
+ "properties": {
+ "snapshotId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "transactionRevision": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "workspaceEpoch": {
+ "type": "integer"
+ },
+ "workspaceId": {
+ "format": "uuid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "workspaceId",
+ "workspaceEpoch",
+ "snapshotId",
+ "transactionRevision"
+ ],
+ "type": "object"
+ },
+ "span": {
+ "description": "The resolved text span.",
+ "properties": {
+ "length": {
+ "description": "UTF-16 code-unit length.",
+ "maximum": 2147483647,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "start": {
+ "description": "Zero-based UTF-16 offset.",
+ "maximum": 2147483647,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "snapshot"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "message": {
+ "description": "The diagnostic message.",
+ "type": "string"
+ },
+ "severity": {
+ "description": "The diagnostic severity.",
+ "enum": [
+ "Hidden",
+ "Info",
+ "Warning",
+ "Error"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "message"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "error": {
+ "description": "Structured error details when the invocation failed.",
+ "properties": {
+ "code": {
+ "description": "Stable machine-readable error code.",
+ "type": "string"
+ },
+ "correlationId": {
+ "description": "Correlation identifier for matching the failure to server-side diagnostics, when available.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "message": {
+ "description": "Human-readable explanation of the failure.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ },
+ "ok": {
+ "const": false,
+ "description": "Whether the tool invocation succeeded."
+ },
+ "warnings": {
+ "description": "Non-fatal warnings the agent should consider.",
+ "items": {
+ "$ref": "#/$defs/warningInfo"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "ok",
+ "error"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "diagnostics": {
+ "description": "Diagnostics that explain the failed invocation.",
+ "properties": {
+ "detailsAvailable": {
+ "const": true
+ },
+ "detailsTool": {
+ "const": "get-error-details"
+ }
+ },
+ "required": [
+ "detailsAvailable",
+ "detailsTool"
+ ],
+ "type": "object"
+ },
+ "error": {
+ "description": "Structured error details when the invocation failed.",
+ "properties": {
+ "code": {
+ "const": "UnhandledException"
+ },
+ "correlationId": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "message": {
+ "const": "Tool execution failed."
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "correlationId"
+ ],
+ "type": "object"
+ },
+ "ok": {
+ "const": false,
+ "description": "Whether the tool invocation succeeded."
+ },
+ "reporting": {
+ "description": "Error-reporting workflow available for an unhandled failure.",
+ "properties": {
+ "canPrepare": {
+ "type": "boolean"
+ },
+ "prepareTool": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "state": {
+ "enum": [
+ "Available",
+ "AlwaysApproved",
+ "DisabledByConfiguration",
+ "ApprovalUnavailable"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "state"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "ok",
+ "error",
+ "diagnostics"
+ ],
+ "type": "object"
+ }
+]