@vybestack/llxprt-code-core 0.1.19-beta → 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 (475) 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/config/config.d.ts +7 -1
  21. package/dist/src/config/config.js +42 -4
  22. package/dist/src/config/config.js.map +1 -1
  23. package/dist/src/config/endpoints.d.ts +60 -0
  24. package/dist/src/config/endpoints.js +126 -0
  25. package/dist/src/config/endpoints.js.map +1 -0
  26. package/dist/src/config/profileManager.d.ts +14 -4
  27. package/dist/src/config/profileManager.js +90 -11
  28. package/dist/src/config/profileManager.js.map +1 -1
  29. package/dist/src/core/client.js +9 -12
  30. package/dist/src/core/client.js.map +1 -1
  31. package/dist/src/core/contentGenerator.d.ts +4 -1
  32. package/dist/src/core/contentGenerator.js +3 -0
  33. package/dist/src/core/contentGenerator.js.map +1 -1
  34. package/dist/src/core/subagent.js +12 -10
  35. package/dist/src/core/subagent.js.map +1 -1
  36. package/dist/src/index.d.ts +9 -0
  37. package/dist/src/index.js +9 -0
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/providers/BaseProvider.d.ts +149 -0
  40. package/dist/src/providers/BaseProvider.js +315 -0
  41. package/dist/src/providers/BaseProvider.js.map +1 -0
  42. package/dist/src/providers/IProvider.d.ts +1 -0
  43. package/dist/src/providers/LoggingProviderWrapper.d.ts +1 -0
  44. package/dist/src/providers/LoggingProviderWrapper.js +3 -0
  45. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  46. package/dist/src/providers/ProviderManager.d.ts +0 -1
  47. package/dist/src/providers/ProviderManager.js +23 -14
  48. package/dist/src/providers/ProviderManager.js.map +1 -1
  49. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  50. package/dist/src/providers/anthropic/AnthropicProvider.js +172 -26
  51. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  52. package/dist/src/providers/gemini/GeminiProvider.d.ts +16 -7
  53. package/dist/src/providers/gemini/GeminiProvider.js +163 -148
  54. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  55. package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
  56. package/dist/src/providers/openai/OpenAIProvider.js +373 -40
  57. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  58. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  59. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  60. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  61. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  62. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  63. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  64. package/dist/src/settings/SettingsService.d.ts +32 -0
  65. package/dist/src/settings/SettingsService.js +204 -0
  66. package/dist/src/settings/SettingsService.js.map +1 -0
  67. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  68. package/dist/src/settings/settingsServiceInstance.js +24 -0
  69. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  70. package/dist/src/settings/types.d.ts +141 -0
  71. package/dist/src/settings/types.js +5 -0
  72. package/dist/src/settings/types.js.map +1 -0
  73. package/package.json +4 -2
  74. package/dist/src/code_assist/converter.test.d.ts +0 -6
  75. package/dist/src/code_assist/converter.test.js +0 -279
  76. package/dist/src/code_assist/converter.test.js.map +0 -1
  77. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  78. package/dist/src/code_assist/oauth2.test.js +0 -370
  79. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  80. package/dist/src/code_assist/server.test.d.ts +0 -6
  81. package/dist/src/code_assist/server.test.js +0 -134
  82. package/dist/src/code_assist/server.test.js.map +0 -1
  83. package/dist/src/code_assist/setup.test.d.ts +0 -6
  84. package/dist/src/code_assist/setup.test.js +0 -65
  85. package/dist/src/code_assist/setup.test.js.map +0 -1
  86. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  87. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  88. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  89. package/dist/src/config/config.ephemeral.test.d.ts +0 -6
  90. package/dist/src/config/config.ephemeral.test.js +0 -152
  91. package/dist/src/config/config.ephemeral.test.js.map +0 -1
  92. package/dist/src/config/config.test.d.ts +0 -6
  93. package/dist/src/config/config.test.js +0 -369
  94. package/dist/src/config/config.test.js.map +0 -1
  95. package/dist/src/config/flashFallback.test.d.ts +0 -6
  96. package/dist/src/config/flashFallback.test.js +0 -91
  97. package/dist/src/config/flashFallback.test.js.map +0 -1
  98. package/dist/src/core/client.test.d.ts +0 -6
  99. package/dist/src/core/client.test.js +0 -1322
  100. package/dist/src/core/client.test.js.map +0 -1
  101. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  102. package/dist/src/core/contentGenerator.test.js +0 -103
  103. package/dist/src/core/contentGenerator.test.js.map +0 -1
  104. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  105. package/dist/src/core/coreToolScheduler.test.js +0 -637
  106. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  107. package/dist/src/core/geminiChat.test.d.ts +0 -6
  108. package/dist/src/core/geminiChat.test.js +0 -425
  109. package/dist/src/core/geminiChat.test.js.map +0 -1
  110. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  111. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  112. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  113. package/dist/src/core/logger.test.d.ts +0 -6
  114. package/dist/src/core/logger.test.js +0 -467
  115. package/dist/src/core/logger.test.js.map +0 -1
  116. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  117. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  118. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  119. package/dist/src/core/prompts-async.test.d.ts +0 -6
  120. package/dist/src/core/prompts-async.test.js +0 -115
  121. package/dist/src/core/prompts-async.test.js.map +0 -1
  122. package/dist/src/core/prompts.test.d.ts +0 -6
  123. package/dist/src/core/prompts.test.js +0 -68
  124. package/dist/src/core/prompts.test.js.map +0 -1
  125. package/dist/src/core/subagent.test.d.ts +0 -6
  126. package/dist/src/core/subagent.test.js +0 -519
  127. package/dist/src/core/subagent.test.js.map +0 -1
  128. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  129. package/dist/src/core/tokenLimits.test.js +0 -66
  130. package/dist/src/core/tokenLimits.test.js.map +0 -1
  131. package/dist/src/core/turn.test.d.ts +0 -6
  132. package/dist/src/core/turn.test.js +0 -366
  133. package/dist/src/core/turn.test.js.map +0 -1
  134. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  135. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  136. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  137. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  138. package/dist/src/ide/ide-installer.test.js +0 -55
  139. package/dist/src/ide/ide-installer.test.js.map +0 -1
  140. package/dist/src/ide/ideContext.test.d.ts +0 -6
  141. package/dist/src/ide/ideContext.test.js +0 -265
  142. package/dist/src/ide/ideContext.test.js.map +0 -1
  143. package/dist/src/index.test.d.ts +0 -6
  144. package/dist/src/index.test.js +0 -12
  145. package/dist/src/index.test.js.map +0 -1
  146. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  147. package/dist/src/integration-tests/todo-system.test.js +0 -46
  148. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  149. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  150. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  151. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  152. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  153. package/dist/src/mcp/oauth-provider.test.js +0 -602
  154. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  155. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  156. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  157. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  158. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  159. package/dist/src/mcp/oauth-utils.test.js +0 -144
  160. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  161. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  162. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  163. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  164. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  165. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  166. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  167. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  168. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  169. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  170. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  171. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  172. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  173. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  174. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  175. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  176. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  177. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  178. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  179. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  180. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  181. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  182. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  183. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  184. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  185. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  186. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  187. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  188. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  189. package/dist/src/providers/ProviderManager.test.js +0 -284
  190. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  191. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  192. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  193. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  194. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  195. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  196. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  197. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  198. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  199. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  200. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  201. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  202. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  203. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  204. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  205. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  206. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  207. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
  208. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  209. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  210. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  211. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  212. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  213. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  214. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  215. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  216. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  217. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  218. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  219. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  220. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  221. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  222. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  223. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  224. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  225. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  226. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  227. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  228. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  229. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  230. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  231. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  232. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  233. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  234. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  235. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  236. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  237. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
  238. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  239. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  240. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  241. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  242. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  243. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  244. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  245. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  246. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  247. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  248. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  249. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  250. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  251. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  252. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  253. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  254. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  255. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  256. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  257. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  258. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  259. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  260. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  261. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  262. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  263. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  264. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  265. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  266. package/dist/src/services/gitService.test.d.ts +0 -6
  267. package/dist/src/services/gitService.test.js +0 -209
  268. package/dist/src/services/gitService.test.js.map +0 -1
  269. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  270. package/dist/src/services/loopDetectionService.test.js +0 -484
  271. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  272. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  273. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  274. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  275. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  276. package/dist/src/services/shellExecutionService.test.js +0 -272
  277. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  278. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  279. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  280. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  281. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  282. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  283. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  284. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  285. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  286. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  287. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -6
  288. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -187
  289. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  290. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  291. package/dist/src/telemetry/loggers.test.js +0 -573
  292. package/dist/src/telemetry/loggers.test.js.map +0 -1
  293. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  294. package/dist/src/telemetry/metrics.test.js +0 -212
  295. package/dist/src/telemetry/metrics.test.js.map +0 -1
  296. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  297. package/dist/src/telemetry/telemetry.test.js +0 -54
  298. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  299. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  300. package/dist/src/telemetry/uiTelemetry.test.js +0 -518
  301. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  302. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  303. package/dist/src/tools/ToolFormatter.test.js +0 -349
  304. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  305. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  306. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  307. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  308. package/dist/src/tools/diffOptions.test.d.ts +0 -6
  309. package/dist/src/tools/diffOptions.test.js +0 -119
  310. package/dist/src/tools/diffOptions.test.js.map +0 -1
  311. package/dist/src/tools/edit.test.d.ts +0 -6
  312. package/dist/src/tools/edit.test.js +0 -689
  313. package/dist/src/tools/edit.test.js.map +0 -1
  314. package/dist/src/tools/glob.test.d.ts +0 -6
  315. package/dist/src/tools/glob.test.js +0 -332
  316. package/dist/src/tools/glob.test.js.map +0 -1
  317. package/dist/src/tools/grep.test.d.ts +0 -6
  318. package/dist/src/tools/grep.test.js +0 -272
  319. package/dist/src/tools/grep.test.js.map +0 -1
  320. package/dist/src/tools/ls.test.d.ts +0 -6
  321. package/dist/src/tools/ls.test.js +0 -357
  322. package/dist/src/tools/ls.test.js.map +0 -1
  323. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  324. package/dist/src/tools/mcp-client.test.js +0 -617
  325. package/dist/src/tools/mcp-client.test.js.map +0 -1
  326. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  327. package/dist/src/tools/mcp-tool.test.js +0 -501
  328. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  329. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  330. package/dist/src/tools/memoryTool.test.js +0 -266
  331. package/dist/src/tools/memoryTool.test.js.map +0 -1
  332. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  333. package/dist/src/tools/modifiable-tool.test.js +0 -193
  334. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  335. package/dist/src/tools/read-file.test.d.ts +0 -6
  336. package/dist/src/tools/read-file.test.js +0 -319
  337. package/dist/src/tools/read-file.test.js.map +0 -1
  338. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  339. package/dist/src/tools/read-many-files.test.js +0 -644
  340. package/dist/src/tools/read-many-files.test.js.map +0 -1
  341. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  342. package/dist/src/tools/shell.multibyte.test.js +0 -75
  343. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  344. package/dist/src/tools/shell.test.d.ts +0 -6
  345. package/dist/src/tools/shell.test.js +0 -367
  346. package/dist/src/tools/shell.test.js.map +0 -1
  347. package/dist/src/tools/todo-pause.spec.d.ts +0 -6
  348. package/dist/src/tools/todo-pause.spec.js +0 -287
  349. package/dist/src/tools/todo-pause.spec.js.map +0 -1
  350. package/dist/src/tools/todo-read.test.d.ts +0 -6
  351. package/dist/src/tools/todo-read.test.js +0 -162
  352. package/dist/src/tools/todo-read.test.js.map +0 -1
  353. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  354. package/dist/src/tools/todo-schemas.test.js +0 -341
  355. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  356. package/dist/src/tools/todo-store.test.d.ts +0 -6
  357. package/dist/src/tools/todo-store.test.js +0 -169
  358. package/dist/src/tools/todo-store.test.js.map +0 -1
  359. package/dist/src/tools/todo-write.test.d.ts +0 -6
  360. package/dist/src/tools/todo-write.test.js +0 -226
  361. package/dist/src/tools/todo-write.test.js.map +0 -1
  362. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  363. package/dist/src/tools/tool-registry.test.js +0 -468
  364. package/dist/src/tools/tool-registry.test.js.map +0 -1
  365. package/dist/src/tools/tools.test.d.ts +0 -6
  366. package/dist/src/tools/tools.test.js +0 -117
  367. package/dist/src/tools/tools.test.js.map +0 -1
  368. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  369. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  370. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  371. package/dist/src/tools/web-search.test.d.ts +0 -6
  372. package/dist/src/tools/web-search.test.js +0 -230
  373. package/dist/src/tools/web-search.test.js.map +0 -1
  374. package/dist/src/tools/write-file.test.d.ts +0 -6
  375. package/dist/src/tools/write-file.test.js +0 -465
  376. package/dist/src/tools/write-file.test.js.map +0 -1
  377. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  378. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  379. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  380. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  381. package/dist/src/utils/editCorrector.test.js +0 -564
  382. package/dist/src/utils/editCorrector.test.js.map +0 -1
  383. package/dist/src/utils/editor.test.d.ts +0 -6
  384. package/dist/src/utils/editor.test.js +0 -445
  385. package/dist/src/utils/editor.test.js.map +0 -1
  386. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  387. package/dist/src/utils/environmentContext.test.js +0 -139
  388. package/dist/src/utils/environmentContext.test.js.map +0 -1
  389. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  390. package/dist/src/utils/errorReporting.test.js +0 -130
  391. package/dist/src/utils/errorReporting.test.js.map +0 -1
  392. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  393. package/dist/src/utils/fileUtils.test.js +0 -363
  394. package/dist/src/utils/fileUtils.test.js.map +0 -1
  395. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  396. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  397. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  398. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  399. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  400. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  401. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  402. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  403. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  404. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  405. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  406. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  407. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  408. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  409. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  410. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  411. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  412. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  413. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  414. package/dist/src/utils/getFolderStructure.test.js +0 -282
  415. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  416. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  417. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  418. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  419. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  420. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  421. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  422. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  423. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  424. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  425. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  426. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  427. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  428. package/dist/src/utils/partUtils.test.d.ts +0 -6
  429. package/dist/src/utils/partUtils.test.js +0 -130
  430. package/dist/src/utils/partUtils.test.js.map +0 -1
  431. package/dist/src/utils/paths.test.d.ts +0 -6
  432. package/dist/src/utils/paths.test.js +0 -153
  433. package/dist/src/utils/paths.test.js.map +0 -1
  434. package/dist/src/utils/retry.test.d.ts +0 -6
  435. package/dist/src/utils/retry.test.js +0 -322
  436. package/dist/src/utils/retry.test.js.map +0 -1
  437. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  438. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  439. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  440. package/dist/src/utils/sanitization.test.d.ts +0 -6
  441. package/dist/src/utils/sanitization.test.js +0 -81
  442. package/dist/src/utils/sanitization.test.js.map +0 -1
  443. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  444. package/dist/src/utils/schemaValidator.test.js +0 -146
  445. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  446. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  447. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  448. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  449. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  450. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  451. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  452. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  453. package/dist/src/utils/shell-utils.test.js +0 -200
  454. package/dist/src/utils/shell-utils.test.js.map +0 -1
  455. package/dist/src/utils/summarizer.test.d.ts +0 -6
  456. package/dist/src/utils/summarizer.test.js +0 -131
  457. package/dist/src/utils/summarizer.test.js.map +0 -1
  458. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  459. package/dist/src/utils/systemEncoding.test.js +0 -368
  460. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  461. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  462. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  463. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  464. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  465. package/dist/src/utils/unicodeUtils.test.js +0 -120
  466. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  467. package/dist/src/utils/user_account.test.d.ts +0 -6
  468. package/dist/src/utils/user_account.test.js +0 -153
  469. package/dist/src/utils/user_account.test.js.map +0 -1
  470. package/dist/src/utils/user_id.test.d.ts +0 -6
  471. package/dist/src/utils/user_id.test.js +0 -21
  472. package/dist/src/utils/user_id.test.js.map +0 -1
  473. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  474. package/dist/src/utils/workspaceContext.test.js +0 -209
  475. package/dist/src/utils/workspaceContext.test.js.map +0 -1
@@ -1,487 +0,0 @@
1
- import { vi, describe, it, expect, beforeEach } from 'vitest';
2
- import { AnthropicProvider } from './AnthropicProvider.js';
3
- import { ContentGeneratorRole } from '../ContentGeneratorRole.js';
4
- import { TEST_PROVIDER_CONFIG } from '../test-utils/providerTestConfig.js';
5
- // Mock the ToolFormatter
6
- vi.mock('../../tools/ToolFormatter.js', () => ({
7
- ToolFormatter: vi.fn().mockImplementation(() => ({
8
- toProviderFormat: vi.fn((tools, format) => {
9
- if (format === 'anthropic') {
10
- return tools.map((tool) => ({
11
- name: tool.function.name,
12
- description: tool.function.description || '',
13
- input_schema: {
14
- type: 'object',
15
- ...tool.function.parameters,
16
- },
17
- }));
18
- }
19
- return tools;
20
- }),
21
- fromProviderFormat: vi.fn((rawToolCall, format) => {
22
- if (format === 'anthropic') {
23
- const toolCall = rawToolCall;
24
- return [
25
- {
26
- id: toolCall.id,
27
- type: 'function',
28
- function: {
29
- name: toolCall.name,
30
- arguments: toolCall.input ? JSON.stringify(toolCall.input) : '',
31
- },
32
- },
33
- ];
34
- }
35
- return [rawToolCall];
36
- }),
37
- })),
38
- }));
39
- // Mock the retry utility
40
- vi.mock('../../utils/retry.js', () => ({
41
- retryWithBackoff: vi.fn(async (fn, options) => {
42
- let lastError;
43
- let attempts = 0;
44
- const maxAttempts = 2;
45
- while (attempts < maxAttempts) {
46
- try {
47
- return await fn();
48
- }
49
- catch (error) {
50
- lastError = error;
51
- attempts++;
52
- if (attempts < maxAttempts &&
53
- options?.shouldRetry &&
54
- options.shouldRetry(error)) {
55
- continue;
56
- }
57
- throw error;
58
- }
59
- }
60
- throw lastError;
61
- }),
62
- }));
63
- // Mock the Anthropic SDK
64
- vi.mock('@anthropic-ai/sdk', () => ({
65
- default: vi.fn().mockImplementation(() => ({
66
- messages: {
67
- create: vi.fn(),
68
- },
69
- beta: {
70
- models: {
71
- list: vi.fn().mockReturnValue({
72
- async *[Symbol.asyncIterator]() {
73
- const models = [
74
- { id: 'claude-opus-4-20250514', display_name: 'Claude 4 Opus' },
75
- {
76
- id: 'claude-sonnet-4-20250514',
77
- display_name: 'Claude 4 Sonnet',
78
- },
79
- {
80
- id: 'claude-3-7-opus-20250115',
81
- display_name: 'Claude 3.7 Opus',
82
- },
83
- {
84
- id: 'claude-3-7-sonnet-20250115',
85
- display_name: 'Claude 3.7 Sonnet',
86
- },
87
- {
88
- id: 'claude-3-5-sonnet-20241022',
89
- display_name: 'Claude 3.5 Sonnet',
90
- },
91
- {
92
- id: 'claude-3-5-haiku-20241022',
93
- display_name: 'Claude 3.5 Haiku',
94
- },
95
- { id: 'claude-3-opus-20240229', display_name: 'Claude 3 Opus' },
96
- {
97
- id: 'claude-3-sonnet-20240229',
98
- display_name: 'Claude 3 Sonnet',
99
- },
100
- { id: 'claude-3-haiku-20240307', display_name: 'Claude 3 Haiku' },
101
- ];
102
- for (const model of models) {
103
- yield model;
104
- }
105
- },
106
- }),
107
- },
108
- },
109
- })),
110
- }));
111
- describe('AnthropicProvider', () => {
112
- let provider;
113
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
- let mockAnthropicInstance;
115
- beforeEach(async () => {
116
- // Clear all mocks before each test
117
- vi.clearAllMocks();
118
- // Create provider with test API key
119
- provider = new AnthropicProvider('test-api-key', undefined, TEST_PROVIDER_CONFIG);
120
- // Get the mocked Anthropic instance
121
- const Anthropic = vi.mocked((await import('@anthropic-ai/sdk')).default);
122
- mockAnthropicInstance = Anthropic.mock.results[0].value;
123
- });
124
- describe('getModels', () => {
125
- it('should return a list of Anthropic models including latest aliases', async () => {
126
- const models = await provider.getModels();
127
- expect(models).toHaveLength(11); // 2 latest aliases + 9 specific versions
128
- // Check for latest aliases
129
- expect(models.some((m) => m.id === 'claude-opus-4-latest')).toBe(true);
130
- expect(models.some((m) => m.id === 'claude-sonnet-4-latest')).toBe(true);
131
- // Check for Claude 4 models
132
- expect(models.some((m) => m.id === 'claude-opus-4-20250514')).toBe(true);
133
- expect(models.some((m) => m.id === 'claude-sonnet-4-20250514')).toBe(true);
134
- // Check for Claude 3.7 models
135
- expect(models.some((m) => m.id === 'claude-3-7-opus-20250115')).toBe(true);
136
- expect(models.some((m) => m.id === 'claude-3-7-sonnet-20250115')).toBe(true);
137
- // Check that all models have correct provider
138
- models.forEach((model) => {
139
- expect(model.provider).toBe('anthropic');
140
- expect(model.supportedToolFormats).toContain('anthropic');
141
- });
142
- });
143
- it('should return models with correct structure', async () => {
144
- const models = await provider.getModels();
145
- models.forEach((model) => {
146
- expect(model).toHaveProperty('id');
147
- expect(model).toHaveProperty('name');
148
- expect(model).toHaveProperty('provider');
149
- expect(model).toHaveProperty('supportedToolFormats');
150
- expect(model.provider).toBe('anthropic');
151
- expect(model.supportedToolFormats).toContain('anthropic');
152
- });
153
- });
154
- });
155
- describe('generateChatCompletion', () => {
156
- it('should stream content from Anthropic API', async () => {
157
- // Mock streaming response
158
- const mockStream = {
159
- async *[Symbol.asyncIterator]() {
160
- yield {
161
- type: 'content_block_delta',
162
- delta: { type: 'text_delta', text: 'Hello' },
163
- };
164
- yield {
165
- type: 'content_block_delta',
166
- delta: { type: 'text_delta', text: ' world' },
167
- };
168
- },
169
- };
170
- mockAnthropicInstance.messages.create.mockResolvedValue(mockStream);
171
- const messages = [
172
- { role: ContentGeneratorRole.USER, content: 'Say hello' },
173
- ];
174
- const generator = provider.generateChatCompletion(messages);
175
- const chunks = [];
176
- for await (const chunk of generator) {
177
- chunks.push(chunk);
178
- }
179
- expect(chunks).toEqual([
180
- { role: 'assistant', content: 'Hello' },
181
- { role: 'assistant', content: ' world' },
182
- ]);
183
- expect(mockAnthropicInstance.messages.create).toHaveBeenCalledWith({
184
- model: 'claude-sonnet-4-20250514',
185
- messages: [{ role: 'user', content: 'Say hello' }],
186
- max_tokens: 64000,
187
- stream: true,
188
- });
189
- });
190
- it('should handle tool calls in the stream', async () => {
191
- const mockStream = {
192
- async *[Symbol.asyncIterator]() {
193
- yield {
194
- type: 'content_block_start',
195
- content_block: {
196
- type: 'tool_use',
197
- id: 'tool-123',
198
- name: 'get_weather',
199
- },
200
- };
201
- yield {
202
- type: 'content_block_delta',
203
- delta: {
204
- type: 'input_json_delta',
205
- partial_json: '{"location":"San Francisco"}',
206
- },
207
- };
208
- yield { type: 'content_block_stop' };
209
- yield {
210
- type: 'content_block_delta',
211
- delta: { type: 'text_delta', text: 'Result' },
212
- };
213
- },
214
- };
215
- mockAnthropicInstance.messages.create.mockResolvedValue(mockStream);
216
- const messages = [
217
- { role: ContentGeneratorRole.USER, content: 'What is the weather?' },
218
- ];
219
- const tools = [
220
- {
221
- type: 'function',
222
- function: {
223
- name: 'get_weather',
224
- description: 'Get the weather',
225
- parameters: { type: 'object', properties: {} },
226
- },
227
- },
228
- ];
229
- const generator = provider.generateChatCompletion(messages, tools);
230
- const chunks = [];
231
- for await (const chunk of generator) {
232
- chunks.push(chunk);
233
- }
234
- expect(chunks).toEqual([
235
- {
236
- role: 'assistant',
237
- content: '',
238
- tool_calls: [
239
- {
240
- id: 'tool-123',
241
- type: 'function',
242
- function: {
243
- name: 'get_weather',
244
- arguments: '{"location":"San Francisco"}',
245
- },
246
- },
247
- ],
248
- },
249
- { role: 'assistant', content: 'Result' },
250
- ]);
251
- expect(mockAnthropicInstance.messages.create).toHaveBeenCalledWith({
252
- model: 'claude-sonnet-4-20250514',
253
- messages: [{ role: 'user', content: 'What is the weather?' }],
254
- max_tokens: 64000,
255
- stream: true,
256
- tools: [
257
- {
258
- name: 'get_weather',
259
- description: 'Get the weather',
260
- input_schema: { type: 'object', properties: {} },
261
- },
262
- ],
263
- });
264
- });
265
- it('should handle API errors', async () => {
266
- mockAnthropicInstance.messages.create.mockRejectedValue(new Error('API Error'));
267
- const messages = [
268
- { role: ContentGeneratorRole.USER, content: 'test' },
269
- ];
270
- const generator = provider.generateChatCompletion(messages);
271
- await expect(generator.next()).rejects.toThrow('Anthropic API error: API Error');
272
- });
273
- it('should handle usage tracking', async () => {
274
- const mockStream = {
275
- async *[Symbol.asyncIterator]() {
276
- yield {
277
- type: 'message_start',
278
- message: {
279
- usage: { input_tokens: 10, output_tokens: 0 },
280
- },
281
- };
282
- yield {
283
- type: 'content_block_delta',
284
- delta: { type: 'text_delta', text: 'Hello' },
285
- };
286
- yield {
287
- type: 'message_delta',
288
- usage: { input_tokens: 10, output_tokens: 5 },
289
- };
290
- yield {
291
- type: 'content_block_delta',
292
- delta: { type: 'text_delta', text: ' world' },
293
- };
294
- yield {
295
- type: 'message_stop',
296
- };
297
- },
298
- };
299
- mockAnthropicInstance.messages.create.mockResolvedValue(mockStream);
300
- const messages = [
301
- { role: ContentGeneratorRole.USER, content: 'Say hello' },
302
- ];
303
- const generator = provider.generateChatCompletion(messages);
304
- const chunks = [];
305
- for await (const chunk of generator) {
306
- chunks.push(chunk);
307
- }
308
- // Filter out usage chunks for verification
309
- const usageChunks = chunks.filter((c) => c.usage);
310
- expect(usageChunks).toHaveLength(3);
311
- // Check first usage (from message_start)
312
- expect(usageChunks[0].usage).toEqual({
313
- prompt_tokens: 10,
314
- completion_tokens: 0,
315
- total_tokens: 10,
316
- });
317
- // Check updated usage from message_delta
318
- expect(usageChunks[1].usage).toEqual({
319
- prompt_tokens: 10,
320
- completion_tokens: 5,
321
- total_tokens: 15,
322
- });
323
- // Check final usage from message_stop (same as last update)
324
- expect(usageChunks[2].usage).toEqual({
325
- prompt_tokens: 10,
326
- completion_tokens: 5,
327
- total_tokens: 15,
328
- });
329
- });
330
- it('should ignore unknown chunk types', async () => {
331
- const mockStream = {
332
- async *[Symbol.asyncIterator]() {
333
- yield {
334
- type: 'content_block_delta',
335
- delta: { type: 'text_delta', text: 'Hello' },
336
- };
337
- yield { type: 'content_block_stop' }; // Should be ignored
338
- yield { type: 'message_delta' }; // Should be ignored without usage
339
- yield {
340
- type: 'content_block_delta',
341
- delta: { type: 'text_delta', text: ' world' },
342
- };
343
- },
344
- };
345
- mockAnthropicInstance.messages.create.mockResolvedValue(mockStream);
346
- const messages = [
347
- { role: ContentGeneratorRole.USER, content: 'Say hello' },
348
- ];
349
- const generator = provider.generateChatCompletion(messages);
350
- const chunks = [];
351
- for await (const chunk of generator) {
352
- chunks.push(chunk);
353
- }
354
- // Filter to only content chunks
355
- const contentChunks = chunks.filter((c) => c.content);
356
- expect(contentChunks).toHaveLength(2);
357
- expect(contentChunks[0].content).toBe('Hello');
358
- expect(contentChunks[1].content).toBe(' world');
359
- });
360
- it('should use ToolFormatter for tool conversion', async () => {
361
- const mockStream = {
362
- async *[Symbol.asyncIterator]() {
363
- yield {
364
- type: 'content_block_delta',
365
- delta: { type: 'text_delta', text: 'Done' },
366
- };
367
- },
368
- };
369
- mockAnthropicInstance.messages.create.mockResolvedValue(mockStream);
370
- const tools = [
371
- {
372
- type: 'function',
373
- function: {
374
- name: 'test_tool',
375
- description: 'A test tool',
376
- parameters: {
377
- type: 'object',
378
- properties: { foo: { type: 'string' } },
379
- },
380
- },
381
- },
382
- ];
383
- const messages = [
384
- { role: ContentGeneratorRole.USER, content: 'test' },
385
- ];
386
- const generator = provider.generateChatCompletion(messages, tools);
387
- const chunks = [];
388
- for await (const chunk of generator) {
389
- chunks.push(chunk);
390
- }
391
- // Verify ToolFormatter was used
392
- const ToolFormatterMock = vi.mocked((await import('../../tools/ToolFormatter.js')).ToolFormatter);
393
- const toolFormatterInstance = ToolFormatterMock.mock.results[0].value;
394
- expect(toolFormatterInstance.toProviderFormat).toHaveBeenCalledWith(tools, 'anthropic');
395
- });
396
- it('should retry on rate limit errors', { timeout: 10000 }, async () => {
397
- // First call fails with overloaded error
398
- mockAnthropicInstance.messages.create
399
- .mockRejectedValueOnce(new Error('Anthropic API error: {"type":"error","error":{"type":"overloaded_error","message":"Overloaded"}}'))
400
- .mockResolvedValueOnce({
401
- async *[Symbol.asyncIterator]() {
402
- yield {
403
- type: 'content_block_delta',
404
- delta: { type: 'text_delta', text: 'Success' },
405
- };
406
- },
407
- });
408
- const messages = [
409
- { role: ContentGeneratorRole.USER, content: 'Test retry' },
410
- ];
411
- const generator = provider.generateChatCompletion(messages);
412
- const chunks = [];
413
- for await (const chunk of generator) {
414
- chunks.push(chunk);
415
- }
416
- expect(chunks).toEqual([{ role: 'assistant', content: 'Success' }]);
417
- // Should have been called twice (first failed, second succeeded)
418
- expect(mockAnthropicInstance.messages.create).toHaveBeenCalledTimes(2);
419
- });
420
- it('should not retry on non-retryable errors', async () => {
421
- mockAnthropicInstance.messages.create.mockRejectedValue(new Error('Invalid API key'));
422
- const messages = [
423
- { role: ContentGeneratorRole.USER, content: 'Test' },
424
- ];
425
- const generator = provider.generateChatCompletion(messages);
426
- await expect(generator.next()).rejects.toThrow('Anthropic API error: Invalid API key');
427
- // Should have only been called once (no retry)
428
- expect(mockAnthropicInstance.messages.create).toHaveBeenCalledTimes(1);
429
- });
430
- it('should validate and fix tool_use/tool_result mismatches on retry', { timeout: 10000 }, async () => {
431
- // First call fails after partial tool use
432
- mockAnthropicInstance.messages.create
433
- .mockRejectedValueOnce(new Error('Anthropic API error: {"type":"error","error":{"type":"overloaded_error","message":"Overloaded"}}'))
434
- .mockResolvedValueOnce({
435
- async *[Symbol.asyncIterator]() {
436
- yield {
437
- type: 'content_block_delta',
438
- delta: { type: 'text_delta', text: 'Fixed and working' },
439
- };
440
- },
441
- });
442
- // Messages with a tool call but no tool result (simulating corrupted state)
443
- const messages = [
444
- { role: ContentGeneratorRole.USER, content: 'Test' },
445
- {
446
- role: ContentGeneratorRole.ASSISTANT,
447
- content: '',
448
- tool_calls: [
449
- {
450
- id: 'broken-tool-123',
451
- type: 'function',
452
- function: {
453
- name: 'test_tool',
454
- arguments: '{}',
455
- },
456
- },
457
- ],
458
- },
459
- { role: ContentGeneratorRole.USER, content: 'Continue' }, // This would normally cause an error
460
- ];
461
- const generator = provider.generateChatCompletion(messages);
462
- const chunks = [];
463
- for await (const chunk of generator) {
464
- chunks.push(chunk);
465
- }
466
- expect(chunks).toEqual([
467
- { role: 'assistant', content: 'Fixed and working' },
468
- ]);
469
- // Check the second call had fixed messages
470
- const secondCallArgs = mockAnthropicInstance.messages.create.mock.calls[1][0];
471
- const anthropicMessages = secondCallArgs.messages;
472
- // Should have the tool result added automatically
473
- expect(anthropicMessages).toHaveLength(4);
474
- expect(anthropicMessages[2]).toEqual({
475
- role: 'user',
476
- content: [
477
- {
478
- type: 'tool_result',
479
- tool_use_id: 'broken-tool-123',
480
- content: 'Error: Tool execution was interrupted. Please retry.',
481
- },
482
- ],
483
- });
484
- });
485
- });
486
- });
487
- //# sourceMappingURL=AnthropicProvider.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnthropicProvider.test.js","sourceRoot":"","sources":["../../../../src/providers/anthropic/AnthropicProvider.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 {};
@@ -1,126 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect } from 'vitest';
7
- import { promises as fs } from 'fs';
8
- import path from 'path';
9
- import { processSingleFileContent, ContentGeneratorRole, } from '@vybestack/llxprt-code-core';
10
- import { GeminiProvider } from './GeminiProvider.js';
11
- describe('GeminiProvider Integration', () => {
12
- it('should handle real PDF file content', async () => {
13
- const provider = new GeminiProvider();
14
- const testPdfPath = path.join(__dirname, '__fixtures__/test.pdf');
15
- // Check if test PDF exists
16
- try {
17
- await fs.access(testPdfPath);
18
- }
19
- catch {
20
- console.log('Skipping test - test PDF not found at:', testPdfPath);
21
- return;
22
- }
23
- // Process the PDF file like the read tool would
24
- const pdfResult = await processSingleFileContent(testPdfPath, path.dirname(testPdfPath));
25
- // Create a message with the PDF content
26
- const messages = [
27
- {
28
- role: ContentGeneratorRole.USER,
29
- content: 'Please analyze this PDF document:',
30
- parts: [
31
- { text: 'Please analyze this PDF document:' },
32
- pdfResult.llmContent,
33
- ],
34
- },
35
- ];
36
- // Convert to Gemini format
37
- const result = provider['convertMessagesToGeminiFormat'](messages);
38
- // Verify the structure
39
- expect(result).toHaveLength(1);
40
- expect(result[0].role).toBe('user');
41
- expect(result[0].parts).toHaveLength(2);
42
- // First part should be the text
43
- expect(result[0].parts[0]).toEqual({
44
- text: 'Please analyze this PDF document:',
45
- });
46
- // Second part should be the inline data
47
- expect(result[0].parts[1]).toHaveProperty('inlineData');
48
- expect(result[0].parts[1].inlineData).toHaveProperty('data');
49
- expect(result[0].parts[1].inlineData).toHaveProperty('mimeType', 'application/pdf');
50
- // Verify the base64 data is present and non-empty
51
- const inlineData = result[0].parts[1].inlineData;
52
- expect(inlineData?.data).toBeTruthy();
53
- expect(inlineData?.data?.length).toBeGreaterThan(100); // PDF should have substantial base64 data
54
- });
55
- it('should handle mixed text and image content', async () => {
56
- const provider = new GeminiProvider();
57
- // Simulate mixed content with text and an image
58
- const messages = [
59
- {
60
- role: ContentGeneratorRole.USER,
61
- content: 'What do you see in this image? Is it red?',
62
- parts: [
63
- { text: 'What do you see in this image?' },
64
- {
65
- inlineData: {
66
- data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==', // 1x1 red pixel PNG
67
- mimeType: 'image/png',
68
- },
69
- },
70
- { text: 'Is it red?' },
71
- ],
72
- },
73
- ];
74
- const result = provider['convertMessagesToGeminiFormat'](messages);
75
- expect(result).toHaveLength(1);
76
- expect(result[0].role).toBe('user');
77
- expect(result[0].parts).toHaveLength(3);
78
- expect(result[0].parts[0]).toEqual({
79
- text: 'What do you see in this image?',
80
- });
81
- expect(result[0].parts[1]).toEqual({
82
- inlineData: {
83
- data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==',
84
- mimeType: 'image/png',
85
- },
86
- });
87
- expect(result[0].parts[2]).toEqual({ text: 'Is it red?' });
88
- });
89
- it('should include a custom baseURL when it is set', async () => {
90
- const provider = new GeminiProvider();
91
- const baseURL = 'https://my-custom-url';
92
- provider.setBaseUrl(baseURL);
93
- // Simulate mixed content with text and an image
94
- const messages = [
95
- {
96
- role: ContentGeneratorRole.USER,
97
- content: 'What do you see in this image? Is it red?',
98
- parts: [
99
- { text: 'What do you see in this image?' },
100
- {
101
- inlineData: {
102
- data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==', // 1x1 red pixel PNG
103
- mimeType: 'image/png',
104
- },
105
- },
106
- { text: 'Is it red?' },
107
- ],
108
- },
109
- ];
110
- const result = provider['convertMessagesToGeminiFormat'](messages);
111
- expect(result).toHaveLength(1);
112
- expect(result[0].role).toBe('user');
113
- expect(result[0].parts).toHaveLength(3);
114
- expect(result[0].parts[0]).toEqual({
115
- text: 'What do you see in this image?',
116
- });
117
- expect(result[0].parts[1]).toEqual({
118
- inlineData: {
119
- data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==',
120
- mimeType: 'image/png',
121
- },
122
- });
123
- expect(result[0].parts[2]).toEqual({ text: 'Is it red?' });
124
- });
125
- });
126
- //# sourceMappingURL=GeminiProvider.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeminiProvider.integration.test.js","sourceRoot":"","sources":["../../../../src/providers/gemini/GeminiProvider.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 {};