(value any)
| 401 | } |
| 402 | |
| 403 | func serializeTaskResult(value any) any { |
| 404 | switch v := value.(type) { |
| 405 | case AgentTaskRecord: |
| 406 | return serializeTaskPayload(v.ToMap()) |
| 407 | case *AgentTaskRecord: |
| 408 | if v == nil { |
| 409 | return nil |
| 410 | } |
| 411 | return serializeTaskPayload(v.ToMap()) |
| 412 | case map[string]any: |
| 413 | out := make(map[string]any, len(v)) |
| 414 | for key, item := range v { |
| 415 | if key == "tasks" { |
| 416 | if tasks, ok := item.([]map[string]any); ok { |
| 417 | serialized := make([]map[string]any, 0, len(tasks)) |
| 418 | for _, task := range tasks { |
| 419 | serialized = append(serialized, serializeTaskPayload(task)) |
| 420 | } |
| 421 | out[key] = serialized |
| 422 | continue |
| 423 | } |
| 424 | } |
| 425 | out[key] = item |
| 426 | } |
| 427 | return out |
| 428 | default: |
| 429 | return value |
| 430 | } |
| 431 | } |
| 432 | |
| 433 | func serializeTaskPayload(data map[string]any) map[string]any { |
| 434 | payload := make(map[string]any, len(data)+4) |
no test coverage detected