export type ResourceKind = "command" | "tool" | "package" | "mcp"; export type ResourceScope = "project" | "user" | "temporary" | "builtin"; export interface IndexedItem { key: string; kind: ResourceKind; name: string; displayName?: string; description?: string; sourceLabel: string; sourceRef: string; scope?: ResourceScope; packageName?: string; useCount: number; lastUsedAt?: number; lastSeenAt?: number; pinned?: boolean; } export interface HelpState { version: 3; items: Record; lastRefresh?: number; } export interface LegacyHelpState { version?: number; items?: Record & { key?: string; kind?: ResourceKind; name?: string; source?: string; origin?: string }>; lastRefresh?: number; } export interface McpServerEntry { name: string; mode: string; lifecycle?: string; command?: string; url?: string; } export interface PackageEntry { name: string; scope: ResourceScope; } export interface ResourceIndex { commands: IndexedItem[]; tools: IndexedItem[]; mcp: IndexedItem[]; packages: IndexedItem[]; } export interface PersistResult { ok: boolean; warning?: string; }