@@ -49,6 +49,7 @@ namespace GitHub.Copilot.SDK;
4949[ JsonDerivedType ( typeof ( SessionCompactionCompleteEvent ) , "session.compaction_complete" ) ]
5050[ JsonDerivedType ( typeof ( SessionCompactionStartEvent ) , "session.compaction_start" ) ]
5151[ JsonDerivedType ( typeof ( SessionContextChangedEvent ) , "session.context_changed" ) ]
52+ [ JsonDerivedType ( typeof ( SessionCustomAgentsUpdatedEvent ) , "session.custom_agents_updated" ) ]
5253[ JsonDerivedType ( typeof ( SessionErrorEvent ) , "session.error" ) ]
5354[ JsonDerivedType ( typeof ( SessionExtensionsLoadedEvent ) , "session.extensions_loaded" ) ]
5455[ JsonDerivedType ( typeof ( SessionHandoffEvent ) , "session.handoff" ) ]
@@ -978,6 +979,18 @@ public partial class SessionSkillsLoadedEvent : SessionEvent
978979 public required SessionSkillsLoadedData Data { get ; set ; }
979980}
980981
982+ /// <summary>Represents the <c>session.custom_agents_updated</c> event.</summary>
983+ public partial class SessionCustomAgentsUpdatedEvent : SessionEvent
984+ {
985+ /// <inheritdoc />
986+ [ JsonIgnore ]
987+ public override string Type => "session.custom_agents_updated" ;
988+
989+ /// <summary>The <c>session.custom_agents_updated</c> event payload.</summary>
990+ [ JsonPropertyName ( "data" ) ]
991+ public required SessionCustomAgentsUpdatedData Data { get ; set ; }
992+ }
993+
981994/// <summary>Represents the <c>session.mcp_servers_loaded</c> event.</summary>
982995public partial class SessionMcpServersLoadedEvent : SessionEvent
983996{
@@ -1954,6 +1967,11 @@ public partial class SkillInvokedData
19541967 [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
19551968 [ JsonPropertyName ( "pluginVersion" ) ]
19561969 public string ? PluginVersion { get ; set ; }
1970+
1971+ /// <summary>Description of the skill from its SKILL.md frontmatter.</summary>
1972+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
1973+ [ JsonPropertyName ( "description" ) ]
1974+ public string ? Description { get ; set ; }
19571975}
19581976
19591977/// <summary>Sub-agent startup details including parent tool call and agent information.</summary>
@@ -1990,6 +2008,26 @@ public partial class SubagentCompletedData
19902008 /// <summary>Human-readable display name of the sub-agent.</summary>
19912009 [ JsonPropertyName ( "agentDisplayName" ) ]
19922010 public required string AgentDisplayName { get ; set ; }
2011+
2012+ /// <summary>Model used by the sub-agent.</summary>
2013+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2014+ [ JsonPropertyName ( "model" ) ]
2015+ public string ? Model { get ; set ; }
2016+
2017+ /// <summary>Total number of tool calls made by the sub-agent.</summary>
2018+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2019+ [ JsonPropertyName ( "totalToolCalls" ) ]
2020+ public double ? TotalToolCalls { get ; set ; }
2021+
2022+ /// <summary>Total tokens (input + output) consumed by the sub-agent.</summary>
2023+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2024+ [ JsonPropertyName ( "totalTokens" ) ]
2025+ public double ? TotalTokens { get ; set ; }
2026+
2027+ /// <summary>Wall-clock duration of the sub-agent execution in milliseconds.</summary>
2028+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2029+ [ JsonPropertyName ( "durationMs" ) ]
2030+ public double ? DurationMs { get ; set ; }
19932031}
19942032
19952033/// <summary>Sub-agent failure details including error message and agent information.</summary>
@@ -2010,6 +2048,26 @@ public partial class SubagentFailedData
20102048 /// <summary>Error message describing why the sub-agent failed.</summary>
20112049 [ JsonPropertyName ( "error" ) ]
20122050 public required string Error { get ; set ; }
2051+
2052+ /// <summary>Model used by the sub-agent (if any model calls succeeded before failure).</summary>
2053+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2054+ [ JsonPropertyName ( "model" ) ]
2055+ public string ? Model { get ; set ; }
2056+
2057+ /// <summary>Total number of tool calls made before the sub-agent failed.</summary>
2058+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2059+ [ JsonPropertyName ( "totalToolCalls" ) ]
2060+ public double ? TotalToolCalls { get ; set ; }
2061+
2062+ /// <summary>Total tokens (input + output) consumed before the sub-agent failed.</summary>
2063+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2064+ [ JsonPropertyName ( "totalTokens" ) ]
2065+ public double ? TotalTokens { get ; set ; }
2066+
2067+ /// <summary>Wall-clock duration of the sub-agent execution in milliseconds.</summary>
2068+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
2069+ [ JsonPropertyName ( "durationMs" ) ]
2070+ public double ? DurationMs { get ; set ; }
20132071}
20142072
20152073/// <summary>Custom agent selection details including name and available tools.</summary>
@@ -2387,6 +2445,22 @@ public partial class SessionSkillsLoadedData
23872445 public required SessionSkillsLoadedDataSkillsItem [ ] Skills { get ; set ; }
23882446}
23892447
2448+ /// <summary>Event payload for <see cref="SessionCustomAgentsUpdatedEvent"/>.</summary>
2449+ public partial class SessionCustomAgentsUpdatedData
2450+ {
2451+ /// <summary>Array of loaded custom agent metadata.</summary>
2452+ [ JsonPropertyName ( "agents" ) ]
2453+ public required SessionCustomAgentsUpdatedDataAgentsItem [ ] Agents { get ; set ; }
2454+
2455+ /// <summary>Non-fatal warnings from agent loading.</summary>
2456+ [ JsonPropertyName ( "warnings" ) ]
2457+ public required string [ ] Warnings { get ; set ; }
2458+
2459+ /// <summary>Fatal errors from agent loading.</summary>
2460+ [ JsonPropertyName ( "errors" ) ]
2461+ public required string [ ] Errors { get ; set ; }
2462+ }
2463+
23902464/// <summary>Event payload for <see cref="SessionMcpServersLoadedEvent"/>.</summary>
23912465public partial class SessionMcpServersLoadedData
23922466{
@@ -3541,6 +3615,43 @@ public partial class SessionSkillsLoadedDataSkillsItem
35413615 public string ? Path { get ; set ; }
35423616}
35433617
3618+ /// <summary>Nested data type for <c>SessionCustomAgentsUpdatedDataAgentsItem</c>.</summary>
3619+ public partial class SessionCustomAgentsUpdatedDataAgentsItem
3620+ {
3621+ /// <summary>Unique identifier for the agent.</summary>
3622+ [ JsonPropertyName ( "id" ) ]
3623+ public required string Id { get ; set ; }
3624+
3625+ /// <summary>Internal name of the agent.</summary>
3626+ [ JsonPropertyName ( "name" ) ]
3627+ public required string Name { get ; set ; }
3628+
3629+ /// <summary>Human-readable display name.</summary>
3630+ [ JsonPropertyName ( "displayName" ) ]
3631+ public required string DisplayName { get ; set ; }
3632+
3633+ /// <summary>Description of what the agent does.</summary>
3634+ [ JsonPropertyName ( "description" ) ]
3635+ public required string Description { get ; set ; }
3636+
3637+ /// <summary>Source location: user, project, inherited, remote, or plugin.</summary>
3638+ [ JsonPropertyName ( "source" ) ]
3639+ public required string Source { get ; set ; }
3640+
3641+ /// <summary>List of tool names available to this agent.</summary>
3642+ [ JsonPropertyName ( "tools" ) ]
3643+ public required string [ ] Tools { get ; set ; }
3644+
3645+ /// <summary>Whether the agent can be selected by the user.</summary>
3646+ [ JsonPropertyName ( "userInvocable" ) ]
3647+ public required bool UserInvocable { get ; set ; }
3648+
3649+ /// <summary>Model override for this agent, if set.</summary>
3650+ [ JsonIgnore ( Condition = JsonIgnoreCondition . WhenWritingNull ) ]
3651+ [ JsonPropertyName ( "model" ) ]
3652+ public string ? Model { get ; set ; }
3653+ }
3654+
35443655/// <summary>Nested data type for <c>SessionMcpServersLoadedDataServersItem</c>.</summary>
35453656public partial class SessionMcpServersLoadedDataServersItem
35463657{
@@ -3898,6 +4009,9 @@ public enum SessionExtensionsLoadedDataExtensionsItemStatus
38984009[ JsonSerializable ( typeof ( SessionCompactionStartEvent ) ) ]
38994010[ JsonSerializable ( typeof ( SessionContextChangedData ) ) ]
39004011[ JsonSerializable ( typeof ( SessionContextChangedEvent ) ) ]
4012+ [ JsonSerializable ( typeof ( SessionCustomAgentsUpdatedData ) ) ]
4013+ [ JsonSerializable ( typeof ( SessionCustomAgentsUpdatedDataAgentsItem ) ) ]
4014+ [ JsonSerializable ( typeof ( SessionCustomAgentsUpdatedEvent ) ) ]
39014015[ JsonSerializable ( typeof ( SessionErrorData ) ) ]
39024016[ JsonSerializable ( typeof ( SessionErrorEvent ) ) ]
39034017[ JsonSerializable ( typeof ( SessionEvent ) ) ]
0 commit comments