@hazeljs/agent 0.2.0-beta.39 → 0.2.0-beta.42
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.
- package/README.md +4 -0
- package/coverage/clover.xml +9 -67
- package/coverage/lcov-report/index.html +19 -19
- package/coverage/lcov.info +17 -131
- package/dist/runtime/agent.runtime.js +2 -2
- package/dist/runtime/agent.runtime.js.map +1 -1
- package/dist/utils/circuit-breaker.d.ts +5 -65
- package/dist/utils/circuit-breaker.d.ts.map +1 -1
- package/dist/utils/circuit-breaker.js +10 -150
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/logs/combined.log +1 -1
- package/package.json +5 -2
- package/tsconfig.tsbuildinfo +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**AI-native Agent Runtime for HazelJS** - Build stateful, long-running agents with tools, memory, and human-in-the-loop workflows.
|
|
4
4
|
|
|
5
|
+
[](https://www.npmjs.com/package/@hazeljs/agent)
|
|
6
|
+
[](https://www.npmjs.com/package/@hazeljs/agent)
|
|
7
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
8
|
+
|
|
5
9
|
## Overview
|
|
6
10
|
|
|
7
11
|
The Agent Runtime is a core primitive in HazelJS designed for building production-grade AI agents. Unlike stateless request handlers, agents are:
|
package/coverage/clover.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
4
|
-
<metrics statements="
|
|
2
|
+
<coverage generated="1772055174614" clover="3.2.0">
|
|
3
|
+
<project timestamp="1772055174615" name="All files">
|
|
4
|
+
<metrics statements="1069" coveredstatements="1006" conditionals="350" coveredconditionals="286" methods="250" coveredmethods="237" elements="1669" coveredelements="1529" complexity="0" loc="1069" ncloc="1069" packages="10" files="23" classes="23"/>
|
|
5
5
|
<package name="src">
|
|
6
6
|
<metrics statements="23" coveredstatements="21" conditionals="5" coveredconditionals="3" methods="12" coveredmethods="12"/>
|
|
7
7
|
<file name="agent.module.ts" path="/home/runner/work/hazeljs/hazeljs/packages/agent/src/agent.module.ts">
|
|
@@ -906,72 +906,14 @@
|
|
|
906
906
|
</file>
|
|
907
907
|
</package>
|
|
908
908
|
<package name="src.utils">
|
|
909
|
-
<metrics statements="
|
|
909
|
+
<metrics statements="244" coveredstatements="241" conditionals="94" coveredconditionals="92" methods="65" coveredmethods="62"/>
|
|
910
910
|
<file name="circuit-breaker.ts" path="/home/runner/work/hazeljs/hazeljs/packages/agent/src/utils/circuit-breaker.ts">
|
|
911
|
-
<metrics statements="
|
|
912
|
-
<line num="6" count="4" type="cond" truecount="2" falsecount="0"/>
|
|
913
|
-
<line num="7" count="4" type="stmt"/>
|
|
914
|
-
<line num="8" count="4" type="stmt"/>
|
|
911
|
+
<metrics statements="5" coveredstatements="5" conditionals="0" coveredconditionals="0" methods="4" coveredmethods="2"/>
|
|
915
912
|
<line num="9" count="4" type="stmt"/>
|
|
916
|
-
<line num="
|
|
917
|
-
<line num="
|
|
918
|
-
<line num="
|
|
919
|
-
<line num="
|
|
920
|
-
<line num="30" count="4" type="stmt"/>
|
|
921
|
-
<line num="31" count="86" type="stmt"/>
|
|
922
|
-
<line num="32" count="86" type="stmt"/>
|
|
923
|
-
<line num="33" count="86" type="stmt"/>
|
|
924
|
-
<line num="34" count="86" type="stmt"/>
|
|
925
|
-
<line num="38" count="86" type="stmt"/>
|
|
926
|
-
<line num="51" count="31" type="cond" truecount="1" falsecount="0"/>
|
|
927
|
-
<line num="52" count="4" type="cond" truecount="1" falsecount="0"/>
|
|
928
|
-
<line num="53" count="1" type="stmt"/>
|
|
929
|
-
<line num="55" count="3" type="stmt"/>
|
|
930
|
-
<line num="59" count="30" type="stmt"/>
|
|
931
|
-
<line num="60" count="30" type="stmt"/>
|
|
932
|
-
<line num="61" count="30" type="stmt"/>
|
|
933
|
-
<line num="62" count="0" type="stmt"/>
|
|
934
|
-
<line num="67" count="30" type="stmt"/>
|
|
935
|
-
<line num="69" count="10" type="stmt"/>
|
|
936
|
-
<line num="70" count="10" type="stmt"/>
|
|
937
|
-
<line num="72" count="20" type="stmt"/>
|
|
938
|
-
<line num="73" count="20" type="stmt"/>
|
|
939
|
-
<line num="75" count="30" type="cond" truecount="1" falsecount="0"/>
|
|
940
|
-
<line num="76" count="30" type="stmt"/>
|
|
941
|
-
<line num="85" count="10" type="stmt"/>
|
|
942
|
-
<line num="87" count="10" type="cond" truecount="1" falsecount="0"/>
|
|
943
|
-
<line num="88" count="4" type="stmt"/>
|
|
944
|
-
<line num="89" count="4" type="cond" truecount="1" falsecount="0"/>
|
|
945
|
-
<line num="90" count="1" type="stmt"/>
|
|
946
|
-
<line num="99" count="20" type="stmt"/>
|
|
947
|
-
<line num="100" count="20" type="stmt"/>
|
|
948
|
-
<line num="102" count="20" type="cond" truecount="1" falsecount="0"/>
|
|
949
|
-
<line num="103" count="6" type="stmt"/>
|
|
950
|
-
<line num="111" count="13" type="cond" truecount="1" falsecount="0"/>
|
|
951
|
-
<line num="112" count="2" type="stmt"/>
|
|
952
|
-
<line num="115" count="11" type="stmt"/>
|
|
953
|
-
<line num="117" count="11" type="cond" truecount="2" falsecount="0"/>
|
|
954
|
-
<line num="118" count="6" type="stmt"/>
|
|
955
|
-
<line num="119" count="5" type="cond" truecount="2" falsecount="0"/>
|
|
956
|
-
<line num="120" count="2" type="stmt"/>
|
|
957
|
-
<line num="121" count="2" type="stmt"/>
|
|
958
|
-
<line num="122" count="3" type="cond" truecount="1" falsecount="0"/>
|
|
959
|
-
<line num="123" count="3" type="stmt"/>
|
|
960
|
-
<line num="126" count="11" type="stmt"/>
|
|
961
|
-
<line num="133" count="10" type="stmt"/>
|
|
962
|
-
<line num="140" count="5" type="stmt"/>
|
|
963
|
-
<line num="147" count="3" type="stmt"/>
|
|
964
|
-
<line num="154" count="3" type="stmt"/>
|
|
965
|
-
<line num="161" count="0" type="cond" truecount="0" falsecount="1"/>
|
|
966
|
-
<line num="162" count="0" type="stmt"/>
|
|
967
|
-
<line num="164" count="0" type="stmt"/>
|
|
968
|
-
<line num="171" count="4" type="stmt"/>
|
|
969
|
-
<line num="172" count="0" type="stmt"/>
|
|
970
|
-
<line num="174" count="0" type="stmt"/>
|
|
971
|
-
<line num="175" count="0" type="stmt"/>
|
|
972
|
-
<line num="177" count="0" type="stmt"/>
|
|
973
|
-
<line num="178" count="0" type="stmt"/>
|
|
974
|
-
<line num="181" count="0" type="stmt"/>
|
|
913
|
+
<line num="10" count="13" type="stmt"/>
|
|
914
|
+
<line num="11" count="4" type="stmt"/>
|
|
915
|
+
<line num="12" count="90" type="stmt"/>
|
|
916
|
+
<line num="14" count="4" type="stmt"/>
|
|
975
917
|
</file>
|
|
976
918
|
<file name="health-check.ts" path="/home/runner/work/hazeljs/hazeljs/packages/agent/src/utils/health-check.ts">
|
|
977
919
|
<metrics statements="58" coveredstatements="57" conditionals="21" coveredconditionals="21" methods="15" coveredmethods="15"/>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">94.13% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1028/1092</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">81.71% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>286/350</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">94.8% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>237/250</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">94.1% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1006/1069</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -215,17 +215,17 @@
|
|
|
215
215
|
|
|
216
216
|
<tr>
|
|
217
217
|
<td class="file high" data-value="src/utils"><a href="src/utils/index.html">src/utils</a></td>
|
|
218
|
-
<td data-value="
|
|
219
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
218
|
+
<td data-value="98.81" class="pic high">
|
|
219
|
+
<div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
|
|
220
220
|
</td>
|
|
221
|
-
<td data-value="
|
|
222
|
-
<td data-value="
|
|
223
|
-
<td data-value="97.
|
|
224
|
-
<td data-value="
|
|
225
|
-
<td data-value="
|
|
226
|
-
<td data-value="
|
|
227
|
-
<td data-value="
|
|
228
|
-
<td data-value="
|
|
221
|
+
<td data-value="98.81" class="pct high">98.81%</td>
|
|
222
|
+
<td data-value="254" class="abs high">251/254</td>
|
|
223
|
+
<td data-value="97.87" class="pct high">97.87%</td>
|
|
224
|
+
<td data-value="94" class="abs high">92/94</td>
|
|
225
|
+
<td data-value="95.38" class="pct high">95.38%</td>
|
|
226
|
+
<td data-value="65" class="abs high">62/65</td>
|
|
227
|
+
<td data-value="98.77" class="pct high">98.77%</td>
|
|
228
|
+
<td data-value="244" class="abs high">241/244</td>
|
|
229
229
|
</tr>
|
|
230
230
|
|
|
231
231
|
</tbody>
|
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
237
237
|
Code coverage generated by
|
|
238
238
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
239
|
-
at 2026-02-
|
|
239
|
+
at 2026-02-25T21:32:54.593Z
|
|
240
240
|
</div>
|
|
241
241
|
<script src="prettify.js"></script>
|
|
242
242
|
<script>
|
package/coverage/lcov.info
CHANGED
|
@@ -1604,139 +1604,25 @@ BRH:2
|
|
|
1604
1604
|
end_of_record
|
|
1605
1605
|
TN:
|
|
1606
1606
|
SF:src/utils/circuit-breaker.ts
|
|
1607
|
-
FN:
|
|
1608
|
-
FN:
|
|
1609
|
-
FN:
|
|
1610
|
-
FN:
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
FN:98,(anonymous_8)
|
|
1616
|
-
FN:110,(anonymous_9)
|
|
1617
|
-
FN:132,(anonymous_10)
|
|
1618
|
-
FN:139,(anonymous_11)
|
|
1619
|
-
FN:146,(anonymous_12)
|
|
1620
|
-
FN:153,(anonymous_13)
|
|
1621
|
-
FN:160,(anonymous_14)
|
|
1622
|
-
FN:171,WithCircuitBreaker
|
|
1623
|
-
FN:174,(anonymous_16)
|
|
1624
|
-
FN:177,(anonymous_17)
|
|
1625
|
-
FN:178,(anonymous_18)
|
|
1626
|
-
FNF:19
|
|
1627
|
-
FNH:13
|
|
1628
|
-
FNDA:4,(anonymous_0)
|
|
1629
|
-
FNDA:1,(anonymous_1)
|
|
1607
|
+
FN:10,(anonymous_0)
|
|
1608
|
+
FN:11,(anonymous_1)
|
|
1609
|
+
FN:12,(anonymous_2)
|
|
1610
|
+
FN:14,(anonymous_3)
|
|
1611
|
+
FNF:4
|
|
1612
|
+
FNH:2
|
|
1613
|
+
FNDA:9,(anonymous_0)
|
|
1614
|
+
FNDA:0,(anonymous_1)
|
|
1630
1615
|
FNDA:86,(anonymous_2)
|
|
1631
|
-
FNDA:
|
|
1632
|
-
FNDA:31,(anonymous_4)
|
|
1633
|
-
FNDA:30,(anonymous_5)
|
|
1634
|
-
FNDA:0,(anonymous_6)
|
|
1635
|
-
FNDA:10,(anonymous_7)
|
|
1636
|
-
FNDA:20,(anonymous_8)
|
|
1637
|
-
FNDA:13,(anonymous_9)
|
|
1638
|
-
FNDA:10,(anonymous_10)
|
|
1639
|
-
FNDA:5,(anonymous_11)
|
|
1640
|
-
FNDA:3,(anonymous_12)
|
|
1641
|
-
FNDA:3,(anonymous_13)
|
|
1642
|
-
FNDA:0,(anonymous_14)
|
|
1643
|
-
FNDA:0,WithCircuitBreaker
|
|
1644
|
-
FNDA:0,(anonymous_16)
|
|
1645
|
-
FNDA:0,(anonymous_17)
|
|
1646
|
-
FNDA:0,(anonymous_18)
|
|
1647
|
-
DA:6,4
|
|
1648
|
-
DA:7,4
|
|
1649
|
-
DA:8,4
|
|
1616
|
+
FNDA:0,(anonymous_3)
|
|
1650
1617
|
DA:9,4
|
|
1651
|
-
DA:
|
|
1652
|
-
DA:
|
|
1653
|
-
DA:
|
|
1654
|
-
DA:
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
DA:34,86
|
|
1660
|
-
DA:38,86
|
|
1661
|
-
DA:51,31
|
|
1662
|
-
DA:52,4
|
|
1663
|
-
DA:53,1
|
|
1664
|
-
DA:55,3
|
|
1665
|
-
DA:59,30
|
|
1666
|
-
DA:60,30
|
|
1667
|
-
DA:61,30
|
|
1668
|
-
DA:62,0
|
|
1669
|
-
DA:67,30
|
|
1670
|
-
DA:69,10
|
|
1671
|
-
DA:70,10
|
|
1672
|
-
DA:72,20
|
|
1673
|
-
DA:73,20
|
|
1674
|
-
DA:75,30
|
|
1675
|
-
DA:76,30
|
|
1676
|
-
DA:85,10
|
|
1677
|
-
DA:87,10
|
|
1678
|
-
DA:88,4
|
|
1679
|
-
DA:89,4
|
|
1680
|
-
DA:90,1
|
|
1681
|
-
DA:99,20
|
|
1682
|
-
DA:100,20
|
|
1683
|
-
DA:102,20
|
|
1684
|
-
DA:103,6
|
|
1685
|
-
DA:111,13
|
|
1686
|
-
DA:112,2
|
|
1687
|
-
DA:115,11
|
|
1688
|
-
DA:117,11
|
|
1689
|
-
DA:118,6
|
|
1690
|
-
DA:119,5
|
|
1691
|
-
DA:120,2
|
|
1692
|
-
DA:121,2
|
|
1693
|
-
DA:122,3
|
|
1694
|
-
DA:123,3
|
|
1695
|
-
DA:126,11
|
|
1696
|
-
DA:133,10
|
|
1697
|
-
DA:140,5
|
|
1698
|
-
DA:147,3
|
|
1699
|
-
DA:154,3
|
|
1700
|
-
DA:161,0
|
|
1701
|
-
DA:162,0
|
|
1702
|
-
DA:164,0
|
|
1703
|
-
DA:171,4
|
|
1704
|
-
DA:172,0
|
|
1705
|
-
DA:174,0
|
|
1706
|
-
DA:175,0
|
|
1707
|
-
DA:177,0
|
|
1708
|
-
DA:178,0
|
|
1709
|
-
DA:181,0
|
|
1710
|
-
LF:63
|
|
1711
|
-
LH:53
|
|
1712
|
-
BRDA:6,0,0,4
|
|
1713
|
-
BRDA:6,0,1,4
|
|
1714
|
-
BRDA:37,1,0,3
|
|
1715
|
-
BRDA:39,2,0,86
|
|
1716
|
-
BRDA:39,2,1,3
|
|
1717
|
-
BRDA:40,3,0,86
|
|
1718
|
-
BRDA:40,3,1,8
|
|
1719
|
-
BRDA:41,4,0,86
|
|
1720
|
-
BRDA:41,4,1,86
|
|
1721
|
-
BRDA:42,5,0,86
|
|
1722
|
-
BRDA:42,5,1,6
|
|
1723
|
-
BRDA:43,6,0,86
|
|
1724
|
-
BRDA:43,6,1,9
|
|
1725
|
-
BRDA:51,7,0,4
|
|
1726
|
-
BRDA:52,8,0,1
|
|
1727
|
-
BRDA:75,9,0,30
|
|
1728
|
-
BRDA:87,10,0,4
|
|
1729
|
-
BRDA:89,11,0,1
|
|
1730
|
-
BRDA:102,12,0,6
|
|
1731
|
-
BRDA:111,13,0,2
|
|
1732
|
-
BRDA:117,14,0,6
|
|
1733
|
-
BRDA:117,14,1,5
|
|
1734
|
-
BRDA:119,15,0,2
|
|
1735
|
-
BRDA:119,15,1,3
|
|
1736
|
-
BRDA:122,16,0,3
|
|
1737
|
-
BRDA:161,17,0,0
|
|
1738
|
-
BRF:26
|
|
1739
|
-
BRH:25
|
|
1618
|
+
DA:10,13
|
|
1619
|
+
DA:11,4
|
|
1620
|
+
DA:12,90
|
|
1621
|
+
DA:14,4
|
|
1622
|
+
LF:5
|
|
1623
|
+
LH:5
|
|
1624
|
+
BRF:0
|
|
1625
|
+
BRH:0
|
|
1740
1626
|
end_of_record
|
|
1741
1627
|
TN:
|
|
1742
1628
|
SF:src/utils/health-check.ts
|
|
@@ -70,8 +70,8 @@ class AgentRuntime {
|
|
|
70
70
|
failureThreshold: 5,
|
|
71
71
|
successThreshold: 2,
|
|
72
72
|
resetTimeout: 30000,
|
|
73
|
-
onStateChange: (
|
|
74
|
-
this.logger.warn('Circuit breaker state changed', { state });
|
|
73
|
+
onStateChange: (_from, to) => {
|
|
74
|
+
this.logger.warn('Circuit breaker state changed', { state: to });
|
|
75
75
|
},
|
|
76
76
|
});
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.runtime.js","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAA2D;AAC3D,6DAAyD;AACzD,sDAAyD;AAEzD,4DAA+D;AAC/D,+DAA2D;AAC3D,6DAAyD;AACzD,2DAA4D;AAC5D,sDAK8B;AAK9B,wDAAoD;AACpD,8CAAoD;AACpD,4CAAmD;AACnD,0CAA8C;AAC9C,8DAA0D;AAC1D,wDAAyE;AAoBzE;;;GAGG;AACH,MAAa,YAAY;IAgBvB,YAAY,SAA6B,EAAE;QACzC,IAAI,CAAC,MAAM,GAAG;YACZ,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,MAAM;YACtB,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,iBAAQ,CAAC,IAAI;YACvB,GAAG,MAAM;SACV,CAAC;QAEF,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1D,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC;gBACjC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;aAChD,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAC3C,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;aAChD,CAAC,CAAC;QACL,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,0BAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACpD,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAY,CAAC;gBACnC,UAAU,EAAE,CAAC;gBACb,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,CAAC,OAAe,EAAE,KAAY,EAAQ,EAAE;oBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;wBACrC,OAAO;wBACP,KAAK,EAAE,KAAK,CAAC,OAAO;qBACrB,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC;gBACvC,gBAAgB,EAAE,CAAC;gBACnB,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"agent.runtime.js","sourceRoot":"","sources":["../../src/runtime/agent.runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Circuit Breaker Pattern
|
|
3
|
-
*
|
|
3
|
+
* Re-exports from @hazeljs/resilience for backward compatibility.
|
|
4
|
+
*
|
|
5
|
+
* @deprecated Import directly from '@hazeljs/resilience' instead.
|
|
6
|
+
* This module is kept for backward compatibility with existing agent code.
|
|
4
7
|
*/
|
|
5
|
-
export
|
|
6
|
-
CLOSED = "CLOSED",
|
|
7
|
-
OPEN = "OPEN",
|
|
8
|
-
HALF_OPEN = "HALF_OPEN"
|
|
9
|
-
}
|
|
10
|
-
export interface CircuitBreakerConfig {
|
|
11
|
-
failureThreshold: number;
|
|
12
|
-
successThreshold: number;
|
|
13
|
-
timeout: number;
|
|
14
|
-
resetTimeout: number;
|
|
15
|
-
onStateChange?: (state: CircuitState) => void;
|
|
16
|
-
}
|
|
17
|
-
export declare class CircuitBreakerError extends Error {
|
|
18
|
-
readonly state: CircuitState;
|
|
19
|
-
constructor(message: string, state: CircuitState);
|
|
20
|
-
}
|
|
21
|
-
export declare class CircuitBreaker {
|
|
22
|
-
private state;
|
|
23
|
-
private failureCount;
|
|
24
|
-
private successCount;
|
|
25
|
-
private nextAttempt;
|
|
26
|
-
private config;
|
|
27
|
-
constructor(config?: Partial<CircuitBreakerConfig>);
|
|
28
|
-
/**
|
|
29
|
-
* Execute a function with circuit breaker protection
|
|
30
|
-
*/
|
|
31
|
-
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
32
|
-
/**
|
|
33
|
-
* Handle successful execution
|
|
34
|
-
*/
|
|
35
|
-
private onSuccess;
|
|
36
|
-
/**
|
|
37
|
-
* Handle failed execution
|
|
38
|
-
*/
|
|
39
|
-
private onFailure;
|
|
40
|
-
/**
|
|
41
|
-
* Transition to a new state
|
|
42
|
-
*/
|
|
43
|
-
private transitionTo;
|
|
44
|
-
/**
|
|
45
|
-
* Get current state
|
|
46
|
-
*/
|
|
47
|
-
getState(): CircuitState;
|
|
48
|
-
/**
|
|
49
|
-
* Get failure count
|
|
50
|
-
*/
|
|
51
|
-
getFailureCount(): number;
|
|
52
|
-
/**
|
|
53
|
-
* Get success count
|
|
54
|
-
*/
|
|
55
|
-
getSuccessCount(): number;
|
|
56
|
-
/**
|
|
57
|
-
* Manually reset the circuit breaker
|
|
58
|
-
*/
|
|
59
|
-
reset(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Get time until next attempt (for OPEN state)
|
|
62
|
-
*/
|
|
63
|
-
getTimeUntilNextAttempt(): number;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Decorator for automatic circuit breaker
|
|
67
|
-
*/
|
|
68
|
-
export declare function WithCircuitBreaker(config?: Partial<CircuitBreakerConfig>): MethodDecorator;
|
|
8
|
+
export { CircuitState, CircuitBreakerError, CircuitBreaker, CircuitBreakerConfig, WithCircuitBreaker, } from '@hazeljs/resilience';
|
|
69
9
|
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,156 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Circuit Breaker Pattern
|
|
4
|
-
*
|
|
4
|
+
* Re-exports from @hazeljs/resilience for backward compatibility.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated Import directly from '@hazeljs/resilience' instead.
|
|
7
|
+
* This module is kept for backward compatibility with existing agent code.
|
|
5
8
|
*/
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.CircuitBreaker = exports.CircuitBreakerError = exports.CircuitState = void 0;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(function (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
CircuitState["HALF_OPEN"] = "HALF_OPEN";
|
|
14
|
-
})(CircuitState || (exports.CircuitState = CircuitState = {}));
|
|
15
|
-
class CircuitBreakerError extends Error {
|
|
16
|
-
constructor(message, state) {
|
|
17
|
-
super(message);
|
|
18
|
-
this.state = state;
|
|
19
|
-
this.name = 'CircuitBreakerError';
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.CircuitBreakerError = CircuitBreakerError;
|
|
23
|
-
class CircuitBreaker {
|
|
24
|
-
constructor(config = {}) {
|
|
25
|
-
this.state = CircuitState.CLOSED;
|
|
26
|
-
this.failureCount = 0;
|
|
27
|
-
this.successCount = 0;
|
|
28
|
-
this.nextAttempt = Date.now();
|
|
29
|
-
this.config = {
|
|
30
|
-
failureThreshold: config.failureThreshold ?? 5,
|
|
31
|
-
successThreshold: config.successThreshold ?? 2,
|
|
32
|
-
timeout: config.timeout ?? 60000,
|
|
33
|
-
resetTimeout: config.resetTimeout ?? 30000,
|
|
34
|
-
onStateChange: config.onStateChange ?? (() => { }),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Execute a function with circuit breaker protection
|
|
39
|
-
*/
|
|
40
|
-
async execute(fn) {
|
|
41
|
-
if (this.state === CircuitState.OPEN) {
|
|
42
|
-
if (Date.now() < this.nextAttempt) {
|
|
43
|
-
throw new CircuitBreakerError('Circuit breaker is OPEN - service unavailable', this.state);
|
|
44
|
-
}
|
|
45
|
-
this.transitionTo(CircuitState.HALF_OPEN);
|
|
46
|
-
}
|
|
47
|
-
let timeoutId;
|
|
48
|
-
try {
|
|
49
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
50
|
-
timeoutId = setTimeout(() => reject(new Error('Circuit breaker timeout')), this.config.timeout);
|
|
51
|
-
});
|
|
52
|
-
const result = await Promise.race([fn(), timeoutPromise]);
|
|
53
|
-
this.onSuccess();
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
this.onFailure();
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
finally {
|
|
61
|
-
if (timeoutId) {
|
|
62
|
-
clearTimeout(timeoutId);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Handle successful execution
|
|
68
|
-
*/
|
|
69
|
-
onSuccess() {
|
|
70
|
-
this.failureCount = 0;
|
|
71
|
-
if (this.state === CircuitState.HALF_OPEN) {
|
|
72
|
-
this.successCount++;
|
|
73
|
-
if (this.successCount >= this.config.successThreshold) {
|
|
74
|
-
this.transitionTo(CircuitState.CLOSED);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Handle failed execution
|
|
80
|
-
*/
|
|
81
|
-
onFailure() {
|
|
82
|
-
this.failureCount++;
|
|
83
|
-
this.successCount = 0;
|
|
84
|
-
if (this.failureCount >= this.config.failureThreshold) {
|
|
85
|
-
this.transitionTo(CircuitState.OPEN);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Transition to a new state
|
|
90
|
-
*/
|
|
91
|
-
transitionTo(newState) {
|
|
92
|
-
if (this.state === newState) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
this.state = newState;
|
|
96
|
-
if (newState === CircuitState.OPEN) {
|
|
97
|
-
this.nextAttempt = Date.now() + this.config.resetTimeout;
|
|
98
|
-
}
|
|
99
|
-
else if (newState === CircuitState.CLOSED) {
|
|
100
|
-
this.failureCount = 0;
|
|
101
|
-
this.successCount = 0;
|
|
102
|
-
}
|
|
103
|
-
else if (newState === CircuitState.HALF_OPEN) {
|
|
104
|
-
this.successCount = 0;
|
|
105
|
-
}
|
|
106
|
-
this.config.onStateChange(newState);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get current state
|
|
110
|
-
*/
|
|
111
|
-
getState() {
|
|
112
|
-
return this.state;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Get failure count
|
|
116
|
-
*/
|
|
117
|
-
getFailureCount() {
|
|
118
|
-
return this.failureCount;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Get success count
|
|
122
|
-
*/
|
|
123
|
-
getSuccessCount() {
|
|
124
|
-
return this.successCount;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Manually reset the circuit breaker
|
|
128
|
-
*/
|
|
129
|
-
reset() {
|
|
130
|
-
this.transitionTo(CircuitState.CLOSED);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Get time until next attempt (for OPEN state)
|
|
134
|
-
*/
|
|
135
|
-
getTimeUntilNextAttempt() {
|
|
136
|
-
if (this.state !== CircuitState.OPEN) {
|
|
137
|
-
return 0;
|
|
138
|
-
}
|
|
139
|
-
return Math.max(0, this.nextAttempt - Date.now());
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
exports.CircuitBreaker = CircuitBreaker;
|
|
143
|
-
/**
|
|
144
|
-
* Decorator for automatic circuit breaker
|
|
145
|
-
*/
|
|
146
|
-
function WithCircuitBreaker(config) {
|
|
147
|
-
const circuitBreaker = new CircuitBreaker(config);
|
|
148
|
-
return function (target, propertyKey, descriptor) {
|
|
149
|
-
const originalMethod = descriptor.value;
|
|
150
|
-
descriptor.value = async function (...args) {
|
|
151
|
-
return circuitBreaker.execute(() => originalMethod.apply(this, args));
|
|
152
|
-
};
|
|
153
|
-
return descriptor;
|
|
154
|
-
};
|
|
155
|
-
}
|
|
10
|
+
exports.WithCircuitBreaker = exports.CircuitBreaker = exports.CircuitBreakerError = exports.CircuitState = void 0;
|
|
11
|
+
var resilience_1 = require("@hazeljs/resilience");
|
|
12
|
+
Object.defineProperty(exports, "CircuitState", { enumerable: true, get: function () { return resilience_1.CircuitState; } });
|
|
13
|
+
Object.defineProperty(exports, "CircuitBreakerError", { enumerable: true, get: function () { return resilience_1.CircuitBreakerError; } });
|
|
14
|
+
Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return resilience_1.CircuitBreaker; } });
|
|
15
|
+
Object.defineProperty(exports, "WithCircuitBreaker", { enumerable: true, get: function () { return resilience_1.WithCircuitBreaker; } });
|
|
156
16
|
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,kDAM6B;AAL3B,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,4GAAA,cAAc,OAAA;AAEd,gHAAA,kBAAkB,OAAA"}
|