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.
Files changed (243) hide show
  1. package/CHANGELOG.md +175 -98
  2. package/LICENSE +20 -20
  3. package/README.md +195 -423
  4. package/dist/adapters/circuit-breaker.d.ts +84 -0
  5. package/dist/adapters/circuit-breaker.d.ts.map +1 -0
  6. package/dist/adapters/circuit-breaker.js +228 -0
  7. package/dist/adapters/circuit-breaker.js.map +1 -0
  8. package/dist/adapters/connection-pool.d.ts +83 -0
  9. package/dist/adapters/connection-pool.d.ts.map +1 -0
  10. package/dist/adapters/connection-pool.js +282 -0
  11. package/dist/adapters/connection-pool.js.map +1 -0
  12. package/dist/adapters/edge-adapter.d.ts +43 -0
  13. package/dist/adapters/edge-adapter.d.ts.map +1 -0
  14. package/dist/adapters/edge-adapter.js +417 -0
  15. package/dist/adapters/edge-adapter.js.map +1 -0
  16. package/dist/adapters/factory.d.ts +60 -0
  17. package/dist/adapters/factory.d.ts.map +1 -0
  18. package/dist/adapters/factory.js +212 -0
  19. package/dist/adapters/factory.js.map +1 -0
  20. package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
  21. package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
  22. package/dist/adapters/feature-complexity-analyzer.js +322 -0
  23. package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
  24. package/dist/adapters/macro-generator.d.ts +30 -0
  25. package/dist/adapters/macro-generator.d.ts.map +1 -0
  26. package/dist/adapters/macro-generator.js +524 -0
  27. package/dist/adapters/macro-generator.js.map +1 -0
  28. package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
  29. package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
  30. package/dist/adapters/mock-solidworks-adapter.js +367 -0
  31. package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
  32. package/dist/adapters/types.d.ts +376 -0
  33. package/dist/adapters/types.d.ts.map +1 -0
  34. package/dist/adapters/types.js +261 -0
  35. package/dist/adapters/types.js.map +1 -0
  36. package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
  37. package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
  38. package/dist/adapters/winax-adapter-enhanced.js +601 -0
  39. package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
  40. package/dist/adapters/winax-adapter.d.ts +55 -0
  41. package/dist/adapters/winax-adapter.d.ts.map +1 -0
  42. package/dist/adapters/winax-adapter.js +667 -0
  43. package/dist/adapters/winax-adapter.js.map +1 -0
  44. package/dist/api/stainless-api.d.ts +29 -0
  45. package/dist/api/stainless-api.d.ts.map +1 -0
  46. package/dist/api/stainless-api.js +408 -0
  47. package/dist/api/stainless-api.js.map +1 -0
  48. package/dist/cache/manager.d.ts.map +1 -1
  49. package/dist/cache/manager.js +4 -3
  50. package/dist/cache/manager.js.map +1 -1
  51. package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
  52. package/dist/core/interfaces/core-abstractions.js.map +1 -1
  53. package/dist/db/connection.js +4 -4
  54. package/dist/db/connection.js.map +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +86 -79
  57. package/dist/index.js.map +1 -1
  58. package/dist/knowledge/chromadb.d.ts.map +1 -1
  59. package/dist/knowledge/chromadb.js +5 -3
  60. package/dist/knowledge/chromadb.js.map +1 -1
  61. package/dist/macro/recorder.d.ts +1 -1
  62. package/dist/macro/recorder.d.ts.map +1 -1
  63. package/dist/macro/recorder.js +10 -10
  64. package/dist/macro/recorder.js.map +1 -1
  65. package/dist/resources/base.js +10 -10
  66. package/dist/resources/base.js.map +1 -1
  67. package/dist/resources/design-table.d.ts +10 -12
  68. package/dist/resources/design-table.d.ts.map +1 -1
  69. package/dist/resources/design-table.js +42 -39
  70. package/dist/resources/design-table.js.map +1 -1
  71. package/dist/resources/pdm.d.ts +44 -45
  72. package/dist/resources/pdm.d.ts.map +1 -1
  73. package/dist/resources/pdm.js +118 -79
  74. package/dist/resources/pdm.js.map +1 -1
  75. package/dist/resources/registry.d.ts +1 -1
  76. package/dist/resources/registry.d.ts.map +1 -1
  77. package/dist/resources/registry.js +1 -1
  78. package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
  79. package/dist/shared/constants/solidworks-constants.js +9 -9
  80. package/dist/shared/constants/solidworks-constants.js.map +1 -1
  81. package/dist/solidworks/api.d.ts +8 -6
  82. package/dist/solidworks/api.d.ts.map +1 -1
  83. package/dist/solidworks/api.js +614 -188
  84. package/dist/solidworks/api.js.map +1 -1
  85. package/dist/state/store.d.ts +1 -1
  86. package/dist/state/store.d.ts.map +1 -1
  87. package/dist/state/store.js +14 -14
  88. package/dist/state/store.js.map +1 -1
  89. package/dist/tools/analysis.d.ts +12 -2
  90. package/dist/tools/analysis.d.ts.map +1 -1
  91. package/dist/tools/analysis.js +141 -31
  92. package/dist/tools/analysis.js.map +1 -1
  93. package/dist/tools/diagnostics.d.ts +1 -1
  94. package/dist/tools/diagnostics.d.ts.map +1 -1
  95. package/dist/tools/diagnostics.js +2 -2
  96. package/dist/tools/diagnostics.js.map +1 -1
  97. package/dist/tools/drawing.d.ts +2 -2
  98. package/dist/tools/drawing.d.ts.map +1 -1
  99. package/dist/tools/drawing.js +94 -10
  100. package/dist/tools/drawing.js.map +1 -1
  101. package/dist/tools/enhanced-drawing.d.ts +1 -1
  102. package/dist/tools/enhanced-drawing.d.ts.map +1 -1
  103. package/dist/tools/enhanced-drawing.js +10 -13
  104. package/dist/tools/enhanced-drawing.js.map +1 -1
  105. package/dist/tools/export.d.ts +1 -1
  106. package/dist/tools/export.d.ts.map +1 -1
  107. package/dist/tools/export.js +88 -14
  108. package/dist/tools/export.js.map +1 -1
  109. package/dist/tools/extrusion-helper.d.ts +15 -0
  110. package/dist/tools/extrusion-helper.d.ts.map +1 -0
  111. package/dist/tools/extrusion-helper.js +61 -0
  112. package/dist/tools/extrusion-helper.js.map +1 -0
  113. package/dist/tools/macro-security.d.ts +2 -2
  114. package/dist/tools/macro-security.d.ts.map +1 -1
  115. package/dist/tools/macro-security.js +2 -2
  116. package/dist/tools/macro-security.js.map +1 -1
  117. package/dist/tools/modeling.d.ts +2 -2
  118. package/dist/tools/modeling.d.ts.map +1 -1
  119. package/dist/tools/modeling.js +6 -6
  120. package/dist/tools/modeling.js.map +1 -1
  121. package/dist/tools/native-macro.d.ts +1 -1
  122. package/dist/tools/native-macro.d.ts.map +1 -1
  123. package/dist/tools/native-macro.js +246 -239
  124. package/dist/tools/native-macro.js.map +1 -1
  125. package/dist/tools/sketch.d.ts +28 -28
  126. package/dist/tools/sketch.d.ts.map +1 -1
  127. package/dist/tools/sketch.js +202 -136
  128. package/dist/tools/sketch.js.map +1 -1
  129. package/dist/tools/template-manager.d.ts +5 -5
  130. package/dist/tools/template-manager.d.ts.map +1 -1
  131. package/dist/tools/template-manager.js +66 -65
  132. package/dist/tools/template-manager.js.map +1 -1
  133. package/dist/tools/vba-advanced.d.ts +10 -10
  134. package/dist/tools/vba-advanced.d.ts.map +1 -1
  135. package/dist/tools/vba-advanced.js +791 -708
  136. package/dist/tools/vba-advanced.js.map +1 -1
  137. package/dist/tools/vba-assembly.d.ts +10 -10
  138. package/dist/tools/vba-assembly.d.ts.map +1 -1
  139. package/dist/tools/vba-assembly.js +562 -500
  140. package/dist/tools/vba-assembly.js.map +1 -1
  141. package/dist/tools/vba-drawing.d.ts +12 -12
  142. package/dist/tools/vba-drawing.d.ts.map +1 -1
  143. package/dist/tools/vba-drawing.js +681 -572
  144. package/dist/tools/vba-drawing.js.map +1 -1
  145. package/dist/tools/vba-file-management.d.ts +12 -12
  146. package/dist/tools/vba-file-management.d.ts.map +1 -1
  147. package/dist/tools/vba-file-management.js +662 -589
  148. package/dist/tools/vba-file-management.js.map +1 -1
  149. package/dist/tools/vba-part.d.ts +10 -10
  150. package/dist/tools/vba-part.d.ts.map +1 -1
  151. package/dist/tools/vba-part.js +484 -426
  152. package/dist/tools/vba-part.js.map +1 -1
  153. package/dist/tools/vba.d.ts +361 -361
  154. package/dist/tools/vba.d.ts.map +1 -1
  155. package/dist/tools/vba.js +67 -81
  156. package/dist/tools/vba.js.map +1 -1
  157. package/dist/utils/config.js +2 -2
  158. package/dist/utils/config.js.map +1 -1
  159. package/dist/utils/environment.d.ts +243 -0
  160. package/dist/utils/environment.d.ts.map +1 -0
  161. package/dist/utils/environment.js +207 -0
  162. package/dist/utils/environment.js.map +1 -0
  163. package/dist/utils/logger.d.ts.map +1 -1
  164. package/dist/utils/logger.js +6 -6
  165. package/dist/utils/logger.js.map +1 -1
  166. package/dist/utils/solidworks-config.d.ts +39 -0
  167. package/dist/utils/solidworks-config.d.ts.map +1 -0
  168. package/dist/utils/solidworks-config.js +156 -0
  169. package/dist/utils/solidworks-config.js.map +1 -0
  170. package/package.json +84 -84
  171. package/scripts/setup.js +70 -70
  172. package/dist/application/services/command-bus.d.ts +0 -39
  173. package/dist/application/services/command-bus.d.ts.map +0 -1
  174. package/dist/application/services/command-bus.js +0 -88
  175. package/dist/application/services/command-bus.js.map +0 -1
  176. package/dist/application/services/event-bus.d.ts +0 -31
  177. package/dist/application/services/event-bus.d.ts.map +0 -1
  178. package/dist/application/services/event-bus.js +0 -83
  179. package/dist/application/services/event-bus.js.map +0 -1
  180. package/dist/application/services/query-bus.d.ts +0 -30
  181. package/dist/application/services/query-bus.d.ts.map +0 -1
  182. package/dist/application/services/query-bus.js +0 -59
  183. package/dist/application/services/query-bus.js.map +0 -1
  184. package/dist/application/services/tool-registry.d.ts +0 -53
  185. package/dist/application/services/tool-registry.d.ts.map +0 -1
  186. package/dist/application/services/tool-registry.js +0 -81
  187. package/dist/application/services/tool-registry.js.map +0 -1
  188. package/dist/application/use-cases/analysis/index.d.ts +0 -13
  189. package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
  190. package/dist/application/use-cases/analysis/index.js +0 -17
  191. package/dist/application/use-cases/analysis/index.js.map +0 -1
  192. package/dist/application/use-cases/drawing/index.d.ts +0 -13
  193. package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
  194. package/dist/application/use-cases/drawing/index.js +0 -17
  195. package/dist/application/use-cases/drawing/index.js.map +0 -1
  196. package/dist/application/use-cases/export/index.d.ts +0 -13
  197. package/dist/application/use-cases/export/index.d.ts.map +0 -1
  198. package/dist/application/use-cases/export/index.js +0 -17
  199. package/dist/application/use-cases/export/index.js.map +0 -1
  200. package/dist/application/use-cases/macro/index.d.ts +0 -13
  201. package/dist/application/use-cases/macro/index.d.ts.map +0 -1
  202. package/dist/application/use-cases/macro/index.js +0 -17
  203. package/dist/application/use-cases/macro/index.js.map +0 -1
  204. package/dist/application/use-cases/modeling/index.d.ts +0 -56
  205. package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
  206. package/dist/application/use-cases/modeling/index.js +0 -385
  207. package/dist/application/use-cases/modeling/index.js.map +0 -1
  208. package/dist/index.refactored.d.ts +0 -7
  209. package/dist/index.refactored.d.ts.map +0 -1
  210. package/dist/index.refactored.js +0 -254
  211. package/dist/index.refactored.js.map +0 -1
  212. package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
  213. package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
  214. package/dist/infrastructure/config/configuration-manager.js +0 -566
  215. package/dist/infrastructure/config/configuration-manager.js.map +0 -1
  216. package/dist/infrastructure/container/service-locator.d.ts +0 -14
  217. package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
  218. package/dist/infrastructure/container/service-locator.js +0 -38
  219. package/dist/infrastructure/container/service-locator.js.map +0 -1
  220. package/dist/infrastructure/logging/logger.d.ts +0 -24
  221. package/dist/infrastructure/logging/logger.d.ts.map +0 -1
  222. package/dist/infrastructure/logging/logger.js +0 -65
  223. package/dist/infrastructure/logging/logger.js.map +0 -1
  224. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
  225. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
  226. package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
  227. package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
  228. package/dist/presentation/mcp/request-handler.d.ts +0 -41
  229. package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
  230. package/dist/presentation/mcp/request-handler.js +0 -100
  231. package/dist/presentation/mcp/request-handler.js.map +0 -1
  232. package/dist/presentation/transformers/error-transformer.d.ts +0 -16
  233. package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
  234. package/dist/presentation/transformers/error-transformer.js +0 -44
  235. package/dist/presentation/transformers/error-transformer.js.map +0 -1
  236. package/dist/presentation/transformers/response-transformer.d.ts +0 -24
  237. package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
  238. package/dist/presentation/transformers/response-transformer.js +0 -102
  239. package/dist/presentation/transformers/response-transformer.js.map +0 -1
  240. package/dist/tools/drawing-analysis.d.ts +0 -9
  241. package/dist/tools/drawing-analysis.d.ts.map +0 -1
  242. package/dist/tools/drawing-analysis.js +0 -239
  243. package/dist/tools/drawing-analysis.js.map +0 -1
package/scripts/setup.js CHANGED
@@ -1,71 +1,71 @@
1
- #!/usr/bin/env node
2
- import { promises as fs } from 'fs';
3
- import { homedir } from 'os';
4
- import { join } from 'path';
5
-
6
- async function updateClaudeConfig() {
7
- // Skip in CI environments
8
- if (process.env.CI || process.env.GITHUB_ACTIONS) {
9
- console.log('⏭️ Skipping Claude Desktop setup in CI environment');
10
- return;
11
- }
12
-
13
- console.log('🔧 Setting up SolidWorks MCP Server for Claude Desktop...\n');
14
-
15
- // Find Claude config file
16
- const configPaths = [
17
- join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
18
- join(homedir(), 'AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'),
19
- ];
20
-
21
- let configPath = null;
22
- let config = {};
23
-
24
- for (const path of configPaths) {
25
- try {
26
- const content = await fs.readFile(path, 'utf-8');
27
- config = JSON.parse(content);
28
- configPath = path;
29
- console.log(`✅ Found Claude config at: ${path}`);
30
- break;
31
- } catch (e) {
32
- // Continue to next path
33
- }
34
- }
35
-
36
- if (!configPath) {
37
- console.log('❌ Could not find Claude Desktop configuration file.');
38
- console.log('\nPlease add the following to your Claude Desktop configuration manually:');
39
- console.log(JSON.stringify({
40
- mcpServers: {
41
- solidworks: {
42
- command: 'npx',
43
- args: ['mcp-server-solidworks-ts']
44
- }
45
- }
46
- }, null, 2));
47
- return;
48
- }
49
-
50
- // Update config
51
- if (!config.mcpServers) {
52
- config.mcpServers = {};
53
- }
54
-
55
- config.mcpServers.solidworks = {
56
- command: 'npx',
57
- args: ['mcp-server-solidworks-ts']
58
- };
59
-
60
- // Write back
61
- await fs.writeFile(configPath, JSON.stringify(config, null, 2));
62
- console.log('✅ Updated Claude Desktop configuration');
63
- console.log('\n🎉 Installation complete! Please restart Claude Desktop.');
64
- console.log('\nYou can now use commands like:');
65
- console.log(' - "Open the part at C:/Models/example.sldprt"');
66
- console.log(' - "Generate VBA to batch export files"');
67
- console.log(' - "Create a 50mm extrusion"');
68
- }
69
-
70
- // Run setup
1
+ #!/usr/bin/env node
2
+ import { promises as fs } from 'fs';
3
+ import { homedir } from 'os';
4
+ import { join } from 'path';
5
+
6
+ async function updateClaudeConfig() {
7
+ // Skip in CI environments
8
+ if (process.env.CI || process.env.GITHUB_ACTIONS) {
9
+ console.log('⏭️ Skipping Claude Desktop setup in CI environment');
10
+ return;
11
+ }
12
+
13
+ console.log('🔧 Setting up SolidWorks MCP Server for Claude Desktop...\n');
14
+
15
+ // Find Claude config file
16
+ const configPaths = [
17
+ join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
18
+ join(homedir(), 'AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'),
19
+ ];
20
+
21
+ let configPath = null;
22
+ let config = {};
23
+
24
+ for (const path of configPaths) {
25
+ try {
26
+ const content = await fs.readFile(path, 'utf-8');
27
+ config = JSON.parse(content);
28
+ configPath = path;
29
+ console.log(`✅ Found Claude config at: ${path}`);
30
+ break;
31
+ } catch (e) {
32
+ // Continue to next path
33
+ }
34
+ }
35
+
36
+ if (!configPath) {
37
+ console.log('❌ Could not find Claude Desktop configuration file.');
38
+ console.log('\nPlease add the following to your Claude Desktop configuration manually:');
39
+ console.log(JSON.stringify({
40
+ mcpServers: {
41
+ solidworks: {
42
+ command: 'npx',
43
+ args: ['mcp-server-solidworks-ts']
44
+ }
45
+ }
46
+ }, null, 2));
47
+ return;
48
+ }
49
+
50
+ // Update config
51
+ if (!config.mcpServers) {
52
+ config.mcpServers = {};
53
+ }
54
+
55
+ config.mcpServers.solidworks = {
56
+ command: 'npx',
57
+ args: ['mcp-server-solidworks-ts']
58
+ };
59
+
60
+ // Write back
61
+ await fs.writeFile(configPath, JSON.stringify(config, null, 2));
62
+ console.log('✅ Updated Claude Desktop configuration');
63
+ console.log('\n🎉 Installation complete! Please restart Claude Desktop.');
64
+ console.log('\nYou can now use commands like:');
65
+ console.log(' - "Open the part at C:/Models/example.sldprt"');
66
+ console.log(' - "Generate VBA to batch export files"');
67
+ console.log(' - "Create a 50mm extrusion"');
68
+ }
69
+
70
+ // Run setup
71
71
  updateClaudeConfig().catch(console.error);
@@ -1,39 +0,0 @@
1
- /**
2
- * Command Bus Implementation
3
- * Handles command execution with middleware support
4
- */
5
- import { Result, ILogger, IMiddleware } from '../../core/interfaces/core-abstractions.js';
6
- export interface CommandHandler<TParams = unknown, TResult = unknown> {
7
- handle(params: TParams): Promise<Result<TResult>>;
8
- }
9
- export declare class CommandBus {
10
- private logger;
11
- private handlers;
12
- private middleware;
13
- constructor(logger: ILogger);
14
- /**
15
- * Register a command handler
16
- */
17
- register<TParams, TResult>(commandName: string, handler: CommandHandler<TParams, TResult>): void;
18
- /**
19
- * Execute a command
20
- */
21
- execute<TParams, TResult>(commandName: string, params: TParams): Promise<Result<TResult>>;
22
- /**
23
- * Add middleware
24
- */
25
- use(middleware: IMiddleware): void;
26
- /**
27
- * Apply middleware chain
28
- */
29
- private applyMiddleware;
30
- /**
31
- * Check if a handler is registered
32
- */
33
- hasHandler(commandName: string): boolean;
34
- /**
35
- * Clear all handlers
36
- */
37
- clear(): void;
38
- }
39
- //# sourceMappingURL=command-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-bus.d.ts","sourceRoot":"","sources":["../../../src/application/services/command-bus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,MAAM,EAEN,OAAO,EACP,WAAW,EACZ,MAAM,4CAA4C,CAAC;AAEpD,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAClE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACnD;AAED,qBAAa,UAAU;IAIT,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,UAAU,CAAqB;gBAEnB,MAAM,EAAE,OAAO;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,GACxC,IAAI;IAQP;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAiC3B;;OAEG;IACH,GAAG,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAIlC;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
@@ -1,88 +0,0 @@
1
- /**
2
- * Command Bus Implementation
3
- * Handles command execution with middleware support
4
- */
5
- import { ResultUtil } from '../../core/interfaces/core-abstractions.js';
6
- export class CommandBus {
7
- logger;
8
- handlers = new Map();
9
- middleware = [];
10
- constructor(logger) {
11
- this.logger = logger;
12
- }
13
- /**
14
- * Register a command handler
15
- */
16
- register(commandName, handler) {
17
- if (this.handlers.has(commandName)) {
18
- this.logger.warn(`Command handler ${commandName} is already registered`);
19
- }
20
- this.handlers.set(commandName, handler);
21
- this.logger.debug(`Registered command handler: ${commandName}`);
22
- }
23
- /**
24
- * Execute a command
25
- */
26
- async execute(commandName, params) {
27
- try {
28
- const handler = this.handlers.get(commandName);
29
- if (!handler) {
30
- return ResultUtil.fail(new Error(`No handler registered for command: ${commandName}`));
31
- }
32
- // Apply middleware
33
- const context = { commandName, params, handler };
34
- const middlewareResult = await this.applyMiddleware(context);
35
- if (!ResultUtil.isSuccess(middlewareResult)) {
36
- return middlewareResult;
37
- }
38
- // Execute the command
39
- this.logger.debug(`Executing command: ${commandName}`, { params });
40
- const result = await handler.handle(params);
41
- if (ResultUtil.isSuccess(result)) {
42
- this.logger.debug(`Command executed successfully: ${commandName}`);
43
- }
44
- else {
45
- this.logger.warn(`Command failed: ${commandName}`, { error: result.error });
46
- }
47
- return result;
48
- }
49
- catch (error) {
50
- this.logger.error(`Unexpected error executing command: ${commandName}`, error);
51
- return ResultUtil.fail(error);
52
- }
53
- }
54
- /**
55
- * Add middleware
56
- */
57
- use(middleware) {
58
- this.middleware.push(middleware);
59
- }
60
- /**
61
- * Apply middleware chain
62
- */
63
- async applyMiddleware(context) {
64
- let index = 0;
65
- const next = async () => {
66
- if (index >= this.middleware.length) {
67
- return ResultUtil.ok(undefined);
68
- }
69
- const currentMiddleware = this.middleware[index++];
70
- return currentMiddleware.execute(context, next);
71
- };
72
- return next();
73
- }
74
- /**
75
- * Check if a handler is registered
76
- */
77
- hasHandler(commandName) {
78
- return this.handlers.has(commandName);
79
- }
80
- /**
81
- * Clear all handlers
82
- */
83
- clear() {
84
- this.handlers.clear();
85
- this.middleware = [];
86
- }
87
- }
88
- //# sourceMappingURL=command-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-bus.js","sourceRoot":"","sources":["../../../src/application/services/command-bus.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Event Bus Implementation
3
- * Handles event publishing and subscription
4
- */
5
- import { IEventBus, IEvent, IEventHandler, Result, ILogger } from '../../core/interfaces/core-abstractions.js';
6
- export declare class EventBus implements IEventBus {
7
- private logger;
8
- private handlers;
9
- constructor(logger: ILogger);
10
- /**
11
- * Publish an event to all registered handlers
12
- */
13
- publish(event: IEvent): Promise<Result<void>>;
14
- /**
15
- * Subscribe to an event type
16
- */
17
- subscribe(eventType: string, handler: IEventHandler): void;
18
- /**
19
- * Unsubscribe from an event type
20
- */
21
- unsubscribe(eventType: string, handler: IEventHandler): void;
22
- /**
23
- * Clear all subscriptions
24
- */
25
- clear(): void;
26
- /**
27
- * Get the number of handlers for an event type
28
- */
29
- getHandlerCount(eventType: string): number;
30
- }
31
- //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../src/application/services/event-bus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,MAAM,EACN,aAAa,EACb,MAAM,EAEN,OAAO,EACR,MAAM,4CAA4C,CAAC;AAEpD,qBAAa,QAAS,YAAW,SAAS;IAG5B,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,QAAQ,CAA8C;gBAE1C,MAAM,EAAE,OAAO;IAEnC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAuCnD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAQ1D;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAW5D;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAI3C"}
@@ -1,83 +0,0 @@
1
- /**
2
- * Event Bus Implementation
3
- * Handles event publishing and subscription
4
- */
5
- import { ResultUtil } from '../../core/interfaces/core-abstractions.js';
6
- export class EventBus {
7
- logger;
8
- handlers = new Map();
9
- constructor(logger) {
10
- this.logger = logger;
11
- }
12
- /**
13
- * Publish an event to all registered handlers
14
- */
15
- async publish(event) {
16
- try {
17
- const handlers = this.handlers.get(event.type);
18
- if (!handlers || handlers.size === 0) {
19
- this.logger.debug(`No handlers for event type: ${event.type}`);
20
- return ResultUtil.ok(undefined);
21
- }
22
- this.logger.debug(`Publishing event: ${event.type}`, {
23
- eventId: event.id,
24
- handlerCount: handlers.size
25
- });
26
- const promises = [];
27
- for (const handler of handlers) {
28
- if (handler.canHandle(event)) {
29
- promises.push(handler.handle(event));
30
- }
31
- }
32
- const results = await Promise.allSettled(promises);
33
- const failures = results.filter((result) => result.status === 'rejected');
34
- if (failures.length > 0) {
35
- this.logger.warn(`Some event handlers failed for: ${event.type}`, {
36
- failures: failures.map(f => f.reason)
37
- });
38
- }
39
- return ResultUtil.ok(undefined);
40
- }
41
- catch (error) {
42
- this.logger.error(`Failed to publish event: ${event.type}`, error);
43
- return ResultUtil.fail(error);
44
- }
45
- }
46
- /**
47
- * Subscribe to an event type
48
- */
49
- subscribe(eventType, handler) {
50
- if (!this.handlers.has(eventType)) {
51
- this.handlers.set(eventType, new Set());
52
- }
53
- this.handlers.get(eventType).add(handler);
54
- this.logger.debug(`Subscribed to event: ${eventType}`);
55
- }
56
- /**
57
- * Unsubscribe from an event type
58
- */
59
- unsubscribe(eventType, handler) {
60
- const handlers = this.handlers.get(eventType);
61
- if (handlers) {
62
- handlers.delete(handler);
63
- if (handlers.size === 0) {
64
- this.handlers.delete(eventType);
65
- }
66
- this.logger.debug(`Unsubscribed from event: ${eventType}`);
67
- }
68
- }
69
- /**
70
- * Clear all subscriptions
71
- */
72
- clear() {
73
- this.handlers.clear();
74
- }
75
- /**
76
- * Get the number of handlers for an event type
77
- */
78
- getHandlerCount(eventType) {
79
- const handlers = this.handlers.get(eventType);
80
- return handlers ? handlers.size : 0;
81
- }
82
- }
83
- //# sourceMappingURL=event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/application/services/event-bus.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Query Bus Implementation
3
- * Handles query execution for read operations
4
- */
5
- import { Result, ILogger } from '../../core/interfaces/core-abstractions.js';
6
- export interface QueryHandler<TParams = unknown, TResult = unknown> {
7
- handle(params: TParams): Promise<Result<TResult>>;
8
- }
9
- export declare class QueryBus {
10
- private logger;
11
- private handlers;
12
- constructor(logger: ILogger);
13
- /**
14
- * Register a query handler
15
- */
16
- register<TParams, TResult>(queryName: string, handler: QueryHandler<TParams, TResult>): void;
17
- /**
18
- * Execute a query
19
- */
20
- execute<TParams, TResult>(queryName: string, params: TParams): Promise<Result<TResult>>;
21
- /**
22
- * Check if a handler is registered
23
- */
24
- hasHandler(queryName: string): boolean;
25
- /**
26
- * Clear all handlers
27
- */
28
- clear(): void;
29
- }
30
- //# sourceMappingURL=query-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-bus.d.ts","sourceRoot":"","sources":["../../../src/application/services/query-bus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,MAAM,EAEN,OAAO,EACR,MAAM,4CAA4C,CAAC;AAEpD,MAAM,WAAW,YAAY,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAChE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACnD;AAED,qBAAa,QAAQ;IAGP,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,QAAQ,CAAwC;gBAEpC,MAAM,EAAE,OAAO;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,GACtC,IAAI;IAQP;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAyB3B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Query Bus Implementation
3
- * Handles query execution for read operations
4
- */
5
- import { ResultUtil } from '../../core/interfaces/core-abstractions.js';
6
- export class QueryBus {
7
- logger;
8
- handlers = new Map();
9
- constructor(logger) {
10
- this.logger = logger;
11
- }
12
- /**
13
- * Register a query handler
14
- */
15
- register(queryName, handler) {
16
- if (this.handlers.has(queryName)) {
17
- this.logger.warn(`Query handler ${queryName} is already registered`);
18
- }
19
- this.handlers.set(queryName, handler);
20
- this.logger.debug(`Registered query handler: ${queryName}`);
21
- }
22
- /**
23
- * Execute a query
24
- */
25
- async execute(queryName, params) {
26
- try {
27
- const handler = this.handlers.get(queryName);
28
- if (!handler) {
29
- return ResultUtil.fail(new Error(`No handler registered for query: ${queryName}`));
30
- }
31
- this.logger.debug(`Executing query: ${queryName}`, { params });
32
- const result = await handler.handle(params);
33
- if (ResultUtil.isSuccess(result)) {
34
- this.logger.debug(`Query executed successfully: ${queryName}`);
35
- }
36
- else {
37
- this.logger.warn(`Query failed: ${queryName}`, { error: result.error });
38
- }
39
- return result;
40
- }
41
- catch (error) {
42
- this.logger.error(`Unexpected error executing query: ${queryName}`, error);
43
- return ResultUtil.fail(error);
44
- }
45
- }
46
- /**
47
- * Check if a handler is registered
48
- */
49
- hasHandler(queryName) {
50
- return this.handlers.has(queryName);
51
- }
52
- /**
53
- * Clear all handlers
54
- */
55
- clear() {
56
- this.handlers.clear();
57
- }
58
- }
59
- //# sourceMappingURL=query-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-bus.js","sourceRoot":"","sources":["../../../src/application/services/query-bus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,UAAU,EAEX,MAAM,4CAA4C,CAAC;AAMpD,MAAM,OAAO,QAAQ;IAGC;IAFZ,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;IAExD,YAAoB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEvC;;OAEG;IACH,QAAQ,CACN,SAAiB,EACjB,OAAuC;QAEvC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,wBAAwB,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,SAAiB,EACjB,MAAe;QAEf,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,UAAU,CAAC,IAAI,CACpB,IAAI,KAAK,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAC3D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE5C,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,SAAS,EAAE,EAAE,KAAc,CAAC,CAAC;YACpF,OAAO,UAAU,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Tool Registry Service
3
- * Manages and provides access to all available tools
4
- */
5
- import { z } from 'zod';
6
- import { ILogger } from '../../core/interfaces/core-abstractions.js';
7
- export interface Tool {
8
- name: string;
9
- description: string;
10
- inputSchema: z.ZodSchema;
11
- handler: (args: any) => Promise<any> | any;
12
- category?: string;
13
- tags?: string[];
14
- }
15
- export declare class ToolRegistry {
16
- private logger;
17
- private tools;
18
- private categories;
19
- constructor(logger: ILogger);
20
- /**
21
- * Register a new tool
22
- */
23
- register(tool: Tool): void;
24
- /**
25
- * Get a tool by name
26
- */
27
- get(name: string): Tool | undefined;
28
- /**
29
- * Get all tools
30
- */
31
- getAll(): Tool[];
32
- /**
33
- * Get tools by category
34
- */
35
- getByCategory(category: string): Tool[];
36
- /**
37
- * Check if a tool exists
38
- */
39
- has(name: string): boolean;
40
- /**
41
- * Get the number of registered tools
42
- */
43
- count(): number;
44
- /**
45
- * Get all categories
46
- */
47
- getCategories(): string[];
48
- /**
49
- * Clear all tools
50
- */
51
- clear(): void;
52
- }
53
- //# sourceMappingURL=tool-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/application/services/tool-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,4CAA4C,CAAC;AAErE,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qBAAa,YAAY;IAIX,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,UAAU,CAAuC;gBAErC,MAAM,EAAE,OAAO;IAEnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAqB1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC;;OAEG;IACH,MAAM,IAAI,IAAI,EAAE;IAIhB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IASvC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Tool Registry Service
3
- * Manages and provides access to all available tools
4
- */
5
- export class ToolRegistry {
6
- logger;
7
- tools = new Map();
8
- categories = new Map();
9
- constructor(logger) {
10
- this.logger = logger;
11
- }
12
- /**
13
- * Register a new tool
14
- */
15
- register(tool) {
16
- if (this.tools.has(tool.name)) {
17
- this.logger.warn(`Tool ${tool.name} is already registered, overwriting`);
18
- }
19
- this.tools.set(tool.name, tool);
20
- // Add to category index
21
- if (tool.category) {
22
- if (!this.categories.has(tool.category)) {
23
- this.categories.set(tool.category, new Set());
24
- }
25
- this.categories.get(tool.category).add(tool.name);
26
- }
27
- this.logger.debug(`Registered tool: ${tool.name}`, {
28
- category: tool.category,
29
- tags: tool.tags
30
- });
31
- }
32
- /**
33
- * Get a tool by name
34
- */
35
- get(name) {
36
- return this.tools.get(name);
37
- }
38
- /**
39
- * Get all tools
40
- */
41
- getAll() {
42
- return Array.from(this.tools.values());
43
- }
44
- /**
45
- * Get tools by category
46
- */
47
- getByCategory(category) {
48
- const toolNames = this.categories.get(category);
49
- if (!toolNames)
50
- return [];
51
- return Array.from(toolNames)
52
- .map(name => this.tools.get(name))
53
- .filter((tool) => tool !== undefined);
54
- }
55
- /**
56
- * Check if a tool exists
57
- */
58
- has(name) {
59
- return this.tools.has(name);
60
- }
61
- /**
62
- * Get the number of registered tools
63
- */
64
- count() {
65
- return this.tools.size;
66
- }
67
- /**
68
- * Get all categories
69
- */
70
- getCategories() {
71
- return Array.from(this.categories.keys());
72
- }
73
- /**
74
- * Clear all tools
75
- */
76
- clear() {
77
- this.tools.clear();
78
- this.categories.clear();
79
- }
80
- }
81
- //# sourceMappingURL=tool-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/application/services/tool-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,OAAO,YAAY;IAIH;IAHZ,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IACrC,UAAU,GAA6B,IAAI,GAAG,EAAE,CAAC;IAEzD,YAAoB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,IAAU;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhC,wBAAwB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;aACzB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjC,MAAM,CAAC,CAAC,IAAI,EAAgB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Analysis Use Cases
3
- * Business logic for SolidWorks analysis operations
4
- */
5
- import { ISolidWorksAdapter, ILogger } from '../../../core/interfaces/core-abstractions.js';
6
- import { Tool } from '../../services/tool-registry.js';
7
- export declare class AnalysisUseCases {
8
- private swAdapter;
9
- private logger;
10
- constructor(swAdapter: ISolidWorksAdapter, logger: ILogger);
11
- getTools(): Tool[];
12
- }
13
- //# sourceMappingURL=index.d.ts.map