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

Method resolveTaskPeerContext

internal/network/tasks.go:345–389  ·  view source on GitHub ↗
(
	ctx context.Context,
	ingress TaskIngressContext,
	action string,
)

Source from the content-addressed store, hash-verified

343}
344
345func (m *Manager) resolveTaskPeerContext(
346 ctx context.Context,
347 ingress TaskIngressContext,
348 action string,
349) (resolvedTaskPeerContext, error) {
350 if ctx == nil {
351 return resolvedTaskPeerContext{}, errors.New("network: task ingress context is required")
352 }
353 if m == nil {
354 return resolvedTaskPeerContext{}, errors.New("network: manager is required")
355 }
356 if err := ingress.Validate(); err != nil {
357 return resolvedTaskPeerContext{}, err
358 }
359 if m.tasks == nil {
360 return resolvedTaskPeerContext{}, m.rejectTaskIngress(ctx, ingress, action, ErrTaskIngressUnavailable, nil)
361 }
362 if m.peers == nil {
363 return resolvedTaskPeerContext{}, m.rejectTaskIngress(ctx, ingress, action, ErrTaskIngressPeerNotFound, nil)
364 }
365 ingress.WorkspaceID = strings.TrimSpace(ingress.WorkspaceID)
366 ingress.Channel = strings.TrimSpace(ingress.Channel)
367 ingress.PeerID = strings.TrimSpace(ingress.PeerID)
368
369 peer, ok := m.peers.RemoteByPeer(ingress.WorkspaceID, ingress.Channel, ingress.PeerID, m.now().UTC())
370 if !ok {
371 return resolvedTaskPeerContext{}, m.rejectTaskIngress(ctx, ingress, action, ErrTaskIngressPeerNotFound, nil)
372 }
373 if !containsString(peer.PeerCard.Capabilities, networkTaskWriteCapability) {
374 return resolvedTaskPeerContext{}, m.rejectTaskIngress(ctx, ingress, action, ErrTaskIngressCapabilityDenied, nil)
375 }
376
377 actor, err := taskpkg.DeriveNetworkPeerActorContext(
378 strings.TrimSpace(ingress.PeerID),
379 networkTaskOriginRef(ingress),
380 )
381 if err != nil {
382 return resolvedTaskPeerContext{}, m.rejectTaskIngress(ctx, ingress, action, err, nil)
383 }
384 return resolvedTaskPeerContext{
385 ingress: ingress,
386 peer: peer,
387 actor: actor,
388 }, nil
389}
390
391func (m *Manager) rejectTaskIngress(
392 ctx context.Context,

Callers 4

CreateTaskFromPeerMethod · 0.95
UpdateTaskFromPeerMethod · 0.95
CancelTaskFromPeerMethod · 0.95
EnqueueRunFromPeerMethod · 0.95

Calls 6

rejectTaskIngressMethod · 0.95
networkTaskOriginRefFunction · 0.85
RemoteByPeerMethod · 0.80
containsStringFunction · 0.70
ValidateMethod · 0.65
nowMethod · 0.45

Tested by

no test coverage detected