/** * `/dashboard overview` real sub-handler. * * Pipeline (mirrors `/dashboard sessions` / `/dashboard schedules`): * 1. Admin gate has ALREADY run in `handleDashboardCommand`; this function * is called with `adminOpenId` already resolved. * 2. Fetch the live overview snapshot via Route B * (`GET /__daemon/overview-snapshot?scope=global`). `/dashboard` is * a Bot admin tool panel — list modules surface cross-bot under * `?scope=global` so the first-open view matches refresh/drilldown. * 3. Project through `buildOverviewCard` (counts + settings summary line) * with section buttons routed to the goto handlers (which also send * `?scope=global`). * 4. DM the card to the admin; topic only gets a short `dm_sent` line. * * Read-only — no buttons mutate state from the overview surface itself. */ import type { LarkMessage } from '../../types.js'; import { type Locale } from '../../i18n/index.js'; import type { DaemonClient } from '../../dashboard/daemon-internal-client.js'; import type { CommandHandlerDeps } from '../command-handler.js'; import { type WorkbenchButtonLinks } from '../workbench-link.js'; /** Optional injection seam for tests. */ export interface DashboardOverviewCommandDeps { createClient?: (larkAppId: string) => DaemonClient; sendUserMessage?: (larkAppId: string, openId: string, content: string, msgType?: string) => Promise; locale?: Locale; /** Override the workbench link resolution (production reads the dashboard * port/token off disk). Tests inject a fixed value. */ resolveWorkbench?: (larkAppId: string) => WorkbenchButtonLinks | undefined; } export declare function handleDashboardOverview(_message: LarkMessage, _args: string, rootId: string, _chatId: string, deps: CommandHandlerDeps, larkAppId: string | undefined, adminOpenId: string, testDeps?: DashboardOverviewCommandDeps): Promise; //# sourceMappingURL=overview.d.ts.map