UNPKG

solidworks-mcp-server

Version:

Clean Architecture SolidWorks MCP Server - Production-ready with SOLID principles

116 lines 3.12 kB
/** * 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