Fix: transform userMessage in _runAgentLoop before passing to transport

HookMessage (role: hookMessage) was being passed directly to transport
without transformation. Now it's transformed via messageTransformer
which converts it to a proper user message for the LLM.
This commit is contained in:
Mario Zechner 2025-12-27 21:02:07 +01:00
parent 1113c95931
commit f7ef44dc38
2 changed files with 62 additions and 59 deletions

View file

@ -240,7 +240,10 @@ export class Agent {
private async _runAgentLoop(userMessage: AppMessage) {
const { llmMessages, cfg } = await this._prepareRun();
const events = this.transport.run(llmMessages, userMessage as Message, cfg, this.abortController!.signal);
// Transform user message (e.g., HookMessage -> user message)
const [transformedUserMessage] = await this.messageTransformer([userMessage]);
const events = this.transport.run(llmMessages, transformedUserMessage, cfg, this.abortController!.signal);
await this._processEvents(events);
}
@ -326,7 +329,7 @@ export class Agent {
}
case "message_update": {
partial = ev.message;
this._state.streamMessage = ev.message as Message;
this._state.streamMessage = ev.message;
break;
}
case "message_end": {