claude-flow 2.0.0-alpha.84 → 2.0.0-alpha.85
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/.claude/checkpoints/1754316298.json +1 -0
- package/.claude/checkpoints/1754317527.json +1 -0
- package/.claude/checkpoints/1754317611.json +1 -0
- package/.claude/checkpoints/1754317822.json +1 -0
- package/.claude/checkpoints/1754318017.json +1 -0
- package/.claude/checkpoints/1754318655.json +1 -0
- package/.claude/checkpoints/1754318657.json +1 -0
- package/.claude/checkpoints/1754318756.json +1 -0
- package/.claude/checkpoints/1754318758.json +1 -0
- package/.claude/checkpoints/1754318776.json +1 -0
- package/.claude/checkpoints/1754318778.json +1 -0
- package/.claude/checkpoints/1754318972.json +1 -0
- package/.claude/checkpoints/1754318974.json +1 -0
- package/.claude/checkpoints/1754318985.json +1 -0
- package/.claude/checkpoints/1754318988.json +1 -0
- package/.claude/checkpoints/1754319014.json +1 -0
- package/.claude/checkpoints/1754319017.json +1 -0
- package/.claude/checkpoints/1754319028.json +1 -0
- package/.claude/checkpoints/1754319031.json +1 -0
- package/.claude/checkpoints/1754319268.json +1 -0
- package/.claude/checkpoints/1754319272.json +1 -0
- package/.claude/checkpoints/1754319959.json +1 -0
- package/.claude/checkpoints/1754319962.json +1 -0
- package/.claude/checkpoints/1754319969.json +1 -0
- package/.claude/checkpoints/1754319970.json +1 -0
- package/.claude/checkpoints/1754319981.json +1 -0
- package/.claude/checkpoints/1754319983.json +1 -0
- package/.claude/checkpoints/1754319996.json +1 -0
- package/.claude/checkpoints/1754319998.json +1 -0
- package/.claude/checkpoints/1754320004.json +1 -0
- package/.claude/checkpoints/1754320006.json +1 -0
- package/.claude/checkpoints/1754320043.json +1 -0
- package/.claude/checkpoints/1754320045.json +1 -0
- package/.claude/checkpoints/1754320061.json +1 -0
- package/.claude/checkpoints/1754320063.json +1 -0
- package/.claude/checkpoints/1754320082.json +1 -0
- package/.claude/checkpoints/1754320084.json +1 -0
- package/.claude/checkpoints/1754320091.json +1 -0
- package/.claude/checkpoints/1754320093.json +1 -0
- package/.claude/checkpoints/1754320121.json +1 -0
- package/.claude/checkpoints/1754320123.json +1 -0
- package/.claude/checkpoints/1754320129.json +1 -0
- package/.claude/checkpoints/1754320130.json +1 -0
- package/.claude/checkpoints/1754320141.json +1 -0
- package/.claude/checkpoints/1754320142.json +1 -0
- package/.claude/checkpoints/1754320144.json +1 -0
- package/.claude/checkpoints/1754320146.json +1 -0
- package/.claude/checkpoints/1754320147.json +1 -0
- package/.claude/checkpoints/1754320149.json +1 -0
- package/.claude/checkpoints/1754320150.json +1 -0
- package/.claude/checkpoints/1754320151.json +1 -0
- package/.claude/checkpoints/1754320157.json +1 -0
- package/.claude/checkpoints/1754320158.json +1 -0
- package/.claude/checkpoints/1754320172.json +1 -0
- package/.claude/checkpoints/1754320174.json +1 -0
- package/.claude/checkpoints/1754320208.json +1 -0
- package/.claude/checkpoints/1754320210.json +1 -0
- package/.claude/checkpoints/1754320211.json +1 -0
- package/.claude/checkpoints/1754320212.json +1 -0
- package/.claude/checkpoints/1754320213.json +1 -0
- package/.claude/checkpoints/1754320214.json +1 -0
- package/.claude/checkpoints/1754320215.json +1 -0
- package/.claude/checkpoints/1754320218.json +1 -0
- package/.claude/checkpoints/1754320219.json +1 -0
- package/.claude/checkpoints/1754320220.json +1 -0
- package/.claude/checkpoints/1754320221.json +1 -0
- package/.claude/checkpoints/1754320223.json +1 -0
- package/.claude/checkpoints/1754320225.json +1 -0
- package/.claude/checkpoints/1754320226.json +1 -0
- package/.claude/checkpoints/1754320227.json +1 -0
- package/.claude/checkpoints/1754320235.json +1 -0
- package/.claude/checkpoints/1754320237.json +1 -0
- package/.claude/checkpoints/1754320256.json +1 -0
- package/.claude/checkpoints/1754320258.json +1 -0
- package/.claude/checkpoints/1754320270.json +1 -0
- package/.claude/checkpoints/1754320271.json +1 -0
- package/.claude/checkpoints/1754320275.json +1 -0
- package/.claude/checkpoints/1754320282.json +1 -0
- package/.claude/checkpoints/1754320334.json +1 -0
- package/.claude/checkpoints/1754320336.json +1 -0
- package/.claude/checkpoints/1754320508.json +1 -0
- package/.claude/checkpoints/1754320512.json +1 -0
- package/.claude/checkpoints/1754322341.json +1 -0
- package/.claude/checkpoints/1754322346.json +1 -0
- package/.claude/checkpoints/1754322516.json +1 -0
- package/.claude/checkpoints/1754322518.json +1 -0
- package/.claude/checkpoints/1754323023.json +1 -0
- package/.claude/checkpoints/1754323036.json +1 -0
- package/.claude/checkpoints/1754323081.json +1 -0
- package/.claude/checkpoints/1754323094.json +1 -0
- package/.claude/checkpoints/1754323139.json +1 -0
- package/.claude/checkpoints/1754323152.json +1 -0
- package/.claude/checkpoints/1754334379.json +1 -0
- package/.claude/checkpoints/1754334382.json +1 -0
- package/.claude/checkpoints/1754334388.json +1 -0
- package/.claude/checkpoints/1754334393.json +1 -0
- package/.claude/checkpoints/1754334558.json +1 -0
- package/.claude/checkpoints/1754334559.json +1 -0
- package/.claude/checkpoints/1754335162.json +1 -0
- package/.claude/checkpoints/1754335163.json +1 -0
- package/.claude/checkpoints/1754335177.json +1 -0
- package/.claude/checkpoints/1754335178.json +1 -0
- package/.claude/checkpoints/1754335216.json +1 -0
- package/.claude/checkpoints/1754335218.json +1 -0
- package/.claude/checkpoints/1754335264.json +1 -0
- package/.claude/checkpoints/1754335266.json +1 -0
- package/.claude/checkpoints/1754335281.json +1 -0
- package/.claude/checkpoints/1754335283.json +1 -0
- package/.claude/checkpoints/1754335295.json +1 -0
- package/.claude/checkpoints/1754335296.json +1 -0
- package/.claude/checkpoints/1754335317.json +1 -0
- package/.claude/checkpoints/1754335319.json +1 -0
- package/.claude/checkpoints/1754335481.json +1 -0
- package/.claude/checkpoints/1754335484.json +1 -0
- package/.claude/checkpoints/1754335657.json +1 -0
- package/.claude/checkpoints/1754335659.json +1 -0
- package/.claude/checkpoints/1754335686.json +1 -0
- package/.claude/checkpoints/1754335688.json +1 -0
- package/.claude/checkpoints/1754335831.json +1 -0
- package/.claude/checkpoints/1754335832.json +1 -0
- package/.claude/checkpoints/1754335878.json +1 -0
- package/.claude/checkpoints/1754335888.json +1 -0
- package/.claude/checkpoints/1754335912.json +1 -0
- package/.claude/checkpoints/1754335914.json +1 -0
- package/.claude/checkpoints/1754335965.json +1 -0
- package/.claude/checkpoints/1754335967.json +1 -0
- package/.claude/checkpoints/1754336002.json +1 -0
- package/.claude/checkpoints/1754336004.json +1 -0
- package/.claude/checkpoints/1754337527.json +1 -0
- package/.claude/checkpoints/1754337529.json +1 -0
- package/.claude/checkpoints/1754337541.json +1 -0
- package/.claude/checkpoints/1754337543.json +1 -0
- package/.claude/checkpoints/1754337560.json +1 -0
- package/.claude/checkpoints/1754337562.json +1 -0
- package/.claude/checkpoints/1754337586.json +1 -0
- package/.claude/checkpoints/1754337588.json +1 -0
- package/.claude/checkpoints/1754337642.json +1 -0
- package/.claude/checkpoints/1754337643.json +1 -0
- package/.claude/checkpoints/1754337645.json +1 -0
- package/.claude/checkpoints/1754337647.json +1 -0
- package/.claude/checkpoints/1754337725.json +1 -0
- package/.claude/checkpoints/1754337727.json +1 -0
- package/.claude/checkpoints/1754338050.json +1 -0
- package/.claude/checkpoints/1754338052.json +1 -0
- package/.claude/checkpoints/1754338130.json +1 -0
- package/.claude/checkpoints/1754338131.json +1 -0
- package/.claude/checkpoints/1754338177.json +1 -0
- package/.claude/checkpoints/1754338179.json +1 -0
- package/.claude/checkpoints/1754338189.json +1 -0
- package/.claude/checkpoints/1754338191.json +1 -0
- package/.claude/checkpoints/1754338227.json +1 -0
- package/.claude/checkpoints/1754338229.json +1 -0
- package/.claude/checkpoints/1754338237.json +1 -0
- package/.claude/checkpoints/1754338239.json +1 -0
- package/.claude/checkpoints/1754338319.json +1 -0
- package/.claude/checkpoints/1754338321.json +1 -0
- package/.claude/checkpoints/1754338337.json +1 -0
- package/.claude/checkpoints/1754338339.json +1 -0
- package/.claude/checkpoints/1754338431.json +1 -0
- package/.claude/checkpoints/1754338433.json +1 -0
- package/.claude/checkpoints/1754338444.json +1 -0
- package/.claude/checkpoints/1754338445.json +1 -0
- package/.claude/checkpoints/1754338682.json +1 -0
- package/.claude/checkpoints/1754338684.json +1 -0
- package/.claude/checkpoints/1754338746.json +1 -0
- package/.claude/checkpoints/1754338748.json +1 -0
- package/.claude/checkpoints/1754338777.json +1 -0
- package/.claude/checkpoints/1754338779.json +1 -0
- package/.claude/checkpoints/1754338796.json +1 -0
- package/.claude/checkpoints/1754338797.json +1 -0
- package/.claude/checkpoints/1754338813.json +1 -0
- package/.claude/checkpoints/1754338814.json +1 -0
- package/.claude/checkpoints/1754338960.json +1 -0
- package/.claude/checkpoints/1754338962.json +1 -0
- package/.claude/checkpoints/1754338973.json +1 -0
- package/.claude/checkpoints/1754338975.json +1 -0
- package/.claude/checkpoints/1754338997.json +1 -0
- package/.claude/checkpoints/1754338999.json +1 -0
- package/.claude/checkpoints/1754339024.json +1 -0
- package/.claude/checkpoints/1754339026.json +1 -0
- package/.claude/checkpoints/1754339317.json +1 -0
- package/.claude/checkpoints/1754339318.json +1 -0
- package/.claude/checkpoints/1754339400.json +1 -0
- package/.claude/checkpoints/1754339402.json +1 -0
- package/.claude/checkpoints/1754339417.json +1 -0
- package/.claude/checkpoints/1754339418.json +1 -0
- package/.claude/checkpoints/1754339457.json +1 -0
- package/.claude/checkpoints/1754339459.json +1 -0
- package/.claude/checkpoints/1754339480.json +1 -0
- package/.claude/checkpoints/1754339482.json +1 -0
- package/.claude/checkpoints/1754339494.json +1 -0
- package/.claude/checkpoints/1754339496.json +1 -0
- package/.claude/checkpoints/1754339507.json +1 -0
- package/.claude/checkpoints/1754339508.json +1 -0
- package/.claude/checkpoints/1754339517.json +1 -0
- package/.claude/checkpoints/1754339519.json +1 -0
- package/.claude/checkpoints/1754339528.json +1 -0
- package/.claude/checkpoints/1754339530.json +1 -0
- package/.claude/checkpoints/1754341827.json +1 -0
- package/.claude/checkpoints/1754341831.json +1 -0
- package/.claude/checkpoints/1754341840.json +1 -0
- package/.claude/checkpoints/1754341842.json +1 -0
- package/.claude/checkpoints/1754341879.json +1 -0
- package/.claude/checkpoints/1754341881.json +1 -0
- package/.claude/checkpoints/1754341901.json +1 -0
- package/.claude/checkpoints/1754341920.json +1 -0
- package/.claude/checkpoints/1754341922.json +1 -0
- package/.claude/checkpoints/1754342050.json +1 -0
- package/.claude/checkpoints/1754342051.json +1 -0
- package/.claude/checkpoints/1754342060.json +1 -0
- package/.claude/checkpoints/1754342061.json +1 -0
- package/.claude/checkpoints/1754342075.json +1 -0
- package/.claude/checkpoints/1754342077.json +1 -0
- package/.claude/checkpoints/1754342157.json +1 -0
- package/.claude/checkpoints/1754342159.json +1 -0
- package/.claude/checkpoints/1754342315.json +1 -0
- package/.claude/checkpoints/1754342317.json +1 -0
- package/.claude/checkpoints/1754342352.json +1 -0
- package/.claude/checkpoints/1754342354.json +1 -0
- package/.claude/checkpoints/1754342364.json +1 -0
- package/.claude/checkpoints/1754342365.json +1 -0
- package/.claude/checkpoints/1754342377.json +1 -0
- package/.claude/checkpoints/1754342379.json +1 -0
- package/.claude/checkpoints/1754342387.json +1 -0
- package/.claude/checkpoints/1754342389.json +1 -0
- package/.claude/checkpoints/1754342504.json +1 -0
- package/.claude/checkpoints/1754342505.json +1 -0
- package/.claude/checkpoints/1754342515.json +1 -0
- package/.claude/checkpoints/1754342517.json +1 -0
- package/.claude/checkpoints/1754342541.json +1 -0
- package/.claude/checkpoints/1754342543.json +1 -0
- package/.claude/checkpoints/1754345073.json +1 -0
- package/.claude/checkpoints/1754345075.json +1 -0
- package/.claude/checkpoints/1754345123.json +1 -0
- package/.claude/checkpoints/1754345125.json +1 -0
- package/.claude/checkpoints/1754345133.json +1 -0
- package/.claude/checkpoints/1754345135.json +1 -0
- package/.claude/checkpoints/1754345143.json +1 -0
- package/.claude/checkpoints/1754345144.json +1 -0
- package/.claude/checkpoints/1754345171.json +1 -0
- package/.claude/checkpoints/1754345172.json +1 -0
- package/.claude/checkpoints/1754345202.json +1 -0
- package/.claude/checkpoints/1754345204.json +1 -0
- package/.claude/checkpoints/1754345393.json +1 -0
- package/.claude/checkpoints/1754345395.json +1 -0
- package/.claude/checkpoints/1754345409.json +1 -0
- package/.claude/checkpoints/1754345410.json +1 -0
- package/.claude/checkpoints/1754345452.json +1 -0
- package/.claude/checkpoints/1754345510.json +1 -0
- package/.claude/checkpoints/1754345512.json +1 -0
- package/.claude/checkpoints/1754345590.json +1 -0
- package/.claude/checkpoints/1754345691.json +1 -0
- package/.claude/checkpoints/1754345693.json +1 -0
- package/.claude/checkpoints/1754356487.json +1 -0
- package/.claude/checkpoints/1754356489.json +1 -0
- package/.claude/checkpoints/1754356526.json +1 -0
- package/.claude/checkpoints/1754356527.json +1 -0
- package/.claude/checkpoints/1754356538.json +1 -0
- package/.claude/checkpoints/1754356540.json +1 -0
- package/.claude/checkpoints/1754356567.json +1 -0
- package/.claude/checkpoints/1754356569.json +1 -0
- package/.claude/checkpoints/1754356594.json +1 -0
- package/.claude/checkpoints/1754356596.json +1 -0
- package/.claude/checkpoints/1754356614.json +1 -0
- package/.claude/checkpoints/1754356616.json +1 -0
- package/.claude/checkpoints/1754356635.json +1 -0
- package/.claude/checkpoints/1754356637.json +1 -0
- package/.claude/checkpoints/1754356649.json +1 -0
- package/.claude/checkpoints/1754356651.json +1 -0
- package/.claude/checkpoints/1754356668.json +1 -0
- package/.claude/checkpoints/1754356669.json +1 -0
- package/.claude/checkpoints/1754356678.json +1 -0
- package/.claude/checkpoints/1754356680.json +1 -0
- package/.claude/checkpoints/1754356804.json +1 -0
- package/.claude/checkpoints/1754356805.json +1 -0
- package/.claude/checkpoints/1754356952.json +1 -0
- package/.claude/checkpoints/1754356955.json +1 -0
- package/.claude/checkpoints/1754356970.json +1 -0
- package/.claude/checkpoints/1754356972.json +1 -0
- package/.claude/checkpoints/1754357081.json +1 -0
- package/.claude/checkpoints/1754357083.json +1 -0
- package/.claude/checkpoints/1754357107.json +1 -0
- package/.claude/checkpoints/1754357109.json +1 -0
- package/.claude/checkpoints/1754357126.json +1 -0
- package/.claude/checkpoints/1754357128.json +1 -0
- package/.claude/checkpoints/1754357137.json +1 -0
- package/.claude/checkpoints/1754357139.json +1 -0
- package/.claude/checkpoints/1754357341.json +1 -0
- package/.claude/checkpoints/1754357343.json +1 -0
- package/.claude/checkpoints/1754357371.json +1 -0
- package/.claude/checkpoints/1754357788.json +1 -0
- package/.claude/checkpoints/1754357790.json +1 -0
- package/.claude/checkpoints/1754357917.json +1 -0
- package/.claude/checkpoints/1754357919.json +1 -0
- package/.claude/checkpoints/1754358129.json +1 -0
- package/.claude/checkpoints/1754358131.json +1 -0
- package/.claude/checkpoints/1754358642.json +1 -0
- package/.claude/checkpoints/1754358644.json +1 -0
- package/.claude/checkpoints/1754359144.json +1 -0
- package/.claude/checkpoints/1754359146.json +1 -0
- package/.claude/checkpoints/1754359155.json +1 -0
- package/.claude/checkpoints/1754359157.json +1 -0
- package/.claude/checkpoints/1754359165.json +1 -0
- package/.claude/checkpoints/1754359167.json +1 -0
- package/.claude/checkpoints/1754359190.json +1 -0
- package/.claude/checkpoints/1754359191.json +1 -0
- package/.claude/checkpoints/1754359951.json +1 -0
- package/.claude/checkpoints/1754359953.json +1 -0
- package/.claude/checkpoints/1754359963.json +1 -0
- package/.claude/checkpoints/1754359965.json +1 -0
- package/.claude/checkpoints/1754359979.json +1 -0
- package/.claude/checkpoints/1754359981.json +1 -0
- package/.claude/checkpoints/1754360016.json +1 -0
- package/.claude/checkpoints/1754360018.json +1 -0
- package/.claude/checkpoints/1754360195.json +1 -0
- package/.claude/checkpoints/1754360294.json +1 -0
- package/.claude/checkpoints/1754360296.json +1 -0
- package/.claude/checkpoints/1754360408.json +1 -0
- package/.claude/checkpoints/1754360411.json +1 -0
- package/.claude/checkpoints/1754360470.json +1 -0
- package/.claude/checkpoints/1754360472.json +1 -0
- package/.claude/checkpoints/1754360531.json +1 -0
- package/.claude/checkpoints/1754360533.json +1 -0
- package/.claude/checkpoints/1754360741.json +1 -0
- package/.claude/checkpoints/1754360743.json +1 -0
- package/.claude/checkpoints/1754361619.json +1 -0
- package/.claude/checkpoints/1754361621.json +1 -0
- package/.claude/checkpoints/1754362177.json +1 -0
- package/.claude/checkpoints/1754362179.json +1 -0
- package/.claude/checkpoints/1754362189.json +1 -0
- package/.claude/checkpoints/1754362191.json +1 -0
- package/.claude/checkpoints/1754362200.json +1 -0
- package/.claude/checkpoints/1754362202.json +1 -0
- package/.claude/checkpoints/1754362213.json +1 -0
- package/.claude/checkpoints/1754362215.json +1 -0
- package/.claude/checkpoints/1754362224.json +1 -0
- package/.claude/checkpoints/1754362226.json +1 -0
- package/.claude/checkpoints/1754362248.json +1 -0
- package/.claude/checkpoints/1754362250.json +1 -0
- package/.claude/checkpoints/1754362686.json +1 -0
- package/.claude/checkpoints/1754362687.json +1 -0
- package/.claude/checkpoints/1754362701.json +1 -0
- package/.claude/checkpoints/1754362702.json +1 -0
- package/.claude/checkpoints/1754362721.json +1 -0
- package/.claude/checkpoints/1754362723.json +1 -0
- package/.claude/checkpoints/1754362741.json +1 -0
- package/.claude/checkpoints/1754362743.json +1 -0
- package/.claude/checkpoints/1754362757.json +1 -0
- package/.claude/checkpoints/1754362759.json +1 -0
- package/.claude/checkpoints/1754362782.json +1 -0
- package/.claude/checkpoints/1754362784.json +1 -0
- package/.claude/checkpoints/1754362798.json +1 -0
- package/.claude/checkpoints/1754362799.json +1 -0
- package/.claude/checkpoints/1754362810.json +1 -0
- package/.claude/checkpoints/1754362811.json +1 -0
- package/.claude/checkpoints/1754362824.json +1 -0
- package/.claude/checkpoints/1754362825.json +1 -0
- package/.claude/checkpoints/1754362852.json +1 -0
- package/.claude/checkpoints/1754362854.json +1 -0
- package/.claude/checkpoints/1754362873.json +1 -0
- package/.claude/checkpoints/1754362875.json +1 -0
- package/.claude/checkpoints/1754362917.json +1 -0
- package/.claude/checkpoints/1754362918.json +1 -0
- package/.claude/checkpoints/1754363043.json +1 -0
- package/.claude/checkpoints/1754363064.json +1 -0
- package/.claude/checkpoints/1754363079.json +1 -0
- package/.claude/checkpoints/1754363179.json +1 -0
- package/.claude/checkpoints/1754363278.json +1 -0
- package/.claude/checkpoints/1754363418.json +1 -0
- package/.claude/checkpoints/1754363438.json +1 -0
- package/.claude/checkpoints/1754363446.json +1 -0
- package/.claude/checkpoints/1754363460.json +1 -0
- package/.claude/checkpoints/1754363485.json +1 -0
- package/.claude/checkpoints/1754363498.json +1 -0
- package/.claude/checkpoints/1754363507.json +1 -0
- package/.claude/checkpoints/1754363548.json +1 -0
- package/.claude/checkpoints/1754363722.json +1 -0
- package/.claude/checkpoints/1754364202.json +1 -0
- package/.claude/checkpoints/1754364356.json +1 -0
- package/.claude/checkpoints/1754364358.json +1 -0
- package/.claude/checkpoints/1754364365.json +1 -0
- package/.claude/checkpoints/1754364367.json +1 -0
- package/.claude/checkpoints/1754364384.json +1 -0
- package/.claude/checkpoints/1754364386.json +1 -0
- package/.claude/checkpoints/1754364395.json +1 -0
- package/.claude/checkpoints/1754364397.json +1 -0
- package/.claude/checkpoints/1754364420.json +1 -0
- package/.claude/checkpoints/1754364422.json +1 -0
- package/.claude/checkpoints/1754364433.json +1 -0
- package/.claude/checkpoints/1754364436.json +1 -0
- package/.claude/checkpoints/1754364444.json +1 -0
- package/.claude/checkpoints/1754364446.json +1 -0
- package/.claude/checkpoints/1754364549.json +1 -0
- package/.claude/checkpoints/1754364551.json +1 -0
- package/.claude/checkpoints/1754364621.json +1 -0
- package/.claude/checkpoints/1754364623.json +1 -0
- package/.claude/checkpoints/1754364634.json +1 -0
- package/.claude/checkpoints/1754364635.json +1 -0
- package/.claude/checkpoints/1754364650.json +1 -0
- package/.claude/checkpoints/1754364652.json +1 -0
- package/.claude/checkpoints/1754364683.json +1 -0
- package/.claude/checkpoints/1754364685.json +1 -0
- package/.claude/checkpoints/1754364697.json +1 -0
- package/.claude/checkpoints/1754364699.json +1 -0
- package/.claude/checkpoints/1754364755.json +1 -0
- package/.claude/checkpoints/1754364757.json +1 -0
- package/.claude/checkpoints/1754364771.json +1 -0
- package/.claude/checkpoints/1754364773.json +1 -0
- package/.claude/checkpoints/1754365118.json +1 -0
- package/.claude/checkpoints/1754365120.json +1 -0
- package/.claude/checkpoints/1754365179.json +1 -0
- package/.claude/checkpoints/1754365180.json +1 -0
- package/.claude/checkpoints/1754397029.json +1 -0
- package/.claude/checkpoints/1754397030.json +1 -0
- package/.claude/checkpoints/1754397042.json +1 -0
- package/.claude/checkpoints/1754397044.json +1 -0
- package/.claude/checkpoints/1754397397.json +1 -0
- package/.claude/checkpoints/1754397399.json +1 -0
- package/.claude/checkpoints/1754397436.json +1 -0
- package/.claude/checkpoints/1754397438.json +1 -0
- package/.claude/checkpoints/1754397455.json +1 -0
- package/.claude/checkpoints/1754397457.json +1 -0
- package/.claude/checkpoints/1754397493.json +1 -0
- package/.claude/checkpoints/1754397494.json +1 -0
- package/.claude/checkpoints/1754397608.json +1 -0
- package/.claude/checkpoints/1754397611.json +1 -0
- package/.claude/checkpoints/1754397648.json +1 -0
- package/.claude/checkpoints/1754397650.json +1 -0
- package/.claude/checkpoints/1754397699.json +1 -0
- package/.claude/checkpoints/1754397701.json +1 -0
- package/.claude/checkpoints/1754397708.json +1 -0
- package/.claude/checkpoints/1754397710.json +1 -0
- package/.claude/checkpoints/1754397717.json +1 -0
- package/.claude/checkpoints/1754397719.json +1 -0
- package/.claude/checkpoints/1754397727.json +1 -0
- package/.claude/checkpoints/1754397729.json +1 -0
- package/.claude/checkpoints/1754397916.json +1 -0
- package/.claude/checkpoints/1754397918.json +1 -0
- package/.claude/checkpoints/1754397925.json +1 -0
- package/.claude/checkpoints/1754397927.json +1 -0
- package/.claude/checkpoints/1754397935.json +1 -0
- package/.claude/checkpoints/1754397937.json +1 -0
- package/.claude/checkpoints/1754397952.json +1 -0
- package/.claude/checkpoints/1754397955.json +1 -0
- package/.claude/checkpoints/1754398186.json +1 -0
- package/.claude/checkpoints/1754398306.json +1 -0
- package/.claude/checkpoints/1754398670.json +1 -0
- package/.claude/checkpoints/1754398694.json +1 -0
- package/.claude/checkpoints/1754398740.json +1 -0
- package/.claude/checkpoints/1754398742.json +1 -0
- package/.claude/checkpoints/1754398759.json +1 -0
- package/.claude/checkpoints/1754398760.json +1 -0
- package/.claude/checkpoints/1754398794.json +1 -0
- package/.claude/checkpoints/1754398796.json +1 -0
- package/.claude/checkpoints/1754398804.json +1 -0
- package/.claude/checkpoints/1754398806.json +1 -0
- package/.claude/checkpoints/1754398843.json +1 -0
- package/.claude/checkpoints/1754398845.json +1 -0
- package/.claude/checkpoints/1754398900.json +1 -0
- package/.claude/checkpoints/1754398902.json +1 -0
- package/.claude/checkpoints/1754398904.json +1 -0
- package/.claude/checkpoints/1754398906.json +1 -0
- package/.claude/checkpoints/1754398908.json +1 -0
- package/.claude/checkpoints/1754398910.json +1 -0
- package/.claude/checkpoints/1754398912.json +1 -0
- package/.claude/checkpoints/1754398914.json +1 -0
- package/.claude/checkpoints/summary-session-20250803-133416.md +271 -0
- package/.claude/checkpoints/summary-session-20250803-134203.md +254 -0
- package/.claude/checkpoints/summary-session-20250803-134440.md +251 -0
- package/.claude/checkpoints/summary-session-20250803-134859.md +249 -0
- package/.claude/checkpoints/summary-session-20250803-135226.md +244 -0
- package/.claude/checkpoints/summary-session-20250803-135735.md +225 -0
- package/.claude/checkpoints/summary-session-20250804-140521.md +40 -0
- package/.claude/checkpoints/summary-session-20250804-140753.md +43 -0
- package/.claude/checkpoints/summary-session-20250804-141009.md +46 -0
- package/.claude/checkpoints/summary-session-20250804-141140.md +49 -0
- package/.claude/checkpoints/summary-session-20250804-141254.md +52 -0
- package/.claude/checkpoints/summary-session-20250804-141337.md +55 -0
- package/.claude/checkpoints/summary-session-20250804-141525.md +58 -0
- package/.claude/checkpoints/summary-session-20250804-142026.md +61 -0
- package/.claude/checkpoints/summary-session-20250804-142717.md +72 -0
- package/.claude/checkpoints/summary-session-20250804-143045.md +77 -0
- package/.claude/checkpoints/summary-session-20250804-143404.md +82 -0
- package/.claude/checkpoints/summary-session-20250804-150637.md +142 -0
- package/.claude/checkpoints/summary-session-20250804-151119.md +276 -0
- package/.claude/checkpoints/summary-session-20250804-151134.md +282 -0
- package/.claude/checkpoints/summary-session-20250804-151200.md +290 -0
- package/.claude/checkpoints/summary-session-20250804-151308.md +297 -0
- package/.claude/checkpoints/summary-session-20250804-154849.md +298 -0
- package/.claude/checkpoints/summary-session-20250804-160249.md +298 -0
- package/.claude/checkpoints/summary-session-20250804-190944.md +169 -0
- package/.claude/checkpoints/summary-session-20250804-192750.md +219 -0
- package/.claude/checkpoints/summary-session-20250804-193135.md +236 -0
- package/.claude/checkpoints/summary-session-20250804-193339.md +249 -0
- package/.claude/checkpoints/summary-session-20250804-200221.md +302 -0
- package/.claude/checkpoints/summary-session-20250804-201535.md +363 -0
- package/.claude/checkpoints/summary-session-20250804-201549.md +365 -0
- package/.claude/checkpoints/summary-session-20250804-202423.md +392 -0
- package/.claude/checkpoints/summary-session-20250804-202452.md +394 -0
- package/.claude/checkpoints/summary-session-20250804-211223.md +379 -0
- package/.claude/checkpoints/summary-session-20250804-211630.md +390 -0
- package/.claude/checkpoints/summary-session-20250804-212010.md +416 -0
- package/.claude/checkpoints/summary-session-20250804-212237.md +427 -0
- package/.claude/checkpoints/summary-session-20250804-215710.md +397 -0
- package/.claude/checkpoints/summary-session-20250804-220835.md +429 -0
- package/.claude/checkpoints/summary-session-20250804-221342.md +437 -0
- package/.claude/checkpoints/summary-session-20250804-221525.md +439 -0
- package/.claude/checkpoints/summary-session-20250804-221845.md +432 -0
- package/.claude/checkpoints/summary-session-20250804-222838.md +414 -0
- package/.claude/checkpoints/summary-session-20250805-011856.md +419 -0
- package/.claude/checkpoints/summary-session-20250805-012305.md +436 -0
- package/.claude/checkpoints/summary-session-20250805-012330.md +439 -0
- package/.claude/checkpoints/summary-session-20250805-012638.md +459 -0
- package/.claude/checkpoints/summary-session-20250805-013657.md +484 -0
- package/.claude/checkpoints/summary-session-20250805-014220.md +495 -0
- package/.claude/checkpoints/summary-session-20250805-014540.md +503 -0
- package/.claude/checkpoints/summary-session-20250805-015045.md +512 -0
- package/.claude/checkpoints/summary-session-20250805-015650.md +516 -0
- package/.claude/checkpoints/summary-session-20250805-020847.md +537 -0
- package/.claude/checkpoints/summary-session-20250805-022303.md +546 -0
- package/.claude/checkpoints/summary-session-20250805-025117.md +565 -0
- package/.claude/checkpoints/summary-session-20250805-025600.md +575 -0
- package/.claude/checkpoints/summary-session-20250805-030212.md +621 -0
- package/.claude/checkpoints/summary-session-20250805-031257.md +644 -0
- package/.claude/checkpoints/summary-session-20250805-031705.md +646 -0
- package/.claude/checkpoints/summary-session-20250805-032142.md +642 -0
- package/.claude/checkpoints/summary-session-20250805-032354.md +642 -0
- package/.claude/checkpoints/summary-session-20250805-033410.md +719 -0
- package/.claude/checkpoints/summary-session-20250805-033916.md +729 -0
- package/.claude/checkpoints/summary-session-20250805-033952.md +734 -0
- package/.claude/checkpoints/summary-session-20250805-034018.md +737 -0
- package/.claude/checkpoints/summary-session-20250805-034221.md +735 -0
- package/.claude/checkpoints/summary-session-20250805-034626.md +722 -0
- package/.claude/checkpoints/summary-session-20250805-123114.md +602 -0
- package/.claude/checkpoints/summary-session-20250805-123834.md +622 -0
- package/.claude/checkpoints/summary-session-20250805-124747.md +676 -0
- package/.claude/checkpoints/summary-session-20250805-125154.md +683 -0
- package/.claude/checkpoints/summary-session-20250805-125244.md +686 -0
- package/.claude/checkpoints/summary-session-20250805-125824.md +695 -0
- package/.claude/checkpoints/summary-session-20250805-130337.md +743 -0
- package/.claude/checkpoints/task-1754227808.json +1 -0
- package/.claude/checkpoints/task-1754228496.json +1 -0
- package/.claude/checkpoints/task-1754228537.json +1 -0
- package/.claude/checkpoints/task-1754228918.json +1 -0
- package/.claude/checkpoints/task-1754228954.json +1 -0
- package/.claude/checkpoints/task-1754228998.json +1 -0
- package/.claude/checkpoints/task-1754229150.json +1 -0
- package/.claude/checkpoints/task-1754316274.json +1 -0
- package/.claude/checkpoints/task-1754316371.json +1 -0
- package/.claude/checkpoints/task-1754316513.json +1 -0
- package/.claude/checkpoints/task-1754316675.json +1 -0
- package/.claude/checkpoints/task-1754316752.json +1 -0
- package/.claude/checkpoints/task-1754316788.json +1 -0
- package/.claude/checkpoints/task-1754316894.json +1 -0
- package/.claude/checkpoints/task-1754316979.json +1 -0
- package/.claude/checkpoints/task-1754317274.json +1 -0
- package/.claude/checkpoints/task-1754317400.json +1 -0
- package/.claude/checkpoints/task-1754317550.json +1 -0
- package/.claude/checkpoints/task-1754317773.json +1 -0
- package/.claude/checkpoints/task-1754317909.json +1 -0
- package/.claude/checkpoints/task-1754318307.json +1 -0
- package/.claude/checkpoints/task-1754319468.json +1 -0
- package/.claude/checkpoints/task-1754319469.json +1 -0
- package/.claude/checkpoints/task-1754319849.json +1 -0
- package/.claude/checkpoints/task-1754322263.json +1 -0
- package/.claude/checkpoints/task-1754322264.json +1 -0
- package/.claude/checkpoints/task-1754322422.json +1 -0
- package/.claude/checkpoints/task-1754334250.json +1 -0
- package/.claude/checkpoints/task-1754334434.json +1 -0
- package/.claude/checkpoints/task-1754334435.json +1 -0
- package/.claude/checkpoints/task-1754335001.json +1 -0
- package/.claude/checkpoints/task-1754335002.json +1 -0
- package/.claude/checkpoints/task-1754335003.json +1 -0
- package/.claude/checkpoints/task-1754335123.json +1 -0
- package/.claude/checkpoints/task-1754335666.json +1 -0
- package/.claude/checkpoints/task-1754335840.json +1 -0
- package/.claude/checkpoints/task-1754337382.json +1 -0
- package/.claude/checkpoints/task-1754337459.json +1 -0
- package/.claude/checkpoints/task-1754337611.json +1 -0
- package/.claude/checkpoints/task-1754337821.json +1 -0
- package/.claude/checkpoints/task-1754337824.json +1 -0
- package/.claude/checkpoints/task-1754337827.json +1 -0
- package/.claude/checkpoints/task-1754337830.json +1 -0
- package/.claude/checkpoints/task-1754337834.json +1 -0
- package/.claude/checkpoints/task-1754337839.json +1 -0
- package/.claude/checkpoints/task-1754337899.json +1 -0
- package/.claude/checkpoints/task-1754338036.json +1 -0
- package/.claude/checkpoints/task-1754338111.json +1 -0
- package/.claude/checkpoints/task-1754338295.json +1 -0
- package/.claude/checkpoints/task-1754338361.json +1 -0
- package/.claude/checkpoints/task-1754338480.json +1 -0
- package/.claude/checkpoints/task-1754338504.json +1 -0
- package/.claude/checkpoints/task-1754338639.json +1 -0
- package/.claude/checkpoints/task-1754338848.json +1 -0
- package/.claude/checkpoints/task-1754338864.json +1 -0
- package/.claude/checkpoints/task-1754338920.json +1 -0
- package/.claude/checkpoints/task-1754339084.json +1 -0
- package/.claude/checkpoints/task-1754339110.json +1 -0
- package/.claude/checkpoints/task-1754339336.json +1 -0
- package/.claude/checkpoints/task-1754339566.json +1 -0
- package/.claude/checkpoints/task-1754341796.json +1 -0
- package/.claude/checkpoints/task-1754341832.json +1 -0
- package/.claude/checkpoints/task-1754341833.json +1 -0
- package/.claude/checkpoints/task-1754341836.json +1 -0
- package/.claude/checkpoints/task-1754341999.json +1 -0
- package/.claude/checkpoints/task-1754342131.json +1 -0
- package/.claude/checkpoints/task-1754342203.json +1 -0
- package/.claude/checkpoints/task-1754342204.json +1 -0
- package/.claude/checkpoints/task-1754342205.json +1 -0
- package/.claude/checkpoints/task-1754342207.json +1 -0
- package/.claude/checkpoints/task-1754342208.json +1 -0
- package/.claude/checkpoints/task-1754342270.json +1 -0
- package/.claude/checkpoints/task-1754342436.json +1 -0
- package/.claude/checkpoints/task-1754342480.json +1 -0
- package/.claude/checkpoints/task-1754342675.json +1 -0
- package/.claude/checkpoints/task-1754344346.json +1 -0
- package/.claude/checkpoints/task-1754345020.json +1 -0
- package/.claude/checkpoints/task-1754345222.json +1 -0
- package/.claude/checkpoints/task-1754345313.json +1 -0
- package/.claude/checkpoints/task-1754345355.json +1 -0
- package/.claude/checkpoints/task-1754345431.json +1 -0
- package/.claude/checkpoints/task-1754345452.json +1 -0
- package/.claude/checkpoints/task-1754345497.json +1 -0
- package/.claude/checkpoints/task-1754345590.json +1 -0
- package/.claude/checkpoints/task-1754345672.json +1 -0
- package/.claude/checkpoints/task-1754345740.json +1 -0
- package/.claude/checkpoints/task-1754346200.json +1 -0
- package/.claude/checkpoints/task-1754356415.json +1 -0
- package/.claude/checkpoints/task-1754356436.json +1 -0
- package/.claude/checkpoints/task-1754356527.json +1 -0
- package/.claude/checkpoints/task-1754356635.json +1 -0
- package/.claude/checkpoints/task-1754356913.json +1 -0
- package/.claude/checkpoints/task-1754357049.json +1 -0
- package/.claude/checkpoints/task-1754357219.json +1 -0
- package/.claude/checkpoints/task-1754357233.json +1 -0
- package/.claude/checkpoints/task-1754357283.json +1 -0
- package/.claude/checkpoints/task-1754357376.json +1 -0
- package/.claude/checkpoints/task-1754357438.json +1 -0
- package/.claude/checkpoints/task-1754357483.json +1 -0
- package/.claude/checkpoints/task-1754357747.json +1 -0
- package/.claude/checkpoints/task-1754357862.json +1 -0
- package/.claude/checkpoints/task-1754357893.json +1 -0
- package/.claude/checkpoints/task-1754358033.json +1 -0
- package/.claude/checkpoints/task-1754358165.json +1 -0
- package/.claude/checkpoints/task-1754358179.json +1 -0
- package/.claude/checkpoints/task-1754358296.json +1 -0
- package/.claude/checkpoints/task-1754358439.json +1 -0
- package/.claude/checkpoints/task-1754358628.json +1 -0
- package/.claude/checkpoints/task-1754359000.json +1 -0
- package/.claude/checkpoints/task-1754359492.json +1 -0
- package/.claude/checkpoints/task-1754359902.json +1 -0
- package/.claude/checkpoints/task-1754360322.json +1 -0
- package/.claude/checkpoints/task-1754360671.json +1 -0
- package/.claude/checkpoints/task-1754360706.json +1 -0
- package/.claude/checkpoints/task-1754360812.json +1 -0
- package/.claude/checkpoints/task-1754360924.json +1 -0
- package/.claude/checkpoints/task-1754361963.json +1 -0
- package/.claude/checkpoints/task-1754362069.json +1 -0
- package/.claude/checkpoints/task-1754362175.json +1 -0
- package/.claude/checkpoints/task-1754362176.json +1 -0
- package/.claude/checkpoints/task-1754362280.json +1 -0
- package/.claude/checkpoints/task-1754362287.json +1 -0
- package/.claude/checkpoints/task-1754362344.json +1 -0
- package/.claude/checkpoints/task-1754362473.json +1 -0
- package/.claude/checkpoints/task-1754362637.json +1 -0
- package/.claude/checkpoints/task-1754363007.json +1 -0
- package/.claude/checkpoints/task-1754363622.json +1 -0
- package/.claude/checkpoints/task-1754363819.json +1 -0
- package/.claude/checkpoints/task-1754363959.json +1 -0
- package/.claude/checkpoints/task-1754364182.json +1 -0
- package/.claude/checkpoints/task-1754364234.json +1 -0
- package/.claude/checkpoints/task-1754364319.json +1 -0
- package/.claude/checkpoints/task-1754364465.json +1 -0
- package/.claude/checkpoints/task-1754364506.json +1 -0
- package/.claude/checkpoints/task-1754364531.json +1 -0
- package/.claude/checkpoints/task-1754364583.json +1 -0
- package/.claude/checkpoints/task-1754364667.json +1 -0
- package/.claude/checkpoints/task-1754364715.json +1 -0
- package/.claude/checkpoints/task-1754364739.json +1 -0
- package/.claude/checkpoints/task-1754364786.json +1 -0
- package/.claude/checkpoints/task-1754364793.json +1 -0
- package/.claude/checkpoints/task-1754364926.json +1 -0
- package/.claude/checkpoints/task-1754365138.json +1 -0
- package/.claude/checkpoints/task-1754365266.json +1 -0
- package/.claude/checkpoints/task-1754365411.json +1 -0
- package/.claude/checkpoints/task-1754396882.json +1 -0
- package/.claude/checkpoints/task-1754396996.json +1 -0
- package/.claude/checkpoints/task-1754397364.json +1 -0
- package/.claude/checkpoints/task-1754397566.json +1 -0
- package/.claude/checkpoints/task-1754397827.json +1 -0
- package/.claude/checkpoints/task-1754397906.json +1 -0
- package/.claude/checkpoints/task-1754397934.json +1 -0
- package/.claude/checkpoints/task-1754397965.json +1 -0
- package/.claude/checkpoints/task-1754398085.json +1 -0
- package/.claude/checkpoints/task-1754398359.json +1 -0
- package/.claude/checkpoints/task-1754398502.json +1 -0
- package/.claude/checkpoints/task-1754398689.json +1 -0
- package/.claude/checkpoints/task-1754398907.json +1 -0
- package/.claude/checkpoints/task-1754399042.json +1 -0
- package/CHANGELOG.md +42 -0
- package/bin/claude-flow +1 -1
- package/bin/claude-flow.js +1 -1
- package/package.json +1 -1
- package/src/automation/agents/foundation_agent_README.md +274 -0
- package/src/automation/agents/foundation_agent_core.py +384 -0
- package/src/automation/agents/foundation_agent_features.py +413 -0
- package/src/automation/agents/foundation_agent_integration.py +412 -0
- package/src/automation/agents/test_foundation_agent.py +369 -0
- package/src/cli/command-registry.js +12 -2
- package/src/cli/commands/status.ts +1 -1
- package/src/cli/help-text.js +3 -2
- package/src/cli/index-remote.ts +1 -1
- package/src/cli/index.ts +1 -1
- package/src/cli/simple-cli.js +2 -2
- package/src/cli/simple-cli.ts +1 -1
- package/src/cli/simple-commands/automation-executor.js +1542 -0
- package/src/cli/simple-commands/automation.js +318 -3
- package/src/cli/simple-commands/concurrent-display.js +331 -0
- package/src/cli/simple-commands/hive-mind/session-manager.js +167 -58
- package/src/cli/simple-commands/hive-mind.js +211 -78
- package/src/cli/simple-commands/init/index.js +4 -3
- package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
- package/src/cli/simple-commands/init/templates/claude-md.js +237 -139
- package/src/cli/simple-commands/stream-processor.js +327 -0
- package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
- package/src/mle-star/ensemble_agent_advanced.py +473 -0
- package/src/mle-star/ensemble_agent_implementation.py +428 -0
- package/src/mle-star/ensemble_agent_tests.py +392 -0
- package/src/workflows/examples/api-development-workflow.json +140 -0
- package/src/workflows/examples/mle-star-workflow.json +238 -0
- package/src/workflows/examples/research-workflow.json +174 -0
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Advanced Ensemble Techniques with Neural Network Integration
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
import torch
|
|
7
|
+
import torch.nn as nn
|
|
8
|
+
import torch.optim as optim
|
|
9
|
+
from sklearn.base import BaseEstimator
|
|
10
|
+
from typing import List, Dict, Any, Optional, Tuple
|
|
11
|
+
import json
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class NeuralGatingNetwork(nn.Module):
|
|
15
|
+
"""Neural network for sophisticated gating in mixture of experts"""
|
|
16
|
+
|
|
17
|
+
def __init__(self, input_dim: int, n_experts: int, hidden_dim: int = 64):
|
|
18
|
+
super().__init__()
|
|
19
|
+
self.network = nn.Sequential(
|
|
20
|
+
nn.Linear(input_dim, hidden_dim),
|
|
21
|
+
nn.ReLU(),
|
|
22
|
+
nn.Dropout(0.2),
|
|
23
|
+
nn.Linear(hidden_dim, hidden_dim),
|
|
24
|
+
nn.ReLU(),
|
|
25
|
+
nn.Dropout(0.2),
|
|
26
|
+
nn.Linear(hidden_dim, n_experts),
|
|
27
|
+
nn.Softmax(dim=1)
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
def forward(self, x):
|
|
31
|
+
return self.network(x)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class AttentionBasedEnsemble(BaseEstimator):
|
|
35
|
+
"""Attention-based ensemble using self-attention mechanism"""
|
|
36
|
+
|
|
37
|
+
def __init__(self, models: List[BaseEstimator], attention_dim: int = 32):
|
|
38
|
+
self.models = models
|
|
39
|
+
self.attention_dim = attention_dim
|
|
40
|
+
self.attention_network = None
|
|
41
|
+
self.fitted = False
|
|
42
|
+
|
|
43
|
+
def fit(self, X, y):
|
|
44
|
+
"""Fit models and attention mechanism"""
|
|
45
|
+
# Fit all base models
|
|
46
|
+
for model in self.models:
|
|
47
|
+
model.fit(X, y)
|
|
48
|
+
|
|
49
|
+
# Create attention network
|
|
50
|
+
n_models = len(self.models)
|
|
51
|
+
self.attention_network = self._build_attention_network(X.shape[1], n_models)
|
|
52
|
+
|
|
53
|
+
# Train attention network
|
|
54
|
+
self._train_attention(X, y)
|
|
55
|
+
self.fitted = True
|
|
56
|
+
|
|
57
|
+
return self
|
|
58
|
+
|
|
59
|
+
def _build_attention_network(self, input_dim: int, n_models: int):
|
|
60
|
+
"""Build attention network architecture"""
|
|
61
|
+
class AttentionNet(nn.Module):
|
|
62
|
+
def __init__(self, input_dim, n_models, attention_dim):
|
|
63
|
+
super().__init__()
|
|
64
|
+
self.query = nn.Linear(input_dim, attention_dim)
|
|
65
|
+
self.key = nn.Linear(n_models, attention_dim)
|
|
66
|
+
self.value = nn.Linear(n_models, n_models)
|
|
67
|
+
self.scale = np.sqrt(attention_dim)
|
|
68
|
+
|
|
69
|
+
def forward(self, x, model_outputs):
|
|
70
|
+
# x: [batch, input_dim]
|
|
71
|
+
# model_outputs: [batch, n_models]
|
|
72
|
+
|
|
73
|
+
Q = self.query(x) # [batch, attention_dim]
|
|
74
|
+
K = self.key(model_outputs) # [batch, attention_dim]
|
|
75
|
+
V = self.value(model_outputs) # [batch, n_models]
|
|
76
|
+
|
|
77
|
+
# Compute attention scores
|
|
78
|
+
scores = torch.matmul(Q.unsqueeze(1), K.unsqueeze(2)).squeeze() / self.scale
|
|
79
|
+
attention_weights = torch.softmax(scores, dim=-1)
|
|
80
|
+
|
|
81
|
+
# Apply attention to values
|
|
82
|
+
weighted_outputs = attention_weights * V
|
|
83
|
+
|
|
84
|
+
return weighted_outputs, attention_weights
|
|
85
|
+
|
|
86
|
+
return AttentionNet(input_dim, n_models, self.attention_dim)
|
|
87
|
+
|
|
88
|
+
def _train_attention(self, X, y, epochs=100):
|
|
89
|
+
"""Train the attention network"""
|
|
90
|
+
# Get base model predictions
|
|
91
|
+
model_outputs = np.column_stack([
|
|
92
|
+
model.predict(X) for model in self.models
|
|
93
|
+
])
|
|
94
|
+
|
|
95
|
+
# Convert to tensors
|
|
96
|
+
X_tensor = torch.FloatTensor(X)
|
|
97
|
+
y_tensor = torch.FloatTensor(y)
|
|
98
|
+
outputs_tensor = torch.FloatTensor(model_outputs)
|
|
99
|
+
|
|
100
|
+
# Training setup
|
|
101
|
+
optimizer = optim.Adam(self.attention_network.parameters(), lr=0.001)
|
|
102
|
+
criterion = nn.MSELoss()
|
|
103
|
+
|
|
104
|
+
for epoch in range(epochs):
|
|
105
|
+
optimizer.zero_grad()
|
|
106
|
+
|
|
107
|
+
# Forward pass
|
|
108
|
+
weighted_outputs, _ = self.attention_network(X_tensor, outputs_tensor)
|
|
109
|
+
ensemble_pred = weighted_outputs.sum(dim=1)
|
|
110
|
+
|
|
111
|
+
# Compute loss
|
|
112
|
+
loss = criterion(ensemble_pred, y_tensor)
|
|
113
|
+
|
|
114
|
+
# Backward pass
|
|
115
|
+
loss.backward()
|
|
116
|
+
optimizer.step()
|
|
117
|
+
|
|
118
|
+
def predict(self, X):
|
|
119
|
+
"""Make predictions using attention-weighted ensemble"""
|
|
120
|
+
# Get base model predictions
|
|
121
|
+
model_outputs = np.column_stack([
|
|
122
|
+
model.predict(X) for model in self.models
|
|
123
|
+
])
|
|
124
|
+
|
|
125
|
+
# Convert to tensors
|
|
126
|
+
X_tensor = torch.FloatTensor(X)
|
|
127
|
+
outputs_tensor = torch.FloatTensor(model_outputs)
|
|
128
|
+
|
|
129
|
+
# Get attention-weighted predictions
|
|
130
|
+
with torch.no_grad():
|
|
131
|
+
weighted_outputs, attention_weights = self.attention_network(X_tensor, outputs_tensor)
|
|
132
|
+
ensemble_pred = weighted_outputs.sum(dim=1)
|
|
133
|
+
|
|
134
|
+
return ensemble_pred.numpy()
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class HierarchicalEnsemble(BaseEstimator):
|
|
138
|
+
"""Hierarchical ensemble with multiple levels of model combination"""
|
|
139
|
+
|
|
140
|
+
def __init__(self, base_models: List[BaseEstimator], n_levels: int = 2):
|
|
141
|
+
self.base_models = base_models
|
|
142
|
+
self.n_levels = n_levels
|
|
143
|
+
self.level_ensembles = []
|
|
144
|
+
|
|
145
|
+
def fit(self, X, y):
|
|
146
|
+
"""Fit hierarchical ensemble"""
|
|
147
|
+
current_models = self.base_models
|
|
148
|
+
|
|
149
|
+
for level in range(self.n_levels):
|
|
150
|
+
if len(current_models) <= 2:
|
|
151
|
+
break
|
|
152
|
+
|
|
153
|
+
# Create ensembles at this level
|
|
154
|
+
level_ensemble = []
|
|
155
|
+
|
|
156
|
+
# Group models in pairs
|
|
157
|
+
for i in range(0, len(current_models), 2):
|
|
158
|
+
if i + 1 < len(current_models):
|
|
159
|
+
# Create mini-ensemble of two models
|
|
160
|
+
from .ensemble_agent_implementation import DynamicWeightingEnsemble
|
|
161
|
+
mini_ensemble = DynamicWeightingEnsemble(
|
|
162
|
+
[current_models[i], current_models[i+1]]
|
|
163
|
+
)
|
|
164
|
+
mini_ensemble.fit(X, y)
|
|
165
|
+
level_ensemble.append(mini_ensemble)
|
|
166
|
+
else:
|
|
167
|
+
# Odd model out - keep as is
|
|
168
|
+
level_ensemble.append(current_models[i])
|
|
169
|
+
|
|
170
|
+
self.level_ensembles.append(level_ensemble)
|
|
171
|
+
current_models = level_ensemble
|
|
172
|
+
|
|
173
|
+
# Final ensemble
|
|
174
|
+
if len(current_models) > 1:
|
|
175
|
+
from .ensemble_agent_implementation import StackingEnsemble
|
|
176
|
+
self.final_ensemble = StackingEnsemble(current_models)
|
|
177
|
+
self.final_ensemble.fit(X, y)
|
|
178
|
+
else:
|
|
179
|
+
self.final_ensemble = current_models[0]
|
|
180
|
+
|
|
181
|
+
return self
|
|
182
|
+
|
|
183
|
+
def predict(self, X):
|
|
184
|
+
"""Make predictions through hierarchy"""
|
|
185
|
+
return self.final_ensemble.predict(X)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class AdaptiveEnsembleSelector:
|
|
189
|
+
"""Dynamically selects best ensemble strategy based on data characteristics"""
|
|
190
|
+
|
|
191
|
+
def __init__(self):
|
|
192
|
+
self.strategy_scores = {}
|
|
193
|
+
self.selected_strategy = None
|
|
194
|
+
self.selected_ensemble = None
|
|
195
|
+
|
|
196
|
+
def analyze_data_characteristics(self, X, y) -> Dict[str, float]:
|
|
197
|
+
"""Analyze dataset characteristics"""
|
|
198
|
+
n_samples, n_features = X.shape
|
|
199
|
+
|
|
200
|
+
# Basic characteristics
|
|
201
|
+
chars = {
|
|
202
|
+
'n_samples': n_samples,
|
|
203
|
+
'n_features': n_features,
|
|
204
|
+
'sample_feature_ratio': n_samples / n_features,
|
|
205
|
+
'feature_variance': np.var(X, axis=0).mean(),
|
|
206
|
+
'target_variance': np.var(y),
|
|
207
|
+
'feature_correlation': self._compute_feature_correlation(X),
|
|
208
|
+
'class_balance': self._compute_class_balance(y) if len(np.unique(y)) < 20 else 1.0
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return chars
|
|
212
|
+
|
|
213
|
+
def _compute_feature_correlation(self, X):
|
|
214
|
+
"""Compute average absolute correlation between features"""
|
|
215
|
+
corr_matrix = np.corrcoef(X.T)
|
|
216
|
+
# Get upper triangle without diagonal
|
|
217
|
+
upper_triangle = np.triu(corr_matrix, k=1)
|
|
218
|
+
return np.abs(upper_triangle).mean()
|
|
219
|
+
|
|
220
|
+
def _compute_class_balance(self, y):
|
|
221
|
+
"""Compute class balance ratio"""
|
|
222
|
+
unique, counts = np.unique(y, return_counts=True)
|
|
223
|
+
return counts.min() / counts.max()
|
|
224
|
+
|
|
225
|
+
def recommend_strategy(self, X, y, models: List[BaseEstimator]) -> str:
|
|
226
|
+
"""Recommend best ensemble strategy based on data"""
|
|
227
|
+
chars = self.analyze_data_characteristics(X, y)
|
|
228
|
+
|
|
229
|
+
scores = {}
|
|
230
|
+
|
|
231
|
+
# Stacking is good for diverse models and sufficient data
|
|
232
|
+
scores['stacking'] = (
|
|
233
|
+
min(chars['sample_feature_ratio'] / 10, 1.0) * 0.4 +
|
|
234
|
+
(1 - chars['feature_correlation']) * 0.3 +
|
|
235
|
+
(len(models) / 10) * 0.3
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
# Dynamic weighting is good for similar models
|
|
239
|
+
scores['dynamic_weighting'] = (
|
|
240
|
+
chars['feature_correlation'] * 0.4 +
|
|
241
|
+
(1 - chars['sample_feature_ratio'] / 50) * 0.3 +
|
|
242
|
+
chars.get('class_balance', 0.5) * 0.3
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
# Mixture of experts is good for heterogeneous data
|
|
246
|
+
scores['mixture_of_experts'] = (
|
|
247
|
+
(1 - chars.get('class_balance', 0.5)) * 0.4 +
|
|
248
|
+
chars['feature_variance'] * 0.3 +
|
|
249
|
+
min(chars['n_features'] / 50, 1.0) * 0.3
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# Bayesian averaging is good for uncertainty quantification
|
|
253
|
+
scores['bayesian_averaging'] = (
|
|
254
|
+
min(chars['n_samples'] / 1000, 1.0) * 0.5 +
|
|
255
|
+
chars['target_variance'] * 0.3 +
|
|
256
|
+
(len(models) / 5) * 0.2
|
|
257
|
+
)
|
|
258
|
+
|
|
259
|
+
# Normalize scores
|
|
260
|
+
max_score = max(scores.values())
|
|
261
|
+
for key in scores:
|
|
262
|
+
scores[key] /= max_score
|
|
263
|
+
|
|
264
|
+
self.strategy_scores = scores
|
|
265
|
+
self.selected_strategy = max(scores, key=scores.get)
|
|
266
|
+
|
|
267
|
+
return self.selected_strategy
|
|
268
|
+
|
|
269
|
+
def create_adaptive_ensemble(self, X, y, models: List[BaseEstimator]) -> BaseEstimator:
|
|
270
|
+
"""Create ensemble with automatically selected strategy"""
|
|
271
|
+
strategy = self.recommend_strategy(X, y, models)
|
|
272
|
+
|
|
273
|
+
from .ensemble_agent_implementation import EnsembleOptimizer
|
|
274
|
+
optimizer = EnsembleOptimizer()
|
|
275
|
+
|
|
276
|
+
# Optimize model selection
|
|
277
|
+
X_val = X[:int(0.2 * len(X))]
|
|
278
|
+
y_val = y[:int(0.2 * len(y))]
|
|
279
|
+
|
|
280
|
+
# Fit models on remaining data
|
|
281
|
+
X_train = X[int(0.2 * len(X)):]
|
|
282
|
+
y_train = y[int(0.2 * len(y)):]
|
|
283
|
+
|
|
284
|
+
for model in models:
|
|
285
|
+
model.fit(X_train, y_train)
|
|
286
|
+
|
|
287
|
+
# Select best models
|
|
288
|
+
selected_models = optimizer.optimize_ensemble_composition(
|
|
289
|
+
models, X_val, y_val, max_models=5
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
# Create ensemble with selected strategy
|
|
293
|
+
task_type = 'classification' if len(np.unique(y)) < 20 else 'regression'
|
|
294
|
+
ensemble = optimizer.create_ensemble(
|
|
295
|
+
selected_models, strategy=strategy, task_type=task_type
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
# Refit on full data
|
|
299
|
+
for model in selected_models:
|
|
300
|
+
model.fit(X, y)
|
|
301
|
+
|
|
302
|
+
ensemble.fit(X, y)
|
|
303
|
+
|
|
304
|
+
self.selected_ensemble = ensemble
|
|
305
|
+
|
|
306
|
+
return ensemble
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
class EnsembleMonitor:
|
|
310
|
+
"""Monitor and track ensemble performance over time"""
|
|
311
|
+
|
|
312
|
+
def __init__(self):
|
|
313
|
+
self.performance_history = []
|
|
314
|
+
self.model_contributions = {}
|
|
315
|
+
|
|
316
|
+
def track_performance(self, ensemble, X_test, y_test, timestamp=None):
|
|
317
|
+
"""Track ensemble performance metrics"""
|
|
318
|
+
predictions = ensemble.predict(X_test)
|
|
319
|
+
|
|
320
|
+
# Calculate metrics
|
|
321
|
+
if len(np.unique(y_test)) < 20: # Classification
|
|
322
|
+
from sklearn.metrics import accuracy_score, f1_score
|
|
323
|
+
metrics = {
|
|
324
|
+
'accuracy': accuracy_score(y_test, predictions),
|
|
325
|
+
'f1_score': f1_score(y_test, predictions, average='weighted')
|
|
326
|
+
}
|
|
327
|
+
else: # Regression
|
|
328
|
+
from sklearn.metrics import mean_squared_error, r2_score
|
|
329
|
+
metrics = {
|
|
330
|
+
'mse': mean_squared_error(y_test, predictions),
|
|
331
|
+
'r2': r2_score(y_test, predictions)
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
# Add metadata
|
|
335
|
+
metrics['timestamp'] = timestamp or str(np.datetime64('now'))
|
|
336
|
+
metrics['n_samples'] = len(y_test)
|
|
337
|
+
|
|
338
|
+
self.performance_history.append(metrics)
|
|
339
|
+
|
|
340
|
+
return metrics
|
|
341
|
+
|
|
342
|
+
def analyze_model_contributions(self, ensemble, X_sample):
|
|
343
|
+
"""Analyze individual model contributions in ensemble"""
|
|
344
|
+
if hasattr(ensemble, 'weights'):
|
|
345
|
+
# For weighted ensembles
|
|
346
|
+
contributions = {
|
|
347
|
+
f'model_{i}': weight
|
|
348
|
+
for i, weight in enumerate(ensemble.weights)
|
|
349
|
+
}
|
|
350
|
+
elif hasattr(ensemble, 'posterior_weights'):
|
|
351
|
+
# For Bayesian averaging
|
|
352
|
+
contributions = {
|
|
353
|
+
f'model_{i}': weight
|
|
354
|
+
for i, weight in enumerate(ensemble.posterior_weights)
|
|
355
|
+
}
|
|
356
|
+
else:
|
|
357
|
+
# Equal contribution assumption
|
|
358
|
+
n_models = len(ensemble.models) if hasattr(ensemble, 'models') else 1
|
|
359
|
+
contributions = {f'model_{i}': 1/n_models for i in range(n_models)}
|
|
360
|
+
|
|
361
|
+
self.model_contributions = contributions
|
|
362
|
+
return contributions
|
|
363
|
+
|
|
364
|
+
def generate_report(self) -> Dict[str, Any]:
|
|
365
|
+
"""Generate comprehensive ensemble performance report"""
|
|
366
|
+
report = {
|
|
367
|
+
'performance_summary': {
|
|
368
|
+
'n_evaluations': len(self.performance_history),
|
|
369
|
+
'latest_performance': self.performance_history[-1] if self.performance_history else None,
|
|
370
|
+
'performance_trend': self._calculate_trend()
|
|
371
|
+
},
|
|
372
|
+
'model_contributions': self.model_contributions,
|
|
373
|
+
'recommendations': self._generate_recommendations()
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
return report
|
|
377
|
+
|
|
378
|
+
def _calculate_trend(self):
|
|
379
|
+
"""Calculate performance trend"""
|
|
380
|
+
if len(self.performance_history) < 2:
|
|
381
|
+
return 'insufficient_data'
|
|
382
|
+
|
|
383
|
+
# Get primary metric
|
|
384
|
+
if 'accuracy' in self.performance_history[0]:
|
|
385
|
+
metric_key = 'accuracy'
|
|
386
|
+
elif 'r2' in self.performance_history[0]:
|
|
387
|
+
metric_key = 'r2'
|
|
388
|
+
else:
|
|
389
|
+
return 'unknown'
|
|
390
|
+
|
|
391
|
+
values = [h[metric_key] for h in self.performance_history]
|
|
392
|
+
trend = np.polyfit(range(len(values)), values, 1)[0]
|
|
393
|
+
|
|
394
|
+
if trend > 0.01:
|
|
395
|
+
return 'improving'
|
|
396
|
+
elif trend < -0.01:
|
|
397
|
+
return 'degrading'
|
|
398
|
+
else:
|
|
399
|
+
return 'stable'
|
|
400
|
+
|
|
401
|
+
def _generate_recommendations(self):
|
|
402
|
+
"""Generate recommendations based on performance"""
|
|
403
|
+
recommendations = []
|
|
404
|
+
|
|
405
|
+
if self.performance_history:
|
|
406
|
+
latest = self.performance_history[-1]
|
|
407
|
+
|
|
408
|
+
if 'accuracy' in latest and latest['accuracy'] < 0.8:
|
|
409
|
+
recommendations.append("Consider adding more diverse models to the ensemble")
|
|
410
|
+
elif 'r2' in latest and latest['r2'] < 0.7:
|
|
411
|
+
recommendations.append("Consider feature engineering or different model architectures")
|
|
412
|
+
|
|
413
|
+
if self.model_contributions:
|
|
414
|
+
max_contrib = max(self.model_contributions.values())
|
|
415
|
+
if max_contrib > 0.7:
|
|
416
|
+
recommendations.append("Single model dominates - consider removing weak models")
|
|
417
|
+
|
|
418
|
+
return recommendations
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
# Save ensemble configuration for coordination
|
|
422
|
+
def save_ensemble_config(ensemble_type: str, config: Dict[str, Any], filepath: str):
|
|
423
|
+
"""Save ensemble configuration for other agents"""
|
|
424
|
+
config_data = {
|
|
425
|
+
'ensemble_type': ensemble_type,
|
|
426
|
+
'configuration': config,
|
|
427
|
+
'timestamp': str(np.datetime64('now')),
|
|
428
|
+
'agent': 'ensemble_agent'
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
with open(filepath, 'w') as f:
|
|
432
|
+
json.dump(config_data, f, indent=2)
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
if __name__ == "__main__":
|
|
436
|
+
# Example usage of advanced ensembles
|
|
437
|
+
from sklearn.datasets import make_classification
|
|
438
|
+
from sklearn.ensemble import RandomForestClassifier
|
|
439
|
+
from sklearn.svm import SVC
|
|
440
|
+
|
|
441
|
+
X, y = make_classification(n_samples=1000, n_features=20, n_informative=15,
|
|
442
|
+
n_redundant=5, random_state=42)
|
|
443
|
+
|
|
444
|
+
# Base models
|
|
445
|
+
models = [
|
|
446
|
+
RandomForestClassifier(n_estimators=50, random_state=42),
|
|
447
|
+
SVC(probability=True, random_state=42),
|
|
448
|
+
RandomForestClassifier(n_estimators=100, max_depth=5, random_state=43)
|
|
449
|
+
]
|
|
450
|
+
|
|
451
|
+
# Test adaptive ensemble selection
|
|
452
|
+
selector = AdaptiveEnsembleSelector()
|
|
453
|
+
ensemble = selector.create_adaptive_ensemble(X, y, models)
|
|
454
|
+
|
|
455
|
+
print(f"Selected strategy: {selector.selected_strategy}")
|
|
456
|
+
print(f"Strategy scores: {selector.strategy_scores}")
|
|
457
|
+
|
|
458
|
+
# Monitor performance
|
|
459
|
+
from sklearn.model_selection import train_test_split
|
|
460
|
+
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
|
|
461
|
+
|
|
462
|
+
monitor = EnsembleMonitor()
|
|
463
|
+
metrics = monitor.track_performance(ensemble, X_test, y_test)
|
|
464
|
+
|
|
465
|
+
print(f"\nPerformance metrics: {metrics}")
|
|
466
|
+
print(f"Model contributions: {monitor.analyze_model_contributions(ensemble, X_test[:10])}")
|
|
467
|
+
|
|
468
|
+
# Save configuration
|
|
469
|
+
save_ensemble_config(
|
|
470
|
+
selector.selected_strategy,
|
|
471
|
+
{'n_models': len(models), 'scores': selector.strategy_scores},
|
|
472
|
+
'/tmp/ensemble_config.json'
|
|
473
|
+
)
|