@vybestack/llxprt-code-core 0.1.19-beta → 0.1.19

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 (540) hide show
  1. package/README.md +49 -2
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +6 -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 -2
  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/config/config.d.ts +7 -1
  24. package/dist/src/config/config.js +46 -5
  25. package/dist/src/config/config.js.map +1 -1
  26. package/dist/src/config/endpoints.d.ts +60 -0
  27. package/dist/src/config/endpoints.js +126 -0
  28. package/dist/src/config/endpoints.js.map +1 -0
  29. package/dist/src/config/profileManager.d.ts +14 -4
  30. package/dist/src/config/profileManager.js +90 -11
  31. package/dist/src/config/profileManager.js.map +1 -1
  32. package/dist/src/core/client.d.ts +5 -2
  33. package/dist/src/core/client.js +164 -44
  34. package/dist/src/core/client.js.map +1 -1
  35. package/dist/src/core/contentGenerator.d.ts +4 -1
  36. package/dist/src/core/contentGenerator.js +3 -0
  37. package/dist/src/core/contentGenerator.js.map +1 -1
  38. package/dist/src/core/loggingContentGenerator.d.ts +5 -0
  39. package/dist/src/core/loggingContentGenerator.js +9 -1
  40. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  41. package/dist/src/core/subagent.js +12 -10
  42. package/dist/src/core/subagent.js.map +1 -1
  43. package/dist/src/ide/detect-ide.d.ts +10 -2
  44. package/dist/src/ide/detect-ide.js +48 -5
  45. package/dist/src/ide/detect-ide.js.map +1 -1
  46. package/dist/src/ide/ide-client.js +22 -15
  47. package/dist/src/ide/ide-client.js.map +1 -1
  48. package/dist/src/index.d.ts +10 -1
  49. package/dist/src/index.js +10 -1
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
  52. package/dist/src/prompt-config/defaults/core-defaults.js +21 -326
  53. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  54. package/dist/src/prompt-config/defaults/core.md +1 -1
  55. package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
  56. package/dist/src/prompt-config/defaults/provider-defaults.js +16 -19
  57. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  58. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
  59. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
  60. package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
  61. package/dist/src/prompt-config/defaults/tool-defaults.js +27 -75
  62. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  63. package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
  64. package/dist/src/providers/BaseProvider.d.ts +149 -0
  65. package/dist/src/providers/BaseProvider.js +315 -0
  66. package/dist/src/providers/BaseProvider.js.map +1 -0
  67. package/dist/src/providers/IProvider.d.ts +1 -0
  68. package/dist/src/providers/LoggingProviderWrapper.d.ts +1 -0
  69. package/dist/src/providers/LoggingProviderWrapper.js +3 -0
  70. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  71. package/dist/src/providers/ProviderManager.d.ts +0 -1
  72. package/dist/src/providers/ProviderManager.js +23 -14
  73. package/dist/src/providers/ProviderManager.js.map +1 -1
  74. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  75. package/dist/src/providers/anthropic/AnthropicProvider.js +173 -27
  76. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  77. package/dist/src/providers/gemini/GeminiProvider.d.ts +20 -7
  78. package/dist/src/providers/gemini/GeminiProvider.js +182 -147
  79. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  80. package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
  81. package/dist/src/providers/openai/OpenAIProvider.js +373 -40
  82. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  83. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  84. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  85. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  86. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  87. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  88. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  89. package/dist/src/services/loopDetectionService.js +4 -5
  90. package/dist/src/services/loopDetectionService.js.map +1 -1
  91. package/dist/src/settings/SettingsService.d.ts +32 -0
  92. package/dist/src/settings/SettingsService.js +204 -0
  93. package/dist/src/settings/SettingsService.js.map +1 -0
  94. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  95. package/dist/src/settings/settingsServiceInstance.js +24 -0
  96. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  97. package/dist/src/settings/types.d.ts +141 -0
  98. package/dist/src/settings/types.js +5 -0
  99. package/dist/src/settings/types.js.map +1 -0
  100. package/dist/src/tools/edit.js +6 -7
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/glob.js +7 -8
  103. package/dist/src/tools/glob.js.map +1 -1
  104. package/dist/src/tools/grep.js +6 -7
  105. package/dist/src/tools/grep.js.map +1 -1
  106. package/dist/src/tools/ls.js +9 -10
  107. package/dist/src/tools/ls.js.map +1 -1
  108. package/dist/src/tools/mcp-tool.d.ts +3 -8
  109. package/dist/src/tools/mcp-tool.js +5 -18
  110. package/dist/src/tools/mcp-tool.js.map +1 -1
  111. package/dist/src/tools/memoryTool.js +4 -5
  112. package/dist/src/tools/memoryTool.js.map +1 -1
  113. package/dist/src/tools/read-file.js +5 -6
  114. package/dist/src/tools/read-file.js.map +1 -1
  115. package/dist/src/tools/read-many-files.js +17 -18
  116. package/dist/src/tools/read-many-files.js.map +1 -1
  117. package/dist/src/tools/shell.js +8 -9
  118. package/dist/src/tools/shell.js.map +1 -1
  119. package/dist/src/tools/tool-registry.d.ts +1 -15
  120. package/dist/src/tools/tool-registry.js +4 -72
  121. package/dist/src/tools/tool-registry.js.map +1 -1
  122. package/dist/src/tools/tools.d.ts +6 -6
  123. package/dist/src/tools/tools.js +2 -2
  124. package/dist/src/tools/tools.js.map +1 -1
  125. package/dist/src/tools/web-fetch.js +3 -4
  126. package/dist/src/tools/web-fetch.js.map +1 -1
  127. package/dist/src/tools/web-search.js +3 -4
  128. package/dist/src/tools/web-search.js.map +1 -1
  129. package/dist/src/tools/write-file.js +4 -5
  130. package/dist/src/tools/write-file.js.map +1 -1
  131. package/dist/src/utils/editCorrector.js +8 -9
  132. package/dist/src/utils/editCorrector.js.map +1 -1
  133. package/dist/src/utils/nextSpeakerChecker.js +3 -4
  134. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  135. package/dist/src/utils/schemaValidator.d.ts +1 -9
  136. package/dist/src/utils/schemaValidator.js +1 -109
  137. package/dist/src/utils/schemaValidator.js.map +1 -1
  138. package/package.json +4 -2
  139. package/dist/src/code_assist/converter.test.d.ts +0 -6
  140. package/dist/src/code_assist/converter.test.js +0 -279
  141. package/dist/src/code_assist/converter.test.js.map +0 -1
  142. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  143. package/dist/src/code_assist/oauth2.test.js +0 -370
  144. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  145. package/dist/src/code_assist/server.test.d.ts +0 -6
  146. package/dist/src/code_assist/server.test.js +0 -134
  147. package/dist/src/code_assist/server.test.js.map +0 -1
  148. package/dist/src/code_assist/setup.test.d.ts +0 -6
  149. package/dist/src/code_assist/setup.test.js +0 -65
  150. package/dist/src/code_assist/setup.test.js.map +0 -1
  151. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  152. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  153. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  154. package/dist/src/config/config.ephemeral.test.d.ts +0 -6
  155. package/dist/src/config/config.ephemeral.test.js +0 -152
  156. package/dist/src/config/config.ephemeral.test.js.map +0 -1
  157. package/dist/src/config/config.test.d.ts +0 -6
  158. package/dist/src/config/config.test.js +0 -369
  159. package/dist/src/config/config.test.js.map +0 -1
  160. package/dist/src/config/flashFallback.test.d.ts +0 -6
  161. package/dist/src/config/flashFallback.test.js +0 -91
  162. package/dist/src/config/flashFallback.test.js.map +0 -1
  163. package/dist/src/core/client.test.d.ts +0 -6
  164. package/dist/src/core/client.test.js +0 -1322
  165. package/dist/src/core/client.test.js.map +0 -1
  166. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  167. package/dist/src/core/contentGenerator.test.js +0 -103
  168. package/dist/src/core/contentGenerator.test.js.map +0 -1
  169. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  170. package/dist/src/core/coreToolScheduler.test.js +0 -637
  171. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  172. package/dist/src/core/geminiChat.test.d.ts +0 -6
  173. package/dist/src/core/geminiChat.test.js +0 -425
  174. package/dist/src/core/geminiChat.test.js.map +0 -1
  175. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  176. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  177. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  178. package/dist/src/core/logger.test.d.ts +0 -6
  179. package/dist/src/core/logger.test.js +0 -467
  180. package/dist/src/core/logger.test.js.map +0 -1
  181. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  182. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  183. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  184. package/dist/src/core/prompts-async.test.d.ts +0 -6
  185. package/dist/src/core/prompts-async.test.js +0 -115
  186. package/dist/src/core/prompts-async.test.js.map +0 -1
  187. package/dist/src/core/prompts.test.d.ts +0 -6
  188. package/dist/src/core/prompts.test.js +0 -68
  189. package/dist/src/core/prompts.test.js.map +0 -1
  190. package/dist/src/core/subagent.test.d.ts +0 -6
  191. package/dist/src/core/subagent.test.js +0 -519
  192. package/dist/src/core/subagent.test.js.map +0 -1
  193. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  194. package/dist/src/core/tokenLimits.test.js +0 -66
  195. package/dist/src/core/tokenLimits.test.js.map +0 -1
  196. package/dist/src/core/turn.test.d.ts +0 -6
  197. package/dist/src/core/turn.test.js +0 -366
  198. package/dist/src/core/turn.test.js.map +0 -1
  199. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  200. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  201. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  202. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  203. package/dist/src/ide/ide-installer.test.js +0 -55
  204. package/dist/src/ide/ide-installer.test.js.map +0 -1
  205. package/dist/src/ide/ideContext.test.d.ts +0 -6
  206. package/dist/src/ide/ideContext.test.js +0 -265
  207. package/dist/src/ide/ideContext.test.js.map +0 -1
  208. package/dist/src/index.test.d.ts +0 -6
  209. package/dist/src/index.test.js +0 -12
  210. package/dist/src/index.test.js.map +0 -1
  211. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  212. package/dist/src/integration-tests/todo-system.test.js +0 -46
  213. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  214. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  215. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  216. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  217. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  218. package/dist/src/mcp/oauth-provider.test.js +0 -602
  219. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  220. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  221. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  222. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  223. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  224. package/dist/src/mcp/oauth-utils.test.js +0 -144
  225. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  226. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  227. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  228. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  229. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  230. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  231. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  232. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  233. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  234. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  235. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  236. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  237. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  238. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  239. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  240. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  241. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  242. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  243. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  244. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  245. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  246. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  247. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  248. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  249. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  250. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  251. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  252. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  253. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  254. package/dist/src/providers/ProviderManager.test.js +0 -284
  255. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  256. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  257. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  258. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  259. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  260. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  261. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  262. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  263. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  264. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  265. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  266. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  267. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  268. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  269. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  270. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  271. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  272. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
  273. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  274. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  275. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  276. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  277. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  278. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  279. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  280. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  281. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  282. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  283. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  284. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  285. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  286. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  287. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  288. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  289. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  290. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  291. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  292. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  293. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  294. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  295. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  296. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  297. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  298. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  299. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  300. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  301. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  302. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
  303. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  304. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  305. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  306. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  307. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  308. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  309. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  310. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  311. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  312. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  313. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  314. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  315. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  316. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  317. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  318. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  319. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  320. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  321. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  322. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  323. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  324. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  325. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  326. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  327. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  328. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  329. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  330. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  331. package/dist/src/services/gitService.test.d.ts +0 -6
  332. package/dist/src/services/gitService.test.js +0 -209
  333. package/dist/src/services/gitService.test.js.map +0 -1
  334. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  335. package/dist/src/services/loopDetectionService.test.js +0 -484
  336. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  337. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  338. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  339. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  340. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  341. package/dist/src/services/shellExecutionService.test.js +0 -272
  342. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  343. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  344. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  345. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  346. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  347. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  348. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  349. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  350. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  351. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  352. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -6
  353. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -187
  354. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  355. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  356. package/dist/src/telemetry/loggers.test.js +0 -573
  357. package/dist/src/telemetry/loggers.test.js.map +0 -1
  358. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  359. package/dist/src/telemetry/metrics.test.js +0 -212
  360. package/dist/src/telemetry/metrics.test.js.map +0 -1
  361. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  362. package/dist/src/telemetry/telemetry.test.js +0 -54
  363. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  364. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  365. package/dist/src/telemetry/uiTelemetry.test.js +0 -518
  366. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  367. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  368. package/dist/src/tools/ToolFormatter.test.js +0 -349
  369. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  370. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  371. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  372. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  373. package/dist/src/tools/diffOptions.test.d.ts +0 -6
  374. package/dist/src/tools/diffOptions.test.js +0 -119
  375. package/dist/src/tools/diffOptions.test.js.map +0 -1
  376. package/dist/src/tools/edit.test.d.ts +0 -6
  377. package/dist/src/tools/edit.test.js +0 -689
  378. package/dist/src/tools/edit.test.js.map +0 -1
  379. package/dist/src/tools/glob.test.d.ts +0 -6
  380. package/dist/src/tools/glob.test.js +0 -332
  381. package/dist/src/tools/glob.test.js.map +0 -1
  382. package/dist/src/tools/grep.test.d.ts +0 -6
  383. package/dist/src/tools/grep.test.js +0 -272
  384. package/dist/src/tools/grep.test.js.map +0 -1
  385. package/dist/src/tools/ls.test.d.ts +0 -6
  386. package/dist/src/tools/ls.test.js +0 -357
  387. package/dist/src/tools/ls.test.js.map +0 -1
  388. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  389. package/dist/src/tools/mcp-client.test.js +0 -617
  390. package/dist/src/tools/mcp-client.test.js.map +0 -1
  391. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  392. package/dist/src/tools/mcp-tool.test.js +0 -501
  393. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  394. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  395. package/dist/src/tools/memoryTool.test.js +0 -266
  396. package/dist/src/tools/memoryTool.test.js.map +0 -1
  397. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  398. package/dist/src/tools/modifiable-tool.test.js +0 -193
  399. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  400. package/dist/src/tools/read-file.test.d.ts +0 -6
  401. package/dist/src/tools/read-file.test.js +0 -319
  402. package/dist/src/tools/read-file.test.js.map +0 -1
  403. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  404. package/dist/src/tools/read-many-files.test.js +0 -644
  405. package/dist/src/tools/read-many-files.test.js.map +0 -1
  406. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  407. package/dist/src/tools/shell.multibyte.test.js +0 -75
  408. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  409. package/dist/src/tools/shell.test.d.ts +0 -6
  410. package/dist/src/tools/shell.test.js +0 -367
  411. package/dist/src/tools/shell.test.js.map +0 -1
  412. package/dist/src/tools/todo-pause.spec.d.ts +0 -6
  413. package/dist/src/tools/todo-pause.spec.js +0 -287
  414. package/dist/src/tools/todo-pause.spec.js.map +0 -1
  415. package/dist/src/tools/todo-read.test.d.ts +0 -6
  416. package/dist/src/tools/todo-read.test.js +0 -162
  417. package/dist/src/tools/todo-read.test.js.map +0 -1
  418. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  419. package/dist/src/tools/todo-schemas.test.js +0 -341
  420. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  421. package/dist/src/tools/todo-store.test.d.ts +0 -6
  422. package/dist/src/tools/todo-store.test.js +0 -169
  423. package/dist/src/tools/todo-store.test.js.map +0 -1
  424. package/dist/src/tools/todo-write.test.d.ts +0 -6
  425. package/dist/src/tools/todo-write.test.js +0 -226
  426. package/dist/src/tools/todo-write.test.js.map +0 -1
  427. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  428. package/dist/src/tools/tool-registry.test.js +0 -468
  429. package/dist/src/tools/tool-registry.test.js.map +0 -1
  430. package/dist/src/tools/tools.test.d.ts +0 -6
  431. package/dist/src/tools/tools.test.js +0 -117
  432. package/dist/src/tools/tools.test.js.map +0 -1
  433. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  434. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  435. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  436. package/dist/src/tools/web-search.test.d.ts +0 -6
  437. package/dist/src/tools/web-search.test.js +0 -230
  438. package/dist/src/tools/web-search.test.js.map +0 -1
  439. package/dist/src/tools/write-file.test.d.ts +0 -6
  440. package/dist/src/tools/write-file.test.js +0 -465
  441. package/dist/src/tools/write-file.test.js.map +0 -1
  442. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  443. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  444. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  445. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  446. package/dist/src/utils/editCorrector.test.js +0 -564
  447. package/dist/src/utils/editCorrector.test.js.map +0 -1
  448. package/dist/src/utils/editor.test.d.ts +0 -6
  449. package/dist/src/utils/editor.test.js +0 -445
  450. package/dist/src/utils/editor.test.js.map +0 -1
  451. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  452. package/dist/src/utils/environmentContext.test.js +0 -139
  453. package/dist/src/utils/environmentContext.test.js.map +0 -1
  454. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  455. package/dist/src/utils/errorReporting.test.js +0 -130
  456. package/dist/src/utils/errorReporting.test.js.map +0 -1
  457. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  458. package/dist/src/utils/fileUtils.test.js +0 -363
  459. package/dist/src/utils/fileUtils.test.js.map +0 -1
  460. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  461. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  462. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  463. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  464. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  465. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  466. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  467. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  468. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  469. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  470. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  471. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  472. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  473. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  474. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  475. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  476. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  477. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  478. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  479. package/dist/src/utils/getFolderStructure.test.js +0 -282
  480. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  481. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  482. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  483. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  484. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  485. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  486. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  487. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  488. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  489. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  490. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  491. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  492. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  493. package/dist/src/utils/partUtils.test.d.ts +0 -6
  494. package/dist/src/utils/partUtils.test.js +0 -130
  495. package/dist/src/utils/partUtils.test.js.map +0 -1
  496. package/dist/src/utils/paths.test.d.ts +0 -6
  497. package/dist/src/utils/paths.test.js +0 -153
  498. package/dist/src/utils/paths.test.js.map +0 -1
  499. package/dist/src/utils/retry.test.d.ts +0 -6
  500. package/dist/src/utils/retry.test.js +0 -322
  501. package/dist/src/utils/retry.test.js.map +0 -1
  502. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  503. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  504. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  505. package/dist/src/utils/sanitization.test.d.ts +0 -6
  506. package/dist/src/utils/sanitization.test.js +0 -81
  507. package/dist/src/utils/sanitization.test.js.map +0 -1
  508. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  509. package/dist/src/utils/schemaValidator.test.js +0 -146
  510. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  511. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  512. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  513. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  514. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  515. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  516. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  517. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  518. package/dist/src/utils/shell-utils.test.js +0 -200
  519. package/dist/src/utils/shell-utils.test.js.map +0 -1
  520. package/dist/src/utils/summarizer.test.d.ts +0 -6
  521. package/dist/src/utils/summarizer.test.js +0 -131
  522. package/dist/src/utils/summarizer.test.js.map +0 -1
  523. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  524. package/dist/src/utils/systemEncoding.test.js +0 -368
  525. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  526. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  527. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  528. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  529. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  530. package/dist/src/utils/unicodeUtils.test.js +0 -120
  531. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  532. package/dist/src/utils/user_account.test.d.ts +0 -6
  533. package/dist/src/utils/user_account.test.js +0 -153
  534. package/dist/src/utils/user_account.test.js.map +0 -1
  535. package/dist/src/utils/user_id.test.d.ts +0 -6
  536. package/dist/src/utils/user_id.test.js +0 -21
  537. package/dist/src/utils/user_id.test.js.map +0 -1
  538. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  539. package/dist/src/utils/workspaceContext.test.js +0 -209
  540. 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 {};