[Priroda] Add DAP initialized and launch handshake
diff --git a/src/tools/miri/priroda/src/frontend/dap.rs b/src/tools/miri/priroda/src/frontend/dap.rs
index 31a1447..9d6d77f 100644
--- a/src/tools/miri/priroda/src/frontend/dap.rs
+++ b/src/tools/miri/priroda/src/frontend/dap.rs
@@ -1,7 +1,7 @@
 use std::io::{self, BufReader, BufWriter};
 
 use emmy_dap_types::prelude::types::Capabilities;
-use emmy_dap_types::prelude::{Command, Request, ResponseBody, Server};
+use emmy_dap_types::prelude::{Command, Event, Request, ResponseBody, Server};
 use miri::{InterpResult, interp_ok};
 
 use crate::debugger::PrirodaContext;
@@ -68,10 +68,17 @@ fn dispatch_request(&mut self, request: Request) -> ServerResult<DispatchOutcome
         match &request.command {
             Command::Initialize(_) =>
                 self.handle_initialize(request).map(|()| DispatchOutcome::Continue),
+            Command::Launch(_) => self.handle_launch(request).map(|()| DispatchOutcome::Continue),
             _ => self.handle_unsupported_request(request).map(|()| DispatchOutcome::Exit),
         }
     }
 
+    /// FIXME: connect launch arguments to Priroda's session model.
+    fn handle_launch(&mut self, request: Request) -> ServerResult {
+        let response = request.success(ResponseBody::Launch);
+        self.server.respond(response)
+    }
+
     /// FIXME: grow capabilities as Priroda adds DAP features.
     fn handle_initialize(&mut self, request: Request) -> ServerResult {
         // Advertise configurationDone support ahead of its handler so VS Code
@@ -80,7 +87,8 @@ fn handle_initialize(&mut self, request: Request) -> ServerResult {
             supports_configuration_done_request: Some(true),
             ..Capabilities::default()
         }));
-        self.server.respond(response)
+        self.server.respond(response)?;
+        self.server.send_event(Event::Initialized)
     }
 
     fn handle_unsupported_request(&mut self, request: Request) -> ServerResult {
diff --git a/src/tools/miri/priroda/tests/ui/dap_initialize.stdout b/src/tools/miri/priroda/tests/ui/dap_initialize.stdout
index 4773b87..595a84f 100644
--- a/src/tools/miri/priroda/tests/ui/dap_initialize.stdout
+++ b/src/tools/miri/priroda/tests/ui/dap_initialize.stdout
@@ -1,3 +1,5 @@
 Content-Length: 143
 
-{"seq":1,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"supportsConfigurationDoneRequest":true},"error":null}
\ No newline at end of file
+{"seq":1,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"supportsConfigurationDoneRequest":true},"error":null}Content-Length: 46
+
+{"seq":2,"type":"event","event":"initialized"}
\ No newline at end of file
diff --git a/src/tools/miri/priroda/tests/ui/dap_initialize_launch.rs b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.rs
new file mode 100644
index 0000000..c1f1ed6
--- /dev/null
+++ b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.rs
@@ -0,0 +1,3 @@
+//@ compile-flags: --dap
+
+fn main() {}
diff --git a/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdin b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdin
new file mode 100644
index 0000000..ae4ee94
--- /dev/null
+++ b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdin
@@ -0,0 +1,5 @@
+Content-Length: 85
+
+{"seq":1,"type":"request","command":"initialize","arguments":{"adapterID":"priroda"}}Content-Length: 60
+
+{"seq":2,"type":"request","command":"launch","arguments":{}}
\ No newline at end of file
diff --git a/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdout b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdout
new file mode 100644
index 0000000..1bf9732
--- /dev/null
+++ b/src/tools/miri/priroda/tests/ui/dap_initialize_launch.stdout
@@ -0,0 +1,7 @@
+Content-Length: 143
+
+{"seq":1,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"supportsConfigurationDoneRequest":true},"error":null}Content-Length: 46
+
+{"seq":2,"type":"event","event":"initialized"}Content-Length: 90
+
+{"seq":3,"type":"response","request_seq":2,"success":true,"command":"launch","error":null}
\ No newline at end of file