From 4ec74e91203d60c5ab3d81b472ec7e2f51ffd886 Mon Sep 17 00:00:00 2001 From: gavrielc Date: Sat, 31 Jan 2026 19:24:55 +0200 Subject: [PATCH] Simplify runAgent: just pass the prompt - Remove context building (group name, chat JID, permissions) - Agent runs in group folder which determines its permissions - Caller handles response prefixing and where to send reply - Session provides continuity, no need for metadata in each message Co-Authored-By: Claude Opus 4.5 --- src/index.ts | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/index.ts b/src/index.ts index f223d15..89d3d27 100644 --- a/src/index.ts +++ b/src/index.ts @@ -90,21 +90,15 @@ async function processMessage(msg: NewMessage): Promise { if (!prompt) return; logger.info({ group: group.name, prompt: prompt.slice(0, 50) }, 'Processing message'); - const response = await runAgent(group, prompt, msg.chat_jid); - if (response) await sendMessage(msg.chat_jid, response); + const response = await runAgent(group, prompt); + if (response) { + await sendMessage(msg.chat_jid, `${ASSISTANT_NAME}: ${response}`); + } } -async function runAgent(group: RegisteredGroup, prompt: string, chatJid: string): Promise { - const isMain = group.folder === 'main'; +async function runAgent(group: RegisteredGroup, prompt: string): Promise { const groupDir = path.join(GROUPS_DIR, group.folder); - fs.mkdirSync(path.join(groupDir, 'logs'), { recursive: true }); - - const context = `[WhatsApp message from group: ${group.name}] -[Reply to chat_jid: ${chatJid}] -[Can write to global memory (../CLAUDE.md): ${isMain}] -[Prefix your responses with "${ASSISTANT_NAME}:"] - -User message: ${prompt}`; + fs.mkdirSync(groupDir, { recursive: true }); const sessionId = sessions[group.folder]; let newSessionId: string | undefined; @@ -112,7 +106,7 @@ User message: ${prompt}`; try { for await (const message of query({ - prompt: context, + prompt, options: { cwd: groupDir, resume: sessionId, @@ -134,7 +128,7 @@ User message: ${prompt}`; } } catch (err) { logger.error({ group: group.name, err }, 'Agent error'); - return `${ASSISTANT_NAME}: Sorry, I encountered an error. Please try again.`; + return null; } if (newSessionId) { @@ -142,7 +136,6 @@ User message: ${prompt}`; saveJson(path.join(DATA_DIR, 'sessions.json'), sessions); } - if (result) logger.info({ group: group.name, result: result.slice(0, 100) }, 'Agent response'); return result; }