This is the server for the Cloud Assistant project. The server performs two functions
It acts as a "proxy" between the Web Client and Runme.
It serves the Web Client.
It is the "Agent" orchestrating calls to the OpenAI server and post processing the results
Runme provides a gRPC serve and relies on bidirectional streaming
for the Execute Request.
Since BIDI streaming isn't supported in the browser, we use websockets to allow bidirectional streaming.
The server provides a WebsocketHandler for Execute requests that handles requests by invoking Runme.
Runme is used by linking it in; rather than running it as a separate process and communicating via gRPC.
This currently depends on a forked version of Runme available in
runmedev/runme#767.