HTTP dap
The OpenAPI 3.1 document is generated beside this preview as openapi.json. Schemas document current behavior; they never validate runtime requests. The built-in server is loopback/host-guarded and has no authentication.
dapReconnect
Reconnect the shared DAP connection
dapReconnect description
Recovers the shared BrightScript debug connection after it has dropped. This is not a socket reconnect: recovery exits the channel, sideloads the app again with remote debugging enabled and performs a new handshake, so thread IDs and breakpoint verification state are not preserved. Returns 404 when there is no active DAP connection to recover. The route is not exempt from the server's 30-second request timeout, and a recovery includes a full rebuild and sideload, so it often gets a 408 response with the shared error body. The recovery continues on the server after a 408; do not retry immediately, because a second request supersedes the one still in progress.
dapReconnect contract
POST /api/dap/reconnect
Responses: 200, 404, 500; middleware can also return 403, 408 or 429.
dapReconnect see also
dapListThreads
List device threads
dapListThreads description
Lists the BrightScript debug threads and their stop state. Requires a fully stopped app; a running app returns 409. Each thread has a namespaced ID such as brs:0, a raw stopReason code with its resolved stopReasonName, and the device's code snippet.
dapListThreads contract
GET /api/dap/threads
Responses: 200, 400, 404, 409, 500; middleware can also return 403, 408 or 429.
dapListThreads see also
dapListThreads query.sessionId
Debug session ID; omitted uses the active debug session.
dapSelectThread
Select the active thread
dapSelectThread description
Sets the session's default BrightScript thread for thread-scoped requests that omit a thread ID. This is server-side session state, not a device command, and the selection is cleared the next time the app stops.
dapSelectThread contract
POST /api/dap/thread/select
Responses: 200, 400, 404, 409; middleware can also return 403, 408 or 429.
dapSelectThread see also
dapSelectThread body.threadId
Namespaced thread ID from the threads route, for example brs:1.
dapSelectThread body.sessionId
Debug session ID; omitted uses the active debug session.
dapGetThreadStopReason
Get the selected thread's stop reason
dapGetThreadStopReason description
Reads a thread's cached stop reason and code snippet without sending a device command. Returns the raw stopReason code and its resolved stopReasonName; stopReasonDetail appears only when the device supplied it.
dapGetThreadStopReason contract
GET /api/dap/thread/stop-reason
Responses: 200, 400, 404, 409; middleware can also return 403, 408 or 429.
dapGetThreadStopReason see also
dapGetThreadStopReason query.sessionId
Debug session ID; omitted uses the active debug session.
dapGetThreadStopReason query.threadId
Namespaced thread ID, for example brs:0; omitted uses the session's default thread.
dapGetVariables
Get variables at a thread/frame/path
dapGetVariables description
Inspects a BrightScript variable or container through the device's VARIABLES command. Requires a stopped app. The listing starts with the addressed value itself, followed by its children when it is a container. A malformed path string returns 400 with code MALFORMED_PATH, and a path the device rejects at the current stop location returns 404 with code PATH_NOT_FOUND. A listing that contains a Long_Integer value cannot be encoded as JSON and returns 500.
dapGetVariables contract
GET /api/dap/variables
Responses: 200, 400, 404, 409, 500; middleware can also return 403, 408 or 429.
dapGetVariables see also
dapGetVariables query.sessionId
Debug session ID; omitted uses the active debug session.
dapGetVariables query.threadId
Namespaced thread ID, for example brs:0; omitted uses the session's default thread.
dapGetVariables query.frameIndex
Stack frame, innermost first; 0 is the current frame.
dapGetVariables query.path
Variable path as a dotted or bracketed string such as m.top.children[0].text, or repeated path values giving the segments. Omit it to list the current frame's top-level locals.
dapGetVariables query.includeVirtualKeys
Include SceneGraph $-prefixed pseudo-fields; requires protocol 3.3.0 or later. Only the exact value true enables it.
Updated about 4 hours ago