rephrasing, prepare for methods implementation

This commit is contained in:
overcuriousity
2025-07-19 17:53:17 +02:00
parent ba3a5461b4
commit 1d048e816c
12 changed files with 60 additions and 60 deletions

View File

@@ -18,10 +18,10 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || [];
<path d="M9 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2h-4"/>
<path d="M9 11V7a3 3 0 0 1 6 0v4"/>
</svg>
KI-gestützte Tool-Empfehlungen
KI-gestützte Workflow-Empfehlungen
</h2>
<p id="ai-description" class="text-muted" style="max-width: 700px; margin: 0 auto; line-height: 1.6;">
Beschreiben Sie Ihr forensisches Szenario und erhalten Sie maßgeschneiderte Tool-Empfehlungen
Beschreiben Sie Ihr forensisches Szenario und erhalten Sie maßgeschneiderte Workflow-Empfehlungen
basierend auf bewährten DFIR-Workflows und der verfügbaren Software-Datenbank.
</p>
</div>
@@ -45,7 +45,7 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || [];
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="margin-right: 0.5rem; vertical-align: middle;">
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/>
</svg>
Spezifisches Tool
Spezifische Software oder Methode
</span>
</div>
@@ -145,15 +145,15 @@ document.addEventListener('DOMContentLoaded', () => {
const modeConfig = {
workflow: {
placeholder: "Beschreiben Sie Ihr forensisches Szenario... z.B. 'Verdacht auf Ransomware-Angriff auf Windows-Domänencontroller mit verschlüsselten Dateien und verdächtigen Netzwerkverbindungen'",
description: "Beschreiben Sie Ihr forensisches Szenario und erhalten Sie maßgeschneiderte Tool-Empfehlungen basierend auf bewährten DFIR-Workflows und der verfügbaren Software-Datenbank.",
description: "Beschreiben Sie Ihr forensisches Szenario und erhalten Sie maßgeschneiderte Empfehlungen basierend auf bewährten DFIR-Workflows und der verfügbaren Software-Datenbank.",
submitText: "Empfehlungen generieren",
loadingText: "Analysiere Szenario und generiere Empfehlungen..."
},
tool: {
placeholder: "Beschreiben Sie Ihr spezifisches Problem oder Ihre Anforderung... z.B. 'Ich benötige ein Tool zur Analyse von Android-Backups mit WhatsApp-Nachrichten und GPS-Daten'",
description: "Beschreiben Sie Ihr spezifisches Problem oder Ihre Anforderung und erhalten Sie 1-3 gezielt passende Tool-Empfehlungen mit detaillierten Erklärungen zur optimalen Anwendung.",
submitText: "Tool-Empfehlungen finden",
loadingText: "Analysiere Anforderungen und suche passende Tools..."
placeholder: "Beschreiben Sie Ihr spezifisches Problem oder Ihre Anforderung... z.B. 'Ich benötige eine Anwendung zur Analyse von Android-Backups mit WhatsApp-Nachrichten und GPS-Daten'",
description: "Beschreiben Sie Ihr spezifisches Problem oder Ihre Anforderung und erhalten Sie 1-3 gezielt passende Empfehlungen mit detaillierten Erklärungen zur optimalen Anwendung.",
submitText: "Empfehlungen finden",
loadingText: "Analysiere Anforderungen und suche passende Methode..."
}
};
@@ -261,7 +261,7 @@ document.addEventListener('DOMContentLoaded', () => {
// Disable submit button
aiSubmitBtn.disabled = true;
submitBtnText.textContent = currentMode === 'workflow' ? 'Generiere Empfehlungen...' : 'Suche passende Tools...';
submitBtnText.textContent = currentMode === 'workflow' ? 'Generiere Empfehlungen...' : 'Suche passende Methode...';
try {
const response = await fetch('/api/ai/query', {
@@ -474,7 +474,7 @@ document.addEventListener('DOMContentLoaded', () => {
<div class="tool-rec-metadata">
<div style="display: flex; flex-wrap: wrap; gap: 0.25rem; margin-bottom: 0.5rem;">
${hasValidProjectUrl ? '<span class="badge badge-primary">Self-Hosted</span>' : ''}
${hasValidProjectUrl ? '<span class="badge badge-primary">CC24-Server</span>' : ''}
${tool.license !== 'Proprietary' ? '<span class="badge badge-success">Open Source</span>' : ''}
<span class="badge" style="background-color: var(--color-bg-tertiary); color: var(--color-text);">${tool.skillLevel}</span>
</div>
@@ -631,7 +631,7 @@ document.addEventListener('DOMContentLoaded', () => {
<span class="badge" style="background-color: ${suitabilityColors[toolRec.suitability_score]}; color: white; font-size: 0.8125rem;">
${getSuitabilityText(toolRec.suitability_score)}
</span>
${hasValidProjectUrl ? '<span class="badge badge-primary">Self-Hosted</span>' : ''}
${hasValidProjectUrl ? '<span class="badge badge-primary">CC24-Server</span>' : ''}
${fullTool.license !== 'Proprietary' ? '<span class="badge badge-success">Open Source</span>' : ''}
${fullTool.knowledgebase === true ? '<span class="badge badge-error">📖</span>' : ''}
</div>
@@ -658,7 +658,7 @@ document.addEventListener('DOMContentLoaded', () => {
<path d="M9 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2h-4"/>
<path d="M9 11V7a3 3 0 0 1 6 0v4"/>
</svg>
Warum dieses Tool?
Warum diese Methode?
</h4>
${formatWorkflowSuggestion(toolRec.detailed_explanation)}
${toolRec.implementation_approach ? `

View File

@@ -37,7 +37,7 @@ const cardClass = hasValidProjectUrl ? 'card card-hosted tool-card' : (tool.lice
<div class="tool-card-header">
<h3>{tool.name}</h3>
<div class="tool-card-badges">
{hasValidProjectUrl && <span class="badge badge-primary">Self-Hosted</span>}
{hasValidProjectUrl && <span class="badge badge-primary">CC24-Server</span>}
{tool.license !== 'Proprietary' && <span class="badge badge-success">OSS</span>}
{hasKnowledgebase && <span class="badge badge-error">📖</span>}
</div>

View File

@@ -337,7 +337,7 @@ const sortedTags = Object.entries(tagFrequency)
return true;
});
// Sort filtered results: self-hosted first, proprietary last
// Sort filtered results: server-based first, proprietary last
filtered.sort((a, b) => {
const aHosted = isToolHosted(a);
const bHosted = isToolHosted(b);

View File

@@ -67,7 +67,7 @@ domains.forEach((domain: any) => {
<div class="tool-compact-header">
<h4 style="margin: 0; font-size: 0.875rem; font-weight: 600;">{tool.name}</h4>
<div style="display: flex; gap: 0.25rem;">
{hasValidProjectUrl && <span class="badge badge--mini badge-primary">Self-Hosted</span>}
{hasValidProjectUrl && <span class="badge badge--mini badge-primary">CC24-Server</span>}
{tool.license !== 'Proprietary' && <span class="badge badge--mini badge-success">OSS</span>}
{tool.knowledgebase === true && <span class="badge badge--mini badge-error">Infos 📖</span>}
</div>
@@ -90,7 +90,7 @@ domains.forEach((domain: any) => {
<!-- DFIR Tools Matrix -->
<div id="dfir-matrix-section">
<h2 style="margin-bottom: 1rem; color: var(--color-text);">DFIR Tools Matrix</h2>
<h2 style="margin-bottom: 1rem; color: var(--color-text);">MATRIX</h2>
<table class="matrix-table">
<thead>
<tr>
@@ -255,7 +255,7 @@ domains.forEach((domain: any) => {
badgesContainer.innerHTML = '';
if (hasValidProjectUrl) {
badgesContainer.innerHTML += '<span class="badge badge-primary">Self-Hosted</span>';
badgesContainer.innerHTML += '<span class="badge badge-primary">CC24-Server</span>';
}
if (tool.license !== 'Proprietary') {
badgesContainer.innerHTML += '<span class="badge badge-success">Open Source</span>';