solidworks-mcp-server 3.0.8 → 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.
- package/CHANGELOG.md +175 -98
- package/LICENSE +20 -20
- package/README.md +195 -423
- package/dist/adapters/circuit-breaker.d.ts +84 -0
- package/dist/adapters/circuit-breaker.d.ts.map +1 -0
- package/dist/adapters/circuit-breaker.js +228 -0
- package/dist/adapters/circuit-breaker.js.map +1 -0
- package/dist/adapters/connection-pool.d.ts +83 -0
- package/dist/adapters/connection-pool.d.ts.map +1 -0
- package/dist/adapters/connection-pool.js +282 -0
- package/dist/adapters/connection-pool.js.map +1 -0
- package/dist/adapters/edge-adapter.d.ts +43 -0
- package/dist/adapters/edge-adapter.d.ts.map +1 -0
- package/dist/adapters/edge-adapter.js +417 -0
- package/dist/adapters/edge-adapter.js.map +1 -0
- package/dist/adapters/factory.d.ts +60 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +212 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.js +322 -0
- package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
- package/dist/adapters/macro-generator.d.ts +30 -0
- package/dist/adapters/macro-generator.d.ts.map +1 -0
- package/dist/adapters/macro-generator.js +524 -0
- package/dist/adapters/macro-generator.js.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.js +367 -0
- package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +376 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +261 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.js +601 -0
- package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
- package/dist/adapters/winax-adapter.d.ts +55 -0
- package/dist/adapters/winax-adapter.d.ts.map +1 -0
- package/dist/adapters/winax-adapter.js +667 -0
- package/dist/adapters/winax-adapter.js.map +1 -0
- package/dist/api/stainless-api.d.ts +29 -0
- package/dist/api/stainless-api.d.ts.map +1 -0
- package/dist/api/stainless-api.js +408 -0
- package/dist/api/stainless-api.js.map +1 -0
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +4 -3
- package/dist/cache/manager.js.map +1 -1
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
- package/dist/core/interfaces/core-abstractions.js.map +1 -1
- package/dist/db/connection.js +4 -4
- package/dist/db/connection.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -79
- package/dist/index.js.map +1 -1
- package/dist/knowledge/chromadb.d.ts.map +1 -1
- package/dist/knowledge/chromadb.js +5 -3
- package/dist/knowledge/chromadb.js.map +1 -1
- package/dist/macro/recorder.d.ts +1 -1
- package/dist/macro/recorder.d.ts.map +1 -1
- package/dist/macro/recorder.js +10 -10
- package/dist/macro/recorder.js.map +1 -1
- package/dist/resources/base.js +10 -10
- package/dist/resources/base.js.map +1 -1
- package/dist/resources/design-table.d.ts +10 -12
- package/dist/resources/design-table.d.ts.map +1 -1
- package/dist/resources/design-table.js +42 -39
- package/dist/resources/design-table.js.map +1 -1
- package/dist/resources/pdm.d.ts +44 -45
- package/dist/resources/pdm.d.ts.map +1 -1
- package/dist/resources/pdm.js +118 -79
- package/dist/resources/pdm.js.map +1 -1
- package/dist/resources/registry.d.ts +1 -1
- package/dist/resources/registry.d.ts.map +1 -1
- package/dist/resources/registry.js +1 -1
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
- package/dist/shared/constants/solidworks-constants.js +9 -9
- package/dist/shared/constants/solidworks-constants.js.map +1 -1
- package/dist/solidworks/api.d.ts +8 -6
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +614 -188
- package/dist/solidworks/api.js.map +1 -1
- package/dist/state/store.d.ts +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +14 -14
- package/dist/state/store.js.map +1 -1
- package/dist/tools/analysis.d.ts +12 -2
- package/dist/tools/analysis.d.ts.map +1 -1
- package/dist/tools/analysis.js +141 -31
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/diagnostics.d.ts +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +2 -2
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/drawing.d.ts +2 -2
- package/dist/tools/drawing.d.ts.map +1 -1
- package/dist/tools/drawing.js +94 -10
- package/dist/tools/drawing.js.map +1 -1
- package/dist/tools/enhanced-drawing.d.ts +1 -1
- package/dist/tools/enhanced-drawing.d.ts.map +1 -1
- package/dist/tools/enhanced-drawing.js +10 -13
- package/dist/tools/enhanced-drawing.js.map +1 -1
- package/dist/tools/export.d.ts +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +88 -14
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/extrusion-helper.d.ts +15 -0
- package/dist/tools/extrusion-helper.d.ts.map +1 -0
- package/dist/tools/extrusion-helper.js +61 -0
- package/dist/tools/extrusion-helper.js.map +1 -0
- package/dist/tools/macro-security.d.ts +2 -2
- package/dist/tools/macro-security.d.ts.map +1 -1
- package/dist/tools/macro-security.js +2 -2
- package/dist/tools/macro-security.js.map +1 -1
- package/dist/tools/modeling.d.ts +2 -2
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +6 -6
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/native-macro.d.ts +1 -1
- package/dist/tools/native-macro.d.ts.map +1 -1
- package/dist/tools/native-macro.js +246 -239
- package/dist/tools/native-macro.js.map +1 -1
- package/dist/tools/sketch.d.ts +28 -28
- package/dist/tools/sketch.d.ts.map +1 -1
- package/dist/tools/sketch.js +202 -136
- package/dist/tools/sketch.js.map +1 -1
- package/dist/tools/template-manager.d.ts +5 -5
- package/dist/tools/template-manager.d.ts.map +1 -1
- package/dist/tools/template-manager.js +66 -65
- package/dist/tools/template-manager.js.map +1 -1
- package/dist/tools/vba-advanced.d.ts +10 -10
- package/dist/tools/vba-advanced.d.ts.map +1 -1
- package/dist/tools/vba-advanced.js +791 -708
- package/dist/tools/vba-advanced.js.map +1 -1
- package/dist/tools/vba-assembly.d.ts +10 -10
- package/dist/tools/vba-assembly.d.ts.map +1 -1
- package/dist/tools/vba-assembly.js +562 -500
- package/dist/tools/vba-assembly.js.map +1 -1
- package/dist/tools/vba-drawing.d.ts +12 -12
- package/dist/tools/vba-drawing.d.ts.map +1 -1
- package/dist/tools/vba-drawing.js +681 -572
- package/dist/tools/vba-drawing.js.map +1 -1
- package/dist/tools/vba-file-management.d.ts +12 -12
- package/dist/tools/vba-file-management.d.ts.map +1 -1
- package/dist/tools/vba-file-management.js +662 -589
- package/dist/tools/vba-file-management.js.map +1 -1
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba-part.d.ts.map +1 -1
- package/dist/tools/vba-part.js +484 -426
- package/dist/tools/vba-part.js.map +1 -1
- package/dist/tools/vba.d.ts +361 -361
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +67 -81
- package/dist/tools/vba.js.map +1 -1
- package/dist/utils/config.js +2 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/environment.d.ts +243 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +207 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/solidworks-config.d.ts +39 -0
- package/dist/utils/solidworks-config.d.ts.map +1 -0
- package/dist/utils/solidworks-config.js +156 -0
- package/dist/utils/solidworks-config.js.map +1 -0
- package/package.json +84 -84
- package/scripts/setup.js +70 -70
- package/dist/application/services/command-bus.d.ts +0 -39
- package/dist/application/services/command-bus.d.ts.map +0 -1
- package/dist/application/services/command-bus.js +0 -88
- package/dist/application/services/command-bus.js.map +0 -1
- package/dist/application/services/event-bus.d.ts +0 -31
- package/dist/application/services/event-bus.d.ts.map +0 -1
- package/dist/application/services/event-bus.js +0 -83
- package/dist/application/services/event-bus.js.map +0 -1
- package/dist/application/services/query-bus.d.ts +0 -30
- package/dist/application/services/query-bus.d.ts.map +0 -1
- package/dist/application/services/query-bus.js +0 -59
- package/dist/application/services/query-bus.js.map +0 -1
- package/dist/application/services/tool-registry.d.ts +0 -53
- package/dist/application/services/tool-registry.d.ts.map +0 -1
- package/dist/application/services/tool-registry.js +0 -81
- package/dist/application/services/tool-registry.js.map +0 -1
- package/dist/application/use-cases/analysis/index.d.ts +0 -13
- package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
- package/dist/application/use-cases/analysis/index.js +0 -17
- package/dist/application/use-cases/analysis/index.js.map +0 -1
- package/dist/application/use-cases/drawing/index.d.ts +0 -13
- package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
- package/dist/application/use-cases/drawing/index.js +0 -17
- package/dist/application/use-cases/drawing/index.js.map +0 -1
- package/dist/application/use-cases/export/index.d.ts +0 -13
- package/dist/application/use-cases/export/index.d.ts.map +0 -1
- package/dist/application/use-cases/export/index.js +0 -17
- package/dist/application/use-cases/export/index.js.map +0 -1
- package/dist/application/use-cases/macro/index.d.ts +0 -13
- package/dist/application/use-cases/macro/index.d.ts.map +0 -1
- package/dist/application/use-cases/macro/index.js +0 -17
- package/dist/application/use-cases/macro/index.js.map +0 -1
- package/dist/application/use-cases/modeling/index.d.ts +0 -56
- package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
- package/dist/application/use-cases/modeling/index.js +0 -385
- package/dist/application/use-cases/modeling/index.js.map +0 -1
- package/dist/index.refactored.d.ts +0 -7
- package/dist/index.refactored.d.ts.map +0 -1
- package/dist/index.refactored.js +0 -254
- package/dist/index.refactored.js.map +0 -1
- package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
- package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
- package/dist/infrastructure/config/configuration-manager.js +0 -566
- package/dist/infrastructure/config/configuration-manager.js.map +0 -1
- package/dist/infrastructure/container/service-locator.d.ts +0 -14
- package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
- package/dist/infrastructure/container/service-locator.js +0 -38
- package/dist/infrastructure/container/service-locator.js.map +0 -1
- package/dist/infrastructure/logging/logger.d.ts +0 -24
- package/dist/infrastructure/logging/logger.d.ts.map +0 -1
- package/dist/infrastructure/logging/logger.js +0 -65
- package/dist/infrastructure/logging/logger.js.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
- package/dist/presentation/mcp/request-handler.d.ts +0 -41
- package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
- package/dist/presentation/mcp/request-handler.js +0 -100
- package/dist/presentation/mcp/request-handler.js.map +0 -1
- package/dist/presentation/transformers/error-transformer.d.ts +0 -16
- package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/error-transformer.js +0 -44
- package/dist/presentation/transformers/error-transformer.js.map +0 -1
- package/dist/presentation/transformers/response-transformer.d.ts +0 -24
- package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/response-transformer.js +0 -102
- package/dist/presentation/transformers/response-transformer.js.map +0 -1
- package/dist/tools/drawing-analysis.d.ts +0 -9
- package/dist/tools/drawing-analysis.d.ts.map +0 -1
- package/dist/tools/drawing-analysis.js +0 -239
- package/dist/tools/drawing-analysis.js.map +0 -1
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge.js Adapter for SolidWorks COM Integration
|
|
3
|
+
*
|
|
4
|
+
* This adapter uses Edge.js to bridge Node.js with C# code,
|
|
5
|
+
* providing full access to SolidWorks COM API without the
|
|
6
|
+
* parameter limitations of direct COM bridges.
|
|
7
|
+
*/
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
export class EdgeJsAdapter {
|
|
10
|
+
executeCS;
|
|
11
|
+
connected = false;
|
|
12
|
+
isConnected() {
|
|
13
|
+
return this.connected;
|
|
14
|
+
}
|
|
15
|
+
constructor() {
|
|
16
|
+
this.initializeCSharpBridge();
|
|
17
|
+
}
|
|
18
|
+
initializeCSharpBridge() {
|
|
19
|
+
// Define C# code that will be compiled and executed
|
|
20
|
+
const _csharpCode = `
|
|
21
|
+
using System;
|
|
22
|
+
using System.Threading.Tasks;
|
|
23
|
+
using System.Dynamic;
|
|
24
|
+
using System.Collections.Generic;
|
|
25
|
+
using System.Runtime.InteropServices;
|
|
26
|
+
|
|
27
|
+
public class SolidWorksExecutor
|
|
28
|
+
{
|
|
29
|
+
private dynamic swApp;
|
|
30
|
+
private dynamic currentModel;
|
|
31
|
+
|
|
32
|
+
public async Task<object> Invoke(dynamic input)
|
|
33
|
+
{
|
|
34
|
+
try
|
|
35
|
+
{
|
|
36
|
+
string command = (string)input.command;
|
|
37
|
+
var parameters = (IDictionary<string, object>)input.parameters;
|
|
38
|
+
|
|
39
|
+
switch (command)
|
|
40
|
+
{
|
|
41
|
+
case "Connect":
|
|
42
|
+
return await ConnectToSolidWorks();
|
|
43
|
+
|
|
44
|
+
case "Disconnect":
|
|
45
|
+
return await DisconnectFromSolidWorks();
|
|
46
|
+
|
|
47
|
+
case "CreateExtrusion":
|
|
48
|
+
return await CreateExtrusion(parameters);
|
|
49
|
+
|
|
50
|
+
case "ExecuteMethod":
|
|
51
|
+
return await ExecuteMethod(parameters);
|
|
52
|
+
|
|
53
|
+
default:
|
|
54
|
+
throw new Exception($"Unknown command: {command}");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (Exception ex)
|
|
58
|
+
{
|
|
59
|
+
return new
|
|
60
|
+
{
|
|
61
|
+
success = false,
|
|
62
|
+
error = ex.Message,
|
|
63
|
+
stackTrace = ex.StackTrace
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private async Task<object> ConnectToSolidWorks()
|
|
69
|
+
{
|
|
70
|
+
return await Task.Run(() =>
|
|
71
|
+
{
|
|
72
|
+
Type swType = Type.GetTypeFromProgID("SldWorks.Application");
|
|
73
|
+
swApp = Activator.CreateInstance(swType);
|
|
74
|
+
swApp.Visible = true;
|
|
75
|
+
|
|
76
|
+
return new
|
|
77
|
+
{
|
|
78
|
+
success = true,
|
|
79
|
+
message = "Connected to SolidWorks"
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
private async Task<object> DisconnectFromSolidWorks()
|
|
85
|
+
{
|
|
86
|
+
return await Task.Run(() =>
|
|
87
|
+
{
|
|
88
|
+
if (currentModel != null)
|
|
89
|
+
{
|
|
90
|
+
Marshal.ReleaseComObject(currentModel);
|
|
91
|
+
currentModel = null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (swApp != null)
|
|
95
|
+
{
|
|
96
|
+
Marshal.ReleaseComObject(swApp);
|
|
97
|
+
swApp = null;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
GC.Collect();
|
|
101
|
+
GC.WaitForPendingFinalizers();
|
|
102
|
+
|
|
103
|
+
return new
|
|
104
|
+
{
|
|
105
|
+
success = true,
|
|
106
|
+
message = "Disconnected from SolidWorks"
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private async Task<object> CreateExtrusion(IDictionary<string, object> parameters)
|
|
112
|
+
{
|
|
113
|
+
return await Task.Run(() =>
|
|
114
|
+
{
|
|
115
|
+
if (swApp == null || currentModel == null)
|
|
116
|
+
{
|
|
117
|
+
throw new Exception("Not connected to SolidWorks or no active model");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Extract parameters with defaults
|
|
121
|
+
double depth = Convert.ToDouble(parameters.ContainsKey("depth") ? parameters["depth"] : 0.025);
|
|
122
|
+
bool reverseDir = Convert.ToBoolean(parameters.ContainsKey("reverse") ? parameters["reverse"] : false);
|
|
123
|
+
bool bothDirections = Convert.ToBoolean(parameters.ContainsKey("bothDirections") ? parameters["bothDirections"] : false);
|
|
124
|
+
double draftAngle = Convert.ToDouble(parameters.ContainsKey("draft") ? parameters["draft"] : 0);
|
|
125
|
+
int draftOutward = Convert.ToInt32(parameters.ContainsKey("draftOutward") ? parameters["draftOutward"] : 0);
|
|
126
|
+
int draftWhileExtruding = Convert.ToInt32(parameters.ContainsKey("draftWhileExtruding") ? parameters["draftWhileExtruding"] : 0);
|
|
127
|
+
double offsetDistance = Convert.ToDouble(parameters.ContainsKey("offsetDistance") ? parameters["offsetDistance"] : 0);
|
|
128
|
+
bool offsetReverse = Convert.ToBoolean(parameters.ContainsKey("offsetReverse") ? parameters["offsetReverse"] : false);
|
|
129
|
+
bool translateSurface = Convert.ToBoolean(parameters.ContainsKey("translateSurface") ? parameters["translateSurface"] : false);
|
|
130
|
+
bool merge = Convert.ToBoolean(parameters.ContainsKey("merge") ? parameters["merge"] : true);
|
|
131
|
+
bool flipSideToCut = Convert.ToBoolean(parameters.ContainsKey("flipSideToCut") ? parameters["flipSideToCut"] : false);
|
|
132
|
+
|
|
133
|
+
// Call SolidWorks FeatureExtrusion3 with all parameters
|
|
134
|
+
dynamic feature = currentModel.FeatureManager.FeatureExtrusion3(
|
|
135
|
+
true, // Sd (true for single direction)
|
|
136
|
+
reverseDir, // Flip
|
|
137
|
+
bothDirections, // Dir (both directions)
|
|
138
|
+
0, // T1 (end condition: blind)
|
|
139
|
+
0, // T2 (end condition for second direction)
|
|
140
|
+
depth, // D1 (depth)
|
|
141
|
+
0.0, // D2 (depth for second direction)
|
|
142
|
+
false, // Dchk1 (draft while extruding, dir 1)
|
|
143
|
+
false, // Dchk2 (draft while extruding, dir 2)
|
|
144
|
+
draftAngle, // Dang1 (draft angle, dir 1)
|
|
145
|
+
0.0, // Dang2 (draft angle, dir 2)
|
|
146
|
+
draftOutward, // OffsetReverse1 (draft outward)
|
|
147
|
+
0, // OffsetReverse2
|
|
148
|
+
false, // TranslateSurface1
|
|
149
|
+
false, // TranslateSurface2
|
|
150
|
+
merge, // Merge
|
|
151
|
+
flipSideToCut, // FlipSideToCut (for cut extrude)
|
|
152
|
+
true, // Update
|
|
153
|
+
0, // StartCondition
|
|
154
|
+
0, // FlipStartOffset
|
|
155
|
+
false // SelectionManager
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
if (feature != null)
|
|
159
|
+
{
|
|
160
|
+
return new
|
|
161
|
+
{
|
|
162
|
+
success = true,
|
|
163
|
+
featureName = feature.Name,
|
|
164
|
+
featureType = feature.GetTypeName2()
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
else
|
|
168
|
+
{
|
|
169
|
+
throw new Exception("Failed to create extrusion feature");
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
private async Task<object> ExecuteMethod(IDictionary<string, object> parameters)
|
|
175
|
+
{
|
|
176
|
+
return await Task.Run(() =>
|
|
177
|
+
{
|
|
178
|
+
string objectPath = (string)parameters["objectPath"];
|
|
179
|
+
string methodName = (string)parameters["methodName"];
|
|
180
|
+
object[] args = parameters.ContainsKey("arguments") ?
|
|
181
|
+
(object[])parameters["arguments"] : new object[0];
|
|
182
|
+
|
|
183
|
+
// Navigate to the target object
|
|
184
|
+
dynamic targetObject = swApp;
|
|
185
|
+
if (!string.IsNullOrEmpty(objectPath) && objectPath != "Application")
|
|
186
|
+
{
|
|
187
|
+
if (objectPath == "ActiveDoc" || objectPath == "CurrentModel")
|
|
188
|
+
{
|
|
189
|
+
targetObject = currentModel;
|
|
190
|
+
}
|
|
191
|
+
else
|
|
192
|
+
{
|
|
193
|
+
string[] path = objectPath.Split('.');
|
|
194
|
+
foreach (string prop in path)
|
|
195
|
+
{
|
|
196
|
+
targetObject = targetObject.GetType().InvokeMember(
|
|
197
|
+
prop,
|
|
198
|
+
System.Reflection.BindingFlags.GetProperty,
|
|
199
|
+
null,
|
|
200
|
+
targetObject,
|
|
201
|
+
null
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Execute the method
|
|
208
|
+
object result = targetObject.GetType().InvokeMember(
|
|
209
|
+
methodName,
|
|
210
|
+
System.Reflection.BindingFlags.InvokeMethod,
|
|
211
|
+
null,
|
|
212
|
+
targetObject,
|
|
213
|
+
args
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
return new
|
|
217
|
+
{
|
|
218
|
+
success = true,
|
|
219
|
+
result = result
|
|
220
|
+
};
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
`;
|
|
225
|
+
// Compile the C# code (commented out - requires Edge.js)
|
|
226
|
+
// this.executeCS = edge.func(csharpCode);
|
|
227
|
+
// Mock implementation for now
|
|
228
|
+
this.executeCS = async (_input) => {
|
|
229
|
+
return { success: false, error: 'Edge.js not available - install .NET runtime' };
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
async connect() {
|
|
233
|
+
try {
|
|
234
|
+
const result = await this.executeCS({
|
|
235
|
+
command: 'Connect',
|
|
236
|
+
parameters: {},
|
|
237
|
+
});
|
|
238
|
+
if (result.success) {
|
|
239
|
+
this.connected = true;
|
|
240
|
+
logger.info('Connected to SolidWorks via Edge.js adapter');
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
throw new Error(result.error || 'Failed to connect');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
logger.error('Edge.js adapter connection failed', error);
|
|
248
|
+
throw error;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
async disconnect() {
|
|
252
|
+
try {
|
|
253
|
+
const result = await this.executeCS({
|
|
254
|
+
command: 'Disconnect',
|
|
255
|
+
parameters: {},
|
|
256
|
+
});
|
|
257
|
+
if (result.success) {
|
|
258
|
+
this.connected = false;
|
|
259
|
+
logger.info('Disconnected from SolidWorks');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
logger.error('Edge.js adapter disconnection failed', error);
|
|
264
|
+
throw error;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async execute(command) {
|
|
268
|
+
if (!this.connected && command.name !== 'Connect') {
|
|
269
|
+
throw new Error('Not connected to SolidWorks');
|
|
270
|
+
}
|
|
271
|
+
try {
|
|
272
|
+
// Validate command before execution
|
|
273
|
+
if (!command.validate()) {
|
|
274
|
+
throw new Error(`Command validation failed: ${command.name}`);
|
|
275
|
+
}
|
|
276
|
+
// Map command to C# execution
|
|
277
|
+
let result;
|
|
278
|
+
if (command.name === 'CreateExtrusion') {
|
|
279
|
+
result = await this.executeCS({
|
|
280
|
+
command: 'CreateExtrusion',
|
|
281
|
+
parameters: command.parameters,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// Generic method execution
|
|
286
|
+
result = await this.executeCS({
|
|
287
|
+
command: 'ExecuteMethod',
|
|
288
|
+
parameters: {
|
|
289
|
+
objectPath: command.parameters.objectPath || 'Application',
|
|
290
|
+
methodName: command.name,
|
|
291
|
+
arguments: command.parameters.arguments || [],
|
|
292
|
+
},
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
if (result.success) {
|
|
296
|
+
return {
|
|
297
|
+
success: true,
|
|
298
|
+
data: result,
|
|
299
|
+
timing: {
|
|
300
|
+
start: new Date(),
|
|
301
|
+
end: new Date(),
|
|
302
|
+
duration: 0,
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
throw new Error(result.error || 'Command execution failed');
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
logger.error(`Edge.js adapter command failed: ${command.name}`, error);
|
|
312
|
+
// Try fallback if available
|
|
313
|
+
if (command.fallback) {
|
|
314
|
+
logger.info(`Attempting fallback for ${command.name}`);
|
|
315
|
+
return this.execute(command.fallback);
|
|
316
|
+
}
|
|
317
|
+
throw error;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
async healthCheck() {
|
|
321
|
+
try {
|
|
322
|
+
const result = await this.executeCS({
|
|
323
|
+
command: 'ExecuteMethod',
|
|
324
|
+
parameters: {
|
|
325
|
+
objectPath: 'Application',
|
|
326
|
+
methodName: 'GetProcessID',
|
|
327
|
+
arguments: [],
|
|
328
|
+
},
|
|
329
|
+
});
|
|
330
|
+
return {
|
|
331
|
+
healthy: result.success && result.result > 0,
|
|
332
|
+
lastCheck: new Date(),
|
|
333
|
+
errorCount: 0,
|
|
334
|
+
successCount: 1,
|
|
335
|
+
averageResponseTime: 0,
|
|
336
|
+
connectionStatus: 'connected',
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
catch (_error) {
|
|
340
|
+
return {
|
|
341
|
+
healthy: false,
|
|
342
|
+
lastCheck: new Date(),
|
|
343
|
+
errorCount: 1,
|
|
344
|
+
successCount: 0,
|
|
345
|
+
averageResponseTime: 0,
|
|
346
|
+
connectionStatus: 'disconnected',
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
// Stub implementations for missing interface methods
|
|
351
|
+
async executeRaw(_method, _args) {
|
|
352
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
353
|
+
}
|
|
354
|
+
async openModel(_filePath) {
|
|
355
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
356
|
+
}
|
|
357
|
+
async closeModel(_save) {
|
|
358
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
359
|
+
}
|
|
360
|
+
async createPart() {
|
|
361
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
362
|
+
}
|
|
363
|
+
async createAssembly() {
|
|
364
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
365
|
+
}
|
|
366
|
+
async createDrawing() {
|
|
367
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
368
|
+
}
|
|
369
|
+
async createExtrusion(_params) {
|
|
370
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
371
|
+
}
|
|
372
|
+
async createRevolve(_params) {
|
|
373
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
374
|
+
}
|
|
375
|
+
async createSweep(_params) {
|
|
376
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
377
|
+
}
|
|
378
|
+
async createLoft(_params) {
|
|
379
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
380
|
+
}
|
|
381
|
+
async createSketch(_plane) {
|
|
382
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
383
|
+
}
|
|
384
|
+
async addLine(_x1, _y1, _x2, _y2) {
|
|
385
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
386
|
+
}
|
|
387
|
+
async addCircle(_centerX, _centerY, _radius) {
|
|
388
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
389
|
+
}
|
|
390
|
+
async addRectangle(_x1, _y1, _x2, _y2) {
|
|
391
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
392
|
+
}
|
|
393
|
+
async exitSketch() {
|
|
394
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
395
|
+
}
|
|
396
|
+
async getMassProperties() {
|
|
397
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
398
|
+
}
|
|
399
|
+
async exportFile(_filePath, _format) {
|
|
400
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
401
|
+
}
|
|
402
|
+
async getDimension(_name) {
|
|
403
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
404
|
+
}
|
|
405
|
+
async setDimension(_name, _value) {
|
|
406
|
+
throw new Error('Edge.js adapter not available - .NET runtime required');
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Factory function to create Edge.js adapter with proper initialization
|
|
411
|
+
*/
|
|
412
|
+
export async function createEdgeJsAdapter() {
|
|
413
|
+
const adapter = new EdgeJsAdapter();
|
|
414
|
+
await adapter.connect();
|
|
415
|
+
return adapter;
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=edge-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-adapter.js","sourceRoot":"","sources":["../../src/adapters/edge-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter Factory for SolidWorks MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Provides centralized adapter creation with:
|
|
5
|
+
* - Multiple adapter type support
|
|
6
|
+
* - Circuit breaker integration
|
|
7
|
+
* - Connection pooling
|
|
8
|
+
* - Automatic fallback selection
|
|
9
|
+
*/
|
|
10
|
+
import type { AdapterConfig, AdapterHealth, ISolidWorksAdapter } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Factory for creating and managing SolidWorks adapters
|
|
13
|
+
*/
|
|
14
|
+
export declare class AdapterFactory {
|
|
15
|
+
private static instance;
|
|
16
|
+
private adapters;
|
|
17
|
+
private defaultConfig;
|
|
18
|
+
private constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Get singleton instance of factory
|
|
21
|
+
*/
|
|
22
|
+
static getInstance(): AdapterFactory;
|
|
23
|
+
/**
|
|
24
|
+
* Create or get adapter based on configuration
|
|
25
|
+
*/
|
|
26
|
+
createAdapter(config?: Partial<AdapterConfig>): Promise<ISolidWorksAdapter>;
|
|
27
|
+
/**
|
|
28
|
+
* Create base adapter based on type
|
|
29
|
+
*/
|
|
30
|
+
private createBaseAdapter;
|
|
31
|
+
/**
|
|
32
|
+
* Get the best available adapter based on system capabilities
|
|
33
|
+
*/
|
|
34
|
+
getBestAdapter(): Promise<ISolidWorksAdapter>;
|
|
35
|
+
/**
|
|
36
|
+
* Detect system capabilities
|
|
37
|
+
*/
|
|
38
|
+
private detectSystemCapabilities;
|
|
39
|
+
/**
|
|
40
|
+
* Generate cache key for adapter configuration
|
|
41
|
+
*/
|
|
42
|
+
private getCacheKey;
|
|
43
|
+
/**
|
|
44
|
+
* Get all cached adapters
|
|
45
|
+
*/
|
|
46
|
+
getCachedAdapters(): Map<string, ISolidWorksAdapter>;
|
|
47
|
+
/**
|
|
48
|
+
* Clear all cached adapters
|
|
49
|
+
*/
|
|
50
|
+
clearCache(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Health check all cached adapters
|
|
53
|
+
*/
|
|
54
|
+
healthCheckAll(): Promise<Map<string, AdapterHealth>>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Singleton export for convenience
|
|
58
|
+
*/
|
|
59
|
+
export declare const adapterFactory: AdapterFactory;
|
|
60
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/adapters/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGnF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,aAAa,CAanB;IAEF,OAAO;IAEP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;OAEG;IACG,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0CjF;;OAEG;YACW,iBAAiB;IA4B/B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAwBnD;;OAEG;YACW,wBAAwB;IA6BtC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAIpD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAqB5D;AAaD;;GAEG;AACH,eAAO,MAAM,cAAc,gBAA+B,CAAC"}
|