@google/gemini-cli-core 0.34.0-preview.2 → 0.35.0-nightly.20260313.bb060d7a9

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 (329) hide show
  1. package/dist/docs/changelogs/index.md +19 -0
  2. package/dist/docs/changelogs/latest.md +214 -191
  3. package/dist/docs/changelogs/preview.md +447 -184
  4. package/dist/docs/cli/model-routing.md +18 -1
  5. package/dist/docs/cli/model-steering.md +79 -0
  6. package/dist/docs/cli/plan-mode.md +99 -14
  7. package/dist/docs/cli/settings.md +14 -12
  8. package/dist/docs/cli/telemetry.md +45 -0
  9. package/dist/docs/cli/tutorials/plan-mode-steering.md +89 -0
  10. package/dist/docs/core/index.md +2 -0
  11. package/dist/docs/core/local-model-routing.md +193 -0
  12. package/dist/docs/reference/configuration.md +27 -3
  13. package/dist/docs/reference/keyboard-shortcuts.md +168 -90
  14. package/dist/docs/reference/policy-engine.md +30 -6
  15. package/dist/docs/resources/troubleshooting.md +15 -0
  16. package/dist/docs/sidebar.json +10 -0
  17. package/dist/docs/tools/shell.md +8 -0
  18. package/dist/google-gemini-cli-core-0.35.0-nightly.20260311.657f19c1f.tgz +0 -0
  19. package/dist/src/agents/a2a-client-manager.d.ts +11 -4
  20. package/dist/src/agents/a2a-client-manager.js +61 -34
  21. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  22. package/dist/src/agents/a2a-client-manager.test.js +178 -115
  23. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  24. package/dist/src/agents/a2aUtils.d.ts +4 -28
  25. package/dist/src/agents/a2aUtils.js +20 -181
  26. package/dist/src/agents/a2aUtils.js.map +1 -1
  27. package/dist/src/agents/a2aUtils.test.js +19 -106
  28. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  29. package/dist/src/agents/agent-scheduler.d.ts +2 -0
  30. package/dist/src/agents/agent-scheduler.js +3 -2
  31. package/dist/src/agents/agent-scheduler.js.map +1 -1
  32. package/dist/src/agents/agent-scheduler.test.js +12 -3
  33. package/dist/src/agents/agent-scheduler.test.js.map +1 -1
  34. package/dist/src/agents/agentLoader.d.ts +2 -2
  35. package/dist/src/agents/agentLoader.js +15 -0
  36. package/dist/src/agents/agentLoader.js.map +1 -1
  37. package/dist/src/agents/auth-provider/factory.d.ts +2 -0
  38. package/dist/src/agents/auth-provider/factory.js +6 -3
  39. package/dist/src/agents/auth-provider/factory.js.map +1 -1
  40. package/dist/src/agents/auth-provider/google-credentials-provider.d.ts +26 -0
  41. package/dist/src/agents/auth-provider/google-credentials-provider.js +117 -0
  42. package/dist/src/agents/auth-provider/google-credentials-provider.js.map +1 -0
  43. package/dist/src/agents/auth-provider/google-credentials-provider.test.d.ts +6 -0
  44. package/dist/src/agents/auth-provider/google-credentials-provider.test.js +126 -0
  45. package/dist/src/agents/auth-provider/google-credentials-provider.test.js.map +1 -0
  46. package/dist/src/agents/browser/browserAgentFactory.js +11 -2
  47. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  48. package/dist/src/agents/browser/browserAgentInvocation.d.ts +4 -3
  49. package/dist/src/agents/browser/browserAgentInvocation.js +10 -4
  50. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  51. package/dist/src/agents/browser/browserAgentInvocation.test.js +1 -0
  52. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  53. package/dist/src/agents/browser/browserManager.d.ts +10 -0
  54. package/dist/src/agents/browser/browserManager.js +53 -8
  55. package/dist/src/agents/browser/browserManager.js.map +1 -1
  56. package/dist/src/agents/browser/inputBlocker.d.ts +51 -0
  57. package/dist/src/agents/browser/inputBlocker.js +234 -0
  58. package/dist/src/agents/browser/inputBlocker.js.map +1 -0
  59. package/dist/src/agents/browser/inputBlocker.test.d.ts +6 -0
  60. package/dist/src/agents/browser/inputBlocker.test.js +82 -0
  61. package/dist/src/agents/browser/inputBlocker.test.js.map +1 -0
  62. package/dist/src/agents/browser/mcpToolWrapper.d.ts +3 -2
  63. package/dist/src/agents/browser/mcpToolWrapper.js +49 -8
  64. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  65. package/dist/src/agents/browser/mcpToolWrapper.test.js +51 -0
  66. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  67. package/dist/src/agents/local-executor.d.ts +5 -4
  68. package/dist/src/agents/local-executor.js +30 -25
  69. package/dist/src/agents/local-executor.js.map +1 -1
  70. package/dist/src/agents/local-executor.test.js +269 -3
  71. package/dist/src/agents/local-executor.test.js.map +1 -1
  72. package/dist/src/agents/local-invocation.d.ts +4 -4
  73. package/dist/src/agents/local-invocation.js +12 -9
  74. package/dist/src/agents/local-invocation.js.map +1 -1
  75. package/dist/src/agents/local-invocation.test.js +19 -3
  76. package/dist/src/agents/local-invocation.test.js.map +1 -1
  77. package/dist/src/agents/registry.js +3 -2
  78. package/dist/src/agents/registry.js.map +1 -1
  79. package/dist/src/agents/registry.test.js +1 -0
  80. package/dist/src/agents/registry.test.js.map +1 -1
  81. package/dist/src/agents/remote-invocation.d.ts +0 -9
  82. package/dist/src/agents/remote-invocation.js +1 -28
  83. package/dist/src/agents/remote-invocation.js.map +1 -1
  84. package/dist/src/agents/remote-invocation.test.js +1 -0
  85. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  86. package/dist/src/agents/subagent-tool-wrapper.d.ts +5 -4
  87. package/dist/src/agents/subagent-tool-wrapper.js +9 -5
  88. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  89. package/dist/src/agents/subagent-tool-wrapper.test.js +15 -1
  90. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  91. package/dist/src/agents/subagent-tool.d.ts +3 -3
  92. package/dist/src/agents/subagent-tool.js +16 -12
  93. package/dist/src/agents/subagent-tool.js.map +1 -1
  94. package/dist/src/agents/subagent-tool.test.js +13 -3
  95. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  96. package/dist/src/code_assist/oauth2.js +0 -1
  97. package/dist/src/code_assist/oauth2.js.map +1 -1
  98. package/dist/src/code_assist/server.js +2 -2
  99. package/dist/src/code_assist/server.js.map +1 -1
  100. package/dist/src/code_assist/server.test.js +5 -1
  101. package/dist/src/code_assist/server.test.js.map +1 -1
  102. package/dist/src/code_assist/telemetry.d.ts +2 -2
  103. package/dist/src/code_assist/telemetry.js +5 -3
  104. package/dist/src/code_assist/telemetry.js.map +1 -1
  105. package/dist/src/code_assist/telemetry.test.js +14 -12
  106. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  107. package/dist/src/code_assist/types.d.ts +14 -12
  108. package/dist/src/code_assist/types.js.map +1 -1
  109. package/dist/src/config/agent-loop-context.d.ts +3 -0
  110. package/dist/src/config/config.d.ts +75 -2
  111. package/dist/src/config/config.js +78 -11
  112. package/dist/src/config/config.js.map +1 -1
  113. package/dist/src/config/config.test.js +170 -10
  114. package/dist/src/config/config.test.js.map +1 -1
  115. package/dist/src/config/models.d.ts +14 -0
  116. package/dist/src/config/models.js +37 -0
  117. package/dist/src/config/models.js.map +1 -1
  118. package/dist/src/config/models.test.js +51 -1
  119. package/dist/src/config/models.test.js.map +1 -1
  120. package/dist/src/config/storage.d.ts +1 -0
  121. package/dist/src/config/storage.js +3 -0
  122. package/dist/src/config/storage.js.map +1 -1
  123. package/dist/src/core/baseLlmClient.js +19 -3
  124. package/dist/src/core/baseLlmClient.js.map +1 -1
  125. package/dist/src/core/baseLlmClient.test.js +2 -0
  126. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  127. package/dist/src/core/client.d.ts +4 -3
  128. package/dist/src/core/client.js +42 -17
  129. package/dist/src/core/client.js.map +1 -1
  130. package/dist/src/core/client.test.js +8 -0
  131. package/dist/src/core/client.test.js.map +1 -1
  132. package/dist/src/core/contentGenerator.d.ts +1 -0
  133. package/dist/src/core/contentGenerator.js +35 -3
  134. package/dist/src/core/contentGenerator.js.map +1 -1
  135. package/dist/src/core/contentGenerator.test.js +137 -2
  136. package/dist/src/core/contentGenerator.test.js.map +1 -1
  137. package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
  138. package/dist/src/core/coreToolHookTriggers.js +5 -11
  139. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  140. package/dist/src/core/coreToolHookTriggers.test.js +24 -0
  141. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
  142. package/dist/src/core/coreToolScheduler.js +1 -1
  143. package/dist/src/core/coreToolScheduler.js.map +1 -1
  144. package/dist/src/core/geminiChat.js +31 -21
  145. package/dist/src/core/geminiChat.js.map +1 -1
  146. package/dist/src/core/geminiChat.test.js +6 -4
  147. package/dist/src/core/geminiChat.test.js.map +1 -1
  148. package/dist/src/core/geminiChat_network_retry.test.js +21 -11
  149. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  150. package/dist/src/fallback/handler.js +0 -4
  151. package/dist/src/fallback/handler.js.map +1 -1
  152. package/dist/src/fallback/handler.test.js +0 -6
  153. package/dist/src/fallback/handler.test.js.map +1 -1
  154. package/dist/src/generated/git-commit.d.ts +2 -2
  155. package/dist/src/generated/git-commit.js +2 -2
  156. package/dist/src/generated/git-commit.js.map +1 -1
  157. package/dist/src/ide/detect-ide.d.ts +8 -0
  158. package/dist/src/ide/detect-ide.js +12 -1
  159. package/dist/src/ide/detect-ide.js.map +1 -1
  160. package/dist/src/ide/detect-ide.test.js +12 -0
  161. package/dist/src/ide/detect-ide.test.js.map +1 -1
  162. package/dist/src/ide/ide-installer.js +20 -8
  163. package/dist/src/ide/ide-installer.js.map +1 -1
  164. package/dist/src/ide/ide-installer.test.js +60 -4
  165. package/dist/src/ide/ide-installer.test.js.map +1 -1
  166. package/dist/src/mcp/oauth-provider.js +0 -2
  167. package/dist/src/mcp/oauth-provider.js.map +1 -1
  168. package/dist/src/mcp/oauth-utils.js +0 -2
  169. package/dist/src/mcp/oauth-utils.js.map +1 -1
  170. package/dist/src/policy/config.d.ts +14 -2
  171. package/dist/src/policy/config.js +94 -49
  172. package/dist/src/policy/config.js.map +1 -1
  173. package/dist/src/policy/config.test.js +208 -488
  174. package/dist/src/policy/config.test.js.map +1 -1
  175. package/dist/src/policy/policies/plan.toml +1 -1
  176. package/dist/src/policy/stable-stringify.js +15 -5
  177. package/dist/src/policy/stable-stringify.js.map +1 -1
  178. package/dist/src/policy/types.d.ts +1 -0
  179. package/dist/src/policy/types.js.map +1 -1
  180. package/dist/src/policy/utils.d.ts +17 -0
  181. package/dist/src/policy/utils.js +27 -7
  182. package/dist/src/policy/utils.js.map +1 -1
  183. package/dist/src/prompts/snippets.js +2 -1
  184. package/dist/src/prompts/snippets.js.map +1 -1
  185. package/dist/src/prompts/utils.test.d.ts +6 -0
  186. package/dist/src/prompts/utils.test.js +225 -0
  187. package/dist/src/prompts/utils.test.js.map +1 -0
  188. package/dist/src/routing/modelRouterService.js +2 -2
  189. package/dist/src/routing/modelRouterService.js.map +1 -1
  190. package/dist/src/routing/modelRouterService.test.js +4 -3
  191. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  192. package/dist/src/routing/strategies/numericalClassifierStrategy.js +6 -40
  193. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
  194. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +29 -64
  195. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
  196. package/dist/src/scheduler/policy.d.ts +3 -7
  197. package/dist/src/scheduler/policy.js +4 -3
  198. package/dist/src/scheduler/policy.js.map +1 -1
  199. package/dist/src/scheduler/policy.test.js +51 -31
  200. package/dist/src/scheduler/policy.test.js.map +1 -1
  201. package/dist/src/scheduler/scheduler.d.ts +4 -2
  202. package/dist/src/scheduler/scheduler.js +19 -16
  203. package/dist/src/scheduler/scheduler.js.map +1 -1
  204. package/dist/src/scheduler/scheduler.test.js +33 -10
  205. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  206. package/dist/src/scheduler/scheduler_parallel.test.js +40 -2
  207. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
  208. package/dist/src/scheduler/scheduler_waiting_callback.test.js +1 -1
  209. package/dist/src/scheduler/scheduler_waiting_callback.test.js.map +1 -1
  210. package/dist/src/scheduler/tool-executor.d.ts +3 -3
  211. package/dist/src/scheduler/tool-executor.js +15 -21
  212. package/dist/src/scheduler/tool-executor.js.map +1 -1
  213. package/dist/src/scheduler/tool-executor.test.js +43 -8
  214. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  215. package/dist/src/services/chatRecordingService.js +2 -1
  216. package/dist/src/services/chatRecordingService.js.map +1 -1
  217. package/dist/src/services/chatRecordingService.test.js +21 -0
  218. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  219. package/dist/src/services/executionLifecycleService.d.ts +83 -0
  220. package/dist/src/services/executionLifecycleService.js +271 -0
  221. package/dist/src/services/executionLifecycleService.js.map +1 -0
  222. package/dist/src/services/executionLifecycleService.test.d.ts +6 -0
  223. package/dist/src/services/executionLifecycleService.test.js +227 -0
  224. package/dist/src/services/executionLifecycleService.test.js.map +1 -0
  225. package/dist/src/services/sandboxManager.d.ts +54 -0
  226. package/dist/src/services/sandboxManager.js +30 -0
  227. package/dist/src/services/sandboxManager.js.map +1 -0
  228. package/dist/src/services/sandboxManager.test.d.ts +6 -0
  229. package/dist/src/services/sandboxManager.test.js +95 -0
  230. package/dist/src/services/sandboxManager.test.js.map +1 -0
  231. package/dist/src/services/shellExecutionService.d.ts +4 -52
  232. package/dist/src/services/shellExecutionService.js +437 -498
  233. package/dist/src/services/shellExecutionService.js.map +1 -1
  234. package/dist/src/services/shellExecutionService.test.js +10 -21
  235. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  236. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +13 -2
  237. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +91 -1
  238. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  239. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +77 -0
  240. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  241. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +10 -1
  242. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +25 -1
  243. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  244. package/dist/src/telemetry/index.d.ts +3 -3
  245. package/dist/src/telemetry/index.js +3 -3
  246. package/dist/src/telemetry/index.js.map +1 -1
  247. package/dist/src/telemetry/loggers.d.ts +2 -1
  248. package/dist/src/telemetry/loggers.js +32 -1
  249. package/dist/src/telemetry/loggers.js.map +1 -1
  250. package/dist/src/telemetry/loggers.test.js +37 -2
  251. package/dist/src/telemetry/loggers.test.js.map +1 -1
  252. package/dist/src/telemetry/metrics.d.ts +13 -0
  253. package/dist/src/telemetry/metrics.js +17 -0
  254. package/dist/src/telemetry/metrics.js.map +1 -1
  255. package/dist/src/telemetry/startupProfiler.js +4 -4
  256. package/dist/src/telemetry/startupProfiler.js.map +1 -1
  257. package/dist/src/telemetry/startupProfiler.test.js +19 -0
  258. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  259. package/dist/src/telemetry/telemetry-utils.test.js +3 -3
  260. package/dist/src/telemetry/types.d.ts +16 -2
  261. package/dist/src/telemetry/types.js +34 -0
  262. package/dist/src/telemetry/types.js.map +1 -1
  263. package/dist/src/telemetry/uiTelemetry.d.ts +7 -0
  264. package/dist/src/telemetry/uiTelemetry.js +78 -0
  265. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  266. package/dist/src/telemetry/uiTelemetry.test.js +101 -0
  267. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  268. package/dist/src/tools/exit-plan-mode.js +10 -2
  269. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  270. package/dist/src/tools/exit-plan-mode.test.js +15 -0
  271. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  272. package/dist/src/tools/ls.js +2 -2
  273. package/dist/src/tools/ls.js.map +1 -1
  274. package/dist/src/tools/mcp-client.js +0 -1
  275. package/dist/src/tools/mcp-client.js.map +1 -1
  276. package/dist/src/tools/mcp-client.test.js +4 -0
  277. package/dist/src/tools/mcp-client.test.js.map +1 -1
  278. package/dist/src/tools/mcp-tool.test.js +10 -1
  279. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  280. package/dist/src/tools/read-many-files.js +2 -4
  281. package/dist/src/tools/read-many-files.js.map +1 -1
  282. package/dist/src/tools/shell.d.ts +1 -1
  283. package/dist/src/tools/shell.js +3 -3
  284. package/dist/src/tools/shell.js.map +1 -1
  285. package/dist/src/tools/tool-registry.test.js +4 -0
  286. package/dist/src/tools/tool-registry.test.js.map +1 -1
  287. package/dist/src/tools/tools.d.ts +34 -1
  288. package/dist/src/tools/tools.js +47 -1
  289. package/dist/src/tools/tools.js.map +1 -1
  290. package/dist/src/tools/web-fetch.d.ts +5 -0
  291. package/dist/src/tools/web-fetch.js +177 -100
  292. package/dist/src/tools/web-fetch.js.map +1 -1
  293. package/dist/src/tools/web-fetch.test.js +130 -26
  294. package/dist/src/tools/web-fetch.test.js.map +1 -1
  295. package/dist/src/tools/web-search.test.js +2 -0
  296. package/dist/src/tools/web-search.test.js.map +1 -1
  297. package/dist/src/utils/fetch.d.ts +0 -29
  298. package/dist/src/utils/fetch.js +10 -123
  299. package/dist/src/utils/fetch.js.map +1 -1
  300. package/dist/src/utils/fetch.test.js +1 -103
  301. package/dist/src/utils/fetch.test.js.map +1 -1
  302. package/dist/src/utils/language-detection.js +96 -89
  303. package/dist/src/utils/language-detection.js.map +1 -1
  304. package/dist/src/utils/language-detection.test.d.ts +6 -0
  305. package/dist/src/utils/language-detection.test.js +39 -0
  306. package/dist/src/utils/language-detection.test.js.map +1 -0
  307. package/dist/src/utils/oauth-flow.js +0 -2
  308. package/dist/src/utils/oauth-flow.js.map +1 -1
  309. package/dist/src/utils/paths.js +5 -2
  310. package/dist/src/utils/paths.js.map +1 -1
  311. package/dist/src/utils/paths.test.js +11 -0
  312. package/dist/src/utils/paths.test.js.map +1 -1
  313. package/dist/src/utils/process-utils.js +18 -4
  314. package/dist/src/utils/process-utils.js.map +1 -1
  315. package/dist/src/utils/process-utils.test.js +32 -10
  316. package/dist/src/utils/process-utils.test.js.map +1 -1
  317. package/dist/src/utils/retry.d.ts +7 -0
  318. package/dist/src/utils/retry.js +40 -3
  319. package/dist/src/utils/retry.js.map +1 -1
  320. package/dist/src/utils/retry.test.js +13 -0
  321. package/dist/src/utils/retry.test.js.map +1 -1
  322. package/dist/src/utils/summarizer.test.js +5 -0
  323. package/dist/src/utils/summarizer.test.js.map +1 -1
  324. package/dist/src/utils/surface.d.ts +18 -0
  325. package/dist/src/utils/surface.js +46 -0
  326. package/dist/src/utils/surface.js.map +1 -0
  327. package/dist/tsconfig.tsbuildinfo +1 -1
  328. package/package.json +1 -1
  329. package/dist/google-gemini-cli-core-0.34.0-preview.1.tgz +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/prompts/utils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;CAC/C,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,WAAW,EAAE;QACX,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACd;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,mBAAmB,CAAC;CAC9D,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,0BAA0B,CAAC;CACrE,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtD,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,GAAG,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,EAAE,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,UAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG;YACX,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACxC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;aAC/C,CAAC;YACF,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACvC,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;aAC7C,CAAC;SACkB,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,kBAAkB,CAC/B,wBAAwB,EACxB,UAAU,EACV,mBAAmB,CACpB,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,kBAAkB,CAC/B,mCAAmC,EACnC,UAAU,EACV,QAAQ,CACT,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,kBAAkB,CAC/B,sBAAsB,EACtB,UAAU,EACV,EAAE,EACF,IAAI,CACL,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,kBAAkB,CAC/B,sBAAsB,EACtB,UAAU,EACV,EAAE,EACF,KAAK,CACN,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC;YACpD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACrE,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;SACW,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,kBAAkB,CAC/B,0BAA0B,EAC1B,UAAU,EACV,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,kBAAkB,CAC/B,0BAA0B,EAC1B,UAAU,EACV,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC;YACpD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC;YACvD,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;SACW,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,kBAAkB,CAC/B,mCAAmC,EACnC,UAAU,EACV,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,MAAM,GAAG,kBAAkB,CAC/B,mCAAmC,EACnC,UAAU,EACV,EAAE,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -54,9 +54,9 @@ export class ModelRouterService {
54
54
  let decision;
55
55
  const [enableNumericalRouting, thresholdValue] = await Promise.all([
56
56
  this.config.getNumericalRoutingEnabled(),
57
- this.config.getClassifierThreshold(),
57
+ this.config.getResolvedClassifierThreshold(),
58
58
  ]);
59
- const classifierThreshold = thresholdValue !== undefined ? String(thresholdValue) : undefined;
59
+ const classifierThreshold = String(thresholdValue);
60
60
  let failed = false;
61
61
  let error_message;
62
62
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"modelRouterService.js","sourceRoot":"","sources":["../../../src/routing/modelRouterService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelRouterService.js","sourceRoot":"","sources":["../../../src/routing/modelRouterService.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,8 @@ describe('ModelRouterService', () => {
43
43
  mockLocalLiteRtLmClient = {};
44
44
  vi.spyOn(mockConfig, 'getBaseLlmClient').mockReturnValue(mockBaseLlmClient);
45
45
  vi.spyOn(mockConfig, 'getLocalLiteRtLmClient').mockReturnValue(mockLocalLiteRtLmClient);
46
- vi.spyOn(mockConfig, 'getNumericalRoutingEnabled').mockResolvedValue(false);
46
+ vi.spyOn(mockConfig, 'getNumericalRoutingEnabled').mockResolvedValue(true);
47
+ vi.spyOn(mockConfig, 'getResolvedClassifierThreshold').mockResolvedValue(90);
47
48
  vi.spyOn(mockConfig, 'getClassifierThreshold').mockResolvedValue(undefined);
48
49
  vi.spyOn(mockConfig, 'getGemmaModelRouterSettings').mockReturnValue({
49
50
  enabled: false,
@@ -131,7 +132,7 @@ describe('ModelRouterService', () => {
131
132
  it('should log a telemetry event on a successful decision', async () => {
132
133
  vi.spyOn(mockCompositeStrategy, 'route').mockResolvedValue(strategyDecision);
133
134
  await service.route(mockContext);
134
- expect(ModelRoutingEvent).toHaveBeenCalledWith('strategy-chosen-model', 'test-router/fallback', 10, 'Strategy reasoning', false, undefined, ApprovalMode.DEFAULT, false, undefined);
135
+ expect(ModelRoutingEvent).toHaveBeenCalledWith('strategy-chosen-model', 'test-router/fallback', 10, 'Strategy reasoning', false, undefined, ApprovalMode.DEFAULT, true, '90');
135
136
  expect(logModelRouting).toHaveBeenCalledWith(mockConfig, expect.any(ModelRoutingEvent));
136
137
  });
137
138
  it('should log a telemetry event and return fallback on a failed decision', async () => {
@@ -141,7 +142,7 @@ describe('ModelRouterService', () => {
141
142
  const decision = await service.route(mockContext);
142
143
  expect(decision.model).toBe('default-model');
143
144
  expect(decision.metadata.source).toBe('router-exception');
144
- expect(ModelRoutingEvent).toHaveBeenCalledWith('default-model', 'router-exception', expect.any(Number), 'An exception occurred during routing.', true, 'Strategy failed', ApprovalMode.DEFAULT, false, undefined);
145
+ expect(ModelRoutingEvent).toHaveBeenCalledWith('default-model', 'router-exception', expect.any(Number), 'An exception occurred during routing.', true, 'Strategy failed', ApprovalMode.DEFAULT, true, '90');
145
146
  expect(logModelRouting).toHaveBeenCalledWith(mockConfig, expect.any(ModelRoutingEvent));
146
147
  });
147
148
  });
@@ -1 +1 @@
1
- {"version":3,"file":"modelRouterService.test.js","sourceRoot":"","sources":["../../../src/routing/modelRouterService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelRouterService.test.js","sourceRoot":"","sources":["../../../src/routing/modelRouterService.test.ts"],"names":[],"mappings":"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"}
@@ -78,34 +78,6 @@ const ClassifierResponseSchema = z.object({
78
78
  complexity_reasoning: z.string(),
79
79
  complexity_score: z.number().min(1).max(100),
80
80
  });
81
- /**
82
- * Deterministically calculates the routing threshold based on the session ID.
83
- * This ensures a consistent experience for the user within a session.
84
- *
85
- * This implementation uses the FNV-1a hash algorithm (32-bit).
86
- * @see https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
87
- *
88
- * @param sessionId The unique session identifier.
89
- * @returns The threshold (50 or 80).
90
- */
91
- function getComplexityThreshold(sessionId) {
92
- const FNV_OFFSET_BASIS_32 = 0x811c9dc5;
93
- const FNV_PRIME_32 = 0x01000193;
94
- let hash = FNV_OFFSET_BASIS_32;
95
- for (let i = 0; i < sessionId.length; i++) {
96
- hash ^= sessionId.charCodeAt(i);
97
- // Multiply by prime (simulate 32-bit overflow with bitwise shift)
98
- hash = Math.imul(hash, FNV_PRIME_32);
99
- }
100
- // Ensure positive integer
101
- hash = hash >>> 0;
102
- // Normalize to 0-99
103
- const normalized = hash % 100;
104
- // 50% split:
105
- // 0-49: Strict (80)
106
- // 50-99: Control (50)
107
- return normalized < 50 ? 80 : 50;
108
- }
109
81
  export class NumericalClassifierStrategy {
110
82
  name = 'numerical_classifier';
111
83
  async route(context, config, baseLlmClient, _localLiteRtLmClient) {
@@ -144,7 +116,7 @@ export class NumericalClassifierStrategy {
144
116
  });
145
117
  const routerResponse = ClassifierResponseSchema.parse(jsonResponse);
146
118
  const score = routerResponse.complexity_score;
147
- const { threshold, groupLabel, modelAlias } = await this.getRoutingDecision(score, config, config.getSessionId() || 'unknown-session');
119
+ const { threshold, groupLabel, modelAlias } = await this.getRoutingDecision(score, config);
148
120
  const [useGemini3_1, useCustomToolModel] = await Promise.all([
149
121
  config.getGemini31Launched(),
150
122
  config.getUseCustomToolModel(),
@@ -165,21 +137,15 @@ export class NumericalClassifierStrategy {
165
137
  return null;
166
138
  }
167
139
  }
168
- async getRoutingDecision(score, config, sessionId) {
169
- let threshold;
170
- let groupLabel;
140
+ async getRoutingDecision(score, config) {
141
+ const threshold = await config.getResolvedClassifierThreshold();
171
142
  const remoteThresholdValue = await config.getClassifierThreshold();
172
- if (remoteThresholdValue !== undefined &&
173
- !isNaN(remoteThresholdValue) &&
174
- remoteThresholdValue >= 0 &&
175
- remoteThresholdValue <= 100) {
176
- threshold = remoteThresholdValue;
143
+ let groupLabel;
144
+ if (threshold === remoteThresholdValue) {
177
145
  groupLabel = 'Remote';
178
146
  }
179
147
  else {
180
- // Fallback to deterministic A/B test
181
- threshold = getComplexityThreshold(sessionId);
182
- groupLabel = threshold === 80 ? 'Strict' : 'Control';
148
+ groupLabel = 'Default';
183
149
  }
184
150
  const modelAlias = score >= threshold ? PRO_MODEL : FLASH_MODEL;
185
151
  return { threshold, groupLabel, modelAlias };
@@ -1 +1 @@
1
- {"version":3,"file":"numericalClassifierStrategy.js","sourceRoot":"","sources":["../../../../src/routing/strategies/numericalClassifierStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numericalClassifierStrategy.js","sourceRoot":"","sources":["../../../../src/routing/strategies/numericalClassifierStrategy.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ describe('NumericalClassifierStrategy', () => {
36
36
  getModel: vi.fn().mockReturnValue(PREVIEW_GEMINI_MODEL_AUTO),
37
37
  getSessionId: vi.fn().mockReturnValue('control-group-id'), // Default to Control Group (Hash 71 >= 50)
38
38
  getNumericalRoutingEnabled: vi.fn().mockResolvedValue(true),
39
+ getResolvedClassifierThreshold: vi.fn().mockResolvedValue(90),
39
40
  getClassifierThreshold: vi.fn().mockResolvedValue(undefined),
40
41
  getGemini31Launched: vi.fn().mockResolvedValue(false),
41
42
  getUseCustomToolModel: vi.fn().mockImplementation(async () => {
@@ -92,72 +93,36 @@ describe('NumericalClassifierStrategy', () => {
92
93
  const textPart = userContent.parts?.[0];
93
94
  expect(textPart?.text).toBe('simple task');
94
95
  });
95
- describe('A/B Testing Logic (Deterministic)', () => {
96
- it('Control Group (SessionID "control-group-id" -> Threshold 50): Score 40 -> FLASH', async () => {
97
- vi.mocked(mockConfig.getSessionId).mockReturnValue('control-group-id'); // Hash 71 -> Control
96
+ describe('Default Logic', () => {
97
+ it('should route to FLASH when score is below 90', async () => {
98
98
  const mockApiResponse = {
99
99
  complexity_reasoning: 'Standard task',
100
- complexity_score: 40,
100
+ complexity_score: 80,
101
101
  };
102
102
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
103
103
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
104
104
  expect(decision).toEqual({
105
105
  model: PREVIEW_GEMINI_FLASH_MODEL,
106
106
  metadata: {
107
- source: 'NumericalClassifier (Control)',
108
- latencyMs: expect.any(Number),
109
- reasoning: expect.stringContaining('Score: 40 / Threshold: 50'),
110
- },
111
- });
112
- });
113
- it('Control Group (SessionID "control-group-id" -> Threshold 50): Score 60 -> PRO', async () => {
114
- vi.mocked(mockConfig.getSessionId).mockReturnValue('control-group-id');
115
- const mockApiResponse = {
116
- complexity_reasoning: 'Complex task',
117
- complexity_score: 60,
118
- };
119
- vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
120
- const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
121
- expect(decision).toEqual({
122
- model: PREVIEW_GEMINI_MODEL,
123
- metadata: {
124
- source: 'NumericalClassifier (Control)',
107
+ source: 'NumericalClassifier (Default)',
125
108
  latencyMs: expect.any(Number),
126
- reasoning: expect.stringContaining('Score: 60 / Threshold: 50'),
109
+ reasoning: expect.stringContaining('Score: 80 / Threshold: 90'),
127
110
  },
128
111
  });
129
112
  });
130
- it('Strict Group (SessionID "test-session-1" -> Threshold 80): Score 60 -> FLASH', async () => {
131
- vi.mocked(mockConfig.getSessionId).mockReturnValue('test-session-1'); // FNV Normalized 18 < 50 -> Strict
132
- const mockApiResponse = {
133
- complexity_reasoning: 'Complex task',
134
- complexity_score: 60,
135
- };
136
- vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
137
- const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
138
- expect(decision).toEqual({
139
- model: PREVIEW_GEMINI_FLASH_MODEL, // Routed to Flash because 60 < 80
140
- metadata: {
141
- source: 'NumericalClassifier (Strict)',
142
- latencyMs: expect.any(Number),
143
- reasoning: expect.stringContaining('Score: 60 / Threshold: 80'),
144
- },
145
- });
146
- });
147
- it('Strict Group (SessionID "test-session-1" -> Threshold 80): Score 90 -> PRO', async () => {
148
- vi.mocked(mockConfig.getSessionId).mockReturnValue('test-session-1');
113
+ it('should route to PRO when score is 90 or above', async () => {
149
114
  const mockApiResponse = {
150
115
  complexity_reasoning: 'Extreme task',
151
- complexity_score: 90,
116
+ complexity_score: 95,
152
117
  };
153
118
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
154
119
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
155
120
  expect(decision).toEqual({
156
121
  model: PREVIEW_GEMINI_MODEL,
157
122
  metadata: {
158
- source: 'NumericalClassifier (Strict)',
123
+ source: 'NumericalClassifier (Default)',
159
124
  latencyMs: expect.any(Number),
160
- reasoning: expect.stringContaining('Score: 90 / Threshold: 80'),
125
+ reasoning: expect.stringContaining('Score: 95 / Threshold: 90'),
161
126
  },
162
127
  });
163
128
  });
@@ -165,6 +130,7 @@ describe('NumericalClassifierStrategy', () => {
165
130
  describe('Remote Threshold Logic', () => {
166
131
  it('should use the remote CLASSIFIER_THRESHOLD if provided (int value)', async () => {
167
132
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(70);
133
+ vi.mocked(mockConfig.getResolvedClassifierThreshold).mockResolvedValue(70);
168
134
  const mockApiResponse = {
169
135
  complexity_reasoning: 'Test task',
170
136
  complexity_score: 60,
@@ -182,6 +148,7 @@ describe('NumericalClassifierStrategy', () => {
182
148
  });
183
149
  it('should use the remote CLASSIFIER_THRESHOLD if provided (float value)', async () => {
184
150
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(45.5);
151
+ vi.mocked(mockConfig.getResolvedClassifierThreshold).mockResolvedValue(45.5);
185
152
  const mockApiResponse = {
186
153
  complexity_reasoning: 'Test task',
187
154
  complexity_score: 40,
@@ -199,6 +166,7 @@ describe('NumericalClassifierStrategy', () => {
199
166
  });
200
167
  it('should use PRO model if score >= remote CLASSIFIER_THRESHOLD', async () => {
201
168
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(30);
169
+ vi.mocked(mockConfig.getResolvedClassifierThreshold).mockResolvedValue(30);
202
170
  const mockApiResponse = {
203
171
  complexity_reasoning: 'Test task',
204
172
  complexity_score: 35,
@@ -214,58 +182,55 @@ describe('NumericalClassifierStrategy', () => {
214
182
  },
215
183
  });
216
184
  });
217
- it('should fall back to A/B testing if CLASSIFIER_THRESHOLD is not present in experiments', async () => {
185
+ it('should fall back to default logic if CLASSIFIER_THRESHOLD is not present in experiments', async () => {
218
186
  // Mock getClassifierThreshold to return undefined
219
187
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(undefined);
220
- vi.mocked(mockConfig.getSessionId).mockReturnValue('control-group-id'); // Should resolve to Control (50)
221
188
  const mockApiResponse = {
222
189
  complexity_reasoning: 'Test task',
223
- complexity_score: 40,
190
+ complexity_score: 80,
224
191
  };
225
192
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
226
193
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
227
194
  expect(decision).toEqual({
228
- model: PREVIEW_GEMINI_FLASH_MODEL, // Score 40 < Default A/B Threshold 50
195
+ model: PREVIEW_GEMINI_FLASH_MODEL, // Score 80 < Default Threshold 90
229
196
  metadata: {
230
- source: 'NumericalClassifier (Control)',
197
+ source: 'NumericalClassifier (Default)',
231
198
  latencyMs: expect.any(Number),
232
- reasoning: expect.stringContaining('Score: 40 / Threshold: 50'),
199
+ reasoning: expect.stringContaining('Score: 80 / Threshold: 90'),
233
200
  },
234
201
  });
235
202
  });
236
- it('should fall back to A/B testing if CLASSIFIER_THRESHOLD is out of range (less than 0)', async () => {
203
+ it('should fall back to default logic if CLASSIFIER_THRESHOLD is out of range (less than 0)', async () => {
237
204
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(-10);
238
- vi.mocked(mockConfig.getSessionId).mockReturnValue('control-group-id');
239
205
  const mockApiResponse = {
240
206
  complexity_reasoning: 'Test task',
241
- complexity_score: 40,
207
+ complexity_score: 80,
242
208
  };
243
209
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
244
210
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
245
211
  expect(decision).toEqual({
246
212
  model: PREVIEW_GEMINI_FLASH_MODEL,
247
213
  metadata: {
248
- source: 'NumericalClassifier (Control)',
214
+ source: 'NumericalClassifier (Default)',
249
215
  latencyMs: expect.any(Number),
250
- reasoning: expect.stringContaining('Score: 40 / Threshold: 50'),
216
+ reasoning: expect.stringContaining('Score: 80 / Threshold: 90'),
251
217
  },
252
218
  });
253
219
  });
254
- it('should fall back to A/B testing if CLASSIFIER_THRESHOLD is out of range (greater than 100)', async () => {
220
+ it('should fall back to default logic if CLASSIFIER_THRESHOLD is out of range (greater than 100)', async () => {
255
221
  vi.mocked(mockConfig.getClassifierThreshold).mockResolvedValue(110);
256
- vi.mocked(mockConfig.getSessionId).mockReturnValue('control-group-id');
257
222
  const mockApiResponse = {
258
223
  complexity_reasoning: 'Test task',
259
- complexity_score: 60,
224
+ complexity_score: 95,
260
225
  };
261
226
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
262
227
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
263
228
  expect(decision).toEqual({
264
229
  model: PREVIEW_GEMINI_MODEL,
265
230
  metadata: {
266
- source: 'NumericalClassifier (Control)',
231
+ source: 'NumericalClassifier (Default)',
267
232
  latencyMs: expect.any(Number),
268
- reasoning: expect.stringContaining('Score: 60 / Threshold: 50'),
233
+ reasoning: expect.stringContaining('Score: 95 / Threshold: 90'),
269
234
  },
270
235
  });
271
236
  });
@@ -371,7 +336,7 @@ describe('NumericalClassifierStrategy', () => {
371
336
  vi.mocked(mockConfig.getGemini31Launched).mockResolvedValue(true);
372
337
  const mockApiResponse = {
373
338
  complexity_reasoning: 'Complex task',
374
- complexity_score: 80,
339
+ complexity_score: 95,
375
340
  };
376
341
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
377
342
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
@@ -384,7 +349,7 @@ describe('NumericalClassifierStrategy', () => {
384
349
  });
385
350
  const mockApiResponse = {
386
351
  complexity_reasoning: 'Complex task',
387
- complexity_score: 80,
352
+ complexity_score: 95,
388
353
  };
389
354
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
390
355
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
@@ -397,7 +362,7 @@ describe('NumericalClassifierStrategy', () => {
397
362
  });
398
363
  const mockApiResponse = {
399
364
  complexity_reasoning: 'Complex task',
400
- complexity_score: 80,
365
+ complexity_score: 95,
401
366
  };
402
367
  vi.mocked(mockBaseLlmClient.generateJson).mockResolvedValue(mockApiResponse);
403
368
  const decision = await strategy.route(mockContext, mockConfig, mockBaseLlmClient, mockLocalLiteRtLmClient);
@@ -1 +1 @@
1
- {"version":3,"file":"numericalClassifierStrategy.test.js","sourceRoot":"","sources":["../../../../src/routing/strategies/numericalClassifierStrategy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numericalClassifierStrategy.test.js","sourceRoot":"","sources":["../../../../src/routing/strategies/numericalClassifierStrategy.test.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@
6
6
  import { ToolErrorType } from '../tools/tool-error.js';
7
7
  import { type CheckResult, type PolicyRule } from '../policy/types.js';
8
8
  import type { Config } from '../config/config.js';
9
- import type { MessageBus } from '../confirmation-bus/message-bus.js';
10
9
  import { type SerializableConfirmationDetails } from '../confirmation-bus/types.js';
11
10
  import { ToolConfirmationOutcome, type AnyDeclarativeTool, type AnyToolInvocation } from '../tools/tools.js';
12
11
  import type { ValidatingToolCall } from './types.js';
12
+ import type { AgentLoopContext } from '../config/agent-loop-context.js';
13
13
  /**
14
14
  * Helper to format the policy denial error.
15
15
  */
@@ -22,13 +22,9 @@ export declare function getPolicyDenialError(config: Config, rule?: PolicyRule):
22
22
  * @returns The PolicyDecision.
23
23
  * @throws Error if policy requires ASK_USER but the CLI is non-interactive.
24
24
  */
25
- export declare function checkPolicy(toolCall: ValidatingToolCall, config: Config): Promise<CheckResult>;
25
+ export declare function checkPolicy(toolCall: ValidatingToolCall, config: Config, subagent?: string): Promise<CheckResult>;
26
26
  /**
27
27
  * Evaluates the outcome of a user confirmation and dispatches
28
28
  * policy config updates.
29
29
  */
30
- export declare function updatePolicy(tool: AnyDeclarativeTool, outcome: ToolConfirmationOutcome, confirmationDetails: SerializableConfirmationDetails | undefined, deps: {
31
- config: Config;
32
- messageBus: MessageBus;
33
- toolInvocation?: AnyToolInvocation;
34
- }): Promise<void>;
30
+ export declare function updatePolicy(tool: AnyDeclarativeTool, outcome: ToolConfirmationOutcome, confirmationDetails: SerializableConfirmationDetails | undefined, context: AgentLoopContext, toolInvocation?: AnyToolInvocation): Promise<void>;
@@ -26,14 +26,14 @@ export function getPolicyDenialError(config, rule) {
26
26
  * @returns The PolicyDecision.
27
27
  * @throws Error if policy requires ASK_USER but the CLI is non-interactive.
28
28
  */
29
- export async function checkPolicy(toolCall, config) {
29
+ export async function checkPolicy(toolCall, config, subagent) {
30
30
  const serverName = toolCall.tool instanceof DiscoveredMCPTool
31
31
  ? toolCall.tool.serverName
32
32
  : undefined;
33
33
  const toolAnnotations = toolCall.tool.toolAnnotations;
34
34
  const result = await config
35
35
  .getPolicyEngine()
36
- .check({ name: toolCall.request.name, args: toolCall.request.args }, serverName, toolAnnotations);
36
+ .check({ name: toolCall.request.name, args: toolCall.request.args }, serverName, toolAnnotations, subagent);
37
37
  const { decision } = result;
38
38
  // If the tool call was initiated by the client (e.g. via a slash command),
39
39
  // we treat it as implicitly confirmed by the user and bypass the
@@ -63,7 +63,8 @@ export async function checkPolicy(toolCall, config) {
63
63
  * Evaluates the outcome of a user confirmation and dispatches
64
64
  * policy config updates.
65
65
  */
66
- export async function updatePolicy(tool, outcome, confirmationDetails, deps) {
66
+ export async function updatePolicy(tool, outcome, confirmationDetails, context, toolInvocation) {
67
+ const deps = { ...context, toolInvocation };
67
68
  // Mode Transitions (AUTO_EDIT)
68
69
  if (isAutoEditTransition(tool, outcome)) {
69
70
  deps.config.setApprovalMode(ApprovalMode.AUTO_EDIT);
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/scheduler/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/scheduler/policy.ts"],"names":[],"mappings":"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"}