synwire_dap/lib.rs
1//! # synwire-dap
2//!
3//! Debug Adapter Protocol (DAP) integration for the Synwire agent framework.
4//!
5//! This crate provides a full DAP client, Content-Length wire codec, adapter
6//! registry, and an agent plugin that exposes debugging as a set of tools.
7//!
8//! ## Architecture
9//!
10//! ```text
11//! DapPlugin (Plugin trait)
12//! -> DapClient (high-level session management)
13//! -> DapTransport (child process + framed I/O + request correlation)
14//! -> ContentLengthCodec (tokio-util codec)
15//! ```
16//!
17//! ## Usage
18//!
19//! Register the [`plugin::DapPlugin`] with an agent to expose DAP tools:
20//!
21//! - `debug.status` -- current session state
22//! - `debug.launch` / `debug.attach` -- start debugging
23//! - `debug.set_breakpoints` -- set source breakpoints
24//! - `debug.continue`, `debug.step_over`, `debug.step_in`, `debug.step_out`, `debug.pause` -- execution control
25//! - `debug.threads`, `debug.stack_trace`, `debug.variables` -- inspection
26//! - `debug.evaluate` -- expression evaluation
27//! - `debug.disconnect` -- end session
28
29#![forbid(unsafe_code)]
30
31pub mod client;
32pub mod codec;
33pub mod config;
34pub mod error;
35pub mod plugin;
36pub mod registry;
37pub mod tools;
38pub mod transport;
39
40pub use client::{DapClient, DapSessionState};
41pub use config::{DapAdapterConfig, DapPluginConfig};
42pub use error::DapError;
43pub use plugin::DapPlugin;
44pub use registry::{DebugAdapterEntry, DebugAdapterRegistry};