solidworks-mcp-server
Version:
Clean Architecture SolidWorks MCP Server - Production-ready with SOLID principles
116 lines • 3.12 kB
TypeScript
/**
* Base Resource Class for SolidWorks MCP Implementation
* Provides foundation for all SolidWorks resources with state management
*/
import { z } from 'zod';
export interface ValidationResult {
valid: boolean;
errors?: Array<{
path: string;
message: string;
}>;
warnings?: Array<{
path: string;
message: string;
}>;
}
export interface ResourceState {
id: string;
type: string;
name: string;
properties: Record<string, any>;
outputs: Record<string, any>;
metadata: ResourceMetadata;
status: ResourceStatus;
}
export interface ResourceMetadata {
createdAt: string;
updatedAt: string;
createdBy: string;
version: number;
tags: Record<string, string>;
annotations: Record<string, string>;
solidworksVersion?: string;
fileReference?: string;
}
export declare enum ResourceStatus {
PENDING = "pending",
CREATING = "creating",
CREATED = "created",
UPDATING = "updating",
DELETING = "deleting",
DELETED = "deleted",
FAILED = "failed",
EXECUTING = "executing",
COMPLETED = "completed",
UNKNOWN = "unknown"
}
export interface ResourceDependency {
resourceId: string;
type: 'hard' | 'soft';
outputRef?: string;
}
export declare abstract class SolidWorksResource {
readonly id: string;
readonly name: string;
protected _properties: Record<string, any>;
protected _outputs: Record<string, any>;
protected _dependencies: ResourceDependency[];
protected _status: ResourceStatus;
protected _metadata: ResourceMetadata;
abstract readonly type: string;
abstract readonly schema: z.ZodSchema<any>;
constructor(id: string, name: string, properties: Record<string, any>);
/**
* Validate the resource properties against schema
*/
validate(): ValidationResult;
/**
* Convert resource to state representation
*/
toState(): ResourceState;
/**
* Restore resource from state
*/
fromState(state: ResourceState): void;
/**
* Get resource dependencies
*/
getDependencies(): ResourceDependency[];
/**
* Add a dependency to this resource
*/
addDependency(dependency: ResourceDependency): void;
/**
* Get resource outputs
*/
getOutputs(): Record<string, any>;
/**
* Set resource outputs
*/
setOutputs(outputs: Record<string, any>): void;
/**
* Get resource status
*/
getStatus(): ResourceStatus;
/**
* Update resource status
*/
setStatus(status: ResourceStatus): void;
/**
* Get resource properties
*/
getProperties(): Record<string, any>;
/**
* Update resource properties
*/
updateProperties(properties: Partial<Record<string, any>>): ValidationResult;
/**
* Abstract methods that must be implemented by concrete resources
*/
abstract execute(api: any): Promise<any>;
abstract toVBACode(): string;
abstract toMacroCode(): string;
abstract getRequiredCapabilities(): string[];
}
//# sourceMappingURL=base.d.ts.map