closes#3950closes#3702
What this is doing:
I am refactoring the services on the .NET runtime and attempting to clarify the naming and organization.
I added this doc to help capture the naming and concepts.
AgentRuntime / Worker should work similar to the python version and enables running the whole agent system in one process. For remote the system uses the versions of the services in the grpc folder.
lots of other bug fixes/threading cleanup - passing cancellation token throughout
Services update clarifies the naming and roles:
Worker: Hosts the Agents and is a client to the Gateway
Gateway:
-- RPC gateway for the other services APIs
-- Provides an RPC bridge between the workers and the Event Bus
Registry: keeps track of the agents in the system and which events they can handle
AgentState: persistent state for agents
* remove OAgents lib from sln
* add Event back to agent_worker_proto
* regenerate python proto, remove RegisterAgent addition
* add cloudevent.proto to the python generation task
* host agent runtime API and docs
* graceful shutdown of worker
* HostAgentRuntime --> WorkerAgentRuntimeHost
* Add unit tests for worker runtime
* Fix bug in worker runtime adding sender filed to proto. Documentation.
* wip
* Fix unit tests; refactor API
* fix formatting
* Fix
* Update
* Make source field optional in Event proto
* Refactor subscription in single threaded agent runtime
* Update proto to support response result type
* Support RPC and subscription-based broadcast for Python host and worker runtime.
* format