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,132 @@
1
+ /**
2
+ * Database Connection Manager for Design Tables
3
+ * Supports SQL Server and PostgreSQL
4
+ */
5
+ import pg from 'pg';
6
+ import mssql from 'mssql';
7
+ import { logger } from '../utils/logger.js';
8
+ export class PostgreSQLConnection {
9
+ client;
10
+ constructor(connectionString) {
11
+ this.client = new pg.Client({ connectionString });
12
+ }
13
+ async connect() {
14
+ await this.client.connect();
15
+ logger.info('Connected to PostgreSQL database');
16
+ }
17
+ async query(sql, params) {
18
+ const result = await this.client.query(sql, params);
19
+ return result.rows;
20
+ }
21
+ async close() {
22
+ await this.client.end();
23
+ logger.info('Disconnected from PostgreSQL database');
24
+ }
25
+ }
26
+ export class SQLServerConnection {
27
+ pool = null;
28
+ config;
29
+ constructor(connectionString) {
30
+ // Parse connection string for SQL Server
31
+ const url = new URL(connectionString);
32
+ this.config = {
33
+ server: url.hostname,
34
+ port: parseInt(url.port) || 1433,
35
+ database: url.pathname.substring(1),
36
+ user: url.username,
37
+ password: url.password,
38
+ options: {
39
+ encrypt: true,
40
+ trustServerCertificate: true
41
+ }
42
+ };
43
+ }
44
+ async connect() {
45
+ this.pool = await mssql.connect(this.config);
46
+ logger.info('Connected to SQL Server database');
47
+ }
48
+ async query(sql, params) {
49
+ if (!this.pool) {
50
+ await this.connect();
51
+ }
52
+ const request = this.pool.request();
53
+ // Add parameters if provided
54
+ if (params) {
55
+ params.forEach((param, index) => {
56
+ request.input(`param${index}`, param);
57
+ });
58
+ }
59
+ const result = await request.query(sql);
60
+ return result.recordset;
61
+ }
62
+ async close() {
63
+ if (this.pool) {
64
+ await this.pool.close();
65
+ logger.info('Disconnected from SQL Server database');
66
+ }
67
+ }
68
+ }
69
+ export class DatabaseManager {
70
+ connections = new Map();
71
+ /**
72
+ * Create a database connection
73
+ */
74
+ async createConnection(name, connectionString) {
75
+ // Close existing connection if any
76
+ if (this.connections.has(name)) {
77
+ await this.closeConnection(name);
78
+ }
79
+ let connection;
80
+ if (connectionString.startsWith('postgresql://') || connectionString.startsWith('postgres://')) {
81
+ connection = new PostgreSQLConnection(connectionString);
82
+ await connection.connect();
83
+ }
84
+ else if (connectionString.startsWith('mssql://') || connectionString.startsWith('sqlserver://')) {
85
+ connection = new SQLServerConnection(connectionString);
86
+ await connection.connect();
87
+ }
88
+ else {
89
+ throw new Error(`Unsupported database type in connection string: ${connectionString}`);
90
+ }
91
+ this.connections.set(name, connection);
92
+ return connection;
93
+ }
94
+ /**
95
+ * Get an existing connection
96
+ */
97
+ getConnection(name) {
98
+ return this.connections.get(name);
99
+ }
100
+ /**
101
+ * Close a connection
102
+ */
103
+ async closeConnection(name) {
104
+ const connection = this.connections.get(name);
105
+ if (connection) {
106
+ await connection.close();
107
+ this.connections.delete(name);
108
+ }
109
+ }
110
+ /**
111
+ * Close all connections
112
+ */
113
+ async closeAll() {
114
+ for (const [, connection] of this.connections) {
115
+ await connection.close();
116
+ }
117
+ this.connections.clear();
118
+ }
119
+ /**
120
+ * Execute a query on a named connection
121
+ */
122
+ async query(connectionName, sql, params) {
123
+ const connection = this.connections.get(connectionName);
124
+ if (!connection) {
125
+ throw new Error(`No connection found with name: ${connectionName}`);
126
+ }
127
+ return await connection.query(sql, params);
128
+ }
129
+ }
130
+ // Export singleton instance
131
+ export const dbManager = new DatabaseManager();
132
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAY;IAE1B,YAAY,gBAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IACtB,IAAI,GAAgC,IAAI,CAAC;IACzC,MAAM,CAAe;IAE7B,YAAY,gBAAwB;QAClC,yCAAyC;QACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,GAAG,CAAC,QAAQ;YACpB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,sBAAsB,EAAE,IAAI;aAC7B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAc;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAK,CAAC,OAAO,EAAE,CAAC;QAErC,6BAA6B;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAClB,WAAW,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE3D;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,gBAAwB;QAC3D,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,UAAwB,CAAC;QAE7B,IAAI,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/F,UAAU,GAAG,IAAI,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YACxD,MAAO,UAAmC,CAAC,OAAO,EAAE,CAAC;QACvD,CAAC;aAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAClG,UAAU,GAAG,IAAI,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACvD,MAAO,UAAkC,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mDAAmD,gBAAgB,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,cAAsB,EAAE,GAAW,EAAE,MAAc;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolidWorks MCP Server - Enhanced Architecture
4
+ * Provides comprehensive SolidWorks automation with macro recording,
5
+ * design tables, SQL integration, VBA generation, and PDM configuration
6
+ */
7
+ declare class SolidWorksMCPServer {
8
+ private server;
9
+ private api;
10
+ private stateStore;
11
+ private macroRecorder;
12
+ private cacheManager;
13
+ private config;
14
+ constructor();
15
+ /**
16
+ * Register resource types
17
+ */
18
+ private registerResources;
19
+ /**
20
+ * Setup request handlers
21
+ */
22
+ private setupHandlers;
23
+ /**
24
+ * Setup macro action handlers
25
+ */
26
+ private setupMacroHandlers;
27
+ /**
28
+ * Initialize and start the server
29
+ */
30
+ start(): Promise<void>;
31
+ /**
32
+ * Shutdown the server
33
+ */
34
+ shutdown(): Promise<void>;
35
+ }
36
+ export { SolidWorksMCPServer };
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AA0DH,cAAM,mBAAmB;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAA+B;;IAwC7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoNrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBhC;AAkBD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,402 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolidWorks MCP Server - Enhanced Architecture
4
+ * Provides comprehensive SolidWorks automation with macro recording,
5
+ * design tables, SQL integration, VBA generation, and PDM configuration
6
+ */
7
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
10
+ import { z } from 'zod';
11
+ import dotenv from 'dotenv';
12
+ // Import logging
13
+ import { logInfo, logError, logOperation } from './utils/logger.js';
14
+ // Import resources and registry
15
+ import { resourceRegistry } from './resources/registry.js';
16
+ import { DesignTableResource } from './resources/design-table.js';
17
+ import { PDMResource } from './resources/pdm.js';
18
+ // Import state management
19
+ import { ResourceStateStore } from './state/store.js';
20
+ // Import macro system
21
+ import { MacroRecorder } from './macro/index.js';
22
+ // Import cache management
23
+ import { CacheManager } from './cache/manager.js';
24
+ // Import database management
25
+ import { dbManager } from './db/connection.js';
26
+ // Import existing tools
27
+ import { modelingTools } from './tools/modeling.js';
28
+ import { drawingTools } from './tools/drawing.js';
29
+ import { exportTools } from './tools/export.js';
30
+ import { vbaTools } from './tools/vba.js';
31
+ import { analysisTools } from './tools/analysis.js';
32
+ // Import API
33
+ import { SolidWorksAPI } from './solidworks/api.js';
34
+ dotenv.config();
35
+ // Configuration schema
36
+ const ConfigSchema = z.object({
37
+ solidworksPath: z.string().optional(),
38
+ enableMacroRecording: z.boolean().default(true),
39
+ enablePDM: z.boolean().default(false),
40
+ pdmVault: z.string().optional(),
41
+ sqlConnection: z.string().optional(),
42
+ stateFile: z.string().optional(),
43
+ logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info')
44
+ });
45
+ class SolidWorksMCPServer {
46
+ server;
47
+ api;
48
+ stateStore;
49
+ macroRecorder;
50
+ cacheManager;
51
+ config;
52
+ constructor() {
53
+ // Parse configuration
54
+ this.config = ConfigSchema.parse({
55
+ solidworksPath: process.env.SOLIDWORKS_PATH,
56
+ enableMacroRecording: process.env.ENABLE_MACRO_RECORDING !== 'false',
57
+ enablePDM: process.env.ENABLE_PDM === 'true',
58
+ pdmVault: process.env.PDM_VAULT,
59
+ sqlConnection: process.env.SQL_CONNECTION,
60
+ stateFile: process.env.STATE_FILE,
61
+ logLevel: process.env.LOG_LEVEL || 'info'
62
+ });
63
+ // Initialize components
64
+ this.api = new SolidWorksAPI();
65
+ this.stateStore = new ResourceStateStore(this.config.stateFile);
66
+ this.macroRecorder = new MacroRecorder();
67
+ this.cacheManager = new CacheManager(1000, 3600000); // 1000 entries, 1 hour TTL
68
+ // Create MCP server
69
+ this.server = new Server({
70
+ name: 'solidworks-mcp-server',
71
+ version: '2.0.0',
72
+ description: 'Enhanced SolidWorks MCP Server with macro recording, design tables, SQL integration, and PDM support'
73
+ }, {
74
+ capabilities: {
75
+ tools: {},
76
+ resources: {}
77
+ }
78
+ });
79
+ this.registerResources();
80
+ this.setupHandlers();
81
+ this.setupMacroHandlers();
82
+ }
83
+ /**
84
+ * Register resource types
85
+ */
86
+ registerResources() {
87
+ // Register Design Table resource
88
+ resourceRegistry.register({
89
+ type: 'design-table',
90
+ name: 'Design Table',
91
+ description: 'Manages SolidWorks design tables with SQL integration',
92
+ schema: DesignTableResource.prototype.schema,
93
+ factory: (id, name, properties) => new DesignTableResource(id, name, properties),
94
+ examples: [
95
+ {
96
+ tableName: 'ParametricBox',
97
+ parameters: [
98
+ { name: 'Length', type: 'dimension', dataType: 'number', sqlColumn: 'length' },
99
+ { name: 'Width', type: 'dimension', dataType: 'number', sqlColumn: 'width' },
100
+ { name: 'Height', type: 'dimension', dataType: 'number', sqlColumn: 'height' }
101
+ ],
102
+ dataSource: {
103
+ type: 'sql',
104
+ connectionString: 'mssql://server:1433/database',
105
+ query: 'SELECT * FROM design_configurations'
106
+ }
107
+ }
108
+ ]
109
+ });
110
+ // Register PDM resource
111
+ if (this.config.enablePDM) {
112
+ resourceRegistry.register({
113
+ type: 'pdm-configuration',
114
+ name: 'PDM Configuration',
115
+ description: 'Manages SolidWorks PDM vault configurations and operations',
116
+ schema: PDMResource.prototype.schema,
117
+ factory: (id, name, properties) => new PDMResource(id, name, properties),
118
+ examples: [
119
+ {
120
+ vaultName: 'Engineering',
121
+ operations: {
122
+ checkIn: { enabled: true, comment: 'Auto check-in' },
123
+ checkOut: { enabled: true, getLatestVersion: true }
124
+ }
125
+ }
126
+ ]
127
+ });
128
+ }
129
+ logInfo('Resources registered', {
130
+ types: resourceRegistry.getAllTypes()
131
+ });
132
+ }
133
+ /**
134
+ * Setup request handlers
135
+ */
136
+ setupHandlers() {
137
+ // Combine all tools
138
+ const allTools = [
139
+ ...modelingTools,
140
+ ...drawingTools,
141
+ ...exportTools,
142
+ ...vbaTools,
143
+ ...analysisTools,
144
+ // Add macro tools
145
+ {
146
+ name: 'macro_start_recording',
147
+ description: 'Start recording a new macro',
148
+ inputSchema: z.object({
149
+ name: z.string(),
150
+ description: z.string().optional()
151
+ }),
152
+ handler: (args) => {
153
+ const id = this.macroRecorder.startRecording(args.name, args.description);
154
+ return { macroId: id, status: 'recording' };
155
+ }
156
+ },
157
+ {
158
+ name: 'macro_stop_recording',
159
+ description: 'Stop the current macro recording',
160
+ inputSchema: z.object({}),
161
+ handler: () => {
162
+ const recording = this.macroRecorder.stopRecording();
163
+ return recording || { error: 'No recording in progress' };
164
+ }
165
+ },
166
+ {
167
+ name: 'macro_export_vba',
168
+ description: 'Export a recorded macro to VBA code',
169
+ inputSchema: z.object({
170
+ macroId: z.string()
171
+ }),
172
+ handler: (args) => {
173
+ const vbaCode = this.macroRecorder.exportToVBA(args.macroId);
174
+ return { code: vbaCode };
175
+ }
176
+ },
177
+ // Add design table tools
178
+ {
179
+ name: 'design_table_create',
180
+ description: 'Create a new design table with optional SQL data source',
181
+ inputSchema: z.object({
182
+ name: z.string(),
183
+ config: z.any()
184
+ }),
185
+ handler: async (args) => {
186
+ const resource = new DesignTableResource(`dt_${Date.now()}`, args.name, args.config);
187
+ const result = await resource.execute(this.api);
188
+ await this.stateStore.setState(resource.id, resource.toState());
189
+ return result;
190
+ }
191
+ },
192
+ {
193
+ name: 'design_table_refresh',
194
+ description: 'Refresh design table data from SQL source',
195
+ inputSchema: z.object({
196
+ resourceId: z.string()
197
+ }),
198
+ handler: async (args) => {
199
+ const state = this.stateStore.getState(args.resourceId);
200
+ if (!state || state.type !== 'design-table') {
201
+ throw new Error('Design table resource not found');
202
+ }
203
+ const resource = new DesignTableResource(state.id, state.name, state.properties);
204
+ await resource.refresh(this.api);
205
+ await this.stateStore.setState(resource.id, resource.toState());
206
+ return { status: 'refreshed' };
207
+ }
208
+ },
209
+ // Add PDM tools if enabled
210
+ ...(this.config.enablePDM ? [
211
+ {
212
+ name: 'pdm_configure',
213
+ description: 'Configure PDM vault settings and operations',
214
+ inputSchema: z.object({
215
+ name: z.string(),
216
+ config: z.any()
217
+ }),
218
+ handler: async (args) => {
219
+ const resource = new PDMResource(`pdm_${Date.now()}`, args.name, args.config);
220
+ const result = await resource.execute(this.api);
221
+ await this.stateStore.setState(resource.id, resource.toState());
222
+ return result;
223
+ }
224
+ }
225
+ ] : [])
226
+ ];
227
+ // List available tools
228
+ this.server.setRequestHandler(ListToolsRequestSchema, () => {
229
+ return {
230
+ tools: allTools.map(tool => ({
231
+ name: tool.name,
232
+ description: tool.description,
233
+ inputSchema: tool.inputSchema
234
+ }))
235
+ };
236
+ });
237
+ // Handle tool execution
238
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
239
+ const { name, arguments: args } = request.params;
240
+ logOperation(name, 'started', args);
241
+ const tool = allTools.find(t => t.name === name);
242
+ if (!tool) {
243
+ throw new McpError(ErrorCode.MethodNotFound, `Tool "${name}" not found`);
244
+ }
245
+ try {
246
+ // Validate input
247
+ const validatedArgs = tool.inputSchema.parse(args);
248
+ // Record action if recording
249
+ if (this.config.enableMacroRecording && this.macroRecorder) {
250
+ try {
251
+ this.macroRecorder.recordAction(name, tool.description, validatedArgs);
252
+ }
253
+ catch {
254
+ // Recording not in progress, ignore
255
+ }
256
+ }
257
+ // Ensure SolidWorks connection
258
+ if (!this.api.isConnected()) {
259
+ await this.api.connect();
260
+ }
261
+ // Execute tool
262
+ const result = await tool.handler(validatedArgs, this.api);
263
+ logOperation(name, 'completed', { result });
264
+ return {
265
+ content: [
266
+ {
267
+ type: 'text',
268
+ text: typeof result === 'string' ? result : JSON.stringify(result, null, 2)
269
+ }
270
+ ]
271
+ };
272
+ }
273
+ catch (error) {
274
+ logOperation(name, 'failed', { error });
275
+ if (error instanceof z.ZodError) {
276
+ throw new McpError(ErrorCode.InvalidParams, `Invalid parameters: ${error.errors.map(e => e.message).join(', ')}`);
277
+ }
278
+ throw error;
279
+ }
280
+ });
281
+ // List resources
282
+ this.server.setRequestHandler(ListResourcesRequestSchema, () => {
283
+ const resources = this.stateStore.getAllStates();
284
+ return {
285
+ resources: resources.map(state => ({
286
+ uri: `solidworks://${state.type}/${state.id}`,
287
+ name: state.name,
288
+ mimeType: 'application/json',
289
+ description: `${state.type} resource: ${state.name}`
290
+ }))
291
+ };
292
+ });
293
+ // Read resource
294
+ this.server.setRequestHandler(ReadResourceRequestSchema, (request) => {
295
+ const { uri } = request.params;
296
+ // Parse URI: solidworks://type/id
297
+ const match = uri.match(/^solidworks:\/\/([^/]+)\/(.+)$/);
298
+ if (!match) {
299
+ throw new McpError(ErrorCode.InvalidRequest, 'Invalid resource URI');
300
+ }
301
+ const [, , id] = match;
302
+ const state = this.stateStore.getState(id);
303
+ if (!state) {
304
+ throw new McpError(ErrorCode.InvalidRequest, 'Resource not found');
305
+ }
306
+ return {
307
+ contents: [
308
+ {
309
+ uri,
310
+ mimeType: 'application/json',
311
+ text: JSON.stringify(state, null, 2)
312
+ }
313
+ ]
314
+ };
315
+ });
316
+ }
317
+ /**
318
+ * Setup macro action handlers
319
+ */
320
+ setupMacroHandlers() {
321
+ // Register handlers for different action types
322
+ this.macroRecorder.registerActionHandler('create-sketch', async (action) => {
323
+ return await this.api.createSketch(action.parameters);
324
+ });
325
+ this.macroRecorder.registerActionHandler('add-line', async (action) => {
326
+ return await this.api.addLine(action.parameters);
327
+ });
328
+ this.macroRecorder.registerActionHandler('extrude', async (action) => {
329
+ return await this.api.extrude(action.parameters);
330
+ });
331
+ // Add more handlers as needed
332
+ }
333
+ /**
334
+ * Initialize and start the server
335
+ */
336
+ async start() {
337
+ try {
338
+ // Load saved state
339
+ await this.stateStore.load();
340
+ logInfo('State store loaded', this.stateStore.getStatistics());
341
+ // Start server with stdio transport
342
+ const transport = new StdioServerTransport();
343
+ await this.server.connect(transport);
344
+ logInfo('SolidWorks MCP Server started', {
345
+ version: '2.0.0',
346
+ features: {
347
+ macroRecording: this.config.enableMacroRecording,
348
+ pdmIntegration: this.config.enablePDM,
349
+ sqlIntegration: !!this.config.sqlConnection
350
+ }
351
+ });
352
+ // Handle shutdown
353
+ process.on('SIGINT', async () => {
354
+ logInfo('Shutting down server...');
355
+ await this.shutdown();
356
+ process.exit(0);
357
+ });
358
+ }
359
+ catch (error) {
360
+ logError('Failed to start server', error);
361
+ throw error;
362
+ }
363
+ }
364
+ /**
365
+ * Shutdown the server
366
+ */
367
+ async shutdown() {
368
+ logInfo('Starting server shutdown...');
369
+ // Save state
370
+ await this.stateStore.save();
371
+ // Stop auto-save
372
+ this.stateStore.stopAutoSave();
373
+ // Clear cache
374
+ this.cacheManager.clear();
375
+ // Close all database connections
376
+ await dbManager.closeAll();
377
+ // Clear macro recorder
378
+ this.macroRecorder.clear();
379
+ // Disconnect from SolidWorks
380
+ if (this.api.isConnected()) {
381
+ await this.api.disconnect();
382
+ }
383
+ logInfo('Server shutdown complete');
384
+ }
385
+ }
386
+ // Main entry point
387
+ async function main() {
388
+ try {
389
+ const server = new SolidWorksMCPServer();
390
+ await server.start();
391
+ }
392
+ catch (error) {
393
+ logError('Fatal error', error);
394
+ process.exit(1);
395
+ }
396
+ }
397
+ // Run if executed directly
398
+ if (import.meta.url === `file://${process.argv[1]}`) {
399
+ main();
400
+ }
401
+ export { SolidWorksMCPServer };
402
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,SAAS,EACT,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,gCAAgC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,sBAAsB;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,6BAA6B;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,uBAAuB;AACvB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACrE,CAAC,CAAC;AAEH,MAAM,mBAAmB;IACf,MAAM,CAAS;IACf,GAAG,CAAgB;IACnB,UAAU,CAAqB;IAC/B,aAAa,CAAgB;IAC7B,YAAY,CAAe;IAC3B,MAAM,CAA+B;IAE7C;QACE,sBAAsB;QACtB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YAC/B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YAC3C,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,OAAO;YACpE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM;YAC5C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;YAC/B,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;SAC1C,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,2BAA2B;QAEhF,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,sGAAsG;SACpH,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;aACd;SACF,CACF,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,iCAAiC;QACjC,gBAAgB,CAAC,QAAQ,CAAC;YACxB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,uDAAuD;YACpE,MAAM,EAAE,mBAAmB,CAAC,SAAS,CAAC,MAAM;YAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC;YAChF,QAAQ,EAAE;gBACR;oBACE,SAAS,EAAE,eAAe;oBAC1B,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;wBAC9E,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE;wBAC5E,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;qBAC/E;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,KAAK;wBACX,gBAAgB,EAAE,8BAA8B;wBAChD,KAAK,EAAE,qCAAqC;qBAC7C;iBACF;aACF;SACF,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,gBAAgB,CAAC,QAAQ,CAAC;gBACxB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,4DAA4D;gBACzE,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;gBACpC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC;gBACxE,QAAQ,EAAE;oBACR;wBACE,SAAS,EAAE,aAAa;wBACxB,UAAU,EAAE;4BACV,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE;4BACpD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE;yBACpD;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,sBAAsB,EAAE;YAC9B,KAAK,EAAE,gBAAgB,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,oBAAoB;QACpB,MAAM,QAAQ,GAAG;YACf,GAAG,aAAa;YAChB,GAAG,YAAY;YACf,GAAG,WAAW;YACd,GAAG,QAAQ;YACX,GAAG,aAAa;YAChB,kBAAkB;YAClB;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,6BAA6B;gBAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBACnC,CAAC;gBACF,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;oBACrB,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1E,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gBAC9C,CAAC;aACF;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,kCAAkC;gBAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;oBACrD,OAAO,SAAS,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;gBAC5D,CAAC;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,qCAAqC;gBAClD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;oBACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;iBACpB,CAAC;gBACF,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;oBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC3B,CAAC;aACF;YACD,yBAAyB;YACzB;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,yDAAyD;gBACtE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;oBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;iBAChB,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;oBAC3B,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CACtC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,EAClB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;oBACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChD,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChE,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,2CAA2C;gBACxD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;oBACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;iBACvB,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;oBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAC5C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACrD,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAiB,CAAC,CAAC;oBACxF,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;gBACjC,CAAC;aACF;YACD,2BAA2B;YAC3B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1B;oBACE,IAAI,EAAE,eAAe;oBACrB,WAAW,EAAE,6CAA6C;oBAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;wBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;wBAChB,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE;qBAChB,CAAC;oBACF,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;wBAC3B,MAAM,QAAQ,GAAG,IAAI,WAAW,CAC9B,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,EACnB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;wBACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAChD,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;wBAChE,OAAO,MAAM,CAAC;oBAChB,CAAC;iBACF;aACF,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACzD,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,cAAc,EACxB,SAAS,IAAI,aAAa,CAC3B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,iBAAiB;gBACjB,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEnD,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC3D,IAAI,CAAC;wBACH,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;oBACzE,CAAC;oBAAC,MAAM,CAAC;wBACP,oCAAoC;oBACtC,CAAC;gBACH,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;gBAED,eAAe;gBACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE3D,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE5C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC5E;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAExC,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,uBAAuB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAEjD,OAAO;gBACL,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACjC,GAAG,EAAE,gBAAgB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE;oBAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,kBAAkB;oBAC5B,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,IAAI,EAAE;iBACrD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE;YACnE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAE/B,kCAAkC;YAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,CAAC,EAAE,AAAD,EAAG,EAAE,CAAC,GAAG,KAAK,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YACrE,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;qBACrC;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,+CAA+C;QAC/C,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACzE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACpE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACnE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,8BAA8B;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,mBAAmB;YACnB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;YAE/D,oCAAoC;YACpC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAErC,OAAO,CAAC,+BAA+B,EAAE;gBACvC,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE;oBACR,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;oBAChD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;oBACrC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;iBAC5C;aACF,CAAC,CAAC;YAEH,kBAAkB;YAClB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAEvC,aAAa;QACb,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAE7B,iBAAiB;QACjB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAE/B,cAAc;QACd,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,iCAAiC;QACjC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAE3B,uBAAuB;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtC,CAAC;CACF;AAED,mBAAmB;AACnB,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACzC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare class SolidWorksKnowledgeBase {
2
+ private client;
3
+ private collection;
4
+ constructor();
5
+ initialize(): Promise<void>;
6
+ recordOperation(operation: {
7
+ tool: string;
8
+ input: any;
9
+ output: any;
10
+ success: boolean;
11
+ timestamp: Date;
12
+ }): Promise<void>;
13
+ findSimilarOperations(query: string, limit?: number): Promise<any[]>;
14
+ getSuccessRate(tool: string): Promise<number>;
15
+ }
16
+ //# sourceMappingURL=chromadb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromadb.d.ts","sourceRoot":"","sources":["../../src/knowledge/chromadb.ts"],"names":[],"mappings":"AAIA,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAM;;IAQlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,eAAe,CAAC,SAAS,EAAE;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,GAAG,CAAC;QACX,MAAM,EAAE,GAAG,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBX,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAoBvE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmBpD"}