harness-dispatch 0.7.8 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +706 -1
- package/README.md +35 -5
- package/config.default.yaml +30 -2
- package/dist/auth.d.ts +29 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +58 -5
- package/dist/auth.js.map +1 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +449 -21
- package/dist/bin.js.map +1 -1
- package/dist/breaker-store.d.ts +25 -1
- package/dist/breaker-store.d.ts.map +1 -1
- package/dist/breaker-store.js +193 -25
- package/dist/breaker-store.js.map +1 -1
- package/dist/client-register.d.ts +147 -0
- package/dist/client-register.d.ts.map +1 -0
- package/dist/client-register.js +380 -0
- package/dist/client-register.js.map +1 -0
- package/dist/config/validation.d.ts +29 -0
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +88 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -2
- package/dist/config.js.map +1 -1
- package/dist/dispatch-log.d.ts +14 -0
- package/dist/dispatch-log.d.ts.map +1 -1
- package/dist/dispatch-log.js +3 -0
- package/dist/dispatch-log.js.map +1 -1
- package/dist/dispatchers/generic-cli.d.ts.map +1 -1
- package/dist/dispatchers/generic-cli.js +35 -0
- package/dist/dispatchers/generic-cli.js.map +1 -1
- package/dist/dispatchers/openai-compatible.d.ts +20 -4
- package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
- package/dist/dispatchers/openai-compatible.js +145 -17
- package/dist/dispatchers/openai-compatible.js.map +1 -1
- package/dist/dispatchers/shared/rate-limit-headers.d.ts +4 -2
- package/dist/dispatchers/shared/rate-limit-headers.d.ts.map +1 -1
- package/dist/dispatchers/shared/rate-limit-headers.js +4 -2
- package/dist/dispatchers/shared/rate-limit-headers.js.map +1 -1
- package/dist/http/answer-stream.d.ts +52 -0
- package/dist/http/answer-stream.d.ts.map +1 -0
- package/dist/http/answer-stream.js +47 -0
- package/dist/http/answer-stream.js.map +1 -0
- package/dist/http/parse.d.ts.map +1 -1
- package/dist/http/parse.js +41 -0
- package/dist/http/parse.js.map +1 -1
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +102 -9
- package/dist/http/server.js.map +1 -1
- package/dist/jobs/store.d.ts.map +1 -1
- package/dist/jobs/store.js +45 -4
- package/dist/jobs/store.js.map +1 -1
- package/dist/jobs.d.ts +24 -0
- package/dist/jobs.d.ts.map +1 -1
- package/dist/jobs.js +101 -1
- package/dist/jobs.js.map +1 -1
- package/dist/mcp/config-hot-reload.d.ts.map +1 -1
- package/dist/mcp/config-hot-reload.js +10 -0
- package/dist/mcp/config-hot-reload.js.map +1 -1
- package/dist/mcp/near-miss-guard.d.ts +45 -0
- package/dist/mcp/near-miss-guard.d.ts.map +1 -0
- package/dist/mcp/near-miss-guard.js +98 -0
- package/dist/mcp/near-miss-guard.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +36 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-schemas.d.ts.map +1 -1
- package/dist/mcp/tool-schemas.js +21 -4
- package/dist/mcp/tool-schemas.js.map +1 -1
- package/dist/mcp/tools.d.ts +32 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +41 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp-clients.d.ts +63 -0
- package/dist/mcp-clients.d.ts.map +1 -0
- package/dist/mcp-clients.js +117 -0
- package/dist/mcp-clients.js.map +1 -0
- package/dist/near-miss.d.ts +63 -0
- package/dist/near-miss.d.ts.map +1 -0
- package/dist/near-miss.js +132 -0
- package/dist/near-miss.js.map +1 -0
- package/dist/quota.d.ts +31 -1
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +68 -6
- package/dist/quota.js.map +1 -1
- package/dist/route-policy.d.ts +10 -0
- package/dist/route-policy.d.ts.map +1 -1
- package/dist/route-policy.js +20 -2
- package/dist/route-policy.js.map +1 -1
- package/dist/router.d.ts +61 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +165 -29
- package/dist/router.js.map +1 -1
- package/dist/safety.d.ts.map +1 -1
- package/dist/safety.js +31 -1
- package/dist/safety.js.map +1 -1
- package/dist/status.d.ts +30 -21
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +152 -8
- package/dist/status.js.map +1 -1
- package/dist/types.d.ts +43 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/working-dir.d.ts.map +1 -1
- package/dist/working-dir.js +16 -0
- package/dist/working-dir.js.map +1 -1
- package/dist/workspace-resolve.d.ts.map +1 -1
- package/dist/workspace-resolve.js +119 -15
- package/dist/workspace-resolve.js.map +1 -1
- package/dist/workspaces.d.ts +83 -0
- package/dist/workspaces.d.ts.map +1 -1
- package/dist/workspaces.js +288 -15
- package/dist/workspaces.js.map +1 -1
- package/package.json +4 -3
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAU3C,KAAK,UAAU,YAAY,CAAC,UAA8B;IACxD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE;QAClD,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI;KAC9C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,kBAAkB;QAClB,EAAE;QACF,QAAQ;QACR,6DAA6D;QAC7D,+EAA+E;QAC/E,qFAAqF;QACrF,gGAAgG;QAChG,8FAA8F;QAC9F,kFAAkF;QAClF,kFAAkF;QAClF,iGAAiG;QACjG,iFAAiF;QACjF,yEAAyE;QACzE,0EAA0E;QAC1E,EAAE;QACF,UAAU;QACV,8CAA8C;QAC9C,0EAA0E;QAC1E,mEAAmE;QACnE,iEAAiE;QACjE,qDAAqD;QACrD,oFAAoF;QACpF,qFAAqF;QACrF,uEAAuE;QACvE,mFAAmF;QACnF,oCAAoC;QACpC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAGD,KAAK,UAAU,YAAY,CACzB,UAA8B,EAC9B,kBAAsC,EACtC,IAAsD;IAEtD,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAEvD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAClD,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,MAAM,KAAK,SAAS;YACxB,GAAG,CAAC,MAAM,KAAK,EAAE;YACjB,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS;YAC7C,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CACjD,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E;gBAC5E,sEAAsE;gBACtE,iFAAiF;gBACjF,iBAAiB,CACpB,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,UAAU,iBAAiB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9F,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,IAAI,aAAa,GAAG,CAAC,OAAO,IAAI,IAAI,YAAY,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,WAAW,sBAAsB,CAAC,GAAG,CAAC,UACpH,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,gBAAgB,IAAI,SACvC,IAAI,CACL,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC;YAChF,8EAA8E;YAC9E,yEAAyE;YACzE,+CAA+C,CAClD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6BAA6B,MAAM,CAAC,cAAc,CAAC,MAAM,4BAA4B,CACtF,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,IAAI,aAAa,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kDAAkD,MAAM,qCAAqC,CAC9F,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,yGAAyG,CAC1G,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,0DAA0D;IAC1D,EAAE;IACF,iFAAiF;IACjF,6EAA6E;IAC7E,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,cAAc,MAAM,6CAA6C;YAC/D,6EAA6E;YAC7E,uDAAuD,CAC1D,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uFAAuF;QACrF,oFAAoF;QACpF,mFAAmF,CACtF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CACZ;QACE,UAAU,EAAE;YACV,kBAAkB,EAAE;gBAClB,OAAO,EAAE,kBAAkB;gBAC3B,IAAI,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;aACnC;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,UAA8B,EAC9B,IAA2D;IAE3D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,IAAqB,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,CACpB,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9F,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,UAA8B,EAC9B,IAAuB;IAEvB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAClF,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,iBAAiB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;gBAC9E,yEAAyE;gBACzE,0DAA0D;SAC7D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,UAA8B,EAC9B,IAA0D;IAE1D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,qCAAqC;IACrC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;SAC5D,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GACV,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE;QACrB,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE;YACtB,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAyD;QACnE;YACE,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,MAAM;gBACZ,CAAC,CAAC,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACjC,CAAC,CAAC,QAAQ,OAAO,CAAC,QAAQ,CAAC,IAAI,qCAAqC;SACvE;QACD;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;YACnD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,sBAAsB;SAC7E;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;YACtD,MAAM,EACJ,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBACvE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,gCAAgC;SACvC;QACD;YACE,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC3B,wEAAwE;YACxE,uEAAuE;YACvE,+DAA+D;YAC/D,MAAM,EACJ,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,iBAAiB;gBACzC,CAAC,CAAC,2DAA2D;oBAC3D,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBACrD,sEAAsE;SAC7E;QACD;YACE,uEAAuE;YACvE,uEAAuE;YACvE,iEAAiE;YACjE,aAAa;YACb,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE;YACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC,MAAM;SAClC;QACD;YACE,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,CAAC,MAAM,aAAa,EAAE,CAAC;gBAC7B,CAAC,CAAC,uBAAuB,SAAS,EAAE,iCAAiC;gBACrE,CAAC,CAAC,uFAAuF;SAC5F;KACF,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAC1E,CAAC;IACF,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,IAAI;QACR,MAAM,EACJ,OAAO,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,CAAC,yCAAyC;YAC3C,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,gEAAgE;KACxF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,KAAK,WAAW,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,CAC/F,CAAC;IACF,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,eAAe;QACrB,EAAE,EAAE,IAAI;QACR,MAAM,EACJ,MAAM,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,qEAAqE;KAC5F,CAAC,CAAC;IAEH,IAAI,SAOS,CAAC;IACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAC3C,qFAAqF,EACrF,EAAE,EACF,OAAO,CAAC,GAAG,EAAE,EACb,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAClD,CAAC;QACF,SAAS,GAAG;YACV,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QACF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,MAAM,CAAC,OAAO;YAClB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACpB,CAAC,CAAC,kBAAkB,MAAM,CAAC,OAAO,EAAE;gBACpC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,6DAA6D;SACtE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,UAA8B,EAC9B,IAAsC;IAEtC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,wBAAwB,CAAC,CAAC;IACzF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE;QAC3B,kBAAkB;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,MAA0B;IAC/C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,CAAC;QACX,CAAC;QACD;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,UAA8B;IACzE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;QACjF,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;QAC9B,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,gBAAgB,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAgB;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAW,SAAQ,KAAK;CAAG;AAEjC,SAAS,SAAS,CAAC,MAA0C;IAC3D,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,UAAU,CAClB,sDAAsD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;gBACpF,wCAAwC,CAC3C,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;QACD,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;QACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU;QACnE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;KAChD,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAClB,iBAAiB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;YACrD,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAC9E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,iBAAiB,EAAE,CAAC;IAE1B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC;IACvC,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAA4B,CAAC;IAC/D,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC7C,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE;YAC3B,qBAAqB;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,UAAU,EAAE,kBAAkB,EAAE;gBAClD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;gBACxB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;aAC7B,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,UAAU,EAAE;gBAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACzC,CAAC,CAAC;QACL,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,eAAe;YAClB,OAAO,SAAS,CAAC,UAAU,EAAE;gBAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,eAAe;gBACzD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;aACpD,CAAC,CAAC;QACL,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,OAAO;YACV,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAC1D,KAAK,KAAK;YACR,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;YACtD,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GACd,OAAO,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IACnF,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC7B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,yEAAyE;QACzE,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,iEAAiE;QACjE,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,OAAO;CAC5D,CAAC,CAAC;YACK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/breaker-store.d.ts
CHANGED
|
@@ -28,17 +28,41 @@
|
|
|
28
28
|
* temp-then-rename keeps each individual file readable at all times. No
|
|
29
29
|
* lockfile, no retry loop, nothing to get wrong under contention.
|
|
30
30
|
*/
|
|
31
|
-
import type
|
|
31
|
+
import { type CircuitBreakerSnapshot } from "./circuit-breaker.js";
|
|
32
32
|
export declare class BreakerStore {
|
|
33
33
|
private readonly stateDir;
|
|
34
34
|
private persistCounter;
|
|
35
|
+
/**
|
|
36
|
+
* Routes whose record exists but could not be parsed, as of the last
|
|
37
|
+
* loadAll(). See loadAll() for why this is tracked rather than shrugged off.
|
|
38
|
+
*/
|
|
39
|
+
private unreadable;
|
|
35
40
|
/**
|
|
36
41
|
* @param stateDir directory holding one JSON file per route. Older builds
|
|
37
42
|
* passed a single `breaker_state.json` FILE here; such a path is treated as
|
|
38
43
|
* the legacy blob and migrated on first read.
|
|
39
44
|
*/
|
|
40
45
|
constructor(stateDir?: string);
|
|
46
|
+
/**
|
|
47
|
+
* Every route's persisted snapshot. Routes with no file are healthy by
|
|
48
|
+
* construction — save() deletes a fully-healthy record rather than writing
|
|
49
|
+
* a no-op one.
|
|
50
|
+
*
|
|
51
|
+
* A file that EXISTS but does not parse is a different thing, and used to
|
|
52
|
+
* be indistinguishable from that absence: readOne() returned undefined for
|
|
53
|
+
* both, so a truncated or half-written record rendered as `breaker=closed
|
|
54
|
+
* failures=0`, route Ready, with nothing said by `status` or `doctor`. One
|
|
55
|
+
* corrupt file silently un-tripped a route mid-cooldown — the exact failure
|
|
56
|
+
* this whole module was added to prevent, arrived at from the other side.
|
|
57
|
+
*
|
|
58
|
+
* The lost state cannot be recovered, so this does not try to guess at it
|
|
59
|
+
* (failing closed would strand a route until someone deleted a file by
|
|
60
|
+
* hand). It records the route name instead, so the surfaces a person reads
|
|
61
|
+
* can say the state is unknown rather than assert that it is fine.
|
|
62
|
+
*/
|
|
41
63
|
loadAll(): Record<string, CircuitBreakerSnapshot>;
|
|
64
|
+
/** Routes whose record was present but unparseable at the last loadAll(). */
|
|
65
|
+
unreadableRoutes(): string[];
|
|
42
66
|
/**
|
|
43
67
|
* Persist one route's snapshot, synchronously — a CLI invocation can exit
|
|
44
68
|
* immediately after a dispatch, same rationale as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breaker-store.d.ts","sourceRoot":"","sources":["../src/breaker-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAcH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"breaker-store.d.ts","sourceRoot":"","sources":["../src/breaker-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAcH,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAqJrF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,cAAc,CAAK;IAC3B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;OAIG;gBACS,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC;IA4BjD,6EAA6E;IAC7E,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAiB7D;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,KAAK,sBAAsB,GAC9E,sBAAsB;IAqBzB,OAAO,CAAC,OAAO;IAiCf;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAiFxB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;CAexB"}
|
package/dist/breaker-store.js
CHANGED
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
32
32
|
import path from "node:path";
|
|
33
|
+
import { MAX_COOLDOWN_SEC } from "./circuit-breaker.js";
|
|
33
34
|
import { withFileLock } from "./file-lock.js";
|
|
34
35
|
import { stateRoot } from "./state-dir.js";
|
|
35
36
|
function defaultStateDir() {
|
|
@@ -98,9 +99,92 @@ function serviceFromFileName(entry) {
|
|
|
98
99
|
return undefined;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Stand-in "route name" for a legacy blob that would not parse at all — there
|
|
104
|
+
* are no route names to report in that case, and reporting nothing is what the
|
|
105
|
+
* old behaviour did.
|
|
106
|
+
*/
|
|
107
|
+
const LEGACY_BLOB_ROUTE = "(legacy breaker_state.json)";
|
|
108
|
+
/**
|
|
109
|
+
* One persisted record -> a snapshot, or undefined if the record is corrupt.
|
|
110
|
+
*
|
|
111
|
+
* Shared by the per-route files and the legacy blob's entries, because they
|
|
112
|
+
* are the same data written twice and were being validated to two different
|
|
113
|
+
* standards: the per-route reader gained type checks that the migration path
|
|
114
|
+
* never got, so an upgrade — the one moment a live cooldown is most likely to
|
|
115
|
+
* be sitting on disk — still coerced a bad record to healthy, skipped it as
|
|
116
|
+
* "nothing to migrate", and deleted the blob. Reproduced by an acceptance
|
|
117
|
+
* pass.
|
|
118
|
+
*
|
|
119
|
+
* A PRESENT field of the wrong type is corruption; an ABSENT one is an older
|
|
120
|
+
* build that wrote fewer fields, and stays tolerated.
|
|
121
|
+
*/
|
|
122
|
+
function snapshotFromRecord(v) {
|
|
123
|
+
if (!v || typeof v !== "object" || Array.isArray(v))
|
|
124
|
+
return undefined;
|
|
125
|
+
const r = v;
|
|
126
|
+
// A record naming NONE of the fields this understands is not a record this
|
|
127
|
+
// understands, and must not be read as a healthy route.
|
|
128
|
+
//
|
|
129
|
+
// Tolerating absent fields (for older builds that wrote fewer) had no floor,
|
|
130
|
+
// so `{}` and a foreign schema passed every guard and coerced to healthy.
|
|
131
|
+
// The per-route reader caught that via its healthy-is-a-contradiction rule,
|
|
132
|
+
// but the legacy blob has no such rule — healthy entries were legitimate
|
|
133
|
+
// there — so on the upgrade path both shapes were swallowed and the file
|
|
134
|
+
// deleted. This module's own header records that it was ported from a
|
|
135
|
+
// Python implementation keyed `consecutive_failures` / `blocked_until`,
|
|
136
|
+
// which is exactly that foreign shape, so it is a real one and not a
|
|
137
|
+
// hypothetical. Reproduced by an acceptance pass.
|
|
138
|
+
//
|
|
139
|
+
// Every snapshot this module has ever written carries both fields, so the
|
|
140
|
+
// floor costs nothing an older build would trip over.
|
|
141
|
+
if (r.failures === undefined && r.blockedUntilMs === undefined)
|
|
142
|
+
return undefined;
|
|
143
|
+
if (r.failures !== undefined && typeof r.failures !== "number")
|
|
144
|
+
return undefined;
|
|
145
|
+
if (r.blockedUntilMs !== undefined && r.blockedUntilMs !== null) {
|
|
146
|
+
if (typeof r.blockedUntilMs !== "number")
|
|
147
|
+
return undefined;
|
|
148
|
+
// A deadline this module could never have WRITTEN.
|
|
149
|
+
//
|
|
150
|
+
// snapshot() only ever emits `null` or `Date.now() + remaining`, and
|
|
151
|
+
// cooldownRemaining is capped at MAX_COOLDOWN_SEC — so a real record's
|
|
152
|
+
// deadline is positive, finite, and at most a day ahead of when it was
|
|
153
|
+
// written. Values outside that were not produced here.
|
|
154
|
+
//
|
|
155
|
+
// Deliberately NOT "is it in the past": a genuine cooldown becomes past
|
|
156
|
+
// simply by time passing, and calling that corrupt would report every
|
|
157
|
+
// expired record on disk. An acceptance pass found `blockedUntilMs: 0`
|
|
158
|
+
// reading as a healthy route and the CHANGELOG claiming the
|
|
159
|
+
// healthy-is-a-contradiction rule "catches every unrecognised shape" —
|
|
160
|
+
// it cannot, and a plausible-but-wrong timestamp stays indistinguishable
|
|
161
|
+
// from a real expired one by construction. This closes the impossible
|
|
162
|
+
// values only, and the claim is corrected rather than widened.
|
|
163
|
+
if (!Number.isFinite(r.blockedUntilMs) || r.blockedUntilMs <= 0)
|
|
164
|
+
return undefined;
|
|
165
|
+
if (r.blockedUntilMs > Date.now() + MAX_COOLDOWN_SEC * 1000)
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
if (r.lastFailureAtMs !== undefined && r.lastFailureAtMs !== null && typeof r.lastFailureAtMs !== "number") {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
failures: typeof r.failures === "number" ? r.failures : 0,
|
|
173
|
+
blockedUntilMs: typeof r.blockedUntilMs === "number" ? r.blockedUntilMs : null,
|
|
174
|
+
// Round-tripped so FAILURE_DECAY_SEC works across processes; omitted (not
|
|
175
|
+
// nulled) when absent, so files written by older builds read back exactly
|
|
176
|
+
// as they were written.
|
|
177
|
+
...(typeof r.lastFailureAtMs === "number" ? { lastFailureAtMs: r.lastFailureAtMs } : {}),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
101
180
|
export class BreakerStore {
|
|
102
181
|
stateDir;
|
|
103
182
|
persistCounter = 0;
|
|
183
|
+
/**
|
|
184
|
+
* Routes whose record exists but could not be parsed, as of the last
|
|
185
|
+
* loadAll(). See loadAll() for why this is tracked rather than shrugged off.
|
|
186
|
+
*/
|
|
187
|
+
unreadable = [];
|
|
104
188
|
/**
|
|
105
189
|
* @param stateDir directory holding one JSON file per route. Older builds
|
|
106
190
|
* passed a single `breaker_state.json` FILE here; such a path is treated as
|
|
@@ -109,8 +193,26 @@ export class BreakerStore {
|
|
|
109
193
|
constructor(stateDir) {
|
|
110
194
|
this.stateDir = stateDir ?? defaultStateDir();
|
|
111
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Every route's persisted snapshot. Routes with no file are healthy by
|
|
198
|
+
* construction — save() deletes a fully-healthy record rather than writing
|
|
199
|
+
* a no-op one.
|
|
200
|
+
*
|
|
201
|
+
* A file that EXISTS but does not parse is a different thing, and used to
|
|
202
|
+
* be indistinguishable from that absence: readOne() returned undefined for
|
|
203
|
+
* both, so a truncated or half-written record rendered as `breaker=closed
|
|
204
|
+
* failures=0`, route Ready, with nothing said by `status` or `doctor`. One
|
|
205
|
+
* corrupt file silently un-tripped a route mid-cooldown — the exact failure
|
|
206
|
+
* this whole module was added to prevent, arrived at from the other side.
|
|
207
|
+
*
|
|
208
|
+
* The lost state cannot be recovered, so this does not try to guess at it
|
|
209
|
+
* (failing closed would strand a route until someone deleted a file by
|
|
210
|
+
* hand). It records the route name instead, so the surfaces a person reads
|
|
211
|
+
* can say the state is unknown rather than assert that it is fine.
|
|
212
|
+
*/
|
|
112
213
|
loadAll() {
|
|
113
214
|
const out = {};
|
|
215
|
+
this.unreadable = [];
|
|
114
216
|
this.absorbLegacyBlob(out);
|
|
115
217
|
if (!existsSync(this.stateDir))
|
|
116
218
|
return out;
|
|
@@ -127,12 +229,23 @@ export class BreakerStore {
|
|
|
127
229
|
const service = serviceFromFileName(entry);
|
|
128
230
|
if (service === undefined)
|
|
129
231
|
continue;
|
|
130
|
-
const
|
|
131
|
-
|
|
232
|
+
const file = path.join(this.stateDir, entry);
|
|
233
|
+
const snapshot = this.readOne(file);
|
|
234
|
+
if (snapshot) {
|
|
132
235
|
out[service] = snapshot;
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
// readdir listed it a moment ago; still being there means the read
|
|
239
|
+
// failed on the contents, not on a file that vanished under us.
|
|
240
|
+
if (existsSync(file))
|
|
241
|
+
this.unreadable.push(service);
|
|
133
242
|
}
|
|
134
243
|
return out;
|
|
135
244
|
}
|
|
245
|
+
/** Routes whose record was present but unparseable at the last loadAll(). */
|
|
246
|
+
unreadableRoutes() {
|
|
247
|
+
return this.unreadable.slice();
|
|
248
|
+
}
|
|
136
249
|
/**
|
|
137
250
|
* Persist one route's snapshot, synchronously — a CLI invocation can exit
|
|
138
251
|
* immediately after a dispatch, same rationale as
|
|
@@ -200,17 +313,34 @@ export class BreakerStore {
|
|
|
200
313
|
}
|
|
201
314
|
readOne(file) {
|
|
202
315
|
try {
|
|
203
|
-
const
|
|
204
|
-
if (
|
|
316
|
+
const snapshot = snapshotFromRecord(JSON.parse(readFileSync(file, "utf-8")));
|
|
317
|
+
if (snapshot === undefined)
|
|
318
|
+
return undefined;
|
|
319
|
+
// A record that reads back FULLY HEALTHY is a contradiction, because
|
|
320
|
+
// save() deletes such a record rather than writing one — see its
|
|
321
|
+
// "healthy install keeps an empty directory" contract. So the file
|
|
322
|
+
// existing at all means something wrote a shape this does not
|
|
323
|
+
// understand, and the healthy reading is an artifact of the coercions in
|
|
324
|
+
// snapshotFromRecord rather than anything the file said.
|
|
325
|
+
//
|
|
326
|
+
// This is the general form of that function's type guards, and it lives
|
|
327
|
+
// HERE rather than in it because the invariant is the per-route file's,
|
|
328
|
+
// not the record shape's: the legacy blob legitimately contained healthy
|
|
329
|
+
// entries, so applying this there would report every one of them as
|
|
330
|
+
// corrupt.
|
|
331
|
+
//
|
|
332
|
+
// It is the general form because the type guards were the wrong tool on
|
|
333
|
+
// their own — they enumerate the ways a record can be broken, and an
|
|
334
|
+
// acceptance pass kept finding entries missing from the list: `[]`, `{}`
|
|
335
|
+
// and a foreign nested schema all read back healthy in silence and
|
|
336
|
+
// un-tripped a live cooldown. Checking the module's own invariant needs
|
|
337
|
+
// no such list. The type guards still earn their place for the case this
|
|
338
|
+
// cannot see: a wrong-typed field on a record that is otherwise
|
|
339
|
+
// not-healthy, which reads back as a real cooldown at the wrong numbers
|
|
340
|
+
// rather than as healthy.
|
|
341
|
+
if (snapshot.failures === 0 && snapshot.blockedUntilMs === null)
|
|
205
342
|
return undefined;
|
|
206
|
-
return
|
|
207
|
-
failures: typeof v.failures === "number" ? v.failures : 0,
|
|
208
|
-
blockedUntilMs: typeof v.blockedUntilMs === "number" ? v.blockedUntilMs : null,
|
|
209
|
-
// Round-tripped so FAILURE_DECAY_SEC works across processes; omitted
|
|
210
|
-
// (not nulled) when absent, so files written by older builds read
|
|
211
|
-
// back exactly as they were written.
|
|
212
|
-
...(typeof v.lastFailureAtMs === "number" ? { lastFailureAtMs: v.lastFailureAtMs } : {}),
|
|
213
|
-
};
|
|
343
|
+
return snapshot;
|
|
214
344
|
}
|
|
215
345
|
catch {
|
|
216
346
|
return undefined;
|
|
@@ -235,16 +365,36 @@ export class BreakerStore {
|
|
|
235
365
|
// the first process to call loadAll() after an upgrade (even a plain
|
|
236
366
|
// `status`) consumed every live cooldown: the exact failure the comment
|
|
237
367
|
// above it claimed to prevent.
|
|
238
|
-
|
|
368
|
+
// Entries this run could not consume. Everything else is migrated and
|
|
369
|
+
// dropped, so the blob shrinks to nothing on a clean upgrade and each
|
|
370
|
+
// entry is read exactly once.
|
|
371
|
+
//
|
|
372
|
+
// The previous version kept the WHOLE blob whenever any entry was bad, and
|
|
373
|
+
// it is re-read on every loadAll(). Good entries were therefore re-injected
|
|
374
|
+
// forever — including after the route recovered and save() deleted its
|
|
375
|
+
// per-route file, which this then recreated from the stale blob. An
|
|
376
|
+
// acceptance pass measured a recovered route reading `failures=4` again
|
|
377
|
+
// after its record was deleted: one more failure from tripping, unable to
|
|
378
|
+
// heal, with nothing on any surface naming the blob. Keeping evidence of
|
|
379
|
+
// what could not be read must not mean replaying what could.
|
|
380
|
+
const residual = {};
|
|
381
|
+
let readable = true;
|
|
239
382
|
try {
|
|
240
383
|
const data = JSON.parse(readFileSync(legacy, "utf-8"));
|
|
384
|
+
if (!data || typeof data !== "object" || Array.isArray(data))
|
|
385
|
+
throw new Error("not a map");
|
|
241
386
|
for (const [service, v] of Object.entries(data)) {
|
|
242
|
-
|
|
387
|
+
const snapshot = snapshotFromRecord(v);
|
|
388
|
+
if (snapshot === undefined) {
|
|
389
|
+
// Same reporting the per-route files get. This used to `continue`
|
|
390
|
+
// past a bad entry, and the blob was deleted at the end regardless —
|
|
391
|
+
// so a cooldown written in a shape this could not read was destroyed
|
|
392
|
+
// by the upgrade, silently, which is the failure the migration
|
|
393
|
+
// exists to prevent. Held back as evidence instead.
|
|
394
|
+
this.unreadable.push(service);
|
|
395
|
+
residual[service] = v;
|
|
243
396
|
continue;
|
|
244
|
-
|
|
245
|
-
failures: typeof v.failures === "number" ? v.failures : 0,
|
|
246
|
-
blockedUntilMs: typeof v.blockedUntilMs === "number" ? v.blockedUntilMs : null,
|
|
247
|
-
};
|
|
397
|
+
}
|
|
248
398
|
out[service] = snapshot;
|
|
249
399
|
const file = path.join(this.stateDir, fileNameFor(service));
|
|
250
400
|
// Per-route files win on conflict: they are newer by construction.
|
|
@@ -257,21 +407,39 @@ export class BreakerStore {
|
|
|
257
407
|
this.writeAtomicSync(file, JSON.stringify(snapshot, null, 2));
|
|
258
408
|
}
|
|
259
409
|
catch {
|
|
260
|
-
|
|
410
|
+
// Not durable yet — hold it back so the migration retries next read.
|
|
411
|
+
residual[service] = v;
|
|
261
412
|
}
|
|
262
413
|
}
|
|
263
414
|
}
|
|
264
415
|
catch {
|
|
265
|
-
//
|
|
266
|
-
// deleting it below
|
|
416
|
+
// A blob that will not parse at all. The old comment here said "nothing
|
|
417
|
+
// lost by deleting it below", which was an assumption about a file whose
|
|
418
|
+
// contents could not be read — it may well have held every live cooldown
|
|
419
|
+
// on the machine. Keep it and say so; a leftover blob costs one failed
|
|
420
|
+
// parse per read, and deleting the only copy costs the thing this module
|
|
421
|
+
// exists to protect. Nothing was parsed, so there is nothing to rewrite.
|
|
422
|
+
this.unreadable.push(LEGACY_BLOB_ROUTE);
|
|
423
|
+
readable = false;
|
|
424
|
+
}
|
|
425
|
+
if (!readable)
|
|
426
|
+
return;
|
|
427
|
+
if (Object.keys(residual).length === 0) {
|
|
428
|
+
try {
|
|
429
|
+
rmSync(legacy, { force: true });
|
|
430
|
+
}
|
|
431
|
+
catch {
|
|
432
|
+
// Left behind; it is re-read and re-deleted next time.
|
|
433
|
+
}
|
|
434
|
+
return;
|
|
267
435
|
}
|
|
268
|
-
if (!persistedAll)
|
|
269
|
-
return; // Keep the blob; the migration re-runs next read.
|
|
270
436
|
try {
|
|
271
|
-
|
|
437
|
+
this.writeAtomicSync(legacy, JSON.stringify(residual, null, 2));
|
|
272
438
|
}
|
|
273
439
|
catch {
|
|
274
|
-
//
|
|
440
|
+
// Could not shrink it. The whole blob stays, which re-runs the whole
|
|
441
|
+
// migration next read — wasteful but not lossy, and the alternative is
|
|
442
|
+
// dropping records that are still only in this file.
|
|
275
443
|
}
|
|
276
444
|
}
|
|
277
445
|
nextTempFile(file) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breaker-store.js","sourceRoot":"","sources":["../src/breaker-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"breaker-store.js","sourceRoot":"","sources":["../src/breaker-store.ts"],"names":[],"mappings":"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"}
|