@blackbox_ai/blackbox-cli-core 0.0.7 → 0.8.1

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.
Files changed (255) hide show
  1. package/README.md +11 -183
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/blackbox/blackboxOAuth2.js +17 -1
  6. package/dist/src/blackbox/blackboxOAuth2.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.js +15 -3
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/config/blackboxModels.d.ts +3 -2
  10. package/dist/src/config/blackboxModels.js +262 -33
  11. package/dist/src/config/blackboxModels.js.map +1 -1
  12. package/dist/src/config/config.d.ts +65 -0
  13. package/dist/src/config/config.js +282 -17
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/config/models.d.ts +1 -1
  16. package/dist/src/config/models.js +1 -1
  17. package/dist/src/config/models.js.map +1 -1
  18. package/dist/src/config/multiAgentModels.d.ts +63 -0
  19. package/dist/src/config/multiAgentModels.js +194 -0
  20. package/dist/src/config/multiAgentModels.js.map +1 -0
  21. package/dist/src/core/client.js +11 -5
  22. package/dist/src/core/client.js.map +1 -1
  23. package/dist/src/core/contentGenerator.d.ts +1 -0
  24. package/dist/src/core/contentGenerator.js +57 -7
  25. package/dist/src/core/contentGenerator.js.map +1 -1
  26. package/dist/src/core/coreToolScheduler.js +2 -2
  27. package/dist/src/core/coreToolScheduler.js.map +1 -1
  28. package/dist/src/core/encryptedClientFactory.d.ts +17 -0
  29. package/dist/src/core/encryptedClientFactory.js +92 -0
  30. package/dist/src/core/encryptedClientFactory.js.map +1 -0
  31. package/dist/src/core/encryptedContentGenerator.d.ts +47 -0
  32. package/dist/src/core/encryptedContentGenerator.js +445 -0
  33. package/dist/src/core/encryptedContentGenerator.js.map +1 -0
  34. package/dist/src/core/encryptedGeminiClient.d.ts +59 -0
  35. package/dist/src/core/encryptedGeminiClient.js +177 -0
  36. package/dist/src/core/encryptedGeminiClient.js.map +1 -0
  37. package/dist/src/core/encryptedGeminiClientBridge.d.ts +107 -0
  38. package/dist/src/core/encryptedGeminiClientBridge.js +808 -0
  39. package/dist/src/core/encryptedGeminiClientBridge.js.map +1 -0
  40. package/dist/src/core/encryptedGeminiClientWrapper.d.ts +129 -0
  41. package/dist/src/core/encryptedGeminiClientWrapper.js +305 -0
  42. package/dist/src/core/encryptedGeminiClientWrapper.js.map +1 -0
  43. package/dist/src/core/encryptedTurn.d.ts +40 -0
  44. package/dist/src/core/encryptedTurn.js +114 -0
  45. package/dist/src/core/encryptedTurn.js.map +1 -0
  46. package/dist/src/core/logger.d.ts +21 -0
  47. package/dist/src/core/logger.js +110 -0
  48. package/dist/src/core/logger.js.map +1 -1
  49. package/dist/src/core/openaiContentGenerator/constants.d.ts +2 -0
  50. package/dist/src/core/openaiContentGenerator/constants.js +2 -0
  51. package/dist/src/core/openaiContentGenerator/constants.js.map +1 -1
  52. package/dist/src/core/openaiContentGenerator/converter.d.ts +16 -1
  53. package/dist/src/core/openaiContentGenerator/converter.js +135 -4
  54. package/dist/src/core/openaiContentGenerator/converter.js.map +1 -1
  55. package/dist/src/core/openaiContentGenerator/pipeline.js +22 -8
  56. package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -1
  57. package/dist/src/core/openaiContentGenerator/pipeline.test.js +51 -0
  58. package/dist/src/core/openaiContentGenerator/pipeline.test.js.map +1 -1
  59. package/dist/src/core/openaiContentGenerator/provider/default.js +10 -1
  60. package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -1
  61. package/dist/src/core/prompts.d.ts +18 -1
  62. package/dist/src/core/prompts.js +388 -459
  63. package/dist/src/core/prompts.js.map +1 -1
  64. package/dist/src/core/tokenLimits.d.ts +1 -0
  65. package/dist/src/core/tokenLimits.js +37 -2
  66. package/dist/src/core/tokenLimits.js.map +1 -1
  67. package/dist/src/core/tokenLimits.test.js +36 -1
  68. package/dist/src/core/tokenLimits.test.js.map +1 -1
  69. package/dist/src/encrypt/attestation.d.ts +5 -0
  70. package/dist/src/encrypt/attestation.js +100 -0
  71. package/dist/src/encrypt/attestation.js.map +1 -0
  72. package/dist/src/encrypt/client.d.ts +14 -0
  73. package/dist/src/encrypt/client.js +132 -0
  74. package/dist/src/encrypt/client.js.map +1 -0
  75. package/dist/src/encrypt/config.d.ts +22 -0
  76. package/dist/src/encrypt/config.js +43 -0
  77. package/dist/src/encrypt/config.js.map +1 -0
  78. package/dist/src/encrypt/crypto-utils.d.ts +57 -0
  79. package/dist/src/encrypt/crypto-utils.js +257 -0
  80. package/dist/src/encrypt/crypto-utils.js.map +1 -0
  81. package/dist/src/encrypt/history-manager.d.ts +43 -0
  82. package/dist/src/encrypt/history-manager.js +164 -0
  83. package/dist/src/encrypt/history-manager.js.map +1 -0
  84. package/dist/src/encrypt/minimax-template.d.ts +73 -0
  85. package/dist/src/encrypt/minimax-template.js +276 -0
  86. package/dist/src/encrypt/minimax-template.js.map +1 -0
  87. package/dist/src/encrypt/sessions.d.ts +17 -0
  88. package/dist/src/encrypt/sessions.js +221 -0
  89. package/dist/src/encrypt/sessions.js.map +1 -0
  90. package/dist/src/encrypt/streaming-client.d.ts +29 -0
  91. package/dist/src/encrypt/streaming-client.js +232 -0
  92. package/dist/src/encrypt/streaming-client.js.map +1 -0
  93. package/dist/src/encrypt/tool-formatter.d.ts +36 -0
  94. package/dist/src/encrypt/tool-formatter.js +353 -0
  95. package/dist/src/encrypt/tool-formatter.js.map +1 -0
  96. package/dist/src/encrypt/tool-parser.d.ts +93 -0
  97. package/dist/src/encrypt/tool-parser.js +567 -0
  98. package/dist/src/encrypt/tool-parser.js.map +1 -0
  99. package/dist/src/encrypt/types.d.ts +81 -0
  100. package/dist/src/encrypt/types.js +2 -0
  101. package/dist/src/encrypt/types.js.map +1 -0
  102. package/dist/src/generated/git-commit.d.ts +3 -3
  103. package/dist/src/generated/git-commit.js +3 -3
  104. package/dist/src/ide/ide-client.js +9 -19
  105. package/dist/src/ide/ide-client.js.map +1 -1
  106. package/dist/src/index.d.ts +15 -0
  107. package/dist/src/index.js +15 -0
  108. package/dist/src/index.js.map +1 -1
  109. package/dist/src/mcp/oauth-provider.js +2 -6
  110. package/dist/src/mcp/oauth-provider.js.map +1 -1
  111. package/dist/src/mcp/oauth-token-storage.d.ts +7 -0
  112. package/dist/src/mcp/oauth-token-storage.js +24 -0
  113. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  114. package/dist/src/services/EncryptedChatService.d.ts +80 -0
  115. package/dist/src/services/EncryptedChatService.js +202 -0
  116. package/dist/src/services/EncryptedChatService.js.map +1 -0
  117. package/dist/src/services/StatsHistoryService.d.ts +131 -0
  118. package/dist/src/services/StatsHistoryService.js +427 -0
  119. package/dist/src/services/StatsHistoryService.js.map +1 -0
  120. package/dist/src/services/checkpointApiService.d.ts +101 -0
  121. package/dist/src/services/checkpointApiService.js +215 -0
  122. package/dist/src/services/checkpointApiService.js.map +1 -0
  123. package/dist/src/services/environmentSanitization.d.ts +24 -0
  124. package/dist/src/services/environmentSanitization.js +152 -0
  125. package/dist/src/services/environmentSanitization.js.map +1 -0
  126. package/dist/src/telemetry/blackbox-logger/blackbox-logger.d.ts +2 -6
  127. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js +29 -135
  128. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js.map +1 -1
  129. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js +1 -1
  130. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js.map +1 -1
  131. package/dist/src/telemetry/uiTelemetry.d.ts +8 -0
  132. package/dist/src/telemetry/uiTelemetry.js +17 -0
  133. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  134. package/dist/src/tools/browser-interactive.d.ts +63 -0
  135. package/dist/src/tools/browser-interactive.js +394 -0
  136. package/dist/src/tools/browser-interactive.js.map +1 -0
  137. package/dist/src/tools/browser_use.d.ts +23 -2
  138. package/dist/src/tools/browser_use.js +424 -43
  139. package/dist/src/tools/browser_use.js.map +1 -1
  140. package/dist/src/tools/data-file-constants.d.ts +17 -0
  141. package/dist/src/tools/data-file-constants.js +30 -0
  142. package/dist/src/tools/data-file-constants.js.map +1 -0
  143. package/dist/src/tools/edit.js +44 -7
  144. package/dist/src/tools/edit.js.map +1 -1
  145. package/dist/src/tools/exitPlanMode.js +1 -1
  146. package/dist/src/tools/exitPlanMode.js.map +1 -1
  147. package/dist/src/tools/ls.js +40 -6
  148. package/dist/src/tools/ls.js.map +1 -1
  149. package/dist/src/tools/ls.test.js +4 -4
  150. package/dist/src/tools/ls.test.js.map +1 -1
  151. package/dist/src/tools/mcp-client-manager.d.ts +28 -2
  152. package/dist/src/tools/mcp-client-manager.js +62 -4
  153. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  154. package/dist/src/tools/mcp-client.d.ts +5 -3
  155. package/dist/src/tools/mcp-client.js +39 -11
  156. package/dist/src/tools/mcp-client.js.map +1 -1
  157. package/dist/src/tools/mcp-tool.d.ts +3 -1
  158. package/dist/src/tools/mcp-tool.js +37 -9
  159. package/dist/src/tools/mcp-tool.js.map +1 -1
  160. package/dist/src/tools/memoryTool.d.ts +14 -4
  161. package/dist/src/tools/memoryTool.js +98 -39
  162. package/dist/src/tools/memoryTool.js.map +1 -1
  163. package/dist/src/tools/read-data-file.d.ts +31 -0
  164. package/dist/src/tools/read-data-file.js +469 -0
  165. package/dist/src/tools/read-data-file.js.map +1 -0
  166. package/dist/src/tools/read-file.js +64 -5
  167. package/dist/src/tools/read-file.js.map +1 -1
  168. package/dist/src/tools/read-file.test.js +40 -6
  169. package/dist/src/tools/read-file.test.js.map +1 -1
  170. package/dist/src/tools/shell.d.ts +3 -1
  171. package/dist/src/tools/shell.js +25 -4
  172. package/dist/src/tools/shell.js.map +1 -1
  173. package/dist/src/tools/skill.d.ts +34 -0
  174. package/dist/src/tools/skill.js +143 -0
  175. package/dist/src/tools/skill.js.map +1 -0
  176. package/dist/src/tools/sql_db.d.ts +101 -0
  177. package/dist/src/tools/sql_db.js +1033 -0
  178. package/dist/src/tools/sql_db.js.map +1 -0
  179. package/dist/src/tools/sql_db_configure.d.ts +18 -0
  180. package/dist/src/tools/sql_db_configure.js +96 -0
  181. package/dist/src/tools/sql_db_configure.js.map +1 -0
  182. package/dist/src/tools/taskCompletion.d.ts +29 -0
  183. package/dist/src/tools/taskCompletion.js +231 -0
  184. package/dist/src/tools/taskCompletion.js.map +1 -0
  185. package/dist/src/tools/todoWrite.js +0 -142
  186. package/dist/src/tools/todoWrite.js.map +1 -1
  187. package/dist/src/tools/tool-error.d.ts +3 -1
  188. package/dist/src/tools/tool-error.js +3 -0
  189. package/dist/src/tools/tool-error.js.map +1 -1
  190. package/dist/src/tools/tool-names.d.ts +8 -0
  191. package/dist/src/tools/tool-names.js +8 -0
  192. package/dist/src/tools/tool-names.js.map +1 -1
  193. package/dist/src/tools/tool-registry.d.ts +22 -0
  194. package/dist/src/tools/tool-registry.js +41 -1
  195. package/dist/src/tools/tool-registry.js.map +1 -1
  196. package/dist/src/tools/tools.d.ts +18 -2
  197. package/dist/src/tools/tools.js +3 -0
  198. package/dist/src/tools/tools.js.map +1 -1
  199. package/dist/src/tools/web-fetch.js +24 -4
  200. package/dist/src/tools/web-fetch.js.map +1 -1
  201. package/dist/src/tools/web-search.js +160 -2
  202. package/dist/src/tools/web-search.js.map +1 -1
  203. package/dist/src/tools/workspace-error-helper.d.ts +9 -0
  204. package/dist/src/tools/workspace-error-helper.js +43 -0
  205. package/dist/src/tools/workspace-error-helper.js.map +1 -0
  206. package/dist/src/tools/workspace-error-helper.test.js +85 -0
  207. package/dist/src/tools/workspace-error-helper.test.js.map +1 -0
  208. package/dist/src/tools/write-file.js +42 -7
  209. package/dist/src/tools/write-file.js.map +1 -1
  210. package/dist/src/utils/environmentContext.js +3 -1
  211. package/dist/src/utils/environmentContext.js.map +1 -1
  212. package/dist/src/utils/environmentContext.test.js +3 -2
  213. package/dist/src/utils/environmentContext.test.js.map +1 -1
  214. package/dist/src/utils/fetch.d.ts +3 -1
  215. package/dist/src/utils/fetch.js +35 -2
  216. package/dist/src/utils/fetch.js.map +1 -1
  217. package/dist/src/utils/fileUtils.js +30 -3
  218. package/dist/src/utils/fileUtils.js.map +1 -1
  219. package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
  220. package/dist/src/utils/filesearch/fileSearch.js +38 -7
  221. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  222. package/dist/src/utils/git-worktree-utils.d.ts +56 -0
  223. package/dist/src/utils/git-worktree-utils.js +176 -0
  224. package/dist/src/utils/git-worktree-utils.js.map +1 -0
  225. package/dist/src/utils/imageCompression.d.ts +34 -0
  226. package/dist/src/utils/imageCompression.js +170 -0
  227. package/dist/src/utils/imageCompression.js.map +1 -0
  228. package/dist/src/utils/messageTruncator.d.ts +51 -0
  229. package/dist/src/utils/messageTruncator.js +346 -0
  230. package/dist/src/utils/messageTruncator.js.map +1 -0
  231. package/dist/src/utils/pathReader.js +26 -6
  232. package/dist/src/utils/pathReader.js.map +1 -1
  233. package/dist/src/utils/skill.d.ts +65 -0
  234. package/dist/src/utils/skill.js +241 -0
  235. package/dist/src/utils/skill.js.map +1 -0
  236. package/dist/src/utils/textCleaning.d.ts +51 -0
  237. package/dist/src/utils/textCleaning.js +327 -0
  238. package/dist/src/utils/textCleaning.js.map +1 -0
  239. package/dist/tsconfig.tsbuildinfo +1 -1
  240. package/package.json +19 -6
  241. package/dist/src/tools/mcp-client-manager.test.js +0 -39
  242. package/dist/src/tools/mcp-client-manager.test.js.map +0 -1
  243. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  244. package/dist/src/tools/mcp-client.test.js +0 -454
  245. package/dist/src/tools/mcp-client.test.js.map +0 -1
  246. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  247. package/dist/src/tools/mcp-tool.test.js +0 -576
  248. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  249. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  250. package/dist/src/tools/memoryTool.test.js +0 -420
  251. package/dist/src/tools/memoryTool.test.js.map +0 -1
  252. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  253. package/dist/src/tools/tool-registry.test.js +0 -332
  254. package/dist/src/tools/tool-registry.test.js.map +0 -1
  255. /package/dist/src/tools/{mcp-client-manager.test.d.ts → workspace-error-helper.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptedGeminiClientBridge.js","sourceRoot":"","sources":["../../../src/core/encryptedGeminiClientBridge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC7C,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAmBhE;;;;GAIG;AACH,MAAM,OAAO,2BAA2B;IAOnB;IACA;IAPX,KAAK,GAA0B,EAAE,CAAC;IAClC,OAAO,GAAc,EAAE,CAAC;IACxB,kBAAkB,GAAuE,IAAI,GAAG,EAAE,CAAC;IACnG,gBAAgB,CAAmB;IAE3C,YACmB,gBAAsC,EACtC,MAAe;QADf,qBAAgB,GAAhB,gBAAgB,CAAsB;QACtC,WAAM,GAAN,MAAM,CAAS;QAEhC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,KAAK,CAAC,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,iBAAiB,CACtB,OAAsB,EACtB,MAAmB,EACnB,SAAiB;QAEjB,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEvD,oEAAoE;YACpE,IAAI,YAAY,GAA0B,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBACnD,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,GAAG,YAAY,CAAC,uBAAuB,EAAE,CAAC;wBACtD,mCAAmC;wBACnC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,8CAA8C;oBAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,aAAa,CAAC,uBAAuB,CAAC,YAAY,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;YAE/F,0EAA0E;YAC1E,mEAAmE;YACnE,MAAM,kBAAkB,GAAY;gBAClC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;aAC/B,CAAC;YAEF,+DAA+D;YAC/D,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAExE,qEAAqE;YACrE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;YAC9G,6CAA6C;YAC7C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAC5D,CAAC;YAED,yCAAyC;YACzC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAE7F,sDAAsD;YACtD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,wBAAwB;YACxB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,yFAAyF;YACzF,MAAM,aAAa,GAAG,EAAE,CAAC;YAEzB,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,EAAE,IAAI,EAAE,gBAAiD,EAAE,CAAC;wBAClE,OAAO;oBACT,CAAC;oBAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,IAAI;wBAAE,MAAM;oBAEhB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,YAAY,IAAI,KAAK,CAAC;oBACtB,YAAY,IAAI,KAAK,CAAC;oBAEtB,iDAAiD;oBACjD,IAAI,UAAU,GAAG,IAAI,CAAC;oBACtB,OAAO,UAAU,EAAE,CAAC;wBAClB,UAAU,GAAG,KAAK,CAAC,CAAC,6CAA6C;wBAEjE,IAAI,UAAU,EAAE,CAAC;4BACf,sDAAsD;4BACtD,MAAM,SAAS,GAAG;gCAChB,sBAAsB,EAAM,wCAAwC;gCACpE,oBAAoB,EAAM,kBAAkB;gCAC5C,cAAc,EAAc,cAAc;gCAC1C,UAAU,EAAkB,uCAAuC;gCACnE,4BAA4B;gCAC5B,cAAc;gCACd,mBAAmB;gCACnB,SAAS;gCACT,iBAAiB;gCACjB,eAAe;gCACf,gBAAgB;gCAChB,cAAc;gCACd,oBAAoB;gCACpB,mBAAmB;gCACnB,0BAA0B;gCAC1B,uBAAuB;gCACvB,aAAa;gCACb,uBAAuB;gCACvB,oBAAoB;6BACrB,CAAC;4BAEF,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;4BAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;4BAEjB,0BAA0B;4BAC1B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gCAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACxC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;oCAClD,MAAM,GAAG,GAAG,CAAC;oCACb,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;gCAC1B,CAAC;4BACH,CAAC;4BAED,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gCAClB,mBAAmB;gCACnB,wEAAwE;gCACxE,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;gCACzD,UAAU,GAAG,KAAK,CAAC;gCACnB,UAAU,GAAG,IAAI,CAAC,CAAC,2CAA2C;4BAChE,CAAC;wBAEH,CAAC;6BAAM,CAAC;4BACN,mEAAmE;4BACnE,MAAM,WAAW,GAAG;gCAClB,qBAAqB,EAAO,iBAAiB;gCAC7C,eAAe,EAAa,uBAAuB;gCACnD,sBAAsB,EAAI,kBAAkB;gCAC5C,qBAAqB,EAAK,kBAAkB;gCAC5C,aAAa,EAAe,cAAc;gCAC1C,SAAS,EAAmB,aAAa;6BAC1C,CAAC;4BAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,qCAAqC;4BAEtE,4DAA4D;4BAC5D,kFAAkF;4BAClF,MAAM,SAAS,GAAG;gCAChB,sBAAsB,EAAM,iBAAiB;gCAC7C,mBAAmB,EAAO,kBAAkB;gCAC5C,oBAAoB,EAAM,kBAAkB;gCAC5C,cAAc,EAAc,cAAc;gCAC1C,UAAU,EAAkB,YAAY;6BACzC,CAAC;4BAEF,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;4BAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;4BACjB,IAAI,SAAS,GAA6C,IAAI,CAAC;4BAE/D,gCAAgC;4BAChC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,IAAuC,EAAE,EAAE;gCAClF,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC;oCACtD,QAAQ,GAAG,GAAG,CAAC;oCACf,QAAQ,GAAG,GAAG,CAAC;oCACf,SAAS,GAAG,IAAI,CAAC;gCACnB,CAAC;4BACH,CAAC,CAAC;4BAEF,qBAAqB;4BACrB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gCAChC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oCACxB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACpC,CAAC;qCAAM,CAAC;oCACN,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACpC,CAAC;4BACH,CAAC;4BAED,2FAA2F;4BAC3F,MAAM,aAAa,GAAG;gCACpB,WAAW;gCACX,gBAAgB;gCAChB,MAAM;gCACN,cAAc;gCACd,YAAY;gCACZ,aAAa;gCACb,WAAW;gCACX,iBAAiB;gCACjB,gBAAgB;gCAChB,uBAAuB;gCACvB,oBAAoB;gCACpB,UAAU;gCACV,oBAAoB;gCACpB,iBAAiB;6BAClB,CAAC;4BAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;gCACrC,4CAA4C;gCAC5C,MAAM,UAAU,GAAG,IAAI,QAAQ,GAAG,CAAC;gCACnC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gCACpD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;oCACtB,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCAChD,CAAC;gCAED,uDAAuD;gCACvD,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,IAAI,QAAQ,gBAAgB,EAAE,GAAG,CAAC,CAAC;gCACzE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC/D,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oCACnE,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACrE,CAAC;gCAED,yDAAyD;gCACzD,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,QAAQ,WAAW,EAAE,GAAG,CAAC,CAAC;gCAClE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAC3D,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oCAC/D,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACjE,CAAC;gCAED,iDAAiD;gCACjD,MAAM,gBAAgB,GAAG,KAAK,QAAQ,IAAI,CAAC;gCAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gCACvD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;oCACnB,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACnD,CAAC;4BACH,CAAC;4BAED,wBAAwB;4BACxB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC9C,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;4BAEtC,mBAAmB;4BACnB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gCAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCACxC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;4BAClC,CAAC;4BAED,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gCAC1C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oCAC1B,qCAAqC;oCACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oCAC5D,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;wCACpB,oEAAoE;wCACpE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;wCACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CAC1C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;wCAC3E,CAAC;wCAED,uEAAuE;wCACvE,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;wCAC3E,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACnC,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;4CAC3E,iFAAiF;4CACjF,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAAC;4CACtD,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;wCAChF,CAAC;wCAED,8DAA8D;wCAC9D,IAAI,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;wCACtE,oEAAoE;wCACpE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wCACjD,YAAY,GAAG,UAAU,CAAC;wCAC1B,UAAU,GAAG,IAAI,CAAC;oCACpB,CAAC;yCAAM,CAAC;wCACN,8CAA8C;wCAC9C,IAAI,YAAY,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;4CACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC;4CAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gDACjB,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gDACxD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oDAC3B,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;gDAC3E,CAAC;gDACD,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4CAClD,CAAC;wCACH,CAAC;wCACD,UAAU,GAAG,KAAK,CAAC;oCACrB,CAAC;gCACH,CAAC;qCAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oCAC/B,wCAAwC;oCACxC,8FAA8F;oCAC9F,IAAI,SAAS,GAAG,QAAQ,CAAC;oCACzB,mDAAmD;oCACnD,OAAO,SAAS,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzE,SAAS,EAAE,CAAC;oCACd,CAAC;oCAED,sCAAsC;oCACtC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oCACzD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC1C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;oCAC3E,CAAC;oCAED,8DAA8D;oCAC9D,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCAC3D,UAAU,GAAG,IAAI,CAAC;oCAClB,UAAU,GAAG,IAAI,CAAC;gCAEpB,CAAC;qCAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oCAC/B,wDAAwD;oCACxD,0DAA0D;oCAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC1C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;oCAC3E,CAAC;oCACD,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCAC3D,UAAU,GAAG,IAAI,CAAC;gCAEpB,CAAC;qCAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;oCACjC,qBAAqB;oCACrB,oCAAoC;oCACpC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC1C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;oCAC3E,CAAC;oCAED,oCAAoC;oCACpC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCAC3D,UAAU,GAAG,IAAI,CAAC;oCAClB,UAAU,GAAG,IAAI,CAAC;gCACpB,CAAC;4BAEH,CAAC;iCAAM,CAAC;gCACN,6BAA6B;gCAC7B,sEAAsE;gCACtE,IAAI,YAAY,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;oCACxC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC;oCACrD,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACxD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC1C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;oCAC3E,CAAC;oCACD,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gCAClD,CAAC;gCACD,2CAA2C;gCAC3C,UAAU,GAAG,KAAK,CAAC;4BACrB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,0CAA0C;gBAC1C,2CAA2C;gBAC3C,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3C,MAAM,EAAE,IAAI,EAAE,SAAoC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBAC5E,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YAED,wDAAwD;YACxD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAEpC,oCAAoC;YACpC,MAAM,aAAa,GAAY;gBAC7B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aAChC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE/B,yEAAyE;YACzE,gFAAgF;YAChF,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAEzD,8BAA8B;YAC9B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpF,iDAAiD;gBACjD,oEAAoE;gBACpE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;oBACrF,4DAA4D;oBAC5D,gDAAgD;oBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBACvC,MAAM,KAAK,CAAC;oBACd,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACrC,yDAAyD;wBACzD,MAAM,KAAK,CAAC;wBACZ,2CAA2C;wBAC3C,OAAO;oBACT,CAAC;oBACD,qDAAqD;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,MAAM;oBACJ,IAAI,EAAE,UAAsC;oBAC5C,KAAK,EAAE,MAAsB;iBAC9B,CAAC;YACJ,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;YAEhF,MAAM;gBACJ,IAAI,EAAE,OAAgC;gBACtC,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC;wBACvF,MAAM,EAAE,GAAG;qBACZ;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAsB;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE;gBACV,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;qBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC9D,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC;qBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;oBAC1E,iCAAiC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBACvC,OAAO,YAAY,QAAQ,EAAE,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtF,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,6BAA6B,CACzC,OAAkB,EAClB,oBAA4B,EAAE;QAG9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACrC,yDAAyD;YACzD,mDAAmD;YACnD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAE1B,6CAA6C;YAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,wEAAwE,EAAE,OAAO,CAAC,CAAC;gBAChG,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;YAED,0BAA0B;YAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI,CAC5D,CAAC;YAEF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzD,YAAY;YACZ,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAuC,CAAC;YAEtG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,gBAAgB,GAAG,iCAAiC,CAAC;QACzD,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,gBAAgB,GAAG,mBAAmB,CACpC,UAAU,EACV,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EACtB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,YAAY,CAAC,IAAI,CACpD,CAAC;YAEF,iEAAiE;YACjE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1D,kBAAkB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACvC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QAED,4EAA4E;QAC5E,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,IAAI,EAAE;YAC3D,CAAC,CAAC,GAAG,gBAAgB,OAAO,kBAAkB,EAAE;YAChD,CAAC,CAAC,gBAAgB,CAAC;QAErB,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,iBAAiB;YACxC,CAAC,CAAC,GAAG,2BAA2B,OAAO,iBAAiB,EAAE;YAC1D,CAAC,CAAC,2BAA2B,CAAC;QAEhC,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,8DAA8D;YAC9D,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,gBAAgB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,QAAiB;gBACvB,OAAO,EAAE,gBAAgB;aAC1B,CAAC;YACF,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;QAED,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,cAAc,CAAC;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,wBAAwB;QAEtD,+BAA+B;QAC/B,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CACrE,KAAK,EACL,QAAQ,EACR,eAAe,EACf,IAAI,CAAC,oCAAoC;SAC1C,CAAC;QAEF,oEAAoE;QACpE,MAAM,iBAAiB,GACrB,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,EAAE,GAAG,CAAC,IAAuC;YACjD,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;SACrF,CAAC,CAAC,CAAC;QAEN,gCAAgC;QAChC,IAAI,iBAAiB,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,CAAC,MAAM,MAAM,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;QACxG,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QACpC,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAE5C,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mCAAmC;QACnC,MAAM,gBAAgB,GAAG;YACvB,iBAAiB;YACjB,sBAAsB;YACtB,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,uBAAuB;YACvB,sBAAsB;YACtB,6BAA6B;YAC7B,0BAA0B;YAC1B,gBAAgB;YAChB,0BAA0B;YAC1B,uBAAuB;SACxB,CAAC;QAEF,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mCAAmC;QACnC,MAAM,qBAAqB,GAAG;YAC5B,iBAAiB;YACjB,sBAAsB;YACtB,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;YACjB,uBAAuB;YACvB,sBAAsB;YACtB,6BAA6B;YAC7B,0BAA0B;YAC1B,gBAAgB;YAChB,0BAA0B;YAC1B,uBAAuB;SACxB,CAAC;QAEF,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAe;QAC7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,0BAA0B,CAC/B,MAAmB,EACnB,SAAiB;QAEjB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,uCAAuC;YACvC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;YAEjE,wBAAwB;YACxB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAEhC,yDAAyD;YACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAEtE,4CAA4C;YAC5C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9E,8CAA8C;YAC9C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAC5E,kBAAkB,EAClB,WAAW,EACX,cAAc,CACf,CAAC;YAEF,8BAA8B;YAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,gDAAgD;YAChD,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,EAAE,IAAI,EAAE,gBAAiD,EAAE,CAAC;wBAClE,OAAO;oBACT,CAAC;oBAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,IAAI;wBAAE,MAAM;oBAEhB,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtD,YAAY,IAAI,KAAK,CAAC;oBACtB,YAAY,IAAI,KAAK,CAAC;oBAEtB,qCAAqC;oBACrC,OAAO,IAAI,EAAE,CAAC;wBACZ,IAAI,UAAU,EAAE,CAAC;4BACf,sBAAsB;4BACtB,MAAM,SAAS,GAAG,mBAAmB,CAAC;4BACtC,MAAM,SAAS,GAAG,oBAAoB,CAAC;4BACvC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BAE7C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;4BAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;4BAEjB,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;gCAChD,MAAM,GAAG,IAAI,CAAC;gCACd,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;4BAC9B,CAAC;iCAAM,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;gCACvB,MAAM,GAAG,IAAI,CAAC;gCACd,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;4BAC9B,CAAC;4BAED,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gCAClB,0DAA0D;gCAC1D,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;gCACzD,UAAU,GAAG,KAAK,CAAC;gCACnB,SAAS,CAAC,oCAAoC;4BAChD,CAAC;iCAAM,CAAC;gCACN,gDAAgD;gCAChD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;gCACjE,IAAI,YAAY,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;oCACrC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;gCAC5E,CAAC;gCACD,MAAM,CAAC,iBAAiB;4BAC1B,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,uCAAuC;4BACvC,MAAM,WAAW,GAAG,sBAAsB,CAAC;4BAC3C,MAAM,WAAW,GAAG,qBAAqB,CAAC;4BAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC;4BAEhC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;4BAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;4BAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAE9C,gCAAgC;4BAChC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;4BAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;4BACjB,IAAI,KAAK,GAAG,KAAK,CAAC;4BAElB,8BAA8B;4BAC9B,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,GAAY,EAAE,EAAE;gCAC7D,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC;oCACtD,QAAQ,GAAG,GAAG,CAAC;oCACf,QAAQ,GAAG,GAAG,CAAC;oCACf,KAAK,GAAG,GAAG,CAAC;gCACd,CAAC;4BACH,CAAC,CAAC;4BAEF,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;4BAC7C,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;4BAC7C,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BAE3C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gCACnB,oBAAoB;gCACpB,IAAI,KAAK,EAAE,CAAC;oCACV,2DAA2D;oCAC3D,6DAA6D;oCAC7D,IAAI,SAAS,GAAG,QAAQ,CAAC;oCACzB,OAAO,SAAS,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzE,SAAS,EAAE,CAAC;oCACd,CAAC;oCAED,mCAAmC;oCACnC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oCACzD,IAAI,WAAW,EAAE,CAAC;wCAChB,MAAM;4CACJ,IAAI,EAAE,SAAoC;4CAC1C,KAAK,EAAE,WAAW;yCACnB,CAAC;oCACJ,CAAC;oCAED,4BAA4B;oCAC5B,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCAC3D,UAAU,GAAG,IAAI,CAAC;oCAClB,SAAS;gCACX,CAAC;qCAAM,CAAC;oCACN,qBAAqB;oCACrB,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACxD,IAAI,WAAW,EAAE,CAAC;wCAChB,MAAM;4CACJ,IAAI,EAAE,SAAoC;4CAC1C,KAAK,EAAE,WAAW;yCACnB,CAAC;oCACJ,CAAC;oCAED,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;oCAC3D,UAAU,GAAG,IAAI,CAAC;oCAClB,SAAS;gCACX,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,wBAAwB;gCACxB,8EAA8E;gCAC9E,MAAM,OAAO,GAAG,EAAE,CAAC;gCACnB,IAAI,YAAY,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;oCAClC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC;oCAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oCACxD,MAAM;wCACJ,IAAI,EAAE,SAAoC;wCAC1C,KAAK,EAAE,WAAW;qCACnB,CAAC;oCACF,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gCAClD,CAAC;gCACD,MAAM,CAAC,iBAAiB;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,CAAC,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM;wBACJ,IAAI,EAAE,SAAoC;wBAC1C,KAAK,EAAE,YAAY;qBACpB,CAAC;gBACL,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,CAAC;YAED,yEAAyE;YACzE,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChF,gEAAgE;gBAChE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;oBACrF,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBACvC,MAAM,KAAK,CAAC;oBACd,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACrC,yDAAyD;wBACzD,MAAM,KAAK,CAAC;wBACZ,2CAA2C;wBAC3C,OAAO;oBACT,CAAC;oBACD,qDAAqD;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,MAAM;oBACJ,IAAI,EAAE,UAAsC;oBAC5C,KAAK,EAAE,MAAsB;iBAC9B,CAAC;YACJ,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,kEAAkE,EAAE,KAAK,CAAC,CAAC;YAEzF,MAAM;gBACJ,IAAI,EAAE,OAAgC;gBACtC,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0CAA0C;wBAC5F,MAAM,EAAE,GAAG;qBACZ;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,WAAyE;QACxG,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YAC/D,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO,GAAG,QAAQ,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,OAAO,sCAAsC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC;IAC/H,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,YAAoB;QAC7C,OAAO,sBAAsB,CAAC,YAAY,EAAE;YAC1C,KAAK,EAAE,KAAK;YACZ,sBAAsB,EAAE,CAAC;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { PartListUnion, FunctionDeclaration, Content, GenerateContentConfig, GenerateContentResponse } from '@google/genai';
7
+ import type { Config } from '../config/config.js';
8
+ import type { ServerGeminiStreamEvent, ChatCompressionInfo } from './turn.js';
9
+ import type { UserTierId } from '../code_assist/types.js';
10
+ import type { ContentGenerator } from './contentGenerator.js';
11
+ import { Turn } from './turn.js';
12
+ /**
13
+ * Interface for the encrypted chat service
14
+ */
15
+ export interface EncryptedChatService {
16
+ sendMessage(message: string, messageHistory?: Array<{
17
+ role: 'system' | 'user' | 'assistant';
18
+ content: string;
19
+ }>): Promise<ReadableStream<Uint8Array>>;
20
+ sendMessageWithToolResults(message: string, toolResults: Array<{
21
+ toolName: string;
22
+ result: unknown;
23
+ callId?: string;
24
+ }>, messageHistory?: Array<{
25
+ role: 'system' | 'user' | 'assistant';
26
+ content: string;
27
+ }>): Promise<ReadableStream<Uint8Array>>;
28
+ initialize(systemPrompt?: string): Promise<void>;
29
+ isReady(): boolean;
30
+ }
31
+ /**
32
+ * EncryptedGeminiClientWrapper provides the same interface as GeminiClient
33
+ * but routes requests through the encrypted provider and emits the correct events
34
+ * for tool execution. This is the main bridge that enables tool execution
35
+ * in the encrypted provider.
36
+ */
37
+ export declare class EncryptedGeminiClientWrapper {
38
+ private readonly config;
39
+ private bridge;
40
+ private tools;
41
+ private initialized;
42
+ constructor(encryptedService: EncryptedChatService, config: Config);
43
+ /**
44
+ * Initialize the encrypted client
45
+ */
46
+ initialize(): Promise<void>;
47
+ /**
48
+ * Set the available tools for this client
49
+ */
50
+ setTools(tools: FunctionDeclaration[]): void;
51
+ /**
52
+ * Add content to history
53
+ */
54
+ addHistory(content: Content): void;
55
+ /**
56
+ * Get current history
57
+ */
58
+ getHistory(): Content[];
59
+ /**
60
+ * Send a message and get streaming events that match the regular GeminiClient interface
61
+ * This is the key method that enables tool execution in the encrypted provider
62
+ */
63
+ sendMessageStream(request: PartListUnion, signal: AbortSignal, prompt_id: string, _turns?: number, _originalModel?: string): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
64
+ /**
65
+ * Check if client is ready
66
+ */
67
+ isReady(): boolean;
68
+ /**
69
+ * Get available tools
70
+ */
71
+ getTools(): FunctionDeclaration[];
72
+ /**
73
+ * Get user tier - required for UI compatibility
74
+ */
75
+ getUserTier(): UserTierId | undefined;
76
+ /**
77
+ * Check if client is initialized
78
+ */
79
+ isInitialized(): boolean;
80
+ /**
81
+ * Set history
82
+ */
83
+ setHistory(history: Content[], _options?: {
84
+ stripThoughts?: boolean;
85
+ }): void;
86
+ /**
87
+ * Add history item (async version)
88
+ */
89
+ addHistoryAsync(content: Content): Promise<void>;
90
+ /**
91
+ * Get content generator - stub implementation
92
+ */
93
+ getContentGenerator(): ContentGenerator;
94
+ /**
95
+ * Set tools (async version)
96
+ */
97
+ setToolsAsync(): Promise<void>;
98
+ /**
99
+ * Reset chat - clears history and reinitializes the encrypted service
100
+ */
101
+ resetChat(): Promise<void>;
102
+ /**
103
+ * Reinitialize - stub implementation
104
+ */
105
+ reinitialize(): Promise<void>;
106
+ /**
107
+ * Add directory context - stub implementation
108
+ */
109
+ addDirectoryContext(): Promise<void>;
110
+ /**
111
+ * Generate JSON - stub implementation
112
+ */
113
+ generateJson(_contents: Content[], _schema: Record<string, unknown>, _abortSignal: AbortSignal, _model?: string, _config?: GenerateContentConfig): Promise<Record<string, unknown>>;
114
+ /**
115
+ * Generate content - implementation for encrypted client
116
+ * This converts the request to a simple message and uses the encrypted service
117
+ */
118
+ generateContent(contents: Content[], _generationConfig: GenerateContentConfig, abortSignal: AbortSignal, _model?: string): Promise<GenerateContentResponse>;
119
+ /**
120
+ * Generate embedding - stub implementation
121
+ */
122
+ generateEmbedding(_texts: string[]): Promise<number[][]>;
123
+ /**
124
+ * Try compress chat - basic implementation for encrypted client
125
+ * Note: This provides a simplified compression by clearing history
126
+ * rather than the sophisticated compression used by regular clients
127
+ */
128
+ tryCompressChat(_prompt_id: string, _force?: boolean): Promise<ChatCompressionInfo>;
129
+ }
@@ -0,0 +1,305 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Turn, GeminiEventType, CompressionStatus } from './turn.js';
7
+ import { EncryptedGeminiClientBridge } from './encryptedGeminiClientBridge.js';
8
+ /**
9
+ * EncryptedGeminiClientWrapper provides the same interface as GeminiClient
10
+ * but routes requests through the encrypted provider and emits the correct events
11
+ * for tool execution. This is the main bridge that enables tool execution
12
+ * in the encrypted provider.
13
+ */
14
+ export class EncryptedGeminiClientWrapper {
15
+ config;
16
+ bridge;
17
+ tools = [];
18
+ initialized = false;
19
+ constructor(encryptedService, config) {
20
+ this.config = config;
21
+ this.bridge = new EncryptedGeminiClientBridge(encryptedService, config);
22
+ }
23
+ /**
24
+ * Initialize the encrypted client
25
+ */
26
+ async initialize() {
27
+ // Set tools from config if available
28
+ const toolRegistry = this.config.getToolRegistry();
29
+ if (toolRegistry) {
30
+ const toolDeclarations = toolRegistry.getFunctionDeclarations();
31
+ this.setTools(toolDeclarations);
32
+ }
33
+ this.initialized = true;
34
+ }
35
+ /**
36
+ * Set the available tools for this client
37
+ */
38
+ setTools(tools) {
39
+ this.tools = tools;
40
+ this.bridge.setTools(tools);
41
+ }
42
+ /**
43
+ * Add content to history
44
+ */
45
+ addHistory(content) {
46
+ this.bridge.addHistory(content);
47
+ }
48
+ /**
49
+ * Get current history
50
+ */
51
+ getHistory() {
52
+ return this.bridge.getHistory();
53
+ }
54
+ /**
55
+ * Send a message and get streaming events that match the regular GeminiClient interface
56
+ * This is the key method that enables tool execution in the encrypted provider
57
+ */
58
+ async *sendMessageStream(request, signal, prompt_id, _turns = 100, _originalModel) {
59
+ const turn = new EncryptedTurn(this.bridge, prompt_id);
60
+ try {
61
+ // Use the bridge to get streaming events
62
+ const eventStream = this.bridge.sendMessageStream(request, signal, prompt_id);
63
+ // Yield all events from the bridge and track tool calls
64
+ for await (const event of eventStream) {
65
+ if (event.type === 'tool_call_request') {
66
+ // Track pending tool calls in the turn object
67
+ turn.pendingToolCalls.push(event.value);
68
+ }
69
+ yield event;
70
+ }
71
+ // Return the Turn object with tracked tool calls
72
+ return turn;
73
+ }
74
+ catch (error) {
75
+ console.error('❌ EncryptedGeminiClientWrapper.sendMessageStream failed:', error);
76
+ // Yield error event
77
+ yield {
78
+ type: GeminiEventType.Error,
79
+ value: {
80
+ error: {
81
+ message: error instanceof Error ? error.message : 'Unknown error in encrypted provider',
82
+ status: 500
83
+ }
84
+ }
85
+ };
86
+ // Return a Turn object even on error
87
+ return turn;
88
+ }
89
+ }
90
+ /**
91
+ * Check if client is ready
92
+ */
93
+ isReady() {
94
+ return this.bridge.isReady();
95
+ }
96
+ /**
97
+ * Get available tools
98
+ */
99
+ getTools() {
100
+ return this.tools;
101
+ }
102
+ /**
103
+ * Get user tier - required for UI compatibility
104
+ */
105
+ getUserTier() {
106
+ // For encrypted providers, we don't have user tier information
107
+ // Return undefined to indicate it's not available
108
+ return undefined;
109
+ }
110
+ /**
111
+ * Check if client is initialized
112
+ */
113
+ isInitialized() {
114
+ return this.initialized;
115
+ }
116
+ /**
117
+ * Set history
118
+ */
119
+ setHistory(history, _options) {
120
+ // For now, just add each content to the bridge's history
121
+ // In a full implementation, this would properly set the history
122
+ for (const content of history) {
123
+ this.bridge.addHistory(content);
124
+ }
125
+ }
126
+ /**
127
+ * Add history item (async version)
128
+ */
129
+ async addHistoryAsync(content) {
130
+ this.bridge.addHistory(content);
131
+ }
132
+ /**
133
+ * Get content generator - stub implementation
134
+ */
135
+ getContentGenerator() {
136
+ throw new Error('getContentGenerator not implemented for encrypted client');
137
+ }
138
+ /**
139
+ * Set tools (async version)
140
+ */
141
+ async setToolsAsync() {
142
+ // Tools are already set during initialization
143
+ // This is a no-op for encrypted client
144
+ }
145
+ /**
146
+ * Reset chat - clears history and reinitializes the encrypted service
147
+ */
148
+ async resetChat() {
149
+ // Clear all history and state in the bridge
150
+ this.bridge.resetHistory();
151
+ // Reinitialize the encrypted service with fresh system prompt
152
+ const toolRegistry = this.config.getToolRegistry();
153
+ if (toolRegistry) {
154
+ const toolDeclarations = toolRegistry.getFunctionDeclarations();
155
+ this.setTools(toolDeclarations);
156
+ }
157
+ }
158
+ /**
159
+ * Reinitialize - stub implementation
160
+ */
161
+ async reinitialize() {
162
+ // For encrypted client, we just re-initialize the bridge
163
+ await this.initialize();
164
+ }
165
+ /**
166
+ * Add directory context - stub implementation
167
+ */
168
+ async addDirectoryContext() {
169
+ // Not implemented for encrypted client
170
+ }
171
+ /**
172
+ * Generate JSON - stub implementation
173
+ */
174
+ async generateJson(_contents, _schema, _abortSignal, _model, _config) {
175
+ throw new Error('generateJson not implemented for encrypted client');
176
+ }
177
+ /**
178
+ * Generate content - implementation for encrypted client
179
+ * This converts the request to a simple message and uses the encrypted service
180
+ */
181
+ async generateContent(contents, _generationConfig, abortSignal, _model) {
182
+ try {
183
+ // Convert contents to a simple text message
184
+ const messageText = contents
185
+ .map(content => {
186
+ if (!content.parts)
187
+ return '';
188
+ return content.parts
189
+ .filter(part => typeof part === 'object' && part !== null && 'text' in part)
190
+ .map(part => part.text)
191
+ .join('\n');
192
+ })
193
+ .join('\n\n');
194
+ if (!messageText.trim()) {
195
+ throw new Error('No text content found in generateContent request');
196
+ }
197
+ // Get the encrypted service from the bridge
198
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
199
+ const encryptedService = this.bridge.encryptedService;
200
+ if (!encryptedService) {
201
+ throw new Error('Encrypted service not available');
202
+ }
203
+ // Use the encrypted service to generate content
204
+ if (!encryptedService.isReady()) {
205
+ await encryptedService.initialize();
206
+ }
207
+ const stream = await encryptedService.sendMessage(messageText);
208
+ const reader = stream.getReader();
209
+ const decoder = new TextDecoder();
210
+ let fullResponse = '';
211
+ try {
212
+ while (true) {
213
+ if (abortSignal.aborted) {
214
+ throw new Error('Request aborted');
215
+ }
216
+ const { done, value } = await reader.read();
217
+ if (done)
218
+ break;
219
+ const chunk = decoder.decode(value, { stream: true });
220
+ fullResponse += chunk;
221
+ }
222
+ }
223
+ finally {
224
+ reader.releaseLock();
225
+ }
226
+ // Return a GenerateContentResponse-like object
227
+ return {
228
+ candidates: [
229
+ {
230
+ content: {
231
+ role: 'model',
232
+ parts: [{ text: fullResponse }]
233
+ },
234
+ finishReason: 'STOP',
235
+ index: 0
236
+ }
237
+ ]
238
+ };
239
+ }
240
+ catch (error) {
241
+ if (abortSignal.aborted) {
242
+ throw error;
243
+ }
244
+ throw new Error(`generateContent failed for encrypted client: ${error instanceof Error ? error.message : String(error)}`);
245
+ }
246
+ }
247
+ /**
248
+ * Generate embedding - stub implementation
249
+ */
250
+ async generateEmbedding(_texts) {
251
+ throw new Error('generateEmbedding not implemented for encrypted client');
252
+ }
253
+ /**
254
+ * Try compress chat - basic implementation for encrypted client
255
+ * Note: This provides a simplified compression by clearing history
256
+ * rather than the sophisticated compression used by regular clients
257
+ */
258
+ async tryCompressChat(_prompt_id, _force) {
259
+ const history = this.bridge.getHistory();
260
+ const originalTokenCount = history.length * 100; // Rough estimate since we can't count tokens accurately
261
+ // For encrypted clients, we'll do a simple "compression" by clearing most history
262
+ // but keeping the last few exchanges to maintain some context
263
+ const keepLastN = 4; // Keep last 2 exchanges (user + assistant)
264
+ if (history.length <= keepLastN) {
265
+ // Not enough history to compress
266
+ return {
267
+ originalTokenCount,
268
+ newTokenCount: originalTokenCount,
269
+ compressionStatus: CompressionStatus.NOOP
270
+ };
271
+ }
272
+ // Keep only the last few messages
273
+ const recentHistory = history.slice(-keepLastN);
274
+ // Clear and reset history
275
+ this.bridge.resetHistory();
276
+ // Add back the recent messages
277
+ for (const content of recentHistory) {
278
+ this.bridge.addHistory(content);
279
+ }
280
+ const newTokenCount = recentHistory.length * 100; // Rough estimate
281
+ return {
282
+ originalTokenCount,
283
+ newTokenCount,
284
+ compressionStatus: CompressionStatus.COMPRESSED
285
+ };
286
+ }
287
+ }
288
+ /**
289
+ * Minimal Turn implementation for encrypted provider
290
+ */
291
+ class EncryptedTurn extends Turn {
292
+ constructor(bridge, prompt_id) {
293
+ // Create a minimal chat object for the Turn constructor
294
+ const minimalChat = {
295
+ getHistory: () => bridge.getHistory(),
296
+ addHistory: (content) => bridge.addHistory(content),
297
+ setHistory: () => { },
298
+ setTools: () => { },
299
+ sendMessage: () => Promise.resolve({ text: '' }),
300
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
301
+ };
302
+ super(minimalChat, prompt_id);
303
+ }
304
+ }
305
+ //# sourceMappingURL=encryptedGeminiClientWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptedGeminiClientWrapper.js","sourceRoot":"","sources":["../../../src/core/encryptedGeminiClientWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { FunctionDeclaration, FinishReason } from '@google/genai';
7
+ import type { ServerGeminiStreamEvent, ToolCallRequestInfo } from './turn.js';
8
+ interface ToolProvider {
9
+ getTools(): FunctionDeclaration[];
10
+ }
11
+ /**
12
+ * EncryptedTurn handles the conversion of encrypted responses to the event-based system
13
+ * that the UI layer expects. It bridges the gap between the ContentGenerator interface
14
+ * and the ServerGeminiStreamEvent system.
15
+ */
16
+ export declare class EncryptedTurn {
17
+ private readonly toolProvider;
18
+ private readonly prompt_id;
19
+ readonly pendingToolCalls: ToolCallRequestInfo[];
20
+ finishReason: FinishReason | undefined;
21
+ constructor(toolProvider: ToolProvider, prompt_id: string);
22
+ /**
23
+ * Get debug responses (compatibility with Turn interface)
24
+ */
25
+ getDebugResponses(): unknown[];
26
+ /**
27
+ * Convert encrypted response text to ServerGeminiStreamEvent events
28
+ * This is the key bridge function that enables tool execution
29
+ */
30
+ processEncryptedResponse(responseText: string, _isStreaming?: boolean): AsyncGenerator<ServerGeminiStreamEvent>;
31
+ /**
32
+ * Parse tool calls from encrypted response text
33
+ */
34
+ private parseToolCallsFromResponse;
35
+ /**
36
+ * Create tools system prompt for the encrypted provider
37
+ */
38
+ static createToolsSystemPrompt(tools: FunctionDeclaration[], modelType?: string): string;
39
+ }
40
+ export {};
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { formatToolsForSystemPrompt } from '../encrypt/tool-formatter.js';
7
+ import { createEncryptedToolParser } from '../encrypt/tool-parser.js';
8
+ import { removeToolCallMarkup, detectModelType } from '../utils/textCleaning.js';
9
+ /**
10
+ * EncryptedTurn handles the conversion of encrypted responses to the event-based system
11
+ * that the UI layer expects. It bridges the gap between the ContentGenerator interface
12
+ * and the ServerGeminiStreamEvent system.
13
+ */
14
+ export class EncryptedTurn {
15
+ toolProvider;
16
+ prompt_id;
17
+ pendingToolCalls;
18
+ finishReason;
19
+ constructor(toolProvider, prompt_id) {
20
+ this.toolProvider = toolProvider;
21
+ this.prompt_id = prompt_id;
22
+ this.pendingToolCalls = [];
23
+ this.finishReason = undefined;
24
+ }
25
+ /**
26
+ * Get debug responses (compatibility with Turn interface)
27
+ */
28
+ getDebugResponses() {
29
+ return [];
30
+ }
31
+ /**
32
+ * Convert encrypted response text to ServerGeminiStreamEvent events
33
+ * This is the key bridge function that enables tool execution
34
+ */
35
+ async *processEncryptedResponse(responseText, _isStreaming = false) {
36
+ // Parse tool calls from the response
37
+ const toolCalls = this.parseToolCallsFromResponse(responseText);
38
+ if (toolCalls.length > 0) {
39
+ // First, yield any text content before tool calls
40
+ const modelType = detectModelType(responseText);
41
+ const result = removeToolCallMarkup(responseText, modelType, {
42
+ debug: true, // Enable debug logging to see what's happening
43
+ maxConsecutiveNewlines: 2,
44
+ trimEnds: false // Don't trim ends to preserve spacing
45
+ });
46
+ const cleanText = result.text;
47
+ if (cleanText.trim()) {
48
+ yield {
49
+ type: 'content',
50
+ value: cleanText
51
+ };
52
+ }
53
+ // Then yield tool call request events for each tool call
54
+ for (const toolCall of toolCalls) {
55
+ const toolCallRequest = {
56
+ callId: toolCall.id ?? `call_${Date.now()}_${Math.random().toString(16).slice(2)}`,
57
+ name: toolCall.name ?? 'unknown_tool',
58
+ args: toolCall.args,
59
+ isClientInitiated: false,
60
+ prompt_id: this.prompt_id,
61
+ };
62
+ yield {
63
+ type: 'tool_call_request',
64
+ value: toolCallRequest
65
+ };
66
+ }
67
+ }
68
+ else {
69
+ // No tool calls, just yield content
70
+ if (responseText.trim()) {
71
+ yield {
72
+ type: 'content',
73
+ value: responseText
74
+ };
75
+ }
76
+ }
77
+ // Always yield finished event at the end
78
+ yield {
79
+ type: 'finished',
80
+ value: 'STOP'
81
+ };
82
+ }
83
+ /**
84
+ * Parse tool calls from encrypted response text
85
+ */
86
+ parseToolCallsFromResponse(text) {
87
+ // Detect model type from response format
88
+ const modelType = detectModelType(text);
89
+ // Use the enhanced tool parser
90
+ const parser = createEncryptedToolParser();
91
+ const availableTools = this.toolProvider.getTools();
92
+ const parseResult = parser.parseComplete(text, availableTools, modelType);
93
+ if (!parseResult.success) {
94
+ return [];
95
+ }
96
+ const functionCalls = parseResult.toolCalls.map((tc, index) => ({
97
+ name: tc.name,
98
+ args: tc.arguments,
99
+ id: tc.id ?? `call_${Date.now()}_${index}`
100
+ }));
101
+ return functionCalls;
102
+ }
103
+ /**
104
+ * Create tools system prompt for the encrypted provider
105
+ */
106
+ static createToolsSystemPrompt(tools, modelType = 'minimax') {
107
+ if (!tools || tools.length === 0) {
108
+ return '';
109
+ }
110
+ const systemPrompt = formatToolsForSystemPrompt(tools, modelType);
111
+ return systemPrompt;
112
+ }
113
+ }
114
+ //# sourceMappingURL=encryptedTurn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptedTurn.js","sourceRoot":"","sources":["../../../src/core/encryptedTurn.ts"],"names":[],"mappings":"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"}