mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 15:30:39 +00:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { normalizeWebhookPath, type OpenClawConfig } from "openclaw/plugin-sdk/bluebubbles";
|
|
import type { ResolvedBlueBubblesAccount } from "./accounts.js";
|
|
import { getBlueBubblesRuntime } from "./runtime.js";
|
|
import type { BlueBubblesAccountConfig } from "./types.js";
|
|
|
|
export { normalizeWebhookPath };
|
|
|
|
export type BlueBubblesRuntimeEnv = {
|
|
log?: (message: string) => void;
|
|
error?: (message: string) => void;
|
|
};
|
|
|
|
export type BlueBubblesMonitorOptions = {
|
|
account: ResolvedBlueBubblesAccount;
|
|
config: OpenClawConfig;
|
|
runtime: BlueBubblesRuntimeEnv;
|
|
abortSignal: AbortSignal;
|
|
statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
|
|
webhookPath?: string;
|
|
};
|
|
|
|
export type BlueBubblesCoreRuntime = ReturnType<typeof getBlueBubblesRuntime>;
|
|
|
|
export type WebhookTarget = {
|
|
account: ResolvedBlueBubblesAccount;
|
|
config: OpenClawConfig;
|
|
runtime: BlueBubblesRuntimeEnv;
|
|
core: BlueBubblesCoreRuntime;
|
|
path: string;
|
|
statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
|
|
};
|
|
|
|
export const DEFAULT_WEBHOOK_PATH = "/bluebubbles-webhook";
|
|
|
|
export function resolveWebhookPathFromConfig(config?: BlueBubblesAccountConfig): string {
|
|
const raw = config?.webhookPath?.trim();
|
|
if (raw) {
|
|
return normalizeWebhookPath(raw);
|
|
}
|
|
return DEFAULT_WEBHOOK_PATH;
|
|
}
|