restore old after-confidence-scoring
This commit is contained in:
@@ -101,7 +101,6 @@ class AuditService {
|
||||
|
||||
this.activeAuditTrail.push(entry);
|
||||
|
||||
// Enforce max entries limit
|
||||
if (this.activeAuditTrail.length > this.config.maxEntries) {
|
||||
this.activeAuditTrail.shift();
|
||||
}
|
||||
@@ -109,7 +108,6 @@ class AuditService {
|
||||
console.log(`[AUDIT-SERVICE] ${phase}/${action}: ${confidence}% confidence, ${entry.processingTimeMs}ms`);
|
||||
}
|
||||
|
||||
// NEW: Specialized audit methods for forensic transparency
|
||||
addAIDecision(
|
||||
phase: string,
|
||||
aiPrompt: string,
|
||||
@@ -162,24 +160,28 @@ class AuditService {
|
||||
|
||||
addPhaseCompletion(
|
||||
phaseId: string,
|
||||
toolsAdded: string[],
|
||||
completionReasoning: string,
|
||||
addedTools: string[],
|
||||
reasoning: string,
|
||||
startTime: number,
|
||||
metadata: Record<string, any> = {}
|
||||
): void {
|
||||
this.addEntry(
|
||||
'phase-completion',
|
||||
'phase-enhancement',
|
||||
{ phaseId, underrepresentedPhase: true },
|
||||
{ toolsAdded },
|
||||
75, // Default confidence for phase completion
|
||||
{
|
||||
phaseId,
|
||||
addedTools,
|
||||
reasoning: reasoning.slice(0, 200)
|
||||
},
|
||||
{
|
||||
toolsAddedCount: addedTools.length,
|
||||
enhancementMethod: 'semantic-search-with-ai-reasoning'
|
||||
},
|
||||
metadata.moderatedTaskRelevance || 75,
|
||||
startTime,
|
||||
{
|
||||
...metadata,
|
||||
phaseId,
|
||||
toolsAdded,
|
||||
completionReasoning,
|
||||
enhancementType: 'semantic-phase-completion'
|
||||
phaseCompletionMethod: 'sophisticated-ai-reasoning'
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -215,25 +217,30 @@ class AuditService {
|
||||
|
||||
addConfidenceCalculation(
|
||||
toolName: string,
|
||||
confidenceBreakdown: any,
|
||||
confidence: any,
|
||||
startTime: number,
|
||||
metadata: Record<string, any> = {}
|
||||
): void {
|
||||
this.addEntry(
|
||||
'confidence-scoring',
|
||||
'tool-confidence',
|
||||
{ toolName },
|
||||
{ confidenceBreakdown },
|
||||
confidenceBreakdown.overall || 50,
|
||||
{
|
||||
toolName,
|
||||
confidence: {
|
||||
overall: confidence.overall,
|
||||
semantic: confidence.semanticRelevance,
|
||||
task: confidence.taskSuitability
|
||||
}
|
||||
},
|
||||
{
|
||||
uncertaintyFactorsCount: confidence.uncertaintyFactors?.length || 0,
|
||||
strengthIndicatorsCount: confidence.strengthIndicators?.length || 0
|
||||
},
|
||||
confidence.overall,
|
||||
startTime,
|
||||
{
|
||||
...metadata,
|
||||
confidenceFactors: [
|
||||
...(confidenceBreakdown.strengthIndicators || []),
|
||||
...(confidenceBreakdown.uncertaintyFactors || [])
|
||||
],
|
||||
semanticRelevance: confidenceBreakdown.semanticRelevance,
|
||||
taskSuitability: confidenceBreakdown.taskSuitability
|
||||
confidenceCalculation: true
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -300,7 +307,6 @@ class AuditService {
|
||||
return { ...this.config };
|
||||
}
|
||||
|
||||
// Statistics and analysis methods (enhanced)
|
||||
getAuditStatistics(auditTrail: AuditEntry[]): {
|
||||
totalTime: number;
|
||||
avgConfidence: number;
|
||||
@@ -346,12 +352,10 @@ class AuditService {
|
||||
const lowConfidenceSteps = auditTrail.filter(entry => (entry.confidence || 0) < 60).length;
|
||||
const mediumConfidenceSteps = auditTrail.length - highConfidenceSteps - lowConfidenceSteps;
|
||||
|
||||
// Enhanced metrics
|
||||
const aiDecisionCount = auditTrail.filter(entry => entry.action === 'ai-decision').length;
|
||||
const embeddingsUsageCount = auditTrail.filter(entry => entry.metadata?.embeddingsUsed).length;
|
||||
const toolSelectionCount = auditTrail.filter(entry => entry.action === 'selection-decision').length;
|
||||
|
||||
// Phase breakdown
|
||||
const phaseBreakdown: Record<string, { count: number; avgConfidence: number; totalTime: number }> = {};
|
||||
|
||||
auditTrail.forEach(entry => {
|
||||
@@ -364,7 +368,6 @@ class AuditService {
|
||||
phaseBreakdown[phase].totalTime += entry.processingTimeMs || 0;
|
||||
});
|
||||
|
||||
// Calculate average confidence per phase
|
||||
Object.keys(phaseBreakdown).forEach(phase => {
|
||||
const phaseEntries = auditTrail.filter(entry => entry.phase === phase);
|
||||
const validEntries = phaseEntries.filter(entry => typeof entry.confidence === 'number');
|
||||
@@ -425,7 +428,6 @@ class AuditService {
|
||||
return;
|
||||
}
|
||||
|
||||
// Required fields validation
|
||||
const requiredFields = ['timestamp', 'phase', 'action'];
|
||||
requiredFields.forEach(field => {
|
||||
if (!(field in entry)) {
|
||||
@@ -433,7 +435,6 @@ class AuditService {
|
||||
}
|
||||
});
|
||||
|
||||
// Enhanced validation for audit quality
|
||||
if (entry.action === 'ai-decision' && !entry.metadata?.aiPrompt && !entry.metadata?.reasoning) {
|
||||
warnings.push(`Entry ${index}: AI decision lacks transparency (no prompt or reasoning)`);
|
||||
}
|
||||
@@ -442,7 +443,6 @@ class AuditService {
|
||||
warnings.push(`Entry ${index}: Tool selection lacks methodology info`);
|
||||
}
|
||||
|
||||
// Data type validation
|
||||
if (typeof entry.confidence !== 'number' || entry.confidence < 0 || entry.confidence > 100) {
|
||||
warnings.push(`Entry ${index} has invalid confidence value: ${entry.confidence}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user