Files
n8n-mcp/dist/telemetry/mutation-types.d.ts
2025-12-05 12:01:31 +01:00

106 lines
3.0 KiB
TypeScript

import { DiffOperation } from '../types/workflow-diff.js';
export declare enum IntentClassification {
ADD_FUNCTIONALITY = "add_functionality",
MODIFY_CONFIGURATION = "modify_configuration",
REWIRE_LOGIC = "rewire_logic",
FIX_VALIDATION = "fix_validation",
CLEANUP = "cleanup",
UNKNOWN = "unknown"
}
export declare enum MutationToolName {
UPDATE_PARTIAL = "n8n_update_partial_workflow",
UPDATE_FULL = "n8n_update_full_workflow"
}
export interface ValidationResult {
valid: boolean;
errors: Array<{
type: string;
message: string;
severity?: string;
location?: string;
}>;
warnings?: Array<{
type: string;
message: string;
}>;
}
export interface MutationChangeMetrics {
nodesAdded: number;
nodesRemoved: number;
nodesModified: number;
connectionsAdded: number;
connectionsRemoved: number;
propertiesChanged: number;
}
export interface MutationValidationMetrics {
validationImproved: boolean | null;
errorsResolved: number;
errorsIntroduced: number;
}
export interface WorkflowMutationData {
sessionId: string;
toolName: MutationToolName;
userIntent: string;
operations: DiffOperation[];
workflowBefore: any;
workflowAfter: any;
validationBefore?: ValidationResult;
validationAfter?: ValidationResult;
mutationSuccess: boolean;
mutationError?: string;
durationMs: number;
}
export interface WorkflowMutationRecord {
id?: string;
userId: string;
sessionId: string;
workflowBefore: any;
workflowAfter: any;
workflowHashBefore: string;
workflowHashAfter: string;
workflowStructureHashBefore?: string;
workflowStructureHashAfter?: string;
isTrulySuccessful?: boolean;
userIntent: string;
intentClassification: IntentClassification;
toolName: MutationToolName;
operations: DiffOperation[];
operationCount: number;
operationTypes: string[];
validationBefore?: ValidationResult;
validationAfter?: ValidationResult;
validationImproved: boolean | null;
errorsResolved: number;
errorsIntroduced: number;
nodesAdded: number;
nodesRemoved: number;
nodesModified: number;
connectionsAdded: number;
connectionsRemoved: number;
propertiesChanged: number;
mutationSuccess: boolean;
mutationError?: string;
durationMs: number;
createdAt?: Date;
}
export interface MutationTrackingOptions {
enabled?: boolean;
maxWorkflowSizeKb?: number;
validateQuality?: boolean;
sanitize?: boolean;
}
export interface MutationTrackingStats {
totalMutationsTracked: number;
successfulMutations: number;
failedMutations: number;
mutationsWithValidationImprovement: number;
averageDurationMs: number;
intentClassificationBreakdown: Record<IntentClassification, number>;
operationTypeBreakdown: Record<string, number>;
}
export interface MutationDataQualityResult {
valid: boolean;
errors: string[];
warnings: string[];
}
//# sourceMappingURL=mutation-types.d.ts.map