@emmvish/stable-request 2.1.6 → 2.2.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 (45) hide show
  1. package/README.md +113 -5
  2. package/dist/constants/index.d.ts +9 -0
  3. package/dist/constants/index.d.ts.map +1 -1
  4. package/dist/constants/index.js +72 -0
  5. package/dist/constants/index.js.map +1 -1
  6. package/dist/core/stable-api-gateway.d.ts.map +1 -1
  7. package/dist/core/stable-api-gateway.js +24 -2
  8. package/dist/core/stable-api-gateway.js.map +1 -1
  9. package/dist/core/stable-function.d.ts.map +1 -1
  10. package/dist/core/stable-function.js +8 -3
  11. package/dist/core/stable-function.js.map +1 -1
  12. package/dist/core/stable-request.d.ts.map +1 -1
  13. package/dist/core/stable-request.js +8 -3
  14. package/dist/core/stable-request.js.map +1 -1
  15. package/dist/core/stable-workflow.d.ts.map +1 -1
  16. package/dist/core/stable-workflow.js +13 -1
  17. package/dist/core/stable-workflow.js.map +1 -1
  18. package/dist/enums/index.d.ts +10 -0
  19. package/dist/enums/index.d.ts.map +1 -1
  20. package/dist/enums/index.js +12 -0
  21. package/dist/enums/index.js.map +1 -1
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/types/index.d.ts +119 -1
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/utilities/execute-branch-workflow.d.ts.map +1 -1
  29. package/dist/utilities/execute-branch-workflow.js +13 -0
  30. package/dist/utilities/execute-branch-workflow.js.map +1 -1
  31. package/dist/utilities/execute-phase.d.ts.map +1 -1
  32. package/dist/utilities/execute-phase.js +4 -0
  33. package/dist/utilities/execute-phase.js.map +1 -1
  34. package/dist/utilities/execute-workflow-graph.d.ts.map +1 -1
  35. package/dist/utilities/execute-workflow-graph.js +4 -0
  36. package/dist/utilities/execute-workflow-graph.js.map +1 -1
  37. package/dist/utilities/index.d.ts +1 -0
  38. package/dist/utilities/index.d.ts.map +1 -1
  39. package/dist/utilities/index.js +1 -0
  40. package/dist/utilities/index.js.map +1 -1
  41. package/dist/utilities/metrics-validator.d.ts +80 -0
  42. package/dist/utilities/metrics-validator.d.ts.map +1 -0
  43. package/dist/utilities/metrics-validator.js +274 -0
  44. package/dist/utilities/metrics-validator.js.map +1 -0
  45. package/package.json +1 -1
package/README.md CHANGED
@@ -68,6 +68,7 @@ Every execution—whether a single request, a pure function, or an entire workfl
68
68
  - **Circuit breaker** to fail fast and protect downstream systems
69
69
  - **Caching** for idempotent read operations
70
70
  - **Rate & concurrency limits** to respect external constraints
71
+ - **Metrics guardrails** to validate execution against thresholds with automatic anomaly detection
71
72
 
72
73
  ### Type Safety
73
74
 
@@ -261,9 +262,16 @@ const responses = await stableApiGateway<ApiRequestData, ApiResponse>(items, {
261
262
  maxConcurrentRequests: 3
262
263
  });
263
264
 
265
+ // Access individual responses
264
266
  responses.forEach((resp, i) => {
265
267
  console.log(`Item ${i}: success=${resp.success}`);
266
268
  });
269
+
270
+ // Access aggregate metrics
271
+ console.log(`Success rate: ${responses.metrics.successRate.toFixed(2)}%`);
272
+ console.log(`Execution time: ${responses.metrics.executionTime}ms`);
273
+ console.log(`Throughput: ${responses.metrics.throughput.toFixed(2)} req/s`);
274
+ console.log(`Average duration: ${responses.metrics.averageRequestDuration.toFixed(2)}ms`);
267
275
  ```
268
276
 
269
277
  **Key responsibilities:**
@@ -271,8 +279,9 @@ responses.forEach((resp, i) => {
271
279
  - Apply global, group-level, and item-level config overrides
272
280
  - Maintain shared buffer across items for state passing
273
281
  - Stop on first error or continue despite failures
274
- - Collect per-item and aggregate metrics
282
+ - Collect per-item and aggregate metrics (success rates, execution time, throughput)
275
283
  - Support request grouping with group-specific config
284
+ - Track infrastructure metrics (circuit breaker, cache, rate limiter, concurrency)
276
285
 
277
286
  ### stableWorkflow
278
287
 
@@ -1576,6 +1585,56 @@ console.log(result.metrics); // {
1576
1585
  // cache: { /* hits, misses, size */ },
1577
1586
  // rateLimiter: { /* limit, current rate */ },
1578
1587
  // concurrencyLimiter: { /* limit, in-flight */ }
1588
+ // },
1589
+ // validation: {
1590
+ // isValid: true,
1591
+ // anomalies: [],
1592
+ // validatedAt: '2026-01-20T...'
1593
+ // }
1594
+ // }
1595
+ ```
1596
+
1597
+ #### API Gateway Metrics
1598
+
1599
+ ```typescript
1600
+ import { stableApiGateway } from '@emmvish/stable-request';
1601
+ import type { API_GATEWAY_REQUEST } from '@emmvish/stable-request';
1602
+
1603
+ interface ApiRequest {}
1604
+ interface ApiResponse { data: any; }
1605
+
1606
+ const requests: API_GATEWAY_REQUEST<ApiRequest, ApiResponse>[] = [
1607
+ { id: 'req-1', requestOptions: { reqData: { path: '/data/1' }, resReq: true } },
1608
+ { id: 'req-2', requestOptions: { reqData: { path: '/data/2' }, resReq: true } },
1609
+ { id: 'req-3', requestOptions: { reqData: { path: '/data/3' }, resReq: true } }
1610
+ ];
1611
+
1612
+ const result = await stableApiGateway<ApiRequest, ApiResponse>(requests, {
1613
+ concurrentExecution: true,
1614
+ maxConcurrentRequests: 5
1615
+ });
1616
+
1617
+ console.log(result.metrics); // {
1618
+ // totalRequests: 3,
1619
+ // successfulRequests: 3,
1620
+ // failedRequests: 0,
1621
+ // successRate: 100,
1622
+ // failureRate: 0,
1623
+ // executionTime: 450, // Total execution time in ms
1624
+ // timestamp: '2026-01-20T...', // ISO 8601 completion timestamp
1625
+ // throughput: 6.67, // Requests per second
1626
+ // averageRequestDuration: 150, // Average time per request in ms
1627
+ // requestGroups: [/* per-group stats */],
1628
+ // infrastructureMetrics: {
1629
+ // circuitBreaker: { /* state, stats, config */ },
1630
+ // cache: { /* hit rate, size, utilization */ },
1631
+ // rateLimiter: { /* throttle rate, queue length */ },
1632
+ // concurrencyLimiter: { /* utilization, queue */ }
1633
+ // },
1634
+ // validation: {
1635
+ // isValid: true,
1636
+ // anomalies: [],
1637
+ // validatedAt: '2026-01-20T...'
1579
1638
  // }
1580
1639
  // }
1581
1640
  ```
@@ -1605,9 +1664,14 @@ console.log(result); // {
1605
1664
  // failedRequests: 0,
1606
1665
  // workflowExecutionTime: 1200,
1607
1666
  // phases: [
1608
- // { phaseId: 'p1', success: true, responses: [...], ... },
1609
- // { phaseId: 'p2', success: true, responses: [...], ... }
1610
- // ]
1667
+ // { phaseId: 'p1', success: true, responses: [...], validation: {...}, ... },
1668
+ // { phaseId: 'p2', success: true, responses: [...], validation: {...}, ... }
1669
+ // ],
1670
+ // validation: {
1671
+ // isValid: true,
1672
+ // anomalies: [],
1673
+ // validatedAt: '2026-01-20T...'
1674
+ // }
1611
1675
  // }
1612
1676
  ```
1613
1677
 
@@ -1942,7 +2006,51 @@ await stableApiGateway<ServiceRequest, ServiceResponse>(requests, {
1942
2006
  });
1943
2007
  ```
1944
2008
 
1945
- ### 5. Apply Rate & Concurrency Limits
2009
+ ### 6. Define Metrics Guardrails for SLA Monitoring
2010
+
2011
+ Enforce performance and reliability SLAs with automatic validation.
2012
+
2013
+ ```typescript
2014
+ import { stableWorkflow, MetricsGuardrails } from '@emmvish/stable-request';
2015
+ import type { STABLE_WORKFLOW_PHASE } from '@emmvish/stable-request';
2016
+
2017
+ interface ApiRequest {}
2018
+ interface ApiResponse { data: any; }
2019
+
2020
+ const phases: STABLE_WORKFLOW_PHASE<ApiRequest, ApiResponse>[] = [
2021
+ {
2022
+ id: 'critical-phase',
2023
+ requests: [{ id: 'req-1', requestOptions: { reqData: { path: '/critical' }, resReq: true } }],
2024
+ metricsGuardrails: {
2025
+ phase: {
2026
+ executionTime: { max: 3000 }, // SLA: <3s
2027
+ requestSuccessRate: { min: 99.5 } // SLA: 99.5% success
2028
+ }
2029
+ }
2030
+ }
2031
+ ];
2032
+
2033
+ const result = await stableWorkflow(phases, {
2034
+ workflowId: 'sla-monitored',
2035
+ metricsGuardrails: {
2036
+ workflow: {
2037
+ executionTime: { max: 10000 }, // Workflow SLA: <10s
2038
+ requestSuccessRate: { min: 99 } // Workflow SLA: 99% success
2039
+ }
2040
+ }
2041
+ });
2042
+
2043
+ // Automatic SLA violation detection
2044
+ if (result.validation && !result.validation.isValid) {
2045
+ const criticalAnomalies = result.validation.anomalies.filter(a => a.severity === 'CRITICAL');
2046
+ if (criticalAnomalies.length > 0) {
2047
+ // Trigger alerts for SLA violations
2048
+ console.error('SLA violated:', criticalAnomalies);
2049
+ }
2050
+ }
2051
+ ```
2052
+
2053
+ ### 6. Apply Rate & Concurrency Limits
1946
2054
 
1947
2055
  Respect external quotas and capacity.
1948
2056
 
@@ -1,4 +1,13 @@
1
1
  import { API_GATEWAY_OPTIONS, ApiRequestOptionsMapping } from "../types/index.js";
2
2
  export declare const extractCommonOptionsKeys: (keyof API_GATEWAY_OPTIONS)[];
3
3
  export declare const PrepareApiRequestOptionsMapping: ApiRequestOptionsMapping[];
4
+ export declare const REQUEST_METRICS_TO_VALIDATE_KEYS: readonly ["totalAttempts", "successfulAttempts", "failedAttempts", "totalExecutionTime", "averageAttemptTime"];
5
+ export declare const API_GATEWAY_METRICS_TO_VALIDATE_KEYS: readonly ["totalRequests", "successfulRequests", "failedRequests", "successRate", "failureRate", "executionTime", "throughput", "averageRequestDuration"];
6
+ export declare const WORKFLOW_METRICS_TO_VALIDATE_KEYS: readonly ["totalPhases", "completedPhases", "failedPhases", "totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "requestFailureRate", "executionTime", "averagePhaseExecutionTime", "throughput", "phaseCompletionRate"];
7
+ export declare const CIRCUIT_BREAKER_METRICS_TO_VALIDATE_KEYS: readonly ["failureRate", "totalRequests", "failedRequests"];
8
+ export declare const CACHE_METRICS_TO_VALIDATE_KEYS: readonly ["hitRate", "missRate", "utilizationPercentage", "evictionRate"];
9
+ export declare const RATE_LIMITER_METRICS_TO_VALIDATE_KEYS: readonly ["throttleRate", "queueLength", "utilizationPercentage", "averageQueueWaitTime"];
10
+ export declare const CONCURRENCY_LIMITER_METRICS_TO_VALIDATE_KEYS: readonly ["utilizationPercentage", "queueLength", "averageQueueWaitTime"];
11
+ export declare const PHASE_METRICS_TO_VALIDATE_KEYS: readonly ["totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "requestFailureRate", "executionTime"];
12
+ export declare const BRANCH_METRICS_TO_VALIDATE_KEYS: readonly ["totalPhases", "completedPhases", "failedPhases", "phaseCompletionRate", "totalRequests", "successfulRequests", "failedRequests", "requestSuccessRate", "executionTime"];
4
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,CAAC,MAAM,mBAAmB,CAAC,EAqBjE,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,EAqBrE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,CAAC,MAAM,mBAAmB,CAAC,EAqBjE,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,wBAAwB,EAqBrE,CAAC;AAEF,eAAO,MAAM,gCAAgC,gHAMnC,CAAC;AAEX,eAAO,MAAM,oCAAoC,2JASvC,CAAC;AAEX,eAAO,MAAM,iCAAiC,qPAapC,CAAC;AAEX,eAAO,MAAM,wCAAwC,6DAI3C,CAAC;AAEX,eAAO,MAAM,8BAA8B,2EAKjC,CAAC;AAEX,eAAO,MAAM,qCAAqC,2FAKxC,CAAC;AAEX,eAAO,MAAM,4CAA4C,2EAI/C,CAAC;AAEX,eAAO,MAAM,8BAA8B,iIAOjC,CAAC;AAEX,eAAO,MAAM,+BAA+B,oLAUlC,CAAC"}
@@ -42,4 +42,76 @@ export const PrepareApiRequestOptionsMapping = [
42
42
  { localKey: 'commonBuffer', commonKey: 'sharedBuffer', groupCommonKey: 'sharedBuffer', targetKey: 'commonBuffer' },
43
43
  { localKey: 'statePersistence', commonKey: 'commonStatePersistence', groupCommonKey: 'commonStatePersistence', targetKey: 'statePersistence' },
44
44
  ];
45
+ export const REQUEST_METRICS_TO_VALIDATE_KEYS = [
46
+ 'totalAttempts',
47
+ 'successfulAttempts',
48
+ 'failedAttempts',
49
+ 'totalExecutionTime',
50
+ 'averageAttemptTime'
51
+ ];
52
+ export const API_GATEWAY_METRICS_TO_VALIDATE_KEYS = [
53
+ 'totalRequests',
54
+ 'successfulRequests',
55
+ 'failedRequests',
56
+ 'successRate',
57
+ 'failureRate',
58
+ 'executionTime',
59
+ 'throughput',
60
+ 'averageRequestDuration'
61
+ ];
62
+ export const WORKFLOW_METRICS_TO_VALIDATE_KEYS = [
63
+ 'totalPhases',
64
+ 'completedPhases',
65
+ 'failedPhases',
66
+ 'totalRequests',
67
+ 'successfulRequests',
68
+ 'failedRequests',
69
+ 'requestSuccessRate',
70
+ 'requestFailureRate',
71
+ 'executionTime',
72
+ 'averagePhaseExecutionTime',
73
+ 'throughput',
74
+ 'phaseCompletionRate'
75
+ ];
76
+ export const CIRCUIT_BREAKER_METRICS_TO_VALIDATE_KEYS = [
77
+ 'failureRate',
78
+ 'totalRequests',
79
+ 'failedRequests'
80
+ ];
81
+ export const CACHE_METRICS_TO_VALIDATE_KEYS = [
82
+ 'hitRate',
83
+ 'missRate',
84
+ 'utilizationPercentage',
85
+ 'evictionRate'
86
+ ];
87
+ export const RATE_LIMITER_METRICS_TO_VALIDATE_KEYS = [
88
+ 'throttleRate',
89
+ 'queueLength',
90
+ 'utilizationPercentage',
91
+ 'averageQueueWaitTime'
92
+ ];
93
+ export const CONCURRENCY_LIMITER_METRICS_TO_VALIDATE_KEYS = [
94
+ 'utilizationPercentage',
95
+ 'queueLength',
96
+ 'averageQueueWaitTime'
97
+ ];
98
+ export const PHASE_METRICS_TO_VALIDATE_KEYS = [
99
+ 'totalRequests',
100
+ 'successfulRequests',
101
+ 'failedRequests',
102
+ 'requestSuccessRate',
103
+ 'requestFailureRate',
104
+ 'executionTime'
105
+ ];
106
+ export const BRANCH_METRICS_TO_VALIDATE_KEYS = [
107
+ 'totalPhases',
108
+ 'completedPhases',
109
+ 'failedPhases',
110
+ 'phaseCompletionRate',
111
+ 'totalRequests',
112
+ 'successfulRequests',
113
+ 'failedRequests',
114
+ 'requestSuccessRate',
115
+ 'executionTime'
116
+ ];
45
117
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;AAc3B,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAChF,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EACtI,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAChE,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEjD,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAClJ,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EAChK,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EACvE,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,GACtG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"stable-api-gateway.d.ts","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAEhB,kBAAkB,EAOrB,MAAM,mBAAmB,CAAC;AAe3B,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAChF,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EACtI,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,GAChE,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEjD,wBAAsB,gBAAgB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAClJ,QAAQ,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EAChK,SAAS,EAAE,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EACvE,OAAO,EAAE,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,GACtG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
- import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator, CircuitBreaker, getGlobalCircuitBreaker, getGlobalCacheManager, getGlobalRateLimiter, getGlobalConcurrencyLimiter } from '../utilities/index.js';
1
+ import { executeConcurrently, executeSequentially, extractCommonRequestConfigOptions as extractCommonOptions, MetricsAggregator, MetricsValidator, CircuitBreaker, getGlobalCircuitBreaker, getGlobalCacheManager, getGlobalRateLimiter, getGlobalConcurrencyLimiter } from '../utilities/index.js';
2
2
  import { RequestOrFunction } from '../enums/index.js';
3
3
  export async function stableApiGateway(requests = [], functionsOrOptions, options) {
4
+ const startTime = Date.now();
4
5
  let functions = [];
5
6
  let finalOptions = {};
6
7
  if (Array.isArray(functionsOrOptions)) {
@@ -26,13 +27,18 @@ export async function stableApiGateway(requests = [], functionsOrOptions, option
26
27
  })));
27
28
  }
28
29
  if (items.length === 0) {
30
+ const executionTime = Date.now() - startTime;
29
31
  const emptyResult = [];
30
32
  emptyResult.metrics = {
31
33
  totalRequests: 0,
32
34
  successfulRequests: 0,
33
35
  failedRequests: 0,
34
36
  successRate: 0,
35
- failureRate: 0
37
+ failureRate: 0,
38
+ executionTime,
39
+ timestamp: new Date().toISOString(),
40
+ throughput: 0,
41
+ averageRequestDuration: 0
36
42
  };
37
43
  return emptyResult;
38
44
  }
@@ -56,6 +62,9 @@ export async function stableApiGateway(requests = [], functionsOrOptions, option
56
62
  const successfulRequests = responses.filter(r => r.success).length;
57
63
  const failedRequests = responses.filter(r => !r.success).length;
58
64
  const totalRequests = responses.length;
65
+ const executionTime = Date.now() - startTime;
66
+ const throughput = executionTime > 0 ? (totalRequests / (executionTime / 1000)) : 0;
67
+ const averageRequestDuration = totalRequests > 0 ? executionTime / totalRequests : 0;
59
68
  const result = responses;
60
69
  result.metrics = {
61
70
  totalRequests,
@@ -63,6 +72,10 @@ export async function stableApiGateway(requests = [], functionsOrOptions, option
63
72
  failedRequests,
64
73
  successRate: totalRequests > 0 ? (successfulRequests / totalRequests) * 100 : 0,
65
74
  failureRate: totalRequests > 0 ? (failedRequests / totalRequests) * 100 : 0,
75
+ executionTime,
76
+ timestamp: new Date().toISOString(),
77
+ throughput,
78
+ averageRequestDuration,
66
79
  requestGroups: MetricsAggregator.extractRequestGroupMetrics(responses)
67
80
  };
68
81
  const infrastructureMetrics = {};
@@ -93,6 +106,15 @@ export async function stableApiGateway(requests = [], functionsOrOptions, option
93
106
  if (Object.keys(infrastructureMetrics).length > 0) {
94
107
  result.metrics.infrastructureMetrics = infrastructureMetrics;
95
108
  }
109
+ if (finalOptions.metricsGuardrails) {
110
+ const validation = MetricsValidator.validateApiGatewayMetrics(result.metrics, finalOptions.metricsGuardrails);
111
+ if (result.metrics.infrastructureMetrics) {
112
+ const infraValidation = MetricsValidator.validateInfrastructureMetrics(result.metrics.infrastructureMetrics, finalOptions.metricsGuardrails);
113
+ validation.anomalies.push(...infraValidation.anomalies);
114
+ validation.isValid = validation.isValid && infraValidation.isValid;
115
+ }
116
+ result.metrics.validation = validation;
117
+ }
96
118
  return result;
97
119
  }
98
120
  //# sourceMappingURL=stable-api-gateway.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"AAcA,OAAO,EACH,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,IAAI,oBAAoB,EACzD,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAatD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,WAAmK,EAAE,EACrK,kBAAgL,EAChL,OAAsG;IAEtG,IAAI,SAAS,GAAiE,EAAE,CAAC;IACjF,IAAI,YAAY,GAAiG,EAAE,CAAC;IAEpH,IAAI,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpC,SAAS,GAAG,kBAAkF,CAAC;QAC/F,YAAY,GAAG,OAAO,IAAI,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,YAAY,GAAG,kBAAkB,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,EACF,mBAAmB,GAAG,IAAI,EAC1B,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,EAAE,EAClB,qBAAqB,EACrB,SAAS,EACT,cAAc,GACjB,GAAG,YAAY,CAAC;IAEjB,IAAI,KAAK,GAAgG,EAAE,CAAC;IAE5G,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,KAAK,GAAG,QAAuG,CAAC;IACpH,CAAC;SAAM,CAAC;QACJ,KAAK,GAAI,QAAqE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvF,IAAI,EAAE,iBAAiB,CAAC,OAAO;YAC/B,OAAO,EAAE,GAAG;SACf,CAAC,CAAC,CAAC;QAEJ,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,EAAE,iBAAiB,CAAC,QAAiB;YACzC,QAAQ,EAAE,EAAE;SACf,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,EAA+D,CAAC;QACpF,WAAW,CAAC,OAAO,GAAG;YAClB,aAAa,EAAE,CAAC;YAChB,kBAAkB,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;SACjB,CAAC;QACF,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,MAAM,uBAAuB,GAAkO;QAC3P,gBAAgB;QAChB,aAAa;QACb,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,CAAC;QACrE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;QACvD,GAAG,oBAAoB,CAAoC,YAAY,CAAC;QACxE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;KAClD,CAAA;IAED,IAAI,SAAwE,CAAC;IAC7E,IAAI,mBAAmB,EAAE,CAAC;QACtB,SAAS,GAAG,MAAM,mBAAmB,CAAoC,KAAY,EAAE,uBAAwI,CAAC,CAAC;IACrO,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,MAAM,mBAAmB,CAAoC,KAAY,EAAE,uBAAwI,CAAC,CAAC;IACrO,CAAC;IAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAChE,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;IAEvC,MAAM,MAAM,GAAG,SAAsE,CAAC;IACtF,MAAM,CAAC,OAAO,GAAG;QACb,aAAa;QACb,kBAAkB;QAClB,cAAc;QACd,WAAW,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/E,WAAW,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,aAAa,EAAE,iBAAiB,CAAC,0BAA0B,CAAC,SAAS,CAAC;KACzE,CAAC;IAEF,MAAM,qBAAqB,GAKvB,EAAE,CAAC;IAEP,IAAI,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,cAAc,YAAY,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;QACjG,IAAI,EAAE,EAAE,CAAC;YACL,qBAAqB,CAAC,cAAc,GAAG,iBAAiB,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACR,qBAAqB,CAAC,KAAK,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YACd,qBAAqB,CAAC,WAAW,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QACjG,CAAC;IACL,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QACxB,MAAM,kBAAkB,GAAG,2BAA2B,EAAE,CAAC;QACzD,IAAI,kBAAkB,EAAE,CAAC;YACrB,qBAAqB,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,gCAAgC,CAAC,kBAAkB,CAAC,CAAC;QACtH,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"stable-api-gateway.js","sourceRoot":"","sources":["../../src/core/stable-api-gateway.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stable-function.d.ts","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,eAAe,EACf,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAkB3B,wBAAsB,cAAc,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAC7E,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAoa1C"}
1
+ {"version":3,"file":"stable-function.d.ts","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,eAAe,EACf,sBAAsB,EAEvB,MAAM,mBAAmB,CAAC;AAmB3B,wBAAsB,cAAc,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAC7E,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GACvC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CA8a1C"}
@@ -1,5 +1,5 @@
1
1
  import { RETRY_STRATEGIES, CircuitBreakerState } from '../enums/index.js';
2
- import { CircuitBreaker, CircuitBreakerOpenError, executeWithPersistence, formatLogContext, getGlobalFunctionCacheManager, getNewDelayTime, delay, fnExec, safelyStringify, validateTrialModeProbabilities, MetricsAggregator, RateLimiter, ConcurrencyLimiter } from '../utilities/index.js';
2
+ import { CircuitBreaker, CircuitBreakerOpenError, executeWithPersistence, formatLogContext, getGlobalFunctionCacheManager, getNewDelayTime, delay, fnExec, safelyStringify, validateTrialModeProbabilities, MetricsAggregator, MetricsValidator, RateLimiter, ConcurrencyLimiter } from '../utilities/index.js';
3
3
  export async function stableFunction(options) {
4
4
  const { preExecution = {
5
5
  preExecutionHook: ({ inputParams, commonBuffer }) => { },
@@ -33,11 +33,11 @@ export async function stableFunction(options) {
33
33
  const errorLogs = [];
34
34
  const successfulAttemptsList = [];
35
35
  let totalAttemptsMade = 0;
36
+ let successfulAttemptsCount = 0;
36
37
  const buildResult = (success, data, error) => {
37
38
  const totalExecutionTime = Date.now() - functionStartTime;
38
- const successfulAttemptsCount = successfulAttemptsList.length;
39
39
  const failedAttemptsCount = totalAttemptsMade - successfulAttemptsCount;
40
- return {
40
+ const result = {
41
41
  success,
42
42
  ...(data !== undefined && { data }),
43
43
  ...(error && { error }),
@@ -57,6 +57,10 @@ export async function stableFunction(options) {
57
57
  }
58
58
  }
59
59
  };
60
+ if (options.metricsGuardrails && result.metrics) {
61
+ result.metrics.validation = MetricsValidator.validateRequestMetrics(result.metrics, options.metricsGuardrails);
62
+ }
63
+ return result;
60
64
  };
61
65
  let circuitBreakerInstance = null;
62
66
  if (circuitBreaker) {
@@ -192,6 +196,7 @@ export async function stableFunction(options) {
192
196
  if (res.ok && !performNextAttempt) {
193
197
  hadAtLeastOneSuccess = true;
194
198
  lastSuccessfulAttemptData = res?.data;
199
+ successfulAttemptsCount++;
195
200
  if (logAllSuccessfulAttempts) {
196
201
  const successfulAttemptLog = {
197
202
  attempt: `${currentAttempt}/${maxAttempts}`,
@@ -1 +1 @@
1
- {"version":3,"file":"stable-function.js","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stable-function.js","sourceRoot":"","sources":["../../src/core/stable-function.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,6BAA6B,EAC7B,eAAe,EACf,KAAK,EACL,MAAM,EACN,eAAe,EACf,8BAA8B,EAC9B,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAwC;IAExC,MAAM,EACJ,YAAY,GAAG;QACb,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAmC,EAAE,EAAE,GAAE,CAAC;QACxF,sBAAsB,EAAE,EAAE;QAC1B,+BAA+B,EAAE,KAAK;QACtC,iCAAiC,EAAE,KAAK;KACzC,EACD,YAAY,GAAG,EAAE,EACjB,gBAAgB,EACjB,GAAG,OAAO,CAAC;IAEZ,IAAI,kBAAsE,CAAC;IAC3E,IAAI,CAAC;QACH,kBAAkB,GAAG,MAAM,sBAAsB,CAC/C,YAAY,EAAE,gBAA4B,EAC1C;YACE,WAAW,EAAE,YAAY,EAAE,sBAAsB;YACjD,YAAY;YACZ,qBAAqB,EAAE,OAAO;SAC/B,EACD,OAAO,CAAC,gBAAgB,EACxB,gBAAgB,IAAI,EAAE,EACtB,YAAY,CACb,CAAC;QACF,IAAG,YAAY,EAAE,+BAA+B,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG;gBACnB,GAAG,OAAO;gBACV,GAAG,kBAA8D;aAClE,CAAA;YACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACV,IAAI,CAAC,YAAY,EAAE,iCAAiC,EAAE,CAAC;YACrD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EACrE,YAAY,GAAG,KAAK,EACpB,QAAQ,EAAE,aAAa,GAAG,CAAC,EAC3B,kBAAkB,GAAG,KAAK,EAC1B,IAAI,GAAG,IAAI,EACX,cAAc,GAAG,KAAK,EACtB,aAAa,GAAG,gBAAgB,CAAC,KAAK,EACtC,YAAY,GAAG,KAAK,EACpB,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CACvF,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,mBAAmB,EACxD,aAAa,EAAE,CAAC,IAAI,IAAI,WAAW,IAAI,EACvC,SAAS,EACT,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAC3C,gBAAgB,EAChB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAChD,EACH,wBAAwB,GAAG,KAAK,EAChC,2BAA2B,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,oBAAoB,GAAG,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,CACnH,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,mBAAmB,EACxD,aAAa,EAAE,CAAC,IAAI,IAAI,WAAW,IAAI,EACvC,SAAS,EACT,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAC3C,yBAAyB,EACzB,eAAe,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAC7D,EACH,oBAAoB,GAAG,IAAI,EAC3B,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EACnF,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAC9B,UAAU,GAAG,EAAE,EACf,KAAK,EACL,cAAc,EACd,MAAM,GAAG,CAAC,EACV,gBAAgB,EAChB,SAAS,EACT,qBAAqB,EACtB,GAAG,OAAO,CAAC;IAEZ,IAAI,QAAQ,GAAG,aAAa,CAAC;IAE7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,SAAS,GAAyB,EAAE,CAAC;IAC3C,MAAM,sBAAsB,GAAgD,EAAE,CAAC;IAC/E,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAEhC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAE,IAAc,EAAE,KAAc,EAAmC,EAAE;QACxG,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;QAC1D,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;QAExE,MAAM,MAAM,GAAoC;YAC9C,OAAO;YACP,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;YAC1C,GAAG,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;YACxF,OAAO,EAAE;gBACP,aAAa,EAAE,iBAAiB;gBAChC,kBAAkB,EAAE,uBAAuB;gBAC3C,cAAc,EAAE,mBAAmB;gBACnC,kBAAkB;gBAClB,kBAAkB,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBACtF,qBAAqB,EAAE;oBACrB,GAAG,CAAC,sBAAsB,IAAI,EAAE,cAAc,EAAE,iBAAiB,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBACzH,GAAG,CAAC,KAAK,IAAI,6BAA6B,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,2BAA2B,CAAC,6BAA6B,EAAE,CAAC,EAAE,CAAC;oBAC1I,GAAG,CAAC,mBAAmB,IAAI,EAAE,WAAW,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7G,GAAG,CAAC,0BAA0B,IAAI,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,EAAE,CAAC;iBAC1I;aACF;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,sBAAsB,CACjE,MAAM,CAAC,OAAO,EACd,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,sBAAsB,GAA0B,IAAI,CAAC;IACzD,IAAI,cAAc,EAAE,CAAC;QACnB,sBAAsB,GAAG,cAAc,YAAY,cAAc;YAC/D,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,IAAI,cAAc,CAAC,cAAqB,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,mBAAmB,GAAuB,IAAI,CAAC;IACnD,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACrE,mBAAmB,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,0BAA0B,GAA8B,IAAI,CAAC;IACjE,IAAI,qBAAqB,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QACvD,0BAA0B,GAAG,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,8BAA8B,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,GAAG,GAA4B;YACjC,EAAE,EAAE,KAAK;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,aAAa,EAAE,CAAC;SACjB,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC7B,IAAI,yBAAyB,GAAwB,SAAS,CAAC;QAC/D,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,GAAG,CAAC;YACF,QAAQ,EAAE,CAAC;YACX,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC;YAC9C,iBAAiB,GAAG,cAAc,CAAC;YAEnC,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAC1D,IAAI,QAAQ,CAAC,uBAAuB,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;oBAC7D,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,CAAC;oBAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,MAAM,IAAI,uBAAuB,CAC/B,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,sCAAsC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,2CAA2C,cAAc,GAAG,CAC/K,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;oBAChC,OAAO,MAAM,MAAM,CAAiB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;gBACxH,CAAC,CAAC;gBAEF,IAAI,mBAAmB,IAAI,0BAA0B,EAAE,CAAC;oBACtD,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,0BAA2B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;gBACrG,CAAC;qBAAM,IAAI,mBAAmB,EAAE,CAAC;oBAC/B,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC1D,CAAC;qBAAM,IAAI,0BAA0B,EAAE,CAAC;oBACtC,GAAG,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBAC5B,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACtB,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,+CAA+C,EACpF,eAAe,CAAC,GAAG,EAAE,IAA2B,EAAE,oBAAoB,CAAC,CACxE,CAAC;oBACJ,CAAC;oBACD,OAAO,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,IAAe,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;gBAC9E,CAAC;YAEH,CAAC;YAAC,OAAM,YAAiB,EAAE,CAAC;gBAC1B,IAAI,YAAY,YAAY,uBAAuB,EAAE,CAAC;oBACpD,MAAM,YAAY,CAAC;gBACrB,CAAC;gBACD,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;oBAC/F,sBAAsB,CAAC,oBAAoB,EAAE,CAAC;oBAC9C,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;wBACzE,MAAM,IAAI,uBAAuB,CAC/B,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,wDAAwD,cAAc,uBAAuB,CACnI,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM,YAAY,CAAC;YACrB,CAAC;YAED,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,kBAAkB,GAAY,KAAK,CAAC;YAExC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,kBAAkB,GAAG,CAAC,CAAC,MAAM,sBAAsB,CACjD,gBAAgB,EAChB;wBACE,EAAE;wBACF,IAAI;wBACJ,IAAI,EAAE,GAAG,EAAE,IAAI;wBACf,SAAS;wBACT,MAAM,EAAE,UAAU,EAAE,sBAAsB;wBAC1C,kBAAkB;wBAClB,YAAY;wBACZ,gBAAgB;qBACjB,EACD,gBAAgB,EAChB,gBAAgB,IAAI,EAAE,EACtB,YAAY,CACb,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,uEAAuE,cAAc,eAAe,eAAe,CACtJ,GAAG,EAAE,IAA2B,EAChC,oBAAoB,CACrB,EAAE,CACJ,CAAC;oBACF,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,oEAAoE,eAAe,CACtH,CAAC,CAAC,OAAO,EACT,oBAAoB,CACrB,EAAE,CACJ,CAAC;oBACF,kBAAkB,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;gBAC/F,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAClC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC;gBAChD,CAAC;qBAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,kBAAkB,EAAE,CAAC;oBACzC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC;oBAC9C,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;wBACzE,MAAM,IAAI,uBAAuB,CAC/B,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,wDAAwD,cAAc,IAAI,WAAW,6BAA6B,CACxJ,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,kBAAkB,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC;gBAChE,MAAM,QAAQ,GAAuB;oBACnC,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,OAAO,EAAE,GAAG,cAAc,IAAI,WAAW,EAAE;oBAC3C,KAAK,EACH,GAAG,EAAE,KAAK;wBACV,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,2EAA2E,eAAe,CAC7H,GAAG,EAAE,IAA2B,EAChC,oBAAoB,CACrB,EAAE;oBACL,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEzB,IAAI,CAAC;oBACH,MAAM,sBAAsB,CAC1B,YAAY,EACZ;wBACE,EAAE;wBACF,IAAI;wBACJ,QAAQ;wBACR,oBAAoB;wBACpB,MAAM,EAAE,UAAU,EAAE,kBAAkB;wBACtC,kBAAkB;wBAClB,YAAY;wBACZ,gBAAgB;qBACjB,EACD,gBAAgB,EAChB,gBAAgB,IAAI,EAAE,EACtB,YAAY,CACb,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,0HAA0H,eAAe,CAC5K,CAAC,CAAC,OAAO,EACT,oBAAoB,CACrB,EAAE,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAClC,oBAAoB,GAAG,IAAI,CAAC;gBAC5B,yBAAyB,GAAG,GAAG,EAAE,IAAe,CAAC;gBACjD,uBAAuB,EAAE,CAAC;gBAE1B,IAAI,wBAAwB,EAAE,CAAC;oBAC7B,MAAM,oBAAoB,GAA8C;wBACtE,OAAO,EAAE,GAAG,cAAc,IAAI,WAAW,EAAE;wBAC3C,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,IAAI,EAAE,GAAG,EAAE,IAAe;wBAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;qBACjC,CAAC;oBACF,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAElD,IAAI,CAAC;wBACH,MAAM,sBAAsB,CAC1B,2BAA2B,EAC3B;4BACE,EAAE;4BACF,IAAI;4BACJ,qBAAqB,EAAE,oBAAoB;4BAC3C,oBAAoB;4BACpB,MAAM,EAAE,UAAU,EAAE,iCAAiC;4BACrD,kBAAkB;4BAClB,YAAY;4BACZ,gBAAgB;yBACjB,EACD,gBAAgB,EAChB,gBAAgB,IAAI,EAAE,EACtB,YAAY,CACb,CAAC;oBACJ,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,wKAAwK,eAAe,CAC1N,CAAC,CAAC,OAAO,EACT,oBAAoB,CACrB,EAAE,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,kBAAkB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC1C,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;YACjB,CAAC;YAED,IACE,QAAQ,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,WAAW,CAAC;oBAClC,CAAC,aAAa,IAAI,kBAAkB,CAAC;oBACrC,kBAAkB,CAAC,EACrB,CAAC;gBACD,MAAM,KAAK,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC,QACC,QAAQ,GAAG,CAAC;YACZ,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,EACpD;QAEF,IAAI,kBAAkB,IAAI,oBAAoB,EAAE,CAAC;YAC/C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,6DAA6D,EAClG,eAAe,CAAC,yBAAgD,EAAE,oBAAoB,CAAC,CACxF,CAAC;YACJ,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,yBAA0B,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,aAAa,GAAG,GAAG,EAAE,IAAI,IAAI,yBAAyB,CAAC;gBAC7D,OAAO,CAAC,IAAI,CACV,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,mCAAmC,EACxE,eAAe,CAAC,aAAoC,EAAE,oBAAoB,CAAC,CAC5E,CAAC;YACJ,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAE,CAAC,GAAG,EAAE,IAAI,IAAI,yBAAyB,CAAa,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,eAAe,CACb;gBACE,KAAK,EAAE,GAAG,EAAE,KAAK;gBACjB,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,WAAW;gBAClC,MAAM,EAAE,IAAI;aACb,EACD,oBAAoB,CACrB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,gCAAgC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAClG,CAAC;QAED,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC;YACH,mBAAmB,GAAG,MAAM,sBAAsB,CAChD,kBAAkB,EAClB;gBACE,EAAE;gBACF,IAAI;gBACJ,KAAK,EAAE,CAAC;gBACR,SAAS;gBACT,MAAM,EAAE,UAAU,EAAE,wBAAwB;gBAC5C,kBAAkB;gBAClB,YAAY;gBACZ,gBAAgB;aACjB,EACD,gBAAgB,EAChB,gBAAgB,IAAI,EAAE,EACtB,YAAY,CACb,CAAC;QACJ,CAAC;QAAC,OAAM,kBAAuB,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CACX,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,kHAAkH,eAAe,CACpK,kBAAkB,CAAC,OAAO,EAC1B,oBAAoB,CACrB,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,IAAG,CAAC,mBAAmB,EAAE,CAAC;YACxB,MAAM,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,IAAI,2BAA2B,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stable-request.d.ts","sourceRoot":"","sources":["../../src/core/stable-request.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,cAAc,EACd,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAiB3B,wBAAsB,aAAa,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAC/E,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAqXlD"}
1
+ {"version":3,"file":"stable-request.d.ts","sourceRoot":"","sources":["../../src/core/stable-request.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,cAAc,EACd,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAkB3B,wBAAsB,aAAa,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAC/E,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CA+XlD"}
@@ -1,5 +1,5 @@
1
1
  import { RETRY_STRATEGIES, RESPONSE_ERRORS, CircuitBreakerState } from '../enums/index.js';
2
- import { CircuitBreaker, CircuitBreakerOpenError, executeWithPersistence, formatLogContext, generateAxiosRequestConfig, getNewDelayTime, getGlobalCacheManager, delay, reqFn, safelyStringify, validateTrialModeProbabilities, MetricsAggregator } from '../utilities/index.js';
2
+ import { CircuitBreaker, CircuitBreakerOpenError, executeWithPersistence, formatLogContext, generateAxiosRequestConfig, getNewDelayTime, getGlobalCacheManager, delay, reqFn, safelyStringify, validateTrialModeProbabilities, MetricsAggregator, MetricsValidator } from '../utilities/index.js';
3
3
  export async function stableRequest(options) {
4
4
  const { preExecution = {
5
5
  preExecutionHook: ({ inputParams, commonBuffer }) => { },
@@ -34,11 +34,11 @@ export async function stableRequest(options) {
34
34
  const errorLogs = [];
35
35
  const successfulAttemptsList = [];
36
36
  let totalAttemptsMade = 0;
37
+ let successfulAttemptsCount = 0;
37
38
  const buildResult = (success, data, error) => {
38
39
  const totalExecutionTime = Date.now() - requestStartTime;
39
- const successfulAttemptsCount = successfulAttemptsList.length;
40
40
  const failedAttemptsCount = totalAttemptsMade - successfulAttemptsCount;
41
- return {
41
+ const result = {
42
42
  success,
43
43
  ...(data !== undefined && { data }),
44
44
  ...(error && { error }),
@@ -56,6 +56,10 @@ export async function stableRequest(options) {
56
56
  }
57
57
  }
58
58
  };
59
+ if (options.metricsGuardrails && result.metrics) {
60
+ result.metrics.validation = MetricsValidator.validateRequestMetrics(result.metrics, options.metricsGuardrails);
61
+ }
62
+ return result;
59
63
  };
60
64
  let circuitBreakerInstance = null;
61
65
  if (circuitBreaker) {
@@ -172,6 +176,7 @@ export async function stableRequest(options) {
172
176
  if (res.ok && !performNextAttempt) {
173
177
  hadAtLeastOneSuccess = true;
174
178
  lastSuccessfulAttemptData = res?.data;
179
+ successfulAttemptsCount++;
175
180
  if (logAllSuccessfulAttempts) {
176
181
  const successfulAttemptLog = {
177
182
  attempt: `${currentAttempt}/${maxAttempts}`,
@@ -1 +1 @@
1
- {"version":3,"file":"stable-request.js","sourceRoot":"","sources":["../../src/core/stable-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stable-request.js","sourceRoot":"","sources":["../../src/core/stable-request.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAY3B,wBAAsB,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAChJ,MAAM,EAAE,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EACxG,OAAO,GAAE,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAM,GAC/G,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAofxE"}
1
+ {"version":3,"file":"stable-workflow.d.ts","sourceRoot":"","sources":["../../src/core/stable-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAa3B,wBAAsB,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,gBAAgB,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,kBAAkB,GAAG,GAAG,EAChJ,MAAM,EAAE,qBAAqB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EACxG,OAAO,GAAE,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAM,GAC/G,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAghBxE"}
@@ -1,4 +1,4 @@
1
- import { executeBranchWorkflow, executePhase, executeNonLinearWorkflow, executeWithPersistence, safelyStringify, CircuitBreaker, formatLogContext, MetricsAggregator } from '../utilities/index.js';
1
+ import { executeBranchWorkflow, executePhase, executeNonLinearWorkflow, executeWithPersistence, safelyStringify, CircuitBreaker, formatLogContext, MetricsAggregator, MetricsValidator } from '../utilities/index.js';
2
2
  export async function stableWorkflow(phases, options = {}) {
3
3
  const { stopOnFirstPhaseError = false, logPhaseResults = false, handlePhaseCompletion = ({ workflowId, phaseResult, maxSerializableChars = 1000 }) => console.info(`${formatLogContext({ workflowId })}stable-request:\n`, 'Workflow ID:\n', workflowId, '\nPhase result:\n', safelyStringify(phaseResult, maxSerializableChars)), handlePhaseError = ({ workflowId, error, phaseResult, maxSerializableChars = 1000 }) => console.error(`${formatLogContext({ workflowId })}stable-request:\n`, 'Workflow ID:\n', workflowId, '\nError:\n', safelyStringify({ error, phaseResult }, maxSerializableChars)), handlePhaseDecision = (options) => { }, handleBranchCompletion = ({ success, branchId, workflowId, maxSerializableChars }) => console.info(`${formatLogContext({ workflowId, branchId })}stable-request: Branch ${branchId} completed with status: ${success ? 'SUCCESS' : 'FAILURE'}`), handleBranchDecision = (decision, branchResult, maxSerializableChars) => { }, maxSerializableChars = 1000, requestGroups = [], workflowHookParams = {}, concurrentPhaseExecution = false, enableMixedExecution = false, enableBranchExecution = false, enableNonLinearExecution = false, maxWorkflowIterations = 1000, branches, ...commonGatewayOptions } = options;
4
4
  const workflowStartTime = Date.now();
@@ -60,6 +60,9 @@ export async function stableWorkflow(phases, options = {}) {
60
60
  terminationReason: branchResult.terminationReason
61
61
  };
62
62
  result.metrics = MetricsAggregator.extractWorkflowMetrics(result);
63
+ if (options.metricsGuardrails && result.metrics) {
64
+ result.validation = MetricsValidator.validateWorkflowMetrics(result.metrics, options.metricsGuardrails);
65
+ }
63
66
  const allResponses = phaseResults.flatMap(phase => phase.responses);
64
67
  result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
65
68
  return result;
@@ -106,6 +109,9 @@ export async function stableWorkflow(phases, options = {}) {
106
109
  terminationReason: nonLinearResult.terminationReason
107
110
  };
108
111
  result.metrics = MetricsAggregator.extractWorkflowMetrics(result);
112
+ if (options.metricsGuardrails && result.metrics) {
113
+ result.validation = MetricsValidator.validateWorkflowMetrics(result.metrics, options.metricsGuardrails);
114
+ }
109
115
  const allResponses = phaseResults.flatMap(phase => phase.responses);
110
116
  result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
111
117
  if (logPhaseResults) {
@@ -278,6 +284,9 @@ export async function stableWorkflow(phases, options = {}) {
278
284
  executionHistory: []
279
285
  };
280
286
  result.metrics = MetricsAggregator.extractWorkflowMetrics(result);
287
+ if (options.metricsGuardrails && result.metrics) {
288
+ result.validation = MetricsValidator.validateWorkflowMetrics(result.metrics, options.metricsGuardrails);
289
+ }
281
290
  const allResponses = phaseResults.flatMap(phase => phase.responses);
282
291
  result.requestGroupMetrics = MetricsAggregator.extractRequestGroupMetrics(allResponses);
283
292
  if (logPhaseResults) {
@@ -305,6 +314,9 @@ export async function stableWorkflow(phases, options = {}) {
305
314
  error: workflowError.message
306
315
  };
307
316
  errorResult.metrics = MetricsAggregator.extractWorkflowMetrics(errorResult);
317
+ if (options.metricsGuardrails && errorResult.metrics) {
318
+ errorResult.validation = MetricsValidator.validateWorkflowMetrics(errorResult.metrics, options.metricsGuardrails);
319
+ }
308
320
  return errorResult;
309
321
  }
310
322
  }