cleanup
This commit is contained in:
@@ -1185,7 +1185,6 @@ class AIQueryInterface {
|
||||
keyInsights.push('Mehrheit der Analyseschritte mit hoher Sicherheit');
|
||||
}
|
||||
|
||||
// Calculate meaningful insights based on response quality
|
||||
const responseQualityEntries = auditTrail.filter(e =>
|
||||
e.metadata?.responseConfidence && e.metadata.finalConfidence
|
||||
);
|
||||
@@ -1204,7 +1203,6 @@ class AIQueryInterface {
|
||||
potentialIssues.push(`${lowConfidenceSteps} Analyseschritte mit niedriger Konfidenz`);
|
||||
}
|
||||
|
||||
// Check for truncated responses
|
||||
const truncatedResponses = auditTrail.filter(e =>
|
||||
e.output && typeof e.output === 'object' &&
|
||||
e.output.response && e.output.response.includes('...')
|
||||
@@ -1230,7 +1228,6 @@ class AIQueryInterface {
|
||||
medium: mediumConfidenceSteps,
|
||||
low: lowConfidenceSteps
|
||||
}
|
||||
// aiTransparency removed entirely
|
||||
},
|
||||
analysisQuality,
|
||||
keyInsights,
|
||||
@@ -1339,7 +1336,6 @@ class AIQueryInterface {
|
||||
const details = [];
|
||||
const metadata = entry.metadata || {};
|
||||
|
||||
// The backend now provides meaningful inputSummary and outputSummary
|
||||
if (metadata.inputSummary && metadata.inputSummary !== 'Leer') {
|
||||
details.push(`<div class="detail-item"><strong>Eingabe:</strong> ${escapeHtml(metadata.inputSummary)}</div>`);
|
||||
}
|
||||
@@ -1348,12 +1344,10 @@ class AIQueryInterface {
|
||||
details.push(`<div class="detail-item"><strong>Ausgabe:</strong> ${escapeHtml(metadata.outputSummary)}</div>`);
|
||||
}
|
||||
|
||||
// Show meaningful reasoning (backend now avoids generic "completed with X%" messages)
|
||||
if (metadata.reasoning && !metadata.reasoning.includes('completed with')) {
|
||||
details.push(`<div class="detail-item"><strong>Begründung:</strong> ${escapeHtml(metadata.reasoning)}</div>`);
|
||||
}
|
||||
|
||||
// Action-specific additional details
|
||||
if (entry.action === 'similarity-search' && metadata.similarityScores) {
|
||||
const topScores = Object.entries(metadata.similarityScores)
|
||||
.sort(([,a], [,b]) => (b) - (a))
|
||||
@@ -1597,11 +1591,9 @@ class AIQueryInterface {
|
||||
embeddingsSimilarities: {}
|
||||
};
|
||||
|
||||
// Enhanced export structure with proper audit trail handling
|
||||
const exportData = {
|
||||
metadata: {
|
||||
timestamp: new Date().toISOString(),
|
||||
version: "1.1", // Increment version for improved structure
|
||||
toolsDataHash: toolsDataHash,
|
||||
aiModel: aiModel,
|
||||
aiParameters: aiParameters,
|
||||
@@ -1609,16 +1601,13 @@ class AIQueryInterface {
|
||||
mode: this.currentMode,
|
||||
processingStats: processingStats,
|
||||
exportedBy: 'ForensicPathways',
|
||||
auditTrailVersion: '1.1' // Track audit trail format version
|
||||
},
|
||||
recommendation: {
|
||||
// Export recommendation without auditTrail to avoid duplication
|
||||
...this.currentRecommendation,
|
||||
auditTrail: undefined // Remove from recommendation as it's at top level
|
||||
auditTrail: undefined
|
||||
},
|
||||
auditTrail: this.currentRecommendation.auditTrail || [], // Extract to top level
|
||||
auditTrail: this.currentRecommendation.auditTrail || [],
|
||||
rawContext: rawContext,
|
||||
// Add validation checksum for integrity
|
||||
checksum: this.calculateDataChecksum(this.currentRecommendation)
|
||||
};
|
||||
|
||||
@@ -1647,7 +1636,6 @@ class AIQueryInterface {
|
||||
if (!data) return 'empty';
|
||||
|
||||
try {
|
||||
// Simple checksum based on key data properties
|
||||
const keyData = {
|
||||
recommendedToolsCount: data.recommended_tools?.length || 0,
|
||||
backgroundKnowledgeCount: data.background_knowledge?.length || 0,
|
||||
@@ -1661,7 +1649,7 @@ class AIQueryInterface {
|
||||
for (let i = 0; i < dataString.length; i++) {
|
||||
const char = dataString.charCodeAt(i);
|
||||
hash = ((hash << 5) - hash) + char;
|
||||
hash = hash & hash; // Convert to 32-bit integer
|
||||
hash = hash & hash;
|
||||
}
|
||||
return Math.abs(hash).toString(36);
|
||||
} catch (error) {
|
||||
@@ -1680,14 +1668,13 @@ class AIQueryInterface {
|
||||
typeof data.metadata.timestamp === 'string' &&
|
||||
data.recommendation &&
|
||||
typeof data.recommendation === 'object' &&
|
||||
Array.isArray(data.auditTrail) // Audit trail at top level
|
||||
Array.isArray(data.auditTrail)
|
||||
);
|
||||
|
||||
if (!isValid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Enhanced validation for audit trail structure
|
||||
if (data.auditTrail.length > 0) {
|
||||
const sampleEntry = data.auditTrail[0];
|
||||
const hasRequiredFields = !!(
|
||||
@@ -1718,10 +1705,9 @@ class AIQueryInterface {
|
||||
|
||||
this.showUploadedBanner(data.metadata);
|
||||
|
||||
// Fix: Ensure audit trail is available in recommendation for restoreAIResults
|
||||
this.currentRecommendation = {
|
||||
...data.recommendation,
|
||||
auditTrail: data.auditTrail // Restore audit trail to recommendation object
|
||||
auditTrail: data.auditTrail
|
||||
};
|
||||
|
||||
this.showResults();
|
||||
@@ -1813,7 +1799,6 @@ class AIQueryInterface {
|
||||
throw new Error('Ungültiges Analyse-Dateiformat');
|
||||
}
|
||||
|
||||
// Store audit trail separately for restore function
|
||||
this.uploadedAuditTrail = data.auditTrail;
|
||||
|
||||
console.log('[AI Interface] Valid previous analysis file uploaded:', {
|
||||
@@ -2282,7 +2267,6 @@ class AIQueryInterface {
|
||||
if (this.currentRecommendation && this.elements.results) {
|
||||
this.showResults();
|
||||
|
||||
// Check both locations for audit trail for backward compatibility
|
||||
const auditTrail = this.currentRecommendation.auditTrail || this.uploadedAuditTrail;
|
||||
|
||||
if (auditTrail && Array.isArray(auditTrail) && auditTrail.length > 0) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
// src/components/ContributionButton.astro - CLEANED: Removed duplicate auth script
|
||||
// src/components/ContributionButton.astro
|
||||
export interface Props {
|
||||
type: 'edit' | 'new' | 'write';
|
||||
toolName?: string;
|
||||
|
||||
@@ -4,7 +4,6 @@ import { getToolsData } from '../utils/dataService.js';
|
||||
const data = await getToolsData();
|
||||
const scenarios = data.scenarios || [];
|
||||
|
||||
// Configuration
|
||||
const maxDisplayed = 9;
|
||||
const displayedScenarios = scenarios.slice(0, maxDisplayed);
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user