solidworks-mcp-server 3.0.9 → 3.1.3

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 (243) hide show
  1. package/CHANGELOG.md +175 -131
  2. package/LICENSE +20 -20
  3. package/README.md +195 -444
  4. package/dist/adapters/circuit-breaker.d.ts +84 -0
  5. package/dist/adapters/circuit-breaker.d.ts.map +1 -0
  6. package/dist/adapters/circuit-breaker.js +228 -0
  7. package/dist/adapters/circuit-breaker.js.map +1 -0
  8. package/dist/adapters/connection-pool.d.ts +83 -0
  9. package/dist/adapters/connection-pool.d.ts.map +1 -0
  10. package/dist/adapters/connection-pool.js +282 -0
  11. package/dist/adapters/connection-pool.js.map +1 -0
  12. package/dist/adapters/edge-adapter.d.ts +43 -0
  13. package/dist/adapters/edge-adapter.d.ts.map +1 -0
  14. package/dist/adapters/edge-adapter.js +417 -0
  15. package/dist/adapters/edge-adapter.js.map +1 -0
  16. package/dist/adapters/factory.d.ts +60 -0
  17. package/dist/adapters/factory.d.ts.map +1 -0
  18. package/dist/adapters/factory.js +212 -0
  19. package/dist/adapters/factory.js.map +1 -0
  20. package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
  21. package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
  22. package/dist/adapters/feature-complexity-analyzer.js +322 -0
  23. package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
  24. package/dist/adapters/macro-generator.d.ts +30 -0
  25. package/dist/adapters/macro-generator.d.ts.map +1 -0
  26. package/dist/adapters/macro-generator.js +524 -0
  27. package/dist/adapters/macro-generator.js.map +1 -0
  28. package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
  29. package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
  30. package/dist/adapters/mock-solidworks-adapter.js +367 -0
  31. package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
  32. package/dist/adapters/types.d.ts +376 -0
  33. package/dist/adapters/types.d.ts.map +1 -0
  34. package/dist/adapters/types.js +261 -0
  35. package/dist/adapters/types.js.map +1 -0
  36. package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
  37. package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
  38. package/dist/adapters/winax-adapter-enhanced.js +601 -0
  39. package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
  40. package/dist/adapters/winax-adapter.d.ts +55 -0
  41. package/dist/adapters/winax-adapter.d.ts.map +1 -0
  42. package/dist/adapters/winax-adapter.js +667 -0
  43. package/dist/adapters/winax-adapter.js.map +1 -0
  44. package/dist/api/stainless-api.d.ts +29 -0
  45. package/dist/api/stainless-api.d.ts.map +1 -0
  46. package/dist/api/stainless-api.js +408 -0
  47. package/dist/api/stainless-api.js.map +1 -0
  48. package/dist/cache/manager.d.ts.map +1 -1
  49. package/dist/cache/manager.js +4 -3
  50. package/dist/cache/manager.js.map +1 -1
  51. package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
  52. package/dist/core/interfaces/core-abstractions.js.map +1 -1
  53. package/dist/db/connection.js +4 -4
  54. package/dist/db/connection.js.map +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +86 -79
  57. package/dist/index.js.map +1 -1
  58. package/dist/knowledge/chromadb.d.ts.map +1 -1
  59. package/dist/knowledge/chromadb.js +5 -3
  60. package/dist/knowledge/chromadb.js.map +1 -1
  61. package/dist/macro/recorder.d.ts +1 -1
  62. package/dist/macro/recorder.d.ts.map +1 -1
  63. package/dist/macro/recorder.js +10 -10
  64. package/dist/macro/recorder.js.map +1 -1
  65. package/dist/resources/base.js +10 -10
  66. package/dist/resources/base.js.map +1 -1
  67. package/dist/resources/design-table.d.ts +10 -12
  68. package/dist/resources/design-table.d.ts.map +1 -1
  69. package/dist/resources/design-table.js +42 -39
  70. package/dist/resources/design-table.js.map +1 -1
  71. package/dist/resources/pdm.d.ts +44 -45
  72. package/dist/resources/pdm.d.ts.map +1 -1
  73. package/dist/resources/pdm.js +118 -79
  74. package/dist/resources/pdm.js.map +1 -1
  75. package/dist/resources/registry.d.ts +1 -1
  76. package/dist/resources/registry.d.ts.map +1 -1
  77. package/dist/resources/registry.js +1 -1
  78. package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
  79. package/dist/shared/constants/solidworks-constants.js +9 -9
  80. package/dist/shared/constants/solidworks-constants.js.map +1 -1
  81. package/dist/solidworks/api.d.ts +8 -3
  82. package/dist/solidworks/api.d.ts.map +1 -1
  83. package/dist/solidworks/api.js +599 -134
  84. package/dist/solidworks/api.js.map +1 -1
  85. package/dist/state/store.d.ts +1 -1
  86. package/dist/state/store.d.ts.map +1 -1
  87. package/dist/state/store.js +14 -14
  88. package/dist/state/store.js.map +1 -1
  89. package/dist/tools/analysis.d.ts +12 -2
  90. package/dist/tools/analysis.d.ts.map +1 -1
  91. package/dist/tools/analysis.js +141 -31
  92. package/dist/tools/analysis.js.map +1 -1
  93. package/dist/tools/diagnostics.d.ts +1 -1
  94. package/dist/tools/diagnostics.d.ts.map +1 -1
  95. package/dist/tools/diagnostics.js +2 -2
  96. package/dist/tools/diagnostics.js.map +1 -1
  97. package/dist/tools/drawing.d.ts +2 -2
  98. package/dist/tools/drawing.d.ts.map +1 -1
  99. package/dist/tools/drawing.js +94 -10
  100. package/dist/tools/drawing.js.map +1 -1
  101. package/dist/tools/enhanced-drawing.d.ts +1 -1
  102. package/dist/tools/enhanced-drawing.d.ts.map +1 -1
  103. package/dist/tools/enhanced-drawing.js +10 -13
  104. package/dist/tools/enhanced-drawing.js.map +1 -1
  105. package/dist/tools/export.d.ts +1 -1
  106. package/dist/tools/export.d.ts.map +1 -1
  107. package/dist/tools/export.js +88 -14
  108. package/dist/tools/export.js.map +1 -1
  109. package/dist/tools/extrusion-helper.d.ts +15 -0
  110. package/dist/tools/extrusion-helper.d.ts.map +1 -0
  111. package/dist/tools/extrusion-helper.js +61 -0
  112. package/dist/tools/extrusion-helper.js.map +1 -0
  113. package/dist/tools/macro-security.d.ts +2 -2
  114. package/dist/tools/macro-security.d.ts.map +1 -1
  115. package/dist/tools/macro-security.js +2 -2
  116. package/dist/tools/macro-security.js.map +1 -1
  117. package/dist/tools/modeling.d.ts +2 -2
  118. package/dist/tools/modeling.d.ts.map +1 -1
  119. package/dist/tools/modeling.js +6 -6
  120. package/dist/tools/modeling.js.map +1 -1
  121. package/dist/tools/native-macro.d.ts +1 -1
  122. package/dist/tools/native-macro.d.ts.map +1 -1
  123. package/dist/tools/native-macro.js +246 -239
  124. package/dist/tools/native-macro.js.map +1 -1
  125. package/dist/tools/sketch.d.ts +28 -28
  126. package/dist/tools/sketch.d.ts.map +1 -1
  127. package/dist/tools/sketch.js +202 -136
  128. package/dist/tools/sketch.js.map +1 -1
  129. package/dist/tools/template-manager.d.ts +5 -5
  130. package/dist/tools/template-manager.d.ts.map +1 -1
  131. package/dist/tools/template-manager.js +66 -65
  132. package/dist/tools/template-manager.js.map +1 -1
  133. package/dist/tools/vba-advanced.d.ts +10 -10
  134. package/dist/tools/vba-advanced.d.ts.map +1 -1
  135. package/dist/tools/vba-advanced.js +791 -708
  136. package/dist/tools/vba-advanced.js.map +1 -1
  137. package/dist/tools/vba-assembly.d.ts +10 -10
  138. package/dist/tools/vba-assembly.d.ts.map +1 -1
  139. package/dist/tools/vba-assembly.js +562 -500
  140. package/dist/tools/vba-assembly.js.map +1 -1
  141. package/dist/tools/vba-drawing.d.ts +12 -12
  142. package/dist/tools/vba-drawing.d.ts.map +1 -1
  143. package/dist/tools/vba-drawing.js +681 -572
  144. package/dist/tools/vba-drawing.js.map +1 -1
  145. package/dist/tools/vba-file-management.d.ts +12 -12
  146. package/dist/tools/vba-file-management.d.ts.map +1 -1
  147. package/dist/tools/vba-file-management.js +662 -589
  148. package/dist/tools/vba-file-management.js.map +1 -1
  149. package/dist/tools/vba-part.d.ts +10 -10
  150. package/dist/tools/vba-part.d.ts.map +1 -1
  151. package/dist/tools/vba-part.js +484 -426
  152. package/dist/tools/vba-part.js.map +1 -1
  153. package/dist/tools/vba.d.ts +361 -361
  154. package/dist/tools/vba.d.ts.map +1 -1
  155. package/dist/tools/vba.js +67 -81
  156. package/dist/tools/vba.js.map +1 -1
  157. package/dist/utils/config.js +2 -2
  158. package/dist/utils/config.js.map +1 -1
  159. package/dist/utils/environment.d.ts +243 -0
  160. package/dist/utils/environment.d.ts.map +1 -0
  161. package/dist/utils/environment.js +207 -0
  162. package/dist/utils/environment.js.map +1 -0
  163. package/dist/utils/logger.d.ts.map +1 -1
  164. package/dist/utils/logger.js +6 -6
  165. package/dist/utils/logger.js.map +1 -1
  166. package/dist/utils/solidworks-config.d.ts +39 -0
  167. package/dist/utils/solidworks-config.d.ts.map +1 -0
  168. package/dist/utils/solidworks-config.js +156 -0
  169. package/dist/utils/solidworks-config.js.map +1 -0
  170. package/package.json +84 -84
  171. package/scripts/setup.js +70 -70
  172. package/dist/application/services/command-bus.d.ts +0 -39
  173. package/dist/application/services/command-bus.d.ts.map +0 -1
  174. package/dist/application/services/command-bus.js +0 -88
  175. package/dist/application/services/command-bus.js.map +0 -1
  176. package/dist/application/services/event-bus.d.ts +0 -31
  177. package/dist/application/services/event-bus.d.ts.map +0 -1
  178. package/dist/application/services/event-bus.js +0 -83
  179. package/dist/application/services/event-bus.js.map +0 -1
  180. package/dist/application/services/query-bus.d.ts +0 -30
  181. package/dist/application/services/query-bus.d.ts.map +0 -1
  182. package/dist/application/services/query-bus.js +0 -59
  183. package/dist/application/services/query-bus.js.map +0 -1
  184. package/dist/application/services/tool-registry.d.ts +0 -53
  185. package/dist/application/services/tool-registry.d.ts.map +0 -1
  186. package/dist/application/services/tool-registry.js +0 -81
  187. package/dist/application/services/tool-registry.js.map +0 -1
  188. package/dist/application/use-cases/analysis/index.d.ts +0 -13
  189. package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
  190. package/dist/application/use-cases/analysis/index.js +0 -17
  191. package/dist/application/use-cases/analysis/index.js.map +0 -1
  192. package/dist/application/use-cases/drawing/index.d.ts +0 -13
  193. package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
  194. package/dist/application/use-cases/drawing/index.js +0 -17
  195. package/dist/application/use-cases/drawing/index.js.map +0 -1
  196. package/dist/application/use-cases/export/index.d.ts +0 -13
  197. package/dist/application/use-cases/export/index.d.ts.map +0 -1
  198. package/dist/application/use-cases/export/index.js +0 -17
  199. package/dist/application/use-cases/export/index.js.map +0 -1
  200. package/dist/application/use-cases/macro/index.d.ts +0 -13
  201. package/dist/application/use-cases/macro/index.d.ts.map +0 -1
  202. package/dist/application/use-cases/macro/index.js +0 -17
  203. package/dist/application/use-cases/macro/index.js.map +0 -1
  204. package/dist/application/use-cases/modeling/index.d.ts +0 -56
  205. package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
  206. package/dist/application/use-cases/modeling/index.js +0 -385
  207. package/dist/application/use-cases/modeling/index.js.map +0 -1
  208. package/dist/index.refactored.d.ts +0 -7
  209. package/dist/index.refactored.d.ts.map +0 -1
  210. package/dist/index.refactored.js +0 -254
  211. package/dist/index.refactored.js.map +0 -1
  212. package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
  213. package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
  214. package/dist/infrastructure/config/configuration-manager.js +0 -566
  215. package/dist/infrastructure/config/configuration-manager.js.map +0 -1
  216. package/dist/infrastructure/container/service-locator.d.ts +0 -14
  217. package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
  218. package/dist/infrastructure/container/service-locator.js +0 -38
  219. package/dist/infrastructure/container/service-locator.js.map +0 -1
  220. package/dist/infrastructure/logging/logger.d.ts +0 -24
  221. package/dist/infrastructure/logging/logger.d.ts.map +0 -1
  222. package/dist/infrastructure/logging/logger.js +0 -65
  223. package/dist/infrastructure/logging/logger.js.map +0 -1
  224. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
  225. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
  226. package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
  227. package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
  228. package/dist/presentation/mcp/request-handler.d.ts +0 -41
  229. package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
  230. package/dist/presentation/mcp/request-handler.js +0 -100
  231. package/dist/presentation/mcp/request-handler.js.map +0 -1
  232. package/dist/presentation/transformers/error-transformer.d.ts +0 -16
  233. package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
  234. package/dist/presentation/transformers/error-transformer.js +0 -44
  235. package/dist/presentation/transformers/error-transformer.js.map +0 -1
  236. package/dist/presentation/transformers/response-transformer.d.ts +0 -24
  237. package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
  238. package/dist/presentation/transformers/response-transformer.js +0 -102
  239. package/dist/presentation/transformers/response-transformer.js.map +0 -1
  240. package/dist/tools/drawing-analysis.d.ts +0 -9
  241. package/dist/tools/drawing-analysis.d.ts.map +0 -1
  242. package/dist/tools/drawing-analysis.js +0 -239
  243. package/dist/tools/drawing-analysis.js.map +0 -1
@@ -0,0 +1,376 @@
1
+ /**
2
+ * Type definitions for SolidWorks adapter pattern
3
+ * Enhanced with comprehensive operation support and robust error handling
4
+ */
5
+ import { z } from 'zod';
6
+ import type { SolidWorksFeature, SolidWorksModel } from '../solidworks/types.js';
7
+ /**
8
+ * Base interface for all SolidWorks adapters
9
+ */
10
+ export interface ISolidWorksAdapter {
11
+ connect(): Promise<void>;
12
+ disconnect(): Promise<void>;
13
+ isConnected(): boolean;
14
+ healthCheck(): Promise<AdapterHealth>;
15
+ execute<T>(command: Command): Promise<AdapterResult<T>>;
16
+ executeRaw(method: string, args: any[]): Promise<any>;
17
+ openModel(filePath: string): Promise<SolidWorksModel>;
18
+ closeModel(save?: boolean): Promise<void>;
19
+ createPart(): Promise<SolidWorksModel>;
20
+ createAssembly(): Promise<SolidWorksModel>;
21
+ createDrawing(): Promise<SolidWorksModel>;
22
+ createExtrusion(params: ExtrusionParameters): Promise<SolidWorksFeature>;
23
+ createRevolve(params: RevolveParameters): Promise<SolidWorksFeature>;
24
+ createSweep(params: SweepParameters): Promise<SolidWorksFeature>;
25
+ createLoft(params: LoftParameters): Promise<SolidWorksFeature>;
26
+ createSketch(plane: string): Promise<string>;
27
+ addLine(x1: number, y1: number, x2: number, y2: number): Promise<void>;
28
+ addCircle(centerX: number, centerY: number, radius: number): Promise<void>;
29
+ addRectangle(x1: number, y1: number, x2: number, y2: number): Promise<void>;
30
+ exitSketch(): Promise<void>;
31
+ getMassProperties(): Promise<MassProperties>;
32
+ exportFile(filePath: string, format: string): Promise<void>;
33
+ getDimension(name: string): Promise<number>;
34
+ setDimension(name: string, value: number): Promise<void>;
35
+ }
36
+ /**
37
+ * Adapter health status
38
+ */
39
+ export interface AdapterHealth {
40
+ healthy: boolean;
41
+ lastCheck: Date;
42
+ errorCount: number;
43
+ successCount: number;
44
+ averageResponseTime: number;
45
+ connectionStatus: 'connected' | 'disconnected' | 'error';
46
+ metrics?: {
47
+ directCOMCalls?: number;
48
+ macroFallbacks?: number;
49
+ successRate?: number;
50
+ };
51
+ }
52
+ /**
53
+ * Command pattern for SolidWorks operations
54
+ */
55
+ export interface Command {
56
+ name: string;
57
+ parameters: Record<string, any>;
58
+ validate(): ValidationResult;
59
+ fallback?: Command;
60
+ timeout?: number;
61
+ retryable?: boolean;
62
+ priority?: number;
63
+ }
64
+ /**
65
+ * Validation result for commands
66
+ */
67
+ export interface ValidationResult {
68
+ valid: boolean;
69
+ errors?: string[];
70
+ warnings?: string[];
71
+ }
72
+ /**
73
+ * Result wrapper for adapter operations
74
+ */
75
+ export interface AdapterResult<T> {
76
+ success: boolean;
77
+ data?: T;
78
+ error?: string;
79
+ timing?: {
80
+ start: Date | number;
81
+ end: Date | number;
82
+ duration: number;
83
+ };
84
+ metadata?: Record<string, any>;
85
+ }
86
+ /**
87
+ * Base command class with common functionality
88
+ */
89
+ export declare abstract class BaseCommand implements Command {
90
+ abstract name: string;
91
+ abstract parameters: Record<string, any>;
92
+ fallback?: Command;
93
+ timeout: number;
94
+ retryable: boolean;
95
+ validate(): ValidationResult;
96
+ /**
97
+ * Transform parameters before execution
98
+ */
99
+ protected transformParameters(): Record<string, any>;
100
+ }
101
+ /**
102
+ * Extrusion command with validation and fallback
103
+ */
104
+ export declare class CreateExtrusionCommand extends BaseCommand {
105
+ name: string;
106
+ parameters: {
107
+ depth: number;
108
+ reverse?: boolean;
109
+ bothDirections?: boolean;
110
+ draft?: number;
111
+ merge?: boolean;
112
+ [key: string]: any;
113
+ };
114
+ constructor(parameters: {
115
+ depth: number;
116
+ reverse?: boolean;
117
+ bothDirections?: boolean;
118
+ draft?: number;
119
+ merge?: boolean;
120
+ [key: string]: any;
121
+ });
122
+ validate(): ValidationResult;
123
+ }
124
+ /**
125
+ * VBA-based fallback for extrusion
126
+ */
127
+ export declare class CreateExtrusionVBACommand extends BaseCommand {
128
+ name: string;
129
+ parameters: Record<string, any>;
130
+ constructor(extrusionParams: Record<string, any>);
131
+ }
132
+ /**
133
+ * Adapter factory for creating appropriate adapter based on configuration
134
+ */
135
+ export declare class AdapterFactory {
136
+ private static adapters;
137
+ static register(type: string, factory: () => Promise<ISolidWorksAdapter>): void;
138
+ static create(type?: string): Promise<ISolidWorksAdapter>;
139
+ }
140
+ /**
141
+ * Circuit breaker for handling adapter failures
142
+ */
143
+ export declare class CircuitBreaker {
144
+ private threshold;
145
+ private timeout;
146
+ private failures;
147
+ private lastFailureTime?;
148
+ private state;
149
+ constructor(threshold?: number, timeout?: number, _halfOpenRequests?: number);
150
+ execute<T>(fn: () => Promise<T>): Promise<T>;
151
+ private onSuccess;
152
+ private onFailure;
153
+ getState(): "CLOSED" | "OPEN" | "HALF_OPEN";
154
+ reset(): void;
155
+ }
156
+ /**
157
+ * Connection pool for managing multiple SolidWorks connections
158
+ */
159
+ export declare class ConnectionPool {
160
+ private factory;
161
+ private minSize;
162
+ private maxSize;
163
+ private connections;
164
+ private available;
165
+ private inUse;
166
+ constructor(factory: () => Promise<ISolidWorksAdapter>, minSize?: number, maxSize?: number);
167
+ initialize(): Promise<void>;
168
+ acquire(): Promise<ISolidWorksAdapter>;
169
+ release(adapter: ISolidWorksAdapter): void;
170
+ destroy(): Promise<void>;
171
+ }
172
+ /**
173
+ * Batch processor for executing multiple commands efficiently
174
+ */
175
+ export declare class BatchProcessor {
176
+ private adapter;
177
+ private batchSize;
178
+ private delay;
179
+ private queue;
180
+ private processing;
181
+ constructor(adapter: ISolidWorksAdapter, batchSize?: number, delay?: number);
182
+ add(command: Command): Promise<void>;
183
+ private process;
184
+ }
185
+ /**
186
+ * Event types for adapter events
187
+ */
188
+ export interface AdapterEvents {
189
+ connected: undefined;
190
+ disconnected: undefined;
191
+ 'command:start': {
192
+ command: Command;
193
+ };
194
+ 'command:success': {
195
+ command: Command;
196
+ result: any;
197
+ };
198
+ 'command:failure': {
199
+ command: Command;
200
+ error: Error;
201
+ };
202
+ 'health:check': {
203
+ healthy: boolean;
204
+ };
205
+ }
206
+ /**
207
+ * Schema definitions for common SolidWorks types
208
+ */
209
+ export declare const ModelSchema: z.ZodObject<{
210
+ path: z.ZodString;
211
+ name: z.ZodString;
212
+ type: z.ZodEnum<["Part", "Assembly", "Drawing"]>;
213
+ isActive: z.ZodBoolean;
214
+ configurations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ name: string;
217
+ path: string;
218
+ type: "Part" | "Assembly" | "Drawing";
219
+ isActive: boolean;
220
+ configurations?: string[] | undefined;
221
+ }, {
222
+ name: string;
223
+ path: string;
224
+ type: "Part" | "Assembly" | "Drawing";
225
+ isActive: boolean;
226
+ configurations?: string[] | undefined;
227
+ }>;
228
+ export declare const FeatureSchema: z.ZodObject<{
229
+ id: z.ZodString;
230
+ name: z.ZodString;
231
+ type: z.ZodString;
232
+ suppressed: z.ZodBoolean;
233
+ parameters: z.ZodRecord<z.ZodString, z.ZodAny>;
234
+ }, "strip", z.ZodTypeAny, {
235
+ id: string;
236
+ name: string;
237
+ parameters: Record<string, any>;
238
+ type: string;
239
+ suppressed: boolean;
240
+ }, {
241
+ id: string;
242
+ name: string;
243
+ parameters: Record<string, any>;
244
+ type: string;
245
+ suppressed: boolean;
246
+ }>;
247
+ export declare const SketchSchema: z.ZodObject<{
248
+ id: z.ZodString;
249
+ name: z.ZodString;
250
+ plane: z.ZodString;
251
+ entities: z.ZodArray<z.ZodObject<{
252
+ type: z.ZodString;
253
+ id: z.ZodString;
254
+ coordinates: z.ZodArray<z.ZodNumber, "many">;
255
+ }, "strip", z.ZodTypeAny, {
256
+ id: string;
257
+ type: string;
258
+ coordinates: number[];
259
+ }, {
260
+ id: string;
261
+ type: string;
262
+ coordinates: number[];
263
+ }>, "many">;
264
+ }, "strip", z.ZodTypeAny, {
265
+ id: string;
266
+ name: string;
267
+ plane: string;
268
+ entities: {
269
+ id: string;
270
+ type: string;
271
+ coordinates: number[];
272
+ }[];
273
+ }, {
274
+ id: string;
275
+ name: string;
276
+ plane: string;
277
+ entities: {
278
+ id: string;
279
+ type: string;
280
+ coordinates: number[];
281
+ }[];
282
+ }>;
283
+ export type Model = z.infer<typeof ModelSchema>;
284
+ export type Feature = z.infer<typeof FeatureSchema>;
285
+ export type Sketch = z.infer<typeof SketchSchema>;
286
+ /**
287
+ * Parameter types for feature operations
288
+ */
289
+ export interface ExtrusionParameters {
290
+ depth: number;
291
+ reverse?: boolean;
292
+ bothDirections?: boolean;
293
+ depth2?: number;
294
+ draft?: number;
295
+ draftOutward?: boolean;
296
+ draftWhileExtruding?: boolean;
297
+ offsetDistance?: number;
298
+ offsetReverse?: boolean;
299
+ translateSurface?: boolean;
300
+ merge?: boolean;
301
+ flipSideToCut?: boolean;
302
+ startCondition?: number;
303
+ endCondition?: number | string;
304
+ thinFeature?: boolean;
305
+ thinThickness?: number;
306
+ thinType?: string;
307
+ capEnds?: boolean;
308
+ capThickness?: number;
309
+ }
310
+ export interface RevolveParameters {
311
+ angle: number;
312
+ axis?: string;
313
+ direction?: number | string;
314
+ merge?: boolean;
315
+ thinFeature?: boolean;
316
+ thinThickness?: number;
317
+ }
318
+ export interface SweepParameters {
319
+ profileSketch: string;
320
+ pathSketch: string;
321
+ twistAngle?: number;
322
+ merge?: boolean;
323
+ thinFeature?: boolean;
324
+ thinThickness?: number;
325
+ }
326
+ export interface LoftParameters {
327
+ profiles: string[];
328
+ guides?: string[];
329
+ guideCurves?: string[];
330
+ centerCurve?: string;
331
+ closed?: boolean;
332
+ close?: boolean;
333
+ startTangency?: string;
334
+ endTangency?: string;
335
+ merge?: boolean;
336
+ thinFeature?: boolean;
337
+ thinThickness?: number;
338
+ }
339
+ export interface MassProperties {
340
+ mass: number;
341
+ volume: number;
342
+ surfaceArea: number;
343
+ centerOfMass: {
344
+ x: number;
345
+ y: number;
346
+ z: number;
347
+ };
348
+ density?: number;
349
+ momentsOfInertia?: {
350
+ Ixx: number;
351
+ Iyy: number;
352
+ Izz: number;
353
+ Ixy: number;
354
+ Iyz: number;
355
+ Ixz: number;
356
+ };
357
+ }
358
+ /**
359
+ * Adapter configuration
360
+ */
361
+ export interface AdapterConfig {
362
+ type: 'winax' | 'macro-fallback' | 'hybrid' | 'winax-enhanced';
363
+ enableCircuitBreaker?: boolean;
364
+ circuitBreakerThreshold?: number;
365
+ circuitBreakerTimeout?: number;
366
+ enableRetry?: boolean;
367
+ maxRetries?: number;
368
+ retryDelay?: number;
369
+ enableConnectionPool?: boolean;
370
+ poolSize?: number;
371
+ enableMetrics?: boolean;
372
+ enableLogging?: boolean;
373
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
374
+ macroPath?: string;
375
+ }
376
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Type definitions for SolidWorks adapter pattern
3
+ * Enhanced with comprehensive operation support and robust error handling
4
+ */
5
+ import { z } from 'zod';
6
+ /**
7
+ * Base command class with common functionality
8
+ */
9
+ export class BaseCommand {
10
+ fallback;
11
+ timeout = 30000; // 30 seconds default
12
+ retryable = true;
13
+ validate() {
14
+ // Override in subclasses for specific validation
15
+ return { valid: true };
16
+ }
17
+ /**
18
+ * Transform parameters before execution
19
+ */
20
+ transformParameters() {
21
+ return this.parameters;
22
+ }
23
+ }
24
+ /**
25
+ * Extrusion command with validation and fallback
26
+ */
27
+ export class CreateExtrusionCommand extends BaseCommand {
28
+ name = 'CreateExtrusion';
29
+ parameters;
30
+ constructor(parameters) {
31
+ super();
32
+ this.parameters = parameters;
33
+ }
34
+ validate() {
35
+ const errors = [];
36
+ if (!this.parameters.depth || this.parameters.depth <= 0) {
37
+ errors.push('Depth must be greater than 0');
38
+ }
39
+ if (this.parameters.depth > 1000) {
40
+ errors.push('Depth must be less than 1000mm');
41
+ }
42
+ return {
43
+ valid: errors.length === 0,
44
+ errors,
45
+ };
46
+ }
47
+ }
48
+ /**
49
+ * VBA-based fallback for extrusion
50
+ */
51
+ export class CreateExtrusionVBACommand extends BaseCommand {
52
+ name = 'ExecuteVBAMacro';
53
+ parameters;
54
+ constructor(extrusionParams) {
55
+ super();
56
+ this.parameters = {
57
+ macroName: 'CreateExtrusion',
58
+ arguments: extrusionParams,
59
+ };
60
+ }
61
+ }
62
+ /**
63
+ * Adapter factory for creating appropriate adapter based on configuration
64
+ */
65
+ export class AdapterFactory {
66
+ static adapters = new Map();
67
+ static register(type, factory) {
68
+ AdapterFactory.adapters.set(type, factory);
69
+ }
70
+ static async create(type = 'winax') {
71
+ const factory = AdapterFactory.adapters.get(type);
72
+ if (!factory) {
73
+ throw new Error(`Unknown adapter type: ${type}`);
74
+ }
75
+ return factory();
76
+ }
77
+ }
78
+ /**
79
+ * Circuit breaker for handling adapter failures
80
+ */
81
+ export class CircuitBreaker {
82
+ threshold;
83
+ timeout;
84
+ failures = 0;
85
+ lastFailureTime;
86
+ state = 'CLOSED';
87
+ constructor(threshold = 5, timeout = 60000,
88
+ // 1 minute
89
+ _halfOpenRequests = 1) {
90
+ this.threshold = threshold;
91
+ this.timeout = timeout;
92
+ }
93
+ async execute(fn) {
94
+ if (this.state === 'OPEN') {
95
+ if (Date.now() - (this.lastFailureTime || 0) > this.timeout) {
96
+ this.state = 'HALF_OPEN';
97
+ }
98
+ else {
99
+ throw new Error('Circuit breaker is open');
100
+ }
101
+ }
102
+ try {
103
+ const result = await fn();
104
+ this.onSuccess();
105
+ return result;
106
+ }
107
+ catch (error) {
108
+ this.onFailure();
109
+ throw error;
110
+ }
111
+ }
112
+ onSuccess() {
113
+ this.failures = 0;
114
+ this.state = 'CLOSED';
115
+ }
116
+ onFailure() {
117
+ this.failures++;
118
+ this.lastFailureTime = Date.now();
119
+ if (this.failures >= this.threshold) {
120
+ this.state = 'OPEN';
121
+ }
122
+ }
123
+ getState() {
124
+ return this.state;
125
+ }
126
+ reset() {
127
+ this.failures = 0;
128
+ this.state = 'CLOSED';
129
+ this.lastFailureTime = undefined;
130
+ }
131
+ }
132
+ /**
133
+ * Connection pool for managing multiple SolidWorks connections
134
+ */
135
+ export class ConnectionPool {
136
+ factory;
137
+ minSize;
138
+ maxSize;
139
+ connections = [];
140
+ available = [];
141
+ inUse = new Set();
142
+ constructor(factory, minSize = 1, maxSize = 5) {
143
+ this.factory = factory;
144
+ this.minSize = minSize;
145
+ this.maxSize = maxSize;
146
+ }
147
+ async initialize() {
148
+ for (let i = 0; i < this.minSize; i++) {
149
+ const adapter = await this.factory();
150
+ this.connections.push(adapter);
151
+ this.available.push(adapter);
152
+ }
153
+ }
154
+ async acquire() {
155
+ // Return available connection
156
+ if (this.available.length > 0) {
157
+ const adapter = this.available.pop();
158
+ this.inUse.add(adapter);
159
+ return adapter;
160
+ }
161
+ // Create new connection if under max size
162
+ if (this.connections.length < this.maxSize) {
163
+ const adapter = await this.factory();
164
+ this.connections.push(adapter);
165
+ this.inUse.add(adapter);
166
+ return adapter;
167
+ }
168
+ // Wait for connection to become available
169
+ return new Promise((resolve) => {
170
+ const checkInterval = setInterval(() => {
171
+ if (this.available.length > 0) {
172
+ clearInterval(checkInterval);
173
+ const adapter = this.available.pop();
174
+ this.inUse.add(adapter);
175
+ resolve(adapter);
176
+ }
177
+ }, 100);
178
+ });
179
+ }
180
+ release(adapter) {
181
+ if (this.inUse.has(adapter)) {
182
+ this.inUse.delete(adapter);
183
+ this.available.push(adapter);
184
+ }
185
+ }
186
+ async destroy() {
187
+ for (const adapter of this.connections) {
188
+ await adapter.disconnect();
189
+ }
190
+ this.connections = [];
191
+ this.available = [];
192
+ this.inUse.clear();
193
+ }
194
+ }
195
+ /**
196
+ * Batch processor for executing multiple commands efficiently
197
+ */
198
+ export class BatchProcessor {
199
+ adapter;
200
+ batchSize;
201
+ delay;
202
+ queue = [];
203
+ processing = false;
204
+ constructor(adapter, batchSize = 10, delay = 100) {
205
+ this.adapter = adapter;
206
+ this.batchSize = batchSize;
207
+ this.delay = delay;
208
+ }
209
+ async add(command) {
210
+ this.queue.push(command);
211
+ if (!this.processing) {
212
+ this.process();
213
+ }
214
+ }
215
+ async process() {
216
+ this.processing = true;
217
+ while (this.queue.length > 0) {
218
+ const batch = this.queue.splice(0, this.batchSize);
219
+ const results = await Promise.allSettled(batch.map((cmd) => this.adapter.execute(cmd)));
220
+ // Process results
221
+ results.forEach((result, index) => {
222
+ if (result.status === 'rejected') {
223
+ console.error(`Command ${batch[index].name} failed:`, result.reason);
224
+ }
225
+ });
226
+ // Delay between batches
227
+ if (this.queue.length > 0) {
228
+ await new Promise((resolve) => setTimeout(resolve, this.delay));
229
+ }
230
+ }
231
+ this.processing = false;
232
+ }
233
+ }
234
+ /**
235
+ * Schema definitions for common SolidWorks types
236
+ */
237
+ export const ModelSchema = z.object({
238
+ path: z.string(),
239
+ name: z.string(),
240
+ type: z.enum(['Part', 'Assembly', 'Drawing']),
241
+ isActive: z.boolean(),
242
+ configurations: z.array(z.string()).optional(),
243
+ });
244
+ export const FeatureSchema = z.object({
245
+ id: z.string(),
246
+ name: z.string(),
247
+ type: z.string(),
248
+ suppressed: z.boolean(),
249
+ parameters: z.record(z.any()),
250
+ });
251
+ export const SketchSchema = z.object({
252
+ id: z.string(),
253
+ name: z.string(),
254
+ plane: z.string(),
255
+ entities: z.array(z.object({
256
+ type: z.string(),
257
+ id: z.string(),
258
+ coordinates: z.array(z.number()),
259
+ })),
260
+ });
261
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"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"}