UNPKG

solidworks-mcp-server

Version:

Clean Architecture SolidWorks MCP Server - Production-ready with SOLID principles

381 lines 13.3 kB
/** * Configuration Management System * Centralized, type-safe configuration with validation */ import { z } from 'zod'; import { Result, IConfigurationProvider } from './core-abstractions'; /** * Complete configuration schema */ declare const ConfigurationSchema: z.ZodObject<{ connection: z.ZodObject<{ solidworksPath: z.ZodOptional<z.ZodString>; retryAttempts: z.ZodDefault<z.ZodNumber>; retryDelay: z.ZodDefault<z.ZodNumber>; timeout: z.ZodDefault<z.ZodNumber>; autoConnect: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { retryAttempts: number; retryDelay: number; timeout: number; autoConnect: boolean; solidworksPath?: string | undefined; }, { solidworksPath?: string | undefined; retryAttempts?: number | undefined; retryDelay?: number | undefined; timeout?: number | undefined; autoConnect?: boolean | undefined; }>; logging: z.ZodObject<{ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "fatal"]>>; console: z.ZodDefault<z.ZodBoolean>; file: z.ZodDefault<z.ZodBoolean>; filePath: z.ZodOptional<z.ZodString>; maxFileSize: z.ZodDefault<z.ZodNumber>; maxFiles: z.ZodDefault<z.ZodNumber>; format: z.ZodDefault<z.ZodEnum<["json", "text"]>>; }, "strip", z.ZodTypeAny, { level: "error" | "debug" | "info" | "warn" | "fatal"; console: boolean; file: boolean; maxFileSize: number; maxFiles: number; format: "json" | "text"; filePath?: string | undefined; }, { level?: "error" | "debug" | "info" | "warn" | "fatal" | undefined; console?: boolean | undefined; file?: boolean | undefined; filePath?: string | undefined; maxFileSize?: number | undefined; maxFiles?: number | undefined; format?: "json" | "text" | undefined; }>; cache: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; maxEntries: z.ZodDefault<z.ZodNumber>; ttl: z.ZodDefault<z.ZodNumber>; strategy: z.ZodDefault<z.ZodEnum<["lru", "lfu", "fifo"]>>; }, "strip", z.ZodTypeAny, { enabled: boolean; maxEntries: number; ttl: number; strategy: "lru" | "lfu" | "fifo"; }, { enabled?: boolean | undefined; maxEntries?: number | undefined; ttl?: number | undefined; strategy?: "lru" | "lfu" | "fifo" | undefined; }>; performance: z.ZodObject<{ maxConcurrentOperations: z.ZodDefault<z.ZodNumber>; operationTimeout: z.ZodDefault<z.ZodNumber>; memoryLimit: z.ZodOptional<z.ZodNumber>; enableMetrics: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { maxConcurrentOperations: number; operationTimeout: number; enableMetrics: boolean; memoryLimit?: number | undefined; }, { maxConcurrentOperations?: number | undefined; operationTimeout?: number | undefined; memoryLimit?: number | undefined; enableMetrics?: boolean | undefined; }>; security: z.ZodObject<{ enableMacroSecurity: z.ZodDefault<z.ZodBoolean>; macroSecurityLevel: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>; trustedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>; enableAudit: z.ZodDefault<z.ZodBoolean>; encryptSensitiveData: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { enableMacroSecurity: boolean; macroSecurityLevel: "low" | "medium" | "high"; trustedPaths: string[]; enableAudit: boolean; encryptSensitiveData: boolean; }, { enableMacroSecurity?: boolean | undefined; macroSecurityLevel?: "low" | "medium" | "high" | undefined; trustedPaths?: string[] | undefined; enableAudit?: boolean | undefined; encryptSensitiveData?: boolean | undefined; }>; templates: z.ZodObject<{ partTemplate: z.ZodOptional<z.ZodString>; assemblyTemplate: z.ZodOptional<z.ZodString>; drawingTemplate: z.ZodOptional<z.ZodString>; customTemplatesPath: z.ZodOptional<z.ZodString>; autoDetectTemplates: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { autoDetectTemplates: boolean; partTemplate?: string | undefined; assemblyTemplate?: string | undefined; drawingTemplate?: string | undefined; customTemplatesPath?: string | undefined; }, { partTemplate?: string | undefined; assemblyTemplate?: string | undefined; drawingTemplate?: string | undefined; customTemplatesPath?: string | undefined; autoDetectTemplates?: boolean | undefined; }>; database: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; type: z.ZodOptional<z.ZodEnum<["mssql", "postgresql", "sqlite"]>>; connectionString: z.ZodOptional<z.ZodString>; poolSize: z.ZodDefault<z.ZodNumber>; connectionTimeout: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { enabled: boolean; poolSize: number; connectionTimeout: number; type?: "mssql" | "postgresql" | "sqlite" | undefined; connectionString?: string | undefined; }, { type?: "mssql" | "postgresql" | "sqlite" | undefined; enabled?: boolean | undefined; connectionString?: string | undefined; poolSize?: number | undefined; connectionTimeout?: number | undefined; }>; features: z.ZodObject<{ enableMacroRecording: z.ZodDefault<z.ZodBoolean>; enablePDM: z.ZodDefault<z.ZodBoolean>; enableDesignTables: z.ZodDefault<z.ZodBoolean>; enableVBAGeneration: z.ZodDefault<z.ZodBoolean>; enableAdvancedAnalysis: z.ZodDefault<z.ZodBoolean>; enableExperimentalFeatures: z.ZodDefault<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { enableMacroRecording: boolean; enablePDM: boolean; enableDesignTables: boolean; enableVBAGeneration: boolean; enableAdvancedAnalysis: boolean; enableExperimentalFeatures: boolean; }, { enableMacroRecording?: boolean | undefined; enablePDM?: boolean | undefined; enableDesignTables?: boolean | undefined; enableVBAGeneration?: boolean | undefined; enableAdvancedAnalysis?: boolean | undefined; enableExperimentalFeatures?: boolean | undefined; }>; environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>; version: z.ZodDefault<z.ZodString>; }, "strip", z.ZodTypeAny, { connection: { retryAttempts: number; retryDelay: number; timeout: number; autoConnect: boolean; solidworksPath?: string | undefined; }; logging: { level: "error" | "debug" | "info" | "warn" | "fatal"; console: boolean; file: boolean; maxFileSize: number; maxFiles: number; format: "json" | "text"; filePath?: string | undefined; }; cache: { enabled: boolean; maxEntries: number; ttl: number; strategy: "lru" | "lfu" | "fifo"; }; performance: { maxConcurrentOperations: number; operationTimeout: number; enableMetrics: boolean; memoryLimit?: number | undefined; }; security: { enableMacroSecurity: boolean; macroSecurityLevel: "low" | "medium" | "high"; trustedPaths: string[]; enableAudit: boolean; encryptSensitiveData: boolean; }; templates: { autoDetectTemplates: boolean; partTemplate?: string | undefined; assemblyTemplate?: string | undefined; drawingTemplate?: string | undefined; customTemplatesPath?: string | undefined; }; database: { enabled: boolean; poolSize: number; connectionTimeout: number; type?: "mssql" | "postgresql" | "sqlite" | undefined; connectionString?: string | undefined; }; features: { enableMacroRecording: boolean; enablePDM: boolean; enableDesignTables: boolean; enableVBAGeneration: boolean; enableAdvancedAnalysis: boolean; enableExperimentalFeatures: boolean; }; environment: "development" | "staging" | "production"; version: string; }, { connection: { solidworksPath?: string | undefined; retryAttempts?: number | undefined; retryDelay?: number | undefined; timeout?: number | undefined; autoConnect?: boolean | undefined; }; logging: { level?: "error" | "debug" | "info" | "warn" | "fatal" | undefined; console?: boolean | undefined; file?: boolean | undefined; filePath?: string | undefined; maxFileSize?: number | undefined; maxFiles?: number | undefined; format?: "json" | "text" | undefined; }; cache: { enabled?: boolean | undefined; maxEntries?: number | undefined; ttl?: number | undefined; strategy?: "lru" | "lfu" | "fifo" | undefined; }; performance: { maxConcurrentOperations?: number | undefined; operationTimeout?: number | undefined; memoryLimit?: number | undefined; enableMetrics?: boolean | undefined; }; security: { enableMacroSecurity?: boolean | undefined; macroSecurityLevel?: "low" | "medium" | "high" | undefined; trustedPaths?: string[] | undefined; enableAudit?: boolean | undefined; encryptSensitiveData?: boolean | undefined; }; templates: { partTemplate?: string | undefined; assemblyTemplate?: string | undefined; drawingTemplate?: string | undefined; customTemplatesPath?: string | undefined; autoDetectTemplates?: boolean | undefined; }; database: { type?: "mssql" | "postgresql" | "sqlite" | undefined; enabled?: boolean | undefined; connectionString?: string | undefined; poolSize?: number | undefined; connectionTimeout?: number | undefined; }; features: { enableMacroRecording?: boolean | undefined; enablePDM?: boolean | undefined; enableDesignTables?: boolean | undefined; enableVBAGeneration?: boolean | undefined; enableAdvancedAnalysis?: boolean | undefined; enableExperimentalFeatures?: boolean | undefined; }; environment?: "development" | "staging" | "production" | undefined; version?: string | undefined; }>; export type Configuration = z.infer<typeof ConfigurationSchema>; /** * Configuration source interface */ interface IConfigurationSource { load(): Promise<Result<Record<string, unknown>>>; save?(config: Record<string, unknown>): Promise<Result<void>>; priority: number; } /** * Main configuration manager */ export declare class ConfigurationManager implements IConfigurationProvider { private config; private readonly sources; private readonly listeners; constructor(); /** * Add a configuration source */ addSource(source: IConfigurationSource): void; /** * Load configuration from all sources */ reload(): Promise<Result<void>>; /** * Get configuration value */ get<T = unknown>(key: string): T | undefined; /** * Get required configuration value */ getRequired<T = unknown>(key: string): T; /** * Set configuration value */ set(key: string, value: unknown): void; /** * Check if configuration has a key */ has(key: string): boolean; /** * Validate current configuration */ validate(): Result<void>; /** * Get full configuration */ getConfiguration(): Configuration; /** * Save configuration to file */ save(filePath?: string): Promise<Result<void>>; /** * Watch for configuration changes */ watch(key: string, callback: (value: unknown) => void): () => void; /** * Deep merge objects */ private deepMerge; /** * Notify listeners of changes */ private notifyChanges; /** * Notify listeners for a specific key */ private notifyKey; /** * Find changed keys between configurations */ private findChanges; } export declare const configManager: ConfigurationManager; /** * Get typed configuration sections */ export declare class ConfigHelper { static getConnectionConfig(): Configuration['connection']; static getLoggingConfig(): Configuration['logging']; static getCacheConfig(): Configuration['cache']; static getPerformanceConfig(): Configuration['performance']; static getSecurityConfig(): Configuration['security']; static getTemplatesConfig(): Configuration['templates']; static getDatabaseConfig(): Configuration['database']; static getFeatureFlags(): Configuration['features']; static getEnvironment(): Configuration['environment']; static isDevelopment(): boolean; static isProduction(): boolean; } export {}; //# sourceMappingURL=configuration-manager.d.ts.map