@orbytautomation/engine 0.2.4 → 0.4.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 (156) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/AdapterRegistry.d.ts.map +1 -1
  3. package/dist/adapters/AdapterRegistry.js +6 -0
  4. package/dist/adapters/AdapterRegistry.js.map +1 -1
  5. package/dist/context/VariableResolver.d.ts.map +1 -1
  6. package/dist/context/VariableResolver.js +7 -0
  7. package/dist/context/VariableResolver.js.map +1 -1
  8. package/dist/core/OrbytEngine.d.ts +19 -0
  9. package/dist/core/OrbytEngine.d.ts.map +1 -1
  10. package/dist/core/OrbytEngine.js +79 -3
  11. package/dist/core/OrbytEngine.js.map +1 -1
  12. package/dist/core/index.d.ts +1 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -1
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/errors/ErrorCodes.d.ts +205 -6
  17. package/dist/errors/ErrorCodes.d.ts.map +1 -1
  18. package/dist/errors/ErrorCodes.js +398 -5
  19. package/dist/errors/ErrorCodes.js.map +1 -1
  20. package/dist/errors/ErrorDebugger.d.ts +98 -0
  21. package/dist/errors/ErrorDebugger.d.ts.map +1 -0
  22. package/dist/errors/ErrorDebugger.js +290 -0
  23. package/dist/errors/ErrorDebugger.js.map +1 -0
  24. package/dist/errors/ErrorDetector.d.ts +148 -0
  25. package/dist/errors/ErrorDetector.d.ts.map +1 -0
  26. package/dist/errors/ErrorDetector.js +370 -0
  27. package/dist/errors/ErrorDetector.js.map +1 -0
  28. package/dist/errors/ErrorFormatter.d.ts +92 -3
  29. package/dist/errors/ErrorFormatter.d.ts.map +1 -1
  30. package/dist/errors/ErrorFormatter.js +220 -4
  31. package/dist/errors/ErrorFormatter.js.map +1 -1
  32. package/dist/errors/ErrorHandler.d.ts +259 -0
  33. package/dist/errors/ErrorHandler.d.ts.map +1 -0
  34. package/dist/errors/ErrorHandler.js +378 -0
  35. package/dist/errors/ErrorHandler.js.map +1 -0
  36. package/dist/errors/FieldRegistry.d.ts +39 -0
  37. package/dist/errors/FieldRegistry.d.ts.map +1 -1
  38. package/dist/errors/FieldRegistry.js +172 -74
  39. package/dist/errors/FieldRegistry.js.map +1 -1
  40. package/dist/errors/OrbytError.d.ts +85 -3
  41. package/dist/errors/OrbytError.d.ts.map +1 -1
  42. package/dist/errors/OrbytError.js +151 -4
  43. package/dist/errors/OrbytError.js.map +1 -1
  44. package/dist/errors/SchedulerError.d.ts +93 -1
  45. package/dist/errors/SchedulerError.d.ts.map +1 -1
  46. package/dist/errors/SchedulerError.js +145 -1
  47. package/dist/errors/SchedulerError.js.map +1 -1
  48. package/dist/errors/SecurityErrors.d.ts +94 -12
  49. package/dist/errors/SecurityErrors.d.ts.map +1 -1
  50. package/dist/errors/SecurityErrors.js +162 -18
  51. package/dist/errors/SecurityErrors.js.map +1 -1
  52. package/dist/errors/StepError.d.ts +111 -1
  53. package/dist/errors/StepError.d.ts.map +1 -1
  54. package/dist/errors/StepError.js +182 -1
  55. package/dist/errors/StepError.js.map +1 -1
  56. package/dist/errors/WorkflowError.d.ts +139 -2
  57. package/dist/errors/WorkflowError.d.ts.map +1 -1
  58. package/dist/errors/WorkflowError.js +264 -22
  59. package/dist/errors/WorkflowError.js.map +1 -1
  60. package/dist/errors/index.d.ts +5 -1
  61. package/dist/errors/index.d.ts.map +1 -1
  62. package/dist/errors/index.js +7 -4
  63. package/dist/errors/index.js.map +1 -1
  64. package/dist/execution/ExecutionEngine.d.ts.map +1 -1
  65. package/dist/execution/ExecutionEngine.js +36 -6
  66. package/dist/execution/ExecutionEngine.js.map +1 -1
  67. package/dist/execution/ExecutionPlan.d.ts.map +1 -1
  68. package/dist/execution/ExecutionPlan.js +21 -1
  69. package/dist/execution/ExecutionPlan.js.map +1 -1
  70. package/dist/execution/IntentAnalyzer.d.ts.map +1 -1
  71. package/dist/execution/IntentAnalyzer.js +20 -0
  72. package/dist/execution/IntentAnalyzer.js.map +1 -1
  73. package/dist/execution/StepExecutor.d.ts.map +1 -1
  74. package/dist/execution/StepExecutor.js +109 -29
  75. package/dist/execution/StepExecutor.js.map +1 -1
  76. package/dist/execution/WorkflowExecutor.d.ts.map +1 -1
  77. package/dist/execution/WorkflowExecutor.js +31 -0
  78. package/dist/execution/WorkflowExecutor.js.map +1 -1
  79. package/dist/explanation/ExplanationGenerator.d.ts +105 -0
  80. package/dist/explanation/ExplanationGenerator.d.ts.map +1 -0
  81. package/dist/explanation/ExplanationGenerator.js +814 -0
  82. package/dist/explanation/ExplanationGenerator.js.map +1 -0
  83. package/dist/explanation/ExplanationLogger.d.ts +50 -0
  84. package/dist/explanation/ExplanationLogger.d.ts.map +1 -0
  85. package/dist/explanation/ExplanationLogger.js +284 -0
  86. package/dist/explanation/ExplanationLogger.js.map +1 -0
  87. package/dist/explanation/ExplanationTypes.d.ts +252 -0
  88. package/dist/explanation/ExplanationTypes.d.ts.map +1 -0
  89. package/dist/explanation/ExplanationTypes.js +10 -0
  90. package/dist/explanation/ExplanationTypes.js.map +1 -0
  91. package/dist/explanation/index.d.ts +12 -0
  92. package/dist/explanation/index.d.ts.map +1 -0
  93. package/dist/explanation/index.js +11 -0
  94. package/dist/explanation/index.js.map +1 -0
  95. package/dist/hooks/HookManager.d.ts.map +1 -1
  96. package/dist/hooks/HookManager.js +8 -0
  97. package/dist/hooks/HookManager.js.map +1 -1
  98. package/dist/index.d.ts +3 -0
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +2 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/lifecycle/ShutdownManager.d.ts.map +1 -1
  103. package/dist/lifecycle/ShutdownManager.js +22 -9
  104. package/dist/lifecycle/ShutdownManager.js.map +1 -1
  105. package/dist/lifecycle/StartupManager.d.ts.map +1 -1
  106. package/dist/lifecycle/StartupManager.js +16 -5
  107. package/dist/lifecycle/StartupManager.js.map +1 -1
  108. package/dist/loader/WorkflowLoader.d.ts +83 -21
  109. package/dist/loader/WorkflowLoader.d.ts.map +1 -1
  110. package/dist/loader/WorkflowLoader.js +169 -55
  111. package/dist/loader/WorkflowLoader.js.map +1 -1
  112. package/dist/logging/EngineLogger.d.ts +492 -0
  113. package/dist/logging/EngineLogger.d.ts.map +1 -0
  114. package/dist/logging/EngineLogger.js +1170 -0
  115. package/dist/logging/EngineLogger.js.map +1 -0
  116. package/dist/logging/LoggerManager.d.ts +49 -0
  117. package/dist/logging/LoggerManager.d.ts.map +1 -0
  118. package/dist/logging/LoggerManager.js +94 -0
  119. package/dist/logging/LoggerManager.js.map +1 -0
  120. package/dist/logging/index.d.ts +2 -1
  121. package/dist/logging/index.d.ts.map +1 -1
  122. package/dist/logging/index.js +2 -3
  123. package/dist/logging/index.js.map +1 -1
  124. package/dist/parser/SchemaValidator.d.ts.map +1 -1
  125. package/dist/parser/SchemaValidator.js +8 -1
  126. package/dist/parser/SchemaValidator.js.map +1 -1
  127. package/dist/parser/StepParser.d.ts +6 -1
  128. package/dist/parser/StepParser.d.ts.map +1 -1
  129. package/dist/parser/StepParser.js +14 -1
  130. package/dist/parser/StepParser.js.map +1 -1
  131. package/dist/parser/WorkflowParser.d.ts.map +1 -1
  132. package/dist/parser/WorkflowParser.js +53 -28
  133. package/dist/parser/WorkflowParser.js.map +1 -1
  134. package/dist/scheduling/ScheduleParser.d.ts.map +1 -1
  135. package/dist/scheduling/ScheduleParser.js +7 -0
  136. package/dist/scheduling/ScheduleParser.js.map +1 -1
  137. package/dist/scheduling/Scheduler.d.ts.map +1 -1
  138. package/dist/scheduling/Scheduler.js +13 -0
  139. package/dist/scheduling/Scheduler.js.map +1 -1
  140. package/dist/types/log-types.d.ts +105 -0
  141. package/dist/types/log-types.d.ts.map +1 -0
  142. package/dist/types/log-types.js +42 -0
  143. package/dist/types/log-types.js.map +1 -0
  144. package/package.json +1 -1
  145. package/dist/core/EngineLogger.d.ts +0 -182
  146. package/dist/core/EngineLogger.d.ts.map +0 -1
  147. package/dist/core/EngineLogger.js +0 -293
  148. package/dist/core/EngineLogger.js.map +0 -1
  149. package/dist/logging/LogLevel.d.ts +0 -2
  150. package/dist/logging/LogLevel.d.ts.map +0 -1
  151. package/dist/logging/LogLevel.js +0 -2
  152. package/dist/logging/LogLevel.js.map +0 -1
  153. package/dist/logging/Logger.d.ts +0 -2
  154. package/dist/logging/Logger.d.ts.map +0 -1
  155. package/dist/logging/Logger.js +0 -2
  156. package/dist/logging/Logger.js.map +0 -1
@@ -1,21 +1,48 @@
1
1
  /**
2
2
  * Orbyt Error Codes
3
3
  *
4
- * Stable error codes for reliable error handling and documentation.
4
+ * Structured error codes for the Orbyt workflow execution engine.
5
+ * These codes are separate from ecosystem exit codes (process-level).
6
+ *
7
+ * ARCHITECTURE:
8
+ * ============
9
+ * - Error Codes (ORB-XX-NNN): Structured diagnostic codes for detailed error identification
10
+ * - Exit Codes (100-509): Process-level codes from @dev-ecosystem/core for shell scripts
11
+ *
12
+ * TWO-LAYER SYSTEM:
13
+ * ================
14
+ * 1. Exit Codes (@dev-ecosystem/core): Process termination codes for the whole ecosystem
15
+ * - Used by CLI, API, SDK to determine process exit status
16
+ * - Example: ExitCodes.INVALID_SCHEMA (103) for schema validation failures
17
+ *
18
+ * 2. Error Codes (This file): Detailed diagnostic codes specific to Orbyt
19
+ * - Used internally by engine for precise error identification
20
+ * - Maps to exit codes for process termination
21
+ * - Example: ORB-S-001 (unknown field) → ExitCodes.INVALID_SCHEMA
22
+ *
5
23
  * Format: ORB-[Category]-[Number]
6
24
  *
7
25
  * Categories:
8
- * - S: Schema/Structure errors
9
- * - V: Validation/Logic errors
10
- * - E: Execution errors
11
- * - R: Runtime errors
26
+ * - S: Schema/Structure errors (YAML syntax, field validation)
27
+ * - V: Validation/Logic errors (duplicate IDs, circular deps)
28
+ * - E: Execution errors (step failures, timeouts)
29
+ * - R: Runtime errors (file not found, permissions)
30
+ *
31
+ * ADDING NEW ERRORS:
32
+ * =================
33
+ * 1. Add error code enum value below
34
+ * 2. Add description in getErrorDescription()
35
+ * 3. Add exit code mapping in getExitCodeForError()
36
+ * 4. Add to appropriate error class (WorkflowError, StepError, etc.)
12
37
  *
13
38
  * @module errors
14
39
  */
40
+ import { ExitCodes } from '@dev-ecosystem/core';
15
41
  export var OrbytErrorCode;
16
42
  (function (OrbytErrorCode) {
17
43
  // ============================================================================
18
44
  // SCHEMA ERRORS (S) - Structure problems
45
+ // Exit Code: ExitCodes.INVALID_SCHEMA (103)
19
46
  // ============================================================================
20
47
  /** Unknown field in workflow definition */
21
48
  OrbytErrorCode["SCHEMA_UNKNOWN_FIELD"] = "ORB-S-001";
@@ -29,8 +56,11 @@ export var OrbytErrorCode;
29
56
  OrbytErrorCode["SCHEMA_PARSE_ERROR"] = "ORB-S-005";
30
57
  /** Invalid field format/pattern */
31
58
  OrbytErrorCode["SCHEMA_INVALID_FORMAT"] = "ORB-S-006";
59
+ /** Reserved field detected (security) */
60
+ OrbytErrorCode["SCHEMA_RESERVED_FIELD"] = "ORB-S-007";
32
61
  // ============================================================================
33
62
  // VALIDATION ERRORS (V) - Logic problems
63
+ // Exit Code: ExitCodes.VALIDATION_FAILED (105)
34
64
  // ============================================================================
35
65
  /** Duplicate step ID */
36
66
  OrbytErrorCode["VALIDATION_DUPLICATE_ID"] = "ORB-V-001";
@@ -48,8 +78,13 @@ export var OrbytErrorCode;
48
78
  OrbytErrorCode["VALIDATION_MISSING_INPUT"] = "ORB-V-007";
49
79
  /** Invalid adapter/action */
50
80
  OrbytErrorCode["VALIDATION_UNKNOWN_ADAPTER"] = "ORB-V-008";
81
+ /** Workflow has no steps */
82
+ OrbytErrorCode["VALIDATION_EMPTY_WORKFLOW"] = "ORB-V-009";
83
+ /** Invalid condition expression syntax */
84
+ OrbytErrorCode["VALIDATION_INVALID_CONDITION"] = "ORB-V-010";
51
85
  // ============================================================================
52
86
  // EXECUTION ERRORS (E) - Runtime failures
87
+ // Exit Code: ExitCodes.WORKFLOW_FAILED (300), ExitCodes.STEP_FAILED (301)
53
88
  // ============================================================================
54
89
  /** Step execution failed */
55
90
  OrbytErrorCode["EXECUTION_STEP_FAILED"] = "ORB-E-001";
@@ -59,8 +94,13 @@ export var OrbytErrorCode;
59
94
  OrbytErrorCode["EXECUTION_ADAPTER_ERROR"] = "ORB-E-003";
60
95
  /** Workflow cancelled */
61
96
  OrbytErrorCode["EXECUTION_CANCELLED"] = "ORB-E-004";
97
+ /** Step dependency failed */
98
+ OrbytErrorCode["EXECUTION_DEPENDENCY_FAILED"] = "ORB-E-005";
99
+ /** Conditional check failed */
100
+ OrbytErrorCode["EXECUTION_CONDITION_FAILED"] = "ORB-E-006";
62
101
  // ============================================================================
63
102
  // RUNTIME ERRORS (R) - System/Infrastructure
103
+ // Exit Code: ExitCodes.INTERNAL_ERROR (500), ExitCodes.FILESYSTEM_ERROR (506)
64
104
  // ============================================================================
65
105
  /** File not found */
66
106
  OrbytErrorCode["RUNTIME_FILE_NOT_FOUND"] = "ORB-R-001";
@@ -68,18 +108,51 @@ export var OrbytErrorCode;
68
108
  OrbytErrorCode["RUNTIME_PERMISSION_DENIED"] = "ORB-R-002";
69
109
  /** Internal engine error */
70
110
  OrbytErrorCode["RUNTIME_INTERNAL_ERROR"] = "ORB-R-003";
111
+ /** Adapter not registered */
112
+ OrbytErrorCode["RUNTIME_ADAPTER_NOT_FOUND"] = "ORB-R-004";
113
+ /** Resource exhausted */
114
+ OrbytErrorCode["RUNTIME_RESOURCE_EXHAUSTED"] = "ORB-R-005";
71
115
  })(OrbytErrorCode || (OrbytErrorCode = {}));
72
116
  /**
73
117
  * Error severity levels
118
+ * Used for prioritizing and determining execution control
119
+ *
120
+ * EXECUTION CONTROL BEHAVIOR:
121
+ * - CRITICAL/FATAL: Stop entire workflow execution immediately
122
+ * - ERROR/HIGH: Stop entire workflow execution (default for errors)
123
+ * - MEDIUM: Stop current step, attempt to continue to next step
124
+ * - LOW: Log warning and continue current step
125
+ * - WARNING: Log warning message, continue execution
126
+ * - INFO: Log informational message, continue execution
74
127
  */
75
128
  export var ErrorSeverity;
76
129
  (function (ErrorSeverity) {
130
+ /** Critical error - stop entire workflow immediately (unrecoverable) */
131
+ ErrorSeverity["CRITICAL"] = "critical";
132
+ /** Fatal error - stop entire workflow (severe failure) */
133
+ ErrorSeverity["FATAL"] = "fatal";
134
+ /** High severity error - stop entire workflow */
77
135
  ErrorSeverity["ERROR"] = "error";
136
+ /** Medium severity - stop current step, try to continue workflow */
137
+ ErrorSeverity["MEDIUM"] = "medium";
138
+ /** Low severity - log and continue current step */
139
+ ErrorSeverity["LOW"] = "low";
140
+ /** Warning - log warning message, continue execution */
78
141
  ErrorSeverity["WARNING"] = "warning";
142
+ /** Informational message */
79
143
  ErrorSeverity["INFO"] = "info";
80
144
  })(ErrorSeverity || (ErrorSeverity = {}));
81
145
  /**
82
146
  * Get human-readable category name from error code
147
+ *
148
+ * @param code - Orbyt error code
149
+ * @returns Category name (e.g., "Schema Error")
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const category = getErrorCategory(OrbytErrorCode.SCHEMA_UNKNOWN_FIELD);
154
+ * // Returns: "Schema Error"
155
+ * ```
83
156
  */
84
157
  export function getErrorCategory(code) {
85
158
  if (code.startsWith('ORB-S-'))
@@ -92,4 +165,324 @@ export function getErrorCategory(code) {
92
165
  return 'Runtime Error';
93
166
  return 'Unknown Error';
94
167
  }
168
+ /**
169
+ * Get detailed description for an error code
170
+ * Helps users understand what went wrong
171
+ *
172
+ * @param code - Orbyt error code
173
+ * @returns Human-readable description
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * const desc = getErrorDescription(OrbytErrorCode.SCHEMA_UNKNOWN_FIELD);
178
+ * // Returns: "Workflow contains an unknown or misspelled field name"
179
+ * ```
180
+ */
181
+ export function getErrorDescription(code) {
182
+ const descriptions = {
183
+ // Schema Errors
184
+ [OrbytErrorCode.SCHEMA_UNKNOWN_FIELD]: 'Workflow contains an unknown or misspelled field name. Check that all field names match the Orbyt schema.',
185
+ [OrbytErrorCode.SCHEMA_INVALID_TYPE]: 'Field has incorrect type (e.g., string instead of number). Review the expected type for this field.',
186
+ [OrbytErrorCode.SCHEMA_MISSING_FIELD]: 'Required field is missing from workflow definition. All required fields must be present.',
187
+ [OrbytErrorCode.SCHEMA_INVALID_ENUM]: 'Field value is not one of the allowed options. Check the valid values for this field.',
188
+ [OrbytErrorCode.SCHEMA_PARSE_ERROR]: 'YAML/JSON syntax error prevents parsing. Check for missing colons, incorrect indentation, or unmatched brackets.',
189
+ [OrbytErrorCode.SCHEMA_INVALID_FORMAT]: 'Field value does not match expected format or pattern (e.g., invalid ID format, malformed timeout).',
190
+ [OrbytErrorCode.SCHEMA_RESERVED_FIELD]: 'Workflow uses a reserved field that is controlled by the engine. Remove fields starting with "_" or other reserved names.',
191
+ // Validation Errors
192
+ [OrbytErrorCode.VALIDATION_DUPLICATE_ID]: 'Two or more steps have the same ID. Each step must have a unique identifier.',
193
+ [OrbytErrorCode.VALIDATION_UNKNOWN_STEP]: 'Step references another step that does not exist. Verify that all step references point to valid step IDs.',
194
+ [OrbytErrorCode.VALIDATION_CIRCULAR_DEPENDENCY]: 'Steps depend on each other in a circular way (A needs B, B needs A). Break the cycle.',
195
+ [OrbytErrorCode.VALIDATION_INVALID_ORDER]: 'Steps are not in valid execution order. Check the "needs" dependencies.',
196
+ [OrbytErrorCode.VALIDATION_FORWARD_REFERENCE]: 'Step references another step that executes later. Steps can only reference earlier steps.',
197
+ [OrbytErrorCode.VALIDATION_INVALID_VARIABLE]: 'Variable reference is invalid or undefined. Check variable syntax and availability.',
198
+ [OrbytErrorCode.VALIDATION_MISSING_INPUT]: 'Required input parameter is missing. Provide all required inputs.',
199
+ [OrbytErrorCode.VALIDATION_UNKNOWN_ADAPTER]: 'Adapter or action does not exist. Verify the "uses" field references a valid adapter.',
200
+ [OrbytErrorCode.VALIDATION_EMPTY_WORKFLOW]: 'Workflow has no steps defined. At least one step is required.',
201
+ [OrbytErrorCode.VALIDATION_INVALID_CONDITION]: 'Condition expression has invalid syntax. Check operators and variable references.',
202
+ // Execution Errors
203
+ [OrbytErrorCode.EXECUTION_STEP_FAILED]: 'Step execution failed during runtime. Check step configuration and adapter logs.',
204
+ [OrbytErrorCode.EXECUTION_TIMEOUT]: 'Step or workflow exceeded time limit. Consider increasing timeout or optimizing the step.',
205
+ [OrbytErrorCode.EXECUTION_ADAPTER_ERROR]: 'Adapter encountered an error during execution. Check adapter configuration and logs.',
206
+ [OrbytErrorCode.EXECUTION_CANCELLED]: 'Workflow was cancelled by user or system. Execution was interrupted intentionally.',
207
+ [OrbytErrorCode.EXECUTION_DEPENDENCY_FAILED]: 'Step could not run because a dependency failed. Fix the failing dependency first.',
208
+ [OrbytErrorCode.EXECUTION_CONDITION_FAILED]: 'Step condition evaluated to false. This is expected behavior when conditions are not met.',
209
+ // Runtime Errors
210
+ [OrbytErrorCode.RUNTIME_FILE_NOT_FOUND]: 'Required file or workflow does not exist at the specified path. Check file path and spelling.',
211
+ [OrbytErrorCode.RUNTIME_PERMISSION_DENIED]: 'Insufficient permissions to access resource. Check file permissions and user access rights.',
212
+ [OrbytErrorCode.RUNTIME_INTERNAL_ERROR]: 'Internal engine error occurred. This may indicate a bug - please report with details.',
213
+ [OrbytErrorCode.RUNTIME_ADAPTER_NOT_FOUND]: 'Adapter is not registered with the engine. Make sure the adapter is installed and loaded.',
214
+ [OrbytErrorCode.RUNTIME_RESOURCE_EXHAUSTED]: 'System resources exhausted (memory, CPU, disk). Reduce resource usage or increase limits.',
215
+ };
216
+ return descriptions[code] || 'Unknown error occurred';
217
+ }
218
+ /**
219
+ * Map Orbyt error code to ecosystem exit code
220
+ * Determines which process exit code should be used
221
+ *
222
+ * @param code - Orbyt error code
223
+ * @returns Exit code from @dev-ecosystem/core
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * const exitCode = getExitCodeForError(OrbytErrorCode.SCHEMA_UNKNOWN_FIELD);
228
+ * // Returns: ExitCodes.INVALID_SCHEMA (103)
229
+ * ```
230
+ */
231
+ export function getExitCodeForError(code) {
232
+ // Schema errors → INVALID_SCHEMA
233
+ if (code.startsWith('ORB-S-')) {
234
+ if (code === OrbytErrorCode.SCHEMA_PARSE_ERROR) {
235
+ return ExitCodes.INVALID_FORMAT;
236
+ }
237
+ if (code === OrbytErrorCode.SCHEMA_RESERVED_FIELD) {
238
+ return ExitCodes.SECURITY_VIOLATION;
239
+ }
240
+ return ExitCodes.INVALID_SCHEMA;
241
+ }
242
+ // Validation errors → VALIDATION_FAILED
243
+ if (code.startsWith('ORB-V-')) {
244
+ if (code === OrbytErrorCode.VALIDATION_CIRCULAR_DEPENDENCY) {
245
+ return ExitCodes.CIRCULAR_DEPENDENCY;
246
+ }
247
+ if (code === OrbytErrorCode.VALIDATION_MISSING_INPUT) {
248
+ return ExitCodes.MISSING_REQUIRED_INPUT;
249
+ }
250
+ return ExitCodes.VALIDATION_FAILED;
251
+ }
252
+ // Execution errors → specific execution codes
253
+ if (code.startsWith('ORB-E-')) {
254
+ if (code === OrbytErrorCode.EXECUTION_TIMEOUT) {
255
+ return ExitCodes.TIMEOUT;
256
+ }
257
+ if (code === OrbytErrorCode.EXECUTION_STEP_FAILED) {
258
+ return ExitCodes.STEP_FAILED;
259
+ }
260
+ if (code === OrbytErrorCode.EXECUTION_ADAPTER_ERROR) {
261
+ return ExitCodes.ADAPTER_FAILED;
262
+ }
263
+ if (code === OrbytErrorCode.EXECUTION_DEPENDENCY_FAILED) {
264
+ return ExitCodes.DEPENDENCY_FAILED;
265
+ }
266
+ return ExitCodes.WORKFLOW_FAILED;
267
+ }
268
+ // Runtime errors → system-level codes
269
+ if (code.startsWith('ORB-R-')) {
270
+ if (code === OrbytErrorCode.RUNTIME_FILE_NOT_FOUND) {
271
+ return ExitCodes.INVALID_FILE;
272
+ }
273
+ if (code === OrbytErrorCode.RUNTIME_PERMISSION_DENIED) {
274
+ return ExitCodes.PERMISSION_DENIED;
275
+ }
276
+ if (code === OrbytErrorCode.RUNTIME_ADAPTER_NOT_FOUND) {
277
+ return ExitCodes.MISSING_DEPENDENCY;
278
+ }
279
+ return ExitCodes.INTERNAL_ERROR;
280
+ }
281
+ return ExitCodes.INTERNAL_ERROR;
282
+ }
283
+ /**
284
+ * Check if an error code represents a user error (fixable by changing workflow)
285
+ * vs system error (infrastructure, permissions, etc.)
286
+ *
287
+ * User errors are problems with the workflow definition that the user can fix.
288
+ * System errors are infrastructure/runtime issues outside user control.
289
+ *
290
+ * @param code - Orbyt error code
291
+ * @returns True if error is user-fixable
292
+ *
293
+ * @example
294
+ * ```typescript
295
+ * if (isUserError(error.code)) {
296
+ * console.log('Fix your workflow definition');
297
+ * } else {
298
+ * console.log('Contact system administrator');
299
+ * }
300
+ * ```
301
+ */
302
+ export function isUserError(code) {
303
+ // Schema and validation errors are always user-fixable
304
+ return code.startsWith('ORB-S-') || code.startsWith('ORB-V-');
305
+ }
306
+ /**
307
+ * Check if an error code represents a retryable error
308
+ * Some errors (like timeouts, adapter failures) might succeed on retry.
309
+ * Others (like validation errors) will always fail.
310
+ *
311
+ * @param code - Orbyt error code
312
+ * @returns True if error might succeed on retry
313
+ *
314
+ * @example
315
+ * ```typescript
316
+ * if (isRetryable(error.code) && retryCount < maxRetries) {
317
+ * console.log('Retrying...');
318
+ * await retry();
319
+ * }
320
+ * ```
321
+ */
322
+ export function isRetryable(code) {
323
+ // Only specific execution and runtime errors are retryable
324
+ const retryableErrors = [
325
+ OrbytErrorCode.EXECUTION_TIMEOUT,
326
+ OrbytErrorCode.EXECUTION_ADAPTER_ERROR,
327
+ OrbytErrorCode.RUNTIME_RESOURCE_EXHAUSTED,
328
+ ];
329
+ return retryableErrors.includes(code);
330
+ }
331
+ /**
332
+ * Get suggested action for an error code
333
+ * Provides actionable guidance for users
334
+ *
335
+ * @param code - Orbyt error code
336
+ * @returns Suggested action to fix the error
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * const action = getSuggestedAction(OrbytErrorCode.SCHEMA_UNKNOWN_FIELD);
341
+ * console.log(action); // "Check field names against schema documentation"
342
+ * ```
343
+ */
344
+ export function getSuggestedAction(code) {
345
+ const actions = {
346
+ // Schema Errors
347
+ [OrbytErrorCode.SCHEMA_UNKNOWN_FIELD]: 'Check field names against schema documentation',
348
+ [OrbytErrorCode.SCHEMA_INVALID_TYPE]: 'Review field type requirements in schema',
349
+ [OrbytErrorCode.SCHEMA_MISSING_FIELD]: 'Add the missing required field',
350
+ [OrbytErrorCode.SCHEMA_INVALID_ENUM]: 'Use one of the allowed values',
351
+ [OrbytErrorCode.SCHEMA_PARSE_ERROR]: 'Fix YAML/JSON syntax errors',
352
+ [OrbytErrorCode.SCHEMA_INVALID_FORMAT]: 'Correct the field format (check regex patterns)',
353
+ [OrbytErrorCode.SCHEMA_RESERVED_FIELD]: 'Remove reserved fields (those starting with "_")',
354
+ // Validation Errors
355
+ [OrbytErrorCode.VALIDATION_DUPLICATE_ID]: 'Rename duplicate steps to have unique IDs',
356
+ [OrbytErrorCode.VALIDATION_UNKNOWN_STEP]: 'Fix step reference or add missing step',
357
+ [OrbytErrorCode.VALIDATION_CIRCULAR_DEPENDENCY]: 'Break the dependency cycle',
358
+ [OrbytErrorCode.VALIDATION_INVALID_ORDER]: 'Reorder steps or fix "needs" dependencies',
359
+ [OrbytErrorCode.VALIDATION_FORWARD_REFERENCE]: 'Ensure steps only reference earlier steps',
360
+ [OrbytErrorCode.VALIDATION_INVALID_VARIABLE]: 'Check variable name and availability',
361
+ [OrbytErrorCode.VALIDATION_MISSING_INPUT]: 'Provide the required input parameter',
362
+ [OrbytErrorCode.VALIDATION_UNKNOWN_ADAPTER]: 'Install adapter or fix "uses" field',
363
+ [OrbytErrorCode.VALIDATION_EMPTY_WORKFLOW]: 'Add at least one step to workflow',
364
+ [OrbytErrorCode.VALIDATION_INVALID_CONDITION]: 'Fix condition syntax or check variable references',
365
+ // Execution Errors
366
+ [OrbytErrorCode.EXECUTION_STEP_FAILED]: 'Check step configuration and logs',
367
+ [OrbytErrorCode.EXECUTION_TIMEOUT]: 'Increase timeout or optimize step',
368
+ [OrbytErrorCode.EXECUTION_ADAPTER_ERROR]: 'Check adapter configuration and logs',
369
+ [OrbytErrorCode.EXECUTION_CANCELLED]: 'Resume workflow or investigate cancellation',
370
+ [OrbytErrorCode.EXECUTION_DEPENDENCY_FAILED]: 'Fix the failing dependency step',
371
+ [OrbytErrorCode.EXECUTION_CONDITION_FAILED]: 'Review condition logic or accept skip',
372
+ // Runtime Errors
373
+ [OrbytErrorCode.RUNTIME_FILE_NOT_FOUND]: 'Check file path exists and is accessible',
374
+ [OrbytErrorCode.RUNTIME_PERMISSION_DENIED]: 'Check file permissions',
375
+ [OrbytErrorCode.RUNTIME_INTERNAL_ERROR]: 'Report bug with full error details',
376
+ [OrbytErrorCode.RUNTIME_ADAPTER_NOT_FOUND]: 'Install and register the adapter',
377
+ [OrbytErrorCode.RUNTIME_RESOURCE_EXHAUSTED]: 'Free up resources or increase limits',
378
+ };
379
+ return actions[code] || 'Review error details and check documentation';
380
+ }
381
+ /**
382
+ * Execution Control Actions
383
+ * Determines what action to take when error occurs
384
+ */
385
+ export var ExecutionControl;
386
+ (function (ExecutionControl) {
387
+ /** Stop entire workflow execution immediately */
388
+ ExecutionControl["STOP_WORKFLOW"] = "STOP_WORKFLOW";
389
+ /** Stop current step, try to continue to next step */
390
+ ExecutionControl["STOP_STEP"] = "STOP_STEP";
391
+ /** Continue execution, just log the issue */
392
+ ExecutionControl["CONTINUE"] = "CONTINUE";
393
+ })(ExecutionControl || (ExecutionControl = {}));
394
+ /**
395
+ * Get execution control action based on severity
396
+ * Determines whether to stop workflow, stop step, or continue
397
+ *
398
+ * @param severity - Error severity level
399
+ * @returns Execution control action
400
+ *
401
+ * @example
402
+ * ```typescript
403
+ * const action = getExecutionControl(ErrorSeverity.CRITICAL);
404
+ * // Returns: ExecutionControl.STOP_WORKFLOW
405
+ *
406
+ * const action2 = getExecutionControl(ErrorSeverity.MEDIUM);
407
+ * // Returns: ExecutionControl.STOP_STEP
408
+ * ```
409
+ */
410
+ export function getExecutionControl(severity) {
411
+ switch (severity) {
412
+ case ErrorSeverity.CRITICAL:
413
+ case ErrorSeverity.FATAL:
414
+ case ErrorSeverity.ERROR:
415
+ return ExecutionControl.STOP_WORKFLOW;
416
+ case ErrorSeverity.MEDIUM:
417
+ return ExecutionControl.STOP_STEP;
418
+ case ErrorSeverity.LOW:
419
+ case ErrorSeverity.WARNING:
420
+ case ErrorSeverity.INFO:
421
+ return ExecutionControl.CONTINUE;
422
+ default:
423
+ return ExecutionControl.STOP_WORKFLOW; // Safe default
424
+ }
425
+ }
426
+ /**
427
+ * Check if severity should stop workflow execution
428
+ *
429
+ * @param severity - Error severity level
430
+ * @returns True if workflow should stop
431
+ */
432
+ export function shouldStopWorkflow(severity) {
433
+ return getExecutionControl(severity) === ExecutionControl.STOP_WORKFLOW;
434
+ }
435
+ /**
436
+ * Check if severity should stop step execution
437
+ *
438
+ * @param severity - Error severity level
439
+ * @returns True if step should stop
440
+ */
441
+ export function shouldStopStep(severity) {
442
+ const control = getExecutionControl(severity);
443
+ return control === ExecutionControl.STOP_WORKFLOW || control === ExecutionControl.STOP_STEP;
444
+ }
445
+ /**
446
+ * Get severity level from error code
447
+ * Auto-determines appropriate severity for error code
448
+ *
449
+ * @param code - Orbyt error code
450
+ * @returns Appropriate severity level
451
+ */
452
+ export function getSeverityForErrorCode(code) {
453
+ // Critical errors (security violations, internal errors)
454
+ if (code === OrbytErrorCode.RUNTIME_INTERNAL_ERROR) {
455
+ return ErrorSeverity.CRITICAL;
456
+ }
457
+ if (code === OrbytErrorCode.RUNTIME_PERMISSION_DENIED) {
458
+ return ErrorSeverity.FATAL;
459
+ }
460
+ // Schema and validation errors are typically ERROR level
461
+ if (code.startsWith('ORB-S-') || code.startsWith('ORB-V-')) {
462
+ // But some validation errors are less severe
463
+ if (code === OrbytErrorCode.VALIDATION_FORWARD_REFERENCE) {
464
+ return ErrorSeverity.MEDIUM;
465
+ }
466
+ return ErrorSeverity.ERROR;
467
+ }
468
+ // Execution errors
469
+ if (code.startsWith('ORB-E-')) {
470
+ if (code === OrbytErrorCode.EXECUTION_TIMEOUT) {
471
+ return ErrorSeverity.ERROR;
472
+ }
473
+ if (code === OrbytErrorCode.EXECUTION_CONDITION_FAILED) {
474
+ return ErrorSeverity.LOW; // Conditions failing is often expected
475
+ }
476
+ return ErrorSeverity.MEDIUM; // Most execution errors can try next step
477
+ }
478
+ // Runtime errors
479
+ if (code.startsWith('ORB-R-')) {
480
+ if (code === OrbytErrorCode.RUNTIME_FILE_NOT_FOUND) {
481
+ return ErrorSeverity.MEDIUM;
482
+ }
483
+ return ErrorSeverity.ERROR;
484
+ }
485
+ // Default to ERROR for unknown codes
486
+ return ErrorSeverity.ERROR;
487
+ }
95
488
  //# sourceMappingURL=ErrorCodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorCodes.js","sourceRoot":"","sources":["../../src/errors/ErrorCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAN,IAAY,cA+EX;AA/ED,WAAY,cAAc;IACxB,+EAA+E;IAC/E,yCAAyC;IACzC,+EAA+E;IAE/E,2CAA2C;IAC3C,oDAAkC,CAAA;IAElC,yBAAyB;IACzB,mDAAiC,CAAA;IAEjC,6BAA6B;IAC7B,oDAAkC,CAAA;IAElC,yBAAyB;IACzB,mDAAiC,CAAA;IAEjC,iCAAiC;IACjC,kDAAgC,CAAA;IAEhC,mCAAmC;IACnC,qDAAmC,CAAA;IAEnC,+EAA+E;IAC/E,yCAAyC;IACzC,+EAA+E;IAE/E,wBAAwB;IACxB,uDAAqC,CAAA;IAErC,qCAAqC;IACrC,uDAAqC,CAAA;IAErC,mCAAmC;IACnC,8DAA4C,CAAA;IAE5C,yBAAyB;IACzB,wDAAsC,CAAA;IAEtC,uCAAuC;IACvC,4DAA0C,CAAA;IAE1C,iCAAiC;IACjC,2DAAyC,CAAA;IAEzC,6BAA6B;IAC7B,wDAAsC,CAAA;IAEtC,6BAA6B;IAC7B,0DAAwC,CAAA;IAExC,+EAA+E;IAC/E,0CAA0C;IAC1C,+EAA+E;IAE/E,4BAA4B;IAC5B,qDAAmC,CAAA;IAEnC,uBAAuB;IACvB,iDAA+B,CAAA;IAE/B,oBAAoB;IACpB,uDAAqC,CAAA;IAErC,yBAAyB;IACzB,mDAAiC,CAAA;IAEjC,+EAA+E;IAC/E,6CAA6C;IAC7C,+EAA+E;IAE/E,qBAAqB;IACrB,sDAAoC,CAAA;IAEpC,wBAAwB;IACxB,yDAAuC,CAAA;IAEvC,4BAA4B;IAC5B,sDAAoC,CAAA;AACtC,CAAC,EA/EW,cAAc,KAAd,cAAc,QA+EzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACzD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,eAAe,CAAC;IACtD,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"ErrorCodes.js","sourceRoot":"","sources":["../../src/errors/ErrorCodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Error Debugger (Smart Fix Suggestions)
3
+ *
4
+ * Analyzes errors and provides actionable fix suggestions.
5
+ * Makes debugging easy by suggesting concrete solutions.
6
+ *
7
+ * PHILOSOPHY:
8
+ * ==========
9
+ * Instead of just showing errors, guide users to fix them.
10
+ * Provide step-by-step solutions based on error context.
11
+ *
12
+ * USAGE:
13
+ * ======
14
+ * ```typescript
15
+ * // Get debug info for an error
16
+ * const debug = ErrorDebugger.analyze(error);
17
+ * console.log(debug.explanation);
18
+ * console.log(debug.fixSteps);
19
+ *
20
+ * // Get formatted debug output
21
+ * const output = ErrorDebugger.format(error);
22
+ * console.error(output);
23
+ * ```
24
+ *
25
+ * @module errors/debugger
26
+ */
27
+ import { OrbytError } from './OrbytError.js';
28
+ /**
29
+ * Debug information for an error
30
+ */
31
+ export interface ErrorDebugInfo {
32
+ /** Plain English explanation of what went wrong */
33
+ explanation: string;
34
+ /** Why this error occurred (root cause) */
35
+ cause: string;
36
+ /** Step-by-step fix instructions */
37
+ fixSteps: string[];
38
+ /** Common mistakes that lead to this error */
39
+ commonMistakes?: string[];
40
+ /** Related documentation links */
41
+ docsLinks?: string[];
42
+ /** Example of correct implementation */
43
+ example?: {
44
+ description: string;
45
+ code: string;
46
+ };
47
+ /** Whether this requires immediate action */
48
+ urgent: boolean;
49
+ /** Estimated time to fix */
50
+ estimatedFixTime?: string;
51
+ }
52
+ /**
53
+ * Error Debugger
54
+ *
55
+ * Smart system that analyzes errors and provides fix suggestions.
56
+ */
57
+ export declare class ErrorDebugger {
58
+ /**
59
+ * Analyze error and generate debug information
60
+ *
61
+ * @param error - OrbytError to analyze
62
+ * @returns Debug information with fix suggestions
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const debug = ErrorDebugger.analyze(error);
67
+ * console.log(debug.explanation);
68
+ * debug.fixSteps.forEach((step, i) => {
69
+ * console.log(`${i + 1}. ${step}`);
70
+ * });
71
+ * ```
72
+ */
73
+ static analyze(error: OrbytError): ErrorDebugInfo;
74
+ /**
75
+ * Format debug information for display
76
+ *
77
+ * @param error - Error to format
78
+ * @param useColors - Whether to use ANSI colors (default: true)
79
+ * @returns Formatted debug output
80
+ */
81
+ static format(error: OrbytError, useColors?: boolean): string;
82
+ /**
83
+ * Get base debug information for error code
84
+ */
85
+ private static getBaseDebugInfo;
86
+ /**
87
+ * Analyze error context for more specific information
88
+ */
89
+ private static analyzeContext;
90
+ /**
91
+ * Quick debug - one-line summary
92
+ *
93
+ * @param error - Error to summarize
94
+ * @returns One-line debug summary
95
+ */
96
+ static quickDebug(error: OrbytError): string;
97
+ }
98
+ //# sourceMappingURL=ErrorDebugger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorDebugger.d.ts","sourceRoot":"","sources":["../../src/errors/ErrorDebugger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IAEpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,wCAAwC;IACxC,OAAO,CAAC,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAEhB,4BAA4B;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc;IAwBjD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,GAAE,OAAc,GAAG,MAAM;IAqEnE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA4H/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IA+B7B;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAI7C"}