@google/gemini-cli-core 0.16.0-preview.5 → 0.16.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/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/src/code_assist/experiments/flagNames.d.ts +3 -0
- package/dist/src/code_assist/experiments/flagNames.js +3 -0
- package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
- package/dist/src/config/config.d.ts +13 -0
- package/dist/src/config/config.js +44 -1
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +77 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/models.d.ts +22 -1
- package/dist/src/config/models.js +48 -5
- package/dist/src/config/models.js.map +1 -1
- package/dist/src/config/models.test.js +71 -10
- package/dist/src/config/models.test.js.map +1 -1
- package/dist/src/core/client.d.ts +0 -1
- package/dist/src/core/client.js +5 -12
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +5 -16
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +2 -0
- package/dist/src/core/geminiChat.js +91 -12
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +253 -18
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/fallback/handler.js +52 -5
- package/dist/src/fallback/handler.js.map +1 -1
- package/dist/src/fallback/handler.test.js +64 -4
- package/dist/src/fallback/handler.test.js.map +1 -1
- package/dist/src/fallback/types.d.ts +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +4 -0
- package/dist/src/ide/detect-ide.js +4 -0
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +5 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +3 -1
- package/dist/src/ide/ide-client.js +5 -4
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.js +65 -20
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +41 -0
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/routing/modelRouterService.js +15 -0
- package/dist/src/routing/modelRouterService.js.map +1 -1
- package/dist/src/routing/modelRouterService.test.js +62 -0
- package/dist/src/routing/modelRouterService.test.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.d.ts +1 -1
- package/dist/src/routing/strategies/classifierStrategy.js +4 -4
- package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
- package/dist/src/routing/strategies/classifierStrategy.test.js +1 -0
- package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
- package/dist/src/routing/strategies/fallbackStrategy.test.js +4 -0
- package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.js +2 -2
- package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
- package/dist/src/routing/strategies/overrideStrategy.test.js +3 -0
- package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
- package/dist/src/utils/editor.d.ts +3 -1
- package/dist/src/utils/editor.js +18 -1
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +11 -0
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +2 -2
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/googleQuotaErrors.d.ts +2 -1
- package/dist/src/utils/googleQuotaErrors.js +20 -12
- package/dist/src/utils/googleQuotaErrors.js.map +1 -1
- package/dist/src/utils/httpErrors.d.ts +18 -0
- package/dist/src/utils/httpErrors.js +36 -0
- package/dist/src/utils/httpErrors.js.map +1 -0
- package/dist/src/utils/retry.d.ts +0 -9
- package/dist/src/utils/retry.js +24 -28
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +51 -0
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.16.0-preview.4.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,oBAAoB,GAErB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,4CAA4C;IAC5C,kCAAe,CAAA;IACf;oDACgD;IAChD,kCAAe,CAAA;AACjB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAgBD,MAAM,6BAA6B,GAAwB;IACzD,WAAW,EAAE,CAAC,EAAE,2BAA2B;IAC3C,cAAc,EAAE,GAAG;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAC;AAE9E;;GAEG;AACH,SAAS,eAAe,CAAC,QAAiC;IACxD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAU;IAClD,OAAO,CACL,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,IAAI,CAAC,OAAO;QACb,wEAAwE;QACxE,0DAA0D;QAC1D,CAAC,IAAI,CAAC,YAAY;QAClB,CAAC,IAAI,CAAC,gBAAgB;QACtB,CAAC,IAAI,CAAC,UAAU;QAChB,CAAC,IAAI,CAAC,QAAQ,CACf,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAkB;IACzC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,oBAA+B;IAC5D,IAAI,oBAAoB,KAAK,SAAS,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;QAClB,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5C,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,OAAO,CAAC,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9D,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,CAGiB;IAE9B,YACE,OAAe,EACf,IAAyE;QAEzE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IAQF;IACA;IACT;IATV,4EAA4E;IAC5E,SAAS;IACD,WAAW,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,oBAAoB,CAAuB;IACpD,oBAAoB,CAAS;IAErC,YACmB,MAAc,EACd,mBAA0C,EAAE,EACrD,UAAqB,EAAE,EAC/B,kBAAuC;QAHtB,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAA4B;QACrD,YAAO,GAAP,OAAO,CAAgB;QAG/B,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,QAAgB;QACnC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,MAA6B,EAC7B,SAAiB;QAEjB,MAAM,IAAI,CAAC,WAAW,CAAC;QAEvB,iDAAiD;QACjD,4EAA4E;QAC5E,8EAA8E;QAC9E,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAI,kBAA8B,CAAC;QACnC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACtD,kBAAkB,GAAG,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;QAErC,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtD,0FAA0F;QAC1F,0GAA0G;QAC1G,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;gBACtC,KAAK;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAE9C,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,CAAC,KAAK,SAAS,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,SAAS,GAAY,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAExE,IAAI,WAAW,GAAG,6BAA6B,CAAC,WAAW,CAAC;gBAC5D,6EAA6E;gBAC7E,kCAAkC;gBAClC,IACE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE;oBACxC,KAAK,KAAK,oBAAoB,EAC9B,CAAC;oBACD,WAAW,GAAG,CAAC,CAAC;gBAClB,CAAC;gBAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;oBACvD,IAAI,CAAC;wBACH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;4BAChB,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC;wBACxC,CAAC;wBAED,0EAA0E;wBAC1E,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;wBACpC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;4BAChB,aAAa,CAAC,MAAM,GAAG;gCACrB,GAAG,aAAa,CAAC,MAAM;gCACvB,WAAW,EAAE,CAAC;6BACf,CAAC;wBACJ,CAAC;wBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACnD,KAAK,EACL,eAAe,EACf,aAAa,EACb,SAAS,CACV,CAAC;wBAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACjC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;wBACtD,CAAC;wBAED,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;oBACR,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,SAAS,GAAG,KAAK,CAAC;wBAClB,MAAM,cAAc,GAAG,KAAK,YAAY,kBAAkB,CAAC;wBAE3D,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC5C,uCAAuC;4BACvC,IAAI,OAAO,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;gCAC9B,eAAe,CACb,IAAI,CAAC,MAAM,EACX,IAAI,iBAAiB,CACnB,OAAO,EACN,KAA4B,CAAC,IAAI,EAClC,6BAA6B,CAAC,cAAc,EAC5C,KAAK,CACN,CACF,CAAC;gCACF,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACxB,UAAU,CACR,GAAG,EACH,6BAA6B,CAAC,cAAc;oCAC1C,CAAC,OAAO,GAAG,CAAC,CAAC,CAChB,CACF,CAAC;gCACF,SAAS;4BACX,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,IACE,SAAS,YAAY,kBAAkB;wBACvC,cAAc,CAAC,KAAK,CAAC,EACrB,CAAC;wBACD,sBAAsB,CACpB,IAAI,CAAC,MAAM,EACX,IAAI,wBAAwB,CAC1B,WAAW,EACV,SAAgC,CAAC,IAAI,EACtC,KAAK,CACN,CACF,CAAC;oBACJ,CAAC;oBACD,MAAM,SAAS,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,0DAA0D;oBAC1D,gFAAgF;oBAChF,IACE,KAAK,KAAK,oBAAoB;wBAC9B,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,EACvC,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,kBAAmB,EAAE,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,KAAa,EACb,eAA0B,EAC1B,MAA6B,EAC7B,SAAiB;QAEjB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,MAAM,uBAAuB,GAC3B,IAAI,CAAC,oCAAoC,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,UAAU,GAAG,iBAAiB,CAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAC9B,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CACjC,CAAC;YAEF,8BAA8B;YAC9B,8FAA8F;YAC9F,qDAAqD;YACrD,IACE,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;gBACtC,UAAU,KAAK,oBAAoB,EACnC,CAAC;gBACD,UAAU,GAAG,oBAAoB,CAAC;YACpC,CAAC;YAED,cAAc,GAAG,UAAU,CAAC;YAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,qBAAqB,CAC5D;gBACE,KAAK,EAAE,UAAU;gBACjB,QAAQ,EACN,UAAU,KAAK,oBAAoB;oBACjC,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,eAAe;gBACrB,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;aACvD,EACD,SAAS,CACV,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,KAAK,EACnC,QAAiB,EACjB,KAAe,EACf,EAAE,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAExE,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE;YACrD,eAAe,EAAE,uBAAuB;YACxC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ;YAC3D,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW;YAClC,WAAW,EACT,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE;gBACxC,KAAK,KAAK,oBAAoB;gBAC5B,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CAAC,UAAmB,KAAK;QACjC,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACjB,qEAAqE;QACrE,gBAAgB;QAChB,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;wBACnE,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wBAC5B,OAAQ,OAAyC,CAAC,gBAAgB,CAAC;wBACnE,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE,oCAAoC,CAAC,eAA0B;QAC7D,yEAAyE;QACzE,6DAA6D;QAC7D,IAAI,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,oBAAoB,GAAG,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE,CAAC;YAChC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,4EAA4E;QAC5E,4DAA4D;QAC5D,yEAAyE;QACzE,yDAAyD;QACzD,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,yBAAyB;QACtE,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;oBAC1B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG;gCACZ,GAAG,IAAI;gCACP,gBAAgB,EAAE,2BAA2B;6BAC9C,CAAC;4BACF,WAAW,CAAC,CAAC,CAAC,GAAG;gCACf,GAAG,OAAO;gCACV,KAAK,EAAE,QAAQ;6BAChB,CAAC;wBACJ,CAAC;wBACD,MAAM,CAAC,wCAAwC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,KAAsB;QACzD,qEAAqE;QACrE,wEAAwE;QACxE,IACE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;YACjC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,iBAAiB,GAAa,EAAE,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IACE,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB;oBAC/B,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBACrD,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACpE,CAAC;oBACD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,YAAY,GAChB,4IAA4I;oBAC5I,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC/B,IAAI,CAAC;gBACP,KAAK,CAAC,OAAO,IAAI,YAAY,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,CAAC,qBAAqB,CAClC,KAAa,EACb,cAAuD;QAEvD,MAAM,kBAAkB,GAAW,EAAE,CAAC;QAEtC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,YAAsC,CAAC;QAE3C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACzC,MAAM,mBAAmB,GAAG,KAAK,EAAE,UAAU,EAAE,IAAI,CACjD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CACtC,CAAC;YACF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,YAAY,GAAG,mBAAmB,CAAC,YAA4B,CAAC;YAClE,CAAC;YAED,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC/C,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;oBACnB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC/C,kBAAkB;wBAClB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC;oBACD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;wBACpD,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;oBAED,kBAAkB,CAAC,IAAI,CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACjD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACnE,IAAI,KAAK,CAAC,aAAa,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACvD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACnE,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC,CAAC,2CAA2C;QAC1D,CAAC;QAED,8CAA8C;QAC9C,MAAM,iBAAiB,GAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjE,IACE,QAAQ,EAAE,IAAI;gBACd,yBAAyB,CAAC,QAAQ,CAAC;gBACnC,yBAAyB,CAAC,IAAI,CAAC,EAC/B,CAAC;gBACD,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB;aACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,EAAE,CAAC;QAEV,sDAAsD;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;gBACtC,KAAK;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,kBAAkB,CAC1B,6CAA6C,EAC7C,kBAAkB,CACnB,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,KAAK,YAAY,CAAC,uBAAuB,EAAE,CAAC;gBAC1D,MAAM,IAAI,kBAAkB,CAC1B,kDAAkD,EAClD,yBAAyB,CAC1B,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,kBAAkB,CAC1B,8CAA8C,EAC9C,kBAAkB,CACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,wBAAwB,CACtB,KAAa,EACb,SAA8B;QAE9B,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;YACtD,MAAM,aAAa,GACjB,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtE,OAAO;gBACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,IAAI;gBAC5C,MAAM,EAAE,IAAI,CAAC,MAA2C;gBACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,aAAa;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,OAAgB;QAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACrB,kEAAkE;YAClE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;YACjC,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,oBAAoB;gBAClC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAChC,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEjE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;gBACtC,OAAO;gBACP,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,0BAA0B;AAC1B,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,OAAO,YAAY,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
7
|
import { ApiError } from '@google/genai';
|
|
8
|
-
import { GeminiChat, InvalidStreamError, StreamEventType, } from './geminiChat.js';
|
|
8
|
+
import { GeminiChat, InvalidStreamError, StreamEventType, SYNTHETIC_THOUGHT_SIGNATURE, } from './geminiChat.js';
|
|
9
9
|
import { setSimulate429 } from '../utils/testUtils.js';
|
|
10
|
-
import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
|
|
10
|
+
import { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, } from '../config/models.js';
|
|
11
11
|
import { AuthType } from './contentGenerator.js';
|
|
12
|
-
import {} from '../utils/
|
|
12
|
+
import { TerminalQuotaError } from '../utils/googleQuotaErrors.js';
|
|
13
|
+
import { retryWithBackoff } from '../utils/retry.js';
|
|
13
14
|
import { uiTelemetryService } from '../telemetry/uiTelemetry.js';
|
|
14
15
|
// Mock fs module to prevent actual file system operations during tests
|
|
15
16
|
const mockFileSystem = new Map();
|
|
@@ -83,6 +84,7 @@ describe('GeminiChat', () => {
|
|
|
83
84
|
getTelemetryLogPromptsEnabled: () => true,
|
|
84
85
|
getUsageStatisticsEnabled: () => true,
|
|
85
86
|
getDebugMode: () => false,
|
|
87
|
+
getPreviewFeatures: () => false,
|
|
86
88
|
getContentGeneratorConfig: vi.fn().mockReturnValue({
|
|
87
89
|
authType: 'oauth-personal', // Ensure this is set for fallback tests
|
|
88
90
|
model: 'test-model',
|
|
@@ -102,6 +104,10 @@ describe('GeminiChat', () => {
|
|
|
102
104
|
}),
|
|
103
105
|
getContentGenerator: vi.fn().mockReturnValue(mockContentGenerator),
|
|
104
106
|
getRetryFetchErrors: vi.fn().mockReturnValue(false),
|
|
107
|
+
isPreviewModelBypassMode: vi.fn().mockReturnValue(false),
|
|
108
|
+
setPreviewModelBypassMode: vi.fn(),
|
|
109
|
+
isPreviewModelFallbackMode: vi.fn().mockReturnValue(false),
|
|
110
|
+
setPreviewModelFallbackMode: vi.fn(),
|
|
105
111
|
isInteractive: vi.fn().mockReturnValue(false),
|
|
106
112
|
};
|
|
107
113
|
// Disable 429 simulation for tests
|
|
@@ -197,7 +203,7 @@ describe('GeminiChat', () => {
|
|
|
197
203
|
})();
|
|
198
204
|
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithNoFinish);
|
|
199
205
|
// 2. Action & Assert: The stream should fail because there's no finish reason.
|
|
200
|
-
const stream = await chat.sendMessageStream('
|
|
206
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test message' }, 'prompt-id-no-finish-empty-end');
|
|
201
207
|
await expect((async () => {
|
|
202
208
|
for await (const _ of stream) {
|
|
203
209
|
/* consume stream */
|
|
@@ -367,6 +373,84 @@ describe('GeminiChat', () => {
|
|
|
367
373
|
expect(modelTurn?.parts?.length).toBe(1);
|
|
368
374
|
expect(modelTurn?.parts[0].text).toBe('This is the visible text that should not be lost.');
|
|
369
375
|
});
|
|
376
|
+
it('should use maxAttempts=1 for retryWithBackoff when in Preview Model Fallback Mode', async () => {
|
|
377
|
+
vi.mocked(mockConfig.isPreviewModelFallbackMode).mockReturnValue(true);
|
|
378
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue((async function* () {
|
|
379
|
+
yield {
|
|
380
|
+
candidates: [
|
|
381
|
+
{
|
|
382
|
+
content: { parts: [{ text: 'Success' }] },
|
|
383
|
+
finishReason: 'STOP',
|
|
384
|
+
},
|
|
385
|
+
],
|
|
386
|
+
};
|
|
387
|
+
})());
|
|
388
|
+
const stream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-fast-retry');
|
|
389
|
+
for await (const _ of stream) {
|
|
390
|
+
// consume stream
|
|
391
|
+
}
|
|
392
|
+
expect(mockRetryWithBackoff).toHaveBeenCalledWith(expect.any(Function), expect.objectContaining({
|
|
393
|
+
maxAttempts: 1,
|
|
394
|
+
}));
|
|
395
|
+
});
|
|
396
|
+
it('should NOT use maxAttempts=1 for other models even in Preview Model Fallback Mode', async () => {
|
|
397
|
+
vi.mocked(mockConfig.isPreviewModelFallbackMode).mockReturnValue(true);
|
|
398
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue((async function* () {
|
|
399
|
+
yield {
|
|
400
|
+
candidates: [
|
|
401
|
+
{
|
|
402
|
+
content: { parts: [{ text: 'Success' }] },
|
|
403
|
+
finishReason: 'STOP',
|
|
404
|
+
},
|
|
405
|
+
],
|
|
406
|
+
};
|
|
407
|
+
})());
|
|
408
|
+
const stream = await chat.sendMessageStream(DEFAULT_GEMINI_FLASH_MODEL, { message: 'test' }, 'prompt-id-normal-retry');
|
|
409
|
+
for await (const _ of stream) {
|
|
410
|
+
// consume stream
|
|
411
|
+
}
|
|
412
|
+
expect(mockRetryWithBackoff).toHaveBeenCalledWith(expect.any(Function), expect.objectContaining({
|
|
413
|
+
maxAttempts: undefined, // Should use default
|
|
414
|
+
}));
|
|
415
|
+
});
|
|
416
|
+
it('should pass DEFAULT_GEMINI_MODEL to handleFallback when Preview Model is bypassed (downgraded)', async () => {
|
|
417
|
+
// ARRANGE
|
|
418
|
+
vi.mocked(mockConfig.isPreviewModelBypassMode).mockReturnValue(true);
|
|
419
|
+
// Mock retryWithBackoff to simulate catching the error and calling onPersistent429
|
|
420
|
+
vi.mocked(retryWithBackoff).mockImplementation(async (apiCall, options) => {
|
|
421
|
+
const onPersistent429 = options?.onPersistent429;
|
|
422
|
+
try {
|
|
423
|
+
await apiCall();
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
if (onPersistent429) {
|
|
427
|
+
await onPersistent429(AuthType.LOGIN_WITH_GOOGLE, error);
|
|
428
|
+
}
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
// We need the API call to fail so retryWithBackoff calls the callback.
|
|
433
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(new TerminalQuotaError('Simulated Quota Error', {
|
|
434
|
+
code: 429,
|
|
435
|
+
message: 'Simulated Quota Error',
|
|
436
|
+
details: [],
|
|
437
|
+
}));
|
|
438
|
+
// ACT
|
|
439
|
+
const consumeStream = async () => {
|
|
440
|
+
const stream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-bypass');
|
|
441
|
+
// Consume the stream to trigger execution
|
|
442
|
+
for await (const _ of stream) {
|
|
443
|
+
// do nothing
|
|
444
|
+
}
|
|
445
|
+
};
|
|
446
|
+
await expect(consumeStream()).rejects.toThrow('Simulated Quota Error');
|
|
447
|
+
expect(retryWithBackoff).toHaveBeenCalled();
|
|
448
|
+
// ASSERT
|
|
449
|
+
// handleFallback is called via onPersistent429Callback
|
|
450
|
+
// We verify it was called with DEFAULT_GEMINI_MODEL
|
|
451
|
+
expect(mockHandleFallback).toHaveBeenCalledWith(expect.anything(), DEFAULT_GEMINI_MODEL, // This is the key assertion
|
|
452
|
+
expect.anything(), expect.anything());
|
|
453
|
+
});
|
|
370
454
|
it('should throw an error when a tool call is followed by an empty stream response', async () => {
|
|
371
455
|
// 1. Setup: A history where the model has just made a function call.
|
|
372
456
|
const initialHistory = [
|
|
@@ -400,7 +484,7 @@ describe('GeminiChat', () => {
|
|
|
400
484
|
})();
|
|
401
485
|
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(emptyStreamResponse);
|
|
402
486
|
// 3. Action: Send the function response back to the model and consume the stream.
|
|
403
|
-
const stream = await chat.sendMessageStream('
|
|
487
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', {
|
|
404
488
|
message: {
|
|
405
489
|
functionResponse: {
|
|
406
490
|
name: 'find_restaurant',
|
|
@@ -462,7 +546,7 @@ describe('GeminiChat', () => {
|
|
|
462
546
|
};
|
|
463
547
|
})();
|
|
464
548
|
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithoutFinishReason);
|
|
465
|
-
const stream = await chat.sendMessageStream('
|
|
549
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-1');
|
|
466
550
|
await expect((async () => {
|
|
467
551
|
for await (const _ of stream) {
|
|
468
552
|
// consume stream
|
|
@@ -485,7 +569,7 @@ describe('GeminiChat', () => {
|
|
|
485
569
|
};
|
|
486
570
|
})();
|
|
487
571
|
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithEmptyResponse);
|
|
488
|
-
const stream = await chat.sendMessageStream('
|
|
572
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-1');
|
|
489
573
|
await expect((async () => {
|
|
490
574
|
for await (const _ of stream) {
|
|
491
575
|
// consume stream
|
|
@@ -532,7 +616,7 @@ describe('GeminiChat', () => {
|
|
|
532
616
|
};
|
|
533
617
|
})();
|
|
534
618
|
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithMalformedFunctionCall);
|
|
535
|
-
const stream = await chat.sendMessageStream('
|
|
619
|
+
const stream = await chat.sendMessageStream('gemini-2.5-pro', { message: 'test' }, 'prompt-id-malformed');
|
|
536
620
|
// Should throw an error
|
|
537
621
|
await expect((async () => {
|
|
538
622
|
for await (const _ of stream) {
|
|
@@ -566,7 +650,7 @@ describe('GeminiChat', () => {
|
|
|
566
650
|
};
|
|
567
651
|
})());
|
|
568
652
|
// 2. Send a message
|
|
569
|
-
const stream = await chat.sendMessageStream('
|
|
653
|
+
const stream = await chat.sendMessageStream('gemini-2.5-pro', { message: 'test retry' }, 'prompt-id-retry-malformed');
|
|
570
654
|
const events = [];
|
|
571
655
|
for await (const event of stream) {
|
|
572
656
|
events.push(event);
|
|
@@ -649,6 +733,23 @@ describe('GeminiChat', () => {
|
|
|
649
733
|
});
|
|
650
734
|
});
|
|
651
735
|
describe('sendMessageStream with retries', () => {
|
|
736
|
+
it('should not retry on invalid content if model does not start with gemini-2', async () => {
|
|
737
|
+
// Mock the stream to fail.
|
|
738
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockImplementation(async () => (async function* () {
|
|
739
|
+
yield {
|
|
740
|
+
candidates: [{ content: { parts: [{ text: '' }] } }],
|
|
741
|
+
};
|
|
742
|
+
})());
|
|
743
|
+
const stream = await chat.sendMessageStream('gemini-1.5-pro', { message: 'test' }, 'prompt-id-no-retry');
|
|
744
|
+
await expect((async () => {
|
|
745
|
+
for await (const _ of stream) {
|
|
746
|
+
// Must loop to trigger the internal logic that throws.
|
|
747
|
+
}
|
|
748
|
+
})()).rejects.toThrow(InvalidStreamError);
|
|
749
|
+
// Should be called only 1 time (no retry)
|
|
750
|
+
expect(mockContentGenerator.generateContentStream).toHaveBeenCalledTimes(1);
|
|
751
|
+
expect(mockLogContentRetry).not.toHaveBeenCalled();
|
|
752
|
+
});
|
|
652
753
|
it('should yield a RETRY event when an invalid stream is encountered', async () => {
|
|
653
754
|
// ARRANGE: Mock the stream to fail once, then succeed.
|
|
654
755
|
vi.mocked(mockContentGenerator.generateContentStream)
|
|
@@ -672,7 +773,7 @@ describe('GeminiChat', () => {
|
|
|
672
773
|
};
|
|
673
774
|
})());
|
|
674
775
|
// ACT: Send a message and collect all events from the stream.
|
|
675
|
-
const stream = await chat.sendMessageStream('
|
|
776
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-yield-retry');
|
|
676
777
|
const events = [];
|
|
677
778
|
for await (const event of stream) {
|
|
678
779
|
events.push(event);
|
|
@@ -704,7 +805,7 @@ describe('GeminiChat', () => {
|
|
|
704
805
|
],
|
|
705
806
|
};
|
|
706
807
|
})());
|
|
707
|
-
const stream = await chat.sendMessageStream('
|
|
808
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-retry-success');
|
|
708
809
|
const chunks = [];
|
|
709
810
|
for await (const chunk of stream) {
|
|
710
811
|
chunks.push(chunk);
|
|
@@ -755,7 +856,7 @@ describe('GeminiChat', () => {
|
|
|
755
856
|
],
|
|
756
857
|
};
|
|
757
858
|
})());
|
|
758
|
-
const stream = await chat.sendMessageStream('
|
|
859
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test', config: { temperature: 0.5 } }, 'prompt-id-retry-temperature');
|
|
759
860
|
for await (const _ of stream) {
|
|
760
861
|
// consume stream
|
|
761
862
|
}
|
|
@@ -786,7 +887,7 @@ describe('GeminiChat', () => {
|
|
|
786
887
|
],
|
|
787
888
|
};
|
|
788
889
|
})());
|
|
789
|
-
const stream = await chat.sendMessageStream('
|
|
890
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-retry-fail');
|
|
790
891
|
await expect(async () => {
|
|
791
892
|
for await (const _ of stream) {
|
|
792
893
|
// Must loop to trigger the internal logic that throws.
|
|
@@ -835,7 +936,7 @@ describe('GeminiChat', () => {
|
|
|
835
936
|
it('should not retry on 400 Bad Request errors', async () => {
|
|
836
937
|
const error400 = new ApiError({ message: 'Bad Request', status: 400 });
|
|
837
938
|
vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(error400);
|
|
838
|
-
const stream = await chat.sendMessageStream('
|
|
939
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-400');
|
|
839
940
|
await expect((async () => {
|
|
840
941
|
for await (const _ of stream) {
|
|
841
942
|
/* consume stream */
|
|
@@ -966,7 +1067,7 @@ describe('GeminiChat', () => {
|
|
|
966
1067
|
};
|
|
967
1068
|
})());
|
|
968
1069
|
// 3. Send a new message
|
|
969
|
-
const stream = await chat.sendMessageStream('
|
|
1070
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'Second question' }, 'prompt-id-retry-existing');
|
|
970
1071
|
for await (const _ of stream) {
|
|
971
1072
|
// consume stream
|
|
972
1073
|
}
|
|
@@ -1018,7 +1119,7 @@ describe('GeminiChat', () => {
|
|
|
1018
1119
|
};
|
|
1019
1120
|
})());
|
|
1020
1121
|
// 2. Call the method and consume the stream.
|
|
1021
|
-
const stream = await chat.sendMessageStream('
|
|
1122
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test empty stream' }, 'prompt-id-empty-stream');
|
|
1022
1123
|
const chunks = [];
|
|
1023
1124
|
for await (const chunk of stream) {
|
|
1024
1125
|
chunks.push(chunk);
|
|
@@ -1202,7 +1303,7 @@ describe('GeminiChat', () => {
|
|
|
1202
1303
|
vi.mocked(mockConfig.getModel).mockReturnValue('gemini-pro');
|
|
1203
1304
|
vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(error429);
|
|
1204
1305
|
mockHandleFallback.mockResolvedValue(false);
|
|
1205
|
-
const stream = await chat.sendMessageStream('
|
|
1306
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test stop' }, 'prompt-id-fb2');
|
|
1206
1307
|
await expect((async () => {
|
|
1207
1308
|
for await (const _ of stream) {
|
|
1208
1309
|
/* consume stream */
|
|
@@ -1246,7 +1347,7 @@ describe('GeminiChat', () => {
|
|
|
1246
1347
|
};
|
|
1247
1348
|
})());
|
|
1248
1349
|
// Send a message and consume the stream
|
|
1249
|
-
const stream = await chat.sendMessageStream('
|
|
1350
|
+
const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-discard-test');
|
|
1250
1351
|
const events = [];
|
|
1251
1352
|
for await (const event of stream) {
|
|
1252
1353
|
events.push(event);
|
|
@@ -1297,5 +1398,139 @@ describe('GeminiChat', () => {
|
|
|
1297
1398
|
]);
|
|
1298
1399
|
});
|
|
1299
1400
|
});
|
|
1401
|
+
describe('Preview Model Fallback Logic', () => {
|
|
1402
|
+
it('should reset previewModelBypassMode to false at the start of sendMessageStream', async () => {
|
|
1403
|
+
const stream = (async function* () {
|
|
1404
|
+
yield {
|
|
1405
|
+
candidates: [
|
|
1406
|
+
{
|
|
1407
|
+
content: { role: 'model', parts: [{ text: 'Success' }] },
|
|
1408
|
+
finishReason: 'STOP',
|
|
1409
|
+
},
|
|
1410
|
+
],
|
|
1411
|
+
};
|
|
1412
|
+
})();
|
|
1413
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
|
|
1414
|
+
await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-preview-model-reset');
|
|
1415
|
+
expect(mockConfig.setPreviewModelBypassMode).toHaveBeenCalledWith(false);
|
|
1416
|
+
});
|
|
1417
|
+
it('should reset previewModelFallbackMode to false upon successful Preview Model usage', async () => {
|
|
1418
|
+
const stream = (async function* () {
|
|
1419
|
+
yield {
|
|
1420
|
+
candidates: [
|
|
1421
|
+
{
|
|
1422
|
+
content: { role: 'model', parts: [{ text: 'Success' }] },
|
|
1423
|
+
finishReason: 'STOP',
|
|
1424
|
+
},
|
|
1425
|
+
],
|
|
1426
|
+
};
|
|
1427
|
+
})();
|
|
1428
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
|
|
1429
|
+
const resultStream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-preview-model-healing');
|
|
1430
|
+
for await (const _ of resultStream) {
|
|
1431
|
+
// consume stream
|
|
1432
|
+
}
|
|
1433
|
+
expect(mockConfig.setPreviewModelFallbackMode).toHaveBeenCalledWith(false);
|
|
1434
|
+
});
|
|
1435
|
+
it('should NOT reset previewModelFallbackMode if Preview Model was bypassed (downgraded)', async () => {
|
|
1436
|
+
const stream = (async function* () {
|
|
1437
|
+
yield {
|
|
1438
|
+
candidates: [
|
|
1439
|
+
{
|
|
1440
|
+
content: { role: 'model', parts: [{ text: 'Success' }] },
|
|
1441
|
+
finishReason: 'STOP',
|
|
1442
|
+
},
|
|
1443
|
+
],
|
|
1444
|
+
};
|
|
1445
|
+
})();
|
|
1446
|
+
vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
|
|
1447
|
+
// Simulate bypass mode being active (downgrade happened)
|
|
1448
|
+
vi.mocked(mockConfig.isPreviewModelBypassMode).mockReturnValue(true);
|
|
1449
|
+
const resultStream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-bypass-no-healing');
|
|
1450
|
+
for await (const _ of resultStream) {
|
|
1451
|
+
// consume stream
|
|
1452
|
+
}
|
|
1453
|
+
expect(mockConfig.setPreviewModelFallbackMode).not.toHaveBeenCalled();
|
|
1454
|
+
});
|
|
1455
|
+
});
|
|
1456
|
+
describe('ensureActiveLoopHasThoughtSignatures', () => {
|
|
1457
|
+
it('should add thoughtSignature to the first functionCall in each model turn of the active loop', () => {
|
|
1458
|
+
const chat = new GeminiChat(mockConfig, {}, []);
|
|
1459
|
+
const history = [
|
|
1460
|
+
{ role: 'user', parts: [{ text: 'Old message' }] },
|
|
1461
|
+
{
|
|
1462
|
+
role: 'model',
|
|
1463
|
+
parts: [{ functionCall: { name: 'old_tool', args: {} } }],
|
|
1464
|
+
},
|
|
1465
|
+
{ role: 'user', parts: [{ text: 'Find a restaurant' }] }, // active loop starts here
|
|
1466
|
+
{
|
|
1467
|
+
role: 'model',
|
|
1468
|
+
parts: [
|
|
1469
|
+
{ functionCall: { name: 'find_restaurant', args: {} } }, // This one gets a signature
|
|
1470
|
+
{ functionCall: { name: 'find_restaurant_2', args: {} } }, // This one does NOT
|
|
1471
|
+
],
|
|
1472
|
+
},
|
|
1473
|
+
{
|
|
1474
|
+
role: 'user',
|
|
1475
|
+
parts: [
|
|
1476
|
+
{ functionResponse: { name: 'find_restaurant', response: {} } },
|
|
1477
|
+
],
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
role: 'model',
|
|
1481
|
+
parts: [
|
|
1482
|
+
{
|
|
1483
|
+
functionCall: { name: 'tool_with_sig', args: {} },
|
|
1484
|
+
thoughtSignature: 'existing-sig',
|
|
1485
|
+
},
|
|
1486
|
+
{ functionCall: { name: 'another_tool', args: {} } }, // This one does NOT get a signature
|
|
1487
|
+
],
|
|
1488
|
+
},
|
|
1489
|
+
];
|
|
1490
|
+
const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
|
|
1491
|
+
// Outside active loop - unchanged
|
|
1492
|
+
expect(newContents[1]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
|
|
1493
|
+
// Inside active loop, first model turn
|
|
1494
|
+
// First function call gets a signature
|
|
1495
|
+
expect(newContents[3]?.parts?.[0]?.thoughtSignature).toBe(SYNTHETIC_THOUGHT_SIGNATURE);
|
|
1496
|
+
// Second function call does NOT
|
|
1497
|
+
expect(newContents[3]?.parts?.[1]).not.toHaveProperty('thoughtSignature');
|
|
1498
|
+
// User functionResponse part - unchanged (this is not a model turn)
|
|
1499
|
+
expect(newContents[4]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
|
|
1500
|
+
// Inside active loop, second model turn
|
|
1501
|
+
// First function call already has a signature, so nothing changes
|
|
1502
|
+
expect(newContents[5]?.parts?.[0]?.thoughtSignature).toBe('existing-sig');
|
|
1503
|
+
// Second function call does NOT get a signature
|
|
1504
|
+
expect(newContents[5]?.parts?.[1]).not.toHaveProperty('thoughtSignature');
|
|
1505
|
+
});
|
|
1506
|
+
it('should not modify contents if there is no user text message', () => {
|
|
1507
|
+
const chat = new GeminiChat(mockConfig, {}, []);
|
|
1508
|
+
const history = [
|
|
1509
|
+
{
|
|
1510
|
+
role: 'user',
|
|
1511
|
+
parts: [{ functionResponse: { name: 'tool1', response: {} } }],
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
role: 'model',
|
|
1515
|
+
parts: [{ functionCall: { name: 'tool2', args: {} } }],
|
|
1516
|
+
},
|
|
1517
|
+
];
|
|
1518
|
+
const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
|
|
1519
|
+
expect(newContents).toEqual(history);
|
|
1520
|
+
expect(newContents[1]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
|
|
1521
|
+
});
|
|
1522
|
+
it('should handle an empty history', () => {
|
|
1523
|
+
const chat = new GeminiChat(mockConfig, {}, []);
|
|
1524
|
+
const history = [];
|
|
1525
|
+
const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
|
|
1526
|
+
expect(newContents).toEqual([]);
|
|
1527
|
+
});
|
|
1528
|
+
it('should handle history with only a user message', () => {
|
|
1529
|
+
const chat = new GeminiChat(mockConfig, {}, []);
|
|
1530
|
+
const history = [{ role: 'user', parts: [{ text: 'Hello' }] }];
|
|
1531
|
+
const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
|
|
1532
|
+
expect(newContents).toEqual(history);
|
|
1533
|
+
});
|
|
1534
|
+
});
|
|
1300
1535
|
});
|
|
1301
1536
|
//# sourceMappingURL=geminiChat.test.js.map
|