let message = await client.sessions.sendMessage(first.sessionId, {
text: "Now summarize the top story",
interrupt: false,
});
const deadline = Date.now() + 300_000;
while (message.runId === null) {
if (["cancelled", "superseded", "failed"].includes(message.status)) {
throw new Error(`Queued message ${message.status}`);
}
const remaining = deadline - Date.now();
if (remaining <= 0) {
throw new Error(`Message ${message.id} is still waiting; keep its ID`);
}
await new Promise((resolve) => setTimeout(resolve, Math.min(1_000, remaining)));
message = await client.sessions.getMessage(first.sessionId, message.id);
}
const result = await client.runs.waitForCompletion(message.runId);
console.log(result.status, result.result);