@orbytautomation/engine 0.3.0 → 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 (113) hide show
  1. package/dist/adapters/AdapterRegistry.d.ts.map +1 -1
  2. package/dist/adapters/AdapterRegistry.js +6 -0
  3. package/dist/adapters/AdapterRegistry.js.map +1 -1
  4. package/dist/context/VariableResolver.d.ts.map +1 -1
  5. package/dist/context/VariableResolver.js +7 -0
  6. package/dist/context/VariableResolver.js.map +1 -1
  7. package/dist/core/OrbytEngine.d.ts +19 -0
  8. package/dist/core/OrbytEngine.d.ts.map +1 -1
  9. package/dist/core/OrbytEngine.js +79 -3
  10. package/dist/core/OrbytEngine.js.map +1 -1
  11. package/dist/core/index.d.ts +1 -1
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/core/index.js +1 -1
  14. package/dist/core/index.js.map +1 -1
  15. package/dist/errors/ErrorDebugger.d.ts.map +1 -1
  16. package/dist/errors/ErrorDebugger.js +7 -0
  17. package/dist/errors/ErrorDebugger.js.map +1 -1
  18. package/dist/errors/ErrorDetector.d.ts.map +1 -1
  19. package/dist/errors/ErrorDetector.js +12 -0
  20. package/dist/errors/ErrorDetector.js.map +1 -1
  21. package/dist/errors/ErrorFormatter.d.ts +1 -1
  22. package/dist/errors/ErrorFormatter.d.ts.map +1 -1
  23. package/dist/execution/ExecutionEngine.d.ts.map +1 -1
  24. package/dist/execution/ExecutionEngine.js +36 -6
  25. package/dist/execution/ExecutionEngine.js.map +1 -1
  26. package/dist/execution/ExecutionPlan.d.ts.map +1 -1
  27. package/dist/execution/ExecutionPlan.js +21 -1
  28. package/dist/execution/ExecutionPlan.js.map +1 -1
  29. package/dist/execution/IntentAnalyzer.d.ts.map +1 -1
  30. package/dist/execution/IntentAnalyzer.js +20 -0
  31. package/dist/execution/IntentAnalyzer.js.map +1 -1
  32. package/dist/execution/StepExecutor.d.ts.map +1 -1
  33. package/dist/execution/StepExecutor.js +109 -29
  34. package/dist/execution/StepExecutor.js.map +1 -1
  35. package/dist/execution/WorkflowExecutor.d.ts.map +1 -1
  36. package/dist/execution/WorkflowExecutor.js +31 -0
  37. package/dist/execution/WorkflowExecutor.js.map +1 -1
  38. package/dist/explanation/ExplanationGenerator.d.ts +105 -0
  39. package/dist/explanation/ExplanationGenerator.d.ts.map +1 -0
  40. package/dist/explanation/ExplanationGenerator.js +814 -0
  41. package/dist/explanation/ExplanationGenerator.js.map +1 -0
  42. package/dist/explanation/ExplanationLogger.d.ts +50 -0
  43. package/dist/explanation/ExplanationLogger.d.ts.map +1 -0
  44. package/dist/explanation/ExplanationLogger.js +284 -0
  45. package/dist/explanation/ExplanationLogger.js.map +1 -0
  46. package/dist/explanation/ExplanationTypes.d.ts +252 -0
  47. package/dist/explanation/ExplanationTypes.d.ts.map +1 -0
  48. package/dist/explanation/ExplanationTypes.js +10 -0
  49. package/dist/explanation/ExplanationTypes.js.map +1 -0
  50. package/dist/explanation/index.d.ts +12 -0
  51. package/dist/explanation/index.d.ts.map +1 -0
  52. package/dist/explanation/index.js +11 -0
  53. package/dist/explanation/index.js.map +1 -0
  54. package/dist/hooks/HookManager.d.ts.map +1 -1
  55. package/dist/hooks/HookManager.js +8 -0
  56. package/dist/hooks/HookManager.js.map +1 -1
  57. package/dist/index.d.ts +3 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +2 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/lifecycle/ShutdownManager.d.ts.map +1 -1
  62. package/dist/lifecycle/ShutdownManager.js +22 -9
  63. package/dist/lifecycle/ShutdownManager.js.map +1 -1
  64. package/dist/lifecycle/StartupManager.d.ts.map +1 -1
  65. package/dist/lifecycle/StartupManager.js +16 -5
  66. package/dist/lifecycle/StartupManager.js.map +1 -1
  67. package/dist/loader/WorkflowLoader.d.ts +1 -1
  68. package/dist/loader/WorkflowLoader.d.ts.map +1 -1
  69. package/dist/logging/EngineLogger.d.ts +492 -0
  70. package/dist/logging/EngineLogger.d.ts.map +1 -0
  71. package/dist/logging/EngineLogger.js +1170 -0
  72. package/dist/logging/EngineLogger.js.map +1 -0
  73. package/dist/logging/LoggerManager.d.ts +49 -0
  74. package/dist/logging/LoggerManager.d.ts.map +1 -0
  75. package/dist/logging/LoggerManager.js +94 -0
  76. package/dist/logging/LoggerManager.js.map +1 -0
  77. package/dist/logging/index.d.ts +2 -1
  78. package/dist/logging/index.d.ts.map +1 -1
  79. package/dist/logging/index.js +2 -3
  80. package/dist/logging/index.js.map +1 -1
  81. package/dist/parser/SchemaValidator.d.ts.map +1 -1
  82. package/dist/parser/SchemaValidator.js +6 -0
  83. package/dist/parser/SchemaValidator.js.map +1 -1
  84. package/dist/parser/StepParser.d.ts +6 -1
  85. package/dist/parser/StepParser.d.ts.map +1 -1
  86. package/dist/parser/StepParser.js +14 -1
  87. package/dist/parser/StepParser.js.map +1 -1
  88. package/dist/parser/WorkflowParser.d.ts.map +1 -1
  89. package/dist/parser/WorkflowParser.js +53 -28
  90. package/dist/parser/WorkflowParser.js.map +1 -1
  91. package/dist/scheduling/ScheduleParser.d.ts.map +1 -1
  92. package/dist/scheduling/ScheduleParser.js +7 -0
  93. package/dist/scheduling/ScheduleParser.js.map +1 -1
  94. package/dist/scheduling/Scheduler.d.ts.map +1 -1
  95. package/dist/scheduling/Scheduler.js +13 -0
  96. package/dist/scheduling/Scheduler.js.map +1 -1
  97. package/dist/types/log-types.d.ts +105 -0
  98. package/dist/types/log-types.d.ts.map +1 -0
  99. package/dist/types/log-types.js +42 -0
  100. package/dist/types/log-types.js.map +1 -0
  101. package/package.json +1 -1
  102. package/dist/core/EngineLogger.d.ts +0 -182
  103. package/dist/core/EngineLogger.d.ts.map +0 -1
  104. package/dist/core/EngineLogger.js +0 -293
  105. package/dist/core/EngineLogger.js.map +0 -1
  106. package/dist/logging/LogLevel.d.ts +0 -2
  107. package/dist/logging/LogLevel.d.ts.map +0 -1
  108. package/dist/logging/LogLevel.js +0 -2
  109. package/dist/logging/LogLevel.js.map +0 -1
  110. package/dist/logging/Logger.d.ts +0 -2
  111. package/dist/logging/Logger.d.ts.map +0 -1
  112. package/dist/logging/Logger.js +0 -2
  113. package/dist/logging/Logger.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplanationGenerator.js","sourceRoot":"","sources":["../../src/explanation/ExplanationGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Explanation Logger
3
+ *
4
+ * Integrates explanation generation with EngineLogger to provide
5
+ * full transparency into workflow execution plans.
6
+ *
7
+ * This module ensures that explanations are ALWAYS logged before
8
+ * execution begins, regardless of whether the user explicitly
9
+ * requests an explanation.
10
+ *
11
+ * @module explanation
12
+ */
13
+ import type { ExecutionExplanation, ExplanationEvent } from './ExplanationTypes.js';
14
+ /**
15
+ * Explanation Logger
16
+ *
17
+ * Formats and logs execution explanations through EngineLogger.
18
+ * Called automatically before every workflow execution.
19
+ */
20
+ export declare class ExplanationLogger {
21
+ /**
22
+ * Log a complete workflow explanation
23
+ *
24
+ * @param explanation - The execution explanation to log
25
+ * @param level - Log level ('info' or 'debug')
26
+ * @returns The explanation event created for this log
27
+ */
28
+ static log(explanation: ExecutionExplanation, level?: 'info' | 'debug'): ExplanationEvent;
29
+ /**
30
+ * Log individual steps with proper formatting
31
+ */
32
+ private static logSteps;
33
+ /**
34
+ * Log a compact explanation (single line summary)
35
+ *
36
+ * Useful for quick overview without detailed breakdown.
37
+ *
38
+ * @returns The explanation event created for this log
39
+ */
40
+ static logCompact(explanation: ExecutionExplanation): ExplanationEvent;
41
+ /**
42
+ * Log explanation as structured JSON
43
+ *
44
+ * Useful for machine-readable output or debugging.
45
+ *
46
+ * @returns The explanation event created for this log
47
+ */
48
+ static logJSON(explanation: ExecutionExplanation): ExplanationEvent;
49
+ }
50
+ //# sourceMappingURL=ExplanationLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplanationLogger.d.ts","sourceRoot":"","sources":["../../src/explanation/ExplanationLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGpF;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CACN,WAAW,EAAE,oBAAoB,EACjC,KAAK,GAAE,MAAM,GAAG,OAAgB,GACjC,gBAAgB;IAkLnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAgEvB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACb,WAAW,EAAE,oBAAoB,GAClC,gBAAgB;IAuBnB;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CACV,WAAW,EAAE,oBAAoB,GAClC,gBAAgB;CAkBtB"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Explanation Logger
3
+ *
4
+ * Integrates explanation generation with EngineLogger to provide
5
+ * full transparency into workflow execution plans.
6
+ *
7
+ * This module ensures that explanations are ALWAYS logged before
8
+ * execution begins, regardless of whether the user explicitly
9
+ * requests an explanation.
10
+ *
11
+ * @module explanation
12
+ */
13
+ import { LoggerManager } from '../logging/LoggerManager.js';
14
+ /**
15
+ * Explanation Logger
16
+ *
17
+ * Formats and logs execution explanations through EngineLogger.
18
+ * Called automatically before every workflow execution.
19
+ */
20
+ export class ExplanationLogger {
21
+ /**
22
+ * Log a complete workflow explanation
23
+ *
24
+ * @param explanation - The execution explanation to log
25
+ * @param level - Log level ('info' or 'debug')
26
+ * @returns The explanation event created for this log
27
+ */
28
+ static log(explanation, level = 'info') {
29
+ const logger = LoggerManager.getLogger();
30
+ // Create structured explanation event
31
+ const event = {
32
+ type: 'explanation',
33
+ timestamp: new Date(),
34
+ explanation,
35
+ };
36
+ // Log workflow overview
37
+ const logMethod = level === 'info' ? logger.info.bind(logger) : logger.debug.bind(logger);
38
+ logMethod('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
39
+ logMethod('šŸ“‹ WORKFLOW EXECUTION PLAN');
40
+ logMethod('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
41
+ // Workflow metadata
42
+ logMethod(`Workflow: ${explanation.workflowName}`);
43
+ if (explanation.description) {
44
+ logMethod(`Description: ${explanation.description}`);
45
+ }
46
+ logMethod(`Version: ${explanation.version} | Kind: ${explanation.kind}`);
47
+ if (explanation.owner) {
48
+ logMethod(`Owner: ${explanation.owner}`);
49
+ }
50
+ if (explanation.tags && explanation.tags.length > 0) {
51
+ logMethod(`Tags: ${explanation.tags.join(', ')}`);
52
+ }
53
+ logMethod('');
54
+ // Execution strategy
55
+ logMethod(`āš™ļø Execution Strategy: ${explanation.executionStrategy.toUpperCase()}`);
56
+ logMethod(` Total Steps: ${explanation.stepCount}`);
57
+ if (explanation.complexity) {
58
+ logMethod(` Max Depth: ${explanation.complexity.maxDepth}`);
59
+ logMethod(` Parallelizable: ${explanation.complexity.parallelizableSteps} steps`);
60
+ logMethod(` Sequential: ${explanation.complexity.sequentialSteps} steps`);
61
+ }
62
+ logMethod('');
63
+ // Cycle detection warning
64
+ if (explanation.hasCycles) {
65
+ logger.warn('āš ļø CIRCULAR DEPENDENCIES DETECTED!');
66
+ if (explanation.cycles) {
67
+ for (const cycle of explanation.cycles) {
68
+ logger.warn(` Cycle: ${cycle.join(' → ')}`);
69
+ }
70
+ }
71
+ logger.warn(' This workflow cannot be executed safely.');
72
+ logMethod('');
73
+ }
74
+ // Adapters used
75
+ if (explanation.adaptersUsed.length > 0) {
76
+ logMethod('šŸ”Œ Adapters:');
77
+ for (const adapter of explanation.adaptersUsed) {
78
+ const actions = explanation.adapterActions?.[adapter] || [];
79
+ logMethod(` ${adapter}: ${actions.join(', ')}`);
80
+ }
81
+ logMethod('');
82
+ }
83
+ // Inputs
84
+ if (explanation.requiredInputs && explanation.requiredInputs.length > 0) {
85
+ logMethod('šŸ“„ Required Inputs:');
86
+ for (const input of explanation.requiredInputs) {
87
+ logMethod(` • ${input} (required)`);
88
+ }
89
+ logMethod('');
90
+ }
91
+ if (explanation.optionalInputs && Object.keys(explanation.optionalInputs).length > 0) {
92
+ logMethod('šŸ“„ Optional Inputs:');
93
+ for (const [key, value] of Object.entries(explanation.optionalInputs)) {
94
+ logMethod(` • ${key} = ${JSON.stringify(value)} (default)`);
95
+ }
96
+ logMethod('');
97
+ }
98
+ // Secrets
99
+ if (explanation.secrets?.keys && explanation.secrets.keys.length > 0) {
100
+ logMethod('šŸ” Secrets:');
101
+ logMethod(` Vault: ${explanation.secrets.vault}`);
102
+ for (const key of explanation.secrets.keys) {
103
+ logMethod(` • ${key}`);
104
+ }
105
+ logMethod('');
106
+ }
107
+ // ============================================================================
108
+ // HIGH PRIORITY FEATURES
109
+ // ============================================================================
110
+ // Execution Time Estimation
111
+ if (explanation.timeEstimation) {
112
+ logMethod('ā±ļø Time Estimation:');
113
+ const { total, criticalPath, bottlenecks } = explanation.timeEstimation;
114
+ logMethod(` Total Time: ${total.min}-${total.max}ms (avg: ${total.avg}ms)`);
115
+ logMethod(` Critical Path: ${criticalPath.steps.join(' → ')} (${criticalPath.duration}ms)`);
116
+ if (bottlenecks.length > 0) {
117
+ logMethod(` Bottlenecks:`);
118
+ for (const bottleneck of bottlenecks) {
119
+ logMethod(` • ${bottleneck.step}: ${bottleneck.reason} (impact: ${bottleneck.impact}ms)`);
120
+ }
121
+ }
122
+ logMethod('');
123
+ }
124
+ // Data Flow Summary
125
+ if (explanation.dataFlow && explanation.dataFlow.length > 0) {
126
+ logMethod('šŸ”„ Data Flow:');
127
+ const stepsWithExternalInputs = explanation.dataFlow.filter(df => df.inputs.some(i => i.source === 'workflow.inputs'));
128
+ const stepsWithOutputs = explanation.dataFlow.filter(df => df.outputs.length > 0);
129
+ logMethod(` ${stepsWithExternalInputs.length} steps use workflow inputs`);
130
+ logMethod(` ${stepsWithOutputs.length} steps produce outputs`);
131
+ const unresolved = explanation.dataFlow.filter(df => df.hasUnresolvedDependencies);
132
+ if (unresolved.length > 0) {
133
+ logMethod(` āš ļø ${unresolved.length} steps have unresolved dependencies`);
134
+ }
135
+ logMethod('');
136
+ }
137
+ // Conditional Paths Summary
138
+ if (explanation.conditionalPaths) {
139
+ logMethod('šŸ”€ Conditional Paths:');
140
+ const { totalPaths, conditionalSteps, alwaysExecutes } = explanation.conditionalPaths;
141
+ logMethod(` Total Possible Paths: ${totalPaths}`);
142
+ logMethod(` Conditional Steps: ${conditionalSteps.length}`);
143
+ logMethod(` Always Execute: ${alwaysExecutes.length} steps`);
144
+ if (conditionalSteps.length > 0) {
145
+ logMethod(` Conditional:`);
146
+ for (const cs of conditionalSteps) {
147
+ logMethod(` • ${cs.step}: ${cs.condition}`);
148
+ }
149
+ }
150
+ logMethod('');
151
+ }
152
+ // Steps
153
+ logMethod('šŸ“ Execution Steps:\n');
154
+ this.logSteps(explanation, level);
155
+ // Outputs
156
+ if (explanation.outputs) {
157
+ logMethod('\nšŸ“¤ Expected Outputs:');
158
+ for (const [key, value] of Object.entries(explanation.outputs)) {
159
+ logMethod(` • ${key}: ${JSON.stringify(value)}`);
160
+ }
161
+ logMethod('');
162
+ }
163
+ // Policies
164
+ if (explanation.policies) {
165
+ logMethod('šŸ›”ļø Policies:');
166
+ if (explanation.policies.failure) {
167
+ logMethod(` Failure: ${explanation.policies.failure}`);
168
+ }
169
+ if (explanation.policies.concurrency) {
170
+ logMethod(` Concurrency: ${explanation.policies.concurrency}`);
171
+ }
172
+ if (explanation.policies.sandbox) {
173
+ logMethod(` Sandbox: ${explanation.policies.sandbox}`);
174
+ }
175
+ logMethod('');
176
+ }
177
+ logMethod('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
178
+ // Return the structured event
179
+ return event;
180
+ }
181
+ /**
182
+ * Log individual steps with proper formatting
183
+ */
184
+ static logSteps(explanation, level) {
185
+ const logger = LoggerManager.getLogger();
186
+ const logMethod = level === 'info' ? logger.info.bind(logger) : logger.debug.bind(logger);
187
+ for (let i = 0; i < explanation.steps.length; i++) {
188
+ const step = explanation.steps[i];
189
+ const stepNum = i + 1;
190
+ // Step header
191
+ logMethod(` ${stepNum}. ${step.name} (${step.id})`);
192
+ logMethod(` Uses: ${step.uses}`);
193
+ // Dependencies
194
+ if (step.needs.length > 0) {
195
+ logMethod(` Needs: ${step.needs.join(', ')}`);
196
+ }
197
+ // Conditions
198
+ if (step.when) {
199
+ logMethod(` When: ${step.when}`);
200
+ }
201
+ // Configuration
202
+ const configs = [];
203
+ if (step.timeout) {
204
+ configs.push(`timeout=${step.timeout}ms`);
205
+ }
206
+ if (step.retry) {
207
+ configs.push(`retry.max=${step.retry.max}`);
208
+ if (step.retry.backoff) {
209
+ configs.push(`retry.backoff=${step.retry.backoff}`);
210
+ }
211
+ }
212
+ if (step.continueOnError !== undefined) {
213
+ configs.push(`continueOnError=${step.continueOnError}`);
214
+ }
215
+ if (configs.length > 0) {
216
+ logMethod(` Config: ${configs.join(', ')}`);
217
+ }
218
+ // Inputs referenced
219
+ if (step.inputsReferenced && step.inputsReferenced.length > 0) {
220
+ logMethod(` Inputs: ${step.inputsReferenced.join(', ')}`);
221
+ }
222
+ // Secrets used
223
+ if (step.secretsUsed && step.secretsUsed.length > 0) {
224
+ logMethod(` Secrets: ${step.secretsUsed.join(', ')}`);
225
+ }
226
+ // Outputs
227
+ if (step.outputs && Object.keys(step.outputs).length > 0) {
228
+ const outputKeys = Object.keys(step.outputs);
229
+ logMethod(` Outputs: ${outputKeys.join(', ')}`);
230
+ }
231
+ logMethod(''); // Blank line between steps
232
+ }
233
+ }
234
+ /**
235
+ * Log a compact explanation (single line summary)
236
+ *
237
+ * Useful for quick overview without detailed breakdown.
238
+ *
239
+ * @returns The explanation event created for this log
240
+ */
241
+ static logCompact(explanation) {
242
+ const logger = LoggerManager.getLogger();
243
+ const summary = [
244
+ `Workflow: ${explanation.workflowName}`,
245
+ `${explanation.stepCount} steps`,
246
+ `${explanation.executionStrategy}`,
247
+ `${explanation.adaptersUsed.length} adapters`,
248
+ ];
249
+ if (explanation.hasCycles) {
250
+ summary.push('āš ļø HAS CYCLES');
251
+ }
252
+ logger.info(`šŸ“‹ ${summary.join(' | ')}`);
253
+ // Return the structured event
254
+ return {
255
+ type: 'explanation',
256
+ timestamp: new Date(),
257
+ explanation,
258
+ };
259
+ }
260
+ /**
261
+ * Log explanation as structured JSON
262
+ *
263
+ * Useful for machine-readable output or debugging.
264
+ *
265
+ * @returns The explanation event created for this log
266
+ */
267
+ static logJSON(explanation) {
268
+ const logger = LoggerManager.getLogger();
269
+ // Create structured explanation event
270
+ const event = {
271
+ type: 'explanation',
272
+ timestamp: new Date(),
273
+ explanation,
274
+ };
275
+ logger.info('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
276
+ logger.info('šŸ“‹ WORKFLOW EXECUTION PLAN (JSON)');
277
+ logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
278
+ logger.info(JSON.stringify(event, null, 2));
279
+ logger.info('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
280
+ // Return the structured event
281
+ return event;
282
+ }
283
+ }
284
+ //# sourceMappingURL=ExplanationLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplanationLogger.js","sourceRoot":"","sources":["../../src/explanation/ExplanationLogger.ts"],"names":[],"mappings":"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"}