@exaudeus/workrail 0.0.9 → 0.0.11

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 (30) hide show
  1. package/dist/application/app.js +1 -1
  2. package/dist/application/app.js.map +1 -1
  3. package/dist/application/services/enhanced-error-service.d.ts +81 -0
  4. package/dist/application/services/enhanced-error-service.d.ts.map +1 -0
  5. package/dist/application/services/enhanced-error-service.js +215 -0
  6. package/dist/application/services/enhanced-error-service.js.map +1 -0
  7. package/dist/application/use-cases/get-workflow.d.ts +17 -2
  8. package/dist/application/use-cases/get-workflow.d.ts.map +1 -1
  9. package/dist/application/use-cases/get-workflow.js +46 -3
  10. package/dist/application/use-cases/get-workflow.js.map +1 -1
  11. package/dist/application/use-cases/validate-workflow-json.d.ts.map +1 -1
  12. package/dist/application/use-cases/validate-workflow-json.js +2 -43
  13. package/dist/application/use-cases/validate-workflow-json.js.map +1 -1
  14. package/dist/application/validation.d.ts.map +1 -1
  15. package/dist/application/validation.js +2 -1
  16. package/dist/application/validation.js.map +1 -1
  17. package/dist/mcp-server.js +103 -10
  18. package/dist/mcp-server.js.map +1 -1
  19. package/dist/types/session-types.d.ts +354 -0
  20. package/dist/types/session-types.d.ts.map +1 -0
  21. package/dist/types/session-types.js +89 -0
  22. package/dist/types/session-types.js.map +1 -0
  23. package/dist/validation/response-validator.d.ts.map +1 -1
  24. package/dist/validation/response-validator.js +22 -2
  25. package/dist/validation/response-validator.js.map +1 -1
  26. package/dist/validation/schemas.d.ts.map +1 -1
  27. package/dist/validation/schemas.js +7 -1
  28. package/dist/validation/schemas.js.map +1 -1
  29. package/package.json +1 -1
  30. package/spec/mcp-api-v1.0.md +41 -20
@@ -105,7 +105,7 @@ function buildWorkflowApplication(workflowService, validator = request_validator
105
105
  return { workflows };
106
106
  });
107
107
  app.register(exports.METHOD_NAMES.WORKFLOW_GET, async (params) => {
108
- return getWorkflowUseCase(params.id);
108
+ return getWorkflowUseCase(params.id, params.mode);
109
109
  });
110
110
  app.register(exports.METHOD_NAMES.WORKFLOW_NEXT, async (params) => {
111
111
  return getNextStepUseCase(params.workflowId, params.completedSteps || [], params.context);
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/application/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4EA,4DAsEC;AAlJD,yDAAiD;AACjD,kDAAmD;AAanD,MAAa,mBAAmB;IACb,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,UAAU,CAAwC;IAEnE,YAAY,SAA0B;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,OAAsB;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAAW;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,wBAAQ,CAAC,yBAAa,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,0BAA0B;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,wDAAwD;QACxD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,wCAAwC;IAChC,gBAAgB,CAAyC;IAEjE,oBAAoB,CAAC,EAAyC;QAC5D,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;CACF;AApCD,kDAoCC;AAOD,uEAAmE;AACnE,yEAAqE;AACrE,+DAAiE;AACjE,2DAA6D;AAC7D,6DAA8D;AAC9D,2EAA4E;AAE/D,QAAA,YAAY,GAAG;IAC1B,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX,SAAgB,wBAAwB,CACtC,eAAgC,EAChC,YAA6B,oCAAgB;IAE7C,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,sCAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzF,2EAA2E;IAC3E,uDAAuD;IACvD,2EAA2E;IAC3E,MAAM,oBAAoB,GAAG,IAAA,oCAAmB,EAAC,eAAe,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,IAAA,gCAAiB,EAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,IAAA,iCAAiB,EAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,yBAAyB,GAAG,IAAA,+CAAwB,EAAC,eAAe,CAAC,CAAC;IAE5E,2EAA2E;IAC3E,wBAAwB;IACxB,2EAA2E;IAC3E,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,aAAa,EAAE,KAAK,EAAE,OAAY,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAC/C,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,YAAY,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QAC5D,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,aAAa,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QAC7D,OAAO,kBAAkB,CACvB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,cAAc,IAAI,EAAE,EAC3B,MAAM,CAAC,OAAO,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QACjE,OAAO,yBAAyB,CAC9B,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,oEAAoE;IACpE,2EAA2E;IAC3E,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,UAAU,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QAC1D,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAC;QACtE,OAAO,CACL,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAS,CAAC,CACxF,CAAC,MAAM,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,UAAU,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QAC1D,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAC;QACrE,OAAO,CACL,MAAM,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAS,CAAC,CACvF,CAAC,MAAM,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,QAAQ,CAAC,oBAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;QACxD,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,uBAAuB,GAAC,CAAC;QAClE,OAAO,CACL,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAS,CAAC,CACpF,CAAC,MAAM,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/application/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { ErrorObject } from 'ajv';
2
+ /**
3
+ * Enhanced Error Service
4
+ *
5
+ * Transforms AJV error objects into extremely specific, user-friendly error messages
6
+ * that provide exact field names, locations, and actionable guidance.
7
+ *
8
+ * Based on comprehensive error structure analysis confirming:
9
+ * - 100% of additionalProperties errors provide exact field names
10
+ * - 82% of errors have meaningful instance paths for location tracking
11
+ * - Complete parameter information for all error types
12
+ */
13
+ export declare class EnhancedErrorService {
14
+ /**
15
+ * Transform AJV errors into enhanced, user-friendly messages
16
+ * @param errors Array of AJV ErrorObject instances
17
+ * @returns Array of enhanced error messages with specific details
18
+ */
19
+ static enhanceErrors(errors: ErrorObject[]): string[];
20
+ /**
21
+ * Prioritize errors by severity and importance
22
+ * Critical: additionalProperties, required fields
23
+ * High: type mismatches, pattern violations
24
+ * Medium: array/object constraints
25
+ * Low: schema composition errors
26
+ */
27
+ private static prioritizeErrors;
28
+ /**
29
+ * Transform a single AJV error into an enhanced message
30
+ */
31
+ private static transformError;
32
+ /**
33
+ * Convert instancePath to human-readable location description
34
+ */
35
+ private static getLocationDescription;
36
+ /**
37
+ * Handle additionalProperties errors - our primary target
38
+ * These provide exact field names via params.additionalProperty
39
+ */
40
+ private static handleAdditionalProperties;
41
+ /**
42
+ * Handle required field errors
43
+ * These provide missing field names via params.missingProperty
44
+ */
45
+ private static handleRequired;
46
+ /**
47
+ * Handle type mismatch errors
48
+ * These provide expected type via params.type
49
+ */
50
+ private static handleType;
51
+ /**
52
+ * Handle pattern validation errors
53
+ * These provide the regex pattern via params.pattern
54
+ */
55
+ private static handlePattern;
56
+ /**
57
+ * Handle minimum items array errors
58
+ */
59
+ private static handleMinItems;
60
+ /**
61
+ * Handle maximum items array errors
62
+ */
63
+ private static handleMaxItems;
64
+ /**
65
+ * Handle enum validation errors
66
+ */
67
+ private static handleEnum;
68
+ /**
69
+ * Handle oneOf schema composition errors
70
+ */
71
+ private static handleOneOf;
72
+ /**
73
+ * Handle anyOf schema composition errors
74
+ */
75
+ private static handleAnyOf;
76
+ /**
77
+ * Handle generic/unknown error types
78
+ */
79
+ private static handleGeneric;
80
+ }
81
+ //# sourceMappingURL=enhanced-error-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-error-service.d.ts","sourceRoot":"","sources":["../../../src/application/services/enhanced-error-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAElC;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;WACW,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE;IAW5D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IA2B7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAsCrC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IASzC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAS5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IASzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CAG7B"}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnhancedErrorService = void 0;
4
+ /**
5
+ * Enhanced Error Service
6
+ *
7
+ * Transforms AJV error objects into extremely specific, user-friendly error messages
8
+ * that provide exact field names, locations, and actionable guidance.
9
+ *
10
+ * Based on comprehensive error structure analysis confirming:
11
+ * - 100% of additionalProperties errors provide exact field names
12
+ * - 82% of errors have meaningful instance paths for location tracking
13
+ * - Complete parameter information for all error types
14
+ */
15
+ class EnhancedErrorService {
16
+ /**
17
+ * Transform AJV errors into enhanced, user-friendly messages
18
+ * @param errors Array of AJV ErrorObject instances
19
+ * @returns Array of enhanced error messages with specific details
20
+ */
21
+ static enhanceErrors(errors) {
22
+ if (!errors || errors.length === 0) {
23
+ return [];
24
+ }
25
+ // Sort errors by priority: Critical -> High -> Medium -> Low
26
+ const prioritizedErrors = this.prioritizeErrors(errors);
27
+ return prioritizedErrors.map(error => this.transformError(error));
28
+ }
29
+ /**
30
+ * Prioritize errors by severity and importance
31
+ * Critical: additionalProperties, required fields
32
+ * High: type mismatches, pattern violations
33
+ * Medium: array/object constraints
34
+ * Low: schema composition errors
35
+ */
36
+ static prioritizeErrors(errors) {
37
+ const priority = {
38
+ additionalProperties: 1, // Critical - exact field name available
39
+ required: 1, // Critical - missing required field
40
+ type: 2, // High - type mismatch
41
+ pattern: 2, // High - pattern violation
42
+ minItems: 3, // Medium - array constraints
43
+ maxItems: 3, // Medium - array constraints
44
+ minProperties: 3, // Medium - object constraints
45
+ maxProperties: 3, // Medium - object constraints
46
+ oneOf: 4, // Low - schema composition
47
+ anyOf: 4, // Low - schema composition
48
+ allOf: 4, // Low - schema composition
49
+ };
50
+ return errors.sort((a, b) => {
51
+ const aPriority = priority[a.keyword] || 5;
52
+ const bPriority = priority[b.keyword] || 5;
53
+ return aPriority - bPriority;
54
+ });
55
+ }
56
+ /**
57
+ * Transform a single AJV error into an enhanced message
58
+ */
59
+ static transformError(error) {
60
+ const location = this.getLocationDescription(error.instancePath);
61
+ switch (error.keyword) {
62
+ case 'additionalProperties':
63
+ return this.handleAdditionalProperties(error, location);
64
+ case 'required':
65
+ return this.handleRequired(error, location);
66
+ case 'type':
67
+ return this.handleType(error, location);
68
+ case 'pattern':
69
+ return this.handlePattern(error, location);
70
+ case 'minItems':
71
+ return this.handleMinItems(error, location);
72
+ case 'maxItems':
73
+ return this.handleMaxItems(error, location);
74
+ case 'enum':
75
+ return this.handleEnum(error, location);
76
+ case 'oneOf':
77
+ return this.handleOneOf(error, location);
78
+ case 'anyOf':
79
+ return this.handleAnyOf(error, location);
80
+ default:
81
+ return this.handleGeneric(error, location);
82
+ }
83
+ }
84
+ /**
85
+ * Convert instancePath to human-readable location description
86
+ */
87
+ static getLocationDescription(instancePath) {
88
+ if (!instancePath || instancePath === '') {
89
+ return 'at root level';
90
+ }
91
+ // Remove leading slash
92
+ const path = instancePath.startsWith('/') ? instancePath.slice(1) : instancePath;
93
+ // Convert paths to human-readable descriptions
94
+ if (path === 'name')
95
+ return "in field 'name'";
96
+ if (path === 'description')
97
+ return "in field 'description'";
98
+ if (path === 'version')
99
+ return "in field 'version'";
100
+ if (path === 'steps')
101
+ return "in 'steps' array";
102
+ // Handle array indices: /steps/0 -> "in step 1"
103
+ const stepMatch = path.match(/^steps\/(\d+)$/);
104
+ if (stepMatch && stepMatch[1]) {
105
+ return `in step ${parseInt(stepMatch[1]) + 1}`;
106
+ }
107
+ // Handle nested step properties: /steps/0/name -> "in step 1, field 'name'"
108
+ const stepFieldMatch = path.match(/^steps\/(\d+)\/(.+)$/);
109
+ if (stepFieldMatch && stepFieldMatch[1] && stepFieldMatch[2]) {
110
+ const stepNumber = parseInt(stepFieldMatch[1]) + 1;
111
+ const fieldPath = stepFieldMatch[2];
112
+ // Handle validation criteria paths
113
+ if (fieldPath.startsWith('validationCriteria/')) {
114
+ return `in step ${stepNumber}, validation criteria`;
115
+ }
116
+ return `in step ${stepNumber}, field '${fieldPath}'`;
117
+ }
118
+ // Fallback: return cleaned path
119
+ return `at '${path.replace(/\//g, '.')}'`;
120
+ }
121
+ /**
122
+ * Handle additionalProperties errors - our primary target
123
+ * These provide exact field names via params.additionalProperty
124
+ */
125
+ static handleAdditionalProperties(error, location) {
126
+ const fieldName = error.params?.['additionalProperty'];
127
+ if (!fieldName) {
128
+ return `Unexpected property found ${location}. Please check the workflow schema for allowed properties.`;
129
+ }
130
+ return `Unexpected property '${fieldName}' found ${location}. This property is not defined in the workflow schema. Please remove it or check for typos.`;
131
+ }
132
+ /**
133
+ * Handle required field errors
134
+ * These provide missing field names via params.missingProperty
135
+ */
136
+ static handleRequired(error, location) {
137
+ const missingField = error.params?.['missingProperty'];
138
+ if (!missingField) {
139
+ return `Missing required field ${location}. Please check the workflow schema for required properties.`;
140
+ }
141
+ return `Missing required field '${missingField}' ${location}. This field is mandatory and must be provided.`;
142
+ }
143
+ /**
144
+ * Handle type mismatch errors
145
+ * These provide expected type via params.type
146
+ */
147
+ static handleType(error, location) {
148
+ const expectedType = error.params?.['type'];
149
+ if (!expectedType) {
150
+ return `Invalid data type ${location}. Please check the expected type in the workflow schema.`;
151
+ }
152
+ return `Invalid data type ${location}. Expected '${expectedType}' but received a different type.`;
153
+ }
154
+ /**
155
+ * Handle pattern validation errors
156
+ * These provide the regex pattern via params.pattern
157
+ */
158
+ static handlePattern(error, location) {
159
+ const pattern = error.params?.['pattern'];
160
+ if (!pattern) {
161
+ return `Value ${location} does not match the required pattern format.`;
162
+ }
163
+ return `Value ${location} does not match the required pattern: ${pattern}`;
164
+ }
165
+ /**
166
+ * Handle minimum items array errors
167
+ */
168
+ static handleMinItems(error, location) {
169
+ const minItems = error.params?.['limit'];
170
+ if (minItems === undefined) {
171
+ return `Array ${location} has too few items.`;
172
+ }
173
+ return `Array ${location} must contain at least ${minItems} item(s).`;
174
+ }
175
+ /**
176
+ * Handle maximum items array errors
177
+ */
178
+ static handleMaxItems(error, location) {
179
+ const maxItems = error.params?.['limit'];
180
+ if (maxItems === undefined) {
181
+ return `Array ${location} has too many items.`;
182
+ }
183
+ return `Array ${location} must contain no more than ${maxItems} item(s).`;
184
+ }
185
+ /**
186
+ * Handle enum validation errors
187
+ */
188
+ static handleEnum(error, location) {
189
+ const allowedValues = error.params?.['allowedValues'];
190
+ if (!allowedValues || !Array.isArray(allowedValues)) {
191
+ return `Value ${location} is not one of the allowed values.`;
192
+ }
193
+ return `Value ${location} must be one of: ${allowedValues.map(v => `'${v}'`).join(', ')}`;
194
+ }
195
+ /**
196
+ * Handle oneOf schema composition errors
197
+ */
198
+ static handleOneOf(_error, location) {
199
+ return `Value ${location} must match exactly one of the allowed schema patterns. Please check the workflow schema for valid formats.`;
200
+ }
201
+ /**
202
+ * Handle anyOf schema composition errors
203
+ */
204
+ static handleAnyOf(_error, location) {
205
+ return `Value ${location} must match at least one of the allowed schema patterns. Please check the workflow schema for valid formats.`;
206
+ }
207
+ /**
208
+ * Handle generic/unknown error types
209
+ */
210
+ static handleGeneric(error, location) {
211
+ return `Validation error ${location}: ${error.message || 'Unknown validation error'}`;
212
+ }
213
+ }
214
+ exports.EnhancedErrorService = EnhancedErrorService;
215
+ //# sourceMappingURL=enhanced-error-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-error-service.js","sourceRoot":"","sources":["../../../src/application/services/enhanced-error-service.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;GAUG;AACH,MAAa,oBAAoB;IAC/B;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,MAAqB;QAC/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,gBAAgB,CAAC,MAAqB;QACnD,MAAM,QAAQ,GAAG;YACf,oBAAoB,EAAE,CAAC,EAAE,wCAAwC;YACjE,QAAQ,EAAE,CAAC,EAAa,oCAAoC;YAC5D,IAAI,EAAE,CAAC,EAAgB,uBAAuB;YAC9C,OAAO,EAAE,CAAC,EAAa,2BAA2B;YAClD,QAAQ,EAAE,CAAC,EAAY,6BAA6B;YACpD,QAAQ,EAAE,CAAC,EAAY,6BAA6B;YACpD,aAAa,EAAE,CAAC,EAAO,8BAA8B;YACrD,aAAa,EAAE,CAAC,EAAO,8BAA8B;YACrD,KAAK,EAAE,CAAC,EAAc,2BAA2B;YACjD,KAAK,EAAE,CAAC,EAAc,2BAA2B;YACjD,KAAK,EAAE,CAAC,EAAc,2BAA2B;SAClD,CAAC;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAgC,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAgC,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,KAAkB;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEjE,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,sBAAsB;gBACzB,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7C,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC9C,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,sBAAsB,CAAC,YAAoB;QACxD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACzC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEjF,+CAA+C;QAC/C,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,iBAAiB,CAAC;QAC9C,IAAI,IAAI,KAAK,aAAa;YAAE,OAAO,wBAAwB,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,oBAAoB,CAAC;QACpD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,kBAAkB,CAAC;QAEhD,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,OAAO,WAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,CAAC;QAED,4EAA4E;QAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAEpC,mCAAmC;YACnC,IAAI,SAAS,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAChD,OAAO,WAAW,UAAU,uBAAuB,CAAC;YACtD,CAAC;YAED,OAAO,WAAW,UAAU,YAAY,SAAS,GAAG,CAAC;QACvD,CAAC;QAED,gCAAgC;QAChC,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,0BAA0B,CAAC,KAAkB,EAAE,QAAgB;QAC5E,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,6BAA6B,QAAQ,4DAA4D,CAAC;QAC3G,CAAC;QAED,OAAO,wBAAwB,SAAS,WAAW,QAAQ,6FAA6F,CAAC;IAC3J,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,cAAc,CAAC,KAAkB,EAAE,QAAgB;QAChE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,0BAA0B,QAAQ,6DAA6D,CAAC;QACzG,CAAC;QAED,OAAO,2BAA2B,YAAY,KAAK,QAAQ,iDAAiD,CAAC;IAC/G,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,UAAU,CAAC,KAAkB,EAAE,QAAgB;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,qBAAqB,QAAQ,0DAA0D,CAAC;QACjG,CAAC;QAED,OAAO,qBAAqB,QAAQ,eAAe,YAAY,kCAAkC,CAAC;IACpG,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,aAAa,CAAC,KAAkB,EAAE,QAAgB;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,QAAQ,8CAA8C,CAAC;QACzE,CAAC;QAED,OAAO,SAAS,QAAQ,yCAAyC,OAAO,EAAE,CAAC;IAC7E,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,KAAkB,EAAE,QAAgB;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,QAAQ,qBAAqB,CAAC;QAChD,CAAC;QAED,OAAO,SAAS,QAAQ,0BAA0B,QAAQ,WAAW,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,KAAkB,EAAE,QAAgB;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,SAAS,QAAQ,sBAAsB,CAAC;QACjD,CAAC;QAED,OAAO,SAAS,QAAQ,8BAA8B,QAAQ,WAAW,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,UAAU,CAAC,KAAkB,EAAE,QAAgB;QAC5D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,QAAQ,oCAAoC,CAAC;QAC/D,CAAC;QAED,OAAO,SAAS,QAAQ,oBAAoB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5F,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,MAAmB,EAAE,QAAgB;QAC9D,OAAO,SAAS,QAAQ,6GAA6G,CAAC;IACxI,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,MAAmB,EAAE,QAAgB;QAC9D,OAAO,SAAS,QAAQ,8GAA8G,CAAC;IACzI,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,KAAkB,EAAE,QAAgB;QAC/D,OAAO,oBAAoB,QAAQ,KAAK,KAAK,CAAC,OAAO,IAAI,0BAA0B,EAAE,CAAC;IACxF,CAAC;CACF;AAjOD,oDAiOC"}
@@ -1,10 +1,25 @@
1
1
  import { WorkflowService } from '../services/workflow-service';
2
- import { Workflow } from '../../types/mcp-types';
2
+ import { Workflow, WorkflowStep } from '../../types/mcp-types';
3
+ export type WorkflowGetMode = 'metadata' | 'preview' | undefined;
4
+ export interface WorkflowMetadata {
5
+ id: string;
6
+ name: string;
7
+ description: string;
8
+ version: string;
9
+ preconditions?: string[] | undefined;
10
+ clarificationPrompts?: string[] | undefined;
11
+ metaGuidance?: string[] | undefined;
12
+ totalSteps: number;
13
+ }
14
+ export interface WorkflowPreview extends WorkflowMetadata {
15
+ firstStep: WorkflowStep | null;
16
+ }
17
+ export type WorkflowGetResult = Workflow | WorkflowMetadata | WorkflowPreview;
3
18
  /**
4
19
  * Factory function that creates a pure use-case for retrieving workflows.
5
20
  * Dependencies are injected at creation time, returning a pure function.
6
21
  */
7
- export declare function createGetWorkflow(service: WorkflowService): (workflowId: string) => Promise<Workflow>;
22
+ export declare function createGetWorkflow(service: WorkflowService): (workflowId: string, mode?: WorkflowGetMode) => Promise<WorkflowGetResult>;
8
23
  /**
9
24
  * @deprecated Use createGetWorkflow factory function instead
10
25
  * Legacy export for backward compatibility
@@ -1 +1 @@
1
- {"version":3,"file":"get-workflow.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/get-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,IAC1C,YAAY,MAAM,KAAG,OAAO,CAAC,QAAQ,CAAC,CAOrD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
1
+ {"version":3,"file":"get-workflow.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/get-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK/D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAGjE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,IAC1C,YAAY,MAAM,EAAE,OAAM,eAA2B,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAqCjG;AAkBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
@@ -3,24 +3,67 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createGetWorkflow = createGetWorkflow;
4
4
  exports.getWorkflow = getWorkflow;
5
5
  const error_handler_1 = require("../../core/error-handler");
6
+ const condition_evaluator_1 = require("../../utils/condition-evaluator");
6
7
  /**
7
8
  * Factory function that creates a pure use-case for retrieving workflows.
8
9
  * Dependencies are injected at creation time, returning a pure function.
9
10
  */
10
11
  function createGetWorkflow(service) {
11
- return async (workflowId) => {
12
+ return async (workflowId, mode = 'preview') => {
12
13
  const workflow = await service.getWorkflowById(workflowId);
13
14
  if (!workflow) {
14
15
  throw new error_handler_1.WorkflowNotFoundError(workflowId);
15
16
  }
16
- return workflow;
17
+ // Handle different modes
18
+ switch (mode) {
19
+ case 'metadata':
20
+ return {
21
+ id: workflow.id,
22
+ name: workflow.name,
23
+ description: workflow.description,
24
+ version: workflow.version,
25
+ preconditions: workflow.preconditions,
26
+ clarificationPrompts: workflow.clarificationPrompts,
27
+ metaGuidance: workflow.metaGuidance,
28
+ totalSteps: workflow.steps.length
29
+ };
30
+ case 'preview':
31
+ default:
32
+ // Find the first eligible step (similar to workflow_next logic)
33
+ const firstStep = findFirstEligibleStep(workflow.steps);
34
+ return {
35
+ id: workflow.id,
36
+ name: workflow.name,
37
+ description: workflow.description,
38
+ version: workflow.version,
39
+ preconditions: workflow.preconditions,
40
+ clarificationPrompts: workflow.clarificationPrompts,
41
+ metaGuidance: workflow.metaGuidance,
42
+ totalSteps: workflow.steps.length,
43
+ firstStep
44
+ };
45
+ }
17
46
  };
18
47
  }
48
+ /**
49
+ * Helper function to find the first eligible step in a workflow.
50
+ * Uses the same logic as workflow_next but with empty completed steps and context.
51
+ */
52
+ function findFirstEligibleStep(steps, context = {}) {
53
+ return steps.find((step) => {
54
+ // If step has a runCondition, evaluate it
55
+ if (step.runCondition) {
56
+ return (0, condition_evaluator_1.evaluateCondition)(step.runCondition, context);
57
+ }
58
+ // No condition means step is eligible
59
+ return true;
60
+ }) || null;
61
+ }
19
62
  /**
20
63
  * @deprecated Use createGetWorkflow factory function instead
21
64
  * Legacy export for backward compatibility
22
65
  */
23
66
  async function getWorkflow(service, workflowId) {
24
- return createGetWorkflow(service)(workflowId);
67
+ return createGetWorkflow(service)(workflowId, 'preview');
25
68
  }
26
69
  //# sourceMappingURL=get-workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-workflow.js","sourceRoot":"","sources":["../../../src/application/use-cases/get-workflow.ts"],"names":[],"mappings":";;AAQA,8CAQC;AAMD,kCAKC;AAzBD,4DAAiE;AAEjE;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAwB;IACxD,OAAO,KAAK,EAAE,UAAkB,EAAqB,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,qCAAqB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,UAAkB;IAElB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"get-workflow.js","sourceRoot":"","sources":["../../../src/application/use-cases/get-workflow.ts"],"names":[],"mappings":";;AA8BA,8CAsCC;AAsBD,kCAKC;AA7FD,4DAAiE;AACjE,yEAAsF;AAuBtF;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAwB;IACxD,OAAO,KAAK,EAAE,UAAkB,EAAE,OAAwB,SAAS,EAA8B,EAAE;QACjG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,qCAAqB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,yBAAyB;QACzB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU;gBACb,OAAO;oBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;oBACnD,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;iBAClC,CAAC;YAEJ,KAAK,SAAS,CAAC;YACf;gBACE,gEAAgE;gBAChE,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACxD,OAAO;oBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;oBACnD,YAAY,EAAE,QAAQ,CAAC,YAAY;oBACnC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;oBACjC,SAAS;iBACV,CAAC;QACN,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAqB,EAAE,UAA4B,EAAE;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,0CAA0C;QAC1C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAA,uCAAiB,EAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,IAAI,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,UAAkB;IAElB,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,CAAsB,CAAC;AAChF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-workflow-json.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/validate-workflow-json.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,KAEtC,cAAc,MAAM,KACnB,OAAO,CAAC,4BAA4B,CAAC,CA6DzC;AAgGD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,4BAA4B,CAAC,CAEvC"}
1
+ {"version":3,"file":"validate-workflow-json.d.ts","sourceRoot":"","sources":["../../../src/application/use-cases/validate-workflow-json.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,KAEtC,cAAc,MAAM,KACnB,OAAO,CAAC,4BAA4B,CAAC,CA2DzC;AAiDD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,4BAA4B,CAAC,CAEvC"}
@@ -50,10 +50,8 @@ function createValidateWorkflowJson() {
50
50
  const issues = [];
51
51
  const suggestions = [];
52
52
  if (!validationResult.valid) {
53
- // Process validation errors and provide enhanced error messages
54
- validationResult.errors.forEach(error => {
55
- issues.push(enhanceErrorMessage(error));
56
- });
53
+ // Validation errors are already enhanced by the EnhancedErrorService
54
+ issues.push(...validationResult.errors);
57
55
  // Add general suggestions based on common validation errors
58
56
  suggestions.push(...generateSuggestions(validationResult.errors));
59
57
  }
@@ -64,45 +62,6 @@ function createValidateWorkflowJson() {
64
62
  };
65
63
  };
66
64
  }
67
- /**
68
- * Enhance error messages to be more user-friendly for LLM consumption
69
- */
70
- function enhanceErrorMessage(error) {
71
- // Handle common AJV error patterns and make them more descriptive
72
- if (error.includes('must have required property')) {
73
- const match = error.match(/must have required property '(.+)'/);
74
- if (match) {
75
- const property = match[1];
76
- return `Missing required field '${property}'. This field is mandatory for all workflows.`;
77
- }
78
- }
79
- if (error.includes('must be string')) {
80
- return `${error} - Expected a text value enclosed in quotes.`;
81
- }
82
- if (error.includes('must be array')) {
83
- return `${error} - Expected a list of items enclosed in square brackets [].`;
84
- }
85
- if (error.includes('must be object')) {
86
- return `${error} - Expected a JSON object enclosed in curly braces {}.`;
87
- }
88
- if (error.includes('must match pattern')) {
89
- return `${error} - The value does not match the required format or pattern.`;
90
- }
91
- if (error.includes('must NOT have additional properties')) {
92
- return `Unexpected property found. Remove this property or check for typos.`;
93
- }
94
- if (error.includes('additionalProperties')) {
95
- return `${error} - Remove any unexpected properties or check for typos.`;
96
- }
97
- if (error.includes('must be >= 1')) {
98
- return `${error} - Value must be at least 1.`;
99
- }
100
- if (error.includes('must be <= ')) {
101
- return `${error} - Value exceeds the maximum allowed length.`;
102
- }
103
- // Return original error if no specific enhancement is available
104
- return error;
105
- }
106
65
  /**
107
66
  * Generate actionable suggestions based on validation errors
108
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validate-workflow-json.js","sourceRoot":"","sources":["../../../src/application/use-cases/validate-workflow-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-workflow-json.js","sourceRoot":"","sources":["../../../src/application/use-cases/validate-workflow-json.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/application/validation.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,wBAAwB,CAM5E"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/application/validation.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,wBAAwB,CAM5E"}
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const fs_1 = tslib_1.__importDefault(require("fs"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
7
  const ajv_1 = tslib_1.__importDefault(require("ajv"));
8
+ const enhanced_error_service_1 = require("./services/enhanced-error-service");
8
9
  const schemaPath = path_1.default.resolve(__dirname, '../../spec/workflow.schema.json');
9
10
  const schema = JSON.parse(fs_1.default.readFileSync(schemaPath, 'utf-8'));
10
11
  const ajv = new ajv_1.default({ allErrors: true, strict: false });
@@ -13,7 +14,7 @@ function validateWorkflow(workflow) {
13
14
  const ok = validate(workflow);
14
15
  return {
15
16
  valid: Boolean(ok),
16
- errors: ok ? [] : (validate.errors || []).map((e) => `${e.instancePath} ${e.message}`)
17
+ errors: ok ? [] : enhanced_error_service_1.EnhancedErrorService.enhanceErrors(validate.errors || [])
17
18
  };
18
19
  }
19
20
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/application/validation.ts"],"names":[],"mappings":";;AAcA,4CAMC;;AApBD,oDAAoB;AACpB,wDAAwB;AACxB,sDAAsB;AAEtB,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAOrC,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAClB,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/application/validation.ts"],"names":[],"mappings":";;AAeA,4CAMC;;AArBD,oDAAoB;AACpB,wDAAwB;AACxB,sDAAsB;AACtB,8EAAyE;AAEzE,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAOrC,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAClB,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6CAAoB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;KAC5E,CAAC;AACJ,CAAC"}