@@ -42,27 +42,26 @@ class UCPService {
4242 /**
4343 * Process a UCP Payload
4444 * @param {Object } payload - The raw UCP JSON payload
45+ * @param {string } mandate - Optional signed Mandate (AP2) for Zero Trust validation
4546 */
46- async processPayload ( payload ) {
47+ async processPayload ( payload , mandate ) {
4748 try {
4849 // 1. Validate the UCP intent against schema
4950 const { error, value } = this . ucpIntentSchema . validate ( payload , {
5051 stripUnknown : true ,
5152 } ) ;
5253 if ( error ) {
53- throw new Error (
54- `Zero Trust Validation Failed: UCP Intent validation failed: ${ error . details . map ( ( x ) => x . message ) . join ( ", " ) } ` ,
55- ) ;
54+ throw new Error ( `Zero Trust Validation Failed: UCP Intent validation failed: ${ error . details . map ( x => x . message ) . join ( ', ' ) } ` ) ;
5655 }
5756
5857 const validatedPayload = value ;
5958 const { intent } = validatedPayload ;
6059
6160 switch ( intent ) {
62- case " transfer" :
63- case " payment" :
64- return this . _handleTransfer ( validatedPayload ) ;
65- case " purchase" :
61+ case ' transfer' :
62+ case ' payment' :
63+ return this . _handleTransfer ( validatedPayload , mandate ) ;
64+ case ' purchase' :
6665 // Future implementation: integration with Inventory/Order services
6766 return {
6867 status : "success" ,
@@ -85,21 +84,22 @@ class UCPService {
8584 * Handle transfer/payment intents via A2AService
8685 * @private
8786 */
88- async _handleTransfer ( payload ) {
87+ async _handleTransfer ( payload , mandate ) {
8988 const { sender, recipient, amount } = payload ;
9089
9190 if ( ! recipient ?. agent_id ) {
92- throw new Error ( " Missing recipient agent_id for transfer" ) ;
91+ throw new Error ( 'Zero Trust Validation Failed: Missing recipient agent_id for transfer' ) ;
9392 }
9493 if ( ! amount ?. value ) {
95- throw new Error ( " Missing amount value" ) ;
94+ throw new Error ( 'Zero Trust Validation Failed: Missing amount value' ) ;
9695 }
9796
9897 return this . a2aService . executeTransfer ( {
9998 fromAgentId : sender . agent_id ,
10099 toAgentId : recipient . agent_id ,
101100 amount : amount . value ,
102- ucpPayload : payload ,
101+ mandate,
102+ ucpPayload : payload
103103 } ) ;
104104 }
105105
0 commit comments