fix: routes.js reicht cliInput.systemPrompt nie an subprocess.start() durch
Root Cause fuer "Claude kennt Hermes-Tools nicht" gefunden: unser
openai-to-cli.js baut systemPrompt korrekt, manager.js liest options.systemPrompt
korrekt fuer --system-prompt -- aber der stock npm-Code in server/routes.js
kopiert beim subprocess.start(cliInput.prompt, {model, sessionId}) nur model+
sessionId, nie systemPrompt. Also war options.systemPrompt immer undefined,
--system-prompt kam nie mit echtem Inhalt an, Claude lief die ganze Zeit mit
seiner eigenen Default-Identitaet statt der injizierten Hermes-Tools.
Neuer sed patcht jetzt auch routes.js und reicht systemPrompt durch (trifft
beide Call-Sites: Streaming + Non-Streaming). Verifiziert lokal gegen das
echte npm-Paket claude-max-api-proxy@1.0.0.
This commit is contained in:
@@ -30,6 +30,27 @@ services:
|
|||||||
# Server, CLAUDE.md, ...) fuer diese Session — eingebaute Tools
|
# Server, CLAUDE.md, ...) fuer diese Session — eingebaute Tools
|
||||||
# (Bash/Read/...) bleiben an, sind hier aber ungenutzt. Danach sieht
|
# (Bash/Read/...) bleiben an, sind hier aber ungenutzt. Danach sieht
|
||||||
# Claude NUR noch die per Prompt injizierten externen Tools.
|
# Claude NUR noch die per Prompt injizierten externen Tools.
|
||||||
|
# - ECHTER ROOT CAUSE fuer "Claude kennt Hermes-Tools ueberhaupt nicht"
|
||||||
|
# (gefunden 20.07.2026, npm-Paket claude-max-api-proxy@1.0.0 lokal
|
||||||
|
# gezogen und Zeile fuer Zeile nachverfolgt statt weiter zu raten):
|
||||||
|
# Unser eigener openai-to-cli.js-Patch baut korrekt ein Objekt
|
||||||
|
# { prompt, systemPrompt, model, sessionId } (systemPrompt = der ganze
|
||||||
|
# Tool-Block + System-Messages, siehe extractSystemPrompt()). Der
|
||||||
|
# manager.js-Sed-Patch unten liest korrekt options.systemPrompt fuer
|
||||||
|
# den --system-prompt-Flag. ABER: dazwischen liegt server/routes.js
|
||||||
|
# (STOCK npm-Code, von uns bisher NICHT gepatcht!) — und genau dort
|
||||||
|
# wird beim Aufruf von subprocess.start(cliInput.prompt, {...}) nur
|
||||||
|
# { model: cliInput.model, sessionId: cliInput.sessionId } durchgereicht.
|
||||||
|
# cliInput.systemPrompt wird schlicht NIE in dieses Options-Objekt
|
||||||
|
# kopiert. Ergebnis: options.systemPrompt ist in manager.js IMMER
|
||||||
|
# undefined, --system-prompt kam nie mit echtem Inhalt an, Claude lief
|
||||||
|
# die ganze Zeit mit seiner EIGENEN Default-Identitaet (daher exakt die
|
||||||
|
# "Web-Suche/Datei-Tools/Terminal/Kalender-Mail-Drive(Google)/Cron"-
|
||||||
|
# Antwort — das sind Claude Codes eigene Bordmittel, nicht Hermes'
|
||||||
|
# Tools). Der zusaetzliche sed unten patcht jetzt auch routes.js und
|
||||||
|
# reicht cliInput.systemPrompt endlich durch (trifft beide Call-Sites:
|
||||||
|
# Streaming- UND Non-Streaming-Handler, da beide exakt
|
||||||
|
# "model: cliInput.model," enthalten).
|
||||||
#
|
#
|
||||||
# Adapter-Patches (proxy-patches/*.js) sind 1:1 aus dem ARIA-Proxy
|
# Adapter-Patches (proxy-patches/*.js) sind 1:1 aus dem ARIA-Proxy
|
||||||
# uebernommen — sie sind generisch (implementieren nur die
|
# uebernommen — sie sind generisch (implementieren nur die
|
||||||
@@ -58,6 +79,7 @@ services:
|
|||||||
sed -i 's/const DEFAULT_TIMEOUT = 300000;/const DEFAULT_TIMEOUT = 86400000;/' $$DIST/subprocess/manager.js &&
|
sed -i 's/const DEFAULT_TIMEOUT = 300000;/const DEFAULT_TIMEOUT = 86400000;/' $$DIST/subprocess/manager.js &&
|
||||||
sed -i '/prompt, \\/\\/ Pass prompt as argument/d' $$DIST/subprocess/manager.js &&
|
sed -i '/prompt, \\/\\/ Pass prompt as argument/d' $$DIST/subprocess/manager.js &&
|
||||||
sed -i 's|this\\.process\\.stdin?\\.end();|this.process.stdin?.end(prompt);|' $$DIST/subprocess/manager.js &&
|
sed -i 's|this\\.process\\.stdin?\\.end();|this.process.stdin?.end(prompt);|' $$DIST/subprocess/manager.js &&
|
||||||
|
sed -i 's/model: cliInput\\.model,/model: cliInput.model, systemPrompt: cliInput.systemPrompt,/' $$DIST/server/routes.js &&
|
||||||
cp /proxy-patches/openai-to-cli.js $$DIST/adapter/openai-to-cli.js &&
|
cp /proxy-patches/openai-to-cli.js $$DIST/adapter/openai-to-cli.js &&
|
||||||
cp /proxy-patches/cli-to-openai.js $$DIST/adapter/cli-to-openai.js &&
|
cp /proxy-patches/cli-to-openai.js $$DIST/adapter/cli-to-openai.js &&
|
||||||
claude-max-api"
|
claude-max-api"
|
||||||
|
|||||||
Reference in New Issue
Block a user