feat(feishu): add configurable group response mode

This commit is contained in:
xmanrui 2026-08-22 01:26:29 +08:00
parent 1a86fa5013
commit 9950261a49
19 changed files with 615 additions and 150 deletions

View file

@ -22,6 +22,7 @@ export const FEISHU_ENDPOINTS = Object.freeze({
deleteBot: "bot.delete",
setWorkspace: "bot.workspace.set",
setAgentPreset: "bot.preset.set",
setGroupResponseMode: "bot.group-response-mode.set",
// Kept for rolling upgrades. The multi-bot UI never calls these endpoints.
testConnection: "connection.test",
disconnect: "connection.disconnect",
@ -70,6 +71,10 @@ function optionalTimestamp(value) {
return undefined;
}
export function normalizeGroupResponseMode(value) {
return value === "all" ? "all" : "mention";
}
function clamp(value, min, max, fallback) {
return typeof value === "number" && Number.isFinite(value)
? Math.min(max, Math.max(min, value))
@ -186,6 +191,7 @@ export function normalizeBotConnection(value, fallbackBotId) {
configured: value.configured !== false,
workspace: optionalString(value.workspace)?.slice(0, 4_096) ?? "",
agentPreset: normalizeAgentPresetId(value.agentPreset),
groupResponseMode: normalizeGroupResponseMode(value.groupResponseMode),
bot: normalizeBot(value.bot),
health: normalizeHealth(value.health, connected),
error: normalizeError(value.error),