import type { GjcPluginRegistryEntry, GjcPluginScope } from "./types"; /** * Observability for GJC plugin bundle surfaces, consumable by the extension * dashboard / state manager. Each surface row carries its stable extension id, * owning plugin, scope, source kind, enabled/disabled/quarantined status, and a * content hash. MCP auth/header values are NEVER included. */ export type PluginSurfaceStatus = "enabled" | "disabled" | "quarantined"; export interface PluginSurfaceRow { extensionId: string; kind: "tool" | "hook" | "mcp" | "system-appendix" | "agent-appendix" | "subskill"; plugin: string; scope: GjcPluginScope; sourceKind: GjcPluginRegistryEntry["source"]["kind"]; status: PluginSurfaceStatus; hash: string; quarantineCode?: string; } export interface PluginObservabilitySummary { plugins: number; surfaces: PluginSurfaceRow[]; } /** * Build the observability summary for the effective registry at `cwd`, including * hash-drift and session-collision quarantine status. * * Pass `{ migrate: false }` from read-only inspection surfaces (for example * `gjc customize doctor`) so reporting never persists registry migrations. */ export declare function summarizeGjcPluginObservability(cwd: string, options?: { migrate?: boolean; }): Promise;