diff --git a/extensions/slack/src/monitor/context.ts b/extensions/slack/src/monitor/context.ts index b78391b07f8..03c1bef857f 100644 --- a/extensions/slack/src/monitor/context.ts +++ b/extensions/slack/src/monitor/context.ts @@ -260,13 +260,28 @@ export function createSlackMonitorContext(params: { if (!p.threadTs) { return; } + const payload = { + token: params.botToken, + channel_id: p.channelId, + thread_ts: p.threadTs, + status: p.status, + }; + const client = params.app.client as unknown as { + assistant?: { + threads?: { + setStatus?: (args: typeof payload) => Promise; + }; + }; + apiCall?: (method: string, args: typeof payload) => Promise; + }; try { - await params.app.client.assistant.threads.setStatus({ - token: params.botToken, - channel_id: p.channelId, - thread_ts: p.threadTs, - status: p.status, - }); + if (client.assistant?.threads?.setStatus) { + await client.assistant.threads.setStatus(payload); + return; + } + if (typeof client.apiCall === "function") { + await client.apiCall("assistant.threads.setStatus", payload); + } } catch (err) { logVerbose(`slack status update failed for channel ${p.channelId}: ${String(err)}`); }