@exaudeus/workrail 0.0.10 → 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.
@@ -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":"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"}
@@ -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":";;AAeA,gEAgEC;AAoGD,oDAIC;AAvLD,8CAA2E;AAW3E;;;GAGG;AACH,SAAgB,0BAA0B;IACxC,OAAO,KAAK,EACV,YAAoB,EACmB,EAAE;QACzC,8CAA8C;QAC9C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5F,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,yDAAyD,CAAC;gBACnE,WAAW,EAAE,CAAC,8CAA8C,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,iCAAiC,CAAC;gBAC3C,WAAW,EAAE,CAAC,8CAA8C,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,IAAI,cAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC;YAC3F,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,CAAC,wBAAwB,YAAY,EAAE,CAAC;gBAChD,WAAW,EAAE;oBACX,4DAA4D;oBAC5D,yCAAyC;oBACzC,uDAAuD;oBACvD,8DAA8D;iBAC/D;aACF,CAAC;QACJ,CAAC;QAED,yDAAyD;QACzD,MAAM,gBAAgB,GAA6B,IAAA,6BAAgB,EAAC,cAAc,CAAC,CAAC;QAEpF,0DAA0D;QAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,gEAAgE;YAChE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,4DAA4D;YAC5D,WAAW,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO;YACL,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,MAAM;YACN,WAAW;SACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,kEAAkE;IAClE,IAAI,KAAK,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAChE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,OAAO,2BAA2B,QAAQ,+CAA+C,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,8CAA8C,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,KAAK,6DAA6D,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,wDAAwD,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,KAAK,6DAA6D,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,qCAAqC,CAAC,EAAE,CAAC;QAC1D,OAAO,qEAAqE,CAAC;IAC/E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,KAAK,yDAAyD,CAAC;IAC3E,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,KAAK,8BAA8B,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,8CAA8C,CAAC;IAChE,CAAC;IAED,gEAAgE;IAChE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAgB;IAC3C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAEjD,iDAAiD;IACjD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IACnG,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAC1F,CAAC;IAED,yDAAyD;IACzD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QACnG,WAAW,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CACxC,YAAoB;IAEpB,OAAO,0BAA0B,EAAE,CAAC,YAAY,CAAC,CAAC;AACpD,CAAC"}
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"}
@@ -54,7 +54,10 @@ class WorkflowOrchestrationServer {
54
54
  result = { workflows };
55
55
  break;
56
56
  case 'workflow_get':
57
- result = await workflowService.getWorkflowById(params.id);
57
+ // Import and use the get workflow use case to handle mode parameter
58
+ const { createGetWorkflow } = await Promise.resolve().then(() => __importStar(require('./application/use-cases/get-workflow.js')));
59
+ const getWorkflowUseCase = createGetWorkflow(workflowService);
60
+ result = await getWorkflowUseCase(params.id, params.mode);
58
61
  break;
59
62
  case 'workflow_next':
60
63
  result = await workflowService.getNextStep(params.workflowId, params.completedSteps || [], params.context);
@@ -127,6 +130,64 @@ class WorkflowOrchestrationServer {
127
130
  };
128
131
  }
129
132
  }
133
+ async getWorkflowSchema() {
134
+ try {
135
+ // Import fs and path for schema loading
136
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
137
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
138
+ // Load the workflow schema
139
+ const schemaPath = path.resolve(__dirname, '../spec/workflow.schema.json');
140
+ const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
141
+ const schema = JSON.parse(schemaContent);
142
+ // Add helpful metadata
143
+ const result = {
144
+ schema,
145
+ metadata: {
146
+ version: '1.0.0',
147
+ description: 'Complete JSON schema for workflow files',
148
+ usage: 'This schema defines the structure, required fields, and validation rules for workflow JSON files',
149
+ lastUpdated: new Date().toISOString(),
150
+ schemaPath: 'spec/workflow.schema.json'
151
+ },
152
+ commonPatterns: {
153
+ basicWorkflow: {
154
+ id: 'string (required): Unique identifier using lowercase letters, numbers, and hyphens',
155
+ name: 'string (required): Human-readable workflow name',
156
+ description: 'string (required): Detailed description of the workflow purpose',
157
+ version: 'string (required): Semantic version (e.g., "1.0.0")',
158
+ steps: 'array (required): List of workflow steps, minimum 1 item'
159
+ },
160
+ stepStructure: {
161
+ id: 'string (required): Unique step identifier',
162
+ title: 'string (required): Human-readable step title',
163
+ prompt: 'string (required): Instructions for the step',
164
+ agentRole: 'string (required): Role description for the agent',
165
+ validationCriteria: 'array (optional): Validation rules for step output'
166
+ }
167
+ }
168
+ };
169
+ return {
170
+ content: [{
171
+ type: "text",
172
+ text: JSON.stringify(result, null, 2)
173
+ }]
174
+ };
175
+ }
176
+ catch (error) {
177
+ console.error(`Workflow schema retrieval failed:`, error);
178
+ return {
179
+ content: [{
180
+ type: "text",
181
+ text: JSON.stringify({
182
+ error: error instanceof Error ? error.message : String(error),
183
+ method: 'workflow_get_schema',
184
+ suggestion: 'Ensure the workflow schema file exists at spec/workflow.schema.json'
185
+ }, null, 2)
186
+ }],
187
+ isError: true
188
+ };
189
+ }
190
+ }
130
191
  }
131
192
  // Define the workflow orchestration tools
132
193
  const WORKFLOW_LIST_TOOL = {
@@ -150,7 +211,7 @@ const WORKFLOW_GET_TOOL = {
150
211
  inputSchema: {
151
212
  type: "object",
152
213
  properties: {
153
- workflowId: {
214
+ id: {
154
215
  type: "string",
155
216
  description: "The unique identifier of the workflow to retrieve",
156
217
  pattern: "^[A-Za-z0-9_-]+$"
@@ -162,7 +223,7 @@ const WORKFLOW_GET_TOOL = {
162
223
  default: "preview"
163
224
  }
164
225
  },
165
- required: ["workflowId"],
226
+ required: ["id"],
166
227
  additionalProperties: false
167
228
  }
168
229
  };
@@ -250,6 +311,29 @@ const WORKFLOW_VALIDATE_JSON_TOOL = {
250
311
  additionalProperties: false
251
312
  }
252
313
  };
314
+ const WORKFLOW_GET_SCHEMA_TOOL = {
315
+ name: "workflow_get_schema",
316
+ description: `Retrieves the complete workflow JSON schema for reference and development purposes. Use this tool when you need to understand the structure, required fields, and validation rules for workflows.
317
+
318
+ This tool provides:
319
+ - Complete JSON schema definition with all properties and constraints
320
+ - Field descriptions and validation rules
321
+ - Examples of valid patterns and formats
322
+ - Schema version and metadata information
323
+ - Comprehensive reference for workflow structure
324
+
325
+ Example usage:
326
+ - Understanding workflow structure before creating new workflows
327
+ - Checking required fields and their types
328
+ - Verifying validation rules and constraints
329
+ - Reference during workflow development and debugging
330
+ - Learning about available workflow features and options`,
331
+ inputSchema: {
332
+ type: "object",
333
+ properties: {},
334
+ additionalProperties: false
335
+ }
336
+ };
253
337
  // Create and configure the MCP server
254
338
  const server = new index_js_1.Server({
255
339
  name: "workflow-orchestration-server",
@@ -267,7 +351,8 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
267
351
  WORKFLOW_GET_TOOL,
268
352
  WORKFLOW_NEXT_TOOL,
269
353
  WORKFLOW_VALIDATE_TOOL,
270
- WORKFLOW_VALIDATE_JSON_TOOL
354
+ WORKFLOW_VALIDATE_JSON_TOOL,
355
+ WORKFLOW_GET_SCHEMA_TOOL
271
356
  ],
272
357
  }));
273
358
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
@@ -276,13 +361,13 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
276
361
  case "workflow_list":
277
362
  return await workflowServer.listWorkflows();
278
363
  case "workflow_get":
279
- if (!args?.['workflowId']) {
364
+ if (!args?.['id']) {
280
365
  return {
281
- content: [{ type: "text", text: "Error: workflowId parameter is required" }],
366
+ content: [{ type: "text", text: "Error: id parameter is required" }],
282
367
  isError: true
283
368
  };
284
369
  }
285
- return await workflowServer.getWorkflow(args['workflowId'], args['mode']);
370
+ return await workflowServer.getWorkflow(args['id'], args['mode']);
286
371
  case "workflow_next":
287
372
  if (!args?.['workflowId']) {
288
373
  return {
@@ -307,6 +392,8 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
307
392
  };
308
393
  }
309
394
  return await workflowServer.validateWorkflowJson(args['workflowJson']);
395
+ case "workflow_get_schema":
396
+ return await workflowServer.getWorkflowSchema();
310
397
  default:
311
398
  return {
312
399
  content: [{ type: "text", text: `Unknown tool: ${name}` }],
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,354 @@
1
+ import { ConditionContext } from '../utils/condition-evaluator';
2
+ /**
3
+ * Represents a unique session for workflow execution.
4
+ * Sessions maintain state across multiple tool calls, enabling stateful workflows.
5
+ */
6
+ export interface SessionState {
7
+ /** Cryptographically secure session identifier */
8
+ sessionId: string;
9
+ /** ID of the workflow being executed */
10
+ workflowId: string;
11
+ /** Array of completed step IDs in execution order */
12
+ completedSteps: string[];
13
+ /** Context variables for workflow step conditions and state */
14
+ context: ConditionContext;
15
+ /** Timestamp when session was created */
16
+ createdAt: Date;
17
+ /** Timestamp of last activity (tool call) */
18
+ lastActivity: Date;
19
+ /** Current storage tier for tiered cleanup */
20
+ tier: SessionTier;
21
+ /** Total number of tool calls made in this session */
22
+ accessCount: number;
23
+ /** Total milliseconds spent in inactive state */
24
+ hibernationTime: number;
25
+ /** Client-provided hints for session lifecycle management */
26
+ hints: SessionHints;
27
+ /** Session metadata for monitoring and analytics */
28
+ metadata: SessionMetadata;
29
+ }
30
+ /**
31
+ * Storage tiers for session lifecycle management.
32
+ * Sessions migrate through tiers based on activity patterns.
33
+ */
34
+ export type SessionTier = 'memory' | 'disk' | 'archive';
35
+ /**
36
+ * Client-provided hints for session management.
37
+ * Helps optimize cleanup policies and resource allocation.
38
+ */
39
+ export interface SessionHints {
40
+ /** Expected session duration in milliseconds */
41
+ expectedDuration?: number;
42
+ /** Session importance level affects cleanup priority */
43
+ importance: SessionImportance;
44
+ /** Whether client expects to pause/resume this session */
45
+ pauseExpected?: boolean;
46
+ /** Type of client for different cleanup strategies */
47
+ clientType: SessionClientType;
48
+ /** Human-readable description of session purpose */
49
+ description?: string;
50
+ }
51
+ export type SessionImportance = 'low' | 'medium' | 'high' | 'critical';
52
+ export type SessionClientType = 'human' | 'agent' | 'scheduled' | 'test';
53
+ /**
54
+ * Session metadata for monitoring and analytics.
55
+ */
56
+ export interface SessionMetadata {
57
+ /** Current workflow progress (0-100) */
58
+ progress: number;
59
+ /** Estimated time remaining in milliseconds */
60
+ estimatedTimeRemaining?: number;
61
+ /** Recent activity frequency (calls per hour) */
62
+ activityFrequency: number;
63
+ /** Session size in bytes for memory management */
64
+ memoryFootprint: number;
65
+ /** Number of validation errors encountered */
66
+ validationErrors: number;
67
+ /** Custom labels for session categorization */
68
+ labels: Record<string, string>;
69
+ }
70
+ /**
71
+ * Result of session creation.
72
+ */
73
+ export interface SessionStartResult {
74
+ /** Created session ID */
75
+ sessionId: string;
76
+ /** First step of the workflow */
77
+ step: {
78
+ id: string;
79
+ title: string;
80
+ prompt: string;
81
+ agentRole?: string;
82
+ guidance?: string[];
83
+ } | null;
84
+ /** Workflow guidance for first step */
85
+ guidance: {
86
+ prompt: string;
87
+ };
88
+ /** Whether workflow is complete (empty workflow) */
89
+ isComplete: boolean;
90
+ /** Session configuration used */
91
+ config: SessionConfig;
92
+ }
93
+ /**
94
+ * Session activity tracking for cleanup decisions.
95
+ */
96
+ export interface SessionActivity {
97
+ /** Most recent activity timestamp */
98
+ recentActivity: Date;
99
+ /** Activity frequency in calls per hour */
100
+ activityFrequency: number;
101
+ /** Workflow completion percentage */
102
+ workflowProgress: number;
103
+ /** Client type for different cleanup strategies */
104
+ clientType: SessionClientType;
105
+ /** Session importance level */
106
+ importance: SessionImportance;
107
+ /** Whether session is expected to be paused */
108
+ pauseExpected: boolean;
109
+ }
110
+ /**
111
+ * Result of session validation operations.
112
+ */
113
+ export interface SessionValidationResult {
114
+ /** Whether validation passed */
115
+ valid: boolean;
116
+ /** Array of validation issues */
117
+ issues: string[];
118
+ /** Array of suggestions for fixing issues */
119
+ suggestions: string[];
120
+ /** Validation warnings that don't prevent operation */
121
+ warnings: string[];
122
+ }
123
+ /**
124
+ * Parameters for session update operations.
125
+ */
126
+ export interface SessionUpdateParams {
127
+ /** New completed steps to add */
128
+ completedSteps?: string[];
129
+ /** Context updates to apply */
130
+ context?: Partial<ConditionContext>;
131
+ /** Update session hints */
132
+ hints?: Partial<SessionHints>;
133
+ /** Update session metadata */
134
+ metadata?: Partial<SessionMetadata>;
135
+ }
136
+ /**
137
+ * Configuration for session management system.
138
+ */
139
+ export interface SessionConfig {
140
+ /** Memory tier cleanup policy */
141
+ memoryTTL: number;
142
+ /** Disk tier cleanup policy */
143
+ diskTTL: number;
144
+ /** Archive tier cleanup policy */
145
+ archiveTTL: number;
146
+ /** Maximum sessions allowed in memory */
147
+ maxMemorySessions: number;
148
+ /** Maximum sessions allowed on disk */
149
+ maxDiskSessions: number;
150
+ /** Cleanup task interval in milliseconds */
151
+ cleanupInterval: number;
152
+ /** Whether to enable adaptive cleanup policies */
153
+ adaptiveCleanup: boolean;
154
+ /** Security settings for session ID generation */
155
+ security: SessionSecurityConfig;
156
+ }
157
+ /**
158
+ * Security configuration for session management.
159
+ */
160
+ export interface SessionSecurityConfig {
161
+ /** Length of session ID in bytes */
162
+ sessionIdLength: number;
163
+ /** Whether to use cryptographically secure random generation */
164
+ useSecureRandom: boolean;
165
+ /** Whether to hash session IDs in logs */
166
+ hashSessionIds: boolean;
167
+ /** Maximum session context size in bytes */
168
+ maxContextSize: number;
169
+ /** Whether to validate session context values */
170
+ validateContext: boolean;
171
+ }
172
+ /**
173
+ * Cleanup policy for different session types.
174
+ */
175
+ export interface SessionCleanupPolicy {
176
+ /** Base TTL for memory tier */
177
+ memoryTTL: number;
178
+ /** Base TTL for disk tier */
179
+ diskTTL: number;
180
+ /** Base TTL for archive tier */
181
+ archiveTTL: number;
182
+ /** Multiplier for high importance sessions */
183
+ importanceMultiplier: Record<SessionImportance, number>;
184
+ /** Multiplier for different client types */
185
+ clientTypeMultiplier: Record<SessionClientType, number>;
186
+ /** Whether to extend TTL for near-complete workflows */
187
+ extendForProgress: boolean;
188
+ }
189
+ /**
190
+ * Interface for session storage backends.
191
+ * Supports tiered storage with memory, disk, and archive layers.
192
+ */
193
+ export interface ISessionStorage {
194
+ /**
195
+ * Create a new session with the given state.
196
+ */
197
+ createSession(sessionState: SessionState): Promise<void>;
198
+ /**
199
+ * Retrieve a session by ID, checking all tiers.
200
+ */
201
+ getSession(sessionId: string): Promise<SessionState | null>;
202
+ /**
203
+ * Update an existing session with partial state.
204
+ */
205
+ updateSession(sessionId: string, updates: SessionUpdateParams): Promise<void>;
206
+ /**
207
+ * Delete a session from all tiers.
208
+ */
209
+ deleteSession(sessionId: string): Promise<void>;
210
+ /**
211
+ * List all sessions in a specific tier.
212
+ */
213
+ listSessions(tier?: SessionTier): Promise<SessionState[]>;
214
+ /**
215
+ * Move a session to a different tier.
216
+ */
217
+ migrateSession(sessionId: string, targetTier: SessionTier): Promise<void>;
218
+ /**
219
+ * Clean up expired sessions based on policy.
220
+ */
221
+ cleanupExpiredSessions(policy: SessionCleanupPolicy): Promise<SessionCleanupResult>;
222
+ /**
223
+ * Get storage statistics for monitoring.
224
+ */
225
+ getStorageStats(): Promise<SessionStorageStats>;
226
+ }
227
+ /**
228
+ * Result of session cleanup operations.
229
+ */
230
+ export interface SessionCleanupResult {
231
+ /** Number of sessions cleaned up */
232
+ sessionsRemoved: number;
233
+ /** Number of sessions migrated to disk */
234
+ sessionsMigratedToDisk: number;
235
+ /** Number of sessions migrated to archive */
236
+ sessionsMigratedToArchive: number;
237
+ /** Memory freed in bytes */
238
+ memoryFreed: number;
239
+ /** Cleanup duration in milliseconds */
240
+ duration: number;
241
+ /** Any errors encountered during cleanup */
242
+ errors: string[];
243
+ }
244
+ /**
245
+ * Storage statistics for monitoring.
246
+ */
247
+ export interface SessionStorageStats {
248
+ /** Sessions in each tier */
249
+ sessionsByTier: Record<SessionTier, number>;
250
+ /** Total memory usage in bytes */
251
+ memoryUsage: number;
252
+ /** Total disk usage in bytes */
253
+ diskUsage: number;
254
+ /** Average session size in bytes */
255
+ averageSessionSize: number;
256
+ /** Sessions by importance level */
257
+ sessionsByImportance: Record<SessionImportance, number>;
258
+ /** Sessions by client type */
259
+ sessionsByClientType: Record<SessionClientType, number>;
260
+ /** Last cleanup timestamp */
261
+ lastCleanup: Date;
262
+ }
263
+ /**
264
+ * Interface for session management service.
265
+ * Provides high-level operations for session lifecycle management.
266
+ */
267
+ export interface SessionService {
268
+ /**
269
+ * Create a new session for the given workflow.
270
+ */
271
+ createSession(workflowId: string, hints?: SessionHints): Promise<SessionStartResult>;
272
+ /**
273
+ * Retrieve a session by ID.
274
+ */
275
+ getSession(sessionId: string): Promise<SessionState | null>;
276
+ /**
277
+ * Update session state after a workflow step.
278
+ */
279
+ updateSession(sessionId: string, updates: SessionUpdateParams): Promise<void>;
280
+ /**
281
+ * Validate session update parameters.
282
+ */
283
+ validateSessionUpdate(sessionId: string, updates: SessionUpdateParams): Promise<SessionValidationResult>;
284
+ /**
285
+ * Delete a session.
286
+ */
287
+ deleteSession(sessionId: string): Promise<void>;
288
+ /**
289
+ * List active sessions with optional filtering.
290
+ */
291
+ listSessions(filter?: SessionFilter): Promise<SessionState[]>;
292
+ /**
293
+ * Calculate TTL for a session based on activity.
294
+ */
295
+ calculateSessionTTL(activity: SessionActivity): number;
296
+ /**
297
+ * Perform cleanup of expired sessions.
298
+ */
299
+ cleanupSessions(): Promise<SessionCleanupResult>;
300
+ /**
301
+ * Get session service statistics.
302
+ */
303
+ getStats(): Promise<SessionStorageStats>;
304
+ }
305
+ /**
306
+ * Filter options for listing sessions.
307
+ */
308
+ export interface SessionFilter {
309
+ /** Filter by workflow ID */
310
+ workflowId?: string;
311
+ /** Filter by client type */
312
+ clientType?: SessionClientType;
313
+ /** Filter by importance level */
314
+ importance?: SessionImportance;
315
+ /** Filter by storage tier */
316
+ tier?: SessionTier;
317
+ /** Filter by minimum last activity */
318
+ minLastActivity?: Date;
319
+ /** Filter by maximum last activity */
320
+ maxLastActivity?: Date;
321
+ }
322
+ /**
323
+ * Session-related error types.
324
+ */
325
+ export declare class SessionError extends Error {
326
+ readonly code: SessionErrorCode;
327
+ readonly sessionId?: string | undefined;
328
+ readonly details?: Record<string, any> | undefined;
329
+ constructor(message: string, code: SessionErrorCode, sessionId?: string | undefined, details?: Record<string, any> | undefined);
330
+ }
331
+ export declare enum SessionErrorCode {
332
+ SESSION_NOT_FOUND = "SESSION_NOT_FOUND",
333
+ SESSION_EXPIRED = "SESSION_EXPIRED",
334
+ INVALID_SESSION_ID = "INVALID_SESSION_ID",
335
+ SESSION_ALREADY_EXISTS = "SESSION_ALREADY_EXISTS",
336
+ INVALID_UPDATE = "INVALID_UPDATE",
337
+ STORAGE_ERROR = "STORAGE_ERROR",
338
+ VALIDATION_ERROR = "VALIDATION_ERROR",
339
+ RESOURCE_EXHAUSTED = "RESOURCE_EXHAUSTED",
340
+ SECURITY_ERROR = "SECURITY_ERROR"
341
+ }
342
+ /**
343
+ * Default session configuration.
344
+ */
345
+ export declare const DEFAULT_SESSION_CONFIG: SessionConfig;
346
+ /**
347
+ * Default cleanup policy.
348
+ */
349
+ export declare const DEFAULT_CLEANUP_POLICY: SessionCleanupPolicy;
350
+ /**
351
+ * Default session hints.
352
+ */
353
+ export declare const DEFAULT_SESSION_HINTS: SessionHints;
354
+ //# sourceMappingURL=session-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-types.d.ts","sourceRoot":"","sources":["../../src/types/session-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // SESSION MANAGEMENT TYPES
4
+ // =============================================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_SESSION_HINTS = exports.DEFAULT_CLEANUP_POLICY = exports.DEFAULT_SESSION_CONFIG = exports.SessionErrorCode = exports.SessionError = void 0;
7
+ // =============================================================================
8
+ // SESSION ERROR TYPES
9
+ // =============================================================================
10
+ /**
11
+ * Session-related error types.
12
+ */
13
+ class SessionError extends Error {
14
+ code;
15
+ sessionId;
16
+ details;
17
+ constructor(message, code, sessionId, details) {
18
+ super(message);
19
+ this.code = code;
20
+ this.sessionId = sessionId;
21
+ this.details = details;
22
+ this.name = 'SessionError';
23
+ }
24
+ }
25
+ exports.SessionError = SessionError;
26
+ var SessionErrorCode;
27
+ (function (SessionErrorCode) {
28
+ SessionErrorCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
29
+ SessionErrorCode["SESSION_EXPIRED"] = "SESSION_EXPIRED";
30
+ SessionErrorCode["INVALID_SESSION_ID"] = "INVALID_SESSION_ID";
31
+ SessionErrorCode["SESSION_ALREADY_EXISTS"] = "SESSION_ALREADY_EXISTS";
32
+ SessionErrorCode["INVALID_UPDATE"] = "INVALID_UPDATE";
33
+ SessionErrorCode["STORAGE_ERROR"] = "STORAGE_ERROR";
34
+ SessionErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
35
+ SessionErrorCode["RESOURCE_EXHAUSTED"] = "RESOURCE_EXHAUSTED";
36
+ SessionErrorCode["SECURITY_ERROR"] = "SECURITY_ERROR";
37
+ })(SessionErrorCode || (exports.SessionErrorCode = SessionErrorCode = {}));
38
+ // =============================================================================
39
+ // DEFAULT CONFIGURATIONS
40
+ // =============================================================================
41
+ /**
42
+ * Default session configuration.
43
+ */
44
+ exports.DEFAULT_SESSION_CONFIG = {
45
+ memoryTTL: 2 * 60 * 60 * 1000, // 2 hours
46
+ diskTTL: 24 * 60 * 60 * 1000, // 24 hours
47
+ archiveTTL: 7 * 24 * 60 * 60 * 1000, // 7 days
48
+ maxMemorySessions: 1000,
49
+ maxDiskSessions: 10000,
50
+ cleanupInterval: 15 * 60 * 1000, // 15 minutes
51
+ adaptiveCleanup: true,
52
+ security: {
53
+ sessionIdLength: 32,
54
+ useSecureRandom: true,
55
+ hashSessionIds: true,
56
+ maxContextSize: 1024 * 1024, // 1MB
57
+ validateContext: true
58
+ }
59
+ };
60
+ /**
61
+ * Default cleanup policy.
62
+ */
63
+ exports.DEFAULT_CLEANUP_POLICY = {
64
+ memoryTTL: 2 * 60 * 60 * 1000, // 2 hours
65
+ diskTTL: 24 * 60 * 60 * 1000, // 24 hours
66
+ archiveTTL: 7 * 24 * 60 * 60 * 1000, // 7 days
67
+ importanceMultiplier: {
68
+ low: 0.5,
69
+ medium: 1.0,
70
+ high: 2.0,
71
+ critical: 4.0
72
+ },
73
+ clientTypeMultiplier: {
74
+ human: 1.0,
75
+ agent: 1.5,
76
+ scheduled: 2.0,
77
+ test: 0.1
78
+ },
79
+ extendForProgress: true
80
+ };
81
+ /**
82
+ * Default session hints.
83
+ */
84
+ exports.DEFAULT_SESSION_HINTS = {
85
+ importance: 'medium',
86
+ pauseExpected: false,
87
+ clientType: 'human'
88
+ };
89
+ //# sourceMappingURL=session-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-types.js","sourceRoot":"","sources":["../../src/types/session-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;;;AA8bhF,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAGnB;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAsB,EACtB,SAAkB,EAClB,OAA6B;QAE7C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAkB;QACtB,cAAS,GAAT,SAAS,CAAS;QAClB,YAAO,GAAP,OAAO,CAAsB;QAG7C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAVD,oCAUC;AAED,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC1B,2DAAuC,CAAA;IACvC,uDAAmC,CAAA;IACnC,6DAAyC,CAAA;IACzC,qEAAiD,CAAA;IACjD,qDAAiC,CAAA;IACjC,mDAA+B,CAAA;IAC/B,yDAAqC,CAAA;IACrC,6DAAyC,CAAA;IACzC,qDAAiC,CAAA;AACnC,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;GAEG;AACU,QAAA,sBAAsB,GAAkB;IACnD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IACzC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;IACzC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;IAC9C,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IAC9C,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE;QACR,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;QACnC,eAAe,EAAE,IAAI;KACtB;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAyB;IAC1D,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IACzC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;IACzC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;IAC9C,oBAAoB,EAAE;QACpB,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,GAAG;KACd;IACD,oBAAoB,EAAE;QACpB,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,GAAG;KACV;IACD,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF;;GAEG;AACU,QAAA,qBAAqB,GAAiB;IACjD,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,OAAO;CACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exaudeus/workrail",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "MCP server for structured workflow orchestration and step-by-step task guidance",
5
5
  "license": "MIT",
6
6
  "bin": {