solidworks-mcp-server 2.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 (88) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +333 -0
  4. package/dist/cache/manager.d.ts +50 -0
  5. package/dist/cache/manager.d.ts.map +1 -0
  6. package/dist/cache/manager.js +127 -0
  7. package/dist/cache/manager.js.map +1 -0
  8. package/dist/db/connection.d.ts +48 -0
  9. package/dist/db/connection.d.ts.map +1 -0
  10. package/dist/db/connection.js +132 -0
  11. package/dist/db/connection.js.map +1 -0
  12. package/dist/index.d.ts +37 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +402 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/knowledge/chromadb.d.ts +16 -0
  17. package/dist/knowledge/chromadb.d.ts.map +1 -0
  18. package/dist/knowledge/chromadb.js +80 -0
  19. package/dist/knowledge/chromadb.js.map +1 -0
  20. package/dist/macro/index.d.ts +6 -0
  21. package/dist/macro/index.d.ts.map +1 -0
  22. package/dist/macro/index.js +6 -0
  23. package/dist/macro/index.js.map +1 -0
  24. package/dist/macro/recorder.d.ts +72 -0
  25. package/dist/macro/recorder.d.ts.map +1 -0
  26. package/dist/macro/recorder.js +228 -0
  27. package/dist/macro/recorder.js.map +1 -0
  28. package/dist/macro/types.d.ts +77 -0
  29. package/dist/macro/types.d.ts.map +1 -0
  30. package/dist/macro/types.js +5 -0
  31. package/dist/macro/types.js.map +1 -0
  32. package/dist/resources/base.d.ts +116 -0
  33. package/dist/resources/base.d.ts.map +1 -0
  34. package/dist/resources/base.js +161 -0
  35. package/dist/resources/base.js.map +1 -0
  36. package/dist/resources/design-table.d.ts +384 -0
  37. package/dist/resources/design-table.d.ts.map +1 -0
  38. package/dist/resources/design-table.js +337 -0
  39. package/dist/resources/design-table.js.map +1 -0
  40. package/dist/resources/pdm.d.ts +1277 -0
  41. package/dist/resources/pdm.d.ts.map +1 -0
  42. package/dist/resources/pdm.js +358 -0
  43. package/dist/resources/pdm.js.map +1 -0
  44. package/dist/resources/registry.d.ts +59 -0
  45. package/dist/resources/registry.d.ts.map +1 -0
  46. package/dist/resources/registry.js +88 -0
  47. package/dist/resources/registry.js.map +1 -0
  48. package/dist/solidworks/api.d.ts +24 -0
  49. package/dist/solidworks/api.d.ts.map +1 -0
  50. package/dist/solidworks/api.js +226 -0
  51. package/dist/solidworks/api.js.map +1 -0
  52. package/dist/solidworks/types.d.ts +55 -0
  53. package/dist/solidworks/types.d.ts.map +1 -0
  54. package/dist/solidworks/types.js +2 -0
  55. package/dist/solidworks/types.js.map +1 -0
  56. package/dist/state/store.d.ts +101 -0
  57. package/dist/state/store.d.ts.map +1 -0
  58. package/dist/state/store.js +262 -0
  59. package/dist/state/store.js.map +1 -0
  60. package/dist/tools/analysis.d.ts +37 -0
  61. package/dist/tools/analysis.d.ts.map +1 -0
  62. package/dist/tools/analysis.js +169 -0
  63. package/dist/tools/analysis.js.map +1 -0
  64. package/dist/tools/drawing.d.ts +151 -0
  65. package/dist/tools/drawing.d.ts.map +1 -0
  66. package/dist/tools/drawing.js +171 -0
  67. package/dist/tools/drawing.js.map +1 -0
  68. package/dist/tools/export.d.ts +97 -0
  69. package/dist/tools/export.d.ts.map +1 -0
  70. package/dist/tools/export.js +128 -0
  71. package/dist/tools/export.js.map +1 -0
  72. package/dist/tools/modeling.d.ts +9 -0
  73. package/dist/tools/modeling.d.ts.map +1 -0
  74. package/dist/tools/modeling.js +120 -0
  75. package/dist/tools/modeling.js.map +1 -0
  76. package/dist/tools/vba.d.ts +123 -0
  77. package/dist/tools/vba.d.ts.map +1 -0
  78. package/dist/tools/vba.js +158 -0
  79. package/dist/tools/vba.js.map +1 -0
  80. package/dist/utils/config.d.ts +18 -0
  81. package/dist/utils/config.d.ts.map +1 -0
  82. package/dist/utils/config.js +26 -0
  83. package/dist/utils/config.js.map +1 -0
  84. package/dist/utils/logger.d.ts +14 -0
  85. package/dist/utils/logger.d.ts.map +1 -0
  86. package/dist/utils/logger.js +84 -0
  87. package/dist/utils/logger.js.map +1 -0
  88. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdm.d.ts","sourceRoot":"","sources":["../../src/resources/pdm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * PDM (Product Data Management) Resource for SolidWorks MCP
3
+ * Manages SolidWorks PDM configurations and operations
4
+ */
5
+ import { z } from 'zod';
6
+ import { SolidWorksResource, ResourceStatus } from './base.js';
7
+ import { logger } from '../utils/logger.js';
8
+ // Schema for PDM configuration
9
+ const PDMConfigSchema = z.object({
10
+ vaultName: z.string().min(1),
11
+ serverName: z.string().optional(),
12
+ workflowName: z.string().optional(),
13
+ operations: z.object({
14
+ checkIn: z.object({
15
+ enabled: z.boolean().default(true),
16
+ comment: z.string().optional(),
17
+ keepCheckedOut: z.boolean().default(false),
18
+ updateReferences: z.boolean().default(true)
19
+ }).optional(),
20
+ checkOut: z.object({
21
+ enabled: z.boolean().default(true),
22
+ localPath: z.string().optional(),
23
+ getLatestVersion: z.boolean().default(true)
24
+ }).optional(),
25
+ workflow: z.object({
26
+ enabled: z.boolean().default(false),
27
+ transitions: z.array(z.object({
28
+ name: z.string(),
29
+ fromState: z.string(),
30
+ toState: z.string(),
31
+ conditions: z.array(z.string()).optional()
32
+ })).optional()
33
+ }).optional(),
34
+ versioning: z.object({
35
+ scheme: z.enum(['major', 'minor', 'revision', 'custom']),
36
+ autoIncrement: z.boolean().default(true),
37
+ format: z.string().optional()
38
+ }).optional()
39
+ }),
40
+ fileStructure: z.object({
41
+ rootFolder: z.string(),
42
+ projectTemplate: z.string().optional(),
43
+ namingConvention: z.object({
44
+ pattern: z.string(),
45
+ variables: z.array(z.object({
46
+ name: z.string(),
47
+ type: z.enum(['counter', 'date', 'user', 'project', 'custom']),
48
+ format: z.string().optional()
49
+ })).optional()
50
+ }).optional(),
51
+ folderStructure: z.array(z.object({
52
+ path: z.string(),
53
+ permissions: z.object({
54
+ read: z.array(z.string()),
55
+ write: z.array(z.string()),
56
+ delete: z.array(z.string())
57
+ }).optional()
58
+ })).optional()
59
+ }),
60
+ metadata: z.object({
61
+ customProperties: z.array(z.object({
62
+ name: z.string(),
63
+ type: z.enum(['text', 'number', 'date', 'list', 'boolean']),
64
+ required: z.boolean().default(false),
65
+ defaultValue: z.any().optional(),
66
+ listValues: z.array(z.string()).optional()
67
+ })).optional(),
68
+ dataCards: z.array(z.object({
69
+ name: z.string(),
70
+ fileType: z.string(),
71
+ controls: z.array(z.object({
72
+ type: z.enum(['textbox', 'dropdown', 'checkbox', 'datepicker']),
73
+ variable: z.string(),
74
+ position: z.object({
75
+ x: z.number(),
76
+ y: z.number(),
77
+ width: z.number(),
78
+ height: z.number()
79
+ })
80
+ }))
81
+ })).optional()
82
+ }).optional(),
83
+ automation: z.object({
84
+ tasks: z.array(z.object({
85
+ name: z.string(),
86
+ trigger: z.enum(['checkin', 'checkout', 'transition', 'schedule']),
87
+ action: z.enum(['convert', 'print', 'export', 'notify', 'script']),
88
+ parameters: z.record(z.any()),
89
+ enabled: z.boolean().default(true)
90
+ })).optional(),
91
+ notifications: z.array(z.object({
92
+ event: z.string(),
93
+ recipients: z.array(z.string()),
94
+ template: z.string()
95
+ })).optional()
96
+ }).optional()
97
+ });
98
+ export class PDMResource extends SolidWorksResource {
99
+ type = 'pdm-configuration';
100
+ schema = PDMConfigSchema;
101
+ constructor(id, name, properties) {
102
+ super(id, name, properties);
103
+ }
104
+ /**
105
+ * Execute PDM operations
106
+ */
107
+ async execute(api) {
108
+ this.setStatus(ResourceStatus.EXECUTING);
109
+ try {
110
+ const config = this._properties;
111
+ const results = {
112
+ vault: config.vaultName,
113
+ operations: []
114
+ };
115
+ // Connect to PDM vault
116
+ await this.connectToVault(api, config);
117
+ // Execute configured operations
118
+ if (config.operations.checkOut?.enabled) {
119
+ const checkOutResult = await this.performCheckOut(api, config);
120
+ results.operations.push({ type: 'checkout', ...checkOutResult });
121
+ }
122
+ if (config.operations.checkIn?.enabled) {
123
+ const checkInResult = await this.performCheckIn(api, config);
124
+ results.operations.push({ type: 'checkin', ...checkInResult });
125
+ }
126
+ if (config.operations.workflow?.enabled) {
127
+ const workflowResult = await this.executeWorkflow(api, config);
128
+ results.operations.push({ type: 'workflow', ...workflowResult });
129
+ }
130
+ // Setup automation if configured
131
+ if (config.automation?.tasks) {
132
+ const automationResult = await this.setupAutomation(api, config);
133
+ results.automation = automationResult;
134
+ }
135
+ this.setStatus(ResourceStatus.COMPLETED);
136
+ this.setOutputs(results);
137
+ return results;
138
+ }
139
+ catch (error) {
140
+ this.setStatus(ResourceStatus.FAILED);
141
+ throw error;
142
+ }
143
+ }
144
+ /**
145
+ * Connect to PDM vault
146
+ */
147
+ async connectToVault(api, config) {
148
+ // Implementation would connect to actual PDM vault
149
+ logger.info(`Connecting to PDM vault: ${config.vaultName}`);
150
+ }
151
+ /**
152
+ * Perform check-out operation
153
+ */
154
+ async performCheckOut(api, config) {
155
+ const checkOutConfig = config.operations.checkOut;
156
+ return {
157
+ success: true,
158
+ filesCheckedOut: [],
159
+ localPath: checkOutConfig.localPath,
160
+ timestamp: new Date().toISOString()
161
+ };
162
+ }
163
+ /**
164
+ * Perform check-in operation
165
+ */
166
+ async performCheckIn(api, config) {
167
+ const checkInConfig = config.operations.checkIn;
168
+ return {
169
+ success: true,
170
+ filesCheckedIn: [],
171
+ comment: checkInConfig.comment,
172
+ newVersion: '1.0.0',
173
+ timestamp: new Date().toISOString()
174
+ };
175
+ }
176
+ /**
177
+ * Execute workflow transitions
178
+ */
179
+ async executeWorkflow(api, config) {
180
+ const workflowConfig = config.operations.workflow;
181
+ const results = [];
182
+ if (workflowConfig.transitions) {
183
+ for (const transition of workflowConfig.transitions) {
184
+ results.push({
185
+ transition: transition.name,
186
+ from: transition.fromState,
187
+ to: transition.toState,
188
+ success: true
189
+ });
190
+ }
191
+ }
192
+ return {
193
+ workflowName: config.workflowName,
194
+ transitions: results
195
+ };
196
+ }
197
+ /**
198
+ * Setup automation tasks
199
+ */
200
+ async setupAutomation(api, config) {
201
+ const automationResults = [];
202
+ if (config.automation?.tasks) {
203
+ for (const task of config.automation.tasks) {
204
+ if (task.enabled) {
205
+ automationResults.push({
206
+ taskName: task.name,
207
+ trigger: task.trigger,
208
+ action: task.action,
209
+ configured: true
210
+ });
211
+ }
212
+ }
213
+ }
214
+ return automationResults;
215
+ }
216
+ /**
217
+ * Convert to VBA code
218
+ */
219
+ toVBACode() {
220
+ const config = this._properties;
221
+ const vbaLines = [
222
+ `' PDM Configuration: ${this.name}`,
223
+ `' Vault: ${config.vaultName}`,
224
+ '',
225
+ 'Sub ConfigurePDM()',
226
+ ' Dim pdmVault As EdmVault5',
227
+ ' Dim pdmFile As IEdmFile5',
228
+ ' Dim pdmFolder As IEdmFolder5',
229
+ ' ',
230
+ ' Set pdmVault = New EdmVault5',
231
+ ` pdmVault.LoginAuto "${config.vaultName}", 0`,
232
+ ' '
233
+ ];
234
+ // Add check-out code
235
+ if (config.operations.checkOut?.enabled) {
236
+ vbaLines.push(' \' Check-out configuration');
237
+ vbaLines.push(' Dim filePath As String');
238
+ vbaLines.push(` filePath = "${config.operations.checkOut.localPath || 'C:\\PDM\\'}"`);
239
+ vbaLines.push(' ');
240
+ vbaLines.push(' \' Get file reference');
241
+ vbaLines.push(' Set pdmFile = pdmVault.GetFileFromPath(filePath, pdmFolder)');
242
+ vbaLines.push(' ');
243
+ vbaLines.push(' \' Check out file');
244
+ vbaLines.push(' If Not pdmFile Is Nothing Then');
245
+ vbaLines.push(' pdmFile.LockFile pdmFolder.ID, 0');
246
+ vbaLines.push(' End If');
247
+ vbaLines.push(' ');
248
+ }
249
+ // Add check-in code
250
+ if (config.operations.checkIn?.enabled) {
251
+ vbaLines.push(' \' Check-in configuration');
252
+ vbaLines.push(' If Not pdmFile Is Nothing Then');
253
+ vbaLines.push(` pdmFile.UnlockFile 0, "${config.operations.checkIn.comment || 'Auto check-in'}", 0`);
254
+ vbaLines.push(' End If');
255
+ vbaLines.push(' ');
256
+ }
257
+ // Add workflow code
258
+ if (config.operations.workflow?.enabled && config.operations.workflow.transitions) {
259
+ vbaLines.push(' \' Workflow transitions');
260
+ for (const transition of config.operations.workflow.transitions) {
261
+ vbaLines.push(` ' Transition: ${transition.name}`);
262
+ vbaLines.push(' If Not pdmFile Is Nothing Then');
263
+ vbaLines.push(` pdmFile.ChangeState "${transition.toState}", pdmFolder.ID, "", 0, 0`);
264
+ vbaLines.push(' End If');
265
+ vbaLines.push(' ');
266
+ }
267
+ }
268
+ vbaLines.push(' pdmVault.Logout');
269
+ vbaLines.push('End Sub');
270
+ return vbaLines.join('\n');
271
+ }
272
+ /**
273
+ * Convert to macro code
274
+ */
275
+ toMacroCode() {
276
+ const config = this._properties;
277
+ return JSON.stringify({
278
+ type: 'pdm-configuration',
279
+ name: this.name,
280
+ vault: config.vaultName,
281
+ actions: [
282
+ ...(config.operations.checkOut?.enabled ? [{
283
+ action: 'pdm-checkout',
284
+ parameters: config.operations.checkOut
285
+ }] : []),
286
+ ...(config.operations.checkIn?.enabled ? [{
287
+ action: 'pdm-checkin',
288
+ parameters: config.operations.checkIn
289
+ }] : []),
290
+ ...(config.operations.workflow?.enabled ? [{
291
+ action: 'pdm-workflow',
292
+ parameters: config.operations.workflow
293
+ }] : [])
294
+ ]
295
+ }, null, 2);
296
+ }
297
+ /**
298
+ * Get required capabilities
299
+ */
300
+ getRequiredCapabilities() {
301
+ const config = this._properties;
302
+ const capabilities = ['pdm-integration'];
303
+ if (config.operations.workflow?.enabled) {
304
+ capabilities.push('pdm-workflow');
305
+ }
306
+ if (config.automation?.tasks && config.automation.tasks.length > 0) {
307
+ capabilities.push('pdm-automation');
308
+ }
309
+ return capabilities;
310
+ }
311
+ /**
312
+ * Create folder structure
313
+ */
314
+ async createFolderStructure(api) {
315
+ const config = this._properties;
316
+ if (config.fileStructure.folderStructure) {
317
+ for (const folder of config.fileStructure.folderStructure) {
318
+ // Create folder with specified permissions
319
+ logger.info(`Creating folder: ${folder.path}`);
320
+ if (folder.permissions) {
321
+ logger.debug(`Setting permissions:`, folder.permissions);
322
+ }
323
+ }
324
+ }
325
+ }
326
+ /**
327
+ * Configure data cards
328
+ */
329
+ async configureDataCards(api) {
330
+ const config = this._properties;
331
+ if (config.metadata?.dataCards) {
332
+ for (const card of config.metadata.dataCards) {
333
+ logger.info(`Configuring data card: ${card.name}`);
334
+ // Configure data card controls
335
+ for (const control of card.controls) {
336
+ logger.debug(`Adding control: ${control.type} for variable: ${control.variable}`);
337
+ }
338
+ }
339
+ }
340
+ }
341
+ /**
342
+ * Setup notifications
343
+ */
344
+ async setupNotifications(api) {
345
+ const config = this._properties;
346
+ if (config.automation?.notifications) {
347
+ for (const notification of config.automation.notifications) {
348
+ logger.info(`Setting up notification for event: ${notification.event}`);
349
+ logger.debug(`Recipients: ${notification.recipients.join(', ')}`);
350
+ }
351
+ }
352
+ }
353
+ }
354
+ // Type guard
355
+ export function isPDMResource(resource) {
356
+ return resource instanceof PDMResource;
357
+ }
358
+ //# sourceMappingURL=pdm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdm.js","sourceRoot":"","sources":["../../src/resources/pdm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Resource Registry for SolidWorks MCP
3
+ * Manages all available resource types and their schemas
4
+ */
5
+ import { z } from 'zod';
6
+ import { SolidWorksResource } from './base.js';
7
+ export interface ResourceDefinition {
8
+ type: string;
9
+ name: string;
10
+ description: string;
11
+ schema: z.ZodSchema<any>;
12
+ factory: (id: string, name: string, properties: any) => SolidWorksResource;
13
+ examples?: Record<string, any>[];
14
+ }
15
+ declare class ResourceRegistry {
16
+ private resources;
17
+ /**
18
+ * Register a new resource type
19
+ */
20
+ register(definition: ResourceDefinition): void;
21
+ /**
22
+ * Get a resource definition by type
23
+ */
24
+ get(type: string): ResourceDefinition | undefined;
25
+ /**
26
+ * Get all registered resource types
27
+ */
28
+ getAllTypes(): string[];
29
+ /**
30
+ * Get all resource definitions
31
+ */
32
+ getAllDefinitions(): ResourceDefinition[];
33
+ /**
34
+ * Create a resource instance
35
+ */
36
+ createResource(type: string, id: string, name: string, properties: any): SolidWorksResource;
37
+ /**
38
+ * Validate resource properties
39
+ */
40
+ validateProperties(type: string, properties: any): {
41
+ valid: boolean;
42
+ errors?: any[];
43
+ };
44
+ /**
45
+ * Get schema for a resource type
46
+ */
47
+ getSchema(type: string): z.ZodSchema<any> | undefined;
48
+ /**
49
+ * Get examples for a resource type
50
+ */
51
+ getExamples(type: string): Record<string, any>[] | undefined;
52
+ /**
53
+ * Clear all registered resources (useful for testing)
54
+ */
55
+ clear(): void;
56
+ }
57
+ export declare const resourceRegistry: ResourceRegistry;
58
+ export {};
59
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/resources/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,kBAAkB,CAAC;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAClC;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,SAAS,CAA8C;IAE/D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAO9C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIjD;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,iBAAiB,IAAI,kBAAkB,EAAE;IAIzC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,kBAAkB;IAQ3F;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;IAoBrF;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;IAIrD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS;IAI5D;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Resource Registry for SolidWorks MCP
3
+ * Manages all available resource types and their schemas
4
+ */
5
+ import { z } from 'zod';
6
+ class ResourceRegistry {
7
+ resources = new Map();
8
+ /**
9
+ * Register a new resource type
10
+ */
11
+ register(definition) {
12
+ if (this.resources.has(definition.type)) {
13
+ throw new Error(`Resource type '${definition.type}' is already registered`);
14
+ }
15
+ this.resources.set(definition.type, definition);
16
+ }
17
+ /**
18
+ * Get a resource definition by type
19
+ */
20
+ get(type) {
21
+ return this.resources.get(type);
22
+ }
23
+ /**
24
+ * Get all registered resource types
25
+ */
26
+ getAllTypes() {
27
+ return Array.from(this.resources.keys());
28
+ }
29
+ /**
30
+ * Get all resource definitions
31
+ */
32
+ getAllDefinitions() {
33
+ return Array.from(this.resources.values());
34
+ }
35
+ /**
36
+ * Create a resource instance
37
+ */
38
+ createResource(type, id, name, properties) {
39
+ const definition = this.resources.get(type);
40
+ if (!definition) {
41
+ throw new Error(`Unknown resource type: ${type}`);
42
+ }
43
+ return definition.factory(id, name, properties);
44
+ }
45
+ /**
46
+ * Validate resource properties
47
+ */
48
+ validateProperties(type, properties) {
49
+ const definition = this.resources.get(type);
50
+ if (!definition) {
51
+ return { valid: false, errors: [{ message: `Unknown resource type: ${type}` }] };
52
+ }
53
+ try {
54
+ definition.schema.parse(properties);
55
+ return { valid: true };
56
+ }
57
+ catch (error) {
58
+ if (error instanceof z.ZodError) {
59
+ return {
60
+ valid: false,
61
+ errors: error.errors
62
+ };
63
+ }
64
+ return { valid: false, errors: [{ message: 'Unknown validation error' }] };
65
+ }
66
+ }
67
+ /**
68
+ * Get schema for a resource type
69
+ */
70
+ getSchema(type) {
71
+ return this.resources.get(type)?.schema;
72
+ }
73
+ /**
74
+ * Get examples for a resource type
75
+ */
76
+ getExamples(type) {
77
+ return this.resources.get(type)?.examples;
78
+ }
79
+ /**
80
+ * Clear all registered resources (useful for testing)
81
+ */
82
+ clear() {
83
+ this.resources.clear();
84
+ }
85
+ }
86
+ // Export singleton instance
87
+ export const resourceRegistry = new ResourceRegistry();
88
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/resources/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,MAAM,gBAAgB;IACZ,SAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,UAA8B;QACrC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY,EAAE,EAAU,EAAE,IAAY,EAAE,UAAe;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAY,EAAE,UAAe;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACnF,CAAC;QAED,IAAI,CAAC;YACH,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { SolidWorksModel, SolidWorksFeature } from './types.js';
2
+ export declare class SolidWorksAPI {
3
+ private swApp;
4
+ private currentModel;
5
+ constructor();
6
+ connect(): Promise<void>;
7
+ disconnect(): Promise<void>;
8
+ isConnected(): boolean;
9
+ openModel(filePath: string): Promise<SolidWorksModel>;
10
+ closeModel(save?: boolean): Promise<void>;
11
+ createPart(): Promise<SolidWorksModel>;
12
+ createSketch(params: any): Promise<any>;
13
+ addLine(params: any): Promise<any>;
14
+ extrude(params: any): Promise<any>;
15
+ createExtrude(depth: number, draft?: number, reverse?: boolean): Promise<SolidWorksFeature>;
16
+ getDimension(name: string): Promise<number>;
17
+ setDimension(name: string, value: number): Promise<void>;
18
+ exportFile(filePath: string, format: string): Promise<void>;
19
+ runMacro(macroPath: string, moduleName: string, procedureName: string, args?: any[]): Promise<any>;
20
+ getMassProperties(): Promise<any>;
21
+ getCurrentModel(): any;
22
+ getApp(): any;
23
+ }
24
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/solidworks/api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAGnF,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,YAAY,CAAM;;IAOpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAWxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,WAAW,IAAI,OAAO;IAKhB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiCrD,UAAU,CAAC,IAAI,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhD,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC;IAoBtC,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAevC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBlC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAelC,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAU,EACjB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAqCvB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAetG,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;IAkBvC,eAAe,IAAI,GAAG;IAKtB,MAAM,IAAI,GAAG;CAGd"}