MCPcopy Create free account
hub / github.com/astercloud/aster / copyTask

Function copyTask

pkg/a2a/store.go:134–175  ·  view source on GitHub ↗

copyTask 深拷贝任务

(task *Task)

Source from the content-addressed store, hash-verified

132
133// copyTask 深拷贝任务
134func copyTask(task *Task) *Task {
135 if task == nil {
136 return nil
137 }
138
139 // 拷贝基本字段
140 copied := &Task{
141 ID: task.ID,
142 ContextID: task.ContextID,
143 Status: TaskStatus{
144 State: task.Status.State,
145 Timestamp: task.Status.Timestamp,
146 },
147 Kind: task.Kind,
148 }
149
150 // 拷贝 Status.Message
151 if task.Status.Message != nil {
152 msg := *task.Status.Message
153 copied.Status.Message = &msg
154 }
155
156 // 拷贝 History
157 if task.History != nil {
158 copied.History = make([]Message, len(task.History))
159 copy(copied.History, task.History)
160 }
161
162 // 拷贝 Artifacts
163 if task.Artifacts != nil {
164 copied.Artifacts = make([]Artifact, len(task.Artifacts))
165 copy(copied.Artifacts, task.Artifacts)
166 }
167
168 // 拷贝 Metadata
169 if task.Metadata != nil {
170 copied.Metadata = make(Metadata)
171 maps.Copy(copied.Metadata, task.Metadata)
172 }
173
174 return copied
175}

Callers 3

LoadMethod · 0.85
SaveMethod · 0.85
ListMethod · 0.85

Calls 2

copyFunction · 0.85
CopyMethod · 0.80

Tested by

no test coverage detected