@@ -413,3 +413,150 @@ public class PingResponse
413413 public long Timestamp { get ; set ; }
414414 public int ? ProtocolVersion { get ; set ; }
415415}
416+
417+ /// <summary>
418+ /// Response from status.get
419+ /// </summary>
420+ public class GetStatusResponse
421+ {
422+ /// <summary>Package version (e.g., "1.0.0")</summary>
423+ [ JsonPropertyName ( "version" ) ]
424+ public string Version { get ; set ; } = string . Empty ;
425+
426+ /// <summary>Protocol version for SDK compatibility</summary>
427+ [ JsonPropertyName ( "protocolVersion" ) ]
428+ public int ProtocolVersion { get ; set ; }
429+ }
430+
431+ /// <summary>
432+ /// Response from auth.getStatus
433+ /// </summary>
434+ public class GetAuthStatusResponse
435+ {
436+ /// <summary>Whether the user is authenticated</summary>
437+ [ JsonPropertyName ( "isAuthenticated" ) ]
438+ public bool IsAuthenticated { get ; set ; }
439+
440+ /// <summary>Authentication type (user, env, gh-cli, hmac, api-key, token)</summary>
441+ [ JsonPropertyName ( "authType" ) ]
442+ public string ? AuthType { get ; set ; }
443+
444+ /// <summary>GitHub host URL</summary>
445+ [ JsonPropertyName ( "host" ) ]
446+ public string ? Host { get ; set ; }
447+
448+ /// <summary>User login name</summary>
449+ [ JsonPropertyName ( "login" ) ]
450+ public string ? Login { get ; set ; }
451+
452+ /// <summary>Human-readable status message</summary>
453+ [ JsonPropertyName ( "statusMessage" ) ]
454+ public string ? StatusMessage { get ; set ; }
455+ }
456+
457+ /// <summary>
458+ /// Model vision-specific limits
459+ /// </summary>
460+ public class ModelVisionLimits
461+ {
462+ [ JsonPropertyName ( "supported_media_types" ) ]
463+ public List < string > SupportedMediaTypes { get ; set ; } = new ( ) ;
464+
465+ [ JsonPropertyName ( "max_prompt_images" ) ]
466+ public int MaxPromptImages { get ; set ; }
467+
468+ [ JsonPropertyName ( "max_prompt_image_size" ) ]
469+ public int MaxPromptImageSize { get ; set ; }
470+ }
471+
472+ /// <summary>
473+ /// Model limits
474+ /// </summary>
475+ public class ModelLimits
476+ {
477+ [ JsonPropertyName ( "max_prompt_tokens" ) ]
478+ public int ? MaxPromptTokens { get ; set ; }
479+
480+ [ JsonPropertyName ( "max_context_window_tokens" ) ]
481+ public int MaxContextWindowTokens { get ; set ; }
482+
483+ [ JsonPropertyName ( "vision" ) ]
484+ public ModelVisionLimits ? Vision { get ; set ; }
485+ }
486+
487+ /// <summary>
488+ /// Model support flags
489+ /// </summary>
490+ public class ModelSupports
491+ {
492+ [ JsonPropertyName ( "vision" ) ]
493+ public bool Vision { get ; set ; }
494+ }
495+
496+ /// <summary>
497+ /// Model capabilities and limits
498+ /// </summary>
499+ public class ModelCapabilities
500+ {
501+ [ JsonPropertyName ( "supports" ) ]
502+ public ModelSupports Supports { get ; set ; } = new ( ) ;
503+
504+ [ JsonPropertyName ( "limits" ) ]
505+ public ModelLimits Limits { get ; set ; } = new ( ) ;
506+ }
507+
508+ /// <summary>
509+ /// Model policy state
510+ /// </summary>
511+ public class ModelPolicy
512+ {
513+ [ JsonPropertyName ( "state" ) ]
514+ public string State { get ; set ; } = string . Empty ;
515+
516+ [ JsonPropertyName ( "terms" ) ]
517+ public string Terms { get ; set ; } = string . Empty ;
518+ }
519+
520+ /// <summary>
521+ /// Model billing information
522+ /// </summary>
523+ public class ModelBilling
524+ {
525+ [ JsonPropertyName ( "multiplier" ) ]
526+ public double Multiplier { get ; set ; }
527+ }
528+
529+ /// <summary>
530+ /// Information about an available model
531+ /// </summary>
532+ public class ModelInfo
533+ {
534+ /// <summary>Model identifier (e.g., "claude-sonnet-4.5")</summary>
535+ [ JsonPropertyName ( "id" ) ]
536+ public string Id { get ; set ; } = string . Empty ;
537+
538+ /// <summary>Display name</summary>
539+ [ JsonPropertyName ( "name" ) ]
540+ public string Name { get ; set ; } = string . Empty ;
541+
542+ /// <summary>Model capabilities and limits</summary>
543+ [ JsonPropertyName ( "capabilities" ) ]
544+ public ModelCapabilities Capabilities { get ; set ; } = new ( ) ;
545+
546+ /// <summary>Policy state</summary>
547+ [ JsonPropertyName ( "policy" ) ]
548+ public ModelPolicy ? Policy { get ; set ; }
549+
550+ /// <summary>Billing information</summary>
551+ [ JsonPropertyName ( "billing" ) ]
552+ public ModelBilling ? Billing { get ; set ; }
553+ }
554+
555+ /// <summary>
556+ /// Response from models.list
557+ /// </summary>
558+ public class GetModelsResponse
559+ {
560+ [ JsonPropertyName ( "models" ) ]
561+ public List < ModelInfo > Models { get ; set ; } = new ( ) ;
562+ }
0 commit comments