@machina.ai/cell-cli-core 1.20.2-rc1 → 1.22.5-rc1

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 (436) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/package.json +1 -1
  5. package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
  6. package/dist/src/agents/delegate-to-agent-tool.js +111 -0
  7. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
  8. package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
  9. package/dist/src/agents/delegate-to-agent-tool.test.js +133 -0
  10. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
  11. package/dist/src/agents/executor.js +1 -1
  12. package/dist/src/agents/executor.js.map +1 -1
  13. package/dist/src/agents/executor.test.js.map +1 -1
  14. package/dist/src/agents/registry.d.ts +15 -0
  15. package/dist/src/agents/registry.js +58 -2
  16. package/dist/src/agents/registry.js.map +1 -1
  17. package/dist/src/agents/registry.test.js +61 -0
  18. package/dist/src/agents/registry.test.js.map +1 -1
  19. package/dist/src/availability/errorClassification.d.ts +7 -0
  20. package/dist/src/availability/errorClassification.js +20 -0
  21. package/dist/src/availability/errorClassification.js.map +1 -0
  22. package/dist/src/availability/modelAvailabilityService.d.ts +1 -0
  23. package/dist/src/availability/modelAvailabilityService.js +3 -0
  24. package/dist/src/availability/modelAvailabilityService.js.map +1 -1
  25. package/dist/src/availability/modelPolicy.d.ts +8 -1
  26. package/dist/src/availability/policyCatalog.d.ts +1 -0
  27. package/dist/src/availability/policyCatalog.js +6 -7
  28. package/dist/src/availability/policyCatalog.js.map +1 -1
  29. package/dist/src/availability/policyCatalog.test.js +2 -2
  30. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  31. package/dist/src/availability/policyHelpers.d.ts +33 -3
  32. package/dist/src/availability/policyHelpers.js +113 -13
  33. package/dist/src/availability/policyHelpers.js.map +1 -1
  34. package/dist/src/availability/policyHelpers.test.js +133 -13
  35. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  36. package/dist/src/availability/testUtils.d.ts +10 -0
  37. package/dist/src/availability/testUtils.js +22 -0
  38. package/dist/src/availability/testUtils.js.map +1 -0
  39. package/dist/src/code_assist/experiments/client_metadata.js +2 -1
  40. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
  41. package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
  42. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
  43. package/dist/src/code_assist/oauth2.d.ts +2 -0
  44. package/dist/src/code_assist/oauth2.js +38 -12
  45. package/dist/src/code_assist/oauth2.js.map +1 -1
  46. package/dist/src/code_assist/oauth2.test.js +113 -6
  47. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  48. package/dist/src/commands/init.d.ts +7 -0
  49. package/dist/src/commands/init.js +53 -0
  50. package/dist/src/commands/init.js.map +1 -0
  51. package/dist/src/commands/init.test.d.ts +6 -0
  52. package/dist/src/commands/init.test.js +25 -0
  53. package/dist/src/commands/init.test.js.map +1 -0
  54. package/dist/src/commands/restore.d.ts +9 -0
  55. package/dist/src/commands/restore.js +46 -0
  56. package/dist/src/commands/restore.js.map +1 -0
  57. package/dist/src/commands/restore.test.d.ts +6 -0
  58. package/dist/src/commands/restore.test.js +137 -0
  59. package/dist/src/commands/restore.test.js.map +1 -0
  60. package/dist/src/commands/types.d.ts +41 -0
  61. package/dist/src/commands/types.js +7 -0
  62. package/dist/src/commands/types.js.map +1 -0
  63. package/dist/src/config/config.d.ts +29 -3
  64. package/dist/src/config/config.js +146 -29
  65. package/dist/src/config/config.js.map +1 -1
  66. package/dist/src/config/config.test.js +203 -9
  67. package/dist/src/config/config.test.js.map +1 -1
  68. package/dist/src/config/defaultModelConfigs.js +21 -0
  69. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  70. package/dist/src/config/models.d.ts +33 -11
  71. package/dist/src/config/models.js +82 -24
  72. package/dist/src/config/models.js.map +1 -1
  73. package/dist/src/config/models.test.js +70 -76
  74. package/dist/src/config/models.test.js.map +1 -1
  75. package/dist/src/confirmation-bus/message-bus.js +1 -0
  76. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  77. package/dist/src/confirmation-bus/types.d.ts +4 -0
  78. package/dist/src/core/baseLlmClient.d.ts +3 -1
  79. package/dist/src/core/baseLlmClient.js +40 -3
  80. package/dist/src/core/baseLlmClient.js.map +1 -1
  81. package/dist/src/core/baseLlmClient.test.js +184 -7
  82. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  83. package/dist/src/core/client.js +47 -13
  84. package/dist/src/core/client.js.map +1 -1
  85. package/dist/src/core/client.test.js +133 -6
  86. package/dist/src/core/client.test.js.map +1 -1
  87. package/dist/src/core/contentGenerator.js +5 -3
  88. package/dist/src/core/contentGenerator.js.map +1 -1
  89. package/dist/src/core/contentGenerator.test.js +29 -22
  90. package/dist/src/core/contentGenerator.test.js.map +1 -1
  91. package/dist/src/core/coreToolScheduler.d.ts +1 -1
  92. package/dist/src/core/coreToolScheduler.js +76 -34
  93. package/dist/src/core/coreToolScheduler.js.map +1 -1
  94. package/dist/src/core/coreToolScheduler.test.js +135 -37
  95. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  96. package/dist/src/core/geminiChat.js +60 -29
  97. package/dist/src/core/geminiChat.js.map +1 -1
  98. package/dist/src/core/geminiChat.test.js +236 -188
  99. package/dist/src/core/geminiChat.test.js.map +1 -1
  100. package/dist/src/core/geminiChat_network_retry.test.d.ts +6 -0
  101. package/dist/src/core/geminiChat_network_retry.test.js +198 -0
  102. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -0
  103. package/dist/src/core/logger.js.map +1 -1
  104. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -5
  105. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  106. package/dist/src/core/prompts.js +13 -11
  107. package/dist/src/core/prompts.js.map +1 -1
  108. package/dist/src/core/prompts.test.js +19 -8
  109. package/dist/src/core/prompts.test.js.map +1 -1
  110. package/dist/src/core/sessionHookTriggers.d.ts +28 -0
  111. package/dist/src/core/sessionHookTriggers.js +68 -0
  112. package/dist/src/core/sessionHookTriggers.js.map +1 -0
  113. package/dist/src/core/turn.d.ts +1 -0
  114. package/dist/src/core/turn.js +1 -1
  115. package/dist/src/core/turn.js.map +1 -1
  116. package/dist/src/fallback/handler.js +56 -115
  117. package/dist/src/fallback/handler.js.map +1 -1
  118. package/dist/src/fallback/handler.test.js +124 -278
  119. package/dist/src/fallback/handler.test.js.map +1 -1
  120. package/dist/src/generated/git-commit.d.ts +2 -2
  121. package/dist/src/generated/git-commit.js +2 -2
  122. package/dist/src/hooks/hookEventHandler.js +59 -1
  123. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  124. package/dist/src/hooks/hookEventHandler.test.js +8 -1
  125. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  126. package/dist/src/hooks/hookRegistry.d.ts +0 -7
  127. package/dist/src/hooks/hookRegistry.js +8 -21
  128. package/dist/src/hooks/hookRegistry.js.map +1 -1
  129. package/dist/src/hooks/hookRegistry.test.js +2 -7
  130. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  131. package/dist/src/hooks/hookRunner.js +12 -2
  132. package/dist/src/hooks/hookRunner.js.map +1 -1
  133. package/dist/src/hooks/hookRunner.test.js +1 -1
  134. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  135. package/dist/src/hooks/hookSystem.d.ts +0 -8
  136. package/dist/src/hooks/hookSystem.js +0 -18
  137. package/dist/src/hooks/hookSystem.js.map +1 -1
  138. package/dist/src/hooks/hookSystem.test.js +123 -18
  139. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  140. package/dist/src/hooks/index.d.ts +3 -1
  141. package/dist/src/hooks/index.js +3 -0
  142. package/dist/src/hooks/index.js.map +1 -1
  143. package/dist/src/hooks/types.d.ts +1 -2
  144. package/dist/src/hooks/types.js +0 -1
  145. package/dist/src/hooks/types.js.map +1 -1
  146. package/dist/src/ide/detect-ide.test.js +32 -1
  147. package/dist/src/ide/detect-ide.test.js.map +1 -1
  148. package/dist/src/ide/ide-client.js +2 -0
  149. package/dist/src/ide/ide-client.js.map +1 -1
  150. package/dist/src/ide/ide-installer.test.js +1 -1
  151. package/dist/src/ide/ide-installer.test.js.map +1 -1
  152. package/dist/src/index.d.ts +8 -0
  153. package/dist/src/index.js +8 -0
  154. package/dist/src/index.js.map +1 -1
  155. package/dist/src/mcp/oauth-provider.js.map +1 -1
  156. package/dist/src/output/json-formatter.d.ts +2 -2
  157. package/dist/src/output/json-formatter.js +6 -3
  158. package/dist/src/output/json-formatter.js.map +1 -1
  159. package/dist/src/output/json-formatter.test.js +37 -9
  160. package/dist/src/output/json-formatter.test.js.map +1 -1
  161. package/dist/src/output/stream-json-formatter.js +6 -0
  162. package/dist/src/output/stream-json-formatter.js.map +1 -1
  163. package/dist/src/output/stream-json-formatter.test.js +98 -100
  164. package/dist/src/output/stream-json-formatter.test.js.map +1 -1
  165. package/dist/src/output/types.d.ts +3 -0
  166. package/dist/src/output/types.js.map +1 -1
  167. package/dist/src/policy/config.js +97 -11
  168. package/dist/src/policy/config.js.map +1 -1
  169. package/dist/src/policy/persistence.test.d.ts +6 -0
  170. package/dist/src/policy/persistence.test.js +154 -0
  171. package/dist/src/policy/persistence.test.js.map +1 -0
  172. package/dist/src/policy/policies/agent.toml +31 -0
  173. package/dist/src/policy/policy-engine.d.ts +10 -1
  174. package/dist/src/policy/policy-engine.js +79 -5
  175. package/dist/src/policy/policy-engine.js.map +1 -1
  176. package/dist/src/policy/policy-engine.test.js +26 -2
  177. package/dist/src/policy/policy-engine.test.js.map +1 -1
  178. package/dist/src/policy/policy-updater.test.d.ts +6 -0
  179. package/dist/src/policy/policy-updater.test.js +116 -0
  180. package/dist/src/policy/policy-updater.test.js.map +1 -0
  181. package/dist/src/policy/shell-safety.test.d.ts +6 -0
  182. package/dist/src/policy/shell-safety.test.js +75 -0
  183. package/dist/src/policy/shell-safety.test.js.map +1 -0
  184. package/dist/src/policy/toml-loader.d.ts +11 -5
  185. package/dist/src/policy/toml-loader.js +38 -23
  186. package/dist/src/policy/toml-loader.js.map +1 -1
  187. package/dist/src/policy/toml-loader.test.js +28 -7
  188. package/dist/src/policy/toml-loader.test.js.map +1 -1
  189. package/dist/src/policy/types.d.ts +15 -0
  190. package/dist/src/resources/resource-registry.d.ts +30 -0
  191. package/dist/src/resources/resource-registry.js +57 -0
  192. package/dist/src/resources/resource-registry.js.map +1 -0
  193. package/dist/src/resources/resource-registry.test.d.ts +6 -0
  194. package/dist/src/resources/resource-registry.test.js +54 -0
  195. package/dist/src/resources/resource-registry.test.js.map +1 -0
  196. package/dist/src/routing/modelRouterService.js +0 -15
  197. package/dist/src/routing/modelRouterService.js.map +1 -1
  198. package/dist/src/routing/modelRouterService.test.js +0 -62
  199. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  200. package/dist/src/routing/strategies/classifierStrategy.js +10 -21
  201. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  202. package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
  203. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  204. package/dist/src/routing/strategies/fallbackStrategy.js +23 -12
  205. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  206. package/dist/src/routing/strategies/fallbackStrategy.test.js +69 -39
  207. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  208. package/dist/src/routing/strategies/overrideStrategy.js +4 -3
  209. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  210. package/dist/src/safety/checker-runner.js +17 -6
  211. package/dist/src/safety/checker-runner.js.map +1 -1
  212. package/dist/src/services/chatCompressionService.js +15 -1
  213. package/dist/src/services/chatCompressionService.js.map +1 -1
  214. package/dist/src/services/chatCompressionService.test.js +2 -0
  215. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  216. package/dist/src/services/chatRecordingService.d.ts +14 -0
  217. package/dist/src/services/chatRecordingService.js +37 -0
  218. package/dist/src/services/chatRecordingService.js.map +1 -1
  219. package/dist/src/services/fileSystemService.d.ts +0 -9
  220. package/dist/src/services/fileSystemService.js +0 -11
  221. package/dist/src/services/fileSystemService.js.map +1 -1
  222. package/dist/src/services/gitService.js +5 -0
  223. package/dist/src/services/gitService.js.map +1 -1
  224. package/dist/src/services/gitService.test.js +28 -0
  225. package/dist/src/services/gitService.test.js.map +1 -1
  226. package/dist/src/services/loopDetectionService.js +2 -2
  227. package/dist/src/services/loopDetectionService.js.map +1 -1
  228. package/dist/src/services/modelConfig.golden.test.js +32 -0
  229. package/dist/src/services/modelConfig.golden.test.js.map +1 -1
  230. package/dist/src/services/modelConfigService.d.ts +3 -0
  231. package/dist/src/services/modelConfigService.js +3 -2
  232. package/dist/src/services/modelConfigService.js.map +1 -1
  233. package/dist/src/services/modelConfigService.test.js +110 -0
  234. package/dist/src/services/modelConfigService.test.js.map +1 -1
  235. package/dist/src/services/modelConfigServiceTestUtils.d.ts +10 -0
  236. package/dist/src/services/modelConfigServiceTestUtils.js +17 -0
  237. package/dist/src/services/modelConfigServiceTestUtils.js.map +1 -0
  238. package/dist/src/services/sessionSummaryService.d.ts +28 -0
  239. package/dist/src/services/sessionSummaryService.js +131 -0
  240. package/dist/src/services/sessionSummaryService.js.map +1 -0
  241. package/dist/src/services/sessionSummaryService.test.d.ts +6 -0
  242. package/dist/src/services/sessionSummaryService.test.js +785 -0
  243. package/dist/src/services/sessionSummaryService.test.js.map +1 -0
  244. package/dist/src/services/sessionSummaryUtils.d.ts +16 -0
  245. package/dist/src/services/sessionSummaryUtils.js +129 -0
  246. package/dist/src/services/sessionSummaryUtils.js.map +1 -0
  247. package/dist/src/services/sessionSummaryUtils.test.d.ts +6 -0
  248. package/dist/src/services/sessionSummaryUtils.test.js +137 -0
  249. package/dist/src/services/sessionSummaryUtils.test.js.map +1 -0
  250. package/dist/src/services/shellExecutionService.js +28 -22
  251. package/dist/src/services/shellExecutionService.js.map +1 -1
  252. package/dist/src/services/shellExecutionService.test.js +46 -4
  253. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  254. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
  255. package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
  256. package/dist/src/telemetry/activity-detector.test.js.map +1 -1
  257. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -0
  258. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +28 -5
  259. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  260. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +67 -1
  261. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  262. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -0
  263. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +3 -1
  264. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  265. package/dist/src/telemetry/config.js +2 -0
  266. package/dist/src/telemetry/config.js.map +1 -1
  267. package/dist/src/telemetry/config.test.js +25 -0
  268. package/dist/src/telemetry/config.test.js.map +1 -1
  269. package/dist/src/telemetry/gcp-exporters.d.ts +4 -3
  270. package/dist/src/telemetry/gcp-exporters.js +8 -4
  271. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  272. package/dist/src/telemetry/index.d.ts +1 -1
  273. package/dist/src/telemetry/index.js +1 -1
  274. package/dist/src/telemetry/index.js.map +1 -1
  275. package/dist/src/telemetry/loggers.d.ts +2 -1
  276. package/dist/src/telemetry/loggers.js +345 -335
  277. package/dist/src/telemetry/loggers.js.map +1 -1
  278. package/dist/src/telemetry/loggers.test.js +20 -5
  279. package/dist/src/telemetry/loggers.test.js.map +1 -1
  280. package/dist/src/telemetry/metrics.test.js.map +1 -1
  281. package/dist/src/telemetry/sdk.d.ts +9 -2
  282. package/dist/src/telemetry/sdk.js +143 -17
  283. package/dist/src/telemetry/sdk.js.map +1 -1
  284. package/dist/src/telemetry/sdk.test.js +130 -28
  285. package/dist/src/telemetry/sdk.test.js.map +1 -1
  286. package/dist/src/telemetry/startupProfiler.js +26 -3
  287. package/dist/src/telemetry/startupProfiler.js.map +1 -1
  288. package/dist/src/telemetry/startupProfiler.test.js +49 -7
  289. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  290. package/dist/src/telemetry/telemetry.test.js +10 -3
  291. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  292. package/dist/src/telemetry/trace.js.map +1 -1
  293. package/dist/src/telemetry/types.d.ts +31 -6
  294. package/dist/src/telemetry/types.js +47 -8
  295. package/dist/src/telemetry/types.js.map +1 -1
  296. package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
  297. package/dist/src/telemetry/uiTelemetry.js +2 -0
  298. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  299. package/dist/src/telemetry/uiTelemetry.test.js +4 -0
  300. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  301. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  302. package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
  303. package/dist/src/tools/confirmation-policy.test.js +152 -0
  304. package/dist/src/tools/confirmation-policy.test.js.map +1 -0
  305. package/dist/src/tools/edit.js +5 -0
  306. package/dist/src/tools/edit.js.map +1 -1
  307. package/dist/src/tools/edit.test.js.map +1 -1
  308. package/dist/src/tools/grep.js.map +1 -1
  309. package/dist/src/tools/mcp-client-manager.d.ts +2 -1
  310. package/dist/src/tools/mcp-client-manager.js +20 -4
  311. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  312. package/dist/src/tools/mcp-client-manager.test.js +13 -10
  313. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  314. package/dist/src/tools/mcp-client.d.ts +39 -3
  315. package/dist/src/tools/mcp-client.js +433 -168
  316. package/dist/src/tools/mcp-client.js.map +1 -1
  317. package/dist/src/tools/mcp-client.test.js +648 -28
  318. package/dist/src/tools/mcp-client.test.js.map +1 -1
  319. package/dist/src/tools/mcp-tool.js +13 -0
  320. package/dist/src/tools/mcp-tool.js.map +1 -1
  321. package/dist/src/tools/mcp-tool.test.js +25 -0
  322. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  323. package/dist/src/tools/memoryTool.js +1 -0
  324. package/dist/src/tools/memoryTool.js.map +1 -1
  325. package/dist/src/tools/modifiable-tool.js.map +1 -1
  326. package/dist/src/tools/modifiable-tool.test.js +22 -13
  327. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  328. package/dist/src/tools/read-file.js +1 -1
  329. package/dist/src/tools/read-file.js.map +1 -1
  330. package/dist/src/tools/read-file.test.js.map +1 -1
  331. package/dist/src/tools/read-many-files.js +6 -4
  332. package/dist/src/tools/read-many-files.js.map +1 -1
  333. package/dist/src/tools/read-many-files.test.js +1 -1
  334. package/dist/src/tools/read-many-files.test.js.map +1 -1
  335. package/dist/src/tools/shell.d.ts +2 -1
  336. package/dist/src/tools/shell.js +15 -1
  337. package/dist/src/tools/shell.js.map +1 -1
  338. package/dist/src/tools/shell.test.js +2 -1
  339. package/dist/src/tools/shell.test.js.map +1 -1
  340. package/dist/src/tools/smart-edit.js +5 -0
  341. package/dist/src/tools/smart-edit.js.map +1 -1
  342. package/dist/src/tools/smart-edit.test.js.map +1 -1
  343. package/dist/src/tools/tool-names.d.ts +2 -0
  344. package/dist/src/tools/tool-names.js +2 -0
  345. package/dist/src/tools/tool-names.js.map +1 -1
  346. package/dist/src/tools/tools.d.ts +19 -0
  347. package/dist/src/tools/tools.js +29 -8
  348. package/dist/src/tools/tools.js.map +1 -1
  349. package/dist/src/tools/web-fetch.js +17 -4
  350. package/dist/src/tools/web-fetch.js.map +1 -1
  351. package/dist/src/tools/web-fetch.test.js +1 -0
  352. package/dist/src/tools/web-fetch.test.js.map +1 -1
  353. package/dist/src/tools/write-file.js +5 -0
  354. package/dist/src/tools/write-file.js.map +1 -1
  355. package/dist/src/tools/write-file.test.js.map +1 -1
  356. package/dist/src/utils/bfsFileSearch.d.ts +8 -0
  357. package/dist/src/utils/bfsFileSearch.js +63 -23
  358. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  359. package/dist/src/utils/bfsFileSearch.test.js +65 -1
  360. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  361. package/dist/src/utils/checkpointUtils.d.ts +82 -0
  362. package/dist/src/utils/checkpointUtils.js +117 -0
  363. package/dist/src/utils/checkpointUtils.js.map +1 -0
  364. package/dist/src/utils/checkpointUtils.test.d.ts +6 -0
  365. package/dist/src/utils/checkpointUtils.test.js +229 -0
  366. package/dist/src/utils/checkpointUtils.test.js.map +1 -0
  367. package/dist/src/utils/debugLogger.d.ts +3 -0
  368. package/dist/src/utils/debugLogger.js +27 -0
  369. package/dist/src/utils/debugLogger.js.map +1 -1
  370. package/dist/src/utils/editCorrector.test.js +4 -0
  371. package/dist/src/utils/editCorrector.test.js.map +1 -1
  372. package/dist/src/utils/editor.d.ts +9 -1
  373. package/dist/src/utils/editor.js +23 -14
  374. package/dist/src/utils/editor.js.map +1 -1
  375. package/dist/src/utils/errors.d.ts +8 -0
  376. package/dist/src/utils/errors.js +39 -2
  377. package/dist/src/utils/errors.js.map +1 -1
  378. package/dist/src/utils/errors.test.d.ts +6 -0
  379. package/dist/src/utils/errors.test.js +155 -0
  380. package/dist/src/utils/errors.test.js.map +1 -0
  381. package/dist/src/utils/extensionLoader.d.ts +2 -2
  382. package/dist/src/utils/extensionLoader.js +5 -6
  383. package/dist/src/utils/extensionLoader.js.map +1 -1
  384. package/dist/src/utils/extensionLoader.test.js +11 -0
  385. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  386. package/dist/src/utils/fetch.d.ts +1 -1
  387. package/dist/src/utils/fetch.js +3 -3
  388. package/dist/src/utils/fetch.js.map +1 -1
  389. package/dist/src/utils/fileUtils.test.js +15 -0
  390. package/dist/src/utils/fileUtils.test.js.map +1 -1
  391. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  392. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  393. package/dist/src/utils/flashFallback.test.js +1 -1
  394. package/dist/src/utils/flashFallback.test.js.map +1 -1
  395. package/dist/src/utils/googleErrors.js +31 -18
  396. package/dist/src/utils/googleErrors.js.map +1 -1
  397. package/dist/src/utils/googleErrors.test.js +10 -2
  398. package/dist/src/utils/googleErrors.test.js.map +1 -1
  399. package/dist/src/utils/googleQuotaErrors.d.ts +3 -3
  400. package/dist/src/utils/googleQuotaErrors.js +32 -6
  401. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  402. package/dist/src/utils/googleQuotaErrors.test.js +94 -2
  403. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  404. package/dist/src/utils/nextSpeakerChecker.test.js +4 -0
  405. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  406. package/dist/src/utils/pathCorrector.js +12 -2
  407. package/dist/src/utils/pathCorrector.js.map +1 -1
  408. package/dist/src/utils/pathCorrector.test.js +6 -2
  409. package/dist/src/utils/pathCorrector.test.js.map +1 -1
  410. package/dist/src/utils/retry.d.ts +11 -0
  411. package/dist/src/utils/retry.js +54 -13
  412. package/dist/src/utils/retry.js.map +1 -1
  413. package/dist/src/utils/retry.test.js +170 -10
  414. package/dist/src/utils/retry.test.js.map +1 -1
  415. package/dist/src/utils/shell-permissions.d.ts +52 -0
  416. package/dist/src/utils/shell-permissions.js +188 -0
  417. package/dist/src/utils/shell-permissions.js.map +1 -0
  418. package/dist/src/utils/shell-permissions.test.d.ts +6 -0
  419. package/dist/src/utils/shell-permissions.test.js +347 -0
  420. package/dist/src/utils/shell-permissions.test.js.map +1 -0
  421. package/dist/src/utils/shell-utils.d.ts +10 -47
  422. package/dist/src/utils/shell-utils.js +1 -182
  423. package/dist/src/utils/shell-utils.js.map +1 -1
  424. package/dist/src/utils/shell-utils.test.js +1 -288
  425. package/dist/src/utils/shell-utils.test.js.map +1 -1
  426. package/dist/src/utils/terminalSerializer.test.js +17 -0
  427. package/dist/src/utils/terminalSerializer.test.js.map +1 -1
  428. package/dist/src/utils/tool-utils.js.map +1 -1
  429. package/dist/src/utils/version.d.ts +6 -0
  430. package/dist/src/utils/version.js +15 -0
  431. package/dist/src/utils/version.js.map +1 -0
  432. package/dist/src/utils/version.test.d.ts +6 -0
  433. package/dist/src/utils/version.test.js +39 -0
  434. package/dist/src/utils/version.test.js.map +1 -0
  435. package/dist/tsconfig.tsbuildinfo +1 -1
  436. package/package.json +1 -1
@@ -5,10 +5,9 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
7
7
  import { handleFallback } from './handler.js';
8
+ import { createAvailabilityServiceMock } from '../availability/testUtils.js';
8
9
  import { AuthType } from '../core/contentGenerator.js';
9
- import { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, } from '../config/models.js';
10
- import { logFlashFallback } from '../telemetry/index.js';
11
- import { ModelNotFoundError } from '../utils/httpErrors.js';
10
+ import { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_MODEL_AUTO, } from '../config/models.js';
12
11
  import { openBrowserSecurely } from '../utils/secure-browser-launcher.js';
13
12
  import { coreEvents } from '../utils/events.js';
14
13
  import { debugLogger } from '../utils/debugLogger.js';
@@ -24,32 +23,34 @@ vi.mock('../telemetry/index.js', () => ({
24
23
  vi.mock('../utils/secure-browser-launcher.js', () => ({
25
24
  openBrowserSecurely: vi.fn(),
26
25
  }));
26
+ // Mock debugLogger to prevent console pollution and allow spying
27
+ vi.mock('../utils/debugLogger.js', () => ({
28
+ debugLogger: {
29
+ warn: vi.fn(),
30
+ error: vi.fn(),
31
+ log: vi.fn(),
32
+ },
33
+ }));
27
34
  const MOCK_PRO_MODEL = DEFAULT_GEMINI_MODEL;
28
35
  const FALLBACK_MODEL = DEFAULT_GEMINI_FLASH_MODEL;
29
36
  const AUTH_OAUTH = AuthType.LOGIN_WITH_GOOGLE;
30
37
  const AUTH_API_KEY = AuthType.USE_GEMINI;
31
- function createAvailabilityMock(result) {
32
- return {
33
- markTerminal: vi.fn(),
34
- markHealthy: vi.fn(),
35
- markRetryOncePerTurn: vi.fn(),
36
- consumeStickyAttempt: vi.fn(),
37
- snapshot: vi.fn(),
38
- selectFirstAvailable: vi.fn().mockReturnValue(result),
39
- resetTurn: vi.fn(),
40
- };
41
- }
42
38
  const createMockConfig = (overrides = {}) => ({
43
39
  isInFallbackMode: vi.fn(() => false),
44
40
  setFallbackMode: vi.fn(),
45
- isModelAvailabilityServiceEnabled: vi.fn(() => false),
41
+ isModelAvailabilityServiceEnabled: vi.fn(() => true),
46
42
  isPreviewModelFallbackMode: vi.fn(() => false),
47
43
  setPreviewModelFallbackMode: vi.fn(),
48
44
  isPreviewModelBypassMode: vi.fn(() => false),
49
45
  setPreviewModelBypassMode: vi.fn(),
50
46
  fallbackHandler: undefined,
51
47
  getFallbackModelHandler: vi.fn(),
52
- getModelAvailabilityService: vi.fn(() => createAvailabilityMock({ selectedModel: FALLBACK_MODEL, skipped: [] })),
48
+ setActiveModel: vi.fn(),
49
+ getModelAvailabilityService: vi.fn(() => createAvailabilityServiceMock({
50
+ selectedModel: FALLBACK_MODEL,
51
+ skipped: [],
52
+ })),
53
+ getActiveModel: vi.fn(() => MOCK_PRO_MODEL),
53
54
  getModel: vi.fn(() => MOCK_PRO_MODEL),
54
55
  getPreviewFeatures: vi.fn(() => false),
55
56
  getUserTier: vi.fn(() => undefined),
@@ -68,6 +69,11 @@ describe('handleFallback', () => {
68
69
  mockConfig = createMockConfig({
69
70
  fallbackModelHandler: mockHandler,
70
71
  });
72
+ // Explicitly set the property to ensure it's present for legacy checks
73
+ mockConfig.fallbackModelHandler = mockHandler;
74
+ // We mocked debugLogger, so we don't need to spy on console.error for handler failures
75
+ // But tests might check console.error usage in legacy code if any?
76
+ // The handler uses console.error in legacyHandleFallback.
71
77
  consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
72
78
  fallbackEventSpy = vi.spyOn(coreEvents, 'emitFallbackModeChanged');
73
79
  });
@@ -75,258 +81,39 @@ describe('handleFallback', () => {
75
81
  consoleErrorSpy.mockRestore();
76
82
  fallbackEventSpy.mockRestore();
77
83
  });
78
- it('should return null immediately if authType is not OAuth', async () => {
79
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_API_KEY);
80
- expect(result).toBeNull();
81
- expect(mockHandler).not.toHaveBeenCalled();
82
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
83
- });
84
- it('should still consult the handler if the failed model is the fallback model', async () => {
85
- mockHandler.mockResolvedValue('stop');
86
- const result = await handleFallback(mockConfig, FALLBACK_MODEL, // Failed model is Flash
87
- AUTH_OAUTH);
88
- expect(result).toBe(false);
89
- expect(mockHandler).toHaveBeenCalled();
90
- });
91
- it('should return null if no fallbackHandler is injected in config', async () => {
92
- const configWithoutHandler = createMockConfig({
93
- fallbackModelHandler: undefined,
94
- });
95
- const result = await handleFallback(configWithoutHandler, MOCK_PRO_MODEL, AUTH_OAUTH);
96
- expect(result).toBeNull();
97
- });
98
- describe('when handler returns "retry_always"', () => {
99
- it('should activate fallback mode, log telemetry, and return true', async () => {
100
- mockHandler.mockResolvedValue('retry_always');
101
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
102
- expect(result).toBe(true);
103
- expect(mockConfig.setFallbackMode).toHaveBeenCalledWith(true);
104
- expect(logFlashFallback).toHaveBeenCalled();
105
- });
106
- });
107
- describe('when handler returns "stop"', () => {
108
- it('should activate fallback mode, log telemetry, and return false', async () => {
109
- mockHandler.mockResolvedValue('stop');
110
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
111
- expect(result).toBe(false);
112
- expect(mockConfig.setFallbackMode).toHaveBeenCalledWith(true);
113
- expect(logFlashFallback).toHaveBeenCalled();
114
- });
115
- });
116
- it('should return false without toggling fallback when handler returns "retry_later"', async () => {
117
- mockHandler.mockResolvedValue('retry_later');
118
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
119
- expect(result).toBe(false);
120
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
121
- expect(logFlashFallback).not.toHaveBeenCalled();
122
- expect(fallbackEventSpy).not.toHaveBeenCalled();
123
- });
124
- it('should launch upgrade flow and avoid fallback mode when handler returns "upgrade"', async () => {
125
- mockHandler.mockResolvedValue('upgrade');
126
- vi.mocked(openBrowserSecurely).mockResolvedValue(undefined);
127
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
128
- expect(result).toBe(false);
129
- expect(openBrowserSecurely).toHaveBeenCalledWith('https://goo.gle/set-up-gemini-code-assist');
130
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
131
- expect(logFlashFallback).not.toHaveBeenCalled();
132
- expect(fallbackEventSpy).not.toHaveBeenCalled();
133
- });
134
- it('should log a warning and continue when upgrade flow fails to open a browser', async () => {
135
- mockHandler.mockResolvedValue('upgrade');
136
- const debugWarnSpy = vi.spyOn(debugLogger, 'warn');
137
- const consoleWarnSpy = vi
138
- .spyOn(console, 'warn')
139
- .mockImplementation(() => { });
140
- vi.mocked(openBrowserSecurely).mockRejectedValue(new Error('blocked'));
141
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
142
- expect(result).toBe(false);
143
- expect(debugWarnSpy).toHaveBeenCalledWith('Failed to open browser automatically:', 'blocked');
144
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
145
- expect(fallbackEventSpy).not.toHaveBeenCalled();
146
- debugWarnSpy.mockRestore();
147
- consoleWarnSpy.mockRestore();
148
- });
149
- describe('when handler returns an unexpected value', () => {
150
- it('should log an error and return null', async () => {
151
- mockHandler.mockResolvedValue(null);
152
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
153
- expect(result).toBeNull();
154
- expect(consoleErrorSpy).toHaveBeenCalledWith('Fallback UI handler failed:', new Error('Unexpected fallback intent received from fallbackModelHandler: "null"'));
155
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
156
- });
157
- });
158
- it('should pass the correct context (failedModel, fallbackModel, error) to the handler', async () => {
159
- const mockError = new Error('Quota Exceeded');
160
- mockHandler.mockResolvedValue('retry_always');
161
- await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH, mockError);
162
- expect(mockHandler).toHaveBeenCalledWith(MOCK_PRO_MODEL, FALLBACK_MODEL, mockError);
163
- });
164
- it('should not call setFallbackMode or log telemetry if already in fallback mode', async () => {
165
- // Setup config where fallback mode is already active
166
- const activeFallbackConfig = createMockConfig({
167
- fallbackModelHandler: mockHandler,
168
- isInFallbackMode: vi.fn(() => true), // Already active
169
- setFallbackMode: vi.fn(),
170
- });
171
- mockHandler.mockResolvedValue('retry_always');
172
- const result = await handleFallback(activeFallbackConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
173
- // Should still return true to allow the retry (which will use the active fallback mode)
174
- expect(result).toBe(true);
175
- // Should still consult the handler
176
- expect(mockHandler).toHaveBeenCalled();
177
- // But should not mutate state or log telemetry again
178
- expect(activeFallbackConfig.setFallbackMode).not.toHaveBeenCalled();
179
- expect(logFlashFallback).not.toHaveBeenCalled();
180
- });
181
- it('should catch errors from the handler, log an error, and return null', async () => {
182
- const handlerError = new Error('UI interaction failed');
183
- mockHandler.mockRejectedValue(handlerError);
184
- const result = await handleFallback(mockConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
185
- expect(result).toBeNull();
186
- expect(consoleErrorSpy).toHaveBeenCalledWith('Fallback UI handler failed:', handlerError);
187
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
188
- });
189
- describe('Preview Model Fallback Logic', () => {
190
- const previewModel = PREVIEW_GEMINI_MODEL;
191
- it('should only set Preview Model bypass mode on retryable quota failure', async () => {
192
- const mockGoogleApiError = {
193
- code: 429,
194
- message: 'mock error',
195
- details: [],
196
- };
197
- const retryableQuotaError = new RetryableQuotaError('Capacity error', mockGoogleApiError, 5);
198
- await handleFallback(mockConfig, previewModel, AUTH_OAUTH, retryableQuotaError);
199
- expect(mockConfig.setPreviewModelBypassMode).toHaveBeenCalledWith(true);
200
- });
201
- it('should not set Preview Model bypass mode on non-retryable quota failure', async () => {
202
- const mockGoogleApiError = {
203
- code: 429,
204
- message: 'mock error',
205
- details: [],
206
- };
207
- const terminalQuotaError = new TerminalQuotaError('quota error', mockGoogleApiError, 5);
208
- await handleFallback(mockConfig, previewModel, AUTH_OAUTH, terminalQuotaError);
209
- expect(mockConfig.setPreviewModelBypassMode).not.toHaveBeenCalled();
210
- });
211
- it('should silently retry if Preview Model fallback mode is already active and error is retryable error', async () => {
212
- vi.spyOn(mockConfig, 'isPreviewModelFallbackMode').mockReturnValue(true);
213
- const mockGoogleApiError = {
214
- code: 429,
215
- message: 'mock error',
216
- details: [],
217
- };
218
- const retryableQuotaError = new RetryableQuotaError('Capacity error', mockGoogleApiError, 5);
219
- const result = await handleFallback(mockConfig, previewModel, AUTH_OAUTH, retryableQuotaError);
220
- expect(result).toBe(true);
221
- expect(mockHandler).not.toHaveBeenCalled();
222
- });
223
- it('should activate Preview Model fallback mode when handler returns "retry_always" and is RetryableQuotaError', async () => {
224
- mockHandler.mockResolvedValue('retry_always');
225
- const mockGoogleApiError = {
226
- code: 429,
227
- message: 'mock error',
228
- details: [],
229
- };
230
- const retryableQuotaError = new RetryableQuotaError('Capacity error', mockGoogleApiError, 5);
231
- const result = await handleFallback(mockConfig, previewModel, AUTH_OAUTH, retryableQuotaError);
232
- expect(result).toBe(true);
233
- expect(mockConfig.setPreviewModelBypassMode).toHaveBeenCalledWith(true);
234
- expect(mockConfig.setPreviewModelFallbackMode).toHaveBeenCalledWith(true);
235
- });
236
- it('should activate regular fallback when handler returns "retry_always" and is TerminalQuotaError', async () => {
237
- mockHandler.mockResolvedValue('retry_always');
238
- const mockGoogleApiError = {
239
- code: 503,
240
- message: 'mock error',
241
- details: [],
242
- };
243
- const terminalError = new TerminalQuotaError('Quota error', mockGoogleApiError, 5);
244
- const result = await handleFallback(mockConfig, previewModel, AUTH_OAUTH, terminalError);
245
- expect(result).toBe(true);
246
- expect(mockConfig.setPreviewModelFallbackMode).not.toBeCalled();
247
- expect(mockConfig.setFallbackMode).toHaveBeenCalledWith(true);
248
- });
249
- it('should NOT set fallback mode if user chooses "retry_once"', async () => {
250
- const mockGoogleApiError = {
251
- code: 429,
252
- message: 'mock error',
253
- details: [],
254
- };
255
- const terminalQuotaError = new TerminalQuotaError('quota error', mockGoogleApiError, 5);
256
- mockHandler.mockResolvedValue('retry_once');
257
- const result = await handleFallback(mockConfig, PREVIEW_GEMINI_MODEL, AuthType.LOGIN_WITH_GOOGLE, terminalQuotaError);
258
- expect(result).toBe(true);
259
- expect(mockConfig.setPreviewModelBypassMode).not.toHaveBeenCalled();
260
- expect(mockConfig.setPreviewModelFallbackMode).not.toHaveBeenCalled();
261
- expect(mockConfig.setFallbackMode).not.toHaveBeenCalled();
262
- });
263
- it('should pass DEFAULT_GEMINI_MODEL as fallback when Preview Model fails with Retryable Error', async () => {
264
- const mockFallbackHandler = vi.fn().mockResolvedValue('stop');
265
- vi.mocked(mockConfig.fallbackModelHandler).mockImplementation(mockFallbackHandler);
266
- const mockGoogleApiError = {
267
- code: 429,
268
- message: 'mock error',
269
- details: [],
270
- };
271
- const retryableQuotaError = new RetryableQuotaError('Capacity error', mockGoogleApiError, 5);
272
- await handleFallback(mockConfig, PREVIEW_GEMINI_MODEL, AuthType.LOGIN_WITH_GOOGLE, retryableQuotaError);
273
- expect(mockConfig.fallbackModelHandler).toHaveBeenCalledWith(PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_MODEL, retryableQuotaError);
274
- });
275
- it('should pass DEFAULT_GEMINI_MODEL as fallback when Preview Model fails with other error', async () => {
276
- await handleFallback(mockConfig, PREVIEW_GEMINI_MODEL, AuthType.LOGIN_WITH_GOOGLE);
277
- expect(mockConfig.fallbackModelHandler).toHaveBeenCalledWith(PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_MODEL, undefined);
278
- });
279
- it('should pass DEFAULT_GEMINI_FLASH_MODEL as fallback when Preview Model fails with other error', async () => {
280
- const mockGoogleApiError = {
281
- code: 429,
282
- message: 'mock error',
283
- details: [],
284
- };
285
- const terminalQuotaError = new TerminalQuotaError('quota error', mockGoogleApiError, 5);
286
- await handleFallback(mockConfig, PREVIEW_GEMINI_MODEL, AuthType.LOGIN_WITH_GOOGLE, terminalQuotaError);
287
- expect(mockConfig.fallbackModelHandler).toHaveBeenCalledWith(PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, terminalQuotaError);
288
- });
289
- });
290
- it('should return null if ModelNotFoundError occurs for a non-preview model', async () => {
291
- const modelNotFoundError = new ModelNotFoundError('Not found');
292
- const result = await handleFallback(mockConfig, DEFAULT_GEMINI_MODEL, // Not preview model
293
- AUTH_OAUTH, modelNotFoundError);
294
- expect(result).toBeNull();
295
- expect(mockHandler).not.toHaveBeenCalled();
296
- });
297
- it('should consult handler if ModelNotFoundError occurs for preview model', async () => {
298
- const modelNotFoundError = new ModelNotFoundError('Not found');
299
- mockHandler.mockResolvedValue('retry_always');
300
- const result = await handleFallback(mockConfig, PREVIEW_GEMINI_MODEL, AUTH_OAUTH, modelNotFoundError);
301
- expect(result).toBe(true);
302
- expect(mockHandler).toHaveBeenCalled();
303
- });
304
84
  describe('policy-driven flow', () => {
305
85
  let policyConfig;
306
86
  let availability;
307
87
  let policyHandler;
308
88
  beforeEach(() => {
309
89
  vi.clearAllMocks();
310
- availability = createAvailabilityMock({
90
+ availability = createAvailabilityServiceMock({
311
91
  selectedModel: DEFAULT_GEMINI_FLASH_MODEL,
312
92
  skipped: [],
313
93
  });
314
94
  policyHandler = vi.fn().mockResolvedValue('retry_once');
315
95
  policyConfig = createMockConfig();
316
- vi.spyOn(policyConfig, 'isModelAvailabilityServiceEnabled').mockReturnValue(true);
317
- vi.spyOn(policyConfig, 'getModelAvailabilityService').mockReturnValue(availability);
318
- vi.spyOn(policyConfig, 'getFallbackModelHandler').mockReturnValue(policyHandler);
96
+ // Ensure we test the availability path
97
+ vi.mocked(policyConfig.isModelAvailabilityServiceEnabled).mockReturnValue(true);
98
+ vi.mocked(policyConfig.getModelAvailabilityService).mockReturnValue(availability);
99
+ vi.mocked(policyConfig.getFallbackModelHandler).mockReturnValue(policyHandler);
100
+ });
101
+ it('should return null immediately if authType is not OAuth', async () => {
102
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_API_KEY);
103
+ expect(result).toBeNull();
104
+ expect(policyHandler).not.toHaveBeenCalled();
319
105
  });
320
106
  it('uses availability selection with correct candidates when enabled', async () => {
321
- vi.spyOn(policyConfig, 'getPreviewFeatures').mockReturnValue(true);
322
- vi.spyOn(policyConfig, 'getModel').mockReturnValue(DEFAULT_GEMINI_MODEL);
107
+ // Direct mock manipulation since it's already a vi.fn()
108
+ vi.mocked(policyConfig.getPreviewFeatures).mockReturnValue(true);
109
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
323
110
  await handleFallback(policyConfig, DEFAULT_GEMINI_MODEL, AUTH_OAUTH);
324
111
  expect(availability.selectFirstAvailable).toHaveBeenCalledWith([
325
112
  DEFAULT_GEMINI_FLASH_MODEL,
326
- PREVIEW_GEMINI_MODEL,
327
113
  ]);
328
114
  });
329
115
  it('falls back to last resort when availability returns null', async () => {
116
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
330
117
  availability.selectFirstAvailable = vi
331
118
  .fn()
332
119
  .mockReturnValue({ selectedModel: null, skipped: [] });
@@ -355,60 +142,119 @@ describe('handleFallback', () => {
355
142
  const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
356
143
  expect(result).toBe(true);
357
144
  expect(policyConfig.getFallbackModelHandler).not.toHaveBeenCalled();
358
- expect(policyConfig.setFallbackMode).toHaveBeenCalledWith(true);
145
+ expect(policyConfig.setActiveModel).toHaveBeenCalledWith(DEFAULT_GEMINI_FLASH_MODEL);
146
+ // Silent actions should not trigger the legacy fallback mode (via activateFallbackMode),
147
+ // but setActiveModel might trigger it via legacy sync if it switches to Flash.
148
+ // However, the test requirement is "doesn't emit fallback mode".
149
+ // Since we are mocking setActiveModel, we can verify setFallbackMode isn't called *independently*.
150
+ // But setActiveModel is mocked, so it won't trigger side effects unless the implementation does.
151
+ // We verified setActiveModel is called.
152
+ // We verify setFallbackMode is NOT called (which would happen if activateFallbackMode was called).
153
+ expect(policyConfig.setFallbackMode).not.toHaveBeenCalled();
359
154
  }
360
155
  finally {
361
156
  chainSpy.mockRestore();
362
157
  }
363
158
  });
364
- it('wraps around to upgrade candidates if the current model was selected mid-chain (e.g. by router)', async () => {
159
+ it('does not wrap around to upgrade candidates if the current model was selected at the end (e.g. by router)', async () => {
365
160
  // Last-resort failure (Flash) in [Preview, Pro, Flash] checks Preview then Pro (all upstream).
366
- vi.spyOn(policyConfig, 'getPreviewFeatures').mockReturnValue(true);
161
+ vi.mocked(policyConfig.getPreviewFeatures).mockReturnValue(true);
162
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
367
163
  availability.selectFirstAvailable = vi.fn().mockReturnValue({
368
164
  selectedModel: MOCK_PRO_MODEL,
369
165
  skipped: [],
370
166
  });
371
167
  policyHandler.mockResolvedValue('retry_once');
372
168
  await handleFallback(policyConfig, DEFAULT_GEMINI_FLASH_MODEL, AUTH_OAUTH);
373
- expect(availability.selectFirstAvailable).toHaveBeenCalledWith([
374
- PREVIEW_GEMINI_MODEL,
375
- MOCK_PRO_MODEL,
376
- ]);
377
- expect(policyHandler).toHaveBeenCalledWith(DEFAULT_GEMINI_FLASH_MODEL, MOCK_PRO_MODEL, undefined);
378
- });
379
- it('logs and returns null when handler resolves to null', async () => {
380
- policyHandler.mockResolvedValue(null);
381
- const debugLoggerErrorSpy = vi.spyOn(debugLogger, 'error');
382
- const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
383
- expect(result).toBeNull();
384
- expect(debugLoggerErrorSpy).toHaveBeenCalledWith('Fallback handler failed:', new Error('Unexpected fallback intent received from fallbackModelHandler: "null"'));
385
- debugLoggerErrorSpy.mockRestore();
169
+ expect(availability.selectFirstAvailable).not.toHaveBeenCalled();
170
+ expect(policyHandler).toHaveBeenCalledWith(DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_MODEL, undefined);
386
171
  });
387
172
  it('successfully follows expected availability response for Preview Chain', async () => {
388
- availability.selectFirstAvailable = vi
389
- .fn()
390
- .mockReturnValue({ selectedModel: DEFAULT_GEMINI_MODEL, skipped: [] });
173
+ availability.selectFirstAvailable = vi.fn().mockReturnValue({
174
+ selectedModel: PREVIEW_GEMINI_FLASH_MODEL,
175
+ skipped: [],
176
+ });
391
177
  policyHandler.mockResolvedValue('retry_once');
392
- vi.spyOn(policyConfig, 'getPreviewFeatures').mockReturnValue(true);
393
- vi.spyOn(policyConfig, 'getModel').mockReturnValue(PREVIEW_GEMINI_MODEL);
178
+ vi.mocked(policyConfig.getPreviewFeatures).mockReturnValue(true);
179
+ vi.mocked(policyConfig.getActiveModel).mockReturnValue(PREVIEW_GEMINI_MODEL);
180
+ vi.mocked(policyConfig.getModel).mockReturnValue(PREVIEW_GEMINI_MODEL_AUTO);
394
181
  const result = await handleFallback(policyConfig, PREVIEW_GEMINI_MODEL, AUTH_OAUTH);
395
182
  expect(result).toBe(true);
396
183
  expect(availability.selectFirstAvailable).toHaveBeenCalledWith([
397
- DEFAULT_GEMINI_MODEL,
398
- DEFAULT_GEMINI_FLASH_MODEL,
184
+ PREVIEW_GEMINI_FLASH_MODEL,
399
185
  ]);
400
- expect(policyHandler).toHaveBeenCalledWith(PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_MODEL, undefined);
401
186
  });
402
- it('short-circuits when the failed model is the last-resort policy AND candidates are unavailable', async () => {
187
+ it('should launch upgrade flow and avoid fallback mode when handler returns "upgrade"', async () => {
188
+ policyHandler.mockResolvedValue('upgrade');
189
+ vi.mocked(openBrowserSecurely).mockResolvedValue(undefined);
190
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
191
+ expect(result).toBe(false);
192
+ expect(openBrowserSecurely).toHaveBeenCalledWith('https://goo.gle/set-up-gemini-code-assist');
193
+ expect(policyConfig.setActiveModel).not.toHaveBeenCalled();
194
+ });
195
+ it('should catch errors from the handler, log an error, and return null', async () => {
196
+ const handlerError = new Error('UI interaction failed');
197
+ policyHandler.mockRejectedValue(handlerError);
198
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
199
+ expect(result).toBeNull();
200
+ expect(debugLogger.error).toHaveBeenCalledWith('Fallback handler failed:', handlerError);
201
+ });
202
+ it('should pass TerminalQuotaError (429) correctly to the handler', async () => {
203
+ const mockGoogleApiError = {
204
+ code: 429,
205
+ message: 'mock error',
206
+ details: [],
207
+ };
208
+ const terminalError = new TerminalQuotaError('Quota error', mockGoogleApiError, 5);
209
+ policyHandler.mockResolvedValue('retry_always');
210
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
211
+ await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH, terminalError);
212
+ expect(policyHandler).toHaveBeenCalledWith(MOCK_PRO_MODEL, DEFAULT_GEMINI_FLASH_MODEL, terminalError);
213
+ });
214
+ it('should pass RetryableQuotaError correctly to the handler', async () => {
215
+ const mockGoogleApiError = {
216
+ code: 503,
217
+ message: 'mock error',
218
+ details: [],
219
+ };
220
+ const retryableError = new RetryableQuotaError('Service unavailable', mockGoogleApiError, 1000);
221
+ policyHandler.mockResolvedValue('retry_once');
222
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
223
+ await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH, retryableError);
224
+ expect(policyHandler).toHaveBeenCalledWith(MOCK_PRO_MODEL, DEFAULT_GEMINI_FLASH_MODEL, retryableError);
225
+ });
226
+ it('Call the handler with fallback model same as the failed model when the failed model is the last-resort policy', async () => {
403
227
  // Ensure short-circuit when wrapping to an unavailable upstream model.
404
228
  availability.selectFirstAvailable = vi
405
229
  .fn()
406
230
  .mockReturnValue({ selectedModel: null, skipped: [] });
231
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
407
232
  const result = await handleFallback(policyConfig, DEFAULT_GEMINI_FLASH_MODEL, AUTH_OAUTH);
408
- expect(result).toBeNull();
409
- // Service called to check upstream; no UI handler since nothing selected.
410
- expect(policyConfig.getModelAvailabilityService).toHaveBeenCalled();
411
- expect(policyConfig.getFallbackModelHandler).not.toHaveBeenCalled();
233
+ policyHandler.mockResolvedValue('retry_once');
234
+ expect(result).not.toBeNull();
235
+ expect(policyHandler).toHaveBeenCalledWith(DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_MODEL, undefined);
236
+ });
237
+ it('calls setActiveModel and logs telemetry when handler returns "retry_always"', async () => {
238
+ policyHandler.mockResolvedValue('retry_always');
239
+ vi.mocked(policyConfig.getModel).mockReturnValue(DEFAULT_GEMINI_MODEL_AUTO);
240
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
241
+ expect(result).toBe(true);
242
+ expect(policyConfig.setActiveModel).toHaveBeenCalledWith(FALLBACK_MODEL);
243
+ expect(policyConfig.setFallbackMode).not.toHaveBeenCalled();
244
+ // TODO: add logging expect statement
245
+ });
246
+ it('does NOT call setActiveModel when handler returns "stop"', async () => {
247
+ policyHandler.mockResolvedValue('stop');
248
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
249
+ expect(result).toBe(false);
250
+ expect(policyConfig.setActiveModel).not.toHaveBeenCalled();
251
+ // TODO: add logging expect statement
252
+ });
253
+ it('does NOT call setActiveModel when handler returns "retry_once"', async () => {
254
+ policyHandler.mockResolvedValue('retry_once');
255
+ const result = await handleFallback(policyConfig, MOCK_PRO_MODEL, AUTH_OAUTH);
256
+ expect(result).toBe(true);
257
+ expect(policyConfig.setActiveModel).not.toHaveBeenCalled();
412
258
  });
413
259
  });
414
260
  });
@@ -1 +1 @@
1
- {"version":3,"file":"handler.test.js","sourceRoot":"","sources":["../../../src/fallback/handler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.test.js","sourceRoot":"","sources":["../../../src/fallback/handler.test.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "8e3b8c119";
7
- export declare const CLI_VERSION = "1.20.2-rc1";
6
+ export declare const GIT_COMMIT_INFO = "703942039";
7
+ export declare const CLI_VERSION = "1.22.5-rc1";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = '8e3b8c119';
9
- export const CLI_VERSION = '1.20.2-rc1';
8
+ export const GIT_COMMIT_INFO = '703942039';
9
+ export const CLI_VERSION = '1.22.5-rc1';
10
10
  //# sourceMappingURL=git-commit.js.map