@vybestack/llxprt-code-core 0.1.19-alpha → 0.1.19-gamma

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 (553) hide show
  1. package/README.md +49 -2
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +5 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/auth/anthropic-device-flow.d.ts +53 -0
  6. package/dist/src/auth/anthropic-device-flow.js +208 -0
  7. package/dist/src/auth/anthropic-device-flow.js.map +1 -0
  8. package/dist/src/auth/precedence.d.ts +55 -0
  9. package/dist/src/auth/precedence.js +211 -0
  10. package/dist/src/auth/precedence.js.map +1 -0
  11. package/dist/src/auth/qwen-device-flow.d.ts +45 -0
  12. package/dist/src/auth/qwen-device-flow.js +179 -0
  13. package/dist/src/auth/qwen-device-flow.js.map +1 -0
  14. package/dist/src/auth/token-store.d.ts +66 -0
  15. package/dist/src/auth/token-store.js +151 -0
  16. package/dist/src/auth/token-store.js.map +1 -0
  17. package/dist/src/auth/types.d.ts +130 -0
  18. package/dist/src/auth/types.js +60 -0
  19. package/dist/src/auth/types.js.map +1 -0
  20. package/dist/src/code_assist/converter.d.ts +2 -1
  21. package/dist/src/code_assist/converter.js +1 -1
  22. package/dist/src/code_assist/converter.js.map +1 -1
  23. package/dist/src/code_assist/oauth2.js +2 -1
  24. package/dist/src/code_assist/oauth2.js.map +1 -1
  25. package/dist/src/config/config.d.ts +61 -2
  26. package/dist/src/config/config.js +134 -4
  27. package/dist/src/config/config.js.map +1 -1
  28. package/dist/src/config/endpoints.d.ts +60 -0
  29. package/dist/src/config/endpoints.js +126 -0
  30. package/dist/src/config/endpoints.js.map +1 -0
  31. package/dist/src/config/profileManager.d.ts +14 -4
  32. package/dist/src/config/profileManager.js +90 -11
  33. package/dist/src/config/profileManager.js.map +1 -1
  34. package/dist/src/core/client.js +9 -12
  35. package/dist/src/core/client.js.map +1 -1
  36. package/dist/src/core/contentGenerator.d.ts +4 -1
  37. package/dist/src/core/contentGenerator.js +3 -0
  38. package/dist/src/core/contentGenerator.js.map +1 -1
  39. package/dist/src/core/logger.d.ts +1 -0
  40. package/dist/src/core/logger.js +18 -0
  41. package/dist/src/core/logger.js.map +1 -1
  42. package/dist/src/core/loggingContentGenerator.d.ts +24 -0
  43. package/dist/src/core/loggingContentGenerator.js +89 -0
  44. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  45. package/dist/src/core/nonInteractiveToolExecutor.js +17 -0
  46. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  47. package/dist/src/core/subagent.js +12 -10
  48. package/dist/src/core/subagent.js.map +1 -1
  49. package/dist/src/ide/ide-client.d.ts +1 -1
  50. package/dist/src/ide/ide-client.js +21 -7
  51. package/dist/src/ide/ide-client.js.map +1 -1
  52. package/dist/src/index.d.ts +11 -0
  53. package/dist/src/index.js +12 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/providers/BaseProvider.d.ts +149 -0
  56. package/dist/src/providers/BaseProvider.js +315 -0
  57. package/dist/src/providers/BaseProvider.js.map +1 -0
  58. package/dist/src/providers/IProvider.d.ts +1 -0
  59. package/dist/src/providers/IProviderManager.d.ts +5 -0
  60. package/dist/src/providers/LoggingProviderWrapper.d.ts +54 -0
  61. package/dist/src/providers/LoggingProviderWrapper.js +350 -0
  62. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -0
  63. package/dist/src/providers/ProviderManager.d.ts +20 -1
  64. package/dist/src/providers/ProviderManager.js +236 -14
  65. package/dist/src/providers/ProviderManager.js.map +1 -1
  66. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  67. package/dist/src/providers/anthropic/AnthropicProvider.js +172 -26
  68. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  69. package/dist/src/providers/gemini/GeminiProvider.d.ts +16 -7
  70. package/dist/src/providers/gemini/GeminiProvider.js +163 -148
  71. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  72. package/dist/src/providers/logging/ProviderContentExtractor.d.ts +27 -0
  73. package/dist/src/providers/logging/ProviderContentExtractor.js +198 -0
  74. package/dist/src/providers/logging/ProviderContentExtractor.js.map +1 -0
  75. package/dist/src/providers/logging/ProviderPerformanceTracker.d.ts +43 -0
  76. package/dist/src/providers/logging/ProviderPerformanceTracker.js +98 -0
  77. package/dist/src/providers/logging/ProviderPerformanceTracker.js.map +1 -0
  78. package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
  79. package/dist/src/providers/openai/OpenAIProvider.js +373 -40
  80. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  81. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  82. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  83. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  84. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  85. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  86. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  87. package/dist/src/providers/types.d.ts +47 -0
  88. package/dist/src/services/git-stats-service.d.ts +32 -0
  89. package/dist/src/services/git-stats-service.js +22 -0
  90. package/dist/src/services/git-stats-service.js.map +1 -0
  91. package/dist/src/services/loopDetectionService.js +10 -6
  92. package/dist/src/services/loopDetectionService.js.map +1 -1
  93. package/dist/src/services/shellExecutionService.js +44 -8
  94. package/dist/src/services/shellExecutionService.js.map +1 -1
  95. package/dist/src/settings/SettingsService.d.ts +32 -0
  96. package/dist/src/settings/SettingsService.js +204 -0
  97. package/dist/src/settings/SettingsService.js.map +1 -0
  98. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  99. package/dist/src/settings/settingsServiceInstance.js +24 -0
  100. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  101. package/dist/src/settings/types.d.ts +141 -0
  102. package/dist/src/settings/types.js +5 -0
  103. package/dist/src/settings/types.js.map +1 -0
  104. package/dist/src/storage/ConversationFileWriter.d.ts +16 -0
  105. package/dist/src/storage/ConversationFileWriter.js +69 -0
  106. package/dist/src/storage/ConversationFileWriter.js.map +1 -0
  107. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +8 -0
  108. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +56 -3
  109. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  110. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  111. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  112. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  113. package/dist/src/telemetry/constants.d.ts +5 -0
  114. package/dist/src/telemetry/constants.js +5 -0
  115. package/dist/src/telemetry/constants.js.map +1 -1
  116. package/dist/src/telemetry/loggers.d.ts +5 -1
  117. package/dist/src/telemetry/loggers.js +87 -1
  118. package/dist/src/telemetry/loggers.js.map +1 -1
  119. package/dist/src/telemetry/metrics.d.ts +2 -1
  120. package/dist/src/telemetry/metrics.js +7 -1
  121. package/dist/src/telemetry/metrics.js.map +1 -1
  122. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  123. package/dist/src/telemetry/tool-call-decision.js +29 -0
  124. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  125. package/dist/src/telemetry/types.d.ts +56 -1
  126. package/dist/src/telemetry/types.js +123 -0
  127. package/dist/src/telemetry/types.js.map +1 -1
  128. package/dist/src/telemetry/uiTelemetry.d.ts +2 -1
  129. package/dist/src/telemetry/uiTelemetry.js +1 -1
  130. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  131. package/dist/src/tools/diffOptions.d.ts +2 -0
  132. package/dist/src/tools/diffOptions.js +28 -0
  133. package/dist/src/tools/diffOptions.js.map +1 -1
  134. package/dist/src/tools/edit.d.ts +4 -0
  135. package/dist/src/tools/edit.js +38 -8
  136. package/dist/src/tools/edit.js.map +1 -1
  137. package/dist/src/tools/mcp-client.d.ts +4 -3
  138. package/dist/src/tools/mcp-client.js +23 -6
  139. package/dist/src/tools/mcp-client.js.map +1 -1
  140. package/dist/src/tools/read-file.js +34 -2
  141. package/dist/src/tools/read-file.js.map +1 -1
  142. package/dist/src/tools/todo-pause.d.ts +22 -0
  143. package/dist/src/tools/todo-pause.js +93 -0
  144. package/dist/src/tools/todo-pause.js.map +1 -0
  145. package/dist/src/tools/tool-error.d.ts +4 -0
  146. package/dist/src/tools/tool-error.js +4 -0
  147. package/dist/src/tools/tool-error.js.map +1 -1
  148. package/dist/src/tools/tool-registry.js +3 -3
  149. package/dist/src/tools/tool-registry.js.map +1 -1
  150. package/dist/src/tools/tools.d.ts +7 -0
  151. package/dist/src/tools/tools.js.map +1 -1
  152. package/dist/src/tools/write-file.d.ts +4 -0
  153. package/dist/src/tools/write-file.js +90 -16
  154. package/dist/src/tools/write-file.js.map +1 -1
  155. package/dist/src/types/modelParams.d.ts +2 -0
  156. package/dist/src/utils/environmentContext.js +1 -1
  157. package/dist/src/utils/errors.d.ts +3 -0
  158. package/dist/src/utils/errors.js +6 -0
  159. package/dist/src/utils/errors.js.map +1 -1
  160. package/dist/src/utils/fileUtils.d.ts +7 -0
  161. package/dist/src/utils/fileUtils.js +9 -0
  162. package/dist/src/utils/fileUtils.js.map +1 -1
  163. package/package.json +4 -2
  164. package/dist/src/code_assist/converter.test.d.ts +0 -6
  165. package/dist/src/code_assist/converter.test.js +0 -232
  166. package/dist/src/code_assist/converter.test.js.map +0 -1
  167. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  168. package/dist/src/code_assist/oauth2.test.js +0 -370
  169. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  170. package/dist/src/code_assist/server.test.d.ts +0 -6
  171. package/dist/src/code_assist/server.test.js +0 -131
  172. package/dist/src/code_assist/server.test.js.map +0 -1
  173. package/dist/src/code_assist/setup.test.d.ts +0 -6
  174. package/dist/src/code_assist/setup.test.js +0 -65
  175. package/dist/src/code_assist/setup.test.js.map +0 -1
  176. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  177. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  178. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  179. package/dist/src/config/config.test.d.ts +0 -6
  180. package/dist/src/config/config.test.js +0 -369
  181. package/dist/src/config/config.test.js.map +0 -1
  182. package/dist/src/config/flashFallback.test.d.ts +0 -6
  183. package/dist/src/config/flashFallback.test.js +0 -91
  184. package/dist/src/config/flashFallback.test.js.map +0 -1
  185. package/dist/src/core/client.test.d.ts +0 -6
  186. package/dist/src/core/client.test.js +0 -1322
  187. package/dist/src/core/client.test.js.map +0 -1
  188. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  189. package/dist/src/core/contentGenerator.test.js +0 -103
  190. package/dist/src/core/contentGenerator.test.js.map +0 -1
  191. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  192. package/dist/src/core/coreToolScheduler.test.js +0 -637
  193. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  194. package/dist/src/core/geminiChat.test.d.ts +0 -6
  195. package/dist/src/core/geminiChat.test.js +0 -425
  196. package/dist/src/core/geminiChat.test.js.map +0 -1
  197. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  198. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  199. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  200. package/dist/src/core/logger.test.d.ts +0 -6
  201. package/dist/src/core/logger.test.js +0 -438
  202. package/dist/src/core/logger.test.js.map +0 -1
  203. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  204. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  205. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  206. package/dist/src/core/prompts-async.test.d.ts +0 -6
  207. package/dist/src/core/prompts-async.test.js +0 -115
  208. package/dist/src/core/prompts-async.test.js.map +0 -1
  209. package/dist/src/core/prompts.test.d.ts +0 -6
  210. package/dist/src/core/prompts.test.js +0 -68
  211. package/dist/src/core/prompts.test.js.map +0 -1
  212. package/dist/src/core/subagent.test.d.ts +0 -6
  213. package/dist/src/core/subagent.test.js +0 -519
  214. package/dist/src/core/subagent.test.js.map +0 -1
  215. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  216. package/dist/src/core/tokenLimits.test.js +0 -66
  217. package/dist/src/core/tokenLimits.test.js.map +0 -1
  218. package/dist/src/core/turn.test.d.ts +0 -6
  219. package/dist/src/core/turn.test.js +0 -366
  220. package/dist/src/core/turn.test.js.map +0 -1
  221. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  222. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  223. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  224. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  225. package/dist/src/ide/ide-installer.test.js +0 -55
  226. package/dist/src/ide/ide-installer.test.js.map +0 -1
  227. package/dist/src/ide/ideContext.test.d.ts +0 -6
  228. package/dist/src/ide/ideContext.test.js +0 -265
  229. package/dist/src/ide/ideContext.test.js.map +0 -1
  230. package/dist/src/index.test.d.ts +0 -6
  231. package/dist/src/index.test.js +0 -12
  232. package/dist/src/index.test.js.map +0 -1
  233. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  234. package/dist/src/integration-tests/todo-system.test.js +0 -46
  235. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  236. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  237. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  238. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  239. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  240. package/dist/src/mcp/oauth-provider.test.js +0 -602
  241. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  242. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  243. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  244. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  245. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  246. package/dist/src/mcp/oauth-utils.test.js +0 -144
  247. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  248. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  249. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  250. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  251. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  252. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  253. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  254. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  255. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  256. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  257. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  258. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  259. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  260. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  261. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  262. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  263. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  264. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  265. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  266. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  267. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  268. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  269. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  270. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  271. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  272. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  273. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  274. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  275. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  276. package/dist/src/providers/ProviderManager.test.js +0 -284
  277. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  278. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  279. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  280. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  281. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  282. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  283. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  284. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  285. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  286. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  287. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  288. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  289. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  290. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  291. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  292. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  293. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  294. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
  295. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  296. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  297. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  298. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  299. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  300. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  301. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  302. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  303. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  304. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  305. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  306. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  307. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  308. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  309. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  310. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  311. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  312. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  313. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  314. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  315. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  316. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  317. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  318. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  319. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  320. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  321. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  322. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  323. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  324. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
  325. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  326. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  327. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  328. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  329. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  330. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  331. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  332. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  333. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  334. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  335. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  336. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  337. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  338. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  339. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  340. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  341. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  342. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  343. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  344. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  345. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  346. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  347. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  348. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  349. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  350. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  351. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  352. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  353. package/dist/src/services/gitService.test.d.ts +0 -6
  354. package/dist/src/services/gitService.test.js +0 -209
  355. package/dist/src/services/gitService.test.js.map +0 -1
  356. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  357. package/dist/src/services/loopDetectionService.test.js +0 -345
  358. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  359. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  360. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  361. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  362. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  363. package/dist/src/services/shellExecutionService.test.js +0 -272
  364. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  365. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  366. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  367. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  368. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  369. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  370. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  371. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  372. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  373. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  374. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  375. package/dist/src/telemetry/loggers.test.js +0 -572
  376. package/dist/src/telemetry/loggers.test.js.map +0 -1
  377. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  378. package/dist/src/telemetry/metrics.test.js +0 -162
  379. package/dist/src/telemetry/metrics.test.js.map +0 -1
  380. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  381. package/dist/src/telemetry/telemetry.test.js +0 -54
  382. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  383. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  384. package/dist/src/telemetry/uiTelemetry.test.js +0 -517
  385. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  386. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  387. package/dist/src/tools/ToolFormatter.test.js +0 -349
  388. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  389. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  390. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  391. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  392. package/dist/src/tools/edit.test.d.ts +0 -6
  393. package/dist/src/tools/edit.test.js +0 -688
  394. package/dist/src/tools/edit.test.js.map +0 -1
  395. package/dist/src/tools/glob.test.d.ts +0 -6
  396. package/dist/src/tools/glob.test.js +0 -332
  397. package/dist/src/tools/glob.test.js.map +0 -1
  398. package/dist/src/tools/grep.test.d.ts +0 -6
  399. package/dist/src/tools/grep.test.js +0 -272
  400. package/dist/src/tools/grep.test.js.map +0 -1
  401. package/dist/src/tools/ls.test.d.ts +0 -6
  402. package/dist/src/tools/ls.test.js +0 -357
  403. package/dist/src/tools/ls.test.js.map +0 -1
  404. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  405. package/dist/src/tools/mcp-client.test.js +0 -575
  406. package/dist/src/tools/mcp-client.test.js.map +0 -1
  407. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  408. package/dist/src/tools/mcp-tool.test.js +0 -501
  409. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  410. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  411. package/dist/src/tools/memoryTool.test.js +0 -266
  412. package/dist/src/tools/memoryTool.test.js.map +0 -1
  413. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  414. package/dist/src/tools/modifiable-tool.test.js +0 -193
  415. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  416. package/dist/src/tools/read-file.test.d.ts +0 -6
  417. package/dist/src/tools/read-file.test.js +0 -313
  418. package/dist/src/tools/read-file.test.js.map +0 -1
  419. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  420. package/dist/src/tools/read-many-files.test.js +0 -644
  421. package/dist/src/tools/read-many-files.test.js.map +0 -1
  422. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  423. package/dist/src/tools/shell.multibyte.test.js +0 -75
  424. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  425. package/dist/src/tools/shell.test.d.ts +0 -6
  426. package/dist/src/tools/shell.test.js +0 -350
  427. package/dist/src/tools/shell.test.js.map +0 -1
  428. package/dist/src/tools/todo-read.test.d.ts +0 -6
  429. package/dist/src/tools/todo-read.test.js +0 -162
  430. package/dist/src/tools/todo-read.test.js.map +0 -1
  431. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  432. package/dist/src/tools/todo-schemas.test.js +0 -341
  433. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  434. package/dist/src/tools/todo-store.test.d.ts +0 -6
  435. package/dist/src/tools/todo-store.test.js +0 -169
  436. package/dist/src/tools/todo-store.test.js.map +0 -1
  437. package/dist/src/tools/todo-write.test.d.ts +0 -6
  438. package/dist/src/tools/todo-write.test.js +0 -226
  439. package/dist/src/tools/todo-write.test.js.map +0 -1
  440. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  441. package/dist/src/tools/tool-registry.test.js +0 -468
  442. package/dist/src/tools/tool-registry.test.js.map +0 -1
  443. package/dist/src/tools/tools.test.d.ts +0 -6
  444. package/dist/src/tools/tools.test.js +0 -117
  445. package/dist/src/tools/tools.test.js.map +0 -1
  446. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  447. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  448. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  449. package/dist/src/tools/web-search.test.d.ts +0 -6
  450. package/dist/src/tools/web-search.test.js +0 -229
  451. package/dist/src/tools/web-search.test.js.map +0 -1
  452. package/dist/src/tools/write-file.test.d.ts +0 -6
  453. package/dist/src/tools/write-file.test.js +0 -464
  454. package/dist/src/tools/write-file.test.js.map +0 -1
  455. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  456. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  457. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  458. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  459. package/dist/src/utils/editCorrector.test.js +0 -564
  460. package/dist/src/utils/editCorrector.test.js.map +0 -1
  461. package/dist/src/utils/editor.test.d.ts +0 -6
  462. package/dist/src/utils/editor.test.js +0 -445
  463. package/dist/src/utils/editor.test.js.map +0 -1
  464. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  465. package/dist/src/utils/environmentContext.test.js +0 -139
  466. package/dist/src/utils/environmentContext.test.js.map +0 -1
  467. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  468. package/dist/src/utils/errorReporting.test.js +0 -130
  469. package/dist/src/utils/errorReporting.test.js.map +0 -1
  470. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  471. package/dist/src/utils/fileUtils.test.js +0 -363
  472. package/dist/src/utils/fileUtils.test.js.map +0 -1
  473. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  474. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  475. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  476. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  477. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  478. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  479. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  480. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  481. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  482. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  483. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  484. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  485. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  486. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  487. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  488. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  489. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  490. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  491. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  492. package/dist/src/utils/getFolderStructure.test.js +0 -282
  493. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  494. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  495. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  496. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  497. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  498. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  499. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  500. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  501. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  502. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  503. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  504. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  505. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  506. package/dist/src/utils/partUtils.test.d.ts +0 -6
  507. package/dist/src/utils/partUtils.test.js +0 -130
  508. package/dist/src/utils/partUtils.test.js.map +0 -1
  509. package/dist/src/utils/paths.test.d.ts +0 -6
  510. package/dist/src/utils/paths.test.js +0 -153
  511. package/dist/src/utils/paths.test.js.map +0 -1
  512. package/dist/src/utils/retry.test.d.ts +0 -6
  513. package/dist/src/utils/retry.test.js +0 -322
  514. package/dist/src/utils/retry.test.js.map +0 -1
  515. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  516. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  517. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  518. package/dist/src/utils/sanitization.test.d.ts +0 -6
  519. package/dist/src/utils/sanitization.test.js +0 -81
  520. package/dist/src/utils/sanitization.test.js.map +0 -1
  521. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  522. package/dist/src/utils/schemaValidator.test.js +0 -146
  523. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  524. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  525. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  526. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  527. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  528. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  529. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  530. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  531. package/dist/src/utils/shell-utils.test.js +0 -200
  532. package/dist/src/utils/shell-utils.test.js.map +0 -1
  533. package/dist/src/utils/summarizer.test.d.ts +0 -6
  534. package/dist/src/utils/summarizer.test.js +0 -131
  535. package/dist/src/utils/summarizer.test.js.map +0 -1
  536. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  537. package/dist/src/utils/systemEncoding.test.js +0 -368
  538. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  539. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  540. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  541. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  542. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  543. package/dist/src/utils/unicodeUtils.test.js +0 -120
  544. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  545. package/dist/src/utils/user_account.test.d.ts +0 -6
  546. package/dist/src/utils/user_account.test.js +0 -153
  547. package/dist/src/utils/user_account.test.js.map +0 -1
  548. package/dist/src/utils/user_id.test.d.ts +0 -6
  549. package/dist/src/utils/user_id.test.js +0 -21
  550. package/dist/src/utils/user_id.test.js.map +0 -1
  551. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  552. package/dist/src/utils/workspaceContext.test.js +0 -209
  553. package/dist/src/utils/workspaceContext.test.js.map +0 -1
@@ -1,532 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach } from 'vitest';
7
- import { WebFetchTool } from './web-fetch.js';
8
- import * as fetchUtils from '../utils/fetch.js';
9
- describe('WebFetchTool Integration Tests', () => {
10
- let webFetchTool;
11
- let mockConfig;
12
- let mockAbortSignal;
13
- let mockProviderManager;
14
- let mockGeminiProvider;
15
- let mockOpenAIProvider;
16
- let mockAnthropicProvider;
17
- beforeEach(() => {
18
- vi.clearAllMocks();
19
- // Create mock providers
20
- mockGeminiProvider = {
21
- name: 'gemini',
22
- getModels: vi.fn().mockResolvedValue([]),
23
- generateChatCompletion: vi.fn(),
24
- getServerTools: vi.fn().mockReturnValue(['web_fetch', 'web_search']),
25
- invokeServerTool: vi.fn(),
26
- };
27
- mockOpenAIProvider = {
28
- name: 'openai',
29
- getModels: vi.fn().mockResolvedValue([]),
30
- generateChatCompletion: vi.fn(),
31
- getServerTools: vi.fn().mockReturnValue([]), // OpenAI doesn't have server tools
32
- invokeServerTool: vi.fn(),
33
- };
34
- mockAnthropicProvider = {
35
- name: 'anthropic',
36
- getModels: vi.fn().mockResolvedValue([]),
37
- generateChatCompletion: vi.fn(),
38
- getServerTools: vi.fn().mockReturnValue([]), // Anthropic doesn't have server tools
39
- invokeServerTool: vi.fn(),
40
- };
41
- // Create mock provider manager
42
- mockProviderManager = {
43
- registerProvider: vi.fn(),
44
- setActiveProvider: vi.fn(),
45
- clearActiveProvider: vi.fn(),
46
- hasActiveProvider: vi.fn().mockReturnValue(true),
47
- getActiveProvider: vi.fn().mockReturnValue(mockGeminiProvider),
48
- getActiveProviderName: vi.fn().mockReturnValue('gemini'),
49
- getAvailableModels: vi.fn().mockResolvedValue([]),
50
- listProviders: vi.fn().mockReturnValue(['gemini', 'openai', 'anthropic']),
51
- getServerToolsProvider: vi.fn().mockReturnValue(mockGeminiProvider),
52
- setServerToolsProvider: vi.fn(),
53
- };
54
- // Create mock config with provider manager
55
- mockConfig = {
56
- getContentGeneratorConfig: vi.fn().mockReturnValue({
57
- providerManager: mockProviderManager,
58
- }),
59
- getApprovalMode: vi.fn().mockReturnValue('auto_edit'),
60
- setApprovalMode: vi.fn(),
61
- getProxy: vi.fn().mockReturnValue(null),
62
- };
63
- webFetchTool = new WebFetchTool(mockConfig);
64
- mockAbortSignal = new AbortController().signal;
65
- });
66
- describe('Web-fetch with Gemini as active provider', () => {
67
- it('should successfully fetch content when Gemini is active', async () => {
68
- // Mock successful web fetch response
69
- const mockResponse = {
70
- candidates: [
71
- {
72
- content: {
73
- parts: [{ text: 'This is the fetched content from example.com' }],
74
- role: 'model',
75
- },
76
- urlContextMetadata: {
77
- urlMetadata: [
78
- {
79
- retrievedUrl: 'https://example.com',
80
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
81
- },
82
- ],
83
- },
84
- groundingMetadata: {
85
- groundingChunks: [
86
- {
87
- web: {
88
- title: 'Example Page',
89
- uri: 'https://example.com',
90
- },
91
- },
92
- ],
93
- },
94
- },
95
- ],
96
- };
97
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
98
- const result = await webFetchTool.execute({ prompt: 'Summarize the content from https://example.com' }, mockAbortSignal);
99
- expect(mockGeminiProvider.invokeServerTool).toHaveBeenCalledWith('web_fetch', { prompt: 'Summarize the content from https://example.com' }, { signal: mockAbortSignal });
100
- expect(result.llmContent).toContain('This is the fetched content from example.com');
101
- expect(result.llmContent).toContain('Sources:');
102
- expect(result.llmContent).toContain('[1] Example Page (https://example.com)');
103
- expect(result.returnDisplay).toBe('Content processed from prompt.');
104
- });
105
- it('should handle multiple URLs in prompt', async () => {
106
- const mockResponse = {
107
- candidates: [
108
- {
109
- content: {
110
- parts: [{ text: 'Summary of both pages' }],
111
- role: 'model',
112
- },
113
- urlContextMetadata: {
114
- urlMetadata: [
115
- {
116
- retrievedUrl: 'https://example1.com',
117
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
118
- },
119
- {
120
- retrievedUrl: 'https://example2.com',
121
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
122
- },
123
- ],
124
- },
125
- },
126
- ],
127
- };
128
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
129
- const result = await webFetchTool.execute({ prompt: 'Compare https://example1.com and https://example2.com' }, mockAbortSignal);
130
- expect(result.llmContent).toContain('Summary of both pages');
131
- expect(result.returnDisplay).toBe('Content processed from prompt.');
132
- });
133
- });
134
- describe('Web-fetch with OpenAI as active provider', () => {
135
- beforeEach(() => {
136
- // Set OpenAI as active provider, but Gemini remains server tools provider
137
- mockProviderManager.getActiveProvider.mockReturnValue(mockOpenAIProvider);
138
- mockProviderManager.getActiveProviderName.mockReturnValue('openai');
139
- // Server tools provider should still be Gemini
140
- mockProviderManager.getServerToolsProvider.mockReturnValue(mockGeminiProvider);
141
- });
142
- it('should use Gemini for web-fetch even when OpenAI is active', async () => {
143
- const mockResponse = {
144
- candidates: [
145
- {
146
- content: {
147
- parts: [{ text: 'Content fetched via Gemini' }],
148
- role: 'model',
149
- },
150
- urlContextMetadata: {
151
- urlMetadata: [
152
- {
153
- retrievedUrl: 'https://example.com',
154
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
155
- },
156
- ],
157
- },
158
- },
159
- ],
160
- };
161
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
162
- const result = await webFetchTool.execute({ prompt: 'Get content from https://example.com' }, mockAbortSignal);
163
- // Should call Gemini's invokeServerTool, not OpenAI's
164
- expect(mockGeminiProvider.invokeServerTool).toHaveBeenCalled();
165
- expect(mockOpenAIProvider.invokeServerTool).not.toHaveBeenCalled();
166
- expect(result.llmContent).toContain('Content fetched via Gemini');
167
- expect(result.returnDisplay).toBe('Content processed from prompt.');
168
- });
169
- });
170
- describe('Web-fetch with Anthropic as active provider', () => {
171
- beforeEach(() => {
172
- // Set Anthropic as active provider, but Gemini remains server tools provider
173
- mockProviderManager.getActiveProvider.mockReturnValue(mockAnthropicProvider);
174
- mockProviderManager.getActiveProviderName.mockReturnValue('anthropic');
175
- // Server tools provider should still be Gemini
176
- mockProviderManager.getServerToolsProvider.mockReturnValue(mockGeminiProvider);
177
- });
178
- it('should use Gemini for web-fetch even when Anthropic is active', async () => {
179
- const mockResponse = {
180
- candidates: [
181
- {
182
- content: {
183
- parts: [{ text: 'Anthropic user but Gemini fetched this' }],
184
- role: 'model',
185
- },
186
- urlContextMetadata: {
187
- urlMetadata: [
188
- {
189
- retrievedUrl: 'https://example.com',
190
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
191
- },
192
- ],
193
- },
194
- },
195
- ],
196
- };
197
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
198
- const result = await webFetchTool.execute({ prompt: 'Analyze https://example.com' }, mockAbortSignal);
199
- // Should call Gemini's invokeServerTool, not Anthropic's
200
- expect(mockGeminiProvider.invokeServerTool).toHaveBeenCalled();
201
- expect(mockAnthropicProvider.invokeServerTool).not.toHaveBeenCalled();
202
- expect(result.llmContent).toContain('Anthropic user but Gemini fetched this');
203
- expect(result.returnDisplay).toBe('Content processed from prompt.');
204
- });
205
- });
206
- describe('Missing Gemini authentication error handling', () => {
207
- it('should return error when no provider manager is available', async () => {
208
- // Mock config to return no provider manager
209
- mockConfig.getContentGeneratorConfig.mockReturnValue({
210
- providerManager: null,
211
- });
212
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
213
- expect(result.llmContent).toContain('Web fetch requires a provider. Please use --provider gemini with authentication.');
214
- expect(result.returnDisplay).toBe('Web fetch requires a provider.');
215
- });
216
- it('should return error when no server tools provider is configured', async () => {
217
- // Mock provider manager to return null for server tools provider
218
- mockProviderManager.getServerToolsProvider.mockReturnValue(null);
219
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
220
- expect(result.llmContent).toContain('Web fetch requires Gemini provider to be configured. Please ensure Gemini is available with authentication.');
221
- expect(result.returnDisplay).toBe('Web fetch requires Gemini provider.');
222
- });
223
- it('should return error when server tools provider does not support web_fetch', async () => {
224
- // Mock Gemini provider to not support web_fetch
225
- mockGeminiProvider.getServerTools.mockReturnValue(['web_search']); // Only web_search, no web_fetch
226
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
227
- expect(result.llmContent).toContain('Web fetch is not available. The server tools provider does not support web fetch.');
228
- expect(result.returnDisplay).toBe('Web fetch not available.');
229
- });
230
- });
231
- describe('Fallback to direct fetch for private IPs', () => {
232
- it('should fallback to direct fetch for localhost URLs', async () => {
233
- // Mock isPrivateIp to return true for localhost
234
- vi.spyOn(fetchUtils, 'isPrivateIp').mockReturnValue(true);
235
- // Mock fetchWithTimeout
236
- vi.spyOn(fetchUtils, 'fetchWithTimeout').mockResolvedValue({
237
- ok: true,
238
- status: 200,
239
- statusText: 'OK',
240
- text: vi
241
- .fn()
242
- .mockResolvedValue('<html><body>Local content</body></html>'),
243
- });
244
- const result = await webFetchTool.execute({ prompt: 'Get content from http://localhost:3000' }, mockAbortSignal);
245
- // Should not call Gemini's invokeServerTool
246
- expect(mockGeminiProvider.invokeServerTool).not.toHaveBeenCalled();
247
- // Should contain error message about fallback
248
- expect(result.llmContent).toContain('Private/local URLs cannot be processed with AI');
249
- expect(result.llmContent).toContain('Content from http://localhost:3000');
250
- expect(result.llmContent).toContain('Local content');
251
- });
252
- it('should fallback to direct fetch for private IP ranges', async () => {
253
- // Mock isPrivateIp to return true for private IPs
254
- vi.spyOn(fetchUtils, 'isPrivateIp').mockReturnValue(true);
255
- // Mock fetchWithTimeout
256
- vi.spyOn(fetchUtils, 'fetchWithTimeout').mockResolvedValue({
257
- ok: true,
258
- status: 200,
259
- statusText: 'OK',
260
- text: vi
261
- .fn()
262
- .mockResolvedValue('<html><body>Private network content</body></html>'),
263
- });
264
- const result = await webFetchTool.execute({ prompt: 'Get content from http://192.168.1.100:8080' }, mockAbortSignal);
265
- // Should not call Gemini's invokeServerTool
266
- expect(mockGeminiProvider.invokeServerTool).not.toHaveBeenCalled();
267
- // Should contain error message about fallback
268
- expect(result.llmContent).toContain('Private/local URLs cannot be processed with AI');
269
- expect(result.llmContent).toContain('Content from http://192.168.1.100:8080');
270
- expect(result.llmContent).toContain('Private network content');
271
- });
272
- it('should handle fallback fetch errors gracefully', async () => {
273
- // Mock isPrivateIp to return true
274
- vi.spyOn(fetchUtils, 'isPrivateIp').mockReturnValue(true);
275
- // Mock fetchWithTimeout to fail
276
- vi.spyOn(fetchUtils, 'fetchWithTimeout').mockRejectedValue(new Error('Network error'));
277
- const result = await webFetchTool.execute({ prompt: 'Get content from http://localhost:3000' }, mockAbortSignal);
278
- expect(result.llmContent).toContain('Error: Error during fallback fetch for http://localhost:3000: Network error');
279
- expect(result.returnDisplay).toContain('Error: Error during fallback fetch');
280
- });
281
- });
282
- describe('Error handling', () => {
283
- it('should handle server tool invocation errors', async () => {
284
- mockGeminiProvider.invokeServerTool.mockRejectedValue(new Error('API key not configured'));
285
- // Mock isPrivateIp to return false so it doesn't fallback
286
- vi.spyOn(fetchUtils, 'isPrivateIp').mockReturnValue(false);
287
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
288
- expect(result.llmContent).toContain('Error processing web content');
289
- expect(result.llmContent).toContain('API key not configured');
290
- });
291
- it('should handle URL retrieval failures', async () => {
292
- const mockResponse = {
293
- candidates: [
294
- {
295
- content: {
296
- parts: [{ text: '' }],
297
- role: 'model',
298
- },
299
- urlContextMetadata: {
300
- urlMetadata: [
301
- {
302
- retrievedUrl: 'https://example.com',
303
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_FAILED',
304
- },
305
- ],
306
- },
307
- },
308
- ],
309
- };
310
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
311
- // Mock isPrivateIp to return false (not private, so should use server tool)
312
- vi.spyOn(fetchUtils, 'isPrivateIp').mockReturnValue(false);
313
- // Mock fetchWithTimeout for fallback
314
- vi.spyOn(fetchUtils, 'fetchWithTimeout').mockResolvedValue({
315
- ok: false,
316
- status: 404,
317
- statusText: 'Not Found',
318
- text: vi.fn().mockResolvedValue(''),
319
- });
320
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
321
- // Should return no content found
322
- expect(result.llmContent).toContain('No content found');
323
- });
324
- });
325
- describe('Validation', () => {
326
- it('should reject empty prompt', async () => {
327
- const result = await webFetchTool.execute({ prompt: '' }, mockAbortSignal);
328
- expect(result.llmContent).toContain('Error: Invalid parameters');
329
- expect(result.llmContent).toContain('cannot be empty');
330
- });
331
- it('should reject prompt without URLs', async () => {
332
- const result = await webFetchTool.execute({ prompt: 'Just some text without any URLs' }, mockAbortSignal);
333
- expect(result.llmContent).toContain('Error: Invalid parameters');
334
- expect(result.llmContent).toContain('must contain at least one valid URL');
335
- });
336
- it('should accept prompt with multiple URLs', async () => {
337
- const mockResponse = {
338
- candidates: [
339
- {
340
- content: {
341
- parts: [{ text: 'Processed multiple URLs' }],
342
- role: 'model',
343
- },
344
- urlContextMetadata: {
345
- urlMetadata: [
346
- {
347
- retrievedUrl: 'https://example1.com',
348
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
349
- },
350
- {
351
- retrievedUrl: 'https://example2.com',
352
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
353
- },
354
- ],
355
- },
356
- },
357
- ],
358
- };
359
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
360
- const result = await webFetchTool.execute({ prompt: 'Compare https://example1.com and https://example2.com' }, mockAbortSignal);
361
- expect(result.llmContent).toContain('Processed multiple URLs');
362
- expect(result.returnDisplay).toBe('Content processed from prompt.');
363
- });
364
- });
365
- describe('GitHub URL handling', () => {
366
- it('should convert GitHub blob URLs to raw URLs', async () => {
367
- const mockResponse = {
368
- candidates: [
369
- {
370
- content: {
371
- parts: [{ text: 'GitHub file content' }],
372
- role: 'model',
373
- },
374
- urlContextMetadata: {
375
- urlMetadata: [
376
- {
377
- retrievedUrl: 'https://raw.githubusercontent.com/user/repo/main/file.js',
378
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
379
- },
380
- ],
381
- },
382
- },
383
- ],
384
- };
385
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
386
- const result = await webFetchTool.execute({
387
- prompt: 'Get content from https://github.com/user/repo/blob/main/file.js',
388
- }, mockAbortSignal);
389
- // The tool should still pass the original prompt to the server
390
- expect(mockGeminiProvider.invokeServerTool).toHaveBeenCalledWith('web_fetch', {
391
- prompt: 'Get content from https://github.com/user/repo/blob/main/file.js',
392
- }, { signal: mockAbortSignal });
393
- expect(result.llmContent).toContain('GitHub file content');
394
- });
395
- });
396
- describe('Grounding metadata and citations', () => {
397
- it('should insert citation markers when grounding supports are provided', async () => {
398
- const mockResponse = {
399
- candidates: [
400
- {
401
- content: {
402
- parts: [{ text: 'This is cited content from the webpage.' }],
403
- role: 'model',
404
- },
405
- groundingMetadata: {
406
- groundingChunks: [
407
- {
408
- web: {
409
- title: 'Source Page',
410
- uri: 'https://example.com/source',
411
- },
412
- },
413
- ],
414
- groundingSupports: [
415
- {
416
- segment: {
417
- startIndex: 0,
418
- endIndex: 12,
419
- },
420
- groundingChunkIndices: [0],
421
- },
422
- ],
423
- },
424
- urlContextMetadata: {
425
- urlMetadata: [
426
- {
427
- retrievedUrl: 'https://example.com/source',
428
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
429
- },
430
- ],
431
- },
432
- },
433
- ],
434
- };
435
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
436
- const result = await webFetchTool.execute({ prompt: 'Extract info from https://example.com/source' }, mockAbortSignal);
437
- // Should have citation marker inserted after 'cite' (at index 12)
438
- expect(result.llmContent).toContain('This is cite[1]d content');
439
- expect(result.llmContent).toContain('from the webpage.');
440
- expect(result.llmContent).toContain('Sources:');
441
- expect(result.llmContent).toContain('[1] Source Page (https://example.com/source)');
442
- });
443
- it('should handle response with null parts gracefully', async () => {
444
- const mockResponse = {
445
- candidates: [
446
- {
447
- content: {
448
- parts: [
449
- null,
450
- { text: 'Valid content' },
451
- undefined,
452
- { text: ' continues' },
453
- ],
454
- role: 'model',
455
- },
456
- urlContextMetadata: {
457
- urlMetadata: [
458
- {
459
- retrievedUrl: 'https://example.com',
460
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
461
- },
462
- ],
463
- },
464
- },
465
- ],
466
- };
467
- mockGeminiProvider.invokeServerTool.mockResolvedValue(mockResponse);
468
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
469
- // getResponseText throws on null parts, so we get an error
470
- expect(result.llmContent).toContain('Error processing web content');
471
- expect(result.llmContent).toContain('Cannot read properties of null');
472
- });
473
- });
474
- describe('Multiple providers edge cases', () => {
475
- it('should handle when provider manager has no server tools provider but active provider exists', async () => {
476
- // Set active provider to OpenAI, but no server tools provider
477
- mockProviderManager.getActiveProvider.mockReturnValue(mockOpenAIProvider);
478
- mockProviderManager.getServerToolsProvider.mockReturnValue(null);
479
- const result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
480
- expect(result.llmContent).toContain('Web fetch requires Gemini provider to be configured');
481
- expect(result.returnDisplay).toBe('Web fetch requires Gemini provider.');
482
- });
483
- it('should work correctly when switching between providers', async () => {
484
- // First request with Gemini active
485
- const geminiResponse = {
486
- candidates: [
487
- {
488
- content: {
489
- parts: [{ text: 'Gemini fetched content' }],
490
- role: 'model',
491
- },
492
- urlContextMetadata: {
493
- urlMetadata: [
494
- {
495
- retrievedUrl: 'https://example.com',
496
- urlRetrievalStatus: 'URL_RETRIEVAL_STATUS_SUCCESS',
497
- },
498
- ],
499
- },
500
- },
501
- ],
502
- };
503
- mockGeminiProvider.invokeServerTool.mockResolvedValue(geminiResponse);
504
- let result = await webFetchTool.execute({ prompt: 'Fetch https://example.com' }, mockAbortSignal);
505
- expect(result.llmContent).toContain('Gemini fetched content');
506
- // Switch to OpenAI as active provider
507
- mockProviderManager.getActiveProvider.mockReturnValue(mockOpenAIProvider);
508
- mockProviderManager.getActiveProviderName.mockReturnValue('openai');
509
- // Second request should still use Gemini for server tools
510
- result = await webFetchTool.execute({ prompt: 'Fetch https://example.com again' }, mockAbortSignal);
511
- // Should still call Gemini's invokeServerTool
512
- expect(mockGeminiProvider.invokeServerTool).toHaveBeenCalledTimes(2);
513
- expect(mockOpenAIProvider.invokeServerTool).not.toHaveBeenCalled();
514
- });
515
- });
516
- describe('Tool description and getDescription', () => {
517
- it('should truncate long prompts in description', () => {
518
- const longPrompt = 'Fetch and analyze ' +
519
- 'https://example.com/very/long/url/path '.repeat(10);
520
- const description = webFetchTool.getDescription({ prompt: longPrompt });
521
- expect(description).toContain('Processing URLs and instructions from prompt:');
522
- expect(description).toContain('...');
523
- expect(description.length).toBeLessThan(150);
524
- });
525
- it('should show full prompt for short prompts', () => {
526
- const shortPrompt = 'Fetch https://example.com';
527
- const description = webFetchTool.getDescription({ prompt: shortPrompt });
528
- expect(description).toBe(`Processing URLs and instructions from prompt: "${shortPrompt}"`);
529
- });
530
- });
531
- });
532
- //# sourceMappingURL=web-fetch.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-fetch.integration.test.js","sourceRoot":"","sources":["../../../src/tools/web-fetch.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};