MCPcopy Create free account
hub / github.com/Mnexa-AI/e2a / buildApprovedEvent

Method buildApprovedEvent

internal/agent/webhooks_api.go:105–131  ·  view source on GitHub ↗

buildApprovedEvent fires after ApproveAndSend hands the message to SES. sent carries the post-approve message row (now status=sent).

(
	agent *identity.AgentIdentity,
	sent *identity.Message,
	reviewerUserID string,
)

Source from the content-addressed store, hash-verified

103// buildApprovedEvent fires after ApproveAndSend hands the message to
104// SES. sent carries the post-approve message row (now status=sent).
105func (a *API) buildApprovedEvent(
106 agent *identity.AgentIdentity,
107 sent *identity.Message,
108 reviewerUserID string,
109) webhookpub.Event {
110 data := map[string]interface{}{
111 "message_id": sent.ID,
112 "direction": "outbound",
113 "provider_message_id": sent.ProviderMessageID,
114 "method": sent.Method,
115 "from": agent.EmailAddress(),
116 "to": sent.ToRecipients,
117 "subject": sent.Subject,
118 "type": sent.Type,
119 "edited": sent.Edited,
120 "reviewed_by_user_id": reviewerUserID,
121 }
122 return webhookpub.Event{
123 ID: generateEventIDForAgent(),
124 Type: webhookpub.EventEmailReviewApproved,
125 CreatedAt: time.Now().UTC(),
126 UserID: agent.UserID,
127 AgentID: agent.ID,
128 MessageID: sent.ID,
129 Data: data,
130 }
131}
132
133// buildRejectedEvent fires when a reviewer rejects a pending outbound.
134// userID is the reviewer (a separate identity from the agent's owner

Callers 2

TestBuildApprovedEventFunction · 0.95
ApprovePendingCoreMethod · 0.95

Calls 2

generateEventIDForAgentFunction · 0.85
EmailAddressMethod · 0.80

Tested by 1

TestBuildApprovedEventFunction · 0.76