Files
openclaw/extensions/feishu/src/approval-auth.ts
2026-04-07 13:01:23 +01:00

26 lines
1018 B
TypeScript

import {
createResolvedApproverActionAuthAdapter,
resolveApprovalApprovers,
} from "openclaw/plugin-sdk/approval-auth-runtime";
import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/text-runtime";
import { resolveFeishuAccount } from "./accounts.js";
import { normalizeFeishuTarget } from "./targets.js";
function normalizeFeishuApproverId(value: string | number): string | undefined {
const normalized = normalizeFeishuTarget(String(value));
const trimmed = normalizeOptionalLowercaseString(normalized);
return trimmed?.startsWith("ou_") ? trimmed : undefined;
}
export const feishuApprovalAuth = createResolvedApproverActionAuthAdapter({
channelLabel: "Feishu",
resolveApprovers: ({ cfg, accountId }) => {
const account = resolveFeishuAccount({ cfg, accountId }).config;
return resolveApprovalApprovers({
allowFrom: account.allowFrom,
normalizeApprover: normalizeFeishuApproverId,
});
},
normalizeSenderId: (value) => normalizeFeishuApproverId(value),
});