From b1ddf1f0487b19016baea1a0bf14143fc9dca4da Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 9 Jan 2026 17:45:42 +0100 Subject: [PATCH] refactor: share hook provider types --- src/gateway/hooks-mapping.ts | 30 ++++-------------------------- src/gateway/server-http.ts | 11 ++--------- src/gateway/server.ts | 12 ++---------- 3 files changed, 8 insertions(+), 45 deletions(-) diff --git a/src/gateway/hooks-mapping.ts b/src/gateway/hooks-mapping.ts index f71fd465d..26d32b2d1 100644 --- a/src/gateway/hooks-mapping.ts +++ b/src/gateway/hooks-mapping.ts @@ -6,6 +6,7 @@ import { type HookMappingConfig, type HooksConfig, } from "../config/config.js"; +import type { HookMessageProvider } from "./hooks.js"; export type HookMappingResolved = { id: string; @@ -18,15 +19,7 @@ export type HookMappingResolved = { messageTemplate?: string; textTemplate?: string; deliver?: boolean; - provider?: - | "last" - | "whatsapp" - | "telegram" - | "discord" - | "slack" - | "signal" - | "imessage" - | "msteams"; + provider?: HookMessageProvider; to?: string; model?: string; thinking?: string; @@ -59,15 +52,7 @@ export type HookAction = wakeMode: "now" | "next-heartbeat"; sessionKey?: string; deliver?: boolean; - provider?: - | "last" - | "whatsapp" - | "telegram" - | "discord" - | "slack" - | "signal" - | "imessage" - | "msteams"; + provider?: HookMessageProvider; to?: string; model?: string; thinking?: string; @@ -105,14 +90,7 @@ type HookTransformResult = Partial<{ name: string; sessionKey: string; deliver: boolean; - provider: - | "last" - | "whatsapp" - | "telegram" - | "discord" - | "slack" - | "signal" - | "imessage"; + provider: HookMessageProvider; to: string; model: string; thinking: string; diff --git a/src/gateway/server-http.ts b/src/gateway/server-http.ts index 607b3d992..6dc106ac9 100644 --- a/src/gateway/server-http.ts +++ b/src/gateway/server-http.ts @@ -12,6 +12,7 @@ import { handleControlUiHttpRequest } from "./control-ui.js"; import { extractHookToken, HOOK_PROVIDER_ERROR, + type HookMessageProvider, type HooksConfigResolved, normalizeAgentPayload, normalizeHookHeaders, @@ -35,15 +36,7 @@ type HookDispatchers = { wakeMode: "now" | "next-heartbeat"; sessionKey: string; deliver: boolean; - provider: - | "last" - | "whatsapp" - | "telegram" - | "discord" - | "slack" - | "signal" - | "imessage" - | "msteams"; + provider: HookMessageProvider; to?: string; model?: string; thinking?: string; diff --git a/src/gateway/server.ts b/src/gateway/server.ts index be4466722..9dd92c846 100644 --- a/src/gateway/server.ts +++ b/src/gateway/server.ts @@ -111,7 +111,7 @@ import { startGatewayConfigReloader, } from "./config-reload.js"; import { normalizeControlUiBasePath } from "./control-ui.js"; -import { resolveHooksConfig } from "./hooks.js"; +import { type HookMessageProvider, resolveHooksConfig } from "./hooks.js"; import { isLoopbackAddress, isLoopbackHost, @@ -496,15 +496,7 @@ export async function startGatewayServer( wakeMode: "now" | "next-heartbeat"; sessionKey: string; deliver: boolean; - provider: - | "last" - | "whatsapp" - | "telegram" - | "discord" - | "slack" - | "signal" - | "imessage" - | "msteams"; + provider: HookMessageProvider; to?: string; model?: string; thinking?: string;