/** * surface-direct-delivery.ts, sending straight to one surface's own API, * bypassing the channel render path. * * Split out of surface-delivery.ts, which was back over the 800-line cap. Same * arrangement as surface-approval-delivery.ts: a cohesive per-surface block * that differs only in how each surface expresses the same message, with the * routing decision left in DaemonSurfaceDeliveryHelper. * * IMPORTANT, what this module is NOT. `deliverSurfaceProgress` here is * implemented for slack, discord and ntfy only, and that list is much smaller * than the set of surfaces the platform can talk to. It is a fallback, not the * delivery path: the general path is the channel delivery router, which every * surface has a strategy for. An unimplemented surface therefore THROWS by * name, returning quietly is what let a caller read "nothing was sent" as * "the message went out". * * Every function takes its collaborators as an object rather than a bound * method: passing `configManager.get` on its own loses the receiver and throws * inside the ConfigManager. */ import type { ConfigManager } from '../config/manager.js'; import type { ServiceRegistry } from '../config/service-registry.js'; import type { AgentManager } from '../tools/agent/index.js'; import type { PendingSurfaceReply } from './types.js'; export interface SurfaceDirectDeliveryDeps { readonly serviceRegistry: Pick; readonly configManager: Pick; readonly agentManager: Pick; readonly resolveSlackWebhookUrl: () => Promise; readonly resolveSlackBotToken: () => Promise; readonly signWebhookPayload: (body: string, secret: string) => string; } /** * Push a one-line status to a surface directly. * * See the module header: slack/discord/ntfy only, and anything else throws. */ export declare function deliverSurfaceProgress(deps: SurfaceDirectDeliveryDeps, pending: PendingSurfaceReply, progress: string): Promise; export declare function deliverSlackAgentReply(deps: SurfaceDirectDeliveryDeps, pending: PendingSurfaceReply, message: string): Promise; export declare function deliverDiscordAgentReply(deps: SurfaceDirectDeliveryDeps, pending: PendingSurfaceReply, message: string): Promise; export declare function deliverNtfyAgentReply(deps: SurfaceDirectDeliveryDeps, pending: PendingSurfaceReply, message: string): Promise; export declare function deliverWebhookAgentReply(deps: SurfaceDirectDeliveryDeps, pending: PendingSurfaceReply, message: string): Promise; //# sourceMappingURL=surface-direct-delivery.d.ts.map