| { | |
| "$schema": "https://json-schema.org/draft/2020-12/schema", | |
| "title": "zxdb-cli Protocol Schema", | |
| "description": "JSON schema for requests and responses in the zxdb-cli UDS protocol", | |
| "version": 16, | |
| "requests": { | |
| "$defs": { | |
| "AsyncBacktraceRequest": { | |
| "description": "Request asynchronous backtrace (async task tree) for a process.", | |
| "properties": { | |
| "command": { | |
| "const": "async-backtrace", | |
| "default": "async-backtrace", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "pid": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Pid" | |
| } | |
| }, | |
| "title": "AsyncBacktraceRequest", | |
| "type": "object" | |
| }, | |
| "AttachRequest": { | |
| "description": "Request to attach to a process.", | |
| "properties": { | |
| "command": { | |
| "const": "attach", | |
| "default": "attach", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "filter": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "string" | |
| } | |
| ], | |
| "title": "Filter" | |
| } | |
| }, | |
| "required": [ | |
| "filter" | |
| ], | |
| "title": "AttachRequest", | |
| "type": "object" | |
| }, | |
| "BreakRequest": { | |
| "description": "Request to set or delete a breakpoint at a file and line.\n\nThe file path must be fully qualified from the workspace root, an absolute\npath, or exist relative to the current working directory.\nTo delete a breakpoint, set delete=True and ensure the file and line match\nan existing breakpoint.\nTo view currently installed breakpoints, use the get-state command.", | |
| "properties": { | |
| "command": { | |
| "const": "break", | |
| "default": "break", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "file": { | |
| "title": "File", | |
| "type": "string" | |
| }, | |
| "line": { | |
| "title": "Line", | |
| "type": "integer" | |
| }, | |
| "delete": { | |
| "default": false, | |
| "title": "Delete", | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "file", | |
| "line" | |
| ], | |
| "title": "BreakRequest", | |
| "type": "object" | |
| }, | |
| "ContinueRequest": { | |
| "description": "Request to resume execution of a thread.", | |
| "properties": { | |
| "command": { | |
| "const": "continue", | |
| "default": "continue", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "single_thread": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Single Thread" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id" | |
| ], | |
| "title": "ContinueRequest", | |
| "type": "object" | |
| }, | |
| "DetachRequest": { | |
| "description": "Request to detach from a process.", | |
| "properties": { | |
| "command": { | |
| "const": "detach", | |
| "default": "detach", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "pid": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Pid" | |
| }, | |
| "all": { | |
| "default": false, | |
| "title": "All", | |
| "type": "boolean" | |
| } | |
| }, | |
| "title": "DetachRequest", | |
| "type": "object" | |
| }, | |
| "EvaluateRequest": { | |
| "description": "Request evaluation of an expression in a given stack frame.", | |
| "properties": { | |
| "command": { | |
| "const": "evaluate", | |
| "default": "evaluate", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "frame_index": { | |
| "default": 0, | |
| "title": "Frame Index", | |
| "type": "integer" | |
| }, | |
| "expression": { | |
| "title": "Expression", | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id", | |
| "expression" | |
| ], | |
| "title": "EvaluateRequest", | |
| "type": "object" | |
| }, | |
| "FinishRequest": { | |
| "description": "Request to finish execution of current frame (step out).", | |
| "properties": { | |
| "command": { | |
| "const": "finish", | |
| "default": "finish", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "single_thread": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Single Thread" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id" | |
| ], | |
| "title": "FinishRequest", | |
| "type": "object" | |
| }, | |
| "GetStateRequest": { | |
| "description": "Request current state of threads.", | |
| "properties": { | |
| "command": { | |
| "const": "get-state", | |
| "default": "get-state", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| } | |
| }, | |
| "title": "GetStateRequest", | |
| "type": "object" | |
| }, | |
| "HelloRequest": { | |
| "description": "Initial handshake request to verify protocol version.", | |
| "properties": { | |
| "command": { | |
| "const": "hello", | |
| "default": "hello", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "version": { | |
| "title": "Version", | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "version" | |
| ], | |
| "title": "HelloRequest", | |
| "type": "object" | |
| }, | |
| "NextRequest": { | |
| "description": "Request to step over to the next line of code.", | |
| "properties": { | |
| "command": { | |
| "const": "next", | |
| "default": "next", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "single_thread": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Single Thread" | |
| }, | |
| "granularity": { | |
| "anyOf": [ | |
| { | |
| "enum": [ | |
| "statement", | |
| "line", | |
| "instruction" | |
| ], | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Granularity" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id" | |
| ], | |
| "title": "NextRequest", | |
| "type": "object" | |
| }, | |
| "PauseRequest": { | |
| "description": "Request to pause execution of a thread or process.", | |
| "properties": { | |
| "command": { | |
| "const": "pause", | |
| "default": "pause", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Thread Id" | |
| }, | |
| "pid": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Pid" | |
| } | |
| }, | |
| "title": "PauseRequest", | |
| "type": "object" | |
| }, | |
| "StackTraceRequest": { | |
| "description": "Request stack trace for a thread or all threads in a process.", | |
| "properties": { | |
| "command": { | |
| "const": "stack-trace", | |
| "default": "stack-trace", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Thread Id" | |
| }, | |
| "pid": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Pid" | |
| }, | |
| "raw": { | |
| "default": false, | |
| "title": "Raw", | |
| "type": "boolean" | |
| } | |
| }, | |
| "title": "StackTraceRequest", | |
| "type": "object" | |
| }, | |
| "StartRequest": { | |
| "description": "Request to start the debugging session.", | |
| "properties": { | |
| "command": { | |
| "const": "start", | |
| "default": "start", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "port": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Port" | |
| }, | |
| "connect": { | |
| "default": false, | |
| "title": "Connect", | |
| "type": "boolean" | |
| } | |
| }, | |
| "title": "StartRequest", | |
| "type": "object" | |
| }, | |
| "StepInRequest": { | |
| "description": "Request to step into a function call.", | |
| "properties": { | |
| "command": { | |
| "const": "step-in", | |
| "default": "step-in", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "single_thread": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Single Thread" | |
| }, | |
| "target_id": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Target Id" | |
| }, | |
| "granularity": { | |
| "anyOf": [ | |
| { | |
| "enum": [ | |
| "statement", | |
| "line", | |
| "instruction" | |
| ], | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Granularity" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id" | |
| ], | |
| "title": "StepInRequest", | |
| "type": "object" | |
| }, | |
| "StopRequest": { | |
| "description": "Request to stop the daemon and session.", | |
| "properties": { | |
| "command": { | |
| "const": "stop", | |
| "default": "stop", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| } | |
| }, | |
| "title": "StopRequest", | |
| "type": "object" | |
| }, | |
| "ThreadsRequest": { | |
| "description": "Request list of threads.", | |
| "properties": { | |
| "command": { | |
| "const": "threads", | |
| "default": "threads", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| } | |
| }, | |
| "title": "ThreadsRequest", | |
| "type": "object" | |
| }, | |
| "VariablesRequest": { | |
| "description": "Request variables for a frame in a thread.", | |
| "properties": { | |
| "command": { | |
| "const": "variables", | |
| "default": "variables", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "frame_index": { | |
| "default": 0, | |
| "title": "Frame Index", | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id" | |
| ], | |
| "title": "VariablesRequest", | |
| "type": "object" | |
| }, | |
| "WaitForEventRequest": { | |
| "description": "Request to wait for a debug adapter event.", | |
| "properties": { | |
| "command": { | |
| "const": "wait-for-event", | |
| "default": "wait-for-event", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "title": "Last Seen Seq", | |
| "type": "integer" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "timeout": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Timeout" | |
| } | |
| }, | |
| "required": [ | |
| "last_seen_seq" | |
| ], | |
| "title": "WaitForEventRequest", | |
| "type": "object" | |
| }, | |
| "WatchRequest": { | |
| "description": "Request to set or delete a data breakpoint (watchpoint) on a variable,\nexpression, or memory address.\n\n`name` is the variable or expression to watch when setting a watchpoint,\nor the `data_id` of the watchpoint to remove when `delete=True`. Active\nwatchpoints, including both their `data_id` and `expression`, are listed\nin `get-state`.\n\nWhen setting a watchpoint, `thread_id` and `access_type` are required\n(`frame_index` is optional, defaulting to 0) to identify the target process\nand stack frame for evaluation. If the thread is running, the daemon\nautomatically pauses it first.\n\nTo watch a memory address, pass a dereferenced pointer expression\n(e.g., `*(uint32_t*)0x1234`).\nTo clear all active watchpoints, set `clear=True`.", | |
| "properties": { | |
| "command": { | |
| "const": "watch", | |
| "default": "watch", | |
| "title": "Command", | |
| "type": "string" | |
| }, | |
| "last_seen_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Last Seen Seq" | |
| }, | |
| "ack_seq": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Ack Seq" | |
| }, | |
| "name": { | |
| "default": "", | |
| "title": "Name", | |
| "type": "string" | |
| }, | |
| "thread_id": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Thread Id" | |
| }, | |
| "frame_index": { | |
| "default": 0, | |
| "title": "Frame Index", | |
| "type": "integer" | |
| }, | |
| "access_type": { | |
| "anyOf": [ | |
| { | |
| "enum": [ | |
| "write", | |
| "readWrite" | |
| ], | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Access Type" | |
| }, | |
| "condition": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Condition" | |
| }, | |
| "hit_condition": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Hit Condition" | |
| }, | |
| "delete": { | |
| "default": false, | |
| "title": "Delete", | |
| "type": "boolean" | |
| }, | |
| "clear": { | |
| "default": false, | |
| "title": "Clear", | |
| "type": "boolean" | |
| } | |
| }, | |
| "title": "WatchRequest", | |
| "type": "object" | |
| } | |
| }, | |
| "discriminator": { | |
| "mapping": { | |
| "async-backtrace": "#/$defs/AsyncBacktraceRequest", | |
| "attach": "#/$defs/AttachRequest", | |
| "break": "#/$defs/BreakRequest", | |
| "continue": "#/$defs/ContinueRequest", | |
| "detach": "#/$defs/DetachRequest", | |
| "evaluate": "#/$defs/EvaluateRequest", | |
| "finish": "#/$defs/FinishRequest", | |
| "get-state": "#/$defs/GetStateRequest", | |
| "hello": "#/$defs/HelloRequest", | |
| "next": "#/$defs/NextRequest", | |
| "pause": "#/$defs/PauseRequest", | |
| "stack-trace": "#/$defs/StackTraceRequest", | |
| "start": "#/$defs/StartRequest", | |
| "step-in": "#/$defs/StepInRequest", | |
| "stop": "#/$defs/StopRequest", | |
| "threads": "#/$defs/ThreadsRequest", | |
| "variables": "#/$defs/VariablesRequest", | |
| "wait-for-event": "#/$defs/WaitForEventRequest", | |
| "watch": "#/$defs/WatchRequest" | |
| }, | |
| "propertyName": "command" | |
| }, | |
| "oneOf": [ | |
| { | |
| "$ref": "#/$defs/AsyncBacktraceRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/AttachRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/BreakRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/ContinueRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/DetachRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/EvaluateRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/FinishRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/GetStateRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/HelloRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/NextRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/PauseRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/StackTraceRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/StartRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/StepInRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/StopRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/ThreadsRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/VariablesRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/WaitForEventRequest" | |
| }, | |
| { | |
| "$ref": "#/$defs/WatchRequest" | |
| } | |
| ] | |
| }, | |
| "responses": { | |
| "$defs": { | |
| "AsyncBacktraceResponse": { | |
| "description": "Response containing async tasks for a process.", | |
| "properties": { | |
| "process_id": { | |
| "title": "Process Id", | |
| "type": "integer" | |
| }, | |
| "tasks": { | |
| "items": { | |
| "$ref": "#/$defs/AsyncTaskNode" | |
| }, | |
| "title": "Tasks", | |
| "type": "array" | |
| } | |
| }, | |
| "required": [ | |
| "process_id" | |
| ], | |
| "title": "AsyncBacktraceResponse", | |
| "type": "object" | |
| }, | |
| "AsyncTaskNode": { | |
| "description": "Represents a node in the async task tree.", | |
| "properties": { | |
| "id": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Id" | |
| }, | |
| "name": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Name" | |
| }, | |
| "file": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "File" | |
| }, | |
| "line": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Line" | |
| }, | |
| "children": { | |
| "items": { | |
| "$ref": "#/$defs/AsyncTaskNode" | |
| }, | |
| "title": "Children", | |
| "type": "array" | |
| } | |
| }, | |
| "title": "AsyncTaskNode", | |
| "type": "object" | |
| }, | |
| "EvaluateResponse": { | |
| "additionalProperties": false, | |
| "description": "Unified response containing the evaluation result and optional children.", | |
| "properties": { | |
| "result": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Result" | |
| }, | |
| "type": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Type" | |
| } | |
| }, | |
| "title": "EvaluateResponse", | |
| "type": "object" | |
| }, | |
| "GetStateResponse": { | |
| "description": "Response for get-state command containing thread list, active\nprocesses, and active breakpoints.", | |
| "properties": { | |
| "threads": { | |
| "items": { | |
| "$ref": "#/$defs/ThreadInfo" | |
| }, | |
| "title": "Threads", | |
| "type": "array" | |
| }, | |
| "processes": { | |
| "anyOf": [ | |
| { | |
| "additionalProperties": { | |
| "type": "string" | |
| }, | |
| "type": "object" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Processes" | |
| }, | |
| "breakpoints": { | |
| "anyOf": [ | |
| { | |
| "additionalProperties": { | |
| "items": { | |
| "type": "integer" | |
| }, | |
| "type": "array" | |
| }, | |
| "type": "object" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Breakpoints" | |
| }, | |
| "watchpoints": { | |
| "anyOf": [ | |
| { | |
| "additionalProperties": { | |
| "$ref": "#/$defs/WatchpointInfo" | |
| }, | |
| "type": "object" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Watchpoints" | |
| } | |
| }, | |
| "required": [ | |
| "threads" | |
| ], | |
| "title": "GetStateResponse", | |
| "type": "object" | |
| }, | |
| "ProcessStackTraceResponse": { | |
| "description": "Response containing stack traces for all threads in a process.", | |
| "properties": { | |
| "process_id": { | |
| "title": "Process Id", | |
| "type": "integer" | |
| }, | |
| "stacks": { | |
| "items": { | |
| "$ref": "#/$defs/ThreadStackTraceResponse" | |
| }, | |
| "title": "Stacks", | |
| "type": "array" | |
| } | |
| }, | |
| "required": [ | |
| "process_id", | |
| "stacks" | |
| ], | |
| "title": "ProcessStackTraceResponse", | |
| "type": "object" | |
| }, | |
| "Source": { | |
| "description": "A Source is a descriptor for source code.\n\nAttributes:\n name: The short name of the source.\n path: The path of the source to be shown in the UI.\n source_reference: If the value > 0 the contents of the source must be\n retrieved through the `source` request.\n origin: The origin of this source (e.g., 'internal module', 'inlined content\n from source map').", | |
| "properties": { | |
| "name": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Name" | |
| }, | |
| "path": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Path" | |
| }, | |
| "sourceReference": { | |
| "anyOf": [ | |
| { | |
| "type": "integer" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Sourcereference" | |
| }, | |
| "origin": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Origin" | |
| } | |
| }, | |
| "title": "Source", | |
| "type": "object" | |
| }, | |
| "StackFrame": { | |
| "description": "A stack frame representation exposing frame_index instead of DAP frameId.", | |
| "properties": { | |
| "frame_index": { | |
| "title": "Frame Index", | |
| "type": "integer" | |
| }, | |
| "name": { | |
| "title": "Name", | |
| "type": "string" | |
| }, | |
| "line": { | |
| "title": "Line", | |
| "type": "integer" | |
| }, | |
| "column": { | |
| "title": "Column", | |
| "type": "integer" | |
| }, | |
| "source": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/$defs/Source" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null | |
| }, | |
| "presentation_hint": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Presentation Hint" | |
| } | |
| }, | |
| "required": [ | |
| "frame_index", | |
| "name", | |
| "line", | |
| "column" | |
| ], | |
| "title": "StackFrame", | |
| "type": "object" | |
| }, | |
| "ThreadInfo": { | |
| "description": "Information about a single thread.", | |
| "properties": { | |
| "id": { | |
| "title": "Id", | |
| "type": "integer" | |
| }, | |
| "name": { | |
| "title": "Name", | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name" | |
| ], | |
| "title": "ThreadInfo", | |
| "type": "object" | |
| }, | |
| "ThreadStackTraceResponse": { | |
| "description": "Stack trace for a single thread in a process.", | |
| "properties": { | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "stack_frames": { | |
| "items": { | |
| "$ref": "#/$defs/StackFrame" | |
| }, | |
| "title": "Stack Frames", | |
| "type": "array" | |
| }, | |
| "total_frames": { | |
| "title": "Total Frames", | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "thread_id", | |
| "stack_frames", | |
| "total_frames" | |
| ], | |
| "title": "ThreadStackTraceResponse", | |
| "type": "object" | |
| }, | |
| "WatchpointInfo": { | |
| "description": "Information about an active data breakpoint (watchpoint).\n\n`verified` and `message` reflect the latest status reported by zxdb, either\nfrom the `setDataBreakpoints` response or from a later asynchronous\n`breakpoint` \"changed\" event.", | |
| "properties": { | |
| "data_id": { | |
| "title": "Data Id", | |
| "type": "string" | |
| }, | |
| "expression": { | |
| "title": "Expression", | |
| "type": "string" | |
| }, | |
| "thread_id": { | |
| "title": "Thread Id", | |
| "type": "integer" | |
| }, | |
| "frame_index": { | |
| "title": "Frame Index", | |
| "type": "integer" | |
| }, | |
| "access_type": { | |
| "enum": [ | |
| "write", | |
| "readWrite" | |
| ], | |
| "title": "Access Type", | |
| "type": "string" | |
| }, | |
| "condition": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Condition" | |
| }, | |
| "hit_condition": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Hit Condition" | |
| }, | |
| "verified": { | |
| "default": false, | |
| "title": "Verified", | |
| "type": "boolean" | |
| }, | |
| "message": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Message" | |
| } | |
| }, | |
| "required": [ | |
| "data_id", | |
| "expression", | |
| "thread_id", | |
| "frame_index", | |
| "access_type" | |
| ], | |
| "title": "WatchpointInfo", | |
| "type": "object" | |
| } | |
| }, | |
| "description": "Standard response wrapper.", | |
| "properties": { | |
| "success": { | |
| "title": "Success", | |
| "type": "boolean" | |
| }, | |
| "message": { | |
| "anyOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Message" | |
| }, | |
| "body": { | |
| "anyOf": [ | |
| { | |
| "$ref": "#/$defs/GetStateResponse" | |
| }, | |
| { | |
| "$ref": "#/$defs/EvaluateResponse" | |
| }, | |
| { | |
| "$ref": "#/$defs/ThreadStackTraceResponse" | |
| }, | |
| { | |
| "$ref": "#/$defs/ProcessStackTraceResponse" | |
| }, | |
| { | |
| "$ref": "#/$defs/AsyncBacktraceResponse" | |
| }, | |
| { | |
| "additionalProperties": true, | |
| "type": "object" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Body" | |
| }, | |
| "events": { | |
| "anyOf": [ | |
| { | |
| "items": { | |
| "additionalProperties": true, | |
| "type": "object" | |
| }, | |
| "type": "array" | |
| }, | |
| { | |
| "type": "null" | |
| } | |
| ], | |
| "default": null, | |
| "title": "Events" | |
| } | |
| }, | |
| "required": [ | |
| "success" | |
| ], | |
| "title": "Response", | |
| "type": "object" | |
| } | |
| } |