Require raw HTML from Hermes MCP

This commit is contained in:
gitea_admin committed 2026-09-21 15:50:19 +02:00
1 parent dd019afff6
commit 17e07d525b
3 files changed
+8 -10

No files matched your search

@@ -50,6 +50,10 @@ für solche internen Dokumentlinks sowie `<br>` und `<strong>` erlaubt. Andere
HTML-Tags und nicht erlaubte URL-Schemata werden entfernt. Externe `http://`-
und `https://`-Links sind erlaubt und öffnen in einem neuen Tab. Der Link ist
schreibgeschützt und erfordert bei internen Dokumenten eine aktive ERP-Anmeldung.
Hermes muss diesen HTML-String unverändert als Feldwert senden: keine Markdown-
Notation, keine Backticks und keine HTML-Entity-Kodierung wie `&lt;`, `&gt;` oder
`&quot;`. Der MCP-Transport erwartet den HTML-Inhalt im JSON-String und escaped
ihn nicht als HTML.
Die Route benötigt auf dem ERP-Webserver die Konfiguration
`HERMES_DOCUMENT_ROOT=/volume1/Hermes/Hermes Naurua`. Dieser lokale Pfad ist
@@ -73,7 +73,10 @@ Modulberechtigung.
Feld `notes` referenziert werden. Zusätzlich sind in mehrzeiligen Feldern
`<br>` und `<strong>` erlaubt. Die Position im bestehenden Freitext ist frei
wählbar. Externe `http://`- und `https://`-Links sind zulässig und öffnen in
einem neuen Tab; andere HTML-Tags und URL-Schemata sind nicht zulässig.
einem neuen Tab; andere HTML-Tags und URL-Schemata sind nicht zulässig. Hermes
sendet den HTML-String unverändert; Markdown, Backticks und HTML-Entities wie
`&lt;`, `&gt;` oder `&quot;` werden nicht verwendet. Der MCP-Transport escaped
den HTML-Inhalt nicht.
- Unsichere Erkennung wird nicht durch eine zusätzliche App-Freigabelogik
behandelt; die fachliche Qualitätssicherung liegt im Hermes-Training.
-9
View File
@@ -64,15 +64,6 @@ function market_management_sanitize_multiline_html(?string $value): ?string
return $value;
}
for ($decodePass = 0; $decodePass < 3; $decodePass++) {
$decoded = html_entity_decode($value, ENT_QUOTES | ENT_HTML5, 'UTF-8');
if ($decoded === $value) {
break;
}
$value = $decoded;
}
$value = preg_replace('/(<a\b[^>]*\bhref\s*=\s*["\'])@url:/iu', '$1', $value) ?? $value;
$tokens = preg_split('/(<\/?a\b[^>]*>|<br\s*\/?>|<\/?strong\s*>)/iu', $value, -1, PREG_SPLIT_DELIM_CAPTURE);
if ($tokens === false) {
return htmlspecialchars($value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');