diff --git a/src/services/PluralisticDeliberationOrchestrator.service.js b/src/services/PluralisticDeliberationOrchestrator.service.js index d28aa0aa..1a2f029e 100644 --- a/src/services/PluralisticDeliberationOrchestrator.service.js +++ b/src/services/PluralisticDeliberationOrchestrator.service.js @@ -755,12 +755,8 @@ class PluralisticDeliberationOrchestrator { assessment.recommended_action = 'SUGGEST_ADAPTATION'; } - // Audit log - this._auditCulturalSensitivity(assessment).catch(error => { - logger.error('[PluralisticDeliberationOrchestrator] Failed to audit cultural sensitivity check', { - error: error.message - }); - }); + // Audit log (await to ensure it completes before method returns) + await this._auditCulturalSensitivity(assessment); logger.info('[PluralisticDeliberationOrchestrator] Cultural sensitivity assessment complete', { risk_level: assessment.risk_level, @@ -854,29 +850,45 @@ class PluralisticDeliberationOrchestrator { * @private */ async _auditCulturalSensitivity(assessment) { - try { - const memoryProxy = await getMemoryProxy(); - const collection = await memoryProxy.getCollection('auditLogs'); + if (!this.memoryProxyInitialized) { + logger.debug('[PluralisticDeliberationOrchestrator] Cultural sensitivity audit skipped - MemoryProxy not initialized'); + return; + } - await collection.insertOne({ - timestamp: new Date(), + try { + await this.memoryProxy.auditDecision({ + sessionId: assessment.context.sessionId || 'cultural-sensitivity-check', + action: 'cultural_sensitivity_assessment', service: 'PluralisticDeliberationOrchestrator', - action: 'cultural_sensitivity_check', decision: assessment.recommended_action, - context: { + rulesChecked: ['inst_081'], // Phase 3 Cultural Sensitivity rule + violations: assessment.culturally_sensitive ? [] : assessment.concerns.map(c => ({ + ruleId: 'inst_081', + severity: assessment.risk_level, + description: c.detail, + context: c.audience_context + })), + metadata: { content_type: assessment.context.content_type, audience: assessment.context.audience, risk_level: assessment.risk_level, concerns_count: assessment.concerns.length, - culturally_sensitive: assessment.culturally_sensitive - }, - metadata: { + culturally_sensitive: assessment.culturally_sensitive, concerns: assessment.concerns, - suggestions: assessment.suggestions + suggestions: assessment.suggestions, + recommended_action: assessment.recommended_action } }); + + logger.debug('[PluralisticDeliberationOrchestrator] Cultural sensitivity audit logged', { + risk_level: assessment.risk_level, + decision: assessment.recommended_action + }); } catch (error) { - logger.error('[PluralisticDeliberationOrchestrator] Failed to create audit log', { error: error.message }); + logger.error('[PluralisticDeliberationOrchestrator] Failed to audit cultural sensitivity', { + error: error.message, + stack: error.stack + }); } }