From a8159f504fa5c1f63b036a4e6ef3d811ac5b2adf Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Tue, 7 Oct 2025 17:49:23 +0200 Subject: [PATCH] Make message transformer async, expose i18n. --- packages/web-ui/src/agent/agent.ts | 6 +++--- packages/web-ui/src/index.ts | 2 +- packages/web-ui/src/utils/i18n.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/web-ui/src/agent/agent.ts b/packages/web-ui/src/agent/agent.ts index 7e92505e..befc59d1 100644 --- a/packages/web-ui/src/agent/agent.ts +++ b/packages/web-ui/src/agent/agent.ts @@ -54,7 +54,7 @@ export interface AgentOptions { debugListener?: (entry: DebugLogEntry) => void; transport: AgentTransport; // Transform app messages to LLM-compatible messages before sending to transport - messageTransformer?: (messages: AppMessage[]) => Message[]; + messageTransformer?: (messages: AppMessage[]) => Message[] | Promise; } export class Agent { @@ -73,7 +73,7 @@ export class Agent { private abortController?: AbortController; private transport: AgentTransport; private debugListener?: (entry: DebugLogEntry) => void; - private messageTransformer: (messages: AppMessage[]) => Message[]; + private messageTransformer: (messages: AppMessage[]) => Message[] | Promise; constructor(opts: AgentOptions) { this._state = { ...this._state, ...opts.initialState }; @@ -170,7 +170,7 @@ export class Agent { let turnStart = 0; // Transform app messages to LLM-compatible messages - const llmMessages = this.messageTransformer(this._state.messages); + const llmMessages = await this.messageTransformer(this._state.messages); for await (const ev of this.transport.run( llmMessages, diff --git a/packages/web-ui/src/index.ts b/packages/web-ui/src/index.ts index f52c9724..f87009bf 100644 --- a/packages/web-ui/src/index.ts +++ b/packages/web-ui/src/index.ts @@ -78,4 +78,4 @@ export type { Attachment } from "./utils/attachment-utils.js"; export { loadAttachment } from "./utils/attachment-utils.js"; export { clearAuthToken, getAuthToken } from "./utils/auth-token.js"; export { formatCost, formatModelCost, formatTokenCount, formatUsage } from "./utils/format.js"; -export { i18n, setLanguage } from "./utils/i18n.js"; +export { i18n, setLanguage, translations } from "./utils/i18n.js"; diff --git a/packages/web-ui/src/utils/i18n.ts b/packages/web-ui/src/utils/i18n.ts index 279efc0d..b7588935 100644 --- a/packages/web-ui/src/utils/i18n.ts +++ b/packages/web-ui/src/utils/i18n.ts @@ -138,7 +138,7 @@ declare module "@mariozechner/mini-lit" { } } -const translations = { +export const translations = { en: { ...defaultEnglish, Free: "Free",