This migrates from typing imports to primitives per the following feedback from @lamchau:
:nit: i think our patterns here don't realize as of python 3.9+ we generally don't need Dict, List, and Tuple anymore we can use the primitives (dict, list, and tuple respectively)
This also fixes inconsistency in our provider completion signature with regards to:
tools: more precisely allow any amount of tools as often there are none
…signature
This migrates from typing imports to primitives per the following feedback from @lamchau:
This also fixes inconsistency in our provider completion signature with regards to:
tools: more precisely allow any amount of tools as often there are none
tools: Tuple[Tool] = field(factory=tuple, converter=tuple)
tools: tuple[Tool, ...] = field(factory=tuple, converter=tuple)
kwargs: providers were inconsistent on accepting this, which could lead to small bugs