solidworks-mcp-server 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +33 -10
  2. package/dist/application/services/command-bus.d.ts +39 -0
  3. package/dist/application/services/command-bus.d.ts.map +1 -0
  4. package/dist/application/services/command-bus.js +88 -0
  5. package/dist/application/services/command-bus.js.map +1 -0
  6. package/dist/application/services/event-bus.d.ts +31 -0
  7. package/dist/application/services/event-bus.d.ts.map +1 -0
  8. package/dist/application/services/event-bus.js +83 -0
  9. package/dist/application/services/event-bus.js.map +1 -0
  10. package/dist/application/services/query-bus.d.ts +30 -0
  11. package/dist/application/services/query-bus.d.ts.map +1 -0
  12. package/dist/application/services/query-bus.js +59 -0
  13. package/dist/application/services/query-bus.js.map +1 -0
  14. package/dist/application/services/tool-registry.d.ts +53 -0
  15. package/dist/application/services/tool-registry.d.ts.map +1 -0
  16. package/dist/application/services/tool-registry.js +81 -0
  17. package/dist/application/services/tool-registry.js.map +1 -0
  18. package/dist/application/use-cases/analysis/index.d.ts +13 -0
  19. package/dist/application/use-cases/analysis/index.d.ts.map +1 -0
  20. package/dist/application/use-cases/analysis/index.js +17 -0
  21. package/dist/application/use-cases/analysis/index.js.map +1 -0
  22. package/dist/application/use-cases/drawing/index.d.ts +13 -0
  23. package/dist/application/use-cases/drawing/index.d.ts.map +1 -0
  24. package/dist/application/use-cases/drawing/index.js +17 -0
  25. package/dist/application/use-cases/drawing/index.js.map +1 -0
  26. package/dist/application/use-cases/export/index.d.ts +13 -0
  27. package/dist/application/use-cases/export/index.d.ts.map +1 -0
  28. package/dist/application/use-cases/export/index.js +17 -0
  29. package/dist/application/use-cases/export/index.js.map +1 -0
  30. package/dist/application/use-cases/macro/index.d.ts +13 -0
  31. package/dist/application/use-cases/macro/index.d.ts.map +1 -0
  32. package/dist/application/use-cases/macro/index.js +17 -0
  33. package/dist/application/use-cases/macro/index.js.map +1 -0
  34. package/dist/application/use-cases/modeling/index.d.ts +56 -0
  35. package/dist/application/use-cases/modeling/index.d.ts.map +1 -0
  36. package/dist/application/use-cases/modeling/index.js +385 -0
  37. package/dist/application/use-cases/modeling/index.js.map +1 -0
  38. package/dist/core/interfaces/core-abstractions.d.ts +289 -0
  39. package/dist/core/interfaces/core-abstractions.d.ts.map +1 -0
  40. package/dist/core/interfaces/core-abstractions.js +121 -0
  41. package/dist/core/interfaces/core-abstractions.js.map +1 -0
  42. package/dist/index.refactored.d.ts +7 -0
  43. package/dist/index.refactored.d.ts.map +1 -0
  44. package/dist/index.refactored.js +254 -0
  45. package/dist/index.refactored.js.map +1 -0
  46. package/dist/infrastructure/config/configuration-manager.d.ts +381 -0
  47. package/dist/infrastructure/config/configuration-manager.d.ts.map +1 -0
  48. package/dist/infrastructure/config/configuration-manager.js +566 -0
  49. package/dist/infrastructure/config/configuration-manager.js.map +1 -0
  50. package/dist/infrastructure/container/service-locator.d.ts +14 -0
  51. package/dist/infrastructure/container/service-locator.d.ts.map +1 -0
  52. package/dist/infrastructure/container/service-locator.js +38 -0
  53. package/dist/infrastructure/container/service-locator.js.map +1 -0
  54. package/dist/infrastructure/logging/logger.d.ts +24 -0
  55. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  56. package/dist/infrastructure/logging/logger.js +65 -0
  57. package/dist/infrastructure/logging/logger.js.map +1 -0
  58. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +43 -0
  59. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +1 -0
  60. package/dist/infrastructure/solidworks/solidworks-adapter.js +527 -0
  61. package/dist/infrastructure/solidworks/solidworks-adapter.js.map +1 -0
  62. package/dist/presentation/mcp/request-handler.d.ts +41 -0
  63. package/dist/presentation/mcp/request-handler.d.ts.map +1 -0
  64. package/dist/presentation/mcp/request-handler.js +100 -0
  65. package/dist/presentation/mcp/request-handler.js.map +1 -0
  66. package/dist/presentation/transformers/error-transformer.d.ts +16 -0
  67. package/dist/presentation/transformers/error-transformer.d.ts.map +1 -0
  68. package/dist/presentation/transformers/error-transformer.js +44 -0
  69. package/dist/presentation/transformers/error-transformer.js.map +1 -0
  70. package/dist/presentation/transformers/response-transformer.d.ts +24 -0
  71. package/dist/presentation/transformers/response-transformer.d.ts.map +1 -0
  72. package/dist/presentation/transformers/response-transformer.js +102 -0
  73. package/dist/presentation/transformers/response-transformer.js.map +1 -0
  74. package/dist/resources/design-table.d.ts +28 -28
  75. package/dist/resources/pdm.d.ts +70 -70
  76. package/dist/shared/constants/solidworks-constants.d.ts +302 -0
  77. package/dist/shared/constants/solidworks-constants.d.ts.map +1 -0
  78. package/dist/shared/constants/solidworks-constants.js +471 -0
  79. package/dist/shared/constants/solidworks-constants.js.map +1 -0
  80. package/dist/tools/diagnostics.d.ts +21 -0
  81. package/dist/tools/diagnostics.d.ts.map +1 -0
  82. package/dist/tools/diagnostics.js +120 -0
  83. package/dist/tools/diagnostics.js.map +1 -0
  84. package/dist/tools/drawing-analysis.d.ts +9 -0
  85. package/dist/tools/drawing-analysis.d.ts.map +1 -0
  86. package/dist/tools/drawing-analysis.js +239 -0
  87. package/dist/tools/drawing-analysis.js.map +1 -0
  88. package/dist/tools/drawing.d.ts +4 -4
  89. package/dist/tools/enhanced-drawing.d.ts +51 -0
  90. package/dist/tools/enhanced-drawing.d.ts.map +1 -0
  91. package/dist/tools/enhanced-drawing.js +193 -0
  92. package/dist/tools/enhanced-drawing.js.map +1 -0
  93. package/dist/tools/export.d.ts +6 -6
  94. package/dist/tools/macro-security.d.ts +9 -0
  95. package/dist/tools/macro-security.d.ts.map +1 -0
  96. package/dist/tools/macro-security.js +86 -0
  97. package/dist/tools/macro-security.js.map +1 -0
  98. package/dist/tools/vba-advanced.d.ts +12 -12
  99. package/dist/tools/vba-assembly.d.ts +8 -8
  100. package/dist/tools/vba-drawing.d.ts +14 -14
  101. package/dist/tools/vba-file-management.d.ts +16 -16
  102. package/dist/tools/vba-part.d.ts +10 -10
  103. package/dist/tools/vba.d.ts +67 -67
  104. package/package.json +12 -7
@@ -0,0 +1,254 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolidWorks MCP Server - Clean Architecture Implementation
4
+ * Production-ready, maintainable, and scalable MCP server
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
9
+ // Core imports
10
+ import { ResultUtil, DomainError } from './core/interfaces/core-abstractions.js';
11
+ // Infrastructure imports
12
+ import { ConfigurationManager } from './infrastructure/config/configuration-manager.js';
13
+ import { SolidWorksAdapter } from './infrastructure/solidworks/solidworks-adapter.js';
14
+ import { Logger } from './infrastructure/logging/logger.js';
15
+ import { ServiceLocator } from './infrastructure/container/service-locator.js';
16
+ // Application imports
17
+ import { ToolRegistry } from './application/services/tool-registry.js';
18
+ import { CommandBus } from './application/services/command-bus.js';
19
+ import { QueryBus } from './application/services/query-bus.js';
20
+ import { EventBus } from './application/services/event-bus.js';
21
+ // Presentation imports
22
+ import { MCPRequestHandler } from './presentation/mcp/request-handler.js';
23
+ import { ErrorTransformer } from './presentation/transformers/error-transformer.js';
24
+ import { ResponseTransformer } from './presentation/transformers/response-transformer.js';
25
+ // Use cases
26
+ import { ModelingUseCases } from './application/use-cases/modeling/index.js';
27
+ import { DrawingUseCases } from './application/use-cases/drawing/index.js';
28
+ import { ExportUseCases } from './application/use-cases/export/index.js';
29
+ import { AnalysisUseCases } from './application/use-cases/analysis/index.js';
30
+ import { MacroUseCases } from './application/use-cases/macro/index.js';
31
+ /**
32
+ * Main application class implementing clean architecture
33
+ */
34
+ class SolidWorksMCPApplication {
35
+ server;
36
+ logger;
37
+ config;
38
+ serviceLocator;
39
+ swAdapter;
40
+ toolRegistry;
41
+ commandBus;
42
+ queryBus;
43
+ eventBus;
44
+ requestHandler;
45
+ isInitialized = false;
46
+ constructor() {
47
+ // Initialize core services
48
+ this.initializeCore();
49
+ }
50
+ /**
51
+ * Initialize core services and dependencies
52
+ */
53
+ initializeCore() {
54
+ try {
55
+ // 1. Setup configuration
56
+ this.config = new ConfigurationManager();
57
+ const configResult = this.config.load();
58
+ if (!ResultUtil.isSuccess(configResult)) {
59
+ throw configResult.error;
60
+ }
61
+ // 2. Setup logging
62
+ this.logger = new Logger(this.config.get('logging'));
63
+ this.logger.info('Initializing SolidWorks MCP Server', {
64
+ version: this.config.get('version'),
65
+ environment: this.config.get('environment')
66
+ });
67
+ // 3. Setup dependency injection container
68
+ this.serviceLocator = new ServiceLocator();
69
+ this.registerServices();
70
+ // 4. Setup infrastructure
71
+ this.swAdapter = new SolidWorksAdapter({
72
+ logger: this.logger,
73
+ ...this.config.get('connection')
74
+ });
75
+ // 5. Setup application services
76
+ this.commandBus = new CommandBus(this.logger);
77
+ this.queryBus = new QueryBus(this.logger);
78
+ this.eventBus = new EventBus(this.logger);
79
+ this.toolRegistry = new ToolRegistry(this.logger);
80
+ // 6. Setup presentation layer
81
+ this.requestHandler = new MCPRequestHandler({
82
+ logger: this.logger,
83
+ toolRegistry: this.toolRegistry,
84
+ commandBus: this.commandBus,
85
+ queryBus: this.queryBus,
86
+ errorTransformer: new ErrorTransformer(),
87
+ responseTransformer: new ResponseTransformer()
88
+ });
89
+ // 7. Create MCP server
90
+ this.server = new Server({
91
+ name: 'solidworks-mcp-server',
92
+ version: this.config.get('version') || '3.0.0',
93
+ description: 'Clean Architecture SolidWorks MCP Server'
94
+ }, {
95
+ capabilities: {
96
+ tools: {},
97
+ resources: {}
98
+ }
99
+ });
100
+ // 8. Register use cases
101
+ this.registerUseCases();
102
+ // 9. Setup request handlers
103
+ this.setupHandlers();
104
+ this.isInitialized = true;
105
+ this.logger.info('SolidWorks MCP Server initialized successfully');
106
+ }
107
+ catch (error) {
108
+ const message = error instanceof Error ? error.message : 'Unknown error';
109
+ console.error(`Failed to initialize server: ${message}`);
110
+ process.exit(1);
111
+ }
112
+ }
113
+ /**
114
+ * Register services in the dependency injection container
115
+ */
116
+ registerServices() {
117
+ this.serviceLocator.register('logger', this.logger);
118
+ this.serviceLocator.register('config', this.config);
119
+ this.serviceLocator.register('swAdapter', () => this.swAdapter);
120
+ this.serviceLocator.register('eventBus', () => this.eventBus);
121
+ }
122
+ /**
123
+ * Register all use cases
124
+ */
125
+ registerUseCases() {
126
+ const useCaseGroups = [
127
+ { name: 'modeling', useCases: new ModelingUseCases(this.swAdapter, this.logger) },
128
+ { name: 'drawing', useCases: new DrawingUseCases(this.swAdapter, this.logger) },
129
+ { name: 'export', useCases: new ExportUseCases(this.swAdapter, this.logger) },
130
+ { name: 'analysis', useCases: new AnalysisUseCases(this.swAdapter, this.logger) },
131
+ { name: 'macro', useCases: new MacroUseCases(this.swAdapter, this.logger) }
132
+ ];
133
+ for (const group of useCaseGroups) {
134
+ const tools = group.useCases.getTools();
135
+ for (const tool of tools) {
136
+ this.toolRegistry.register(tool);
137
+ this.logger.debug(`Registered tool: ${tool.name}`, { group: group.name });
138
+ }
139
+ }
140
+ this.logger.info(`Registered ${this.toolRegistry.count()} tools`);
141
+ }
142
+ /**
143
+ * Setup MCP request handlers
144
+ */
145
+ setupHandlers() {
146
+ // Handle tool listing
147
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
148
+ return this.requestHandler.handleListTools();
149
+ });
150
+ // Handle tool execution
151
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
152
+ return this.requestHandler.handleCallTool(request);
153
+ });
154
+ // Setup error handling
155
+ this.server.onerror = (error) => {
156
+ this.logger.error('Server error', error);
157
+ return this.handleError(error);
158
+ };
159
+ // Setup connection lifecycle
160
+ this.server.onconnect = async () => {
161
+ this.logger.info('Client connected');
162
+ if (this.config.get('connection.autoConnect')) {
163
+ const connectResult = await this.swAdapter.connect();
164
+ if (!ResultUtil.isSuccess(connectResult)) {
165
+ this.logger.warn('Failed to auto-connect to SolidWorks', connectResult.error);
166
+ }
167
+ }
168
+ };
169
+ this.server.ondisconnect = async () => {
170
+ this.logger.info('Client disconnected');
171
+ const disconnectResult = await this.swAdapter.disconnect();
172
+ if (!ResultUtil.isSuccess(disconnectResult)) {
173
+ this.logger.warn('Failed to disconnect from SolidWorks', disconnectResult.error);
174
+ }
175
+ };
176
+ }
177
+ /**
178
+ * Handle errors with proper transformation
179
+ */
180
+ handleError(error) {
181
+ if (error instanceof DomainError) {
182
+ return new McpError(ErrorCode.InternalError, error.message, error.toJSON());
183
+ }
184
+ if (error instanceof Error) {
185
+ return new McpError(ErrorCode.InternalError, error.message);
186
+ }
187
+ return new McpError(ErrorCode.InternalError, 'An unexpected error occurred');
188
+ }
189
+ /**
190
+ * Start the server
191
+ */
192
+ async start() {
193
+ if (!this.isInitialized) {
194
+ throw new Error('Server not initialized');
195
+ }
196
+ try {
197
+ const transport = new StdioServerTransport();
198
+ await this.server.connect(transport);
199
+ this.logger.info('Server started successfully');
200
+ // Setup graceful shutdown
201
+ this.setupGracefulShutdown();
202
+ }
203
+ catch (error) {
204
+ this.logger.fatal('Failed to start server', error);
205
+ throw error;
206
+ }
207
+ }
208
+ /**
209
+ * Setup graceful shutdown handlers
210
+ */
211
+ setupGracefulShutdown() {
212
+ const shutdown = async (signal) => {
213
+ this.logger.info(`Received ${signal}, shutting down gracefully...`);
214
+ try {
215
+ // Disconnect from SolidWorks
216
+ await this.swAdapter.disconnect();
217
+ // Close server
218
+ await this.server.close();
219
+ this.logger.info('Server shut down successfully');
220
+ process.exit(0);
221
+ }
222
+ catch (error) {
223
+ this.logger.error('Error during shutdown', error);
224
+ process.exit(1);
225
+ }
226
+ };
227
+ process.on('SIGINT', () => shutdown('SIGINT'));
228
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
229
+ process.on('uncaughtException', (error) => {
230
+ this.logger.fatal('Uncaught exception', error);
231
+ shutdown('uncaughtException');
232
+ });
233
+ process.on('unhandledRejection', (reason) => {
234
+ this.logger.fatal('Unhandled rejection', new Error(String(reason)));
235
+ shutdown('unhandledRejection');
236
+ });
237
+ }
238
+ }
239
+ // ============================================
240
+ // APPLICATION ENTRY POINT
241
+ // ============================================
242
+ async function main() {
243
+ try {
244
+ const app = new SolidWorksMCPApplication();
245
+ await app.start();
246
+ }
247
+ catch (error) {
248
+ console.error('Failed to start application:', error);
249
+ process.exit(1);
250
+ }
251
+ }
252
+ // Start the application
253
+ main().catch(console.error);
254
+ //# sourceMappingURL=index.refactored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.refactored.js","sourceRoot":"","sources":["../src/index.refactored.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Configuration Management System
3
+ * Centralized, type-safe configuration with validation
4
+ */
5
+ import { z } from 'zod';
6
+ import { Result, IConfigurationProvider } from './core-abstractions';
7
+ /**
8
+ * Complete configuration schema
9
+ */
10
+ declare const ConfigurationSchema: z.ZodObject<{
11
+ connection: z.ZodObject<{
12
+ solidworksPath: z.ZodOptional<z.ZodString>;
13
+ retryAttempts: z.ZodDefault<z.ZodNumber>;
14
+ retryDelay: z.ZodDefault<z.ZodNumber>;
15
+ timeout: z.ZodDefault<z.ZodNumber>;
16
+ autoConnect: z.ZodDefault<z.ZodBoolean>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ retryAttempts: number;
19
+ retryDelay: number;
20
+ timeout: number;
21
+ autoConnect: boolean;
22
+ solidworksPath?: string | undefined;
23
+ }, {
24
+ solidworksPath?: string | undefined;
25
+ retryAttempts?: number | undefined;
26
+ retryDelay?: number | undefined;
27
+ timeout?: number | undefined;
28
+ autoConnect?: boolean | undefined;
29
+ }>;
30
+ logging: z.ZodObject<{
31
+ level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "fatal"]>>;
32
+ console: z.ZodDefault<z.ZodBoolean>;
33
+ file: z.ZodDefault<z.ZodBoolean>;
34
+ filePath: z.ZodOptional<z.ZodString>;
35
+ maxFileSize: z.ZodDefault<z.ZodNumber>;
36
+ maxFiles: z.ZodDefault<z.ZodNumber>;
37
+ format: z.ZodDefault<z.ZodEnum<["json", "text"]>>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ level: "error" | "debug" | "info" | "warn" | "fatal";
40
+ console: boolean;
41
+ file: boolean;
42
+ maxFileSize: number;
43
+ maxFiles: number;
44
+ format: "json" | "text";
45
+ filePath?: string | undefined;
46
+ }, {
47
+ level?: "error" | "debug" | "info" | "warn" | "fatal" | undefined;
48
+ console?: boolean | undefined;
49
+ file?: boolean | undefined;
50
+ filePath?: string | undefined;
51
+ maxFileSize?: number | undefined;
52
+ maxFiles?: number | undefined;
53
+ format?: "json" | "text" | undefined;
54
+ }>;
55
+ cache: z.ZodObject<{
56
+ enabled: z.ZodDefault<z.ZodBoolean>;
57
+ maxEntries: z.ZodDefault<z.ZodNumber>;
58
+ ttl: z.ZodDefault<z.ZodNumber>;
59
+ strategy: z.ZodDefault<z.ZodEnum<["lru", "lfu", "fifo"]>>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ enabled: boolean;
62
+ maxEntries: number;
63
+ ttl: number;
64
+ strategy: "lru" | "lfu" | "fifo";
65
+ }, {
66
+ enabled?: boolean | undefined;
67
+ maxEntries?: number | undefined;
68
+ ttl?: number | undefined;
69
+ strategy?: "lru" | "lfu" | "fifo" | undefined;
70
+ }>;
71
+ performance: z.ZodObject<{
72
+ maxConcurrentOperations: z.ZodDefault<z.ZodNumber>;
73
+ operationTimeout: z.ZodDefault<z.ZodNumber>;
74
+ memoryLimit: z.ZodOptional<z.ZodNumber>;
75
+ enableMetrics: z.ZodDefault<z.ZodBoolean>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ maxConcurrentOperations: number;
78
+ operationTimeout: number;
79
+ enableMetrics: boolean;
80
+ memoryLimit?: number | undefined;
81
+ }, {
82
+ maxConcurrentOperations?: number | undefined;
83
+ operationTimeout?: number | undefined;
84
+ memoryLimit?: number | undefined;
85
+ enableMetrics?: boolean | undefined;
86
+ }>;
87
+ security: z.ZodObject<{
88
+ enableMacroSecurity: z.ZodDefault<z.ZodBoolean>;
89
+ macroSecurityLevel: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
90
+ trustedPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
91
+ enableAudit: z.ZodDefault<z.ZodBoolean>;
92
+ encryptSensitiveData: z.ZodDefault<z.ZodBoolean>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ enableMacroSecurity: boolean;
95
+ macroSecurityLevel: "low" | "medium" | "high";
96
+ trustedPaths: string[];
97
+ enableAudit: boolean;
98
+ encryptSensitiveData: boolean;
99
+ }, {
100
+ enableMacroSecurity?: boolean | undefined;
101
+ macroSecurityLevel?: "low" | "medium" | "high" | undefined;
102
+ trustedPaths?: string[] | undefined;
103
+ enableAudit?: boolean | undefined;
104
+ encryptSensitiveData?: boolean | undefined;
105
+ }>;
106
+ templates: z.ZodObject<{
107
+ partTemplate: z.ZodOptional<z.ZodString>;
108
+ assemblyTemplate: z.ZodOptional<z.ZodString>;
109
+ drawingTemplate: z.ZodOptional<z.ZodString>;
110
+ customTemplatesPath: z.ZodOptional<z.ZodString>;
111
+ autoDetectTemplates: z.ZodDefault<z.ZodBoolean>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ autoDetectTemplates: boolean;
114
+ partTemplate?: string | undefined;
115
+ assemblyTemplate?: string | undefined;
116
+ drawingTemplate?: string | undefined;
117
+ customTemplatesPath?: string | undefined;
118
+ }, {
119
+ partTemplate?: string | undefined;
120
+ assemblyTemplate?: string | undefined;
121
+ drawingTemplate?: string | undefined;
122
+ customTemplatesPath?: string | undefined;
123
+ autoDetectTemplates?: boolean | undefined;
124
+ }>;
125
+ database: z.ZodObject<{
126
+ enabled: z.ZodDefault<z.ZodBoolean>;
127
+ type: z.ZodOptional<z.ZodEnum<["mssql", "postgresql", "sqlite"]>>;
128
+ connectionString: z.ZodOptional<z.ZodString>;
129
+ poolSize: z.ZodDefault<z.ZodNumber>;
130
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ enabled: boolean;
133
+ poolSize: number;
134
+ connectionTimeout: number;
135
+ type?: "mssql" | "postgresql" | "sqlite" | undefined;
136
+ connectionString?: string | undefined;
137
+ }, {
138
+ type?: "mssql" | "postgresql" | "sqlite" | undefined;
139
+ enabled?: boolean | undefined;
140
+ connectionString?: string | undefined;
141
+ poolSize?: number | undefined;
142
+ connectionTimeout?: number | undefined;
143
+ }>;
144
+ features: z.ZodObject<{
145
+ enableMacroRecording: z.ZodDefault<z.ZodBoolean>;
146
+ enablePDM: z.ZodDefault<z.ZodBoolean>;
147
+ enableDesignTables: z.ZodDefault<z.ZodBoolean>;
148
+ enableVBAGeneration: z.ZodDefault<z.ZodBoolean>;
149
+ enableAdvancedAnalysis: z.ZodDefault<z.ZodBoolean>;
150
+ enableExperimentalFeatures: z.ZodDefault<z.ZodBoolean>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ enableMacroRecording: boolean;
153
+ enablePDM: boolean;
154
+ enableDesignTables: boolean;
155
+ enableVBAGeneration: boolean;
156
+ enableAdvancedAnalysis: boolean;
157
+ enableExperimentalFeatures: boolean;
158
+ }, {
159
+ enableMacroRecording?: boolean | undefined;
160
+ enablePDM?: boolean | undefined;
161
+ enableDesignTables?: boolean | undefined;
162
+ enableVBAGeneration?: boolean | undefined;
163
+ enableAdvancedAnalysis?: boolean | undefined;
164
+ enableExperimentalFeatures?: boolean | undefined;
165
+ }>;
166
+ environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production"]>>;
167
+ version: z.ZodDefault<z.ZodString>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ connection: {
170
+ retryAttempts: number;
171
+ retryDelay: number;
172
+ timeout: number;
173
+ autoConnect: boolean;
174
+ solidworksPath?: string | undefined;
175
+ };
176
+ logging: {
177
+ level: "error" | "debug" | "info" | "warn" | "fatal";
178
+ console: boolean;
179
+ file: boolean;
180
+ maxFileSize: number;
181
+ maxFiles: number;
182
+ format: "json" | "text";
183
+ filePath?: string | undefined;
184
+ };
185
+ cache: {
186
+ enabled: boolean;
187
+ maxEntries: number;
188
+ ttl: number;
189
+ strategy: "lru" | "lfu" | "fifo";
190
+ };
191
+ performance: {
192
+ maxConcurrentOperations: number;
193
+ operationTimeout: number;
194
+ enableMetrics: boolean;
195
+ memoryLimit?: number | undefined;
196
+ };
197
+ security: {
198
+ enableMacroSecurity: boolean;
199
+ macroSecurityLevel: "low" | "medium" | "high";
200
+ trustedPaths: string[];
201
+ enableAudit: boolean;
202
+ encryptSensitiveData: boolean;
203
+ };
204
+ templates: {
205
+ autoDetectTemplates: boolean;
206
+ partTemplate?: string | undefined;
207
+ assemblyTemplate?: string | undefined;
208
+ drawingTemplate?: string | undefined;
209
+ customTemplatesPath?: string | undefined;
210
+ };
211
+ database: {
212
+ enabled: boolean;
213
+ poolSize: number;
214
+ connectionTimeout: number;
215
+ type?: "mssql" | "postgresql" | "sqlite" | undefined;
216
+ connectionString?: string | undefined;
217
+ };
218
+ features: {
219
+ enableMacroRecording: boolean;
220
+ enablePDM: boolean;
221
+ enableDesignTables: boolean;
222
+ enableVBAGeneration: boolean;
223
+ enableAdvancedAnalysis: boolean;
224
+ enableExperimentalFeatures: boolean;
225
+ };
226
+ environment: "development" | "staging" | "production";
227
+ version: string;
228
+ }, {
229
+ connection: {
230
+ solidworksPath?: string | undefined;
231
+ retryAttempts?: number | undefined;
232
+ retryDelay?: number | undefined;
233
+ timeout?: number | undefined;
234
+ autoConnect?: boolean | undefined;
235
+ };
236
+ logging: {
237
+ level?: "error" | "debug" | "info" | "warn" | "fatal" | undefined;
238
+ console?: boolean | undefined;
239
+ file?: boolean | undefined;
240
+ filePath?: string | undefined;
241
+ maxFileSize?: number | undefined;
242
+ maxFiles?: number | undefined;
243
+ format?: "json" | "text" | undefined;
244
+ };
245
+ cache: {
246
+ enabled?: boolean | undefined;
247
+ maxEntries?: number | undefined;
248
+ ttl?: number | undefined;
249
+ strategy?: "lru" | "lfu" | "fifo" | undefined;
250
+ };
251
+ performance: {
252
+ maxConcurrentOperations?: number | undefined;
253
+ operationTimeout?: number | undefined;
254
+ memoryLimit?: number | undefined;
255
+ enableMetrics?: boolean | undefined;
256
+ };
257
+ security: {
258
+ enableMacroSecurity?: boolean | undefined;
259
+ macroSecurityLevel?: "low" | "medium" | "high" | undefined;
260
+ trustedPaths?: string[] | undefined;
261
+ enableAudit?: boolean | undefined;
262
+ encryptSensitiveData?: boolean | undefined;
263
+ };
264
+ templates: {
265
+ partTemplate?: string | undefined;
266
+ assemblyTemplate?: string | undefined;
267
+ drawingTemplate?: string | undefined;
268
+ customTemplatesPath?: string | undefined;
269
+ autoDetectTemplates?: boolean | undefined;
270
+ };
271
+ database: {
272
+ type?: "mssql" | "postgresql" | "sqlite" | undefined;
273
+ enabled?: boolean | undefined;
274
+ connectionString?: string | undefined;
275
+ poolSize?: number | undefined;
276
+ connectionTimeout?: number | undefined;
277
+ };
278
+ features: {
279
+ enableMacroRecording?: boolean | undefined;
280
+ enablePDM?: boolean | undefined;
281
+ enableDesignTables?: boolean | undefined;
282
+ enableVBAGeneration?: boolean | undefined;
283
+ enableAdvancedAnalysis?: boolean | undefined;
284
+ enableExperimentalFeatures?: boolean | undefined;
285
+ };
286
+ environment?: "development" | "staging" | "production" | undefined;
287
+ version?: string | undefined;
288
+ }>;
289
+ export type Configuration = z.infer<typeof ConfigurationSchema>;
290
+ /**
291
+ * Configuration source interface
292
+ */
293
+ interface IConfigurationSource {
294
+ load(): Promise<Result<Record<string, unknown>>>;
295
+ save?(config: Record<string, unknown>): Promise<Result<void>>;
296
+ priority: number;
297
+ }
298
+ /**
299
+ * Main configuration manager
300
+ */
301
+ export declare class ConfigurationManager implements IConfigurationProvider {
302
+ private config;
303
+ private readonly sources;
304
+ private readonly listeners;
305
+ constructor();
306
+ /**
307
+ * Add a configuration source
308
+ */
309
+ addSource(source: IConfigurationSource): void;
310
+ /**
311
+ * Load configuration from all sources
312
+ */
313
+ reload(): Promise<Result<void>>;
314
+ /**
315
+ * Get configuration value
316
+ */
317
+ get<T = unknown>(key: string): T | undefined;
318
+ /**
319
+ * Get required configuration value
320
+ */
321
+ getRequired<T = unknown>(key: string): T;
322
+ /**
323
+ * Set configuration value
324
+ */
325
+ set(key: string, value: unknown): void;
326
+ /**
327
+ * Check if configuration has a key
328
+ */
329
+ has(key: string): boolean;
330
+ /**
331
+ * Validate current configuration
332
+ */
333
+ validate(): Result<void>;
334
+ /**
335
+ * Get full configuration
336
+ */
337
+ getConfiguration(): Configuration;
338
+ /**
339
+ * Save configuration to file
340
+ */
341
+ save(filePath?: string): Promise<Result<void>>;
342
+ /**
343
+ * Watch for configuration changes
344
+ */
345
+ watch(key: string, callback: (value: unknown) => void): () => void;
346
+ /**
347
+ * Deep merge objects
348
+ */
349
+ private deepMerge;
350
+ /**
351
+ * Notify listeners of changes
352
+ */
353
+ private notifyChanges;
354
+ /**
355
+ * Notify listeners for a specific key
356
+ */
357
+ private notifyKey;
358
+ /**
359
+ * Find changed keys between configurations
360
+ */
361
+ private findChanges;
362
+ }
363
+ export declare const configManager: ConfigurationManager;
364
+ /**
365
+ * Get typed configuration sections
366
+ */
367
+ export declare class ConfigHelper {
368
+ static getConnectionConfig(): Configuration['connection'];
369
+ static getLoggingConfig(): Configuration['logging'];
370
+ static getCacheConfig(): Configuration['cache'];
371
+ static getPerformanceConfig(): Configuration['performance'];
372
+ static getSecurityConfig(): Configuration['security'];
373
+ static getTemplatesConfig(): Configuration['templates'];
374
+ static getDatabaseConfig(): Configuration['database'];
375
+ static getFeatureFlags(): Configuration['features'];
376
+ static getEnvironment(): Configuration['environment'];
377
+ static isDevelopment(): boolean;
378
+ static isProduction(): boolean;
379
+ }
380
+ export {};
381
+ //# sourceMappingURL=configuration-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-manager.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/configuration-manager.ts"],"names":[],"mappings":"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"}