{"_id":"@crewhaus/circuit-breaker","_rev":"32-1d6c7060bad29ebf656813ef4fed008d","name":"@crewhaus/circuit-breaker","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@crewhaus/circuit-breaker","version":"0.1.0","author":{"url":"https://studiomax.io","name":"Max Meier","email":"max@studiomax.io"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.0","maintainers":[{"name":"crewhaus","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"d1a55de33d642003452ddc620d7ac7bc11fee30b","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.0.tgz","fileCount":3,"integrity":"sha512-qzKLOvdCXlmTlJ75jNu3N9kyLoSjq3aLJELOBWby1qrX/1X15VDVY0DKg93VwV72+QpSseVC/jFYUTS31F7Csw==","signatures":[{"sig":"MEYCIQDzS59UtNqT8alnsxoWYWi+kfOPRcJfg9qtr8uW32kOngIhAKFCDqRWIng/vxqVYFJXXz3dcCtipSzpKg26GBB5THaN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17831},"main":"src/index.ts","type":"module","types":"src/index.ts","shasum":"d1a55de33d642003452ddc620d7ac7bc11fee30b","exports":{".":"./src/index.ts"},"scripts":{"test":"bun test src"},"_npmUser":{"name":"crewhaus","email":"crew@crewhaus.ai"},"_integrity":"sha512-qzKLOvdCXlmTlJ75jNu3N9kyLoSjq3aLJELOBWby1qrX/1X15VDVY0DKg93VwV72+QpSseVC/jFYUTS31F7Csw==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; auto-fails-over to fallbackModels when tripped","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.0.0","@crewhaus/trace-event-bus":"0.0.0","@crewhaus/adapter-anthropic":"0.0.0"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.0_1780164025457_0.02898143849595547","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@crewhaus/circuit-breaker","version":"0.1.1","author":{"url":"https://studiomax.io","name":"Max Meier","email":"max@studiomax.io"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.1","maintainers":[{"name":"crewhaus","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"849faafaa0a99fa802ba14571f0e0c45a6e4dd02","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.1.tgz","fileCount":3,"integrity":"sha512-D4Blo2FrtkdbDO2apl5p5/tTsYsSplnRRoxlV6x0DCS/3emL6UKjkDHivIjRbz5sDG7FJWvUwD/1meSKy/fVVg==","signatures":[{"sig":"MEQCIBpKrYqpRjVTBmhHBvUExtn4hVRoLdFPvh5wU0Fi0IfrAiBBTjgid94FgZ6Ir84DJghJ51DNwu4QQVTWt6akGx5WUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17831},"main":"src/index.ts","type":"module","types":"src/index.ts","shasum":"849faafaa0a99fa802ba14571f0e0c45a6e4dd02","exports":{".":"./src/index.ts"},"scripts":{"test":"bun test src"},"_npmUser":{"name":"crewhaus","email":"crew@crewhaus.ai"},"_integrity":"sha512-D4Blo2FrtkdbDO2apl5p5/tTsYsSplnRRoxlV6x0DCS/3emL6UKjkDHivIjRbz5sDG7FJWvUwD/1meSKy/fVVg==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; auto-fails-over to fallbackModels when tripped","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.1","@crewhaus/trace-event-bus":"0.1.1","@crewhaus/adapter-anthropic":"0.1.1"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.1_1780164676680_0.9755632697978149","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@crewhaus/circuit-breaker","version":"0.1.2","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.2","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"8c5cf00ff24de800ed86677887ad3966ce9883d9","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.2.tgz","fileCount":3,"integrity":"sha512-7Jfpdf7hMfgkGzXYzDBHzYmIfhRWLKwMn+aNU3huS/m5Aw8kJJkWDYD9EkboBJjdQ507F4qYa5xDILN0AkLhVA==","signatures":[{"sig":"MEQCIFWN/pOQebCg9K5fZwE+cpL61UfcIiiV9LswJOtljTugAiAKOMgeiqP95hTjj1Gqui5YAmnHQiko2VFAGCjiQf9Hrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26390},"main":"src/index.ts","type":"module","types":"src/index.ts","shasum":"8c5cf00ff24de800ed86677887ad3966ce9883d9","exports":{".":"./src/index.ts"},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-7Jfpdf7hMfgkGzXYzDBHzYmIfhRWLKwMn+aNU3huS/m5Aw8kJJkWDYD9EkboBJjdQ507F4qYa5xDILN0AkLhVA==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.2","@crewhaus/trace-event-bus":"0.1.2","@crewhaus/adapter-anthropic":"0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.2_1781176192088_0.005292362187017119","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@crewhaus/circuit-breaker","version":"0.1.3","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.3","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"cb12d72c235b4ebd6b336b66f9ac812b5c2e479a","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.3.tgz","fileCount":3,"integrity":"sha512-BTEJkILzlTfDxaUVgwjeK6M2zoie8o9es9aTDiMnz6SxsBr/M7Zm+r+08IZp8CdUuQbMWowfOT2PmI34zRdujg==","signatures":[{"sig":"MEUCIQDD2PS64B2+9q1Fgh0PLfUcl7iDs/uT/roGsdw3zesucgIgTCEo6EjETHQh1It6iW/3BGf7rfeBjd48Ds6C45COpqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26390},"main":"src/index.ts","type":"module","types":"src/index.ts","shasum":"cb12d72c235b4ebd6b336b66f9ac812b5c2e479a","exports":{".":"./src/index.ts"},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-BTEJkILzlTfDxaUVgwjeK6M2zoie8o9es9aTDiMnz6SxsBr/M7Zm+r+08IZp8CdUuQbMWowfOT2PmI34zRdujg==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.3","@crewhaus/trace-event-bus":"0.1.3","@crewhaus/adapter-anthropic":"0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.3_1781529242022_0.4365717346796374","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@crewhaus/circuit-breaker","version":"0.1.4","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.4","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"4c89f1a62a6c4d1404152776beba541f96049780","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.4.tgz","fileCount":3,"integrity":"sha512-D8tsjp4ghryEqd/m6E3eeQ/wwQMXjHhk+zluNVxJ2nmZ0pvp4wr6+PY0so3FE09ZH3fumRe1qml8BCpxE2WSvA==","signatures":[{"sig":"MEUCIGcjRlBjxcEtH7RPQIzt72cWLgoXeeqzQ1iRPFQbfNn9AiEA7H8ND7OoW8oHO0j8s3CSpLyQiJrti/5Rqbq67kTM8Es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26390},"main":"src/index.ts","type":"module","types":"src/index.ts","shasum":"4c89f1a62a6c4d1404152776beba541f96049780","exports":{".":"./src/index.ts"},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-D8tsjp4ghryEqd/m6E3eeQ/wwQMXjHhk+zluNVxJ2nmZ0pvp4wr6+PY0so3FE09ZH3fumRe1qml8BCpxE2WSvA==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.4","@crewhaus/trace-event-bus":"0.1.4","@crewhaus/adapter-anthropic":"0.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.4_1781714348802_0.5297724093374834","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@crewhaus/circuit-breaker","version":"0.1.5","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.5","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"ea796effe509c8c0e8e7834859a1b2f9840ea4f2","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.5.tgz","fileCount":3,"integrity":"sha512-AskN4rq0hfPbWL5qaWCMcJSxNvWx1aMoUFnsdPNdiRK9a/w3+3zbiYzorHI5MsjCIH2JKbYl8cYwkiuzACApug==","signatures":[{"sig":"MEUCIQD3dfVw7ukr/EfGfRcuuEC2tJcAlR4HxYFttHXXueBnQQIgXsn2ikwPUrR0CLqlRYhIFY+t5AJTOGrhzI8wr3kF67M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ea796effe509c8c0e8e7834859a1b2f9840ea4f2","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-AskN4rq0hfPbWL5qaWCMcJSxNvWx1aMoUFnsdPNdiRK9a/w3+3zbiYzorHI5MsjCIH2JKbYl8cYwkiuzACApug==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.5","@crewhaus/trace-event-bus":"0.1.5","@crewhaus/adapter-anthropic":"0.1.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.5_1782245605946_0.3295041196612698","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@crewhaus/circuit-breaker","version":"0.1.6","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.6","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"9f2d6528c8a38a094110d82622ae3f584ed0cd37","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.6.tgz","fileCount":3,"integrity":"sha512-oKAD0LmN9C7ez1FFVlViePY40sYFqz4HB4E2BE40vLaGY+pnRETbZCs7WYH1vdJv9Og8X0KWyeMTF/qPHO1yyw==","signatures":[{"sig":"MEYCIQDW/uJI4ttTBh6KFUqXPnR3sg2ceTZkNUAMtQeNKXwsIQIhAOuGhazAYYPholTjxyJZuzs6/cHHw3NAiNWwv4XMmr6p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9f2d6528c8a38a094110d82622ae3f584ed0cd37","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-oKAD0LmN9C7ez1FFVlViePY40sYFqz4HB4E2BE40vLaGY+pnRETbZCs7WYH1vdJv9Og8X0KWyeMTF/qPHO1yyw==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.6","@crewhaus/trace-event-bus":"0.1.6","@crewhaus/adapter-anthropic":"0.1.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.6_1782498682374_0.7018053899231125","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@crewhaus/circuit-breaker","version":"0.1.7","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.7","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"5cce0d48cc8d4fc69247f41fff93f2442291b64d","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.7.tgz","fileCount":3,"integrity":"sha512-yAFadOeUQZVLmaotz93i3LRZ24L4sQwy7cXKo271zdWHrskqrTymM+LZ4cQjQdxlYkJBeAYj4Y1yVZL1S3wasQ==","signatures":[{"sig":"MEUCIDtErJiNVRqyKGVW5IbumJZx3+vLUmdjqgbPmZ8x3NTRAiEAqsPy8x0cGjkDIlEmqSzq49v+jbhsVnbHczXz0lmDRkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5cce0d48cc8d4fc69247f41fff93f2442291b64d","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-yAFadOeUQZVLmaotz93i3LRZ24L4sQwy7cXKo271zdWHrskqrTymM+LZ4cQjQdxlYkJBeAYj4Y1yVZL1S3wasQ==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.7","@crewhaus/trace-event-bus":"0.1.7","@crewhaus/adapter-anthropic":"0.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.7_1782876657036_0.2607022983672571","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@crewhaus/circuit-breaker","version":"0.1.8","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.1.8","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"2aa364825f8d4e1265e79ff13c2bbffeb125fd95","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.1.8.tgz","fileCount":3,"integrity":"sha512-6ailevwXiCVp3TIoBnIF/uALwdhBtIoAef2sZXoCfd3cKXfPkjXbB0yaGJX/CELj+OR4TjsrnlwPLkzGM5YO1w==","signatures":[{"sig":"MEUCIDkthI70QfTfLvK10b/LBcNc51wFqAFcRmBzx6YHtQGpAiEAs9jRx1r42EY6wExkMerhTyh/0ltKpDVsAdrCzzVGxbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2aa364825f8d4e1265e79ff13c2bbffeb125fd95","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-6ailevwXiCVp3TIoBnIF/uALwdhBtIoAef2sZXoCfd3cKXfPkjXbB0yaGJX/CELj+OR4TjsrnlwPLkzGM5YO1w==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.1.8","@crewhaus/trace-event-bus":"0.1.8","@crewhaus/adapter-anthropic":"0.1.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.1.8_1782947377330_0.24925527798970726","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@crewhaus/circuit-breaker","version":"0.2.0","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.2.0","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"2a8cb5b1183a3b5515fb514df6081d65a286583c","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.2.0.tgz","fileCount":3,"integrity":"sha512-VtHDFURiMEvNrVtaY/vTk+P7Fb3uRooAiCj16bxtWzznxPbQa4XLcBL8AIhpEj6pTr6TDTtGfILGthifEB0wew==","signatures":[{"sig":"MEQCIAuSlBnCYJR175NJZsp81TQp26CxBL0VNK/wEABj/pc8AiBMgohKONY2kAl/Fyh+82trXlAvO1lb/ztCodIu0zfuVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9993},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2a8cb5b1183a3b5515fb514df6081d65a286583c","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-VtHDFURiMEvNrVtaY/vTk+P7Fb3uRooAiCj16bxtWzznxPbQa4XLcBL8AIhpEj6pTr6TDTtGfILGthifEB0wew==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.2.0","@crewhaus/trace-event-bus":"0.2.0","@crewhaus/adapter-anthropic":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.2.0_1783059655366_0.3284320534845886","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@crewhaus/circuit-breaker","version":"0.2.1","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.2.1","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"96d481d4611df28a68f8437b69dca386f3e65f3d","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.2.1.tgz","fileCount":3,"integrity":"sha512-gGE4Bz6jG5oLVJbCizn9HOevNTx4fA+UTRvErG+gsV0KfUnps7D2+YJqvVW/rHSOWBdRTO2m7rgyeVT7C7EGzQ==","signatures":[{"sig":"MEYCIQC0f+Sqm/nLGJ0BEtytQucUn9POvPpecRcbzFAxbGKhnQIhANgtjQMHXAyQPDCIWtruo2zXhVZzjiQDH911gUG+rrPx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9993},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"96d481d4611df28a68f8437b69dca386f3e65f3d","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-gGE4Bz6jG5oLVJbCizn9HOevNTx4fA+UTRvErG+gsV0KfUnps7D2+YJqvVW/rHSOWBdRTO2m7rgyeVT7C7EGzQ==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.2.1","@crewhaus/trace-event-bus":"0.2.1","@crewhaus/adapter-anthropic":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.2.1_1783241728125_0.5306672457555768","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@crewhaus/circuit-breaker","version":"0.2.2","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.2.2","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"1118d8a69bbb017c9dd406b1861a4c5ec72c892a","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.2.2.tgz","fileCount":3,"integrity":"sha512-TkS+xkr//5MhvxkMb5CAofhEgLXgc1ERZ/Lr2VSvjJ0U0MJUrRvHbQhofpwjMjxbbO6d+RddUKo0K3KlL9PKAg==","signatures":[{"sig":"MEUCIQCypf9YUGeXDxKIiJQuNngyavUb7ey71gzz3nSzzh/nXwIgd3RqKSKNhSjF8eeIXnKVHeUrKq9QWFuvfFBGXlZc7ag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9993},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1118d8a69bbb017c9dd406b1861a4c5ec72c892a","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-TkS+xkr//5MhvxkMb5CAofhEgLXgc1ERZ/Lr2VSvjJ0U0MJUrRvHbQhofpwjMjxbbO6d+RddUKo0K3KlL9PKAg==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.2.2","@crewhaus/trace-event-bus":"0.2.2","@crewhaus/adapter-anthropic":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.2.2_1783302377315_0.4593572668121877","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@crewhaus/circuit-breaker","version":"0.2.3","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.2.3","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"4851e6f27d06327be61f3eb6b1182157ec0b2400","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.2.3.tgz","fileCount":3,"integrity":"sha512-UotpZ8YgCgNgDn3BKJ/edbtXecdY20h9MeZ/le7EM9I3sAd4vtZSGw50oVjmijlZk9qFuOIy76jRHWmUigvAmQ==","signatures":[{"sig":"MEQCIGtsLLCQZDks2043c3ws2efKZXkLRSt+yTttpW0lK5D2AiBnPB5gboV9VjKqvkxApZRg7N3NOBvzxWwT5uCyivDWuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9993},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4851e6f27d06327be61f3eb6b1182157ec0b2400","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-UotpZ8YgCgNgDn3BKJ/edbtXecdY20h9MeZ/le7EM9I3sAd4vtZSGw50oVjmijlZk9qFuOIy76jRHWmUigvAmQ==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.2.3","@crewhaus/trace-event-bus":"0.2.3","@crewhaus/adapter-anthropic":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.2.3_1783455694400_0.9668246011141506","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@crewhaus/circuit-breaker","version":"0.2.4","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.2.4","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"ef771ac211cfcf646719965d95c757fcc3ac2801","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.2.4.tgz","fileCount":3,"integrity":"sha512-uBo/Ii4mR0h1a6bPJ3x/JYNxaeCxSBF8G8+u4v7h9NdeKpfOOpqTG88efC+6+HKuhOY2Wv02dLEHLWwQmhIc0g==","signatures":[{"sig":"MEUCIAlVcGWP30+CREcATqmqOCIysTQL06zDKEnVDXakHw+YAiEAtM6Jk3S1iAKN6VSch1XkwAMlsRdwoRpX0jxHDgEQPF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9993},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ef771ac211cfcf646719965d95c757fcc3ac2801","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-uBo/Ii4mR0h1a6bPJ3x/JYNxaeCxSBF8G8+u4v7h9NdeKpfOOpqTG88efC+6+HKuhOY2Wv02dLEHLWwQmhIc0g==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.2.4","@crewhaus/trace-event-bus":"0.2.4","@crewhaus/adapter-anthropic":"0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.2.4_1783541339110_0.025784684017412518","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@crewhaus/circuit-breaker","version":"0.3.0","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.3.0","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"a6c3ab992bbc292ef080b4d2b443e33c6077fbe8","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.3.0.tgz","fileCount":3,"integrity":"sha512-fa6+g3pItUkWlfb0H2TZp3wRpmKb4pmfPXEVnnBrCl1Ng01rfzBJxp+ZJHWemZ0vcJlOJ9apjU/FUw23hwTY0Q==","signatures":[{"sig":"MEQCIBtmAqgKxQqicjUxMirw77jfwHVyRDrv4WUwMItsJjNrAiANqtjBHc0C+QdRkVRy3LgbbfoWbgesLYAAnSyE2jS1yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a6c3ab992bbc292ef080b4d2b443e33c6077fbe8","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-fa6+g3pItUkWlfb0H2TZp3wRpmKb4pmfPXEVnnBrCl1Ng01rfzBJxp+ZJHWemZ0vcJlOJ9apjU/FUw23hwTY0Q==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.3.0","@crewhaus/trace-event-bus":"0.3.0","@crewhaus/adapter-anthropic":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.3.0_1784053366118_0.9098490252348002","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@crewhaus/circuit-breaker","version":"0.3.1","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.3.1","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"f5f4f86502cc08581926de7f784949285dc1028f","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.3.1.tgz","fileCount":3,"integrity":"sha512-/VazjZqn4hy/0zbNy7rw5c+IFHK8L0rMyHhRm6CqH0uo7PLa+yXAn04ZTuG9BgoLWhFQSKllrN3NuKTU4RkHyg==","signatures":[{"sig":"MEUCIQCrZ7QcdWCdEO1Gk9PbRRrRTjNnefgUbN2XOqX9f0/H1gIgaaAr7FSLzq3hxT0NVgleEKgfvHlo+L8mnkUlEuzEzEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f5f4f86502cc08581926de7f784949285dc1028f","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-/VazjZqn4hy/0zbNy7rw5c+IFHK8L0rMyHhRm6CqH0uo7PLa+yXAn04ZTuG9BgoLWhFQSKllrN3NuKTU4RkHyg==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.3.1","@crewhaus/trace-event-bus":"0.3.1","@crewhaus/adapter-anthropic":"0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.3.1_1784178283166_0.06488511803634411","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@crewhaus/circuit-breaker","version":"0.3.2","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.3.2","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"cfa391557473e2bdc0ce201710f872a08bace599","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.3.2.tgz","fileCount":3,"integrity":"sha512-DXMjPsIWcCoKaOQsVnxd6oyLoZund9pXGc2Q3oDihv48RTrBjxdjOwZhgE7WNCNkNO2Lf5p3JoYNOls27xBl/Q==","signatures":[{"sig":"MEYCIQCOCfJsdYLpGJgqR+MlgnnFPFsLvrzpTYpD2XiWC3Zv6QIhAO7RUYpeS30+1u+mjh7xkH25H8ubQDQzJoLqYQveiZRj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"cfa391557473e2bdc0ce201710f872a08bace599","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-DXMjPsIWcCoKaOQsVnxd6oyLoZund9pXGc2Q3oDihv48RTrBjxdjOwZhgE7WNCNkNO2Lf5p3JoYNOls27xBl/Q==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.3.2","@crewhaus/trace-event-bus":"0.3.2","@crewhaus/adapter-anthropic":"0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.3.2_1784248436828_0.2737155900903889","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@crewhaus/circuit-breaker","version":"0.4.0","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.4.0","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"d21c8bc9c118ba4946d3512e7b04951fd26f75a0","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.4.0.tgz","fileCount":3,"integrity":"sha512-D7c2/9zf9PqQeMIPcdYXarWYA1JrkwLzRmnvjTv8Z5UZPwhFYdKFoU8KhhO94/PRphYsT6nPcTpCiKmosD+cUw==","signatures":[{"sig":"MEUCIBPGCtf98ejFxOhqHpi6trmwwSnI+BPMuHZr+3Z3C+DWAiEAlKHd/gMak9I7qDip3OmR7UA2zvc5LSNUuNR6S7UY3KY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d21c8bc9c118ba4946d3512e7b04951fd26f75a0","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-D7c2/9zf9PqQeMIPcdYXarWYA1JrkwLzRmnvjTv8Z5UZPwhFYdKFoU8KhhO94/PRphYsT6nPcTpCiKmosD+cUw==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.4.0","@crewhaus/trace-event-bus":"0.4.0","@crewhaus/adapter-anthropic":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.4.0_1784392524258_0.37211983723116027","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@crewhaus/circuit-breaker","version":"0.4.2","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.4.2","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"154dbe945d1f960803ef64644178c980e3b110c2","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.4.2.tgz","fileCount":3,"integrity":"sha512-NN2MJn0H4wE4mhqT6A6yFMHv2MHUvNWCBqPm30OieVEx8VKb0cdTixzyUJ19PQ7PrCuDF0xRBHoJIkcW01HZxg==","signatures":[{"sig":"MEYCIQDs8ovWnpFb6kmvzRP+CtQ45GBGpQHTP+e+HcsAhBXN1QIhAJ12/hbgIqG7BoGvPkQoJI4t+DBMIjNLU+w1AgUe5c75","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"154dbe945d1f960803ef64644178c980e3b110c2","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"_integrity":"sha512-NN2MJn0H4wE4mhqT6A6yFMHv2MHUvNWCBqPm30OieVEx8VKb0cdTixzyUJ19PQ7PrCuDF0xRBHoJIkcW01HZxg==","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"10.8.3","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@crewhaus/errors":"0.4.2","@crewhaus/trace-event-bus":"0.4.2","@crewhaus/adapter-anthropic":"0.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.4.2_1785217498237_0.8440277585976896","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@crewhaus/circuit-breaker","version":"0.5.0","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.0","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"7c4af8b768dbf293322c8a75514891160e61ae02","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.0.tgz","fileCount":3,"integrity":"sha512-XOOoJpNN/m4uqv4x3zMH0PglG3WTmAAHWaGDttbzncPCRTHbLr3o2agR4ZBVvPklhb9mYygfiIZQw1qv6giD7g==","signatures":[{"sig":"MEQCIF/tftQjOsq++sI7Z2snmo+0Fnw2RpwXRINSl3lkJ4b5AiAHqUmPfGqHdlUE2flX7kdJjsJifPr/RiC9tyLgh3bnRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5b43ce7bade45b6369c1b2718526af04d3fd7567","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@crewhaus/errors":"0.5.0","@crewhaus/trace-event-bus":"0.5.0","@crewhaus/adapter-anthropic":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.0_1785967666915_0.8364917349310503","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@crewhaus/circuit-breaker","version":"0.5.1","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.1","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"39982ea4b978041a7af91898b3a099e557128f53","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.1.tgz","fileCount":3,"integrity":"sha512-122zrskrDhdG2Ei5kuvxoxTZKstVE+P1DBT4kaXr0ouE0HrgQSH1gWJT2z6+VCWkNQNI6AqGoKQKMTsv0YEwrw==","signatures":[{"sig":"MEQCIAViGWOp6uxMfbhgRbGa2OCCBh/SLR5MJzu+4C8HtPwOAiAWV17elUW0EGbueGZP+oZMzPRwan6JED7gZ0yoWdljmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8a2814d2d219bc755c72fb49049ccb47c8ff5e24","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@crewhaus/errors":"0.5.1","@crewhaus/trace-event-bus":"0.5.1","@crewhaus/adapter-anthropic":"0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.1_1785983246111_0.603368566263579","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@crewhaus/circuit-breaker","version":"0.5.2","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.2","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"05d4810ba5dc34eefaa17138d1bdbebe96191af6","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.2.tgz","fileCount":3,"integrity":"sha512-2Gs1rfPeX4NuuhsT2f1rJiLHqtZhMhDvNLwpUJ8ylqTwzpQuiKfZDLFR2LnBiMGkhkwB/nKWNVywCsbcFVEW0g==","signatures":[{"sig":"MEYCIQCxi/l21xp24/k6anl00pBF7ir0rMtapcD5MGmh/o0wEgIhAP+mqRVmCpoaONF6nkgfWws4Eez+72RAUaNAJU8abhkR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"114368f9309d03472db07358201415ad53852b4a","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@crewhaus/errors":"0.5.2","@crewhaus/trace-event-bus":"0.5.2","@crewhaus/adapter-anthropic":"0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.2_1786424982275_0.2831547737451432","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@crewhaus/circuit-breaker","version":"0.5.3","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.3","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"b08dca13c7c838b07a60c04fc156b89973d58e22","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.3.tgz","fileCount":3,"integrity":"sha512-9ZwrS4HOwgBmTuu4d2AOEjhHr6A5DJ7xF/alynAJeYnaud7ciBgJ+BSk4Yhanqvl8NIVsHoZejYMtteJNITdow==","signatures":[{"sig":"MEUCIH32yVkqKe2TYgx2Y9Bja2iCqbC3H9s45k/YhEwBp/6kAiEA0ljPHGuY3wevGu+8DWkog2pba8nzTTZL56A6z/L2bbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2e158a4c2e7c2f3e76152fa3822c49579de762ad","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@crewhaus/errors":"0.5.3","@crewhaus/trace-event-bus":"0.5.3","@crewhaus/adapter-anthropic":"0.5.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.3_1786567746680_0.64653250013105","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@crewhaus/circuit-breaker","version":"0.5.4","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.4","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"7b24f3f65b8297875d3caca48127c915ca5330b4","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.4.tgz","fileCount":3,"integrity":"sha512-MjK4MmPJ1+9XcgdiRdi0KSGvW4J63iXGffI8NmGKxfTrmSKSo22HKmZKFY3sA+9UJsqlis/soDaOmB3srWn1Qg==","signatures":[{"sig":"MEYCIQDD4tDvdhecTJteNNCIO8HRO7CdWZfViVhGoKO7AjNVagIhAIO3X5ACoBfDi2asVJOArwdd6BavIXnI7UvLii/vdsFG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1379187495db321c36779c77b47917793f4908a7","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@crewhaus/errors":"0.5.4","@crewhaus/trace-event-bus":"0.5.4","@crewhaus/adapter-anthropic":"0.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.4_1786581169421_0.41199852926636193","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@crewhaus/circuit-breaker","version":"0.5.5","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.5","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"99565874a53305e6eedda56e5a7ba6e638dfb913","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.5.tgz","fileCount":3,"integrity":"sha512-Kv5LkLhVSeafNJ4y+JKQ1RSPu6BciaI5tJYi/nQO7A7riA4Pf7BqkD+M/y+H7qwulPNKq/OwsOOfooTGHcG1wQ==","signatures":[{"sig":"MEUCIFsRaNZ3eweJck9GqULAdWmhRMBjxTCFCi/axPB2yaeDAiEA/dNABZkGMI7uuCMBe1k7sttIBgUl7ItKUKeH9QqwG4U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4a0733a74ce317be51475644cab91b2b4adebd24","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@crewhaus/errors":"0.5.5","@crewhaus/trace-event-bus":"0.5.5","@crewhaus/adapter-anthropic":"0.5.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.5_1786715744700_0.5409345104546348","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@crewhaus/circuit-breaker","version":"0.5.6","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.6","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"ce6a87c6c3b07daa9b4a0d1533769d67cdcf573a","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.6.tgz","fileCount":3,"integrity":"sha512-1Z2A2TCp8KKZdUFwWQB9FBTFc+k/vvDHpRKwUIDCzajIX7yI1O/mk4nddjFjz6xyjZ5Xx2/MHeOEC9HbTEyOXQ==","signatures":[{"sig":"MEUCIAOTceBWQKp7CxFGjcycIvq3SAX+j33+Ft4ji1GzGqQDAiEApKIO2nwAa9+PaDTaXL7ZvebXc4eriLccyyunJM2a9mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"275105d2703c4c6ec46435f1a71863ee051069bb","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@crewhaus/errors":"0.5.6","@crewhaus/trace-event-bus":"0.5.6","@crewhaus/adapter-anthropic":"0.5.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.6_1786719922948_0.6479333125803206","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@crewhaus/circuit-breaker","version":"0.5.7","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.7","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"886554e7533eafdcc042c1a49d4282b5dfa639ee","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.7.tgz","fileCount":3,"integrity":"sha512-stTJCLEQ8tgzN7wBLTujj/eUGR6olFKLUnsXvlhn6vi8ZaWx+AOWFnxWhPQ8Wn9sCuylxI5vlGVV2Soih62/1g==","signatures":[{"sig":"MEQCIAEfdYAwo6/3q82NEXtNIqJKtwWk96V5M68SEOv++yOBAiBu0FOiV/xJ3uG3eBqxXEGSSUY+QuG5hQtNps2squEGaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"aab4fb9e901e10cb199b754bb957bfb9c58fd624","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.0","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@crewhaus/errors":"0.5.7","@crewhaus/trace-event-bus":"0.5.7","@crewhaus/adapter-anthropic":"0.5.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.7_1787017713818_0.3245951797896873","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@crewhaus/circuit-breaker","version":"0.5.8","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.5.8","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"2e7f93e45ece44020058765a39f728d3264f82d5","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.5.8.tgz","fileCount":3,"integrity":"sha512-CM3KV16JbOS+FJr+2eu1H8O/YV6f5xBYd1kpyvgLTbimdPyC6hhN9svOxxT3F1tNben94bZ7ecIa5xu7dvkrOw==","signatures":[{"sig":"MEQCIGrxkVsTlVOqMTIB4Dh3W4Xtep2X7Ejsf9Voabk9ihPoAiB1WEfg4eaJlQeu/bSWKw4OVcVNaIGqlibxWTwfoGSN6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.5.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7d3cc4f65fa8b2ad7adeda258321188e856ef2b4","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.1","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@crewhaus/errors":"0.5.8","@crewhaus/trace-event-bus":"0.5.8","@crewhaus/adapter-anthropic":"0.5.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.5.8_1787897856276_0.4135948733433854","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@crewhaus/circuit-breaker","version":"0.6.0","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","_id":"@crewhaus/circuit-breaker@0.6.0","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"a4d9b4342cd735db552f9cdde39efa9eef977b6f","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.6.0.tgz","fileCount":3,"integrity":"sha512-2VVwd9amQbi3k/Z4Hj7kzdZtWkt0dk1yBoq+HeUvH246JkiHZWQ9oHpH3IyiN9c/urDMgk/0dd4x09Ot0ANxiw==","signatures":[{"sig":"MEYCIQCZTWn0TrGqMbXMgAFB+YN3sPsZyT8BCDrC3xWvPSwVFgIhAIzaJcqNDaObqsEX13ZLqWjBBsOLYdxr5TLGXZohR7ub","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14879},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f171b9d0ef7d79ac47b3c93376e8da50e79a07dd","scripts":{"test":"bun test src"},"_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.1","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@crewhaus/errors":"0.6.0","@crewhaus/trace-event-bus":"0.6.0","@crewhaus/adapter-anthropic":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/circuit-breaker_0.6.0_1788871287686_0.7753620153408738","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@crewhaus/circuit-breaker@0.7.0","bugs":{"url":"https://github.com/crewhaus/factory/issues"},"dist":{"shasum":"ee79216463a2c848aa05f86ef8233a7cc628a49f","tarball":"https://registry.npmjs.org/@crewhaus/circuit-breaker/-/circuit-breaker-0.7.0.tgz","fileCount":3,"integrity":"sha512-xvfY7Vjv3rA/40ooTZd0T/L1P7dswLNd/foWer05Sa6OxPHGgqxbVuW/6TlidrstfriBBeixXVEJ0e/YwdztgA==","signatures":[{"sig":"MEUCIQDv2Sdbf7vrjVJQe4x6yG7VfUsGlYQzrkvHQzDFkA29NQIgMe30iO74OnMg3sm76VUcsFEyHps94gFcYHdwyzBTKVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHERtirUm/Tf11Z5/tEDBRiGiQ99lNGwlcpLrqqise8jAiEA8Y1RTnmaibVD3iIcnGTV3msNbTu5P38x92chemooGQg="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@crewhaus%2fcircuit-breaker@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14879},"main":"dist/index.js","name":"@crewhaus/circuit-breaker","type":"module","types":"dist/index.d.ts","author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d96a9a2f7c7758985d7c7d5be53e4d16c670d657","license":"Apache-2.0","scripts":{"test":"bun test src"},"version":"0.7.0","_npmUser":{"name":"studiomaxops","email":"crew@crewhaus.ai"},"homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"_npmVersion":"11.19.1","description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","directories":{},"maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"_nodeVersion":"24.20.0","dependencies":{"@crewhaus/errors":"0.7.0","@crewhaus/trace-event-bus":"0.7.0","@crewhaus/adapter-anthropic":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/circuit-breaker_0.7.0_1790097848853_0.15881339049083"}}},"time":{"created":"2026-05-30T18:00:25.325Z","modified":"2026-09-22T17:24:09.284Z","0.1.0":"2026-05-30T18:00:25.601Z","0.1.1":"2026-05-30T18:11:16.846Z","0.1.2":"2026-06-11T11:09:52.210Z","0.1.3":"2026-06-15T13:14:02.158Z","0.1.4":"2026-06-17T16:39:08.920Z","0.1.5":"2026-06-23T20:13:26.130Z","0.1.6":"2026-06-26T18:31:22.503Z","0.1.7":"2026-07-01T03:30:57.160Z","0.1.8":"2026-07-01T23:09:37.461Z","0.2.0":"2026-07-03T06:20:55.502Z","0.2.1":"2026-07-05T08:55:28.244Z","0.2.2":"2026-07-06T01:46:17.435Z","0.2.3":"2026-07-07T20:21:34.550Z","0.2.4":"2026-07-08T20:08:59.229Z","0.3.0":"2026-07-14T18:22:46.249Z","0.3.1":"2026-07-16T05:04:43.317Z","0.3.2":"2026-07-17T00:33:56.996Z","0.4.0":"2026-07-18T16:35:24.385Z","0.4.2":"2026-07-28T05:44:58.390Z","0.5.0":"2026-08-05T22:07:47.052Z","0.5.1":"2026-08-06T02:27:26.234Z","0.5.2":"2026-08-11T05:09:42.418Z","0.5.3":"2026-08-12T20:49:06.830Z","0.5.4":"2026-08-13T00:32:49.584Z","0.5.5":"2026-08-14T13:55:44.829Z","0.5.6":"2026-08-14T15:05:23.079Z","0.5.7":"2026-08-18T01:48:33.979Z","0.5.8":"2026-08-28T06:17:36.374Z","0.6.0":"2026-09-08T12:41:27.823Z","0.7.0":"2026-09-22T17:24:08.966Z"},"bugs":{"url":"https://github.com/crewhaus/factory/issues"},"author":{"url":"https://crewhaus.ai","name":"Max Meier","email":"max@crewhaus.ai"},"license":"Apache-2.0","homepage":"https://github.com/crewhaus/factory/tree/main/packages/circuit-breaker#readme","repository":{"url":"git+https://github.com/crewhaus/factory.git","type":"git","directory":"packages/circuit-breaker"},"description":"Half-open circuit breaker that wraps a ProviderAdapter; refuses to stream while open so callers can route to their next candidate model","maintainers":[{"name":"studiomaxops","email":"crew@crewhaus.ai"}],"readme":"ERROR: No README data found!","readmeFilename":""}