github.com/anthropics/anthropic-sdk-go@v1.70.1/betasessionthread.go (about) 1 // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. 2 3 package anthropic 4 5 import ( 6 "context" 7 "encoding/json" 8 "errors" 9 "fmt" 10 "net/http" 11 "net/url" 12 "slices" 13 "time" 14 15 "github.com/anthropics/anthropic-sdk-go/internal/apijson" 16 "github.com/anthropics/anthropic-sdk-go/internal/apiquery" 17 "github.com/anthropics/anthropic-sdk-go/internal/requestconfig" 18 "github.com/anthropics/anthropic-sdk-go/option" 19 "github.com/anthropics/anthropic-sdk-go/packages/pagination" 20 "github.com/anthropics/anthropic-sdk-go/packages/param" 21 "github.com/anthropics/anthropic-sdk-go/packages/respjson" 22 ) 23 24 // BetaSessionThreadService contains methods and other services that help with 25 // interacting with the anthropic API. 26 // 27 // Note, unlike clients, this service does not read variables from the environment 28 // automatically. You should not instantiate this service directly, and instead use 29 // the [NewBetaSessionThreadService] method instead. 30 type BetaSessionThreadService struct { 31 Options []option.RequestOption 32 Events BetaSessionThreadEventService 33 } 34 35 // NewBetaSessionThreadService generates a new service that applies the given 36 // options to each request. These options are applied after the parent client's 37 // options (if there is one), and before any request-specific options. 38 func NewBetaSessionThreadService(opts ...option.RequestOption) (r BetaSessionThreadService) { 39 r = BetaSessionThreadService{} 40 r.Options = opts 41 r.Events = NewBetaSessionThreadEventService(opts...) 42 return 43 } 44 45 // Get Session Thread 46 func (r *BetaSessionThreadService) Get(ctx context.Context, threadID string, params BetaSessionThreadGetParams, opts ...option.RequestOption) (res *BetaManagedAgentsSessionThread, err error) { 47 for _, v := range params.Betas { 48 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 49 } 50 if !param.IsOmitted(params.WorkspaceID) { 51 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 52 } 53 opts = slices.Concat(r.Options, opts) 54 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...) 55 if params.SessionID == "" { 56 err = errors.New("missing required session_id parameter") 57 return nil, err 58 } 59 if threadID == "" { 60 err = errors.New("missing required thread_id parameter") 61 return nil, err 62 } 63 path := fmt.Sprintf("v1/sessions/%s/threads/%s?beta=true", params.SessionID, threadID) 64 err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) 65 return res, err 66 } 67 68 // List Session Threads 69 func (r *BetaSessionThreadService) List(ctx context.Context, sessionID string, params BetaSessionThreadListParams, opts ...option.RequestOption) (res *pagination.PageCursor[BetaManagedAgentsSessionThread], err error) { 70 var raw *http.Response 71 for _, v := range params.Betas { 72 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 73 } 74 if !param.IsOmitted(params.WorkspaceID) { 75 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 76 } 77 opts = slices.Concat(r.Options, opts) 78 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01"), option.WithResponseInto(&raw)}, opts...) 79 if sessionID == "" { 80 err = errors.New("missing required session_id parameter") 81 return nil, err 82 } 83 path := fmt.Sprintf("v1/sessions/%s/threads?beta=true", sessionID) 84 cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, params, &res, opts...) 85 if err != nil { 86 return nil, err 87 } 88 err = cfg.Execute() 89 if err != nil { 90 return nil, err 91 } 92 res.SetPageConfig(cfg, raw) 93 return res, nil 94 } 95 96 // List Session Threads 97 func (r *BetaSessionThreadService) ListAutoPaging(ctx context.Context, sessionID string, params BetaSessionThreadListParams, opts ...option.RequestOption) *pagination.PageCursorAutoPager[BetaManagedAgentsSessionThread] { 98 return pagination.NewPageCursorAutoPager(r.List(ctx, sessionID, params, opts...)) 99 } 100 101 // Archive Session Thread 102 func (r *BetaSessionThreadService) Archive(ctx context.Context, threadID string, params BetaSessionThreadArchiveParams, opts ...option.RequestOption) (res *BetaManagedAgentsSessionThread, err error) { 103 for _, v := range params.Betas { 104 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 105 } 106 if !param.IsOmitted(params.WorkspaceID) { 107 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 108 } 109 opts = slices.Concat(r.Options, opts) 110 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...) 111 if params.SessionID == "" { 112 err = errors.New("missing required session_id parameter") 113 return nil, err 114 } 115 if threadID == "" { 116 err = errors.New("missing required thread_id parameter") 117 return nil, err 118 } 119 path := fmt.Sprintf("v1/sessions/%s/threads/%s/archive?beta=true", params.SessionID, threadID) 120 err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) 121 return res, err 122 } 123 124 // An execution thread within a `session`. Each session has one primary thread plus 125 // zero or more child threads spawned by the coordinator. 126 type BetaManagedAgentsSessionThread struct { 127 // Unique identifier for this thread. 128 ID string `json:"id" api:"required"` 129 // The resolved agent a session thread runs: a saved-agent snapshot, the platform 130 // advisor entry, or an inline-defined (ephemeral) agent snapshot. 131 Agent BetaManagedAgentsSessionThreadAgentUnion `json:"agent" api:"required"` 132 // A timestamp in RFC 3339 format 133 ArchivedAt time.Time `json:"archived_at" api:"required" format:"date-time"` 134 // A timestamp in RFC 3339 format 135 CreatedAt time.Time `json:"created_at" api:"required" format:"date-time"` 136 // Parent thread that spawned this thread. Null for the primary thread. 137 ParentThreadID string `json:"parent_thread_id" api:"required"` 138 // The session this thread belongs to. 139 SessionID string `json:"session_id" api:"required"` 140 // Timing statistics for a session thread. 141 Stats BetaManagedAgentsSessionThreadStats `json:"stats" api:"required"` 142 // SessionThreadStatus enum 143 // 144 // Any of "running", "idle", "rescheduling", "terminated". 145 Status BetaManagedAgentsSessionThreadStatus `json:"status" api:"required"` 146 // Any of "session_thread". 147 Type BetaManagedAgentsSessionThreadType `json:"type" api:"required"` 148 // A timestamp in RFC 3339 format 149 UpdatedAt time.Time `json:"updated_at" api:"required" format:"date-time"` 150 // Cumulative token usage for a session thread across all turns. 151 Usage BetaManagedAgentsSessionThreadUsage `json:"usage" api:"required"` 152 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 153 JSON struct { 154 ID respjson.Field 155 Agent respjson.Field 156 ArchivedAt respjson.Field 157 CreatedAt respjson.Field 158 ParentThreadID respjson.Field 159 SessionID respjson.Field 160 Stats respjson.Field 161 Status respjson.Field 162 Type respjson.Field 163 UpdatedAt respjson.Field 164 Usage respjson.Field 165 ExtraFields map[string]respjson.Field 166 raw string 167 } `json:"-"` 168 } 169 170 // Returns the unmodified JSON received from the API 171 func (r BetaManagedAgentsSessionThread) RawJSON() string { return r.JSON.raw } 172 func (r *BetaManagedAgentsSessionThread) UnmarshalJSON(data []byte) error { 173 return apijson.UnmarshalRoot(data, r) 174 } 175 176 // BetaManagedAgentsSessionThreadAgentUnion contains all possible properties and 177 // values from [BetaManagedAgentsSessionThreadAgent], [BetaManagedAgentsAdvisor]. 178 // 179 // Use the [BetaManagedAgentsSessionThreadAgentUnion.AsAny] method to switch on the 180 // variant. 181 // 182 // Use the methods beginning with 'As' to cast the union to one of its variants. 183 type BetaManagedAgentsSessionThreadAgentUnion struct { 184 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 185 ID string `json:"id"` 186 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 187 Description string `json:"description"` 188 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 189 MCPServers []BetaManagedAgentsMCPServerURLDefinition `json:"mcp_servers"` 190 // This field is a union of [BetaManagedAgentsModelConfig], [string] 191 Model BetaManagedAgentsSessionThreadAgentUnionModel `json:"model"` 192 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 193 Name string `json:"name"` 194 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 195 Skills []BetaManagedAgentsSessionThreadAgentSkillUnion `json:"skills"` 196 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 197 System string `json:"system"` 198 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 199 Tools []BetaManagedAgentsSessionThreadAgentToolUnion `json:"tools"` 200 // Any of "agent", "advisor". 201 Type string `json:"type"` 202 // This field is from variant [BetaManagedAgentsSessionThreadAgent]. 203 Version int64 `json:"version"` 204 JSON struct { 205 ID respjson.Field 206 Description respjson.Field 207 MCPServers respjson.Field 208 Model respjson.Field 209 Name respjson.Field 210 Skills respjson.Field 211 System respjson.Field 212 Tools respjson.Field 213 Type respjson.Field 214 Version respjson.Field 215 raw string 216 } `json:"-"` 217 } 218 219 // anyBetaManagedAgentsSessionThreadAgent is implemented by each variant of 220 // [BetaManagedAgentsSessionThreadAgentUnion] to add type safety for the return 221 // type of [BetaManagedAgentsSessionThreadAgentUnion.AsAny] 222 type anyBetaManagedAgentsSessionThreadAgent interface { 223 implBetaManagedAgentsSessionThreadAgentUnion() 224 } 225 226 func (BetaManagedAgentsSessionThreadAgent) implBetaManagedAgentsSessionThreadAgentUnion() {} 227 func (BetaManagedAgentsAdvisor) implBetaManagedAgentsSessionThreadAgentUnion() {} 228 229 // Use the following switch statement to find the correct variant 230 // 231 // switch variant := BetaManagedAgentsSessionThreadAgentUnion.AsAny().(type) { 232 // case anthropic.BetaManagedAgentsSessionThreadAgent: 233 // case anthropic.BetaManagedAgentsAdvisor: 234 // default: 235 // fmt.Errorf("no variant present") 236 // } 237 func (u BetaManagedAgentsSessionThreadAgentUnion) AsAny() anyBetaManagedAgentsSessionThreadAgent { 238 switch u.Type { 239 case "agent": 240 return u.AsAgent() 241 case "advisor": 242 return u.AsAdvisor() 243 } 244 return nil 245 } 246 247 func (u BetaManagedAgentsSessionThreadAgentUnion) AsAgent() (v BetaManagedAgentsSessionThreadAgent) { 248 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 249 return 250 } 251 252 func (u BetaManagedAgentsSessionThreadAgentUnion) AsAdvisor() (v BetaManagedAgentsAdvisor) { 253 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 254 return 255 } 256 257 // Returns the unmodified JSON received from the API 258 func (u BetaManagedAgentsSessionThreadAgentUnion) RawJSON() string { return u.JSON.raw } 259 260 func (r *BetaManagedAgentsSessionThreadAgentUnion) UnmarshalJSON(data []byte) error { 261 return apijson.UnmarshalRoot(data, r) 262 } 263 264 // BetaManagedAgentsSessionThreadAgentUnionModel is an implicit subunion of 265 // [BetaManagedAgentsSessionThreadAgentUnion]. 266 // BetaManagedAgentsSessionThreadAgentUnionModel provides convenient access to the 267 // sub-properties of the union. 268 // 269 // For type safety it is recommended to directly use a variant of the 270 // [BetaManagedAgentsSessionThreadAgentUnion]. 271 // 272 // If the underlying value is not a json object, one of the following properties 273 // will be valid: OfString] 274 type BetaManagedAgentsSessionThreadAgentUnionModel struct { 275 // This field will be present if the value is a [string] instead of an object. 276 OfString string `json:",inline"` 277 // This field is from variant [BetaManagedAgentsModelConfig]. 278 ID BetaManagedAgentsModel `json:"id"` 279 // This field is from variant [BetaManagedAgentsModelConfig]. 280 Effort BetaManagedAgentsModelConfigEffortUnion `json:"effort"` 281 // This field is from variant [BetaManagedAgentsModelConfig]. 282 InferenceGeo string `json:"inference_geo"` 283 // This field is from variant [BetaManagedAgentsModelConfig]. 284 Speed BetaManagedAgentsModelConfigSpeed `json:"speed"` 285 JSON struct { 286 OfString respjson.Field 287 ID respjson.Field 288 Effort respjson.Field 289 InferenceGeo respjson.Field 290 Speed respjson.Field 291 raw string 292 } `json:"-"` 293 } 294 295 func (r *BetaManagedAgentsSessionThreadAgentUnionModel) UnmarshalJSON(data []byte) error { 296 return apijson.UnmarshalRoot(data, r) 297 } 298 299 type BetaManagedAgentsSessionThreadType string 300 301 const ( 302 BetaManagedAgentsSessionThreadTypeSessionThread BetaManagedAgentsSessionThreadType = "session_thread" 303 ) 304 305 // Timing statistics for a session thread. 306 type BetaManagedAgentsSessionThreadStats struct { 307 // Cumulative time in seconds the thread spent actively running. Excludes idle 308 // time. 309 ActiveSeconds float64 `json:"active_seconds"` 310 // Elapsed time since thread creation in seconds. For archived threads, frozen at 311 // the final update. 312 DurationSeconds float64 `json:"duration_seconds"` 313 // Time in seconds for the thread to begin running. Zero for child threads, which 314 // start immediately. 315 StartupSeconds float64 `json:"startup_seconds"` 316 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 317 JSON struct { 318 ActiveSeconds respjson.Field 319 DurationSeconds respjson.Field 320 StartupSeconds respjson.Field 321 ExtraFields map[string]respjson.Field 322 raw string 323 } `json:"-"` 324 } 325 326 // Returns the unmodified JSON received from the API 327 func (r BetaManagedAgentsSessionThreadStats) RawJSON() string { return r.JSON.raw } 328 func (r *BetaManagedAgentsSessionThreadStats) UnmarshalJSON(data []byte) error { 329 return apijson.UnmarshalRoot(data, r) 330 } 331 332 // SessionThreadStatus enum 333 type BetaManagedAgentsSessionThreadStatus string 334 335 const ( 336 BetaManagedAgentsSessionThreadStatusRunning BetaManagedAgentsSessionThreadStatus = "running" 337 BetaManagedAgentsSessionThreadStatusIdle BetaManagedAgentsSessionThreadStatus = "idle" 338 BetaManagedAgentsSessionThreadStatusRescheduling BetaManagedAgentsSessionThreadStatus = "rescheduling" 339 BetaManagedAgentsSessionThreadStatusTerminated BetaManagedAgentsSessionThreadStatus = "terminated" 340 ) 341 342 // Cumulative token usage for a session thread across all turns. 343 type BetaManagedAgentsSessionThreadUsage struct { 344 // Cumulative time in seconds this thread spent in running status. Equal to 345 // `stats.active_seconds`; surfaced here so a thread's usage carries every quantity 346 // its cost is priced on. 347 ActiveSeconds float64 `json:"active_seconds"` 348 // Prompt-cache creation token usage broken down by cache lifetime. 349 CacheCreation BetaManagedAgentsCacheCreationUsage `json:"cache_creation"` 350 // Total tokens read from prompt cache. 351 CacheReadInputTokens int64 `json:"cache_read_input_tokens"` 352 // Total input tokens consumed across all turns. 353 InputTokens int64 `json:"input_tokens"` 354 // A monetary amount in a specific currency. 355 ListCost BetaMonetaryAmount `json:"list_cost" api:"nullable"` 356 // Total output tokens generated across all turns. 357 OutputTokens int64 `json:"output_tokens"` 358 // Cumulative count of server-executed tool invocations, broken down by tool. 359 ServerToolUse BetaManagedAgentsServerToolUsage `json:"server_tool_use" api:"nullable"` 360 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 361 JSON struct { 362 ActiveSeconds respjson.Field 363 CacheCreation respjson.Field 364 CacheReadInputTokens respjson.Field 365 InputTokens respjson.Field 366 ListCost respjson.Field 367 OutputTokens respjson.Field 368 ServerToolUse respjson.Field 369 ExtraFields map[string]respjson.Field 370 raw string 371 } `json:"-"` 372 } 373 374 // Returns the unmodified JSON received from the API 375 func (r BetaManagedAgentsSessionThreadUsage) RawJSON() string { return r.JSON.raw } 376 func (r *BetaManagedAgentsSessionThreadUsage) UnmarshalJSON(data []byte) error { 377 return apijson.UnmarshalRoot(data, r) 378 } 379 380 // BetaManagedAgentsStreamSessionThreadEventsUnion contains all possible properties 381 // and values from [BetaManagedAgentsUserMessageEvent], 382 // [BetaManagedAgentsUserInterruptEvent], 383 // [BetaManagedAgentsUserToolConfirmationEvent], 384 // [BetaManagedAgentsUserCustomToolResultEvent], 385 // [BetaManagedAgentsAgentCustomToolUseEvent], 386 // [BetaManagedAgentsAgentMessageEvent], [BetaManagedAgentsAgentThinkingEvent], 387 // [BetaManagedAgentsAgentMCPToolUseEvent], 388 // [BetaManagedAgentsAgentMCPToolResultEvent], 389 // [BetaManagedAgentsAgentToolUseEvent], [BetaManagedAgentsAgentToolResultEvent], 390 // [BetaManagedAgentsAgentThreadMessageReceivedEvent], 391 // [BetaManagedAgentsAgentThreadMessageSentEvent], 392 // [BetaManagedAgentsAgentThreadContextCompactedEvent], 393 // [BetaManagedAgentsSessionErrorEvent], 394 // [BetaManagedAgentsSessionStatusRescheduledEvent], 395 // [BetaManagedAgentsSessionStatusRunningEvent], 396 // [BetaManagedAgentsSessionStatusIdleEvent], 397 // [BetaManagedAgentsSessionStatusTerminatedEvent], 398 // [BetaManagedAgentsSessionThreadCreatedEvent], 399 // [BetaManagedAgentsSpanOutcomeEvaluationStartEvent], 400 // [BetaManagedAgentsSpanOutcomeEvaluationEndEvent], 401 // [BetaManagedAgentsSpanModelRequestStartEvent], 402 // [BetaManagedAgentsSpanModelRequestEndEvent], 403 // [BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent], 404 // [BetaManagedAgentsUserDefineOutcomeEvent], 405 // [BetaManagedAgentsSessionDeletedEvent], 406 // [BetaManagedAgentsSessionThreadStatusRunningEvent], 407 // [BetaManagedAgentsSessionThreadStatusIdleEvent], 408 // [BetaManagedAgentsSessionThreadStatusTerminatedEvent], 409 // [BetaManagedAgentsUserToolResultEvent], 410 // [BetaManagedAgentsSessionThreadStatusRescheduledEvent], 411 // [BetaManagedAgentsSessionUpdatedEvent], [BetaManagedAgentsStartEvent], 412 // [BetaManagedAgentsDeltaEvent], [BetaManagedAgentsSystemMessageEvent], 413 // [BetaManagedAgentsSessionUsageEvent]. 414 // 415 // Use the [BetaManagedAgentsStreamSessionThreadEventsUnion.AsAny] method to switch 416 // on the variant. 417 // 418 // Use the methods beginning with 'As' to cast the union to one of its variants. 419 type BetaManagedAgentsStreamSessionThreadEventsUnion struct { 420 ID string `json:"id"` 421 // This field is a union of [[]BetaManagedAgentsUserMessageEventContentUnion], 422 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion], 423 // [[]BetaManagedAgentsAgentMessageEventContentUnion], 424 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion], 425 // [[]BetaManagedAgentsAgentToolResultEventContentUnion], 426 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion], 427 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion], 428 // [[]BetaManagedAgentsUserToolResultEventContentUnion], 429 // [[]BetaManagedAgentsSystemContentBlock] 430 Content BetaManagedAgentsStreamSessionThreadEventsUnionContent `json:"content"` 431 // Any of "user.message", "user.interrupt", "user.tool_confirmation", 432 // "user.custom_tool_result", "agent.custom_tool_use", "agent.message", 433 // "agent.thinking", "agent.mcp_tool_use", "agent.mcp_tool_result", 434 // "agent.tool_use", "agent.tool_result", "agent.thread_message_received", 435 // "agent.thread_message_sent", "agent.thread_context_compacted", "session.error", 436 // "session.status_rescheduled", "session.status_running", "session.status_idle", 437 // "session.status_terminated", "session.thread_created", 438 // "span.outcome_evaluation_start", "span.outcome_evaluation_end", 439 // "span.model_request_start", "span.model_request_end", 440 // "span.outcome_evaluation_ongoing", "user.define_outcome", "session.deleted", 441 // "session.thread_status_running", "session.thread_status_idle", 442 // "session.thread_status_terminated", "user.tool_result", 443 // "session.thread_status_rescheduled", "session.updated", "event_start", 444 // "event_delta", "system.message", "session.usage". 445 Type string `json:"type"` 446 ProcessedAt time.Time `json:"processed_at"` 447 SessionThreadID string `json:"session_thread_id"` 448 Result string `json:"result"` 449 ToolUseID string `json:"tool_use_id"` 450 // This field is from variant [BetaManagedAgentsUserToolConfirmationEvent]. 451 DenyMessage string `json:"deny_message"` 452 // This field is from variant [BetaManagedAgentsUserCustomToolResultEvent]. 453 CustomToolUseID string `json:"custom_tool_use_id"` 454 IsError bool `json:"is_error"` 455 Input any `json:"input"` 456 Name string `json:"name"` 457 // This field is from variant [BetaManagedAgentsAgentMCPToolUseEvent]. 458 MCPServerName string `json:"mcp_server_name"` 459 EvaluatedPermission string `json:"evaluated_permission"` 460 // This field is from variant [BetaManagedAgentsAgentMCPToolResultEvent]. 461 MCPToolUseID string `json:"mcp_tool_use_id"` 462 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 463 FromSessionThreadID string `json:"from_session_thread_id"` 464 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 465 FromAgentName string `json:"from_agent_name"` 466 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 467 ToSessionThreadID string `json:"to_session_thread_id"` 468 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 469 ToAgentName string `json:"to_agent_name"` 470 // This field is from variant [BetaManagedAgentsSessionErrorEvent]. 471 Error BetaManagedAgentsSessionErrorEventErrorUnion `json:"error"` 472 // This field is a union of 473 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 474 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion] 475 StopReason BetaManagedAgentsStreamSessionThreadEventsUnionStopReason `json:"stop_reason"` 476 AgentName string `json:"agent_name"` 477 Iteration int64 `json:"iteration"` 478 OutcomeID string `json:"outcome_id"` 479 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 480 Explanation string `json:"explanation"` 481 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 482 OutcomeEvaluationStartID string `json:"outcome_evaluation_start_id"` 483 // This field is a union of [BetaManagedAgentsSpanModelUsage], 484 // [BetaManagedAgentsSessionUsageSnapshot] 485 Usage BetaManagedAgentsStreamSessionThreadEventsUnionUsage `json:"usage"` 486 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 487 ModelRequestStartID string `json:"model_request_start_id"` 488 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 489 ModelUsage BetaManagedAgentsSpanModelUsage `json:"model_usage"` 490 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 491 Description string `json:"description"` 492 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 493 MaxIterations int64 `json:"max_iterations"` 494 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 495 Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion `json:"rubric"` 496 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 497 Agent BetaManagedAgentsSessionAgent `json:"agent"` 498 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 499 Budget BetaManagedAgentsBudgetLimit `json:"budget"` 500 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 501 Metadata map[string]string `json:"metadata"` 502 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 503 Title string `json:"title"` 504 // This field is from variant [BetaManagedAgentsStartEvent]. 505 Event BetaManagedAgentsStartEventPreviewUnion `json:"event"` 506 // This field is from variant [BetaManagedAgentsDeltaEvent]. 507 Delta BetaManagedAgentsDeltaContent `json:"delta"` 508 // This field is from variant [BetaManagedAgentsDeltaEvent]. 509 EventID string `json:"event_id"` 510 JSON struct { 511 ID respjson.Field 512 Content respjson.Field 513 Type respjson.Field 514 ProcessedAt respjson.Field 515 SessionThreadID respjson.Field 516 Result respjson.Field 517 ToolUseID respjson.Field 518 DenyMessage respjson.Field 519 CustomToolUseID respjson.Field 520 IsError respjson.Field 521 Input respjson.Field 522 Name respjson.Field 523 MCPServerName respjson.Field 524 EvaluatedPermission respjson.Field 525 MCPToolUseID respjson.Field 526 FromSessionThreadID respjson.Field 527 FromAgentName respjson.Field 528 ToSessionThreadID respjson.Field 529 ToAgentName respjson.Field 530 Error respjson.Field 531 StopReason respjson.Field 532 AgentName respjson.Field 533 Iteration respjson.Field 534 OutcomeID respjson.Field 535 Explanation respjson.Field 536 OutcomeEvaluationStartID respjson.Field 537 Usage respjson.Field 538 ModelRequestStartID respjson.Field 539 ModelUsage respjson.Field 540 Description respjson.Field 541 MaxIterations respjson.Field 542 Rubric respjson.Field 543 Agent respjson.Field 544 Budget respjson.Field 545 Metadata respjson.Field 546 Title respjson.Field 547 Event respjson.Field 548 Delta respjson.Field 549 EventID respjson.Field 550 raw string 551 } `json:"-"` 552 } 553 554 // anyBetaManagedAgentsStreamSessionThreadEvents is implemented by each variant of 555 // [BetaManagedAgentsStreamSessionThreadEventsUnion] to add type safety for the 556 // return type of [BetaManagedAgentsStreamSessionThreadEventsUnion.AsAny] 557 type anyBetaManagedAgentsStreamSessionThreadEvents interface { 558 implBetaManagedAgentsStreamSessionThreadEventsUnion() 559 } 560 561 func (BetaManagedAgentsUserMessageEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 562 func (BetaManagedAgentsUserInterruptEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 563 func (BetaManagedAgentsUserToolConfirmationEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 564 } 565 func (BetaManagedAgentsUserCustomToolResultEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 566 } 567 func (BetaManagedAgentsAgentCustomToolUseEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 568 } 569 func (BetaManagedAgentsAgentMessageEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 570 func (BetaManagedAgentsAgentThinkingEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 571 func (BetaManagedAgentsAgentMCPToolUseEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 572 func (BetaManagedAgentsAgentMCPToolResultEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 573 } 574 func (BetaManagedAgentsAgentToolUseEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 575 func (BetaManagedAgentsAgentToolResultEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 576 func (BetaManagedAgentsAgentThreadMessageReceivedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 577 } 578 func (BetaManagedAgentsAgentThreadMessageSentEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 579 } 580 func (BetaManagedAgentsAgentThreadContextCompactedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 581 } 582 func (BetaManagedAgentsSessionErrorEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 583 func (BetaManagedAgentsSessionStatusRescheduledEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 584 } 585 func (BetaManagedAgentsSessionStatusRunningEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 586 } 587 func (BetaManagedAgentsSessionStatusIdleEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 588 } 589 func (BetaManagedAgentsSessionStatusTerminatedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 590 } 591 func (BetaManagedAgentsSessionThreadCreatedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 592 } 593 func (BetaManagedAgentsSpanOutcomeEvaluationStartEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 594 } 595 func (BetaManagedAgentsSpanOutcomeEvaluationEndEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 596 } 597 func (BetaManagedAgentsSpanModelRequestStartEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 598 } 599 func (BetaManagedAgentsSpanModelRequestEndEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 600 } 601 func (BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 602 } 603 func (BetaManagedAgentsUserDefineOutcomeEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 604 } 605 func (BetaManagedAgentsSessionDeletedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 606 func (BetaManagedAgentsSessionThreadStatusRunningEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 607 } 608 func (BetaManagedAgentsSessionThreadStatusIdleEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 609 } 610 func (BetaManagedAgentsSessionThreadStatusTerminatedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 611 } 612 func (BetaManagedAgentsUserToolResultEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 613 func (BetaManagedAgentsSessionThreadStatusRescheduledEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() { 614 } 615 func (BetaManagedAgentsSessionUpdatedEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 616 func (BetaManagedAgentsStartEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 617 func (BetaManagedAgentsDeltaEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 618 func (BetaManagedAgentsSystemMessageEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 619 func (BetaManagedAgentsSessionUsageEvent) implBetaManagedAgentsStreamSessionThreadEventsUnion() {} 620 621 // Use the following switch statement to find the correct variant 622 // 623 // switch variant := BetaManagedAgentsStreamSessionThreadEventsUnion.AsAny().(type) { 624 // case anthropic.BetaManagedAgentsUserMessageEvent: 625 // case anthropic.BetaManagedAgentsUserInterruptEvent: 626 // case anthropic.BetaManagedAgentsUserToolConfirmationEvent: 627 // case anthropic.BetaManagedAgentsUserCustomToolResultEvent: 628 // case anthropic.BetaManagedAgentsAgentCustomToolUseEvent: 629 // case anthropic.BetaManagedAgentsAgentMessageEvent: 630 // case anthropic.BetaManagedAgentsAgentThinkingEvent: 631 // case anthropic.BetaManagedAgentsAgentMCPToolUseEvent: 632 // case anthropic.BetaManagedAgentsAgentMCPToolResultEvent: 633 // case anthropic.BetaManagedAgentsAgentToolUseEvent: 634 // case anthropic.BetaManagedAgentsAgentToolResultEvent: 635 // case anthropic.BetaManagedAgentsAgentThreadMessageReceivedEvent: 636 // case anthropic.BetaManagedAgentsAgentThreadMessageSentEvent: 637 // case anthropic.BetaManagedAgentsAgentThreadContextCompactedEvent: 638 // case anthropic.BetaManagedAgentsSessionErrorEvent: 639 // case anthropic.BetaManagedAgentsSessionStatusRescheduledEvent: 640 // case anthropic.BetaManagedAgentsSessionStatusRunningEvent: 641 // case anthropic.BetaManagedAgentsSessionStatusIdleEvent: 642 // case anthropic.BetaManagedAgentsSessionStatusTerminatedEvent: 643 // case anthropic.BetaManagedAgentsSessionThreadCreatedEvent: 644 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationStartEvent: 645 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationEndEvent: 646 // case anthropic.BetaManagedAgentsSpanModelRequestStartEvent: 647 // case anthropic.BetaManagedAgentsSpanModelRequestEndEvent: 648 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent: 649 // case anthropic.BetaManagedAgentsUserDefineOutcomeEvent: 650 // case anthropic.BetaManagedAgentsSessionDeletedEvent: 651 // case anthropic.BetaManagedAgentsSessionThreadStatusRunningEvent: 652 // case anthropic.BetaManagedAgentsSessionThreadStatusIdleEvent: 653 // case anthropic.BetaManagedAgentsSessionThreadStatusTerminatedEvent: 654 // case anthropic.BetaManagedAgentsUserToolResultEvent: 655 // case anthropic.BetaManagedAgentsSessionThreadStatusRescheduledEvent: 656 // case anthropic.BetaManagedAgentsSessionUpdatedEvent: 657 // case anthropic.BetaManagedAgentsStartEvent: 658 // case anthropic.BetaManagedAgentsDeltaEvent: 659 // case anthropic.BetaManagedAgentsSystemMessageEvent: 660 // case anthropic.BetaManagedAgentsSessionUsageEvent: 661 // default: 662 // fmt.Errorf("no variant present") 663 // } 664 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAny() anyBetaManagedAgentsStreamSessionThreadEvents { 665 switch u.Type { 666 case "user.message": 667 return u.AsUserMessage() 668 case "user.interrupt": 669 return u.AsUserInterrupt() 670 case "user.tool_confirmation": 671 return u.AsUserToolConfirmation() 672 case "user.custom_tool_result": 673 return u.AsUserCustomToolResult() 674 case "agent.custom_tool_use": 675 return u.AsAgentCustomToolUse() 676 case "agent.message": 677 return u.AsAgentMessage() 678 case "agent.thinking": 679 return u.AsAgentThinking() 680 case "agent.mcp_tool_use": 681 return u.AsAgentMCPToolUse() 682 case "agent.mcp_tool_result": 683 return u.AsAgentMCPToolResult() 684 case "agent.tool_use": 685 return u.AsAgentToolUse() 686 case "agent.tool_result": 687 return u.AsAgentToolResult() 688 case "agent.thread_message_received": 689 return u.AsAgentThreadMessageReceived() 690 case "agent.thread_message_sent": 691 return u.AsAgentThreadMessageSent() 692 case "agent.thread_context_compacted": 693 return u.AsAgentThreadContextCompacted() 694 case "session.error": 695 return u.AsSessionError() 696 case "session.status_rescheduled": 697 return u.AsSessionStatusRescheduled() 698 case "session.status_running": 699 return u.AsSessionStatusRunning() 700 case "session.status_idle": 701 return u.AsSessionStatusIdle() 702 case "session.status_terminated": 703 return u.AsSessionStatusTerminated() 704 case "session.thread_created": 705 return u.AsSessionThreadCreated() 706 case "span.outcome_evaluation_start": 707 return u.AsSpanOutcomeEvaluationStart() 708 case "span.outcome_evaluation_end": 709 return u.AsSpanOutcomeEvaluationEnd() 710 case "span.model_request_start": 711 return u.AsSpanModelRequestStart() 712 case "span.model_request_end": 713 return u.AsSpanModelRequestEnd() 714 case "span.outcome_evaluation_ongoing": 715 return u.AsSpanOutcomeEvaluationOngoing() 716 case "user.define_outcome": 717 return u.AsUserDefineOutcome() 718 case "session.deleted": 719 return u.AsSessionDeleted() 720 case "session.thread_status_running": 721 return u.AsSessionThreadStatusRunning() 722 case "session.thread_status_idle": 723 return u.AsSessionThreadStatusIdle() 724 case "session.thread_status_terminated": 725 return u.AsSessionThreadStatusTerminated() 726 case "user.tool_result": 727 return u.AsUserToolResult() 728 case "session.thread_status_rescheduled": 729 return u.AsSessionThreadStatusRescheduled() 730 case "session.updated": 731 return u.AsSessionUpdated() 732 case "event_start": 733 return u.AsEventStart() 734 case "event_delta": 735 return u.AsEventDelta() 736 case "system.message": 737 return u.AsSystemMessage() 738 case "session.usage": 739 return u.AsSessionUsage() 740 } 741 return nil 742 } 743 744 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserMessage() (v BetaManagedAgentsUserMessageEvent) { 745 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 746 return 747 } 748 749 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserInterrupt() (v BetaManagedAgentsUserInterruptEvent) { 750 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 751 return 752 } 753 754 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserToolConfirmation() (v BetaManagedAgentsUserToolConfirmationEvent) { 755 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 756 return 757 } 758 759 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserCustomToolResult() (v BetaManagedAgentsUserCustomToolResultEvent) { 760 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 761 return 762 } 763 764 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentCustomToolUse() (v BetaManagedAgentsAgentCustomToolUseEvent) { 765 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 766 return 767 } 768 769 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentMessage() (v BetaManagedAgentsAgentMessageEvent) { 770 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 771 return 772 } 773 774 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentThinking() (v BetaManagedAgentsAgentThinkingEvent) { 775 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 776 return 777 } 778 779 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentMCPToolUse() (v BetaManagedAgentsAgentMCPToolUseEvent) { 780 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 781 return 782 } 783 784 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentMCPToolResult() (v BetaManagedAgentsAgentMCPToolResultEvent) { 785 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 786 return 787 } 788 789 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentToolUse() (v BetaManagedAgentsAgentToolUseEvent) { 790 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 791 return 792 } 793 794 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentToolResult() (v BetaManagedAgentsAgentToolResultEvent) { 795 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 796 return 797 } 798 799 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentThreadMessageReceived() (v BetaManagedAgentsAgentThreadMessageReceivedEvent) { 800 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 801 return 802 } 803 804 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentThreadMessageSent() (v BetaManagedAgentsAgentThreadMessageSentEvent) { 805 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 806 return 807 } 808 809 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsAgentThreadContextCompacted() (v BetaManagedAgentsAgentThreadContextCompactedEvent) { 810 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 811 return 812 } 813 814 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionError() (v BetaManagedAgentsSessionErrorEvent) { 815 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 816 return 817 } 818 819 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionStatusRescheduled() (v BetaManagedAgentsSessionStatusRescheduledEvent) { 820 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 821 return 822 } 823 824 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionStatusRunning() (v BetaManagedAgentsSessionStatusRunningEvent) { 825 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 826 return 827 } 828 829 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionStatusIdle() (v BetaManagedAgentsSessionStatusIdleEvent) { 830 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 831 return 832 } 833 834 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionStatusTerminated() (v BetaManagedAgentsSessionStatusTerminatedEvent) { 835 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 836 return 837 } 838 839 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionThreadCreated() (v BetaManagedAgentsSessionThreadCreatedEvent) { 840 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 841 return 842 } 843 844 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSpanOutcomeEvaluationStart() (v BetaManagedAgentsSpanOutcomeEvaluationStartEvent) { 845 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 846 return 847 } 848 849 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSpanOutcomeEvaluationEnd() (v BetaManagedAgentsSpanOutcomeEvaluationEndEvent) { 850 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 851 return 852 } 853 854 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSpanModelRequestStart() (v BetaManagedAgentsSpanModelRequestStartEvent) { 855 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 856 return 857 } 858 859 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSpanModelRequestEnd() (v BetaManagedAgentsSpanModelRequestEndEvent) { 860 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 861 return 862 } 863 864 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSpanOutcomeEvaluationOngoing() (v BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) { 865 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 866 return 867 } 868 869 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserDefineOutcome() (v BetaManagedAgentsUserDefineOutcomeEvent) { 870 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 871 return 872 } 873 874 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionDeleted() (v BetaManagedAgentsSessionDeletedEvent) { 875 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 876 return 877 } 878 879 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionThreadStatusRunning() (v BetaManagedAgentsSessionThreadStatusRunningEvent) { 880 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 881 return 882 } 883 884 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionThreadStatusIdle() (v BetaManagedAgentsSessionThreadStatusIdleEvent) { 885 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 886 return 887 } 888 889 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionThreadStatusTerminated() (v BetaManagedAgentsSessionThreadStatusTerminatedEvent) { 890 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 891 return 892 } 893 894 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsUserToolResult() (v BetaManagedAgentsUserToolResultEvent) { 895 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 896 return 897 } 898 899 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionThreadStatusRescheduled() (v BetaManagedAgentsSessionThreadStatusRescheduledEvent) { 900 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 901 return 902 } 903 904 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionUpdated() (v BetaManagedAgentsSessionUpdatedEvent) { 905 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 906 return 907 } 908 909 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsEventStart() (v BetaManagedAgentsStartEvent) { 910 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 911 return 912 } 913 914 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsEventDelta() (v BetaManagedAgentsDeltaEvent) { 915 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 916 return 917 } 918 919 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSystemMessage() (v BetaManagedAgentsSystemMessageEvent) { 920 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 921 return 922 } 923 924 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) AsSessionUsage() (v BetaManagedAgentsSessionUsageEvent) { 925 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 926 return 927 } 928 929 // Returns the unmodified JSON received from the API 930 func (u BetaManagedAgentsStreamSessionThreadEventsUnion) RawJSON() string { return u.JSON.raw } 931 932 func (r *BetaManagedAgentsStreamSessionThreadEventsUnion) UnmarshalJSON(data []byte) error { 933 return apijson.UnmarshalRoot(data, r) 934 } 935 936 // BetaManagedAgentsStreamSessionThreadEventsUnionContent is an implicit subunion 937 // of [BetaManagedAgentsStreamSessionThreadEventsUnion]. 938 // BetaManagedAgentsStreamSessionThreadEventsUnionContent provides convenient 939 // access to the sub-properties of the union. 940 // 941 // For type safety it is recommended to directly use a variant of the 942 // [BetaManagedAgentsStreamSessionThreadEventsUnion]. 943 // 944 // If the underlying value is not a json object, one of the following properties 945 // will be valid: OfBetaManagedAgentsUserMessageEventContentArray 946 // OfBetaManagedAgentsUserCustomToolResultEventContentArray 947 // OfBetaManagedAgentsAgentMessageEventContentArray 948 // OfBetaManagedAgentsAgentMCPToolResultEventContentArray 949 // OfBetaManagedAgentsAgentToolResultEventContentArray 950 // OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray 951 // OfBetaManagedAgentsAgentThreadMessageSentEventContentArray 952 // OfBetaManagedAgentsUserToolResultEventContentArray 953 // OfBetaManagedAgentsSystemContentBlockArray] 954 type BetaManagedAgentsStreamSessionThreadEventsUnionContent struct { 955 // This field will be present if the value is a 956 // [[]BetaManagedAgentsUserMessageEventContentUnion] instead of an object. 957 OfBetaManagedAgentsUserMessageEventContentArray []BetaManagedAgentsUserMessageEventContentUnion `json:",inline"` 958 // This field will be present if the value is a 959 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion] instead of an object. 960 OfBetaManagedAgentsUserCustomToolResultEventContentArray []BetaManagedAgentsUserCustomToolResultEventContentUnion `json:",inline"` 961 // This field will be present if the value is a 962 // [[]BetaManagedAgentsAgentMessageEventContentUnion] instead of an object. 963 OfBetaManagedAgentsAgentMessageEventContentArray []BetaManagedAgentsAgentMessageEventContentUnion `json:",inline"` 964 // This field will be present if the value is a 965 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion] instead of an object. 966 OfBetaManagedAgentsAgentMCPToolResultEventContentArray []BetaManagedAgentsAgentMCPToolResultEventContentUnion `json:",inline"` 967 // This field will be present if the value is a 968 // [[]BetaManagedAgentsAgentToolResultEventContentUnion] instead of an object. 969 OfBetaManagedAgentsAgentToolResultEventContentArray []BetaManagedAgentsAgentToolResultEventContentUnion `json:",inline"` 970 // This field will be present if the value is a 971 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion] instead of an 972 // object. 973 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray []BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion `json:",inline"` 974 // This field will be present if the value is a 975 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion] instead of an 976 // object. 977 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray []BetaManagedAgentsAgentThreadMessageSentEventContentUnion `json:",inline"` 978 // This field will be present if the value is a 979 // [[]BetaManagedAgentsUserToolResultEventContentUnion] instead of an object. 980 OfBetaManagedAgentsUserToolResultEventContentArray []BetaManagedAgentsUserToolResultEventContentUnion `json:",inline"` 981 // This field will be present if the value is a 982 // [[]BetaManagedAgentsSystemContentBlock] instead of an object. 983 OfBetaManagedAgentsSystemContentBlockArray []BetaManagedAgentsSystemContentBlock `json:",inline"` 984 JSON struct { 985 OfBetaManagedAgentsUserMessageEventContentArray respjson.Field 986 OfBetaManagedAgentsUserCustomToolResultEventContentArray respjson.Field 987 OfBetaManagedAgentsAgentMessageEventContentArray respjson.Field 988 OfBetaManagedAgentsAgentMCPToolResultEventContentArray respjson.Field 989 OfBetaManagedAgentsAgentToolResultEventContentArray respjson.Field 990 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray respjson.Field 991 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray respjson.Field 992 OfBetaManagedAgentsUserToolResultEventContentArray respjson.Field 993 OfBetaManagedAgentsSystemContentBlockArray respjson.Field 994 raw string 995 } `json:"-"` 996 } 997 998 func (r *BetaManagedAgentsStreamSessionThreadEventsUnionContent) UnmarshalJSON(data []byte) error { 999 return apijson.UnmarshalRoot(data, r) 1000 } 1001 1002 // BetaManagedAgentsStreamSessionThreadEventsUnionStopReason is an implicit 1003 // subunion of [BetaManagedAgentsStreamSessionThreadEventsUnion]. 1004 // BetaManagedAgentsStreamSessionThreadEventsUnionStopReason provides convenient 1005 // access to the sub-properties of the union. 1006 // 1007 // For type safety it is recommended to directly use a variant of the 1008 // [BetaManagedAgentsStreamSessionThreadEventsUnion]. 1009 type BetaManagedAgentsStreamSessionThreadEventsUnionStopReason struct { 1010 Type string `json:"type"` 1011 // This field is from variant 1012 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 1013 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion]. 1014 EventIDs []string `json:"event_ids"` 1015 JSON struct { 1016 Type respjson.Field 1017 EventIDs respjson.Field 1018 raw string 1019 } `json:"-"` 1020 } 1021 1022 func (r *BetaManagedAgentsStreamSessionThreadEventsUnionStopReason) UnmarshalJSON(data []byte) error { 1023 return apijson.UnmarshalRoot(data, r) 1024 } 1025 1026 // BetaManagedAgentsStreamSessionThreadEventsUnionUsage is an implicit subunion of 1027 // [BetaManagedAgentsStreamSessionThreadEventsUnion]. 1028 // BetaManagedAgentsStreamSessionThreadEventsUnionUsage provides convenient access 1029 // to the sub-properties of the union. 1030 // 1031 // For type safety it is recommended to directly use a variant of the 1032 // [BetaManagedAgentsStreamSessionThreadEventsUnion]. 1033 type BetaManagedAgentsStreamSessionThreadEventsUnionUsage struct { 1034 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 1035 CacheCreationInputTokens int64 `json:"cache_creation_input_tokens"` 1036 CacheReadInputTokens int64 `json:"cache_read_input_tokens"` 1037 InputTokens int64 `json:"input_tokens"` 1038 OutputTokens int64 `json:"output_tokens"` 1039 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 1040 Speed BetaManagedAgentsSpanModelUsageSpeed `json:"speed"` 1041 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 1042 ActiveSeconds float64 `json:"active_seconds"` 1043 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 1044 CacheCreation BetaManagedAgentsCacheCreationUsage `json:"cache_creation"` 1045 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 1046 ListCost BetaMonetaryAmount `json:"list_cost"` 1047 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 1048 ServerToolUse BetaManagedAgentsServerToolUsage `json:"server_tool_use"` 1049 JSON struct { 1050 CacheCreationInputTokens respjson.Field 1051 CacheReadInputTokens respjson.Field 1052 InputTokens respjson.Field 1053 OutputTokens respjson.Field 1054 Speed respjson.Field 1055 ActiveSeconds respjson.Field 1056 CacheCreation respjson.Field 1057 ListCost respjson.Field 1058 ServerToolUse respjson.Field 1059 raw string 1060 } `json:"-"` 1061 } 1062 1063 func (r *BetaManagedAgentsStreamSessionThreadEventsUnionUsage) UnmarshalJSON(data []byte) error { 1064 return apijson.UnmarshalRoot(data, r) 1065 } 1066 1067 type BetaSessionThreadGetParams struct { 1068 SessionID string `path:"session_id" api:"required" json:"-"` 1069 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 1070 // Optional header to specify the beta version(s) you want to use. 1071 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 1072 paramObj 1073 } 1074 1075 type BetaSessionThreadListParams struct { 1076 // Maximum results per page. Defaults to 1000. 1077 Limit param.Opt[int64] `query:"limit,omitzero" json:"-"` 1078 // Opaque pagination cursor from a previous response's `next_page`. Forward-only. 1079 Page param.Opt[string] `query:"page,omitzero" json:"-"` 1080 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 1081 // Optional header to specify the beta version(s) you want to use. 1082 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 1083 paramObj 1084 } 1085 1086 // URLQuery serializes [BetaSessionThreadListParams]'s query parameters as 1087 // `url.Values`. 1088 func (r BetaSessionThreadListParams) URLQuery() (v url.Values, err error) { 1089 return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ 1090 ArrayFormat: apiquery.ArrayQueryFormatBrackets, 1091 NestedFormat: apiquery.NestedQueryFormatBrackets, 1092 }) 1093 } 1094 1095 type BetaSessionThreadArchiveParams struct { 1096 SessionID string `path:"session_id" api:"required" json:"-"` 1097 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 1098 // Optional header to specify the beta version(s) you want to use. 1099 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 1100 paramObj 1101 }