/** * `agent-relay activity` — broker-wide activity tail. * * Streams the broker `/ws` event feed and renders high-signal lifecycle, * delivery, message, and worker output events as readable log lines. */ import { Command } from 'commander'; import WebSocket from 'ws'; import { type BrokerConnectionDeps, type BrokerConnectionOptions } from '../lib/broker-connection.js'; type ExitFn = (code: number) => never; export interface ActivityWebSocket { on(event: 'open', listener: () => void): unknown; on(event: 'message', listener: (data: WebSocket.RawData) => void): unknown; on(event: 'close', listener: (code: number, reason: Buffer) => void): unknown; on(event: 'error', listener: (err: Error) => void): unknown; close(code?: number, reason?: string): void; } export type ActivityWebSocketFactory = (url: string, headers: Record) => ActivityWebSocket; export interface ActivityDependencies extends BrokerConnectionDeps { createWebSocket: ActivityWebSocketFactory; writeLine: (line: string) => void; log: (...args: unknown[]) => void; error: (...args: unknown[]) => void; onSignal: (signal: NodeJS.Signals, handler: () => void | Promise) => void; nowIso: () => string; exit: ExitFn; } export interface ActivityOptions extends BrokerConnectionOptions { sinceSeq?: string; json?: boolean; streams?: boolean; kind?: string; name?: string; ids?: boolean; } type ActivityEvent = Record & { kind?: unknown; seq?: unknown; }; interface ActivityFormatOptions { ids?: boolean; } export declare function formatActivityEvent(event: ActivityEvent, nowIso: string, options?: ActivityFormatOptions): string | null; export declare function runActivitySession(options: ActivityOptions, deps: ActivityDependencies): Promise; export declare function registerActivityCommands(program: Command, overrides?: Partial): void; export {}; //# sourceMappingURL=activity.d.ts.map