@emmvish/stable-request 2.8.5 → 3.0.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 (135) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1153 -2319
  3. package/dist/constants/index.d.ts +0 -10
  4. package/dist/constants/index.d.ts.map +1 -1
  5. package/dist/constants/index.js +0 -113
  6. package/dist/constants/index.js.map +1 -1
  7. package/dist/core/index.d.ts +0 -5
  8. package/dist/core/index.d.ts.map +1 -1
  9. package/dist/core/index.js +0 -5
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/enums/index.d.ts +0 -37
  12. package/dist/enums/index.d.ts.map +1 -1
  13. package/dist/enums/index.js +0 -43
  14. package/dist/enums/index.js.map +1 -1
  15. package/dist/index.d.ts +4 -4
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +18 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/types/index.d.ts +94 -1157
  20. package/dist/types/index.d.ts.map +1 -1
  21. package/dist/utilities/index.d.ts +0 -18
  22. package/dist/utilities/index.d.ts.map +1 -1
  23. package/dist/utilities/index.js +0 -18
  24. package/dist/utilities/index.js.map +1 -1
  25. package/dist/utilities/infrastructure-persistence.d.ts +0 -1
  26. package/dist/utilities/infrastructure-persistence.d.ts.map +1 -1
  27. package/dist/utilities/infrastructure-persistence.js +12 -15
  28. package/dist/utilities/infrastructure-persistence.js.map +1 -1
  29. package/dist/utilities/metrics-aggregator.d.ts +2 -13
  30. package/dist/utilities/metrics-aggregator.d.ts.map +1 -1
  31. package/dist/utilities/metrics-aggregator.js +9 -251
  32. package/dist/utilities/metrics-aggregator.js.map +1 -1
  33. package/dist/utilities/metrics-validator.d.ts +6 -76
  34. package/dist/utilities/metrics-validator.d.ts.map +1 -1
  35. package/dist/utilities/metrics-validator.js +12 -181
  36. package/dist/utilities/metrics-validator.js.map +1 -1
  37. package/dist/utilities/validate-trial-mode-probabilities.js +2 -2
  38. package/dist/utilities/validate-trial-mode-probabilities.js.map +1 -1
  39. package/package.json +20 -24
  40. package/dist/core/stable-api-gateway.d.ts +0 -4
  41. package/dist/core/stable-api-gateway.d.ts.map +0 -1
  42. package/dist/core/stable-api-gateway.js +0 -146
  43. package/dist/core/stable-api-gateway.js.map +0 -1
  44. package/dist/core/stable-function.d.ts +0 -11
  45. package/dist/core/stable-function.d.ts.map +0 -1
  46. package/dist/core/stable-function.js +0 -355
  47. package/dist/core/stable-function.js.map +0 -1
  48. package/dist/core/stable-scheduler.d.ts +0 -71
  49. package/dist/core/stable-scheduler.d.ts.map +0 -1
  50. package/dist/core/stable-scheduler.js +0 -782
  51. package/dist/core/stable-scheduler.js.map +0 -1
  52. package/dist/core/stable-workflow-graph.d.ts +0 -3
  53. package/dist/core/stable-workflow-graph.d.ts.map +0 -1
  54. package/dist/core/stable-workflow-graph.js +0 -5
  55. package/dist/core/stable-workflow-graph.js.map +0 -1
  56. package/dist/core/stable-workflow.d.ts +0 -3
  57. package/dist/core/stable-workflow.d.ts.map +0 -1
  58. package/dist/core/stable-workflow.js +0 -374
  59. package/dist/core/stable-workflow.js.map +0 -1
  60. package/dist/stable-runner/index.d.ts +0 -2
  61. package/dist/stable-runner/index.d.ts.map +0 -1
  62. package/dist/stable-runner/index.js +0 -324
  63. package/dist/stable-runner/index.js.map +0 -1
  64. package/dist/utilities/concurrency-limiter.d.ts +0 -46
  65. package/dist/utilities/concurrency-limiter.d.ts.map +0 -1
  66. package/dist/utilities/concurrency-limiter.js +0 -172
  67. package/dist/utilities/concurrency-limiter.js.map +0 -1
  68. package/dist/utilities/execute-branch-workflow.d.ts +0 -3
  69. package/dist/utilities/execute-branch-workflow.d.ts.map +0 -1
  70. package/dist/utilities/execute-branch-workflow.js +0 -736
  71. package/dist/utilities/execute-branch-workflow.js.map +0 -1
  72. package/dist/utilities/execute-concurrently.d.ts +0 -3
  73. package/dist/utilities/execute-concurrently.d.ts.map +0 -1
  74. package/dist/utilities/execute-concurrently.js +0 -258
  75. package/dist/utilities/execute-concurrently.js.map +0 -1
  76. package/dist/utilities/execute-gateway-item.d.ts +0 -6
  77. package/dist/utilities/execute-gateway-item.d.ts.map +0 -1
  78. package/dist/utilities/execute-gateway-item.js +0 -129
  79. package/dist/utilities/execute-gateway-item.js.map +0 -1
  80. package/dist/utilities/execute-non-linear-workflow.d.ts +0 -3
  81. package/dist/utilities/execute-non-linear-workflow.d.ts.map +0 -1
  82. package/dist/utilities/execute-non-linear-workflow.js +0 -486
  83. package/dist/utilities/execute-non-linear-workflow.js.map +0 -1
  84. package/dist/utilities/execute-phase.d.ts +0 -3
  85. package/dist/utilities/execute-phase.d.ts.map +0 -1
  86. package/dist/utilities/execute-phase.js +0 -132
  87. package/dist/utilities/execute-phase.js.map +0 -1
  88. package/dist/utilities/execute-sequentially.d.ts +0 -3
  89. package/dist/utilities/execute-sequentially.d.ts.map +0 -1
  90. package/dist/utilities/execute-sequentially.js +0 -49
  91. package/dist/utilities/execute-sequentially.js.map +0 -1
  92. package/dist/utilities/execute-with-timeout.d.ts +0 -6
  93. package/dist/utilities/execute-with-timeout.d.ts.map +0 -1
  94. package/dist/utilities/execute-with-timeout.js +0 -28
  95. package/dist/utilities/execute-with-timeout.js.map +0 -1
  96. package/dist/utilities/execute-workflow-graph.d.ts +0 -3
  97. package/dist/utilities/execute-workflow-graph.d.ts.map +0 -1
  98. package/dist/utilities/execute-workflow-graph.js +0 -439
  99. package/dist/utilities/execute-workflow-graph.js.map +0 -1
  100. package/dist/utilities/extract-common-request-config-options.d.ts +0 -3
  101. package/dist/utilities/extract-common-request-config-options.d.ts.map +0 -1
  102. package/dist/utilities/extract-common-request-config-options.js +0 -12
  103. package/dist/utilities/extract-common-request-config-options.js.map +0 -1
  104. package/dist/utilities/fn-exec.d.ts +0 -3
  105. package/dist/utilities/fn-exec.d.ts.map +0 -1
  106. package/dist/utilities/fn-exec.js +0 -66
  107. package/dist/utilities/fn-exec.js.map +0 -1
  108. package/dist/utilities/function-cache-manager.d.ts +0 -32
  109. package/dist/utilities/function-cache-manager.d.ts.map +0 -1
  110. package/dist/utilities/function-cache-manager.js +0 -172
  111. package/dist/utilities/function-cache-manager.js.map +0 -1
  112. package/dist/utilities/prepare-api-function-options.d.ts +0 -3
  113. package/dist/utilities/prepare-api-function-options.d.ts.map +0 -1
  114. package/dist/utilities/prepare-api-function-options.js +0 -51
  115. package/dist/utilities/prepare-api-function-options.js.map +0 -1
  116. package/dist/utilities/prepare-api-request-data.d.ts +0 -3
  117. package/dist/utilities/prepare-api-request-data.d.ts.map +0 -1
  118. package/dist/utilities/prepare-api-request-data.js +0 -15
  119. package/dist/utilities/prepare-api-request-data.js.map +0 -1
  120. package/dist/utilities/prepare-api-request-options.d.ts +0 -3
  121. package/dist/utilities/prepare-api-request-options.d.ts.map +0 -1
  122. package/dist/utilities/prepare-api-request-options.js +0 -22
  123. package/dist/utilities/prepare-api-request-options.js.map +0 -1
  124. package/dist/utilities/rate-limiter.d.ts +0 -49
  125. package/dist/utilities/rate-limiter.d.ts.map +0 -1
  126. package/dist/utilities/rate-limiter.js +0 -197
  127. package/dist/utilities/rate-limiter.js.map +0 -1
  128. package/dist/utilities/validate-workflow-graph.d.ts +0 -7
  129. package/dist/utilities/validate-workflow-graph.d.ts.map +0 -1
  130. package/dist/utilities/validate-workflow-graph.js +0 -235
  131. package/dist/utilities/validate-workflow-graph.js.map +0 -1
  132. package/dist/utilities/workflow-graph-builder.d.ts +0 -37
  133. package/dist/utilities/workflow-graph-builder.d.ts.map +0 -1
  134. package/dist/utilities/workflow-graph-builder.js +0 -225
  135. package/dist/utilities/workflow-graph-builder.js.map +0 -1
@@ -1,439 +0,0 @@
1
- import { WorkflowNodeTypes, WorkflowEdgeConditionTypes } from '../enums/index.js';
2
- import { validateWorkflowGraph, detectUnreachableNodes, detectOrphanNodes, calculateGraphDepth } from './validate-workflow-graph.js';
3
- import { executePhase } from './execute-phase.js';
4
- import { executeBranchWorkflow } from './execute-branch-workflow.js';
5
- import { formatLogContext } from './format-log-context.js';
6
- import { safelyStringify } from './safely-stringify.js';
7
- import { MetricsAggregator } from './metrics-aggregator.js';
8
- import { executeWithPersistence } from './execute-with-persistence.js';
9
- import { MetricsValidator } from './metrics-validator.js';
10
- import { withBuffer } from './buffer-utils.js';
11
- export async function executeWorkflowGraph(graph, options) {
12
- const workflowId = options.workflowId || `workflow-graph-${Date.now()}`;
13
- if (options.maxTimeout) {
14
- const timeoutPromise = new Promise((_, reject) => {
15
- setTimeout(() => {
16
- const contextStr = `workflowId=${workflowId}`;
17
- reject(new Error(`stable-request: Workflow graph execution exceeded maxTimeout of ${options.maxTimeout}ms [${contextStr}]`));
18
- }, options.maxTimeout);
19
- });
20
- const executionPromise = executeWorkflowGraphInternal(graph, options, workflowId);
21
- return Promise.race([executionPromise, timeoutPromise]);
22
- }
23
- return executeWorkflowGraphInternal(graph, options, workflowId);
24
- }
25
- async function executeWorkflowGraphInternal(graph, options, workflowId) {
26
- const startTime = Date.now();
27
- let transactionLogs = options.transactionLogs;
28
- if (!transactionLogs && options.loadTransactionLogs) {
29
- try {
30
- transactionLogs = await options.loadTransactionLogs({ workflowId });
31
- options.transactionLogs = transactionLogs;
32
- }
33
- catch (e) {
34
- console.error(`stable-request: Failed to load transaction logs: ${e.message}`);
35
- }
36
- }
37
- const removeNodes = (nodeIds) => {
38
- if (nodeIds.length === 0) {
39
- return;
40
- }
41
- for (const nodeId of nodeIds) {
42
- graph.nodes.delete(nodeId);
43
- graph.edges.delete(nodeId);
44
- }
45
- for (const [fromId, edges] of graph.edges) {
46
- graph.edges.set(fromId, edges.filter(edge => !nodeIds.includes(edge.to)));
47
- }
48
- };
49
- if (options.validateGraph !== false) {
50
- const validation = validateWorkflowGraph(graph);
51
- if (!validation.valid) {
52
- throw new Error(`Invalid workflow graph:\n${validation.errors.join('\n')}`);
53
- }
54
- if (validation.warnings.length > 0 && options.logPhaseResults) {
55
- console.warn(`${formatLogContext({ workflowId })}stable-request: Workflow graph warnings:\n${validation.errors.join('\n')}`);
56
- }
57
- }
58
- if (options.optimizeExecution) {
59
- const unreachableNodes = detectUnreachableNodes(graph);
60
- const orphanNodes = detectOrphanNodes(graph);
61
- const nodesToRemove = Array.from(new Set([...unreachableNodes, ...orphanNodes]));
62
- if (nodesToRemove.length > 0 && options.logPhaseResults) {
63
- console.info(`${formatLogContext({ workflowId })}stable-request: Optimizing graph by removing nodes: ${nodesToRemove.join(', ')}`);
64
- }
65
- removeNodes(nodesToRemove);
66
- }
67
- if (options.maxGraphDepth !== undefined) {
68
- const depth = calculateGraphDepth(graph);
69
- if (depth > options.maxGraphDepth) {
70
- throw new Error(`${formatLogContext({ workflowId })}stable-request: Workflow graph depth ${depth} exceeds maxGraphDepth of ${options.maxGraphDepth}`);
71
- }
72
- }
73
- const results = new Map();
74
- const visited = new Set();
75
- const executionHistory = [];
76
- const phaseResults = [];
77
- const sharedBuffer = options.sharedBuffer;
78
- let totalRequests = 0;
79
- let successfulRequests = 0;
80
- let failedRequests = 0;
81
- let terminatedEarly = false;
82
- let terminationReason;
83
- const areDependenciesSatisfied = (nodeId, waitForNodes) => {
84
- return waitForNodes.every(depId => visited.has(depId));
85
- };
86
- const executeNode = async (nodeId) => {
87
- if (visited.has(nodeId) || terminatedEarly) {
88
- return;
89
- }
90
- const node = graph.nodes.get(nodeId);
91
- if (!node) {
92
- throw new Error(`${formatLogContext({ workflowId })}Node '${nodeId}' not found in graph`);
93
- }
94
- if (node.type === WorkflowNodeTypes.MERGE_POINT && node.waitForNodes) {
95
- if (!areDependenciesSatisfied(nodeId, node.waitForNodes)) {
96
- return;
97
- }
98
- visited.add(nodeId);
99
- if (options.logPhaseResults) {
100
- console.info(`${formatLogContext({ workflowId })}stable-request: Merge point '${nodeId}' synchronized (waited for: ${node.waitForNodes.join(', ')})`);
101
- }
102
- const edges = graph.edges.get(nodeId) || [];
103
- for (const edge of edges) {
104
- if (terminatedEarly)
105
- break;
106
- await executeNode(edge.to);
107
- }
108
- return;
109
- }
110
- switch (node.type) {
111
- case WorkflowNodeTypes.PHASE:
112
- await executePhaseNode(node, nodeId);
113
- break;
114
- case WorkflowNodeTypes.BRANCH:
115
- await executeBranchNode(node, nodeId);
116
- break;
117
- case WorkflowNodeTypes.CONDITIONAL:
118
- await executeConditionalNode(node, nodeId);
119
- return;
120
- case WorkflowNodeTypes.PARALLEL_GROUP:
121
- await executeParallelGroupNode(node, nodeId);
122
- break;
123
- }
124
- visited.add(nodeId);
125
- if (terminatedEarly) {
126
- return;
127
- }
128
- const edges = graph.edges.get(nodeId) || [];
129
- for (const edge of edges) {
130
- const condition = edge.condition;
131
- if (condition) {
132
- let shouldTraverse = false;
133
- if (condition.type === WorkflowEdgeConditionTypes.ALWAYS) {
134
- shouldTraverse = true;
135
- }
136
- else if (condition.type === WorkflowEdgeConditionTypes.SUCCESS) {
137
- const result = results.get(nodeId);
138
- shouldTraverse = result?.success === true;
139
- }
140
- else if (condition.type === WorkflowEdgeConditionTypes.FAILURE) {
141
- const result = results.get(nodeId);
142
- shouldTraverse = result?.success === false;
143
- }
144
- else if (condition.type === WorkflowEdgeConditionTypes.CUSTOM) {
145
- const evaluate = condition.evaluate;
146
- if (evaluate) {
147
- shouldTraverse = await withBuffer(sharedBuffer, (bufferState) => evaluate({
148
- results,
149
- sharedBuffer: bufferState,
150
- executionHistory,
151
- currentNodeId: nodeId
152
- }));
153
- }
154
- }
155
- if (!shouldTraverse) {
156
- continue;
157
- }
158
- }
159
- if (terminatedEarly)
160
- break;
161
- await executeNode(edge.to);
162
- }
163
- };
164
- const executePhaseNode = async (node, nodeId) => {
165
- if (!node.phase) {
166
- throw new Error(`${formatLogContext({ workflowId })}Phase node '${nodeId}' has no phase configuration`);
167
- }
168
- const phaseIndex = phaseResults.length;
169
- const phaseId = node.phase.id || nodeId;
170
- let executionNumber = 1;
171
- let shouldReplay = false;
172
- do {
173
- try {
174
- let phase = node.phase;
175
- if (options.prePhaseExecutionHook) {
176
- phase = await executeWithPersistence(options.prePhaseExecutionHook, {
177
- phase,
178
- phaseId,
179
- phaseIndex,
180
- workflowId,
181
- sharedBuffer,
182
- params: options.workflowHookParams?.prePhaseExecutionHookParams
183
- }, options.statePersistence, { workflowId, phaseId }, sharedBuffer);
184
- }
185
- const phaseResult = await executePhase(phase, phaseIndex, workflowId, options, options.requestGroups || [], options.logPhaseResults || false, options.handlePhaseCompletion || (async () => { }), options.maxSerializableChars || 1000, options.workflowHookParams || {}, sharedBuffer, undefined, options.prePhaseExecutionHook);
186
- results.set(nodeId, phaseResult);
187
- phaseResults.push(phaseResult);
188
- totalRequests += phaseResult.totalRequests;
189
- successfulRequests += phaseResult.successfulRequests;
190
- failedRequests += phaseResult.failedRequests;
191
- const executionRecord = {
192
- phaseId,
193
- phaseIndex,
194
- executionNumber,
195
- timestamp: phaseResult.timestamp,
196
- success: phaseResult.success,
197
- executionTime: phaseResult.executionTime
198
- };
199
- shouldReplay = false;
200
- if (node.phaseDecisionHook) {
201
- const decision = await executeWithPersistence(node.phaseDecisionHook, {
202
- workflowId,
203
- phaseResult,
204
- phaseId,
205
- phaseIndex,
206
- executionHistory,
207
- sharedBuffer,
208
- params: options.workflowHookParams?.handlePhaseDecisionParams
209
- }, options.statePersistence, { workflowId, phaseId }, sharedBuffer);
210
- executionRecord.decision = decision;
211
- if (decision.action === 'replay') {
212
- shouldReplay = true;
213
- executionNumber++;
214
- if (options.logPhaseResults) {
215
- console.info(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase decision - REPLAY (execution ${executionNumber})`);
216
- }
217
- }
218
- else if (decision.action === 'terminate') {
219
- terminatedEarly = true;
220
- terminationReason = decision.reason || 'Phase decision hook requested termination';
221
- if (options.logPhaseResults) {
222
- console.info(`${formatLogContext({ workflowId, phaseId })}stable-request: Phase decision - TERMINATE: ${terminationReason}`);
223
- }
224
- }
225
- }
226
- executionHistory.push(executionRecord);
227
- if (options.logPhaseResults) {
228
- const logContext = formatLogContext({
229
- workflowId,
230
- phaseId
231
- });
232
- console.info(`${logContext}stable-request: Phase completed - Success: ${phaseResult.success}, Requests: ${phaseResult.totalRequests}`);
233
- console.info(`${logContext}stable-request: ${safelyStringify(phaseResult, options.maxSerializableChars || 1000)}`);
234
- }
235
- if (options.handlePhaseCompletion) {
236
- await executeWithPersistence(options.handlePhaseCompletion, {
237
- phaseResult,
238
- phaseId,
239
- phaseIndex,
240
- workflowId,
241
- sharedBuffer,
242
- params: options.workflowHookParams?.handlePhaseCompletionParams
243
- }, options.statePersistence, { workflowId, phaseId }, sharedBuffer);
244
- }
245
- if (!phaseResult.success && options.stopOnFirstPhaseError) {
246
- terminatedEarly = true;
247
- terminationReason = `Phase '${phaseId}' failed`;
248
- shouldReplay = false;
249
- }
250
- }
251
- catch (error) {
252
- const errorResult = {
253
- workflowId,
254
- phaseId,
255
- phaseIndex,
256
- success: false,
257
- executionTime: Date.now() - startTime,
258
- timestamp: new Date().toISOString(),
259
- totalRequests: 0,
260
- successfulRequests: 0,
261
- failedRequests: 0,
262
- responses: [],
263
- error: error.message || 'Unknown error'
264
- };
265
- results.set(nodeId, errorResult);
266
- phaseResults.push(errorResult);
267
- terminatedEarly = true;
268
- terminationReason = error.message || `${formatLogContext({ workflowId })}stable-request: Unknown error during execution`;
269
- shouldReplay = false;
270
- }
271
- } while (shouldReplay && !terminatedEarly);
272
- };
273
- const executeBranchNode = async (node, nodeId) => {
274
- if (!node.branch) {
275
- throw new Error(`${formatLogContext({ workflowId })}Branch node '${nodeId}' has no branch configuration`);
276
- }
277
- const branchResult = await executeBranchWorkflow({
278
- branches: [node.branch],
279
- workflowId,
280
- commonGatewayOptions: options,
281
- requestGroups: options.requestGroups || [],
282
- logPhaseResults: options.logPhaseResults || false,
283
- handlePhaseCompletion: options.handlePhaseCompletion || (async () => { }),
284
- handlePhaseError: options.handlePhaseError || (async () => { }),
285
- handleBranchCompletion: options.handleBranchCompletion,
286
- preBranchExecutionHook: options.preBranchExecutionHook,
287
- prePhaseExecutionHook: options.prePhaseExecutionHook,
288
- maxSerializableChars: options.maxSerializableChars || 1000,
289
- workflowHookParams: options.workflowHookParams || {},
290
- sharedBuffer,
291
- stopOnFirstPhaseError: options.stopOnFirstPhaseError || false,
292
- maxWorkflowIterations: options.maxWorkflowIterations || 1000
293
- });
294
- if (branchResult.branchResults.length > 0) {
295
- const branch = branchResult.branchResults[0];
296
- const branchPhaseResult = {
297
- workflowId,
298
- branchId: branch.branchId,
299
- phaseId: `branch-${branch.branchId}`,
300
- phaseIndex: phaseResults.length,
301
- success: branch.success,
302
- executionTime: branch.executionTime,
303
- timestamp: new Date().toISOString(),
304
- totalRequests: branchResult.totalRequests,
305
- successfulRequests: branchResult.successfulRequests,
306
- failedRequests: branchResult.failedRequests,
307
- responses: []
308
- };
309
- results.set(nodeId, branchPhaseResult);
310
- phaseResults.push(branchPhaseResult);
311
- totalRequests += branchResult.totalRequests;
312
- successfulRequests += branchResult.successfulRequests;
313
- failedRequests += branchResult.failedRequests;
314
- phaseResults.push(...branchResult.allPhaseResults);
315
- }
316
- };
317
- const executeConditionalNode = async (node, nodeId) => {
318
- if (!node.condition) {
319
- throw new Error(`${formatLogContext({ workflowId })}Conditional node '${nodeId}' has no condition`);
320
- }
321
- visited.add(nodeId);
322
- const nextNodeId = await executeWithPersistence(node.condition.evaluate, {
323
- results,
324
- sharedBuffer,
325
- executionHistory,
326
- currentNodeId: nodeId
327
- }, options.statePersistence, { workflowId, phaseId: nodeId }, sharedBuffer);
328
- if (options.logPhaseResults) {
329
- console.info(`${formatLogContext({ workflowId, phaseId: nodeId })}stable-request: Conditional '${nodeId}' evaluated to: ${nextNodeId}`);
330
- }
331
- if (graph.nodes.has(nextNodeId)) {
332
- await executeNode(nextNodeId);
333
- }
334
- else {
335
- throw new Error(`${formatLogContext({ workflowId })}Conditional node '${nodeId}' evaluated to non-existent node '${nextNodeId}'`);
336
- }
337
- };
338
- const executeParallelGroupNode = async (node, nodeId) => {
339
- if (!node.parallelNodes || node.parallelNodes.length === 0) {
340
- throw new Error(`${formatLogContext({ workflowId })}Parallel group node '${nodeId}' has no parallel nodes`);
341
- }
342
- const allBranchNodes = node.parallelNodes.every(parallelNodeId => {
343
- const parallelNode = graph.nodes.get(parallelNodeId);
344
- return parallelNode?.type === WorkflowNodeTypes.BRANCH;
345
- });
346
- if (options.enableBranchRacing && allBranchNodes && node.parallelNodes.length > 1) {
347
- if (options.logPhaseResults) {
348
- console.info(`${formatLogContext({ workflowId })}stable-request: Starting branch racing with ${node.parallelNodes.length} branches`);
349
- }
350
- const branchPromises = node.parallelNodes.map((parallelNodeId, index) => executeNode(parallelNodeId)
351
- .then(() => ({ success: true, nodeId: parallelNodeId, index }))
352
- .catch(error => ({ success: false, nodeId: parallelNodeId, index, error })));
353
- try {
354
- const winner = await Promise.race(branchPromises);
355
- if (options.logPhaseResults) {
356
- console.info(`${formatLogContext({ workflowId })}stable-request: Branch '${winner.nodeId}' won the race`);
357
- }
358
- for (let i = 0; i < node.parallelNodes.length; i++) {
359
- if (i !== winner.index) {
360
- const losingNodeId = node.parallelNodes[i];
361
- const losingNode = graph.nodes.get(losingNodeId);
362
- if (losingNode?.branch) {
363
- const cancelledBranchResult = {
364
- workflowId,
365
- branchId: losingNode.branch.id,
366
- phaseId: `branch-${losingNode.branch.id}`,
367
- phaseIndex: phaseResults.length,
368
- success: false,
369
- executionTime: 0,
370
- timestamp: new Date().toISOString(),
371
- totalRequests: 0,
372
- successfulRequests: 0,
373
- failedRequests: 0,
374
- responses: [],
375
- skipped: true,
376
- error: 'stable-request: Cancelled - another branch won the race'
377
- };
378
- results.set(losingNodeId, cancelledBranchResult);
379
- phaseResults.push(cancelledBranchResult);
380
- }
381
- }
382
- }
383
- if (!winner.success) {
384
- console.error(`${formatLogContext({ workflowId })}stable-request: Winning branch '${winner.nodeId}' failed:`, winner.error);
385
- terminatedEarly = true;
386
- terminationReason = `Branch racing completed but winning branch failed: ${winner.error?.message || 'Unknown error'}`;
387
- }
388
- }
389
- catch (error) {
390
- console.error(`${formatLogContext({ workflowId })}stable-request: Error during branch racing:`, error);
391
- terminatedEarly = true;
392
- terminationReason = `Branch racing failed: ${error.message || 'Unknown error'}`;
393
- }
394
- return;
395
- }
396
- if (options.logPhaseResults) {
397
- console.info(`${formatLogContext({ workflowId })}stable-request: Starting parallel execution of: ${node.parallelNodes.join(', ')}`);
398
- }
399
- await Promise.all(node.parallelNodes.map(parallelNodeId => executeNode(parallelNodeId)));
400
- if (options.logPhaseResults) {
401
- console.info(`${formatLogContext({ workflowId })}stable-request: Parallel execution completed for: ${node.parallelNodes.join(', ')}`);
402
- }
403
- };
404
- try {
405
- await executeNode(graph.entryPoint);
406
- }
407
- catch (error) {
408
- if (!terminatedEarly) {
409
- terminatedEarly = true;
410
- terminationReason = error.message || `${formatLogContext({ workflowId })}stable-request: Unknown error during execution`;
411
- }
412
- }
413
- const executionTime = Date.now() - startTime;
414
- const result = {
415
- workflowId,
416
- success: !terminatedEarly && failedRequests === 0,
417
- executionTime,
418
- timestamp: new Date().toISOString(),
419
- totalPhases: phaseResults.length,
420
- completedPhases: phaseResults.filter(p => p.success).length,
421
- totalRequests,
422
- successfulRequests,
423
- failedRequests,
424
- phases: phaseResults,
425
- executionHistory,
426
- terminatedEarly,
427
- terminationReason
428
- };
429
- try {
430
- result.metrics = MetricsAggregator.extractWorkflowMetrics(result);
431
- if (options.metricsGuardrails && result.metrics) {
432
- result.validation = MetricsValidator.validateWorkflowMetrics(result.metrics, options.metricsGuardrails);
433
- }
434
- }
435
- catch (error) {
436
- }
437
- return result;
438
- }
439
- //# sourceMappingURL=execute-workflow-graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-workflow-graph.js","sourceRoot":"","sources":["../../src/utilities/execute-workflow-graph.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { API_GATEWAY_OPTIONS } from "../types/index.js";
2
- export declare function extractCommonRequestConfigOptions<RequestDataType = any, ResponseDataType = any, FunctionArgsType extends any[] = any[], FunctionReturnType = any>(options: API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType, FunctionArgsType, FunctionReturnType>): Record<string, unknown>;
3
- //# sourceMappingURL=extract-common-request-config-options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-common-request-config-options.d.ts","sourceRoot":"","sources":["../../src/utilities/extract-common-request-config-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAgB,iCAAiC,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAC7J,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,2BAYxG"}
@@ -1,12 +0,0 @@
1
- import { extractCommonOptionsKeys } from "../constants/index.js";
2
- export function extractCommonRequestConfigOptions(options) {
3
- const extracted = {};
4
- const optionsRecord = options;
5
- for (const key of extractCommonOptionsKeys) {
6
- if (Object.prototype.hasOwnProperty.call(optionsRecord, key)) {
7
- extracted[key] = optionsRecord[key];
8
- }
9
- }
10
- return extracted;
11
- }
12
- //# sourceMappingURL=extract-common-request-config-options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-common-request-config-options.js","sourceRoot":"","sources":["../../src/utilities/extract-common-request-config-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,MAAM,UAAU,iCAAiC,CAC7C,OAAqG;IAErG,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAkC,CAAC;IAEzD,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3D,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { FnExecResponse, TRIAL_MODE_OPTIONS, FunctionCacheConfig, ExecutionContext } from '../types/index.js';
2
- export declare function fnExec<TArgs extends any[] = any[], TReturn = any>(fn: (...args: TArgs) => TReturn | Promise<TReturn>, args: TArgs, returnResult?: boolean, maxSerializableChars?: number, trialMode?: TRIAL_MODE_OPTIONS, cacheConfig?: FunctionCacheConfig<TArgs, TReturn>, executionContext?: ExecutionContext): Promise<FnExecResponse<TReturn>>;
3
- //# sourceMappingURL=fn-exec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fn-exec.d.ts","sourceRoot":"","sources":["../../src/utilities/fn-exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK9G,wBAAsB,MAAM,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EACrE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAClD,IAAI,EAAE,KAAK,EACX,YAAY,UAAQ,EACpB,oBAAoB,SAAO,EAC3B,SAAS,GAAE,kBAAuC,EAClD,WAAW,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,EACjD,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAsElC"}
@@ -1,66 +0,0 @@
1
- import { safelyStringify } from './safely-stringify.js';
2
- import { getGlobalFunctionCacheManager } from './function-cache-manager.js';
3
- import { formatLogContext } from './format-log-context.js';
4
- export async function fnExec(fn, args, returnResult = false, maxSerializableChars = 1000, trialMode = { enabled: false }, cacheConfig, executionContext) {
5
- const startTime = Date.now();
6
- let stopTime = 0;
7
- const timestamp = new Date(startTime).toISOString();
8
- let cacheManager = null;
9
- if (cacheConfig?.enabled) {
10
- cacheManager = getGlobalFunctionCacheManager(cacheConfig);
11
- const cached = cacheManager.get(fn, args);
12
- if (cached) {
13
- return {
14
- ok: true,
15
- isRetryable: true,
16
- data: returnResult ? cached.data : undefined,
17
- timestamp: new Date(cached.timestamp).toISOString(),
18
- executionTime: 0,
19
- fromCache: true
20
- };
21
- }
22
- }
23
- try {
24
- if (trialMode.enabled) {
25
- const trialCondition = Math.random() <= (trialMode?.reqFailureProbability ?? 0);
26
- if (trialCondition) {
27
- console.error(`${formatLogContext(executionContext)}stable-request: Function execution failed in trial mode.\nFunction: ${fn.name || 'anonymous'}\nArgs:\n`, safelyStringify(args, maxSerializableChars));
28
- throw new Error(`${formatLogContext(executionContext)}stable-request: Function execution failed in trial mode.`);
29
- }
30
- else {
31
- stopTime = Date.now();
32
- return {
33
- ok: true,
34
- isRetryable: true,
35
- data: returnResult ? { trialMode } : undefined,
36
- timestamp,
37
- executionTime: stopTime - startTime
38
- };
39
- }
40
- }
41
- const result = await fn(...args);
42
- stopTime = Date.now();
43
- if (cacheManager) {
44
- cacheManager.set(fn, args, result);
45
- }
46
- return {
47
- ok: true,
48
- isRetryable: true,
49
- data: returnResult ? result : undefined,
50
- timestamp,
51
- executionTime: stopTime - startTime
52
- };
53
- }
54
- catch (error) {
55
- stopTime = Date.now();
56
- const executionTime = stopTime - startTime;
57
- return {
58
- ok: false,
59
- isRetryable: true,
60
- error: `${formatLogContext(executionContext)}stable-request: ${error.message || String(error)}`,
61
- timestamp,
62
- executionTime
63
- };
64
- }
65
- }
66
- //# sourceMappingURL=fn-exec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fn-exec.js","sourceRoot":"","sources":["../../src/utilities/fn-exec.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { FunctionCacheConfig, CachedFunctionResponse } from '../types/index.js';
2
- export declare class FunctionCacheManager {
3
- private cache;
4
- private config;
5
- private stats;
6
- private readonly persistence?;
7
- private readonly persistenceCoordinator?;
8
- private initialized;
9
- constructor(config: FunctionCacheConfig<any, any>);
10
- initialize(): Promise<void>;
11
- private restoreState;
12
- private getPersistedState;
13
- private persistState;
14
- private generateKey;
15
- get<TArgs extends any[], TReturn>(fn: (...args: TArgs) => any, args: TArgs): CachedFunctionResponse<TReturn> | null;
16
- set<TArgs extends any[], TReturn>(fn: (...args: TArgs) => any, args: TArgs, data: TReturn): void;
17
- clear(): void;
18
- getStats(): {
19
- hits: number;
20
- misses: number;
21
- hitRate: number;
22
- missRate: number;
23
- sets: number;
24
- evictions: number;
25
- size: number;
26
- maxSize: number;
27
- averageGetTime: number;
28
- averageSetTime: number;
29
- };
30
- }
31
- export declare function getGlobalFunctionCacheManager(config?: FunctionCacheConfig<any, any>): FunctionCacheManager;
32
- //# sourceMappingURL=function-cache-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function-cache-manager.d.ts","sourceRoot":"","sources":["../../src/utilities/function-cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAiE,MAAM,mBAAmB,CAAC;AAM/I,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAAqD;IACnE,OAAO,CAAC,KAAK,CAOX;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAgE;IAC7F,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAA2E;IACnH,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC;IAc3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,iBAAiB;YAgBX,YAAY;IAU1B,OAAO,CAAC,WAAW;IAgBnB,GAAG,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EAC9B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,EAC3B,IAAI,EAAE,KAAK,GACV,sBAAsB,CAAC,OAAO,CAAC,GAAG,IAAI;IA0BzC,GAAG,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,EAC9B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,EAC3B,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,OAAO,GACZ,IAAI;IA6BP,KAAK,IAAI,IAAI;IAKb,QAAQ;;;;;;;;;;;;CAmBT;AAID,wBAAgB,6BAA6B,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,CAK1G"}