codex-multi-auth 2.9.2 → 2.11.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/.codex-plugin/plugin.json +1 -1
- package/README.md +2 -1
- package/config/README.md +3 -1
- package/config/codex-legacy.json +300 -0
- package/config/codex-modern.json +96 -0
- package/config/schema/config.schema.json +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -2
- package/dist/lib/accounts.d.ts +25 -1
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +26 -6
- package/dist/lib/capability-policy.d.ts.map +1 -1
- package/dist/lib/capability-policy.js +16 -1
- package/dist/lib/codex-manager/backend-settings-helpers.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-helpers.js +10 -1
- package/dist/lib/codex-manager/backend-settings-schema.d.ts +18 -0
- package/dist/lib/codex-manager/backend-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-schema.js +19 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts +1 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.js +12 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts +2 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-schema.js +2 -0
- package/dist/lib/config.d.ts +29 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +91 -1
- package/dist/lib/context-budget/model-context-windows.d.ts +25 -0
- package/dist/lib/context-budget/model-context-windows.d.ts.map +1 -0
- package/dist/lib/context-budget/model-context-windows.js +130 -0
- package/dist/lib/context-budget-guard.d.ts +100 -0
- package/dist/lib/context-budget-guard.d.ts.map +1 -0
- package/dist/lib/context-budget-guard.js +183 -0
- package/dist/lib/context-budget-response.d.ts +25 -0
- package/dist/lib/context-budget-response.d.ts.map +1 -0
- package/dist/lib/context-budget-response.js +57 -0
- package/dist/lib/context-overflow.d.ts.map +1 -1
- package/dist/lib/context-overflow.js +5 -60
- package/dist/lib/model-capability-matrix.d.ts.map +1 -1
- package/dist/lib/model-capability-matrix.js +9 -1
- package/dist/lib/request/error-classification.d.ts.map +1 -1
- package/dist/lib/request/error-classification.js +43 -2
- package/dist/lib/request/helpers/model-map.d.ts.map +1 -1
- package/dist/lib/request/helpers/model-map.js +181 -0
- package/dist/lib/request/rate-limit-decision.d.ts +4 -5
- package/dist/lib/request/rate-limit-decision.d.ts.map +1 -1
- package/dist/lib/request/rate-limit-decision.js +33 -4
- package/dist/lib/request/response-metadata.d.ts.map +1 -1
- package/dist/lib/request/response-metadata.js +1 -0
- package/dist/lib/request/stream-failover-runtime.d.ts +3 -1
- package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -1
- package/dist/lib/request/stream-failover-runtime.js +7 -2
- package/dist/lib/runtime/context-budget-settings.d.ts +13 -0
- package/dist/lib/runtime/context-budget-settings.d.ts.map +1 -0
- package/dist/lib/runtime/context-budget-settings.js +8 -0
- package/dist/lib/runtime/loader-setup.d.ts +1 -0
- package/dist/lib/runtime/loader-setup.d.ts.map +1 -1
- package/dist/lib/runtime/loader-setup.js +1 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts +23 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-account-selection.js +15 -6
- package/dist/lib/runtime/rotation-proxy-state.d.ts +2 -0
- package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-server-types.d.ts +11 -0
- package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.js +251 -43
- package/dist/lib/schemas.d.ts +4 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +10 -0
- package/dist/lib/synthetic-response.d.ts +31 -0
- package/dist/lib/synthetic-response.d.ts.map +1 -0
- package/dist/lib/synthetic-response.js +79 -0
- package/dist/lib/ui/ui-copy.d.ts +2 -1
- package/dist/lib/ui/ui-copy.d.ts.map +1 -1
- package/dist/lib/ui/ui-copy.js +2 -1
- package/dist/lib/usage/pricing.d.ts +1 -1
- package/dist/lib/usage/pricing.d.ts.map +1 -1
- package/dist/lib/usage/pricing.js +33 -0
- package/package.json +1 -1
- package/scripts/codex.js +153 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,OAAO,EAKN,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAGrB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAMN,KAAK,sBAAsB,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,MAAM,oBAAoB,CAAC;AAqB5B,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,aAAa,EACb,KAAK,kBAAkB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACN,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,KAAK,uBAAuB,GAC5B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAON,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAC;AA2CnC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,CAQ7E;AAQD,KAAK,wBAAwB,GAAG,IAAI,CACnC,cAAc,EACd,WAAW,GAAG,OAAO,GAAG,cAAc,CACtC,GAAG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA2GF,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,+EAA+E;AAC/E,eAAO,MAAM,wBAAwB,yCAAoC,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EACd,YAAY,GACZ,SAAS,GACT,UAAU,GACV,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;IACZ,mBAAmB,CAAC,EAAE,eAAe,CAAC;IACtC,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,cAAc,CAAmD;IACzE,OAAO,CAAC,2BAA2B,CACd;IACrB,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB,CAAqB;IAC/C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAAS;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB,CAA8B;WAEzC,YAAY,CACxB,YAAY,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,cAAc,CAAC;IAmB1B,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;YAMhC,mBAAmB;gBAqEhC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAyMjC,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,MAAM;IAIxB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAqBpD,mBAAmB,IAAI,cAAc,EAAE;IAavC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOvD,2BAA2B,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO;IAcV,2BAA2B,CAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,GAAG,IAAI;IAMhB;;;;;OAKG;IACH,kCAAkC,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,GAAG,IAAI;IAehB,MAAM,CAAC,yBAAyB,IAAI,IAAI;IAKxC;;;;;;;;;;;;;;;;OAgBG;IACH,0BAA0B,IAAI,IAAI;IAYlC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAkB9C,mCAAmC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvE,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI;IAYtE,gBAAgB,IAAI,cAAc,GAAG,IAAI;IAIzC,yBAAyB,CACxB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,cAAc,GAAG,IAAI;IAgCxB,gBAAgB,CACf,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,cAAc,GAAG,IAAI;IA+BxB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,mCAAmC,CAClC,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,cAAc,GAAG,IAAI;IAmDxB,+BAA+B,CAC9B,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,cAAc,GAAG,IAAI;IA+CxB,aAAa,CACZ,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IA2BP,eAAe,CACd,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IASP,aAAa,CACZ,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAOP,YAAY,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3C,OAAO;IAIV;;;;;;;;;;;;;OAaG;IACH,sBAAsB,CACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3C;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAAA;KAAE;IAoB3E;;;;OAIG;IACH,WAAW,CACV,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,OAAO;IAMV,YAAY,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,EACxD,MAAM,EAAE,WAAW,GACjB,IAAI;IAeP;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIjD,2EAA2E;IAC3E,mBAAmB,IAAI,gBAAgB;IAIvC;;;;;;;OAOG;IACG,kBAAkB,CACvB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,EACxD,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACpD,OAAO,CAAC,eAAe,CAAC;IA4B3B;;;OAGG;IACG,4BAA4B,CACjC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;OAIG;IACG,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAMzE,eAAe,CACd,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,WAAW,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IAUP,yBAAyB,CACxB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,eAAe,EACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,IAAI;IA2BP,sBAAsB,CACrB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACpB,IAAI;IAMP,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAStD,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKnD,OAAO,CAAC,kBAAkB;IAI1B;;;;;OAKG;IACH,sBAAsB,CACrB,OAAO,EAAE,cAAc,EACvB,GAAG,SAAa,GACd,MAAM,GAAG,IAAI;IAOhB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAMtD,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIhD,mBAAmB,CAClB,OAAO,EAAE,cAAc,EACvB,SAAS,SAAsB,EAC/B,aAAa,SAAU,GACrB,IAAI;IAKP,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAKpD,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ1D,oBAAoB,CACnB,SAAS,EAAE,wBAAwB,EACnC,IAAI,CAAC,EAAE,gBAAgB,GACrB,cAAc,GAAG,IAAI;IAQxB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,SAAQ,GAAG,OAAO;IAWzE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK1C,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAiBrE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,uBAAuB;IAuD/B,OAAO,CAAC,oBAAoB;IAyFtB,mBAAmB,CACxB,MAAM,EAAE,IAAI,CACX,cAAc,EACd,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,CAChD,EACD,IAAI,EAAE,gBAAgB,GACpB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAmIjC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAS5C,cAAc,IAAI,MAAM;IAIxB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAsD3E;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAcvB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAmJ/C,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQ5C,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI;IA6CnE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,mBAAmB,CAAC,OAAO,SAAM,GAAG,IAAI;IAyBlC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC,OAAO,CAAC,eAAe;IAiBvB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAQ9D,uBAAuB,CACtB,OAAO,EAAE,cAAc,EACvB,mBAAmB,CAAC,EAAE,MAAM,GAC1B,OAAO;IAqBV,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAoBhE;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAOtD,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;IAIlD,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;CAIzD;AAmBD,wBAAgB,kBAAkB,CACjC,OAAO,EACJ;IACA,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC9B,GACD,SAAS,EACZ,KAAK,EAAE,MAAM,GACX,MAAM,CA4BR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CACnC,OAAO,EACJ;IAAE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,SAAS,EACZ,MAAM,SAAQ,GACZ,MAAM,EAAE,CAgBV;AAED,wBAAgB,cAAc,CAC7B,OAAO,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/D,GAAG,SAAU,GACX,MAAM,GAAG,IAAI,CAMf"}
|
package/dist/lib/accounts.js
CHANGED
|
@@ -775,20 +775,40 @@ export class AccountManager {
|
|
|
775
775
|
healthTracker.recordFailure(getRuntimeTrackerKey(account), quotaKey);
|
|
776
776
|
getCircuitBreaker(getAccountCircuitKey(account)).recordFailure();
|
|
777
777
|
}
|
|
778
|
-
consumeToken(account, family, model) {
|
|
778
|
+
consumeToken(account, family, model, options = {}) {
|
|
779
|
+
return this.consumeTokenWithReason(account, family, model, options).ok;
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* `consumeToken`, but it says which admission gate rejected the request.
|
|
783
|
+
*
|
|
784
|
+
* There are two gates and they are not interchangeable to a caller writing
|
|
785
|
+
* `account_skip_reasons`: the pool-scoring token bucket, and the circuit
|
|
786
|
+
* breaker's race-safe admission slot. Re-deriving the answer afterwards
|
|
787
|
+
* with `getManagedAccountRuntimeSkipReason` gets it wrong in both
|
|
788
|
+
* directions -- that helper reports the FIRST blocker it finds (so a live
|
|
789
|
+
* cooldown masks a drained bucket), and its `isAvailable()` check answers
|
|
790
|
+
* true for a half-open breaker whose single probe `canExecute()` just
|
|
791
|
+
* handed to a concurrent request. Reporting the gate that actually
|
|
792
|
+
* rejected removes the race and the mis-attribution, and avoids a second
|
|
793
|
+
* state-mutating evaluation (`clearExpiredRateLimits`) on the hot path.
|
|
794
|
+
*/
|
|
795
|
+
consumeTokenWithReason(account, family, model, options = {}) {
|
|
779
796
|
const quotaKey = model ? `${family}:${model}` : family;
|
|
780
797
|
const tokenTracker = getTokenTracker();
|
|
781
798
|
const trackerKey = getRuntimeTrackerKey(account);
|
|
782
|
-
|
|
783
|
-
|
|
799
|
+
const shouldConsumeToken = options.bypassTokenBucket !== true;
|
|
800
|
+
if (shouldConsumeToken && !tokenTracker.tryConsume(trackerKey, quotaKey)) {
|
|
801
|
+
return { ok: false, reason: "token-exhausted" };
|
|
784
802
|
}
|
|
785
803
|
try {
|
|
786
804
|
getCircuitBreaker(getAccountCircuitKey(account)).canExecute();
|
|
787
|
-
return true;
|
|
805
|
+
return { ok: true };
|
|
788
806
|
}
|
|
789
807
|
catch {
|
|
790
|
-
|
|
791
|
-
|
|
808
|
+
if (shouldConsumeToken) {
|
|
809
|
+
tokenTracker.refundToken(trackerKey, quotaKey);
|
|
810
|
+
}
|
|
811
|
+
return { ok: false, reason: "circuit-open" };
|
|
792
812
|
}
|
|
793
813
|
}
|
|
794
814
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../lib/capability-policy.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"capability-policy.d.ts","sourceRoot":"","sources":["../../lib/capability-policy.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAyED,qBAAa,qBAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAE9D,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,IAAI;IAkBxE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,IAAI;IAgBxE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,IAAI;IAgB5E,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM;IAiBrE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAc/E,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAYxC,OAAO,CAAC,aAAa;CASrB"}
|
|
@@ -22,7 +22,22 @@ function normalizeModel(model) {
|
|
|
22
22
|
? (trimmedInput.split("/").pop() ?? trimmedInput)
|
|
23
23
|
: trimmedInput;
|
|
24
24
|
const exactMatch = getNormalizedModel(withoutProvider);
|
|
25
|
-
|
|
25
|
+
// The catalog fallback is gated so an unrelated model id is not dragged onto
|
|
26
|
+
// a GPT-5 default. GPT-6 Astra and the Daybreak cyber models have to be named
|
|
27
|
+
// here as well: without them an id the alias table does not carry, such as
|
|
28
|
+
// `gpt-6-astra-pro`, keeps its raw string as the policy key while routing
|
|
29
|
+
// resolves it to `gpt-6-astra`, so the policy store tracks a key no request
|
|
30
|
+
// ever uses.
|
|
31
|
+
//
|
|
32
|
+
// The separator class matches `tokenizeModelId`, which splits on any RUN of
|
|
33
|
+
// non-alphanumerics. A hand-picked `[-_\s]` was narrower than the resolver it
|
|
34
|
+
// guards, so `gpt.6-turbo` kept its raw key here while
|
|
35
|
+
// `resolveNormalizedModel` routed it to `gpt-6-astra`; `*` rather than `?`
|
|
36
|
+
// because the tokenizer collapses repeats, so `gpt..6-turbo` and `gpt---5`
|
|
37
|
+
// resolve too. It must not widen to every hyphenated id: an unknown one
|
|
38
|
+
// would inherit the DEFAULT_MODEL key, which is why `gpt-4o`,
|
|
39
|
+
// `gpt-4.5-preview` and `gpt.4-turbo` still fail this test.
|
|
40
|
+
const shouldUseFallbackCatalog = /gpt[^a-z0-9]*[56]|codex|astra|daybreak/i.test(withoutProvider);
|
|
26
41
|
const mapped = exactMatch ??
|
|
27
42
|
(shouldUseFallbackCatalog
|
|
28
43
|
? resolveNormalizedModel(withoutProvider)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-settings-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"backend-settings-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAON,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAU3E;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GACjB,OAAO,CAKT;AAED,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,0BAA0B,EAClC,KAAK,EAAE,MAAM,GACX,MAAM,CAUR;AASD,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,UAAU,CAAC,cAAc,kBAAkB,EAAE,mBAAmB,CAAC,EACrE,KAAK,EAAE,sBAAsB,EAC7B,IAAI,EAAE;IACL,qBAAqB,EAAE,CACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,UAAU,CAAC,cAAc,kBAAkB,EAAE,mBAAmB,CAAC,KACjE,MAAM,CAAC;CACZ,GACC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiDjC;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAgB,0BAA0B,CACzC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACX,MAAM,CAQR"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BACKEND_DEFAULTS, BACKEND_NUMBER_OPTION_BY_KEY, BACKEND_NUMBER_OPTIONS, BACKEND_TOGGLE_OPTIONS, } from "./backend-settings-schema.js";
|
|
1
|
+
import { BACKEND_DEFAULTS, BACKEND_NUMBER_OPTION_BY_KEY, BACKEND_NUMBER_OPTIONS, BACKEND_TOGGLE_OPTIONS, EXPERIMENTAL_TOGGLE_KEYS, } from "./backend-settings-schema.js";
|
|
2
2
|
export function cloneBackendPluginConfig(config) {
|
|
3
3
|
const fallbackChain = config.unsupportedCodexFallbackChain;
|
|
4
4
|
return {
|
|
@@ -19,6 +19,9 @@ export function backendSettingsSnapshot(config) {
|
|
|
19
19
|
snapshot[option.key] =
|
|
20
20
|
config[option.key] ?? BACKEND_DEFAULTS[option.key] ?? option.min;
|
|
21
21
|
}
|
|
22
|
+
for (const key of EXPERIMENTAL_TOGGLE_KEYS) {
|
|
23
|
+
snapshot[key] = config[key] ?? BACKEND_DEFAULTS[key] ?? false;
|
|
24
|
+
}
|
|
22
25
|
return snapshot;
|
|
23
26
|
}
|
|
24
27
|
export function backendSettingsEqual(left, right) {
|
|
@@ -90,6 +93,12 @@ export function buildBackendConfigPatch(config) {
|
|
|
90
93
|
patch[option.key] = clampBackendNumber(option, value);
|
|
91
94
|
}
|
|
92
95
|
}
|
|
96
|
+
for (const key of EXPERIMENTAL_TOGGLE_KEYS) {
|
|
97
|
+
const value = config[key];
|
|
98
|
+
if (typeof value === "boolean") {
|
|
99
|
+
patch[key] = value;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
93
102
|
return patch;
|
|
94
103
|
}
|
|
95
104
|
export function clampBackendNumberForTests(settingKey, value) {
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import type { PluginConfig } from "../types.js";
|
|
2
2
|
export type BackendToggleSettingKey = "liveAccountSync" | "sessionAffinity" | "proactiveRefreshGuardian" | "retryAllAccountsRateLimited" | "parallelProbing" | "storageBackupEnabled" | "preemptiveQuotaEnabled" | "fastSession" | "sessionRecovery" | "autoResume" | "perProjectAccounts";
|
|
3
3
|
export type BackendNumberSettingKey = "liveAccountSyncDebounceMs" | "liveAccountSyncPollMs" | "sessionAffinityTtlMs" | "sessionAffinityMaxEntries" | "proactiveRefreshIntervalMs" | "proactiveRefreshBufferMs" | "parallelProbingMaxConcurrency" | "fastSessionMaxInputItems" | "networkErrorCooldownMs" | "serverErrorCooldownMs" | "fetchTimeoutMs" | "streamStallTimeoutMs" | "tokenRefreshSkewMs" | "preemptiveQuotaRemainingPercent5h" | "preemptiveQuotaRemainingPercent7d" | "preemptiveQuotaMaxDeferralMs";
|
|
4
|
+
/**
|
|
5
|
+
* Backend toggles that persist with the backend config but are NOT listed in
|
|
6
|
+
* BACKEND_TOGGLE_OPTIONS, because their home in the UI is the Experimental
|
|
7
|
+
* menu rather than a Backend settings category.
|
|
8
|
+
*
|
|
9
|
+
* They still have to travel through `backendSettingsSnapshot` and
|
|
10
|
+
* `buildBackendConfigPatch`: those two are what the Experimental save path
|
|
11
|
+
* uses to decide "did anything change" and "what do we write to
|
|
12
|
+
* settings.json". A toggle missing from both compares equal to its old value
|
|
13
|
+
* no matter what the user pressed, so the save is skipped and the change
|
|
14
|
+
* lives only in memory until the next launch drops it.
|
|
15
|
+
*
|
|
16
|
+
* Kept out of BACKEND_TOGGLE_OPTIONS so the settings menu's "every toggle
|
|
17
|
+
* belongs to a category" invariant (test/codex-manager-cli.test.ts) still
|
|
18
|
+
* holds without inventing a category for an experimental flag.
|
|
19
|
+
*/
|
|
20
|
+
export declare const EXPERIMENTAL_TOGGLE_KEYS: readonly ["contextBudgetGuardEnabled"];
|
|
21
|
+
export type ExperimentalToggleSettingKey = (typeof EXPERIMENTAL_TOGGLE_KEYS)[number];
|
|
4
22
|
export type BackendSettingFocusKey = BackendToggleSettingKey | BackendNumberSettingKey | null;
|
|
5
23
|
export interface BackendToggleSettingOption {
|
|
6
24
|
key: BackendToggleSettingKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,0BAA0B,GAC1B,6BAA6B,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,GACxB,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CAAC;AAExB,MAAM,MAAM,uBAAuB,GAChC,2BAA2B,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,+BAA+B,GAC/B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,sBAAsB,GACtB,oBAAoB,GACpB,mCAAmC,GACnC,mCAAmC,GACnC,8BAA8B,CAAC;AAElC,MAAM,MAAM,sBAAsB,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,IAAI,CAAC;AAER,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAC3B,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,2BAA2B,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAwD9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAiJ9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EAuD3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAuC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"backend-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,0BAA0B,GAC1B,6BAA6B,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,GACxB,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CAAC;AAExB,MAAM,MAAM,uBAAuB,GAChC,2BAA2B,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,+BAA+B,GAC/B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,sBAAsB,GACtB,oBAAoB,GACpB,mCAAmC,GACnC,mCAAmC,GACnC,8BAA8B,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,wCAEe,CAAC;AAErD,MAAM,MAAM,4BAA4B,GACvC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,MAAM,sBAAsB,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,IAAI,CAAC;AAER,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAC3B,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,2BAA2B,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAwD9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAiJ9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EAuD3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAuC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { getDefaultPluginConfig } from "../config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Backend toggles that persist with the backend config but are NOT listed in
|
|
4
|
+
* BACKEND_TOGGLE_OPTIONS, because their home in the UI is the Experimental
|
|
5
|
+
* menu rather than a Backend settings category.
|
|
6
|
+
*
|
|
7
|
+
* They still have to travel through `backendSettingsSnapshot` and
|
|
8
|
+
* `buildBackendConfigPatch`: those two are what the Experimental save path
|
|
9
|
+
* uses to decide "did anything change" and "what do we write to
|
|
10
|
+
* settings.json". A toggle missing from both compares equal to its old value
|
|
11
|
+
* no matter what the user pressed, so the save is skipped and the change
|
|
12
|
+
* lives only in memory until the next launch drops it.
|
|
13
|
+
*
|
|
14
|
+
* Kept out of BACKEND_TOGGLE_OPTIONS so the settings menu's "every toggle
|
|
15
|
+
* belongs to a category" invariant (test/codex-manager-cli.test.ts) still
|
|
16
|
+
* holds without inventing a category for an experimental flag.
|
|
17
|
+
*/
|
|
18
|
+
export const EXPERIMENTAL_TOGGLE_KEYS = [
|
|
19
|
+
"contextBudgetGuardEnabled",
|
|
20
|
+
];
|
|
2
21
|
export const BACKEND_TOGGLE_OPTIONS = [
|
|
3
22
|
{
|
|
4
23
|
key: "liveAccountSync",
|
|
@@ -11,6 +11,7 @@ type ExperimentalSettingsCopy = {
|
|
|
11
11
|
experimentalRefreshInterval: string;
|
|
12
12
|
experimentalDecreaseInterval: string;
|
|
13
13
|
experimentalIncreaseInterval: string;
|
|
14
|
+
experimentalContextBudgetGuard: string;
|
|
14
15
|
saveAndBack: string;
|
|
15
16
|
backNoSave: string;
|
|
16
17
|
experimentalHelpMenu: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental-settings-prompt.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"experimental-settings-prompt.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,11 @@ export async function promptExperimentalSettingsMenu(params) {
|
|
|
48
48
|
value: { type: "increase-refresh-interval" },
|
|
49
49
|
color: "green",
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
label: `${params.formatDashboardSettingState(draft.contextBudgetGuardEnabled ?? false)} ${copy.experimentalContextBudgetGuard}`,
|
|
53
|
+
value: { type: "toggle-context-budget-guard" },
|
|
54
|
+
color: "yellow",
|
|
55
|
+
},
|
|
51
56
|
{ label: copy.saveAndBack, value: { type: "save" }, color: "green" },
|
|
52
57
|
{ label: copy.backNoSave, value: { type: "back" }, color: "red" },
|
|
53
58
|
], params.getExperimentalSelectOptions(params.ui, copy.experimentalHelpMenu, params.mapExperimentalMenuHotkey));
|
|
@@ -77,6 +82,13 @@ export async function promptExperimentalSettingsMenu(params) {
|
|
|
77
82
|
};
|
|
78
83
|
continue;
|
|
79
84
|
}
|
|
85
|
+
if (actionType === "toggle-context-budget-guard") {
|
|
86
|
+
draft = {
|
|
87
|
+
...draft,
|
|
88
|
+
contextBudgetGuardEnabled: !(draft.contextBudgetGuardEnabled ?? false),
|
|
89
|
+
};
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
80
92
|
if (actionType === "backup") {
|
|
81
93
|
const prompt = createInterface({
|
|
82
94
|
input: params.input,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,0BAA0B,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAC5D,aAAa,CAAC,0BAA0B,CAAC,CAU3C;AAED,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"experimental-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,0BAA0B,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,6BAA6B,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAC5D,aAAa,CAAC,0BAA0B,CAAC,CAU3C;AAED,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAWxC;AAED,wBAAgB,2BAA2B,CAC1C,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAExC"}
|
|
@@ -17,6 +17,8 @@ export function mapExperimentalMenuHotkey(raw) {
|
|
|
17
17
|
return { type: "backup" };
|
|
18
18
|
if (raw === "3")
|
|
19
19
|
return { type: "toggle-refresh-guardian" };
|
|
20
|
+
if (raw === "4")
|
|
21
|
+
return { type: "toggle-context-budget-guard" };
|
|
20
22
|
if (raw === "[" || raw === "-")
|
|
21
23
|
return { type: "decrease-refresh-interval" };
|
|
22
24
|
if (raw === "]" || raw === "+")
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -322,6 +322,35 @@ export declare function getPreemptiveQuotaRemainingPercent7d(pluginConfig: Plugi
|
|
|
322
322
|
* Security: the returned value contains no sensitive tokens and is safe to log.
|
|
323
323
|
*/
|
|
324
324
|
export declare function getPreemptiveQuotaMaxDeferralMs(pluginConfig: PluginConfig): number;
|
|
325
|
+
/**
|
|
326
|
+
* Whether the (experimental, opt-in) context budget guard is enabled.
|
|
327
|
+
*
|
|
328
|
+
* Ships disabled: pausing a session before it hits the context window is a
|
|
329
|
+
* staged behavior change, not a default-on safety net like preemptive quota
|
|
330
|
+
* deferral, so an explicit opt-in is required.
|
|
331
|
+
*/
|
|
332
|
+
export declare function getContextBudgetGuardEnabled(pluginConfig: PluginConfig): boolean;
|
|
333
|
+
/** Percent of the effective context window at which the guard's non-blocking advisory fires. */
|
|
334
|
+
export declare function getContextBudgetGuardSoftPercent(pluginConfig: PluginConfig): number;
|
|
335
|
+
/**
|
|
336
|
+
* Percent of the effective context window at which the guard pauses the next
|
|
337
|
+
* request.
|
|
338
|
+
*
|
|
339
|
+
* Floored at 10, not 0. `resolveNumberSetting` clamps out-of-range values
|
|
340
|
+
* instead of rejecting them, so a configured (or env-supplied) `0` would be a
|
|
341
|
+
* legal threshold that every recorded snapshot clears — pausing every session
|
|
342
|
+
* from its first turn on. The guard applies the same floor in `configure()`
|
|
343
|
+
* so a directly constructed instance cannot be set below it either.
|
|
344
|
+
*/
|
|
345
|
+
export declare function getContextBudgetGuardHardPercent(pluginConfig: PluginConfig): number;
|
|
346
|
+
/**
|
|
347
|
+
* User-supplied context-window sizes, keyed by normalized model id, that
|
|
348
|
+
* always take priority over this package's own best-effort estimates (see
|
|
349
|
+
* `lib/context-budget/model-context-windows.ts`). Settings-only: there is no
|
|
350
|
+
* environment override, the same as `unsupportedCodexFallbackChain`, since a
|
|
351
|
+
* per-model token count is not a reasonable single env var.
|
|
352
|
+
*/
|
|
353
|
+
export declare function getContextBudgetGuardModelWindowOverrides(pluginConfig: PluginConfig): Record<string, number>;
|
|
325
354
|
/**
|
|
326
355
|
* Resolve the routing-mutex mode (PR-N / R4).
|
|
327
356
|
*
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoE/C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,KAAK,wBAAwB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,CACvC,wBAAwB,EACxB,SAAS,GAAG,MAAM,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,yBAAyB,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,YAAY,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,wBAAwB,CAAC;IACtC,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAUD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAoED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
CHANGED
|
@@ -171,6 +171,10 @@ export const DEFAULT_PLUGIN_CONFIG = {
|
|
|
171
171
|
preemptiveQuotaRemainingPercent5h: 5,
|
|
172
172
|
preemptiveQuotaRemainingPercent7d: 5,
|
|
173
173
|
preemptiveQuotaMaxDeferralMs: 2 * 60 * 60_000,
|
|
174
|
+
contextBudgetGuardEnabled: false,
|
|
175
|
+
contextBudgetGuardSoftPercent: 65,
|
|
176
|
+
contextBudgetGuardHardPercent: 69,
|
|
177
|
+
contextBudgetGuardModelWindowOverrides: {},
|
|
174
178
|
routingMutex: "legacy",
|
|
175
179
|
schedulingStrategy: "hybrid",
|
|
176
180
|
};
|
|
@@ -834,6 +838,14 @@ function resolveNumberSetting(envName, configValue, defaultValue, options) {
|
|
|
834
838
|
logConfigWarnOnce(`Ignoring invalid numeric env ${envName}. Expected a finite number.`);
|
|
835
839
|
}
|
|
836
840
|
const candidate = envValue ?? configValue ?? defaultValue;
|
|
841
|
+
// Math.max/Math.min propagate NaN, so a non-finite candidate would be
|
|
842
|
+
// returned as-is and every threshold comparison against it reads false --
|
|
843
|
+
// a setting that silently disables whatever it gates. parseNumberEnv already
|
|
844
|
+
// rejects non-finite env values and zod rejects NaN on the config field, so
|
|
845
|
+
// this is a boundary guard for the ~20 settings that share this helper
|
|
846
|
+
// rather than a reachable path through loadPluginConfig.
|
|
847
|
+
if (!Number.isFinite(candidate))
|
|
848
|
+
return defaultValue;
|
|
837
849
|
const min = options?.min ?? Number.NEGATIVE_INFINITY;
|
|
838
850
|
const max = options?.max ?? Number.POSITIVE_INFINITY;
|
|
839
851
|
return Math.max(min, Math.min(max, candidate));
|
|
@@ -939,7 +951,9 @@ export function getUnsupportedCodexFallbackChain(pluginConfig) {
|
|
|
939
951
|
: trimmed;
|
|
940
952
|
return stripped.replace(/-(none|minimal|low|medium|high|xhigh)$/i, "");
|
|
941
953
|
};
|
|
942
|
-
|
|
954
|
+
// Null-prototype: the keys come from user config, so a `__proto__` entry on a
|
|
955
|
+
// plain object would reassign this object's prototype rather than add a row.
|
|
956
|
+
const normalized = Object.create(null);
|
|
943
957
|
for (const [key, value] of Object.entries(chain)) {
|
|
944
958
|
if (typeof key !== "string" || !Array.isArray(value))
|
|
945
959
|
continue;
|
|
@@ -1295,6 +1309,62 @@ export function getPreemptiveQuotaRemainingPercent7d(pluginConfig) {
|
|
|
1295
1309
|
export function getPreemptiveQuotaMaxDeferralMs(pluginConfig) {
|
|
1296
1310
|
return resolveNumberSetting("CODEX_AUTH_PREEMPTIVE_QUOTA_MAX_DEFERRAL_MS", pluginConfig.preemptiveQuotaMaxDeferralMs, 2 * 60 * 60_000, { min: 1_000 });
|
|
1297
1311
|
}
|
|
1312
|
+
/**
|
|
1313
|
+
* Whether the (experimental, opt-in) context budget guard is enabled.
|
|
1314
|
+
*
|
|
1315
|
+
* Ships disabled: pausing a session before it hits the context window is a
|
|
1316
|
+
* staged behavior change, not a default-on safety net like preemptive quota
|
|
1317
|
+
* deferral, so an explicit opt-in is required.
|
|
1318
|
+
*/
|
|
1319
|
+
export function getContextBudgetGuardEnabled(pluginConfig) {
|
|
1320
|
+
return resolveBooleanSetting("CODEX_AUTH_CONTEXT_BUDGET_GUARD_ENABLED", pluginConfig.contextBudgetGuardEnabled, false);
|
|
1321
|
+
}
|
|
1322
|
+
/** Percent of the effective context window at which the guard's non-blocking advisory fires. */
|
|
1323
|
+
export function getContextBudgetGuardSoftPercent(pluginConfig) {
|
|
1324
|
+
return resolveNumberSetting("CODEX_AUTH_CONTEXT_BUDGET_SOFT_PCT", pluginConfig.contextBudgetGuardSoftPercent, 65, { min: 0, max: 100 });
|
|
1325
|
+
}
|
|
1326
|
+
/**
|
|
1327
|
+
* Percent of the effective context window at which the guard pauses the next
|
|
1328
|
+
* request.
|
|
1329
|
+
*
|
|
1330
|
+
* Floored at 10, not 0. `resolveNumberSetting` clamps out-of-range values
|
|
1331
|
+
* instead of rejecting them, so a configured (or env-supplied) `0` would be a
|
|
1332
|
+
* legal threshold that every recorded snapshot clears — pausing every session
|
|
1333
|
+
* from its first turn on. The guard applies the same floor in `configure()`
|
|
1334
|
+
* so a directly constructed instance cannot be set below it either.
|
|
1335
|
+
*/
|
|
1336
|
+
export function getContextBudgetGuardHardPercent(pluginConfig) {
|
|
1337
|
+
return resolveNumberSetting("CODEX_AUTH_CONTEXT_BUDGET_HARD_PCT", pluginConfig.contextBudgetGuardHardPercent, 69, { min: 10, max: 100 });
|
|
1338
|
+
}
|
|
1339
|
+
/**
|
|
1340
|
+
* User-supplied context-window sizes, keyed by normalized model id, that
|
|
1341
|
+
* always take priority over this package's own best-effort estimates (see
|
|
1342
|
+
* `lib/context-budget/model-context-windows.ts`). Settings-only: there is no
|
|
1343
|
+
* environment override, the same as `unsupportedCodexFallbackChain`, since a
|
|
1344
|
+
* per-model token count is not a reasonable single env var.
|
|
1345
|
+
*/
|
|
1346
|
+
export function getContextBudgetGuardModelWindowOverrides(pluginConfig) {
|
|
1347
|
+
const overrides = pluginConfig.contextBudgetGuardModelWindowOverrides;
|
|
1348
|
+
if (!overrides || typeof overrides !== "object") {
|
|
1349
|
+
return {};
|
|
1350
|
+
}
|
|
1351
|
+
const normalized = {};
|
|
1352
|
+
for (const [rawModel, rawValue] of Object.entries(overrides)) {
|
|
1353
|
+
const model = rawModel.trim().toLowerCase();
|
|
1354
|
+
if (!model)
|
|
1355
|
+
continue;
|
|
1356
|
+
if (typeof rawValue !== "number" || !Number.isFinite(rawValue))
|
|
1357
|
+
continue;
|
|
1358
|
+
// Floor first: the schema accepts any positive number, so a sub-1 value
|
|
1359
|
+
// passes a `rawValue > 0` check and then floors to 0, which is stored as
|
|
1360
|
+
// a window of zero tokens and silently ignored downstream.
|
|
1361
|
+
const tokens = Math.floor(rawValue);
|
|
1362
|
+
if (tokens <= 0)
|
|
1363
|
+
continue;
|
|
1364
|
+
normalized[model] = tokens;
|
|
1365
|
+
}
|
|
1366
|
+
return normalized;
|
|
1367
|
+
}
|
|
1298
1368
|
const ROUTING_MUTEX_MODES = new Set(["enabled", "legacy"]);
|
|
1299
1369
|
/**
|
|
1300
1370
|
* Resolve the routing-mutex mode (PR-N / R4).
|
|
@@ -1649,6 +1719,26 @@ const CONFIG_EXPLAIN_ENTRIES = [
|
|
|
1649
1719
|
envNames: ["CODEX_AUTH_PREEMPTIVE_QUOTA_MAX_DEFERRAL_MS"],
|
|
1650
1720
|
getValue: getPreemptiveQuotaMaxDeferralMs,
|
|
1651
1721
|
},
|
|
1722
|
+
{
|
|
1723
|
+
key: "contextBudgetGuardEnabled",
|
|
1724
|
+
envNames: ["CODEX_AUTH_CONTEXT_BUDGET_GUARD_ENABLED"],
|
|
1725
|
+
getValue: getContextBudgetGuardEnabled,
|
|
1726
|
+
},
|
|
1727
|
+
{
|
|
1728
|
+
key: "contextBudgetGuardSoftPercent",
|
|
1729
|
+
envNames: ["CODEX_AUTH_CONTEXT_BUDGET_SOFT_PCT"],
|
|
1730
|
+
getValue: getContextBudgetGuardSoftPercent,
|
|
1731
|
+
},
|
|
1732
|
+
{
|
|
1733
|
+
key: "contextBudgetGuardHardPercent",
|
|
1734
|
+
envNames: ["CODEX_AUTH_CONTEXT_BUDGET_HARD_PCT"],
|
|
1735
|
+
getValue: getContextBudgetGuardHardPercent,
|
|
1736
|
+
},
|
|
1737
|
+
{
|
|
1738
|
+
key: "contextBudgetGuardModelWindowOverrides",
|
|
1739
|
+
envNames: [],
|
|
1740
|
+
getValue: getContextBudgetGuardModelWindowOverrides,
|
|
1741
|
+
},
|
|
1652
1742
|
// config-01/config-07: these three live settings were missing from the explain
|
|
1653
1743
|
// report, so `config explain` silently under-reported the effective config. A
|
|
1654
1744
|
// parity test (test/config-explain.test.ts) now guards this class of drift.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routable models this guard consciously does not estimate a window for.
|
|
3
|
+
* `getEffectiveContextWindow` returns `null` for these absent an override,
|
|
4
|
+
* and the guard treats `null` as "cannot evaluate; skip" — never a guessed
|
|
5
|
+
* percentage. The 5.6 family ships with materially different per-tier
|
|
6
|
+
* behavior (see the v2.5.0 release notes) closely enough to launch that no
|
|
7
|
+
* estimate here has been reviewed for it yet.
|
|
8
|
+
*/
|
|
9
|
+
export declare const UNESTIMATED_ROUTABLE_MODELS: readonly ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-6-astra", "gpt-6-astra-aeon", "gpt-daybreak-blue-latest", "gpt-daybreak-red-latest"];
|
|
10
|
+
export interface EffectiveContextWindow {
|
|
11
|
+
tokens: number;
|
|
12
|
+
source: "override" | "estimate";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the context-window size to evaluate a session's budget against.
|
|
16
|
+
*
|
|
17
|
+
* Precedence: an explicit override always wins, even for a model this file
|
|
18
|
+
* has never heard of — the whole point of the override setting is to let a
|
|
19
|
+
* user correct or extend past this file's guesses. Failing that, fall back
|
|
20
|
+
* to the estimate table. Returns `null` when neither source has a value, so
|
|
21
|
+
* the guard can no-op rather than evaluate against a fabricated number.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getEffectiveContextWindow(model: string | null | undefined, overrides: Record<string, number> | undefined): EffectiveContextWindow | null;
|
|
24
|
+
export declare function listEstimatedModelContextWindows(): Record<string, number>;
|
|
25
|
+
//# sourceMappingURL=model-context-windows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-context-windows.d.ts","sourceRoot":"","sources":["../../../lib/context-budget/model-context-windows.ts"],"names":[],"mappings":"AAyCA;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,qJAgB9B,CAAC;AAgCX,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC3C,sBAAsB,GAAG,IAAI,CA0B/B;AAED,wBAAgB,gCAAgC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzE"}
|