@@ -172,6 +172,9 @@ protected static void AddDefaultHeaders(HttpRequestMessage request, ClientOption
172172 request . Headers . Add ( "X-Stainless-Lang" , "csharp" ) ;
173173 request . Headers . Add ( "X-Stainless-OS" , GetOS ( ) ) ;
174174 request . Headers . Add ( "X-Stainless-Package-Version" , GetPackageVersion ( ) ) ;
175+ var ( runtimeName , runtimeVersion ) = GetRuntime ( ) ;
176+ request . Headers . Add ( "X-Stainless-Runtime" , runtimeName ) ;
177+ request . Headers . Add ( "X-Stainless-Runtime-Version" , runtimeVersion ) ;
175178
176179 if ( options . APIKey != null )
177180 {
@@ -216,4 +219,24 @@ static string GetPackageVersion() =>
216219 . GetCustomAttribute < AssemblyInformationalVersionAttribute > ( )
217220 ? . InformationalVersion
218221 ?? "unknown" ;
222+
223+ static Runtime GetRuntime ( )
224+ {
225+ var runtimeDescription = RuntimeInformation . FrameworkDescription ;
226+ var lastSpaceIndex = runtimeDescription . LastIndexOf ( ' ' ) ;
227+ if ( lastSpaceIndex == - 1 )
228+ {
229+ return new ( ) { Name = runtimeDescription , Version = "unknown" } ;
230+ }
231+
232+ var name = runtimeDescription [ ..lastSpaceIndex ] . Trim ( ) ;
233+ var version = runtimeDescription [ ( lastSpaceIndex + 1 ) ..] . Trim ( ) ;
234+ return new ( )
235+ {
236+ Name = name . Length == 0 ? "unknown" : name ,
237+ Version = version . Length == 0 ? "unknown" : version ,
238+ } ;
239+ }
240+
241+ readonly record struct Runtime ( string Name , string Version ) ;
219242}
0 commit comments