MCPcopy Create free account
hub / github.com/compozy/agh / CreateTaskFromPeer

Method CreateTaskFromPeer

internal/network/tasks.go:173–199  ·  view source on GitHub ↗

CreateTaskFromPeer creates one task on behalf of an authenticated network peer after channel and capability validation succeed.

(
	ctx context.Context,
	ingress TaskIngressContext,
	spec taskpkg.CreateTask,
)

Source from the content-addressed store, hash-verified

171// CreateTaskFromPeer creates one task on behalf of an authenticated network
172// peer after channel and capability validation succeed.
173func (m *Manager) CreateTaskFromPeer(
174 ctx context.Context,
175 ingress TaskIngressContext,
176 spec taskpkg.CreateTask,
177) (*taskpkg.Task, error) {
178 peerCtx, err := m.resolveTaskPeerContext(ctx, ingress, networkTaskActionCreate)
179 if err != nil {
180 return nil, err
181 }
182 if err := validateRequestedTaskChannel(peerCtx.ingress.Channel, spec.NetworkChannel); err != nil {
183 return nil, m.rejectTaskIngress(ctx, peerCtx.ingress, networkTaskActionCreate, err, map[string]any{
184 tasksNetworkChannelKey: strings.TrimSpace(spec.NetworkChannel),
185 })
186 }
187
188 record, err := m.tasks.CreateTask(ctx, spec, peerCtx.actor)
189 if err != nil {
190 return nil, m.rejectTaskIngress(ctx, peerCtx.ingress, networkTaskActionCreate, err, map[string]any{
191 tasksNetworkChannelKey: strings.TrimSpace(spec.NetworkChannel),
192 })
193 }
194 m.recordTaskIngress(ctx, peerCtx.ingress, networkTaskActionCreate, AuditDirectionReceived, "", map[string]any{
195 tasksTaskIDKey: record.ID,
196 tasksNetworkChannelKey: strings.TrimSpace(record.NetworkChannel),
197 })
198 return record, nil
199}
200
201// UpdateTaskFromPeer applies one mutable task patch through the task manager
202// after enforcing channel-bound ingress rules.

Calls 5

rejectTaskIngressMethod · 0.95
recordTaskIngressMethod · 0.95
CreateTaskMethod · 0.65