| 102 | MemorySessionID: "", |
| 103 | MemoryAgentID: "", |
| 104 | MemoryAgentType: "", |
| 105 | MemoryTeamName: "", |
| 106 | MemoryTeamSessionID: "", |
| 107 | MemoryTeamAgentID: "", |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | func (s AgentState) ToMap() (map[string]any, error) { |
| 112 | b, err := json.Marshal(s) |
| 113 | if err != nil { |
| 114 | return nil, err |
| 115 | } |
| 116 | decoder := json.NewDecoder(bytes.NewReader(b)) |
| 117 | decoder.UseNumber() |
| 118 | var result map[string]any |
| 119 | if err := decoder.Decode(&result); err != nil { |
| 120 | return nil, err |
| 121 | } |
| 122 | return result, nil |
| 123 | } |
| 124 | |
| 125 | func GetAgentStateFromMap(m map[string]any) (AgentState, error) { |
| 126 | rawCacheBreakpoints, hasCacheBreakpoints := m["cache_breakpoints"] |
| 127 | if !hasCacheBreakpoints { |
| 128 | rawCacheBreakpoints = m["cache_break_points"] |
| 129 | } |
| 130 | permissionRaw, _ := m["permission_state"].(map[string]any) |
| 131 | m = copyAnyMap(m) |
| 132 | delete(m, "cache_breakpoints") |
| 133 | delete(m, "cache_break_points") |
| 134 | delete(m, "permission_state") |