summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Treasure <leotreasure@gmail.com>2026-04-22 11:23:44 +0800
committerLeo Treasure <leotreasure@gmail.com>2026-04-22 11:23:44 +0800
commit749925a92cd815b41c9876b8688357870ed37307 (patch)
tree63a83b42dd789caa46a86dedd25edd49b006075b
parent7b303b6f82b1eee57c05e984ce7f4f42fc992405 (diff)
Fix JS syntax error when system prompt contains single quotes
-rw-r--r--source/net/yacy/htroot/yacychat.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/net/yacy/htroot/yacychat.java b/source/net/yacy/htroot/yacychat.java
index 0037d4f04..74c081dac 100644
--- a/source/net/yacy/htroot/yacychat.java
+++ b/source/net/yacy/htroot/yacychat.java
@@ -29,7 +29,14 @@ public class yacychat {
// system prompt comes from configuration; default is empty
final String systemPrompt = sb.getConfig("ai.system-prompt", net.yacy.http.servlets.RAGProxyServlet.LLM_SYSTEM_PROMPT_DEFAULT);
- prop.put("system_prompt", systemPrompt);
+ // escape for safe embedding in a JS single-quoted string literal
+ final String systemPromptJs = systemPrompt
+ .replace("\\", "\\\\")
+ .replace("'", "\\'")
+ .replace("\r\n", "\\n")
+ .replace("\n", "\\n")
+ .replace("\r", "\\n");
+ prop.put("system_prompt", systemPromptJs);
prop.put("topmenu", sb.getConfigBool("ai.shield.show-chat-link", false) ? (sb.getConfigBool("publicTopmenu", true) ? 1 : 0) : 2);
String promoteChatPageGreeting = env.getConfig("promoteChatPageGreeting", "");