/** * ClaudeBase CLI Type Definitions * Types for catalog, installation, and plugin management */ export declare enum ErrorCode { CATALOG_FETCH_FAILED = "CATALOG_FETCH_FAILED", CATALOG_INVALID_JSON = "CATALOG_INVALID_JSON", CATALOG_UNKNOWN_SCHEMA_VERSION = "CATALOG_UNKNOWN_SCHEMA_VERSION", CATALOG_UNKNOWN_FIELD = "CATALOG_UNKNOWN_FIELD", CATALOG_MISSING_REQUIRED_FIELD = "CATALOG_MISSING_REQUIRED_FIELD", CATALOG_HASH_MISMATCH = "CATALOG_HASH_MISMATCH", CATALOG_SNAPSHOT_NOT_FOUND = "CATALOG_SNAPSHOT_NOT_FOUND", CATALOG_CACHE_CORRUPTED = "CATALOG_CACHE_CORRUPTED", PLUGIN_NOT_FOUND = "PLUGIN_NOT_FOUND", PLUGIN_REVOKED = "PLUGIN_REVOKED", PLUGIN_UNLISTED = "PLUGIN_UNLISTED", PLUGIN_NAME_MISMATCH = "PLUGIN_NAME_MISMATCH", PLUGIN_NPM_PACKAGE_MISMATCH = "PLUGIN_NPM_PACKAGE_MISMATCH", INSTALL_TARBALL_FETCH_FAILED = "INSTALL_TARBALL_FETCH_FAILED", INSTALL_TARBALL_SYMLINK = "INSTALL_TARBALL_SYMLINK", INSTALL_TARBALL_PATH_TRAVERSAL = "INSTALL_TARBALL_PATH_TRAVERSAL", INSTALL_TARBALL_FORBIDDEN_FILE = "INSTALL_TARBALL_FORBIDDEN_FILE", INSTALL_TARBALL_SIZE_EXCEEDED = "INSTALL_TARBALL_SIZE_EXCEEDED", INSTALL_LIFECYCLE_SCRIPTS = "INSTALL_LIFECYCLE_SCRIPTS", INSTALL_INTEGRITY_MISMATCH = "INSTALL_INTEGRITY_MISMATCH", INSTALL_MISSING_PLUGIN_JSON = "INSTALL_MISSING_PLUGIN_JSON", INSTALL_MISSING_SKILLS_DIR = "INSTALL_MISSING_SKILLS_DIR", INSTALL_MISSING_MCP_JSON = "INSTALL_MISSING_MCP_JSON", INSTALL_PLUGIN_JSON_NAME_MISMATCH = "INSTALL_PLUGIN_JSON_NAME_MISMATCH", INSTALL_ALREADY_EXISTS = "INSTALL_ALREADY_EXISTS", INSTALL_ROLLBACK_FAILED = "INSTALL_ROLLBACK_FAILED", VERSION_DOWNGRADE_FORBIDDEN = "VERSION_DOWNGRADE_FORBIDDEN", VERSION_INVALID = "VERSION_INVALID", FS_PERMISSION_DENIED = "FS_PERMISSION_DENIED", FS_ATOMIC_MOVE_FAILED = "FS_ATOMIC_MOVE_FAILED", NETWORK_ERROR = "NETWORK_ERROR", UNKNOWN_ERROR = "UNKNOWN_ERROR", OFFLINE_MODE_VIOLATION = "OFFLINE_MODE_VIOLATION", CATALOG_DOWNGRADE_DETECTED = "CATALOG_DOWNGRADE_DETECTED" } export declare class CLIError extends Error { readonly code: ErrorCode; readonly details?: Record | undefined; constructor(code: ErrorCode, message: string, details?: Record | undefined); } export declare const SUPPORTED_SCHEMA_VERSIONS: readonly [1]; export type SupportedSchemaVersion = (typeof SUPPORTED_SCHEMA_VERSIONS)[number]; export interface CatalogPointer { schemaVersion: number; currentSnapshotId: string | null; currentSnapshotHash: string | null; updatedAt: string; } export interface CatalogNpmInfo { package: string; version: string; } export interface CatalogAuthor { name: string; url?: string; } export interface CatalogCapabilities { skills?: string[]; hooks?: string[]; mcp?: string[]; commands?: string[]; } export interface CatalogRisk { flags: string[]; notes?: string; } export interface CatalogStatus { visibility: 'public' | 'unlisted' | 'revoked'; reason?: string; } export interface CatalogEntry { id: string; name: string; displayName: string; description: string; npm: CatalogNpmInfo; author: CatalogAuthor; repository?: string; license?: string; categories: string[]; tags: string[]; capabilities?: CatalogCapabilities; risk: CatalogRisk; status: CatalogStatus; publishedAt: string; updatedAt: string; } export interface CatalogSnapshot { schemaVersion: number; generatedAt: string; entries: CatalogEntry[]; } export declare const ALLOWED_POINTER_FIELDS: Set; export declare const ALLOWED_SNAPSHOT_FIELDS: Set; export declare const ALLOWED_ENTRY_FIELDS: Set; export interface CatalogCache { pointer: CatalogPointer; snapshot: CatalogSnapshot; snapshotHash: string; fetchedAt: string; } export interface CatalogState { currentCache: CatalogCache | null; latestSeenHash: string | null; latestSeenTime: string | null; catalogUrl: string; } export interface CatalogAuditEntry { timestamp: string; operation: 'refresh' | 'one-shot-miss' | 'clear'; oldHash: string | null; newHash: string | null; schemaVersion: number | null; result: 'success' | 'no-change' | 'failure' | 'downgrade-blocked'; reason?: string; } export interface TarballCache { packageName: string; version: string; sha256: string; tarballPath: string; cachedAt: string; } export interface IntegrityEntry { path: string; size: number; sha256: string; } export interface IntegrityJson { version: number; generatedAt: string; packageName: string; packageVersion: string; rootHash: string; files: IntegrityEntry[]; } export interface PluginJson { name: string; version: string; description?: string; permissions?: { allow?: string[]; deny?: string[]; }; settings?: Record; } export interface InstalledPlugin { name: string; version: string; npmPackage: string; installedAt: string; integrityHash: string; hasSkills: boolean; hasMcp: boolean; } export interface PluginManifest { version: number; plugins: InstalledPlugin[]; } export interface InstallOptions { allowUnlisted: boolean; allowDowngrade: boolean; refreshCatalog: boolean; force: boolean; offline: boolean; } export type NetworkPolicy = 'allowed' | 'forbidden' | 'conditional'; export interface RefreshResult { updated: boolean; oldHash: string | null; newHash: string; schemaVersion: number; entryCount: number; fetchTime: string; } export interface TarballEntry { path: string; size: number; type: 'file' | 'directory' | 'symlink'; content?: Buffer; } export interface CLIConfig { catalogUrl: string; cacheDir: string; pluginDir: string; maxTarballSize: number; maxFileSize: number; } export declare const DEFAULT_CONFIG: CLIConfig; //# sourceMappingURL=types.d.ts.map