From bd6d19d95bffa33205d36fd511f41169f7e38aac Mon Sep 17 00:00:00 2001 From: "Alice (OpenClaw)" Date: Thu, 14 May 2026 08:48:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20improve=20consumer-facing=20flow=20and?= =?UTF-8?q?=20payload=20helper=20/=20=E6=94=B9=E5=96=84=E5=8F=AF=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E4=BD=BF=E7=94=A8=E6=B5=81=E7=A8=8B=E8=88=87=20Telegr?= =?UTF-8?q?am=20payload=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/telegram/outbound-payload.ts | 14 ++++++++++++++ tests/telegram-outbound-payload.test.mjs | 11 +++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/telegram/outbound-payload.ts create mode 100644 tests/telegram-outbound-payload.test.mjs diff --git a/src/telegram/outbound-payload.ts b/src/telegram/outbound-payload.ts new file mode 100644 index 0000000..f572421 --- /dev/null +++ b/src/telegram/outbound-payload.ts @@ -0,0 +1,14 @@ +import { buildDefaultReplyEndButtons } from "../runtime/openclaw-telegram-poc.js" +import type { TelegramInlineButton } from "../types.js" + +export type TelegramReplyEndPayload = { + text: string + buttons: TelegramInlineButton[][] +} + +export function buildTelegramReplyEndPayload(text: string): TelegramReplyEndPayload { + return { + text, + buttons: buildDefaultReplyEndButtons(), + } +} diff --git a/tests/telegram-outbound-payload.test.mjs b/tests/telegram-outbound-payload.test.mjs new file mode 100644 index 0000000..08065cd --- /dev/null +++ b/tests/telegram-outbound-payload.test.mjs @@ -0,0 +1,11 @@ +import test from "node:test" +import assert from "node:assert/strict" + +import { buildTelegramReplyEndPayload } from "../src/telegram/outbound-payload.ts" + +test("buildTelegramReplyEndPayload returns text plus default reply-end buttons", () => { + const payload = buildTelegramReplyEndPayload("hello") + assert.equal(payload.text, "hello") + assert.equal(payload.buttons[0][0].callback_data, "rec:continue") + assert.equal(payload.buttons[0][1].callback_data, "rec:stop") +})