* Subclass AgentThread so that different agents have their own threads with their own typed settings.
* Address PR comment.
* Add unit tests for base abstract threads
* Fix style warning
* Fix stlying
* FIx and suppress warnings as needed.
* Remove covariant thread response types and fix some styling.
* Remove unecessary json property name attributes and make OrchestratingAgentThread private
* Fix break from merge from main.
* Fix formatting
* Fix deserialization bug in Memory sample
* Remove thread deletion from basic samples.
* Remove public constructors for thread subclasses and add more factory methods to concrete agent types.
* Update AgentProxy thread constructors to be internal as well.
* Revert AgentProxyThread to internal
* Change AIContextProvider to internal set
* Change conversation id and message store properties to internal set
* Update styling.
* Seal various thread types.
* Add thread type check for thread deletion
* Fix tests after latest merge from main
* Add thread type checks for thread deletion.
---------
Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
* Add AIContextProvider support
* Address feedback.
* Address PR comments.
* Switch to valuetask and remove parallel calls for AIContextProvider
* Remove Model from ModelInvokingAsync method name
* Remove agent thread id again and remove it from context provider interface
* Add AIContextProvider serialization support to AgentThread and update sample to show this feature
* Address PR comments
* Improve memory sample
* Update sample comment.
* Remove AggregateAIContextProvider for now since it makes too many assumptions. We can include it later as a sample if needed.
* Update AIContextProviders to have an Invoked method instead of MessagesAddingAsync.
* Remove unused using.
* Address PR comments.
* Address PR comment.
* Update comment.
* Update comment
* Address PR comments.
* Update AIAgent,Run to take IEnumerable instead of IReadonlyCollection
* Address PR comment.
* Cast to IReadonlyCollection since this is typically all that is required to avoid unecessary allocation.
* Update OrchestratingAgent protected methods as well.