mirror of https://github.com/openclaw/openclaw.git
59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
import type { ClawdbotConfig } from "../config/config.js";
|
|
import { sendMessageDiscord } from "../discord/send.js";
|
|
import { sendMessageIMessage } from "../imessage/send.js";
|
|
import type { OutboundSendDeps } from "../infra/outbound/deliver.js";
|
|
import { sendMessageMSTeams } from "../msteams/send.js";
|
|
import { logWebSelfId, sendMessageWhatsApp } from "../providers/web/index.js";
|
|
import { sendMessageSignal } from "../signal/send.js";
|
|
import { sendMessageSlack } from "../slack/send.js";
|
|
import { sendMessageTelegram } from "../telegram/send.js";
|
|
|
|
export type CliDeps = {
|
|
sendMessageWhatsApp: typeof sendMessageWhatsApp;
|
|
sendMessageTelegram: typeof sendMessageTelegram;
|
|
sendMessageDiscord: typeof sendMessageDiscord;
|
|
sendMessageSlack: typeof sendMessageSlack;
|
|
sendMessageSignal: typeof sendMessageSignal;
|
|
sendMessageIMessage: typeof sendMessageIMessage;
|
|
sendMessageMSTeams: typeof sendMessageMSTeams;
|
|
};
|
|
|
|
export function createDefaultDeps(): CliDeps {
|
|
return {
|
|
sendMessageWhatsApp,
|
|
sendMessageTelegram,
|
|
sendMessageDiscord,
|
|
sendMessageSlack,
|
|
sendMessageSignal,
|
|
sendMessageIMessage,
|
|
sendMessageMSTeams,
|
|
};
|
|
}
|
|
|
|
// Provider docking: extend this mapping when adding new outbound send deps.
|
|
export function createOutboundSendDeps(
|
|
deps: CliDeps,
|
|
cfg: ClawdbotConfig,
|
|
): OutboundSendDeps {
|
|
return {
|
|
sendWhatsApp: deps.sendMessageWhatsApp,
|
|
sendTelegram: deps.sendMessageTelegram,
|
|
sendDiscord: deps.sendMessageDiscord,
|
|
sendSlack: deps.sendMessageSlack,
|
|
sendSignal: deps.sendMessageSignal,
|
|
sendIMessage: deps.sendMessageIMessage,
|
|
// Provider docking: MS Teams send requires full cfg (credentials), wrap to match OutboundSendDeps.
|
|
sendMSTeams: deps.sendMessageMSTeams
|
|
? async (to, text, opts) =>
|
|
await deps.sendMessageMSTeams({
|
|
cfg,
|
|
to,
|
|
text,
|
|
mediaUrl: opts?.mediaUrl,
|
|
})
|
|
: undefined,
|
|
};
|
|
}
|
|
|
|
export { logWebSelfId };
|