solidworks-mcp-server 3.0.8 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +175 -98
- package/LICENSE +20 -20
- package/README.md +195 -423
- package/dist/adapters/circuit-breaker.d.ts +84 -0
- package/dist/adapters/circuit-breaker.d.ts.map +1 -0
- package/dist/adapters/circuit-breaker.js +228 -0
- package/dist/adapters/circuit-breaker.js.map +1 -0
- package/dist/adapters/connection-pool.d.ts +83 -0
- package/dist/adapters/connection-pool.d.ts.map +1 -0
- package/dist/adapters/connection-pool.js +282 -0
- package/dist/adapters/connection-pool.js.map +1 -0
- package/dist/adapters/edge-adapter.d.ts +43 -0
- package/dist/adapters/edge-adapter.d.ts.map +1 -0
- package/dist/adapters/edge-adapter.js +417 -0
- package/dist/adapters/edge-adapter.js.map +1 -0
- package/dist/adapters/factory.d.ts +60 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +212 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.js +322 -0
- package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
- package/dist/adapters/macro-generator.d.ts +30 -0
- package/dist/adapters/macro-generator.d.ts.map +1 -0
- package/dist/adapters/macro-generator.js +524 -0
- package/dist/adapters/macro-generator.js.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.js +367 -0
- package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +376 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +261 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.js +601 -0
- package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
- package/dist/adapters/winax-adapter.d.ts +55 -0
- package/dist/adapters/winax-adapter.d.ts.map +1 -0
- package/dist/adapters/winax-adapter.js +667 -0
- package/dist/adapters/winax-adapter.js.map +1 -0
- package/dist/api/stainless-api.d.ts +29 -0
- package/dist/api/stainless-api.d.ts.map +1 -0
- package/dist/api/stainless-api.js +408 -0
- package/dist/api/stainless-api.js.map +1 -0
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +4 -3
- package/dist/cache/manager.js.map +1 -1
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
- package/dist/core/interfaces/core-abstractions.js.map +1 -1
- package/dist/db/connection.js +4 -4
- package/dist/db/connection.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -79
- package/dist/index.js.map +1 -1
- package/dist/knowledge/chromadb.d.ts.map +1 -1
- package/dist/knowledge/chromadb.js +5 -3
- package/dist/knowledge/chromadb.js.map +1 -1
- package/dist/macro/recorder.d.ts +1 -1
- package/dist/macro/recorder.d.ts.map +1 -1
- package/dist/macro/recorder.js +10 -10
- package/dist/macro/recorder.js.map +1 -1
- package/dist/resources/base.js +10 -10
- package/dist/resources/base.js.map +1 -1
- package/dist/resources/design-table.d.ts +10 -12
- package/dist/resources/design-table.d.ts.map +1 -1
- package/dist/resources/design-table.js +42 -39
- package/dist/resources/design-table.js.map +1 -1
- package/dist/resources/pdm.d.ts +44 -45
- package/dist/resources/pdm.d.ts.map +1 -1
- package/dist/resources/pdm.js +118 -79
- package/dist/resources/pdm.js.map +1 -1
- package/dist/resources/registry.d.ts +1 -1
- package/dist/resources/registry.d.ts.map +1 -1
- package/dist/resources/registry.js +1 -1
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
- package/dist/shared/constants/solidworks-constants.js +9 -9
- package/dist/shared/constants/solidworks-constants.js.map +1 -1
- package/dist/solidworks/api.d.ts +8 -6
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +614 -188
- package/dist/solidworks/api.js.map +1 -1
- package/dist/state/store.d.ts +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +14 -14
- package/dist/state/store.js.map +1 -1
- package/dist/tools/analysis.d.ts +12 -2
- package/dist/tools/analysis.d.ts.map +1 -1
- package/dist/tools/analysis.js +141 -31
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/diagnostics.d.ts +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +2 -2
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/drawing.d.ts +2 -2
- package/dist/tools/drawing.d.ts.map +1 -1
- package/dist/tools/drawing.js +94 -10
- package/dist/tools/drawing.js.map +1 -1
- package/dist/tools/enhanced-drawing.d.ts +1 -1
- package/dist/tools/enhanced-drawing.d.ts.map +1 -1
- package/dist/tools/enhanced-drawing.js +10 -13
- package/dist/tools/enhanced-drawing.js.map +1 -1
- package/dist/tools/export.d.ts +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +88 -14
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/extrusion-helper.d.ts +15 -0
- package/dist/tools/extrusion-helper.d.ts.map +1 -0
- package/dist/tools/extrusion-helper.js +61 -0
- package/dist/tools/extrusion-helper.js.map +1 -0
- package/dist/tools/macro-security.d.ts +2 -2
- package/dist/tools/macro-security.d.ts.map +1 -1
- package/dist/tools/macro-security.js +2 -2
- package/dist/tools/macro-security.js.map +1 -1
- package/dist/tools/modeling.d.ts +2 -2
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +6 -6
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/native-macro.d.ts +1 -1
- package/dist/tools/native-macro.d.ts.map +1 -1
- package/dist/tools/native-macro.js +246 -239
- package/dist/tools/native-macro.js.map +1 -1
- package/dist/tools/sketch.d.ts +28 -28
- package/dist/tools/sketch.d.ts.map +1 -1
- package/dist/tools/sketch.js +202 -136
- package/dist/tools/sketch.js.map +1 -1
- package/dist/tools/template-manager.d.ts +5 -5
- package/dist/tools/template-manager.d.ts.map +1 -1
- package/dist/tools/template-manager.js +66 -65
- package/dist/tools/template-manager.js.map +1 -1
- package/dist/tools/vba-advanced.d.ts +10 -10
- package/dist/tools/vba-advanced.d.ts.map +1 -1
- package/dist/tools/vba-advanced.js +791 -708
- package/dist/tools/vba-advanced.js.map +1 -1
- package/dist/tools/vba-assembly.d.ts +10 -10
- package/dist/tools/vba-assembly.d.ts.map +1 -1
- package/dist/tools/vba-assembly.js +562 -500
- package/dist/tools/vba-assembly.js.map +1 -1
- package/dist/tools/vba-drawing.d.ts +12 -12
- package/dist/tools/vba-drawing.d.ts.map +1 -1
- package/dist/tools/vba-drawing.js +681 -572
- package/dist/tools/vba-drawing.js.map +1 -1
- package/dist/tools/vba-file-management.d.ts +12 -12
- package/dist/tools/vba-file-management.d.ts.map +1 -1
- package/dist/tools/vba-file-management.js +662 -589
- package/dist/tools/vba-file-management.js.map +1 -1
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba-part.d.ts.map +1 -1
- package/dist/tools/vba-part.js +484 -426
- package/dist/tools/vba-part.js.map +1 -1
- package/dist/tools/vba.d.ts +361 -361
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +67 -81
- package/dist/tools/vba.js.map +1 -1
- package/dist/utils/config.js +2 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/environment.d.ts +243 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +207 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/solidworks-config.d.ts +39 -0
- package/dist/utils/solidworks-config.d.ts.map +1 -0
- package/dist/utils/solidworks-config.js +156 -0
- package/dist/utils/solidworks-config.js.map +1 -0
- package/package.json +84 -84
- package/scripts/setup.js +70 -70
- package/dist/application/services/command-bus.d.ts +0 -39
- package/dist/application/services/command-bus.d.ts.map +0 -1
- package/dist/application/services/command-bus.js +0 -88
- package/dist/application/services/command-bus.js.map +0 -1
- package/dist/application/services/event-bus.d.ts +0 -31
- package/dist/application/services/event-bus.d.ts.map +0 -1
- package/dist/application/services/event-bus.js +0 -83
- package/dist/application/services/event-bus.js.map +0 -1
- package/dist/application/services/query-bus.d.ts +0 -30
- package/dist/application/services/query-bus.d.ts.map +0 -1
- package/dist/application/services/query-bus.js +0 -59
- package/dist/application/services/query-bus.js.map +0 -1
- package/dist/application/services/tool-registry.d.ts +0 -53
- package/dist/application/services/tool-registry.d.ts.map +0 -1
- package/dist/application/services/tool-registry.js +0 -81
- package/dist/application/services/tool-registry.js.map +0 -1
- package/dist/application/use-cases/analysis/index.d.ts +0 -13
- package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
- package/dist/application/use-cases/analysis/index.js +0 -17
- package/dist/application/use-cases/analysis/index.js.map +0 -1
- package/dist/application/use-cases/drawing/index.d.ts +0 -13
- package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
- package/dist/application/use-cases/drawing/index.js +0 -17
- package/dist/application/use-cases/drawing/index.js.map +0 -1
- package/dist/application/use-cases/export/index.d.ts +0 -13
- package/dist/application/use-cases/export/index.d.ts.map +0 -1
- package/dist/application/use-cases/export/index.js +0 -17
- package/dist/application/use-cases/export/index.js.map +0 -1
- package/dist/application/use-cases/macro/index.d.ts +0 -13
- package/dist/application/use-cases/macro/index.d.ts.map +0 -1
- package/dist/application/use-cases/macro/index.js +0 -17
- package/dist/application/use-cases/macro/index.js.map +0 -1
- package/dist/application/use-cases/modeling/index.d.ts +0 -56
- package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
- package/dist/application/use-cases/modeling/index.js +0 -385
- package/dist/application/use-cases/modeling/index.js.map +0 -1
- package/dist/index.refactored.d.ts +0 -7
- package/dist/index.refactored.d.ts.map +0 -1
- package/dist/index.refactored.js +0 -254
- package/dist/index.refactored.js.map +0 -1
- package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
- package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
- package/dist/infrastructure/config/configuration-manager.js +0 -566
- package/dist/infrastructure/config/configuration-manager.js.map +0 -1
- package/dist/infrastructure/container/service-locator.d.ts +0 -14
- package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
- package/dist/infrastructure/container/service-locator.js +0 -38
- package/dist/infrastructure/container/service-locator.js.map +0 -1
- package/dist/infrastructure/logging/logger.d.ts +0 -24
- package/dist/infrastructure/logging/logger.d.ts.map +0 -1
- package/dist/infrastructure/logging/logger.js +0 -65
- package/dist/infrastructure/logging/logger.js.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
- package/dist/presentation/mcp/request-handler.d.ts +0 -41
- package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
- package/dist/presentation/mcp/request-handler.js +0 -100
- package/dist/presentation/mcp/request-handler.js.map +0 -1
- package/dist/presentation/transformers/error-transformer.d.ts +0 -16
- package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/error-transformer.js +0 -44
- package/dist/presentation/transformers/error-transformer.js.map +0 -1
- package/dist/presentation/transformers/response-transformer.d.ts +0 -24
- package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/response-transformer.js +0 -102
- package/dist/presentation/transformers/response-transformer.js.map +0 -1
- package/dist/tools/drawing-analysis.d.ts +0 -9
- package/dist/tools/drawing-analysis.d.ts.map +0 -1
- package/dist/tools/drawing-analysis.js +0 -239
- package/dist/tools/drawing-analysis.js.map +0 -1
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":"AAAA;;;GAGG;AAEH,OAAO,EAKL,UAAU,EAEX,MAAM,4CAA4C,CAAC;AAEpD,MAAM,OAAO,QAAQ;IAGC;IAFZ,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE9D,YAAoB,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEvC;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,OAAO,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,EAAE,EAAE;gBACnD,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,YAAY,EAAE,QAAQ,CAAC,IAAI;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAA4B,EAAE,CAAC;YAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,MAAM,EAAmC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAC1E,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,IAAI,EAAE,EAAE;oBAChE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,IAAI,EAAE,EAAE,KAAc,CAAC,CAAC;YAC5E,OAAO,UAAU,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,SAAiB,EAAE,OAAsB;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB,EAAE,OAAsB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -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
|