changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "responsePagination": {
+ "additionalProperties": false,
+ "description": "Pagination metadata for top-level bulk response pagination across results[]",
+ "properties": {
+ "charLength": {
+ "description": "Character length of the current page",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "charOffset": {
+ "description": "Character offset of the current page",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "currentPage": {
+ "description": "Current page number (1-indexed)",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "hasMore": {
+ "description": "Whether more pages are available after the current page",
+ "type": "boolean"
+ },
+ "totalChars": {
+ "description": "Total number of characters in the full output",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "totalPages": {
+ "description": "Total number of pages available",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "currentPage",
+ "totalPages",
+ "hasMore",
+ "charOffset",
+ "charLength",
+ "totalChars"
+ ],
+ "type": "object"
+ },
+ "results": {
+ "description": "Array of results, one per input query, discriminated by status",
+ "items": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "description": "The tool-specific result data",
+ "properties": {
+ "branchFallback": {
+ "additionalProperties": false,
+ "description": "Branch fallback details when the requested branch was not used",
+ "properties": {
+ "actualBranch": {
+ "description": "Branch actually used in the result",
+ "type": "string"
+ },
+ "defaultBranch": {
+ "description": "Repository default branch when known",
+ "type": "string"
+ },
+ "requestedBranch": {
+ "description": "Branch requested in the query",
+ "type": "string"
+ },
+ "warning": {
+ "description": "Human-readable explanation of the branch fallback",
+ "type": "string"
+ }
+ },
+ "required": [
+ "requestedBranch",
+ "actualBranch",
+ "warning"
+ ],
+ "type": "object"
+ },
+ "hints": {
+ "description": "Contextual hints and suggestions for next steps or better queries",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "outputPagination": {
+ "additionalProperties": false,
+ "description": "Payload pagination metadata when the structure payload was size-paginated",
+ "properties": {
+ "charLength": {
+ "description": "Character length of the current page",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "charOffset": {
+ "description": "Character offset of the current page",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "currentPage": {
+ "description": "Current page number (1-indexed)",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "hasMore": {
+ "description": "Whether more pages are available after the current page",
+ "type": "boolean"
+ },
+ "totalChars": {
+ "description": "Total number of characters in the full output",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "totalPages": {
+ "description": "Total number of pages available",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "currentPage",
+ "totalPages",
+ "hasMore",
+ "charOffset",
+ "charLength",
+ "totalChars"
+ ],
+ "type": "object"
+ },
+ "pagination": {
+ "additionalProperties": false,
+ "description": "Pagination info for large directory listings",
+ "properties": {
+ "currentPage": {
+ "description": "Current page number (1-indexed)",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "entriesPerPage": {
+ "description": "Directory entries returned per page",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "hasMore": {
+ "description": "Whether more pages are available after the current page",
+ "type": "boolean"
+ },
+ "totalEntries": {
+ "description": "Total matching entries across all pages",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "totalPages": {
+ "description": "Total number of pages available",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "currentPage",
+ "totalPages",
+ "hasMore",
+ "entriesPerPage",
+ "totalEntries"
+ ],
+ "type": "object"
+ },
+ "resolvedBranch": {
+ "description": "Resolved branch used when the input query omitted a branch",
+ "type": "string"
+ },
+ "structure": {
+ "additionalProperties": {
+ "additionalProperties": false,
+ "properties": {
+ "files": {
+ "description": "File names in the directory",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "folders": {
+ "description": "Subdirectory names in the directory",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "files",
+ "folders"
+ ],
+ "type": "object"
+ },
+ "description": "Directory structure grouped by relative path",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "description": "Summary statistics for the returned repository structure",
+ "properties": {
+ "totalFiles": {
+ "description": "Total files included in the structure result",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "totalFolders": {
+ "description": "Total folders included in the structure result",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "truncated": {
+ "description": "Whether the provider truncated the structure result",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "totalFiles",
+ "totalFolders",
+ "truncated"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Stable query identifier matching the input query id",
+ "minLength": 1,
+ "type": "string"
+ },
+ "status": {
+ "const": "hasResults",
+ "description": "Indicates the query returned results successfully",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "status",
+ "data"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": {},
+ "description": "Empty result metadata (may contain hints or paging details)",
+ "properties": {},
+ "type": "object"
+ },
+ "id": {
+ "description": "Stable query identifier matching the input query id",
+ "minLength": 1,
+ "type": "string"
+ },
+ "status": {
+ "const": "empty",
+ "description": "Indicates the query returned no matching results",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "status",
+ "data"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "additionalProperties": false,
+ "description": "Error details including message, type, and recovery hints",
+ "properties": {
+ "cwd": {
+ "description": "Working directory relevant to the error",
+ "type": "string"
+ },
+ "error": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "error": {
+ "description": "GitHub API error message",
+ "type": "string"
+ },
+ "hints": {
+ "description": "Provider-specific hints",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "rateLimitRemaining": {
+ "description": "Remaining API requests in the current rate limit window",
+ "type": "number"
+ },
+ "rateLimitReset": {
+ "description": "Rate limit reset time in milliseconds since epoch",
+ "type": "number"
+ },
+ "retryAfter": {
+ "description": "Retry-after delay in seconds",
+ "type": "number"
+ },
+ "scopesSuggestion": {
+ "description": "Suggested scopes needed to resolve the error",
+ "type": "string"
+ },
+ "status": {
+ "description": "HTTP status code",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "type": {
+ "description": "GitHub API error category",
+ "enum": [
+ "http",
+ "graphql",
+ "network",
+ "unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "error",
+ "type"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "Error message or API error object"
+ },
+ "errorCode": {
+ "description": "Tool error code",
+ "type": "string"
+ },
+ "errorType": {
+ "description": "Tool-specific error type (e.g. symbol_not_found, size_limit)",
+ "type": "string"
+ },
+ "hints": {
+ "description": "Recovery hints",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "resolvedPath": {
+ "description": "Resolved filesystem path involved in the error",
+ "type": "string"
+ },
+ "searchRadius": {
+ "description": "LSP search radius when symbol not found",
+ "type": "number"
+ }
+ },
+ "required": [
+ "error"
+ ],
+ "type": "object"
+ },
+ "id": {
+ "description": "Stable query identifier matching the input query id",
+ "minLength": 1,
+ "type": "string"
+ },
+ "status": {
+ "const": "error",
+ "description": "Indicates the query encountered an error",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "status",
+ "data"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "results"
+ ],
+ "type": "object"
+}