@orbytautomation/engine 0.2.4 → 0.3.0

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 (57) hide show
  1. package/README.md +1 -1
  2. package/dist/errors/ErrorCodes.d.ts +205 -6
  3. package/dist/errors/ErrorCodes.d.ts.map +1 -1
  4. package/dist/errors/ErrorCodes.js +398 -5
  5. package/dist/errors/ErrorCodes.js.map +1 -1
  6. package/dist/errors/ErrorDebugger.d.ts +98 -0
  7. package/dist/errors/ErrorDebugger.d.ts.map +1 -0
  8. package/dist/errors/ErrorDebugger.js +283 -0
  9. package/dist/errors/ErrorDebugger.js.map +1 -0
  10. package/dist/errors/ErrorDetector.d.ts +148 -0
  11. package/dist/errors/ErrorDetector.d.ts.map +1 -0
  12. package/dist/errors/ErrorDetector.js +358 -0
  13. package/dist/errors/ErrorDetector.js.map +1 -0
  14. package/dist/errors/ErrorFormatter.d.ts +92 -3
  15. package/dist/errors/ErrorFormatter.d.ts.map +1 -1
  16. package/dist/errors/ErrorFormatter.js +220 -4
  17. package/dist/errors/ErrorFormatter.js.map +1 -1
  18. package/dist/errors/ErrorHandler.d.ts +259 -0
  19. package/dist/errors/ErrorHandler.d.ts.map +1 -0
  20. package/dist/errors/ErrorHandler.js +378 -0
  21. package/dist/errors/ErrorHandler.js.map +1 -0
  22. package/dist/errors/FieldRegistry.d.ts +39 -0
  23. package/dist/errors/FieldRegistry.d.ts.map +1 -1
  24. package/dist/errors/FieldRegistry.js +172 -74
  25. package/dist/errors/FieldRegistry.js.map +1 -1
  26. package/dist/errors/OrbytError.d.ts +85 -3
  27. package/dist/errors/OrbytError.d.ts.map +1 -1
  28. package/dist/errors/OrbytError.js +151 -4
  29. package/dist/errors/OrbytError.js.map +1 -1
  30. package/dist/errors/SchedulerError.d.ts +93 -1
  31. package/dist/errors/SchedulerError.d.ts.map +1 -1
  32. package/dist/errors/SchedulerError.js +145 -1
  33. package/dist/errors/SchedulerError.js.map +1 -1
  34. package/dist/errors/SecurityErrors.d.ts +94 -12
  35. package/dist/errors/SecurityErrors.d.ts.map +1 -1
  36. package/dist/errors/SecurityErrors.js +162 -18
  37. package/dist/errors/SecurityErrors.js.map +1 -1
  38. package/dist/errors/StepError.d.ts +111 -1
  39. package/dist/errors/StepError.d.ts.map +1 -1
  40. package/dist/errors/StepError.js +182 -1
  41. package/dist/errors/StepError.js.map +1 -1
  42. package/dist/errors/WorkflowError.d.ts +139 -2
  43. package/dist/errors/WorkflowError.d.ts.map +1 -1
  44. package/dist/errors/WorkflowError.js +264 -22
  45. package/dist/errors/WorkflowError.js.map +1 -1
  46. package/dist/errors/index.d.ts +5 -1
  47. package/dist/errors/index.d.ts.map +1 -1
  48. package/dist/errors/index.js +7 -4
  49. package/dist/errors/index.js.map +1 -1
  50. package/dist/loader/WorkflowLoader.d.ts +83 -21
  51. package/dist/loader/WorkflowLoader.d.ts.map +1 -1
  52. package/dist/loader/WorkflowLoader.js +169 -55
  53. package/dist/loader/WorkflowLoader.js.map +1 -1
  54. package/dist/parser/SchemaValidator.d.ts.map +1 -1
  55. package/dist/parser/SchemaValidator.js +2 -1
  56. package/dist/parser/SchemaValidator.js.map +1 -1
  57. package/package.json +1 -1
@@ -1,11 +1,36 @@
1
1
  /**
2
2
  * Security Error System
3
3
  *
4
- * Structured errors for security violations.
5
- * These errors are thrown when users attempt to manipulate engine-controlled fields.
4
+ * Structured errors for security violations in workflows.
5
+ * These errors are thrown when users attempt to:
6
+ * - Manipulate engine-controlled fields
7
+ * - Use reserved field names/annotations
8
+ * - Override billing, execution, or identity fields
9
+ * - Bypass security boundaries
10
+ *
11
+ * CRITICAL: Security errors indicate attempts to compromise:
12
+ * - Billing integrity and usage tracking
13
+ * - Audit trails and compliance
14
+ * - Execution identity and ownership
15
+ * - Security boundaries
16
+ *
17
+ * USAGE:
18
+ * =====
19
+ * Use factory methods for creating security errors:
20
+ *
21
+ * ```typescript
22
+ * // ❌ Bad: Generic error
23
+ * throw new Error('Reserved field');
24
+ *
25
+ * // ✅ Good: Structured security error
26
+ * throw SecurityError.reservedFieldOverride('_internal', 'workflow.context');
27
+ * ```
6
28
  *
7
29
  * @module errors/security
8
30
  */
31
+ import { ExitCodes } from '@dev-ecosystem/core';
32
+ import { OrbytError } from './OrbytError.js';
33
+ import { OrbytErrorCode, ErrorSeverity } from './ErrorCodes.js';
9
34
  /**
10
35
  * Security error codes
11
36
  */
@@ -30,21 +55,37 @@ export var SecurityErrorCode;
30
55
  * Security Error
31
56
  *
32
57
  * Thrown when users attempt to manipulate engine-controlled fields.
33
- * This is a CRITICAL error that must never be silently ignored.
58
+ * Extends OrbytError to provide consistent error handling with proper exit codes.
59
+ *
60
+ * CRITICAL: Security violations indicate attempts to compromise:
61
+ * - Billing integrity → Manipulating usage tracking
62
+ * - Audit compliance → Hiding execution traces
63
+ * - System security → Bypassing access controls
34
64
  */
35
- export class SecurityError extends Error {
36
- code;
37
- violations;
38
- isEngineError = true;
39
- constructor(violations) {
40
- const errorMessage = SecurityError.formatViolations(violations);
41
- super(errorMessage);
42
- this.name = 'SecurityError';
43
- this.code = violations[0]?.code || SecurityErrorCode.RESERVED_FIELD_OVERRIDE;
44
- this.violations = violations;
45
- // Maintain proper stack trace
46
- if (Error.captureStackTrace) {
47
- Error.captureStackTrace(this, SecurityError);
65
+ export class SecurityError extends OrbytError {
66
+ violations; // For backward compatibility
67
+ constructor(diagnostic) {
68
+ // Support both new OrbytError format and legacy SecurityViolationDetails[] format
69
+ if (Array.isArray(diagnostic)) {
70
+ // Legacy format: convert to OrbytError diagnostic
71
+ const errorMessage = SecurityError.formatViolations(diagnostic);
72
+ super({
73
+ code: OrbytErrorCode.RUNTIME_PERMISSION_DENIED,
74
+ exitCode: ExitCodes.SECURITY_VIOLATION,
75
+ message: errorMessage,
76
+ hint: 'Remove all reserved fields from your workflow',
77
+ severity: ErrorSeverity.ERROR,
78
+ context: { violations: diagnostic },
79
+ });
80
+ this.violations = diagnostic;
81
+ }
82
+ else {
83
+ // New format: use OrbytError diagnostic
84
+ super({
85
+ ...diagnostic,
86
+ severity: ErrorSeverity.ERROR,
87
+ exitCode: diagnostic.exitCode || ExitCodes.SECURITY_VIOLATION,
88
+ });
48
89
  }
49
90
  }
50
91
  /**
@@ -123,6 +164,93 @@ export class SecurityError extends Error {
123
164
  lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
124
165
  return lines.join('\n');
125
166
  }
167
+ // ==================== FACTORY METHODS ====================
168
+ /**
169
+ * Create reserved field override error
170
+ *
171
+ * @param field - Reserved field name that was attempted
172
+ * @param path - Path where field was found
173
+ * @param fieldType - Type of reserved field (e.g., 'billing', 'execution', 'internal')
174
+ * @returns SecurityError for reserved field violation
175
+ */
176
+ static reservedFieldOverride(field, path, fieldType = 'internal') {
177
+ const reasons = {
178
+ billing: 'Billing fields control cost tracking and cannot be user-defined',
179
+ execution: 'Execution fields are managed by engine for workflow orchestration',
180
+ identity: 'Identity fields track user/org ownership and cannot be modified',
181
+ ownership: 'Ownership fields establish resource access control',
182
+ usage: 'Usage counters track resource consumption for billing',
183
+ internal: 'Internal state fields are engine-managed and cannot be set by users',
184
+ };
185
+ return new SecurityError({
186
+ code: OrbytErrorCode.RUNTIME_PERMISSION_DENIED,
187
+ exitCode: ExitCodes.SECURITY_VIOLATION,
188
+ message: `Reserved field "${field}" cannot be set in workflow`,
189
+ hint: `Remove "${field}" from your workflow. ${reasons[fieldType]}`,
190
+ path,
191
+ severity: ErrorSeverity.ERROR,
192
+ context: { field, fieldType, reason: reasons[fieldType] },
193
+ });
194
+ }
195
+ /**
196
+ * Create reserved annotation namespace error
197
+ *
198
+ * @param annotation - Annotation key that uses reserved namespace
199
+ * @param path - Path where annotation was found
200
+ * @returns SecurityError for reserved annotation usage
201
+ */
202
+ static reservedAnnotation(annotation, path) {
203
+ return new SecurityError({
204
+ code: OrbytErrorCode.RUNTIME_PERMISSION_DENIED,
205
+ exitCode: ExitCodes.SECURITY_VIOLATION,
206
+ message: `Reserved annotation namespace "${annotation}" cannot be used`,
207
+ hint: 'Annotations starting with "orbyt." or "_" are reserved. Use your own namespace',
208
+ path,
209
+ severity: ErrorSeverity.ERROR,
210
+ context: { annotation },
211
+ });
212
+ }
213
+ /**
214
+ * Create field manipulation detected error
215
+ *
216
+ * @param fields - Array of protected fields that were attempted
217
+ * @param path - Path where manipulation was detected
218
+ * @returns SecurityError with multiple violations
219
+ */
220
+ static fieldManipulationDetected(fields, path) {
221
+ const fieldList = fields.map(f => f.field).join(', ');
222
+ return new SecurityError({
223
+ code: OrbytErrorCode.RUNTIME_PERMISSION_DENIED,
224
+ exitCode: ExitCodes.SECURITY_VIOLATION,
225
+ message: `Attempt to manipulate protected fields: ${fieldList}`,
226
+ hint: 'Remove all engine-controlled fields from your workflow definition',
227
+ path,
228
+ severity: ErrorSeverity.ERROR,
229
+ context: { fields },
230
+ });
231
+ }
232
+ /**
233
+ * Create permission denied error
234
+ *
235
+ * @param resource - Resource that was attempted to access
236
+ * @param path - Path where access was attempted
237
+ * @param requiredPermission - Required permission that was missing (optional)
238
+ * @returns SecurityError for insufficient permissions
239
+ */
240
+ static permissionDenied(resource, path, requiredPermission) {
241
+ const hint = requiredPermission
242
+ ? `This operation requires permission: ${requiredPermission}`
243
+ : 'Check access permissions and workflow ownership';
244
+ return new SecurityError({
245
+ code: OrbytErrorCode.RUNTIME_PERMISSION_DENIED,
246
+ exitCode: ExitCodes.PERMISSION_DENIED,
247
+ message: `Permission denied for resource: ${resource}`,
248
+ hint,
249
+ path,
250
+ severity: ErrorSeverity.ERROR,
251
+ context: { resource, requiredPermission },
252
+ });
253
+ }
126
254
  /**
127
255
  * Convert to JSON for API responses
128
256
  */
@@ -131,13 +259,29 @@ export class SecurityError extends Error {
131
259
  error: this.name,
132
260
  code: this.code,
133
261
  message: this.message,
134
- violations: this.violations,
135
- isEngineError: this.isEngineError,
262
+ exitCode: this.exitCode,
263
+ hint: this.hint,
264
+ violations: this.violations, // Legacy support
265
+ severity: this.severity,
266
+ context: this.diagnostic.context,
136
267
  };
137
268
  }
138
269
  }
139
270
  /**
140
271
  * Create a security error for reserved field violations
272
+ *
273
+ * @deprecated Use SecurityError.reservedFieldOverride() or other factory methods instead
274
+ * @param violations - Array of security violation details
275
+ * @returns SecurityError instance
276
+ *
277
+ * @example
278
+ * ```typescript
279
+ * // Old way (legacy):
280
+ * const error = createSecurityError([{ field: '_internal', ... }]);
281
+ *
282
+ * // New way (preferred):
283
+ * const error = SecurityError.reservedFieldOverride('_internal', 'workflow.context');
284
+ * ```
141
285
  */
142
286
  export function createSecurityError(violations) {
143
287
  return new SecurityError(violations);
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityErrors.js","sourceRoot":"","sources":["../../src/errors/SecurityErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecurityErrors.js","sourceRoot":"","sources":["../../src/errors/SecurityErrors.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,112 @@
1
- export {};
1
+ /**
2
+ * Step Error
3
+ *
4
+ * Structured error for step-level execution failures.
5
+ * Provides detailed context about which step failed and why.
6
+ *
7
+ * Exit codes:
8
+ * - STEP_FAILED: General step execution failure
9
+ * - TIMEOUT: Step timeout
10
+ * - VALIDATION_FAILED: Invalid step configuration
11
+ * - DEPENDENCY_FAILED: Dependency not met
12
+ *
13
+ * @module errors
14
+ */
15
+ import { ExitCodes } from '@dev-ecosystem/core';
16
+ import { OrbytError } from './OrbytError.js';
17
+ /**
18
+ * Step error codes from ecosystem-core
19
+ */
20
+ export declare enum StepErrorCode {
21
+ /** Step not found in workflow */
22
+ STEP_NOT_FOUND = "ORBYT-STEP-001",
23
+ /** Step execution timeout */
24
+ STEP_TIMEOUT = "ORBYT-STEP-002",
25
+ /** Step execution failed */
26
+ STEP_EXECUTION_FAILED = "ORBYT-STEP-003",
27
+ /** Step dependency not met */
28
+ STEP_DEPENDENCY_FAILED = "ORBYT-STEP-004",
29
+ /** Invalid step configuration */
30
+ STEP_CONFIG_INVALID = "ORBYT-STEP-005",
31
+ /** Duplicate step ID */
32
+ STEP_DUPLICATE_ID = "ORBYT-STEP-006",
33
+ /** Step condition evaluation failed */
34
+ STEP_CONDITION_FAILED = "ORBYT-STEP-007",
35
+ /** Step output mapping failed */
36
+ STEP_OUTPUT_MAPPING_FAILED = "ORBYT-STEP-008"
37
+ }
38
+ /**
39
+ * Step-specific error context
40
+ */
41
+ export interface StepErrorContext {
42
+ /** Step ID where error occurred */
43
+ stepId: string;
44
+ /** Step name (human-readable) */
45
+ stepName?: string;
46
+ /** Action being executed */
47
+ action?: string;
48
+ /** Step index in workflow */
49
+ stepIndex?: number;
50
+ /** Input parameters that were used */
51
+ inputs?: Record<string, any>;
52
+ /** Dependencies that were not met */
53
+ missingDependencies?: string[];
54
+ /** Timeout duration if applicable */
55
+ timeoutDuration?: string;
56
+ /** Exit code if available */
57
+ exitCode?: number;
58
+ /** Additional context */
59
+ [key: string]: any;
60
+ }
61
+ /**
62
+ * Step Error class
63
+ */
64
+ export declare class StepError extends OrbytError {
65
+ readonly stepId: string;
66
+ readonly stepName?: string;
67
+ readonly action?: string;
68
+ constructor(params: {
69
+ code: StepErrorCode;
70
+ message: string;
71
+ stepId: string;
72
+ stepName?: string;
73
+ action?: string;
74
+ context?: Partial<StepErrorContext>;
75
+ hint?: string;
76
+ cause?: Error;
77
+ exitCode?: ExitCodes;
78
+ });
79
+ /**
80
+ * Determine exit code based on step error code
81
+ */
82
+ private static getExitCode;
83
+ /**
84
+ * Determine severity based on error code
85
+ */
86
+ private static determineSeverity;
87
+ /**
88
+ * Factory: Step not found
89
+ */
90
+ static notFound(stepId: string, workflowName?: string): StepError;
91
+ /**
92
+ * Factory: Step execution timeout
93
+ */
94
+ static timeout(stepId: string, duration: string, stepName?: string): StepError;
95
+ /**
96
+ * Factory: Step execution failed
97
+ */
98
+ static executionFailed(stepId: string, action: string, cause: Error, stepName?: string): StepError;
99
+ /**
100
+ * Factory: Step dependency failed
101
+ */
102
+ static dependencyFailed(stepId: string, missingDependencies: string[], stepName?: string): StepError;
103
+ /**
104
+ * Factory: Invalid step configuration
105
+ */
106
+ static invalidConfig(stepId: string, reason: string, stepName?: string): StepError;
107
+ /**
108
+ * Factory: Duplicate step ID
109
+ */
110
+ static duplicateId(stepId: string): StepError;
111
+ }
2
112
  //# sourceMappingURL=StepError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepError.d.ts","sourceRoot":"","sources":["../../src/errors/StepError.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"StepError.d.ts","sourceRoot":"","sources":["../../src/errors/StepError.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,183 @@
1
- export {};
1
+ /**
2
+ * Step Error
3
+ *
4
+ * Structured error for step-level execution failures.
5
+ * Provides detailed context about which step failed and why.
6
+ *
7
+ * Exit codes:
8
+ * - STEP_FAILED: General step execution failure
9
+ * - TIMEOUT: Step timeout
10
+ * - VALIDATION_FAILED: Invalid step configuration
11
+ * - DEPENDENCY_FAILED: Dependency not met
12
+ *
13
+ * @module errors
14
+ */
15
+ import { ExitCodes } from '@dev-ecosystem/core';
16
+ import { OrbytError } from './OrbytError.js';
17
+ import { ErrorSeverity } from './ErrorCodes.js';
18
+ /**
19
+ * Step error codes from ecosystem-core
20
+ */
21
+ export var StepErrorCode;
22
+ (function (StepErrorCode) {
23
+ /** Step not found in workflow */
24
+ StepErrorCode["STEP_NOT_FOUND"] = "ORBYT-STEP-001";
25
+ /** Step execution timeout */
26
+ StepErrorCode["STEP_TIMEOUT"] = "ORBYT-STEP-002";
27
+ /** Step execution failed */
28
+ StepErrorCode["STEP_EXECUTION_FAILED"] = "ORBYT-STEP-003";
29
+ /** Step dependency not met */
30
+ StepErrorCode["STEP_DEPENDENCY_FAILED"] = "ORBYT-STEP-004";
31
+ /** Invalid step configuration */
32
+ StepErrorCode["STEP_CONFIG_INVALID"] = "ORBYT-STEP-005";
33
+ /** Duplicate step ID */
34
+ StepErrorCode["STEP_DUPLICATE_ID"] = "ORBYT-STEP-006";
35
+ /** Step condition evaluation failed */
36
+ StepErrorCode["STEP_CONDITION_FAILED"] = "ORBYT-STEP-007";
37
+ /** Step output mapping failed */
38
+ StepErrorCode["STEP_OUTPUT_MAPPING_FAILED"] = "ORBYT-STEP-008";
39
+ })(StepErrorCode || (StepErrorCode = {}));
40
+ /**
41
+ * Step Error class
42
+ */
43
+ export class StepError extends OrbytError {
44
+ stepId;
45
+ stepName;
46
+ action;
47
+ constructor(params) {
48
+ super({
49
+ code: params.code,
50
+ message: params.message,
51
+ exitCode: params.exitCode || StepError.getExitCode(params.code),
52
+ severity: StepError.determineSeverity(params.code),
53
+ context: {
54
+ stepId: params.stepId,
55
+ stepName: params.stepName,
56
+ action: params.action,
57
+ causeMessage: params.cause?.message,
58
+ ...params.context,
59
+ },
60
+ hint: params.hint,
61
+ });
62
+ this.stepId = params.stepId;
63
+ this.stepName = params.stepName;
64
+ this.action = params.action;
65
+ }
66
+ /**
67
+ * Determine exit code based on step error code
68
+ */
69
+ static getExitCode(code) {
70
+ switch (code) {
71
+ case StepErrorCode.STEP_NOT_FOUND:
72
+ case StepErrorCode.STEP_CONFIG_INVALID:
73
+ case StepErrorCode.STEP_DUPLICATE_ID:
74
+ return ExitCodes.VALIDATION_FAILED;
75
+ case StepErrorCode.STEP_TIMEOUT:
76
+ return ExitCodes.TIMEOUT;
77
+ case StepErrorCode.STEP_DEPENDENCY_FAILED:
78
+ return ExitCodes.DEPENDENCY_FAILED;
79
+ case StepErrorCode.STEP_EXECUTION_FAILED:
80
+ return ExitCodes.STEP_FAILED;
81
+ case StepErrorCode.STEP_CONDITION_FAILED:
82
+ case StepErrorCode.STEP_OUTPUT_MAPPING_FAILED:
83
+ return ExitCodes.STEP_FAILED;
84
+ default:
85
+ return ExitCodes.STEP_FAILED;
86
+ }
87
+ }
88
+ /**
89
+ * Determine severity based on error code
90
+ */
91
+ static determineSeverity(code) {
92
+ switch (code) {
93
+ case StepErrorCode.STEP_NOT_FOUND:
94
+ case StepErrorCode.STEP_CONFIG_INVALID:
95
+ case StepErrorCode.STEP_DUPLICATE_ID:
96
+ return ErrorSeverity.ERROR;
97
+ case StepErrorCode.STEP_TIMEOUT:
98
+ case StepErrorCode.STEP_EXECUTION_FAILED:
99
+ case StepErrorCode.STEP_DEPENDENCY_FAILED:
100
+ return ErrorSeverity.ERROR;
101
+ case StepErrorCode.STEP_CONDITION_FAILED:
102
+ case StepErrorCode.STEP_OUTPUT_MAPPING_FAILED:
103
+ return ErrorSeverity.WARNING;
104
+ default:
105
+ return ErrorSeverity.ERROR;
106
+ }
107
+ }
108
+ /**
109
+ * Factory: Step not found
110
+ */
111
+ static notFound(stepId, workflowName) {
112
+ return new StepError({
113
+ code: StepErrorCode.STEP_NOT_FOUND,
114
+ message: `Step "${stepId}" not found in workflow${workflowName ? ` "${workflowName}"` : ''}`,
115
+ stepId,
116
+ hint: 'Check that the step ID is spelled correctly and exists in the workflow definition.',
117
+ });
118
+ }
119
+ /**
120
+ * Factory: Step execution timeout
121
+ */
122
+ static timeout(stepId, duration, stepName) {
123
+ return new StepError({
124
+ code: StepErrorCode.STEP_TIMEOUT,
125
+ message: `Step "${stepName || stepId}" exceeded timeout of ${duration}`,
126
+ stepId,
127
+ stepName,
128
+ context: { timeoutDuration: duration },
129
+ hint: `The step took longer than ${duration}. Consider increasing the timeout or optimizing the step.`,
130
+ });
131
+ }
132
+ /**
133
+ * Factory: Step execution failed
134
+ */
135
+ static executionFailed(stepId, action, cause, stepName) {
136
+ return new StepError({
137
+ code: StepErrorCode.STEP_EXECUTION_FAILED,
138
+ message: `Step "${stepName || stepId}" failed during execution of "${action}"`,
139
+ stepId,
140
+ stepName,
141
+ action,
142
+ cause,
143
+ hint: 'Check the step configuration and adapter implementation. See the underlying error for details.',
144
+ });
145
+ }
146
+ /**
147
+ * Factory: Step dependency failed
148
+ */
149
+ static dependencyFailed(stepId, missingDependencies, stepName) {
150
+ return new StepError({
151
+ code: StepErrorCode.STEP_DEPENDENCY_FAILED,
152
+ message: `Step "${stepName || stepId}" depends on: ${missingDependencies.join(', ')}`,
153
+ stepId,
154
+ stepName,
155
+ context: { missingDependencies },
156
+ hint: `Ensure that the following steps complete successfully: ${missingDependencies.join(', ')}`,
157
+ });
158
+ }
159
+ /**
160
+ * Factory: Invalid step configuration
161
+ */
162
+ static invalidConfig(stepId, reason, stepName) {
163
+ return new StepError({
164
+ code: StepErrorCode.STEP_CONFIG_INVALID,
165
+ message: `Invalid configuration for step "${stepName || stepId}": ${reason}`,
166
+ stepId,
167
+ stepName,
168
+ hint: 'Review the step definition and ensure all required fields are provided with valid values.',
169
+ });
170
+ }
171
+ /**
172
+ * Factory: Duplicate step ID
173
+ */
174
+ static duplicateId(stepId) {
175
+ return new StepError({
176
+ code: StepErrorCode.STEP_DUPLICATE_ID,
177
+ message: `Duplicate step ID "${stepId}" found in workflow`,
178
+ stepId,
179
+ hint: `Step IDs must be unique within a workflow. Rename one of the steps with ID "${stepId}".`,
180
+ });
181
+ }
182
+ }
2
183
  //# sourceMappingURL=StepError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepError.js","sourceRoot":"","sources":["../../src/errors/StepError.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"StepError.js","sourceRoot":"","sources":["../../src/errors/StepError.ts"],"names":[],"mappings":"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"}