@vybestack/llxprt-code-core 0.1.18-nightly.250811.b0db22c6 → 0.1.18-nightly.250812.12fa8ad2

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 (485) hide show
  1. package/README.md +49 -2
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +2 -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/token-store.js +11 -7
  9. package/dist/src/auth/token-store.js.map +1 -1
  10. package/dist/src/config/config.d.ts +7 -1
  11. package/dist/src/config/config.js +42 -4
  12. package/dist/src/config/config.js.map +1 -1
  13. package/dist/src/config/profileManager.d.ts +14 -4
  14. package/dist/src/config/profileManager.js +90 -11
  15. package/dist/src/config/profileManager.js.map +1 -1
  16. package/dist/src/core/contentGenerator.d.ts +2 -1
  17. package/dist/src/core/contentGenerator.js +1 -0
  18. package/dist/src/core/contentGenerator.js.map +1 -1
  19. package/dist/src/index.d.ts +6 -0
  20. package/dist/src/index.js +5 -0
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/providers/BaseProvider.d.ts +51 -0
  23. package/dist/src/providers/BaseProvider.js +136 -1
  24. package/dist/src/providers/BaseProvider.js.map +1 -1
  25. package/dist/src/providers/IProvider.d.ts +1 -0
  26. package/dist/src/providers/LoggingProviderWrapper.d.ts +1 -0
  27. package/dist/src/providers/LoggingProviderWrapper.js +3 -0
  28. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  29. package/dist/src/providers/ProviderManager.d.ts +0 -1
  30. package/dist/src/providers/ProviderManager.js +23 -14
  31. package/dist/src/providers/ProviderManager.js.map +1 -1
  32. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  33. package/dist/src/providers/anthropic/AnthropicProvider.js +172 -26
  34. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  35. package/dist/src/providers/gemini/GeminiProvider.d.ts +4 -0
  36. package/dist/src/providers/gemini/GeminiProvider.js +33 -1
  37. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  38. package/dist/src/providers/openai/OpenAIProvider.d.ts +32 -0
  39. package/dist/src/providers/openai/OpenAIProvider.js +200 -13
  40. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  41. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  42. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  43. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  44. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  45. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  46. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  47. package/dist/src/settings/SettingsService.d.ts +32 -0
  48. package/dist/src/settings/SettingsService.js +204 -0
  49. package/dist/src/settings/SettingsService.js.map +1 -0
  50. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  51. package/dist/src/settings/settingsServiceInstance.js +24 -0
  52. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  53. package/dist/src/settings/types.d.ts +141 -0
  54. package/dist/src/settings/types.js +5 -0
  55. package/dist/src/settings/types.js.map +1 -0
  56. package/package.json +4 -2
  57. package/dist/src/auth/auth-integration.spec.d.ts +0 -6
  58. package/dist/src/auth/auth-integration.spec.js +0 -384
  59. package/dist/src/auth/auth-integration.spec.js.map +0 -1
  60. package/dist/src/auth/precedence.test.d.ts +0 -6
  61. package/dist/src/auth/precedence.test.js +0 -374
  62. package/dist/src/auth/precedence.test.js.map +0 -1
  63. package/dist/src/auth/qwen-device-flow.spec.d.ts +0 -6
  64. package/dist/src/auth/qwen-device-flow.spec.js +0 -793
  65. package/dist/src/auth/qwen-device-flow.spec.js.map +0 -1
  66. package/dist/src/auth/token-store.spec.d.ts +0 -6
  67. package/dist/src/auth/token-store.spec.js +0 -405
  68. package/dist/src/auth/token-store.spec.js.map +0 -1
  69. package/dist/src/code_assist/converter.test.d.ts +0 -6
  70. package/dist/src/code_assist/converter.test.js +0 -279
  71. package/dist/src/code_assist/converter.test.js.map +0 -1
  72. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  73. package/dist/src/code_assist/oauth2.test.js +0 -370
  74. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  75. package/dist/src/code_assist/server.test.d.ts +0 -6
  76. package/dist/src/code_assist/server.test.js +0 -134
  77. package/dist/src/code_assist/server.test.js.map +0 -1
  78. package/dist/src/code_assist/setup.test.d.ts +0 -6
  79. package/dist/src/code_assist/setup.test.js +0 -65
  80. package/dist/src/code_assist/setup.test.js.map +0 -1
  81. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  82. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  83. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  84. package/dist/src/config/config.ephemeral.test.d.ts +0 -6
  85. package/dist/src/config/config.ephemeral.test.js +0 -152
  86. package/dist/src/config/config.ephemeral.test.js.map +0 -1
  87. package/dist/src/config/config.test.d.ts +0 -6
  88. package/dist/src/config/config.test.js +0 -369
  89. package/dist/src/config/config.test.js.map +0 -1
  90. package/dist/src/config/endpoints.test.d.ts +0 -6
  91. package/dist/src/config/endpoints.test.js +0 -196
  92. package/dist/src/config/endpoints.test.js.map +0 -1
  93. package/dist/src/config/flashFallback.test.d.ts +0 -6
  94. package/dist/src/config/flashFallback.test.js +0 -91
  95. package/dist/src/config/flashFallback.test.js.map +0 -1
  96. package/dist/src/core/client.test.d.ts +0 -6
  97. package/dist/src/core/client.test.js +0 -1323
  98. package/dist/src/core/client.test.js.map +0 -1
  99. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  100. package/dist/src/core/contentGenerator.test.js +0 -103
  101. package/dist/src/core/contentGenerator.test.js.map +0 -1
  102. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  103. package/dist/src/core/coreToolScheduler.test.js +0 -637
  104. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  105. package/dist/src/core/geminiChat.test.d.ts +0 -6
  106. package/dist/src/core/geminiChat.test.js +0 -425
  107. package/dist/src/core/geminiChat.test.js.map +0 -1
  108. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  109. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  110. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  111. package/dist/src/core/logger.test.d.ts +0 -6
  112. package/dist/src/core/logger.test.js +0 -467
  113. package/dist/src/core/logger.test.js.map +0 -1
  114. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  115. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  116. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  117. package/dist/src/core/prompts-async.test.d.ts +0 -6
  118. package/dist/src/core/prompts-async.test.js +0 -115
  119. package/dist/src/core/prompts-async.test.js.map +0 -1
  120. package/dist/src/core/prompts.test.d.ts +0 -6
  121. package/dist/src/core/prompts.test.js +0 -68
  122. package/dist/src/core/prompts.test.js.map +0 -1
  123. package/dist/src/core/subagent.test.d.ts +0 -6
  124. package/dist/src/core/subagent.test.js +0 -510
  125. package/dist/src/core/subagent.test.js.map +0 -1
  126. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  127. package/dist/src/core/tokenLimits.test.js +0 -66
  128. package/dist/src/core/tokenLimits.test.js.map +0 -1
  129. package/dist/src/core/turn.test.d.ts +0 -6
  130. package/dist/src/core/turn.test.js +0 -366
  131. package/dist/src/core/turn.test.js.map +0 -1
  132. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  133. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  134. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  135. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  136. package/dist/src/ide/ide-installer.test.js +0 -55
  137. package/dist/src/ide/ide-installer.test.js.map +0 -1
  138. package/dist/src/ide/ideContext.test.d.ts +0 -6
  139. package/dist/src/ide/ideContext.test.js +0 -265
  140. package/dist/src/ide/ideContext.test.js.map +0 -1
  141. package/dist/src/index.test.d.ts +0 -6
  142. package/dist/src/index.test.js +0 -12
  143. package/dist/src/index.test.js.map +0 -1
  144. package/dist/src/integration-tests/oauth-integration.spec.d.ts +0 -6
  145. package/dist/src/integration-tests/oauth-integration.spec.js +0 -518
  146. package/dist/src/integration-tests/oauth-integration.spec.js.map +0 -1
  147. package/dist/src/integration-tests/oauth-simple-test.spec.d.ts +0 -1
  148. package/dist/src/integration-tests/oauth-simple-test.spec.js +0 -88
  149. package/dist/src/integration-tests/oauth-simple-test.spec.js.map +0 -1
  150. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  151. package/dist/src/integration-tests/todo-system.test.js +0 -46
  152. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  153. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  154. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  155. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  156. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  157. package/dist/src/mcp/oauth-provider.test.js +0 -602
  158. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  159. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  160. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  161. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  162. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  163. package/dist/src/mcp/oauth-utils.test.js +0 -144
  164. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  165. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  166. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  167. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  168. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  169. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  170. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  171. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  172. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  173. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  174. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  175. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  176. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  177. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  178. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  179. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  180. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  181. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  182. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  183. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  184. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  185. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  186. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  187. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  188. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  189. package/dist/src/providers/BaseProvider.test.d.ts +0 -6
  190. package/dist/src/providers/BaseProvider.test.js +0 -472
  191. package/dist/src/providers/BaseProvider.test.js.map +0 -1
  192. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  193. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  194. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  195. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  196. package/dist/src/providers/ProviderManager.test.js +0 -284
  197. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  198. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  199. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  200. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  201. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  202. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  203. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  204. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  205. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  206. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  207. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  208. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  209. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  210. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  211. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  212. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  213. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  214. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -308
  215. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  216. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  217. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  218. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  219. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  220. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  221. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  222. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  223. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  224. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  225. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  226. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  227. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  228. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  229. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  230. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  231. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  232. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  233. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  234. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  235. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  236. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  237. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  238. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  239. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  240. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  241. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  242. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  243. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  244. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -621
  245. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  246. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  247. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  248. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  249. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  250. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  251. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  252. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  253. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  254. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  255. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  256. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  257. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  258. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  259. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  260. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  261. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  262. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  263. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  264. package/dist/src/providers/openai/openai-oauth.spec.d.ts +0 -16
  265. package/dist/src/providers/openai/openai-oauth.spec.js +0 -544
  266. package/dist/src/providers/openai/openai-oauth.spec.js.map +0 -1
  267. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  268. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  269. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  270. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  271. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  272. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  273. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  274. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  275. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  276. package/dist/src/services/gitService.test.d.ts +0 -6
  277. package/dist/src/services/gitService.test.js +0 -209
  278. package/dist/src/services/gitService.test.js.map +0 -1
  279. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  280. package/dist/src/services/loopDetectionService.test.js +0 -484
  281. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  282. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  283. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  284. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  285. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  286. package/dist/src/services/shellExecutionService.test.js +0 -272
  287. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  288. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  289. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  290. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  291. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  292. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  293. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  294. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  295. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  296. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  297. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -6
  298. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -187
  299. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  300. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  301. package/dist/src/telemetry/loggers.test.js +0 -573
  302. package/dist/src/telemetry/loggers.test.js.map +0 -1
  303. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  304. package/dist/src/telemetry/metrics.test.js +0 -212
  305. package/dist/src/telemetry/metrics.test.js.map +0 -1
  306. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  307. package/dist/src/telemetry/telemetry.test.js +0 -54
  308. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  309. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  310. package/dist/src/telemetry/uiTelemetry.test.js +0 -518
  311. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  312. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  313. package/dist/src/tools/ToolFormatter.test.js +0 -349
  314. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  315. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  316. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  317. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  318. package/dist/src/tools/diffOptions.test.d.ts +0 -6
  319. package/dist/src/tools/diffOptions.test.js +0 -119
  320. package/dist/src/tools/diffOptions.test.js.map +0 -1
  321. package/dist/src/tools/edit.test.d.ts +0 -6
  322. package/dist/src/tools/edit.test.js +0 -689
  323. package/dist/src/tools/edit.test.js.map +0 -1
  324. package/dist/src/tools/glob.test.d.ts +0 -6
  325. package/dist/src/tools/glob.test.js +0 -332
  326. package/dist/src/tools/glob.test.js.map +0 -1
  327. package/dist/src/tools/grep.test.d.ts +0 -6
  328. package/dist/src/tools/grep.test.js +0 -272
  329. package/dist/src/tools/grep.test.js.map +0 -1
  330. package/dist/src/tools/ls.test.d.ts +0 -6
  331. package/dist/src/tools/ls.test.js +0 -357
  332. package/dist/src/tools/ls.test.js.map +0 -1
  333. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  334. package/dist/src/tools/mcp-client.test.js +0 -617
  335. package/dist/src/tools/mcp-client.test.js.map +0 -1
  336. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  337. package/dist/src/tools/mcp-tool.test.js +0 -501
  338. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  339. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  340. package/dist/src/tools/memoryTool.test.js +0 -266
  341. package/dist/src/tools/memoryTool.test.js.map +0 -1
  342. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  343. package/dist/src/tools/modifiable-tool.test.js +0 -193
  344. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  345. package/dist/src/tools/read-file.test.d.ts +0 -6
  346. package/dist/src/tools/read-file.test.js +0 -319
  347. package/dist/src/tools/read-file.test.js.map +0 -1
  348. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  349. package/dist/src/tools/read-many-files.test.js +0 -644
  350. package/dist/src/tools/read-many-files.test.js.map +0 -1
  351. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  352. package/dist/src/tools/shell.multibyte.test.js +0 -75
  353. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  354. package/dist/src/tools/shell.test.d.ts +0 -6
  355. package/dist/src/tools/shell.test.js +0 -367
  356. package/dist/src/tools/shell.test.js.map +0 -1
  357. package/dist/src/tools/todo-pause.spec.d.ts +0 -6
  358. package/dist/src/tools/todo-pause.spec.js +0 -287
  359. package/dist/src/tools/todo-pause.spec.js.map +0 -1
  360. package/dist/src/tools/todo-read.test.d.ts +0 -6
  361. package/dist/src/tools/todo-read.test.js +0 -162
  362. package/dist/src/tools/todo-read.test.js.map +0 -1
  363. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  364. package/dist/src/tools/todo-schemas.test.js +0 -341
  365. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  366. package/dist/src/tools/todo-store.test.d.ts +0 -6
  367. package/dist/src/tools/todo-store.test.js +0 -169
  368. package/dist/src/tools/todo-store.test.js.map +0 -1
  369. package/dist/src/tools/todo-write.test.d.ts +0 -6
  370. package/dist/src/tools/todo-write.test.js +0 -226
  371. package/dist/src/tools/todo-write.test.js.map +0 -1
  372. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  373. package/dist/src/tools/tool-registry.test.js +0 -468
  374. package/dist/src/tools/tool-registry.test.js.map +0 -1
  375. package/dist/src/tools/tools.test.d.ts +0 -6
  376. package/dist/src/tools/tools.test.js +0 -117
  377. package/dist/src/tools/tools.test.js.map +0 -1
  378. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  379. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  380. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  381. package/dist/src/tools/web-search.test.d.ts +0 -6
  382. package/dist/src/tools/web-search.test.js +0 -230
  383. package/dist/src/tools/web-search.test.js.map +0 -1
  384. package/dist/src/tools/write-file.test.d.ts +0 -6
  385. package/dist/src/tools/write-file.test.js +0 -465
  386. package/dist/src/tools/write-file.test.js.map +0 -1
  387. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  388. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  389. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  390. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  391. package/dist/src/utils/editCorrector.test.js +0 -564
  392. package/dist/src/utils/editCorrector.test.js.map +0 -1
  393. package/dist/src/utils/editor.test.d.ts +0 -6
  394. package/dist/src/utils/editor.test.js +0 -445
  395. package/dist/src/utils/editor.test.js.map +0 -1
  396. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  397. package/dist/src/utils/environmentContext.test.js +0 -139
  398. package/dist/src/utils/environmentContext.test.js.map +0 -1
  399. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  400. package/dist/src/utils/errorReporting.test.js +0 -130
  401. package/dist/src/utils/errorReporting.test.js.map +0 -1
  402. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  403. package/dist/src/utils/fileUtils.test.js +0 -363
  404. package/dist/src/utils/fileUtils.test.js.map +0 -1
  405. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  406. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  407. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  408. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  409. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  410. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  411. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  412. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  413. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  414. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  415. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  416. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  417. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  418. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  419. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  420. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  421. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  422. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  423. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  424. package/dist/src/utils/getFolderStructure.test.js +0 -282
  425. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  426. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  427. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  428. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  429. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  430. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  431. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  432. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  433. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  434. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  435. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  436. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  437. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  438. package/dist/src/utils/partUtils.test.d.ts +0 -6
  439. package/dist/src/utils/partUtils.test.js +0 -130
  440. package/dist/src/utils/partUtils.test.js.map +0 -1
  441. package/dist/src/utils/paths.test.d.ts +0 -6
  442. package/dist/src/utils/paths.test.js +0 -153
  443. package/dist/src/utils/paths.test.js.map +0 -1
  444. package/dist/src/utils/retry.test.d.ts +0 -6
  445. package/dist/src/utils/retry.test.js +0 -322
  446. package/dist/src/utils/retry.test.js.map +0 -1
  447. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  448. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  449. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  450. package/dist/src/utils/sanitization.test.d.ts +0 -6
  451. package/dist/src/utils/sanitization.test.js +0 -81
  452. package/dist/src/utils/sanitization.test.js.map +0 -1
  453. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  454. package/dist/src/utils/schemaValidator.test.js +0 -146
  455. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  456. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  457. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  458. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  459. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  460. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  461. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  462. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  463. package/dist/src/utils/shell-utils.test.js +0 -200
  464. package/dist/src/utils/shell-utils.test.js.map +0 -1
  465. package/dist/src/utils/summarizer.test.d.ts +0 -6
  466. package/dist/src/utils/summarizer.test.js +0 -131
  467. package/dist/src/utils/summarizer.test.js.map +0 -1
  468. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  469. package/dist/src/utils/systemEncoding.test.js +0 -368
  470. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  471. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  472. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  473. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  474. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  475. package/dist/src/utils/unicodeUtils.test.js +0 -120
  476. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  477. package/dist/src/utils/user_account.test.d.ts +0 -6
  478. package/dist/src/utils/user_account.test.js +0 -153
  479. package/dist/src/utils/user_account.test.js.map +0 -1
  480. package/dist/src/utils/user_id.test.d.ts +0 -6
  481. package/dist/src/utils/user_id.test.js +0 -21
  482. package/dist/src/utils/user_id.test.js.map +0 -1
  483. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  484. package/dist/src/utils/workspaceContext.test.js +0 -209
  485. package/dist/src/utils/workspaceContext.test.js.map +0 -1
@@ -1,501 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
8
- import { DiscoveredMCPTool, generateValidName } from './mcp-tool.js'; // Added getStringifiedResultForDisplay
9
- import { ToolConfirmationOutcome } from './tools.js'; // Added ToolConfirmationOutcome
10
- // Mock @google/genai mcpToTool and CallableTool
11
- // We only need to mock the parts of CallableTool that DiscoveredMCPTool uses.
12
- const mockCallTool = vi.fn();
13
- const mockToolMethod = vi.fn();
14
- const mockCallableToolInstance = {
15
- tool: mockToolMethod, // Not directly used by DiscoveredMCPTool instance methods
16
- callTool: mockCallTool,
17
- // Add other methods if DiscoveredMCPTool starts using them
18
- };
19
- describe('generateValidName', () => {
20
- it('should return a valid name for a simple function', () => {
21
- expect(generateValidName('myFunction')).toBe('myFunction');
22
- });
23
- it('should replace invalid characters with underscores', () => {
24
- expect(generateValidName('invalid-name with spaces')).toBe('invalid-name_with_spaces');
25
- });
26
- it('should truncate long names', () => {
27
- expect(generateValidName('x'.repeat(80))).toBe('xxxxxxxxxxxxxxxxxxxxxxxxxxxx___xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
28
- });
29
- it('should handle names with only invalid characters', () => {
30
- expect(generateValidName('!@#$%^&*()')).toBe('__________');
31
- });
32
- it('should handle names that are exactly 63 characters long', () => {
33
- expect(generateValidName('a'.repeat(63)).length).toBe(63);
34
- });
35
- it('should handle names that are exactly 64 characters long', () => {
36
- expect(generateValidName('a'.repeat(64)).length).toBe(63);
37
- });
38
- it('should handle names that are longer than 64 characters', () => {
39
- expect(generateValidName('a'.repeat(80)).length).toBe(63);
40
- });
41
- });
42
- describe('DiscoveredMCPTool', () => {
43
- const serverName = 'mock-mcp-server';
44
- const serverToolName = 'actual-server-tool-name';
45
- const baseDescription = 'A test MCP tool.';
46
- const inputSchema = {
47
- type: 'object',
48
- properties: { param: { type: 'string' } },
49
- required: ['param'],
50
- };
51
- beforeEach(() => {
52
- mockCallTool.mockClear();
53
- mockToolMethod.mockClear();
54
- // Clear allowlist before each relevant test, especially for shouldConfirmExecute
55
- DiscoveredMCPTool.allowlist.clear();
56
- });
57
- afterEach(() => {
58
- vi.restoreAllMocks();
59
- });
60
- describe('constructor', () => {
61
- it('should set properties correctly', () => {
62
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
63
- expect(tool.name).toBe(serverToolName);
64
- expect(tool.schema.name).toBe(serverToolName);
65
- expect(tool.schema.description).toBe(baseDescription);
66
- expect(tool.schema.parameters).toBeUndefined();
67
- expect(tool.schema.parametersJsonSchema).toEqual(inputSchema);
68
- expect(tool.serverToolName).toBe(serverToolName);
69
- expect(tool.timeout).toBeUndefined();
70
- });
71
- it('should accept and store a custom timeout', () => {
72
- const customTimeout = 5000;
73
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema, customTimeout);
74
- expect(tool.timeout).toBe(customTimeout);
75
- });
76
- });
77
- describe('execute', () => {
78
- it('should call mcpTool.callTool with correct parameters and format display output', async () => {
79
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
80
- const params = { param: 'testValue' };
81
- const mockToolSuccessResultObject = {
82
- success: true,
83
- details: 'executed',
84
- };
85
- const mockFunctionResponseContent = [
86
- {
87
- type: 'text',
88
- text: JSON.stringify(mockToolSuccessResultObject),
89
- },
90
- ];
91
- const mockMcpToolResponseParts = [
92
- {
93
- functionResponse: {
94
- name: serverToolName,
95
- response: { content: mockFunctionResponseContent },
96
- },
97
- },
98
- ];
99
- mockCallTool.mockResolvedValue(mockMcpToolResponseParts);
100
- const toolResult = await tool.execute(params);
101
- expect(mockCallTool).toHaveBeenCalledWith([
102
- { name: serverToolName, args: params },
103
- ]);
104
- const stringifiedResponseContent = JSON.stringify(mockToolSuccessResultObject);
105
- expect(toolResult.llmContent).toEqual([
106
- { text: stringifiedResponseContent },
107
- ]);
108
- expect(toolResult.returnDisplay).toBe(stringifiedResponseContent);
109
- });
110
- it('should handle empty result from getStringifiedResultForDisplay', async () => {
111
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
112
- const params = { param: 'testValue' };
113
- const mockMcpToolResponsePartsEmpty = [];
114
- mockCallTool.mockResolvedValue(mockMcpToolResponsePartsEmpty);
115
- const toolResult = await tool.execute(params);
116
- expect(toolResult.returnDisplay).toBe('```json\n[]\n```');
117
- expect(toolResult.llmContent).toEqual([
118
- { text: '[Error: Could not parse tool response]' },
119
- ]);
120
- });
121
- it('should propagate rejection if mcpTool.callTool rejects', async () => {
122
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
123
- const params = { param: 'failCase' };
124
- const expectedError = new Error('MCP call failed');
125
- mockCallTool.mockRejectedValue(expectedError);
126
- await expect(tool.execute(params)).rejects.toThrow(expectedError);
127
- });
128
- it('should handle a simple text response correctly', async () => {
129
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
130
- const params = { query: 'test' };
131
- const successMessage = 'This is a success message.';
132
- // Simulate the response from the GenAI SDK, which wraps the MCP
133
- // response in a functionResponse Part.
134
- const sdkResponse = [
135
- {
136
- functionResponse: {
137
- name: serverToolName,
138
- response: {
139
- // The `content` array contains MCP ContentBlocks.
140
- content: [{ type: 'text', text: successMessage }],
141
- },
142
- },
143
- },
144
- ];
145
- mockCallTool.mockResolvedValue(sdkResponse);
146
- const toolResult = await tool.execute(params);
147
- // 1. Assert that the llmContent sent to the scheduler is a clean Part array.
148
- expect(toolResult.llmContent).toEqual([{ text: successMessage }]);
149
- // 2. Assert that the display output is the simple text message.
150
- expect(toolResult.returnDisplay).toBe(successMessage);
151
- // 3. Verify that the underlying callTool was made correctly.
152
- expect(mockCallTool).toHaveBeenCalledWith([
153
- { name: serverToolName, args: params },
154
- ]);
155
- });
156
- it('should handle an AudioBlock response', async () => {
157
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
158
- const params = { action: 'play' };
159
- const sdkResponse = [
160
- {
161
- functionResponse: {
162
- name: serverToolName,
163
- response: {
164
- content: [
165
- {
166
- type: 'audio',
167
- data: 'BASE64_AUDIO_DATA',
168
- mimeType: 'audio/mp3',
169
- },
170
- ],
171
- },
172
- },
173
- },
174
- ];
175
- mockCallTool.mockResolvedValue(sdkResponse);
176
- const toolResult = await tool.execute(params);
177
- expect(toolResult.llmContent).toEqual([
178
- {
179
- text: `[Tool '${serverToolName}' provided the following audio data with mime-type: audio/mp3]`,
180
- },
181
- {
182
- inlineData: {
183
- mimeType: 'audio/mp3',
184
- data: 'BASE64_AUDIO_DATA',
185
- },
186
- },
187
- ]);
188
- expect(toolResult.returnDisplay).toBe('[Audio: audio/mp3]');
189
- });
190
- it('should handle a ResourceLinkBlock response', async () => {
191
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
192
- const params = { resource: 'get' };
193
- const sdkResponse = [
194
- {
195
- functionResponse: {
196
- name: serverToolName,
197
- response: {
198
- content: [
199
- {
200
- type: 'resource_link',
201
- uri: 'file:///path/to/thing',
202
- name: 'resource-name',
203
- title: 'My Resource',
204
- },
205
- ],
206
- },
207
- },
208
- },
209
- ];
210
- mockCallTool.mockResolvedValue(sdkResponse);
211
- const toolResult = await tool.execute(params);
212
- expect(toolResult.llmContent).toEqual([
213
- {
214
- text: 'Resource Link: My Resource at file:///path/to/thing',
215
- },
216
- ]);
217
- expect(toolResult.returnDisplay).toBe('[Link to My Resource: file:///path/to/thing]');
218
- });
219
- it('should handle an embedded text ResourceBlock response', async () => {
220
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
221
- const params = { resource: 'get' };
222
- const sdkResponse = [
223
- {
224
- functionResponse: {
225
- name: serverToolName,
226
- response: {
227
- content: [
228
- {
229
- type: 'resource',
230
- resource: {
231
- uri: 'file:///path/to/text.txt',
232
- text: 'This is the text content.',
233
- mimeType: 'text/plain',
234
- },
235
- },
236
- ],
237
- },
238
- },
239
- },
240
- ];
241
- mockCallTool.mockResolvedValue(sdkResponse);
242
- const toolResult = await tool.execute(params);
243
- expect(toolResult.llmContent).toEqual([
244
- { text: 'This is the text content.' },
245
- ]);
246
- expect(toolResult.returnDisplay).toBe('This is the text content.');
247
- });
248
- it('should handle an embedded binary ResourceBlock response', async () => {
249
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
250
- const params = { resource: 'get' };
251
- const sdkResponse = [
252
- {
253
- functionResponse: {
254
- name: serverToolName,
255
- response: {
256
- content: [
257
- {
258
- type: 'resource',
259
- resource: {
260
- uri: 'file:///path/to/data.bin',
261
- blob: 'BASE64_BINARY_DATA',
262
- mimeType: 'application/octet-stream',
263
- },
264
- },
265
- ],
266
- },
267
- },
268
- },
269
- ];
270
- mockCallTool.mockResolvedValue(sdkResponse);
271
- const toolResult = await tool.execute(params);
272
- expect(toolResult.llmContent).toEqual([
273
- {
274
- text: `[Tool '${serverToolName}' provided the following embedded resource with mime-type: application/octet-stream]`,
275
- },
276
- {
277
- inlineData: {
278
- mimeType: 'application/octet-stream',
279
- data: 'BASE64_BINARY_DATA',
280
- },
281
- },
282
- ]);
283
- expect(toolResult.returnDisplay).toBe('[Embedded Resource: application/octet-stream]');
284
- });
285
- it('should handle a mix of content block types', async () => {
286
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
287
- const params = { action: 'complex' };
288
- const sdkResponse = [
289
- {
290
- functionResponse: {
291
- name: serverToolName,
292
- response: {
293
- content: [
294
- { type: 'text', text: 'First part.' },
295
- {
296
- type: 'image',
297
- data: 'BASE64_IMAGE_DATA',
298
- mimeType: 'image/jpeg',
299
- },
300
- { type: 'text', text: 'Second part.' },
301
- ],
302
- },
303
- },
304
- },
305
- ];
306
- mockCallTool.mockResolvedValue(sdkResponse);
307
- const toolResult = await tool.execute(params);
308
- expect(toolResult.llmContent).toEqual([
309
- { text: 'First part.' },
310
- {
311
- text: `[Tool '${serverToolName}' provided the following image data with mime-type: image/jpeg]`,
312
- },
313
- {
314
- inlineData: {
315
- mimeType: 'image/jpeg',
316
- data: 'BASE64_IMAGE_DATA',
317
- },
318
- },
319
- { text: 'Second part.' },
320
- ]);
321
- expect(toolResult.returnDisplay).toBe('First part.\n[Image: image/jpeg]\nSecond part.');
322
- });
323
- it('should ignore unknown content block types', async () => {
324
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
325
- const params = { action: 'test' };
326
- const sdkResponse = [
327
- {
328
- functionResponse: {
329
- name: serverToolName,
330
- response: {
331
- content: [
332
- { type: 'text', text: 'Valid part.' },
333
- { type: 'future_block', data: 'some-data' },
334
- ],
335
- },
336
- },
337
- },
338
- ];
339
- mockCallTool.mockResolvedValue(sdkResponse);
340
- const toolResult = await tool.execute(params);
341
- expect(toolResult.llmContent).toEqual([{ text: 'Valid part.' }]);
342
- expect(toolResult.returnDisplay).toBe('Valid part.\n[Unknown content type: future_block]');
343
- });
344
- it('should handle a complex mix of content block types', async () => {
345
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
346
- const params = { action: 'super-complex' };
347
- const sdkResponse = [
348
- {
349
- functionResponse: {
350
- name: serverToolName,
351
- response: {
352
- content: [
353
- { type: 'text', text: 'Here is a resource.' },
354
- {
355
- type: 'resource_link',
356
- uri: 'file:///path/to/resource',
357
- name: 'resource-name',
358
- title: 'My Resource',
359
- },
360
- {
361
- type: 'resource',
362
- resource: {
363
- uri: 'file:///path/to/text.txt',
364
- text: 'Embedded text content.',
365
- mimeType: 'text/plain',
366
- },
367
- },
368
- {
369
- type: 'image',
370
- data: 'BASE64_IMAGE_DATA',
371
- mimeType: 'image/jpeg',
372
- },
373
- ],
374
- },
375
- },
376
- },
377
- ];
378
- mockCallTool.mockResolvedValue(sdkResponse);
379
- const toolResult = await tool.execute(params);
380
- expect(toolResult.llmContent).toEqual([
381
- { text: 'Here is a resource.' },
382
- {
383
- text: 'Resource Link: My Resource at file:///path/to/resource',
384
- },
385
- { text: 'Embedded text content.' },
386
- {
387
- text: `[Tool '${serverToolName}' provided the following image data with mime-type: image/jpeg]`,
388
- },
389
- {
390
- inlineData: {
391
- mimeType: 'image/jpeg',
392
- data: 'BASE64_IMAGE_DATA',
393
- },
394
- },
395
- ]);
396
- expect(toolResult.returnDisplay).toBe('Here is a resource.\n[Link to My Resource: file:///path/to/resource]\nEmbedded text content.\n[Image: image/jpeg]');
397
- });
398
- });
399
- describe('shouldConfirmExecute', () => {
400
- // beforeEach is already clearing allowlist
401
- it('should return false if trust is true', async () => {
402
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema, undefined, true);
403
- expect(await tool.shouldConfirmExecute({}, new AbortController().signal)).toBe(false);
404
- });
405
- it('should return false if server is allowlisted', async () => {
406
- DiscoveredMCPTool.allowlist.add(serverName);
407
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
408
- expect(await tool.shouldConfirmExecute({}, new AbortController().signal)).toBe(false);
409
- });
410
- it('should return false if tool is allowlisted', async () => {
411
- const toolAllowlistKey = `${serverName}.${serverToolName}`;
412
- DiscoveredMCPTool.allowlist.add(toolAllowlistKey);
413
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
414
- expect(await tool.shouldConfirmExecute({}, new AbortController().signal)).toBe(false);
415
- });
416
- it('should return confirmation details if not trusted and not allowlisted', async () => {
417
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
418
- const confirmation = await tool.shouldConfirmExecute({}, new AbortController().signal);
419
- expect(confirmation).not.toBe(false);
420
- if (confirmation && confirmation.type === 'mcp') {
421
- // Type guard for ToolMcpConfirmationDetails
422
- expect(confirmation.type).toBe('mcp');
423
- expect(confirmation.serverName).toBe(serverName);
424
- expect(confirmation.toolName).toBe(serverToolName);
425
- }
426
- else if (confirmation) {
427
- // Handle other possible confirmation types if necessary, or strengthen test if only MCP is expected
428
- throw new Error('Confirmation was not of expected type MCP or was false');
429
- }
430
- else {
431
- throw new Error('Confirmation details not in expected format or was false');
432
- }
433
- });
434
- it('should add server to allowlist on ProceedAlwaysServer', async () => {
435
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
436
- const confirmation = await tool.shouldConfirmExecute({}, new AbortController().signal);
437
- expect(confirmation).not.toBe(false);
438
- if (confirmation &&
439
- typeof confirmation === 'object' &&
440
- 'onConfirm' in confirmation &&
441
- typeof confirmation.onConfirm === 'function') {
442
- await confirmation.onConfirm(ToolConfirmationOutcome.ProceedAlwaysServer);
443
- expect(DiscoveredMCPTool.allowlist.has(serverName)).toBe(true);
444
- }
445
- else {
446
- throw new Error('Confirmation details or onConfirm not in expected format');
447
- }
448
- });
449
- it('should add tool to allowlist on ProceedAlwaysTool', async () => {
450
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
451
- const toolAllowlistKey = `${serverName}.${serverToolName}`;
452
- const confirmation = await tool.shouldConfirmExecute({}, new AbortController().signal);
453
- expect(confirmation).not.toBe(false);
454
- if (confirmation &&
455
- typeof confirmation === 'object' &&
456
- 'onConfirm' in confirmation &&
457
- typeof confirmation.onConfirm === 'function') {
458
- await confirmation.onConfirm(ToolConfirmationOutcome.ProceedAlwaysTool);
459
- expect(DiscoveredMCPTool.allowlist.has(toolAllowlistKey)).toBe(true);
460
- }
461
- else {
462
- throw new Error('Confirmation details or onConfirm not in expected format');
463
- }
464
- });
465
- it('should handle Cancel confirmation outcome', async () => {
466
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
467
- const confirmation = await tool.shouldConfirmExecute({}, new AbortController().signal);
468
- expect(confirmation).not.toBe(false);
469
- if (confirmation &&
470
- typeof confirmation === 'object' &&
471
- 'onConfirm' in confirmation &&
472
- typeof confirmation.onConfirm === 'function') {
473
- // Cancel should not add anything to allowlist
474
- await confirmation.onConfirm(ToolConfirmationOutcome.Cancel);
475
- expect(DiscoveredMCPTool.allowlist.has(serverName)).toBe(false);
476
- expect(DiscoveredMCPTool.allowlist.has(`${serverName}.${serverToolName}`)).toBe(false);
477
- }
478
- else {
479
- throw new Error('Confirmation details or onConfirm not in expected format');
480
- }
481
- });
482
- it('should handle ProceedOnce confirmation outcome', async () => {
483
- const tool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, inputSchema);
484
- const confirmation = await tool.shouldConfirmExecute({}, new AbortController().signal);
485
- expect(confirmation).not.toBe(false);
486
- if (confirmation &&
487
- typeof confirmation === 'object' &&
488
- 'onConfirm' in confirmation &&
489
- typeof confirmation.onConfirm === 'function') {
490
- // ProceedOnce should not add anything to allowlist
491
- await confirmation.onConfirm(ToolConfirmationOutcome.ProceedOnce);
492
- expect(DiscoveredMCPTool.allowlist.has(serverName)).toBe(false);
493
- expect(DiscoveredMCPTool.allowlist.has(`${serverName}.${serverToolName}`)).toBe(false);
494
- }
495
- else {
496
- throw new Error('Confirmation details or onConfirm not in expected format');
497
- }
498
- });
499
- });
500
- });
501
- //# sourceMappingURL=mcp-tool.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-tool.test.js","sourceRoot":"","sources":["../../../src/tools/mcp-tool.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};