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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/README.md +49 -2
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.js +6 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/auth/anthropic-device-flow.d.ts +53 -0
  6. package/dist/src/auth/anthropic-device-flow.js +208 -0
  7. package/dist/src/auth/anthropic-device-flow.js.map +1 -0
  8. package/dist/src/auth/precedence.d.ts +55 -0
  9. package/dist/src/auth/precedence.js +211 -0
  10. package/dist/src/auth/precedence.js.map +1 -0
  11. package/dist/src/auth/qwen-device-flow.d.ts +45 -0
  12. package/dist/src/auth/qwen-device-flow.js +179 -0
  13. package/dist/src/auth/qwen-device-flow.js.map +1 -0
  14. package/dist/src/auth/token-store.d.ts +66 -0
  15. package/dist/src/auth/token-store.js +151 -0
  16. package/dist/src/auth/token-store.js.map +1 -0
  17. package/dist/src/auth/types.d.ts +130 -0
  18. package/dist/src/auth/types.js +60 -0
  19. package/dist/src/auth/types.js.map +1 -0
  20. package/dist/src/code_assist/converter.d.ts +2 -2
  21. package/dist/src/code_assist/converter.js +1 -1
  22. package/dist/src/code_assist/converter.js.map +1 -1
  23. package/dist/src/config/config.d.ts +7 -1
  24. package/dist/src/config/config.js +46 -5
  25. package/dist/src/config/config.js.map +1 -1
  26. package/dist/src/config/endpoints.d.ts +60 -0
  27. package/dist/src/config/endpoints.js +126 -0
  28. package/dist/src/config/endpoints.js.map +1 -0
  29. package/dist/src/config/profileManager.d.ts +14 -4
  30. package/dist/src/config/profileManager.js +90 -11
  31. package/dist/src/config/profileManager.js.map +1 -1
  32. package/dist/src/core/client.d.ts +5 -2
  33. package/dist/src/core/client.js +164 -44
  34. package/dist/src/core/client.js.map +1 -1
  35. package/dist/src/core/contentGenerator.d.ts +4 -1
  36. package/dist/src/core/contentGenerator.js +3 -0
  37. package/dist/src/core/contentGenerator.js.map +1 -1
  38. package/dist/src/core/loggingContentGenerator.d.ts +5 -0
  39. package/dist/src/core/loggingContentGenerator.js +9 -1
  40. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  41. package/dist/src/core/subagent.js +12 -10
  42. package/dist/src/core/subagent.js.map +1 -1
  43. package/dist/src/ide/detect-ide.d.ts +10 -2
  44. package/dist/src/ide/detect-ide.js +48 -5
  45. package/dist/src/ide/detect-ide.js.map +1 -1
  46. package/dist/src/ide/ide-client.js +22 -15
  47. package/dist/src/ide/ide-client.js.map +1 -1
  48. package/dist/src/index.d.ts +10 -1
  49. package/dist/src/index.js +10 -1
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
  52. package/dist/src/prompt-config/defaults/core-defaults.js +21 -326
  53. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  54. package/dist/src/prompt-config/defaults/core.md +1 -1
  55. package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
  56. package/dist/src/prompt-config/defaults/provider-defaults.js +16 -19
  57. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  58. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
  59. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
  60. package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
  61. package/dist/src/prompt-config/defaults/tool-defaults.js +27 -75
  62. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  63. package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
  64. package/dist/src/providers/BaseProvider.d.ts +149 -0
  65. package/dist/src/providers/BaseProvider.js +315 -0
  66. package/dist/src/providers/BaseProvider.js.map +1 -0
  67. package/dist/src/providers/IProvider.d.ts +1 -0
  68. package/dist/src/providers/LoggingProviderWrapper.d.ts +1 -0
  69. package/dist/src/providers/LoggingProviderWrapper.js +3 -0
  70. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  71. package/dist/src/providers/ProviderManager.d.ts +0 -1
  72. package/dist/src/providers/ProviderManager.js +23 -14
  73. package/dist/src/providers/ProviderManager.js.map +1 -1
  74. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +20 -6
  75. package/dist/src/providers/anthropic/AnthropicProvider.js +173 -27
  76. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  77. package/dist/src/providers/gemini/GeminiProvider.d.ts +20 -7
  78. package/dist/src/providers/gemini/GeminiProvider.js +182 -147
  79. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  80. package/dist/src/providers/openai/OpenAIProvider.d.ts +53 -6
  81. package/dist/src/providers/openai/OpenAIProvider.js +373 -40
  82. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  83. package/dist/src/providers/openai/RESPONSES_API_MODELS.d.ts +1 -1
  84. package/dist/src/providers/openai/RESPONSES_API_MODELS.js +1 -0
  85. package/dist/src/providers/openai/RESPONSES_API_MODELS.js.map +1 -1
  86. package/dist/src/providers/openai/syntheticToolResponses.d.ts +52 -0
  87. package/dist/src/providers/openai/syntheticToolResponses.js +129 -0
  88. package/dist/src/providers/openai/syntheticToolResponses.js.map +1 -0
  89. package/dist/src/services/loopDetectionService.js +4 -5
  90. package/dist/src/services/loopDetectionService.js.map +1 -1
  91. package/dist/src/settings/SettingsService.d.ts +32 -0
  92. package/dist/src/settings/SettingsService.js +204 -0
  93. package/dist/src/settings/SettingsService.js.map +1 -0
  94. package/dist/src/settings/settingsServiceInstance.d.ts +12 -0
  95. package/dist/src/settings/settingsServiceInstance.js +24 -0
  96. package/dist/src/settings/settingsServiceInstance.js.map +1 -0
  97. package/dist/src/settings/types.d.ts +141 -0
  98. package/dist/src/settings/types.js +5 -0
  99. package/dist/src/settings/types.js.map +1 -0
  100. package/dist/src/tools/edit.js +6 -7
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/glob.js +7 -8
  103. package/dist/src/tools/glob.js.map +1 -1
  104. package/dist/src/tools/grep.js +6 -7
  105. package/dist/src/tools/grep.js.map +1 -1
  106. package/dist/src/tools/ls.js +9 -10
  107. package/dist/src/tools/ls.js.map +1 -1
  108. package/dist/src/tools/mcp-tool.d.ts +3 -8
  109. package/dist/src/tools/mcp-tool.js +5 -18
  110. package/dist/src/tools/mcp-tool.js.map +1 -1
  111. package/dist/src/tools/memoryTool.js +4 -5
  112. package/dist/src/tools/memoryTool.js.map +1 -1
  113. package/dist/src/tools/read-file.js +5 -6
  114. package/dist/src/tools/read-file.js.map +1 -1
  115. package/dist/src/tools/read-many-files.js +17 -18
  116. package/dist/src/tools/read-many-files.js.map +1 -1
  117. package/dist/src/tools/shell.js +8 -9
  118. package/dist/src/tools/shell.js.map +1 -1
  119. package/dist/src/tools/tool-registry.d.ts +1 -15
  120. package/dist/src/tools/tool-registry.js +4 -72
  121. package/dist/src/tools/tool-registry.js.map +1 -1
  122. package/dist/src/tools/tools.d.ts +6 -6
  123. package/dist/src/tools/tools.js +2 -2
  124. package/dist/src/tools/tools.js.map +1 -1
  125. package/dist/src/tools/web-fetch.js +3 -4
  126. package/dist/src/tools/web-fetch.js.map +1 -1
  127. package/dist/src/tools/web-search.js +3 -4
  128. package/dist/src/tools/web-search.js.map +1 -1
  129. package/dist/src/tools/write-file.js +4 -5
  130. package/dist/src/tools/write-file.js.map +1 -1
  131. package/dist/src/utils/editCorrector.js +8 -9
  132. package/dist/src/utils/editCorrector.js.map +1 -1
  133. package/dist/src/utils/nextSpeakerChecker.js +3 -4
  134. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  135. package/dist/src/utils/schemaValidator.d.ts +1 -9
  136. package/dist/src/utils/schemaValidator.js +1 -109
  137. package/dist/src/utils/schemaValidator.js.map +1 -1
  138. package/package.json +4 -2
  139. package/dist/src/code_assist/converter.test.d.ts +0 -6
  140. package/dist/src/code_assist/converter.test.js +0 -279
  141. package/dist/src/code_assist/converter.test.js.map +0 -1
  142. package/dist/src/code_assist/oauth2.test.d.ts +0 -6
  143. package/dist/src/code_assist/oauth2.test.js +0 -370
  144. package/dist/src/code_assist/oauth2.test.js.map +0 -1
  145. package/dist/src/code_assist/server.test.d.ts +0 -6
  146. package/dist/src/code_assist/server.test.js +0 -134
  147. package/dist/src/code_assist/server.test.js.map +0 -1
  148. package/dist/src/code_assist/setup.test.d.ts +0 -6
  149. package/dist/src/code_assist/setup.test.js +0 -65
  150. package/dist/src/code_assist/setup.test.js.map +0 -1
  151. package/dist/src/config/config.alwaysAllow.test.d.ts +0 -6
  152. package/dist/src/config/config.alwaysAllow.test.js +0 -84
  153. package/dist/src/config/config.alwaysAllow.test.js.map +0 -1
  154. package/dist/src/config/config.ephemeral.test.d.ts +0 -6
  155. package/dist/src/config/config.ephemeral.test.js +0 -152
  156. package/dist/src/config/config.ephemeral.test.js.map +0 -1
  157. package/dist/src/config/config.test.d.ts +0 -6
  158. package/dist/src/config/config.test.js +0 -369
  159. package/dist/src/config/config.test.js.map +0 -1
  160. package/dist/src/config/flashFallback.test.d.ts +0 -6
  161. package/dist/src/config/flashFallback.test.js +0 -91
  162. package/dist/src/config/flashFallback.test.js.map +0 -1
  163. package/dist/src/core/client.test.d.ts +0 -6
  164. package/dist/src/core/client.test.js +0 -1322
  165. package/dist/src/core/client.test.js.map +0 -1
  166. package/dist/src/core/contentGenerator.test.d.ts +0 -6
  167. package/dist/src/core/contentGenerator.test.js +0 -103
  168. package/dist/src/core/contentGenerator.test.js.map +0 -1
  169. package/dist/src/core/coreToolScheduler.test.d.ts +0 -6
  170. package/dist/src/core/coreToolScheduler.test.js +0 -637
  171. package/dist/src/core/coreToolScheduler.test.js.map +0 -1
  172. package/dist/src/core/geminiChat.test.d.ts +0 -6
  173. package/dist/src/core/geminiChat.test.js +0 -425
  174. package/dist/src/core/geminiChat.test.js.map +0 -1
  175. package/dist/src/core/googleGenAIWrapper.test.d.ts +0 -6
  176. package/dist/src/core/googleGenAIWrapper.test.js +0 -104
  177. package/dist/src/core/googleGenAIWrapper.test.js.map +0 -1
  178. package/dist/src/core/logger.test.d.ts +0 -6
  179. package/dist/src/core/logger.test.js +0 -467
  180. package/dist/src/core/logger.test.js.map +0 -1
  181. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +0 -6
  182. package/dist/src/core/nonInteractiveToolExecutor.test.js +0 -165
  183. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +0 -1
  184. package/dist/src/core/prompts-async.test.d.ts +0 -6
  185. package/dist/src/core/prompts-async.test.js +0 -115
  186. package/dist/src/core/prompts-async.test.js.map +0 -1
  187. package/dist/src/core/prompts.test.d.ts +0 -6
  188. package/dist/src/core/prompts.test.js +0 -68
  189. package/dist/src/core/prompts.test.js.map +0 -1
  190. package/dist/src/core/subagent.test.d.ts +0 -6
  191. package/dist/src/core/subagent.test.js +0 -519
  192. package/dist/src/core/subagent.test.js.map +0 -1
  193. package/dist/src/core/tokenLimits.test.d.ts +0 -6
  194. package/dist/src/core/tokenLimits.test.js +0 -66
  195. package/dist/src/core/tokenLimits.test.js.map +0 -1
  196. package/dist/src/core/turn.test.d.ts +0 -6
  197. package/dist/src/core/turn.test.js +0 -366
  198. package/dist/src/core/turn.test.js.map +0 -1
  199. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +0 -6
  200. package/dist/src/hooks/tool-render-suppression-hook.test.js +0 -59
  201. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +0 -1
  202. package/dist/src/ide/ide-installer.test.d.ts +0 -6
  203. package/dist/src/ide/ide-installer.test.js +0 -55
  204. package/dist/src/ide/ide-installer.test.js.map +0 -1
  205. package/dist/src/ide/ideContext.test.d.ts +0 -6
  206. package/dist/src/ide/ideContext.test.js +0 -265
  207. package/dist/src/ide/ideContext.test.js.map +0 -1
  208. package/dist/src/index.test.d.ts +0 -6
  209. package/dist/src/index.test.js +0 -12
  210. package/dist/src/index.test.js.map +0 -1
  211. package/dist/src/integration-tests/todo-system.test.d.ts +0 -6
  212. package/dist/src/integration-tests/todo-system.test.js +0 -46
  213. package/dist/src/integration-tests/todo-system.test.js.map +0 -1
  214. package/dist/src/mcp/google-auth-provider.test.d.ts +0 -6
  215. package/dist/src/mcp/google-auth-provider.test.js +0 -54
  216. package/dist/src/mcp/google-auth-provider.test.js.map +0 -1
  217. package/dist/src/mcp/oauth-provider.test.d.ts +0 -6
  218. package/dist/src/mcp/oauth-provider.test.js +0 -602
  219. package/dist/src/mcp/oauth-provider.test.js.map +0 -1
  220. package/dist/src/mcp/oauth-token-storage.test.d.ts +0 -6
  221. package/dist/src/mcp/oauth-token-storage.test.js +0 -205
  222. package/dist/src/mcp/oauth-token-storage.test.js.map +0 -1
  223. package/dist/src/mcp/oauth-utils.test.d.ts +0 -6
  224. package/dist/src/mcp/oauth-utils.test.js +0 -144
  225. package/dist/src/mcp/oauth-utils.test.js.map +0 -1
  226. package/dist/src/parsers/TextToolCallParser.multibyte.test.d.ts +0 -1
  227. package/dist/src/parsers/TextToolCallParser.multibyte.test.js +0 -42
  228. package/dist/src/parsers/TextToolCallParser.multibyte.test.js.map +0 -1
  229. package/dist/src/parsers/TextToolCallParser.test.d.ts +0 -1
  230. package/dist/src/parsers/TextToolCallParser.test.js +0 -225
  231. package/dist/src/parsers/TextToolCallParser.test.js.map +0 -1
  232. package/dist/src/prompt-config/TemplateEngine.test.d.ts +0 -1
  233. package/dist/src/prompt-config/TemplateEngine.test.js +0 -494
  234. package/dist/src/prompt-config/TemplateEngine.test.js.map +0 -1
  235. package/dist/src/prompt-config/prompt-cache.test.d.ts +0 -6
  236. package/dist/src/prompt-config/prompt-cache.test.js +0 -437
  237. package/dist/src/prompt-config/prompt-cache.test.js.map +0 -1
  238. package/dist/src/prompt-config/prompt-installer.test.d.ts +0 -7
  239. package/dist/src/prompt-config/prompt-installer.test.js +0 -503
  240. package/dist/src/prompt-config/prompt-installer.test.js.map +0 -1
  241. package/dist/src/prompt-config/prompt-loader.test.d.ts +0 -5
  242. package/dist/src/prompt-config/prompt-loader.test.js +0 -413
  243. package/dist/src/prompt-config/prompt-loader.test.js.map +0 -1
  244. package/dist/src/prompt-config/prompt-resolver.test.d.ts +0 -1
  245. package/dist/src/prompt-config/prompt-resolver.test.js +0 -529
  246. package/dist/src/prompt-config/prompt-resolver.test.js.map +0 -1
  247. package/dist/src/prompt-config/prompt-service.test.d.ts +0 -1
  248. package/dist/src/prompt-config/prompt-service.test.js +0 -811
  249. package/dist/src/prompt-config/prompt-service.test.js.map +0 -1
  250. package/dist/src/providers/ProviderManager.gemini-switch.test.d.ts +0 -6
  251. package/dist/src/providers/ProviderManager.gemini-switch.test.js +0 -57
  252. package/dist/src/providers/ProviderManager.gemini-switch.test.js.map +0 -1
  253. package/dist/src/providers/ProviderManager.test.d.ts +0 -6
  254. package/dist/src/providers/ProviderManager.test.js +0 -284
  255. package/dist/src/providers/ProviderManager.test.js.map +0 -1
  256. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.d.ts +0 -6
  257. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js +0 -273
  258. package/dist/src/providers/adapters/GeminiCompatibleWrapper.test.js.map +0 -1
  259. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.d.ts +0 -1
  260. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js +0 -48
  261. package/dist/src/providers/anthropic/AnthropicProvider.modelParams.test.js.map +0 -1
  262. package/dist/src/providers/anthropic/AnthropicProvider.test.d.ts +0 -1
  263. package/dist/src/providers/anthropic/AnthropicProvider.test.js +0 -487
  264. package/dist/src/providers/anthropic/AnthropicProvider.test.js.map +0 -1
  265. package/dist/src/providers/gemini/GeminiProvider.integration.test.d.ts +0 -6
  266. package/dist/src/providers/gemini/GeminiProvider.integration.test.js +0 -126
  267. package/dist/src/providers/gemini/GeminiProvider.integration.test.js.map +0 -1
  268. package/dist/src/providers/gemini/GeminiProvider.test.d.ts +0 -6
  269. package/dist/src/providers/gemini/GeminiProvider.test.js +0 -136
  270. package/dist/src/providers/gemini/GeminiProvider.test.js.map +0 -1
  271. package/dist/src/providers/integration/multi-provider.integration.test.d.ts +0 -6
  272. package/dist/src/providers/integration/multi-provider.integration.test.js +0 -292
  273. package/dist/src/providers/integration/multi-provider.integration.test.js.map +0 -1
  274. package/dist/src/providers/openai/ConversationCache.accumTokens.test.d.ts +0 -1
  275. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js +0 -97
  276. package/dist/src/providers/openai/ConversationCache.accumTokens.test.js.map +0 -1
  277. package/dist/src/providers/openai/ConversationCache.test.d.ts +0 -1
  278. package/dist/src/providers/openai/ConversationCache.test.js +0 -113
  279. package/dist/src/providers/openai/ConversationCache.test.js.map +0 -1
  280. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.d.ts +0 -1
  281. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js +0 -189
  282. package/dist/src/providers/openai/OpenAIProvider.callResponses.stateless.test.js.map +0 -1
  283. package/dist/src/providers/openai/OpenAIProvider.integration.test.d.ts +0 -6
  284. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +0 -125
  285. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +0 -1
  286. package/dist/src/providers/openai/OpenAIProvider.responses.test.d.ts +0 -1
  287. package/dist/src/providers/openai/OpenAIProvider.responses.test.js +0 -350
  288. package/dist/src/providers/openai/OpenAIProvider.responses.test.js.map +0 -1
  289. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.d.ts +0 -1
  290. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js +0 -213
  291. package/dist/src/providers/openai/OpenAIProvider.responsesIntegration.test.js.map +0 -1
  292. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.d.ts +0 -1
  293. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js +0 -59
  294. package/dist/src/providers/openai/OpenAIProvider.shouldUseResponses.test.js.map +0 -1
  295. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.d.ts +0 -6
  296. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js +0 -105
  297. package/dist/src/providers/openai/OpenAIProvider.stateful.integration.test.js.map +0 -1
  298. package/dist/src/providers/openai/OpenAIProvider.switch.test.d.ts +0 -1
  299. package/dist/src/providers/openai/OpenAIProvider.switch.test.js +0 -256
  300. package/dist/src/providers/openai/OpenAIProvider.switch.test.js.map +0 -1
  301. package/dist/src/providers/openai/OpenAIProvider.test.d.ts +0 -16
  302. package/dist/src/providers/openai/OpenAIProvider.test.js +0 -620
  303. package/dist/src/providers/openai/OpenAIProvider.test.js.map +0 -1
  304. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.d.ts +0 -1
  305. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js +0 -210
  306. package/dist/src/providers/openai/ResponsesContextTrim.integration.test.js.map +0 -1
  307. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.d.ts +0 -1
  308. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js +0 -65
  309. package/dist/src/providers/openai/__tests__/formatArrayResponse.test.js.map +0 -1
  310. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.d.ts +0 -1
  311. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js +0 -129
  312. package/dist/src/providers/openai/buildResponsesRequest.stripToolCalls.test.js.map +0 -1
  313. package/dist/src/providers/openai/buildResponsesRequest.test.d.ts +0 -1
  314. package/dist/src/providers/openai/buildResponsesRequest.test.js +0 -406
  315. package/dist/src/providers/openai/buildResponsesRequest.test.js.map +0 -1
  316. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.d.ts +0 -1
  317. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js +0 -50
  318. package/dist/src/providers/openai/buildResponsesRequest.undefined.test.js.map +0 -1
  319. package/dist/src/providers/openai/estimateRemoteTokens.test.d.ts +0 -1
  320. package/dist/src/providers/openai/estimateRemoteTokens.test.js +0 -125
  321. package/dist/src/providers/openai/estimateRemoteTokens.test.js.map +0 -1
  322. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.d.ts +0 -1
  323. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js +0 -192
  324. package/dist/src/providers/openai/parseResponsesStream.responsesToolCalls.test.js.map +0 -1
  325. package/dist/src/providers/openai/parseResponsesStream.test.d.ts +0 -1
  326. package/dist/src/providers/openai/parseResponsesStream.test.js +0 -151
  327. package/dist/src/providers/openai/parseResponsesStream.test.js.map +0 -1
  328. package/dist/src/services/fileDiscoveryService.test.d.ts +0 -6
  329. package/dist/src/services/fileDiscoveryService.test.js +0 -143
  330. package/dist/src/services/fileDiscoveryService.test.js.map +0 -1
  331. package/dist/src/services/gitService.test.d.ts +0 -6
  332. package/dist/src/services/gitService.test.js +0 -209
  333. package/dist/src/services/gitService.test.js.map +0 -1
  334. package/dist/src/services/loopDetectionService.test.d.ts +0 -6
  335. package/dist/src/services/loopDetectionService.test.js +0 -484
  336. package/dist/src/services/loopDetectionService.test.js.map +0 -1
  337. package/dist/src/services/shellExecutionService.multibyte.test.d.ts +0 -6
  338. package/dist/src/services/shellExecutionService.multibyte.test.js +0 -72
  339. package/dist/src/services/shellExecutionService.multibyte.test.js.map +0 -1
  340. package/dist/src/services/shellExecutionService.test.d.ts +0 -6
  341. package/dist/src/services/shellExecutionService.test.js +0 -272
  342. package/dist/src/services/shellExecutionService.test.js.map +0 -1
  343. package/dist/src/services/shellExecutionService.windows.multibyte.test.d.ts +0 -6
  344. package/dist/src/services/shellExecutionService.windows.multibyte.test.js +0 -98
  345. package/dist/src/services/shellExecutionService.windows.multibyte.test.js.map +0 -1
  346. package/dist/src/services/shellExecutionService.windows.test.d.ts +0 -6
  347. package/dist/src/services/shellExecutionService.windows.test.js +0 -79
  348. package/dist/src/services/shellExecutionService.windows.test.js.map +0 -1
  349. package/dist/src/services/tool-call-tracker-service.test.d.ts +0 -6
  350. package/dist/src/services/tool-call-tracker-service.test.js +0 -99
  351. package/dist/src/services/tool-call-tracker-service.test.js.map +0 -1
  352. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -6
  353. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +0 -187
  354. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +0 -1
  355. package/dist/src/telemetry/loggers.test.d.ts +0 -6
  356. package/dist/src/telemetry/loggers.test.js +0 -573
  357. package/dist/src/telemetry/loggers.test.js.map +0 -1
  358. package/dist/src/telemetry/metrics.test.d.ts +0 -6
  359. package/dist/src/telemetry/metrics.test.js +0 -212
  360. package/dist/src/telemetry/metrics.test.js.map +0 -1
  361. package/dist/src/telemetry/telemetry.test.d.ts +0 -6
  362. package/dist/src/telemetry/telemetry.test.js +0 -54
  363. package/dist/src/telemetry/telemetry.test.js.map +0 -1
  364. package/dist/src/telemetry/uiTelemetry.test.d.ts +0 -6
  365. package/dist/src/telemetry/uiTelemetry.test.js +0 -518
  366. package/dist/src/telemetry/uiTelemetry.test.js.map +0 -1
  367. package/dist/src/tools/ToolFormatter.test.d.ts +0 -16
  368. package/dist/src/tools/ToolFormatter.test.js +0 -349
  369. package/dist/src/tools/ToolFormatter.test.js.map +0 -1
  370. package/dist/src/tools/ToolFormatter.toResponsesTool.test.d.ts +0 -1
  371. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js +0 -241
  372. package/dist/src/tools/ToolFormatter.toResponsesTool.test.js.map +0 -1
  373. package/dist/src/tools/diffOptions.test.d.ts +0 -6
  374. package/dist/src/tools/diffOptions.test.js +0 -119
  375. package/dist/src/tools/diffOptions.test.js.map +0 -1
  376. package/dist/src/tools/edit.test.d.ts +0 -6
  377. package/dist/src/tools/edit.test.js +0 -689
  378. package/dist/src/tools/edit.test.js.map +0 -1
  379. package/dist/src/tools/glob.test.d.ts +0 -6
  380. package/dist/src/tools/glob.test.js +0 -332
  381. package/dist/src/tools/glob.test.js.map +0 -1
  382. package/dist/src/tools/grep.test.d.ts +0 -6
  383. package/dist/src/tools/grep.test.js +0 -272
  384. package/dist/src/tools/grep.test.js.map +0 -1
  385. package/dist/src/tools/ls.test.d.ts +0 -6
  386. package/dist/src/tools/ls.test.js +0 -357
  387. package/dist/src/tools/ls.test.js.map +0 -1
  388. package/dist/src/tools/mcp-client.test.d.ts +0 -6
  389. package/dist/src/tools/mcp-client.test.js +0 -617
  390. package/dist/src/tools/mcp-client.test.js.map +0 -1
  391. package/dist/src/tools/mcp-tool.test.d.ts +0 -6
  392. package/dist/src/tools/mcp-tool.test.js +0 -501
  393. package/dist/src/tools/mcp-tool.test.js.map +0 -1
  394. package/dist/src/tools/memoryTool.test.d.ts +0 -6
  395. package/dist/src/tools/memoryTool.test.js +0 -266
  396. package/dist/src/tools/memoryTool.test.js.map +0 -1
  397. package/dist/src/tools/modifiable-tool.test.d.ts +0 -6
  398. package/dist/src/tools/modifiable-tool.test.js +0 -193
  399. package/dist/src/tools/modifiable-tool.test.js.map +0 -1
  400. package/dist/src/tools/read-file.test.d.ts +0 -6
  401. package/dist/src/tools/read-file.test.js +0 -319
  402. package/dist/src/tools/read-file.test.js.map +0 -1
  403. package/dist/src/tools/read-many-files.test.d.ts +0 -6
  404. package/dist/src/tools/read-many-files.test.js +0 -644
  405. package/dist/src/tools/read-many-files.test.js.map +0 -1
  406. package/dist/src/tools/shell.multibyte.test.d.ts +0 -6
  407. package/dist/src/tools/shell.multibyte.test.js +0 -75
  408. package/dist/src/tools/shell.multibyte.test.js.map +0 -1
  409. package/dist/src/tools/shell.test.d.ts +0 -6
  410. package/dist/src/tools/shell.test.js +0 -367
  411. package/dist/src/tools/shell.test.js.map +0 -1
  412. package/dist/src/tools/todo-pause.spec.d.ts +0 -6
  413. package/dist/src/tools/todo-pause.spec.js +0 -287
  414. package/dist/src/tools/todo-pause.spec.js.map +0 -1
  415. package/dist/src/tools/todo-read.test.d.ts +0 -6
  416. package/dist/src/tools/todo-read.test.js +0 -162
  417. package/dist/src/tools/todo-read.test.js.map +0 -1
  418. package/dist/src/tools/todo-schemas.test.d.ts +0 -6
  419. package/dist/src/tools/todo-schemas.test.js +0 -341
  420. package/dist/src/tools/todo-schemas.test.js.map +0 -1
  421. package/dist/src/tools/todo-store.test.d.ts +0 -6
  422. package/dist/src/tools/todo-store.test.js +0 -169
  423. package/dist/src/tools/todo-store.test.js.map +0 -1
  424. package/dist/src/tools/todo-write.test.d.ts +0 -6
  425. package/dist/src/tools/todo-write.test.js +0 -226
  426. package/dist/src/tools/todo-write.test.js.map +0 -1
  427. package/dist/src/tools/tool-registry.test.d.ts +0 -6
  428. package/dist/src/tools/tool-registry.test.js +0 -468
  429. package/dist/src/tools/tool-registry.test.js.map +0 -1
  430. package/dist/src/tools/tools.test.d.ts +0 -6
  431. package/dist/src/tools/tools.test.js +0 -117
  432. package/dist/src/tools/tools.test.js.map +0 -1
  433. package/dist/src/tools/web-fetch.integration.test.d.ts +0 -6
  434. package/dist/src/tools/web-fetch.integration.test.js +0 -532
  435. package/dist/src/tools/web-fetch.integration.test.js.map +0 -1
  436. package/dist/src/tools/web-search.test.d.ts +0 -6
  437. package/dist/src/tools/web-search.test.js +0 -230
  438. package/dist/src/tools/web-search.test.js.map +0 -1
  439. package/dist/src/tools/write-file.test.d.ts +0 -6
  440. package/dist/src/tools/write-file.test.js +0 -465
  441. package/dist/src/tools/write-file.test.js.map +0 -1
  442. package/dist/src/utils/bfsFileSearch.test.d.ts +0 -6
  443. package/dist/src/utils/bfsFileSearch.test.js +0 -191
  444. package/dist/src/utils/bfsFileSearch.test.js.map +0 -1
  445. package/dist/src/utils/editCorrector.test.d.ts +0 -6
  446. package/dist/src/utils/editCorrector.test.js +0 -564
  447. package/dist/src/utils/editCorrector.test.js.map +0 -1
  448. package/dist/src/utils/editor.test.d.ts +0 -6
  449. package/dist/src/utils/editor.test.js +0 -445
  450. package/dist/src/utils/editor.test.js.map +0 -1
  451. package/dist/src/utils/environmentContext.test.d.ts +0 -6
  452. package/dist/src/utils/environmentContext.test.js +0 -139
  453. package/dist/src/utils/environmentContext.test.js.map +0 -1
  454. package/dist/src/utils/errorReporting.test.d.ts +0 -6
  455. package/dist/src/utils/errorReporting.test.js +0 -130
  456. package/dist/src/utils/errorReporting.test.js.map +0 -1
  457. package/dist/src/utils/fileUtils.test.d.ts +0 -6
  458. package/dist/src/utils/fileUtils.test.js +0 -363
  459. package/dist/src/utils/fileUtils.test.js.map +0 -1
  460. package/dist/src/utils/filesearch/crawlCache.test.d.ts +0 -6
  461. package/dist/src/utils/filesearch/crawlCache.test.js +0 -103
  462. package/dist/src/utils/filesearch/crawlCache.test.js.map +0 -1
  463. package/dist/src/utils/filesearch/fileSearch.test.d.ts +0 -6
  464. package/dist/src/utils/filesearch/fileSearch.test.js +0 -654
  465. package/dist/src/utils/filesearch/fileSearch.test.js.map +0 -1
  466. package/dist/src/utils/filesearch/ignore.test.d.ts +0 -6
  467. package/dist/src/utils/filesearch/ignore.test.js +0 -57
  468. package/dist/src/utils/filesearch/ignore.test.js.map +0 -1
  469. package/dist/src/utils/filesearch/result-cache.test.d.ts +0 -6
  470. package/dist/src/utils/filesearch/result-cache.test.js +0 -47
  471. package/dist/src/utils/filesearch/result-cache.test.js.map +0 -1
  472. package/dist/src/utils/flashFallback.integration.test.d.ts +0 -6
  473. package/dist/src/utils/flashFallback.integration.test.js +0 -120
  474. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  475. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +0 -6
  476. package/dist/src/utils/generateContentResponseUtilities.test.js +0 -273
  477. package/dist/src/utils/generateContentResponseUtilities.test.js.map +0 -1
  478. package/dist/src/utils/getFolderStructure.test.d.ts +0 -6
  479. package/dist/src/utils/getFolderStructure.test.js +0 -282
  480. package/dist/src/utils/getFolderStructure.test.js.map +0 -1
  481. package/dist/src/utils/gitIgnoreParser.test.d.ts +0 -6
  482. package/dist/src/utils/gitIgnoreParser.test.js +0 -154
  483. package/dist/src/utils/gitIgnoreParser.test.js.map +0 -1
  484. package/dist/src/utils/memoryDiscovery.test.d.ts +0 -6
  485. package/dist/src/utils/memoryDiscovery.test.js +0 -181
  486. package/dist/src/utils/memoryDiscovery.test.js.map +0 -1
  487. package/dist/src/utils/memoryImportProcessor.test.d.ts +0 -6
  488. package/dist/src/utils/memoryImportProcessor.test.js +0 -715
  489. package/dist/src/utils/memoryImportProcessor.test.js.map +0 -1
  490. package/dist/src/utils/nextSpeakerChecker.test.d.ts +0 -6
  491. package/dist/src/utils/nextSpeakerChecker.test.js +0 -172
  492. package/dist/src/utils/nextSpeakerChecker.test.js.map +0 -1
  493. package/dist/src/utils/partUtils.test.d.ts +0 -6
  494. package/dist/src/utils/partUtils.test.js +0 -130
  495. package/dist/src/utils/partUtils.test.js.map +0 -1
  496. package/dist/src/utils/paths.test.d.ts +0 -6
  497. package/dist/src/utils/paths.test.js +0 -153
  498. package/dist/src/utils/paths.test.js.map +0 -1
  499. package/dist/src/utils/retry.test.d.ts +0 -6
  500. package/dist/src/utils/retry.test.js +0 -322
  501. package/dist/src/utils/retry.test.js.map +0 -1
  502. package/dist/src/utils/safeJsonStringify.test.d.ts +0 -6
  503. package/dist/src/utils/safeJsonStringify.test.js +0 -61
  504. package/dist/src/utils/safeJsonStringify.test.js.map +0 -1
  505. package/dist/src/utils/sanitization.test.d.ts +0 -6
  506. package/dist/src/utils/sanitization.test.js +0 -81
  507. package/dist/src/utils/sanitization.test.js.map +0 -1
  508. package/dist/src/utils/schemaValidator.test.d.ts +0 -6
  509. package/dist/src/utils/schemaValidator.test.js +0 -146
  510. package/dist/src/utils/schemaValidator.test.js.map +0 -1
  511. package/dist/src/utils/secure-browser-launcher.test.d.ts +0 -6
  512. package/dist/src/utils/secure-browser-launcher.test.js +0 -149
  513. package/dist/src/utils/secure-browser-launcher.test.js.map +0 -1
  514. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +0 -6
  515. package/dist/src/utils/shell-utils.shellReplacement.test.js +0 -149
  516. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +0 -1
  517. package/dist/src/utils/shell-utils.test.d.ts +0 -6
  518. package/dist/src/utils/shell-utils.test.js +0 -200
  519. package/dist/src/utils/shell-utils.test.js.map +0 -1
  520. package/dist/src/utils/summarizer.test.d.ts +0 -6
  521. package/dist/src/utils/summarizer.test.js +0 -131
  522. package/dist/src/utils/summarizer.test.js.map +0 -1
  523. package/dist/src/utils/systemEncoding.test.d.ts +0 -6
  524. package/dist/src/utils/systemEncoding.test.js +0 -368
  525. package/dist/src/utils/systemEncoding.test.js.map +0 -1
  526. package/dist/src/utils/toolOutputLimiter.test.d.ts +0 -6
  527. package/dist/src/utils/toolOutputLimiter.test.js +0 -164
  528. package/dist/src/utils/toolOutputLimiter.test.js.map +0 -1
  529. package/dist/src/utils/unicodeUtils.test.d.ts +0 -6
  530. package/dist/src/utils/unicodeUtils.test.js +0 -120
  531. package/dist/src/utils/unicodeUtils.test.js.map +0 -1
  532. package/dist/src/utils/user_account.test.d.ts +0 -6
  533. package/dist/src/utils/user_account.test.js +0 -153
  534. package/dist/src/utils/user_account.test.js.map +0 -1
  535. package/dist/src/utils/user_id.test.d.ts +0 -6
  536. package/dist/src/utils/user_id.test.js +0 -21
  537. package/dist/src/utils/user_id.test.js.map +0 -1
  538. package/dist/src/utils/workspaceContext.test.d.ts +0 -6
  539. package/dist/src/utils/workspaceContext.test.js +0 -209
  540. package/dist/src/utils/workspaceContext.test.js.map +0 -1
@@ -1,84 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, beforeEach } from 'vitest';
7
- import { Config } from './config.js';
8
- describe('Config always allowed commands', () => {
9
- let config;
10
- beforeEach(() => {
11
- config = new Config({
12
- model: 'test-model',
13
- question: 'test question',
14
- embeddingModel: 'test-embedding',
15
- targetDir: '.',
16
- usageStatisticsEnabled: false,
17
- sessionId: 'test-session',
18
- debugMode: false,
19
- cwd: '.',
20
- });
21
- });
22
- describe('addAlwaysAllowedCommand', () => {
23
- it('should add a command to the always allowed list', () => {
24
- config.addAlwaysAllowedCommand('mv');
25
- expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
26
- });
27
- it('should handle multiple commands', () => {
28
- config.addAlwaysAllowedCommand('mv');
29
- config.addAlwaysAllowedCommand('cp');
30
- config.addAlwaysAllowedCommand('rm');
31
- expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
32
- expect(config.isCommandAlwaysAllowed('cp')).toBe(true);
33
- expect(config.isCommandAlwaysAllowed('rm')).toBe(true);
34
- });
35
- it('should not duplicate commands', () => {
36
- config.addAlwaysAllowedCommand('mv');
37
- config.addAlwaysAllowedCommand('mv');
38
- config.addAlwaysAllowedCommand('mv');
39
- const commands = config.getAlwaysAllowedCommands();
40
- expect(commands).toHaveLength(1);
41
- expect(commands).toContain('mv');
42
- });
43
- });
44
- describe('isCommandAlwaysAllowed', () => {
45
- it('should return false for commands not in the list', () => {
46
- expect(config.isCommandAlwaysAllowed('mv')).toBe(false);
47
- expect(config.isCommandAlwaysAllowed('cp')).toBe(false);
48
- });
49
- it('should return true only for added commands', () => {
50
- config.addAlwaysAllowedCommand('mv');
51
- expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
52
- expect(config.isCommandAlwaysAllowed('cp')).toBe(false);
53
- });
54
- it('should be case sensitive', () => {
55
- config.addAlwaysAllowedCommand('mv');
56
- expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
57
- expect(config.isCommandAlwaysAllowed('MV')).toBe(false);
58
- expect(config.isCommandAlwaysAllowed('Mv')).toBe(false);
59
- });
60
- });
61
- describe('getAlwaysAllowedCommands', () => {
62
- it('should return empty array when no commands are allowed', () => {
63
- expect(config.getAlwaysAllowedCommands()).toEqual([]);
64
- });
65
- it('should return all added commands', () => {
66
- config.addAlwaysAllowedCommand('mv');
67
- config.addAlwaysAllowedCommand('cp');
68
- config.addAlwaysAllowedCommand('ls');
69
- const commands = config.getAlwaysAllowedCommands();
70
- expect(commands).toHaveLength(3);
71
- expect(commands).toContain('mv');
72
- expect(commands).toContain('cp');
73
- expect(commands).toContain('ls');
74
- });
75
- it('should return a copy of the internal set', () => {
76
- config.addAlwaysAllowedCommand('mv');
77
- const commands1 = config.getAlwaysAllowedCommands();
78
- commands1.push('cp'); // Modify the returned array
79
- const commands2 = config.getAlwaysAllowedCommands();
80
- expect(commands2).toEqual(['mv']); // Original should be unchanged
81
- });
82
- });
83
- });
84
- //# sourceMappingURL=config.alwaysAllow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.alwaysAllow.test.js","sourceRoot":"","sources":["../../../src/config/config.alwaysAllow.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,152 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, beforeEach } from 'vitest';
7
- import { Config } from './config.js';
8
- describe('Config - Ephemeral Settings', () => {
9
- let config;
10
- beforeEach(() => {
11
- config = new Config({
12
- model: 'test-model',
13
- question: 'test question',
14
- embeddingModel: 'test-embedding',
15
- targetDir: '.',
16
- usageStatisticsEnabled: false,
17
- sessionId: 'test-session',
18
- debugMode: false,
19
- cwd: '.',
20
- });
21
- });
22
- describe('todo-continuation setting', () => {
23
- /**
24
- * @requirement REQ-004.2
25
- * @scenario Setting defaults to true when unset
26
- * @given No todo-continuation setting configured
27
- * @when getEphemeralSetting('todo-continuation') called
28
- * @then Returns undefined (not true) - services handle the default logic
29
- */
30
- it('should return undefined for unset todo-continuation setting', () => {
31
- // When no setting is configured
32
- const result = config.getEphemeralSetting('todo-continuation');
33
- // Then it returns undefined (services handle default logic)
34
- expect(result).toBeUndefined();
35
- });
36
- /**
37
- * @requirement REQ-004.1
38
- * @scenario Explicit true value preserved
39
- * @given todo-continuation set to true
40
- * @when getEphemeralSetting('todo-continuation') called
41
- * @then Returns true
42
- */
43
- it('should return true when explicitly set to true', () => {
44
- // Given setting is explicitly set to true
45
- config.setEphemeralSetting('todo-continuation', true);
46
- // When getting the setting
47
- const result = config.getEphemeralSetting('todo-continuation');
48
- // Then it returns true
49
- expect(result).toBe(true);
50
- });
51
- /**
52
- * @requirement REQ-004.1
53
- * @scenario Explicit false value preserved
54
- * @given todo-continuation set to false
55
- * @when getEphemeralSetting('todo-continuation') called
56
- * @then Returns false
57
- */
58
- it('should return false when explicitly set to false', () => {
59
- // Given setting is explicitly set to false
60
- config.setEphemeralSetting('todo-continuation', false);
61
- // When getting the setting
62
- const result = config.getEphemeralSetting('todo-continuation');
63
- // Then it returns false
64
- expect(result).toBe(false);
65
- });
66
- /**
67
- * @requirement REQ-004.2
68
- * @scenario Service treats undefined as true
69
- * @given No setting configured
70
- * @when todoContinuationService checks setting
71
- * @then Continuation is enabled
72
- */
73
- it('should demonstrate service behavior with undefined setting', () => {
74
- // Given no setting configured
75
- const ephemeralSetting = config.getEphemeralSetting('todo-continuation');
76
- // When service checks the setting (simulating service logic)
77
- const continuationEnabled = ephemeralSetting !== false; // This is how the service treats undefined
78
- // Then continuation is enabled (undefined !== false is true)
79
- expect(ephemeralSetting).toBeUndefined();
80
- expect(continuationEnabled).toBe(true);
81
- });
82
- it('should demonstrate service behavior with explicit false', () => {
83
- // Given setting is explicitly set to false
84
- config.setEphemeralSetting('todo-continuation', false);
85
- const ephemeralSetting = config.getEphemeralSetting('todo-continuation');
86
- // When service checks the setting (simulating service logic)
87
- const continuationEnabled = ephemeralSetting !== false; // This is how the service treats false
88
- // Then continuation is disabled (false !== false is false)
89
- expect(ephemeralSetting).toBe(false);
90
- expect(continuationEnabled).toBe(false);
91
- });
92
- it('should demonstrate service behavior with explicit true', () => {
93
- // Given setting is explicitly set to true
94
- config.setEphemeralSetting('todo-continuation', true);
95
- const ephemeralSetting = config.getEphemeralSetting('todo-continuation');
96
- // When service checks the setting (simulating service logic)
97
- const continuationEnabled = ephemeralSetting !== false; // This is how the service treats true
98
- // Then continuation is enabled (true !== false is true)
99
- expect(ephemeralSetting).toBe(true);
100
- expect(continuationEnabled).toBe(true);
101
- });
102
- });
103
- describe('ephemeral settings persistence', () => {
104
- it('should persist ephemeral setting values across get/set operations', () => {
105
- // Given multiple ephemeral settings
106
- config.setEphemeralSetting('todo-continuation', false);
107
- config.setEphemeralSetting('shell-replacement', true);
108
- config.setEphemeralSetting('tool-output-max-items', 100);
109
- // When getting the settings
110
- const todoContinuation = config.getEphemeralSetting('todo-continuation');
111
- const shellReplacement = config.getEphemeralSetting('shell-replacement');
112
- const maxItems = config.getEphemeralSetting('tool-output-max-items');
113
- // Then all values are preserved
114
- expect(todoContinuation).toBe(false);
115
- expect(shellReplacement).toBe(true);
116
- expect(maxItems).toBe(100);
117
- });
118
- it('should return copy of all ephemeral settings', () => {
119
- // Given multiple ephemeral settings
120
- config.setEphemeralSetting('todo-continuation', true);
121
- config.setEphemeralSetting('custom-setting', 'test-value');
122
- // When getting all settings
123
- const allSettings = config.getEphemeralSettings();
124
- // Then it returns a copy with all settings
125
- expect(allSettings).toEqual({
126
- 'todo-continuation': true,
127
- 'custom-setting': 'test-value',
128
- });
129
- // And modifying the returned object doesn't affect the config
130
- allSettings['new-setting'] = 'should-not-affect-config';
131
- expect(config.getEphemeralSetting('new-setting')).toBeUndefined();
132
- });
133
- });
134
- describe('type safety', () => {
135
- it('should handle different value types for ephemeral settings', () => {
136
- // Boolean values
137
- config.setEphemeralSetting('todo-continuation', false);
138
- expect(config.getEphemeralSetting('todo-continuation')).toBe(false);
139
- // Number values
140
- config.setEphemeralSetting('tool-output-max-items', 50);
141
- expect(config.getEphemeralSetting('tool-output-max-items')).toBe(50);
142
- // String values
143
- config.setEphemeralSetting('auth-key', 'test-key');
144
- expect(config.getEphemeralSetting('auth-key')).toBe('test-key');
145
- // Object values
146
- const headers = { 'Content-Type': 'application/json' };
147
- config.setEphemeralSetting('custom-headers', headers);
148
- expect(config.getEphemeralSetting('custom-headers')).toEqual(headers);
149
- });
150
- });
151
- });
152
- //# sourceMappingURL=config.ephemeral.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.ephemeral.test.js","sourceRoot":"","sources":["../../../src/config/config.ephemeral.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 {};
@@ -1,369 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach } from 'vitest';
7
- import { Config } from './config.js';
8
- import * as path from 'path';
9
- import { setLlxprtMdFilename as mockSetGeminiMdFilename } from '../tools/memoryTool.js';
10
- import { DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, } from '../telemetry/index.js';
11
- import { AuthType, createContentGeneratorConfig, } from '../core/contentGenerator.js';
12
- import { GeminiClient } from '../core/client.js';
13
- import { GitService } from '../services/gitService.js';
14
- import { IdeClient } from '../ide/ide-client.js';
15
- vi.mock('fs', async (importOriginal) => {
16
- const actual = await importOriginal();
17
- return {
18
- ...actual,
19
- existsSync: vi.fn().mockReturnValue(true),
20
- statSync: vi.fn().mockReturnValue({
21
- isDirectory: vi.fn().mockReturnValue(true),
22
- }),
23
- realpathSync: vi.fn((path) => path),
24
- };
25
- });
26
- // Mock dependencies that might be called during Config construction or createServerConfig
27
- vi.mock('../tools/tool-registry', () => {
28
- const ToolRegistryMock = vi.fn();
29
- ToolRegistryMock.prototype.registerTool = vi.fn();
30
- ToolRegistryMock.prototype.discoverAllTools = vi.fn();
31
- ToolRegistryMock.prototype.getAllTools = vi.fn(() => []); // Mock methods if needed
32
- ToolRegistryMock.prototype.getTool = vi.fn();
33
- ToolRegistryMock.prototype.getFunctionDeclarations = vi.fn(() => []);
34
- return { ToolRegistry: ToolRegistryMock };
35
- });
36
- // Mock individual tools if their constructors are complex or have side effects
37
- vi.mock('../tools/ls');
38
- vi.mock('../tools/read-file');
39
- vi.mock('../tools/grep');
40
- vi.mock('../tools/glob');
41
- vi.mock('../tools/edit');
42
- vi.mock('../tools/shell');
43
- vi.mock('../tools/write-file');
44
- vi.mock('../tools/web-fetch');
45
- vi.mock('../tools/read-many-files');
46
- vi.mock('../tools/memoryTool', () => ({
47
- MemoryTool: vi.fn(),
48
- setLlxprtMdFilename: vi.fn(),
49
- getCurrentLlxprtMdFilename: vi.fn(() => 'LLXPRT.md'), // Mock the original filename
50
- DEFAULT_CONTEXT_FILENAME: 'LLXPRT.md',
51
- LLXPRT_CONFIG_DIR: '.llxprt',
52
- }));
53
- vi.mock('../core/contentGenerator.js', async (importOriginal) => {
54
- const actual = await importOriginal();
55
- return {
56
- ...actual,
57
- createContentGeneratorConfig: vi.fn(),
58
- };
59
- });
60
- vi.mock('../core/client.js', () => ({
61
- GeminiClient: vi.fn().mockImplementation(() => ({
62
- initialize: vi.fn().mockResolvedValue(undefined),
63
- isInitialized: vi.fn().mockReturnValue(false),
64
- getHistory: vi.fn().mockReturnValue([]),
65
- setHistory: vi.fn(),
66
- })),
67
- }));
68
- vi.mock('../telemetry/index.js', async (importOriginal) => {
69
- const actual = await importOriginal();
70
- return {
71
- ...actual,
72
- initializeTelemetry: vi.fn(),
73
- };
74
- });
75
- vi.mock('../services/gitService.js', () => {
76
- const GitServiceMock = vi.fn();
77
- GitServiceMock.prototype.initialize = vi.fn();
78
- return { GitService: GitServiceMock };
79
- });
80
- describe('Server Config (config.ts)', () => {
81
- const MODEL = 'gemini-pro';
82
- const SANDBOX = {
83
- command: 'docker',
84
- image: 'gemini-cli-sandbox',
85
- };
86
- const TARGET_DIR = '/path/to/target';
87
- const DEBUG_MODE = false;
88
- const QUESTION = 'test question';
89
- const FULL_CONTEXT = false;
90
- const USER_MEMORY = 'Test User Memory';
91
- const TELEMETRY_SETTINGS = { enabled: false };
92
- const EMBEDDING_MODEL = 'gemini-embedding';
93
- const SESSION_ID = 'test-session-id';
94
- const baseParams = {
95
- cwd: '/tmp',
96
- embeddingModel: EMBEDDING_MODEL,
97
- sandbox: SANDBOX,
98
- targetDir: TARGET_DIR,
99
- debugMode: DEBUG_MODE,
100
- question: QUESTION,
101
- fullContext: FULL_CONTEXT,
102
- userMemory: USER_MEMORY,
103
- telemetry: TELEMETRY_SETTINGS,
104
- sessionId: SESSION_ID,
105
- model: MODEL,
106
- ideClient: IdeClient.getInstance(false),
107
- };
108
- beforeEach(() => {
109
- // Reset mocks if necessary
110
- vi.clearAllMocks();
111
- });
112
- describe('initialize', () => {
113
- it('should throw an error if checkpointing is enabled and GitService fails', async () => {
114
- const gitError = new Error('Git is not installed');
115
- GitService.prototype.initialize.mockRejectedValue(gitError);
116
- const config = new Config({
117
- ...baseParams,
118
- checkpointing: true,
119
- });
120
- await expect(config.initialize()).rejects.toThrow(gitError);
121
- });
122
- it('should not throw an error if checkpointing is disabled and GitService fails', async () => {
123
- const gitError = new Error('Git is not installed');
124
- GitService.prototype.initialize.mockRejectedValue(gitError);
125
- const config = new Config({
126
- ...baseParams,
127
- checkpointing: false,
128
- });
129
- await expect(config.initialize()).resolves.toBeUndefined();
130
- });
131
- it('should throw an error if initialized more than once', async () => {
132
- const config = new Config({
133
- ...baseParams,
134
- checkpointing: false,
135
- });
136
- await expect(config.initialize()).resolves.toBeUndefined();
137
- await expect(config.initialize()).rejects.toThrow('Config was already initialized');
138
- });
139
- });
140
- describe('refreshAuth', () => {
141
- it('should refresh auth and update config', async () => {
142
- const config = new Config(baseParams);
143
- // Initialize config to create GeminiClient instance
144
- await config.initialize();
145
- const authType = AuthType.USE_GEMINI;
146
- const newModel = 'gemini-flash';
147
- const mockContentConfig = {
148
- model: newModel,
149
- apiKey: 'test-key',
150
- };
151
- createContentGeneratorConfig.mockReturnValue(mockContentConfig);
152
- // Set fallback mode to true to ensure it gets reset
153
- config.setFallbackMode(true);
154
- expect(config.isInFallbackMode()).toBe(true);
155
- await config.refreshAuth(authType);
156
- expect(createContentGeneratorConfig).toHaveBeenCalledWith(config, authType);
157
- // Verify that contentGeneratorConfig is updated with the new model
158
- expect(config.getContentGeneratorConfig()).toEqual(mockContentConfig);
159
- expect(config.getContentGeneratorConfig()?.model).toBe(newModel);
160
- expect(config.getModel()).toBe(newModel); // getModel() should return the updated model
161
- expect(GeminiClient).toHaveBeenCalledWith(config);
162
- // Verify that fallback mode is reset
163
- expect(config.isInFallbackMode()).toBe(false);
164
- });
165
- it('should preserve conversation history when refreshing auth', async () => {
166
- const config = new Config(baseParams);
167
- const authType = AuthType.USE_GEMINI;
168
- const mockContentConfig = {
169
- model: 'gemini-pro',
170
- apiKey: 'test-key',
171
- };
172
- createContentGeneratorConfig.mockReturnValue(mockContentConfig);
173
- // Mock the existing client with some history
174
- const mockExistingHistory = [
175
- { role: 'user', parts: [{ text: 'Hello' }] },
176
- { role: 'model', parts: [{ text: 'Hi there!' }] },
177
- { role: 'user', parts: [{ text: 'How are you?' }] },
178
- ];
179
- const mockExistingClient = {
180
- isInitialized: vi.fn().mockReturnValue(true),
181
- getHistory: vi.fn().mockReturnValue(mockExistingHistory),
182
- };
183
- const mockNewClient = {
184
- isInitialized: vi.fn().mockReturnValue(true),
185
- getHistory: vi.fn().mockReturnValue([]),
186
- setHistory: vi.fn(),
187
- initialize: vi.fn().mockResolvedValue(undefined),
188
- };
189
- // Set the existing client
190
- config.geminiClient = mockExistingClient;
191
- GeminiClient.mockImplementation(() => mockNewClient);
192
- await config.refreshAuth(authType);
193
- // Verify that existing history was retrieved
194
- expect(mockExistingClient.getHistory).toHaveBeenCalled();
195
- // Verify that new client was created and initialized
196
- expect(GeminiClient).toHaveBeenCalledWith(config);
197
- expect(mockNewClient.initialize).toHaveBeenCalledWith(mockContentConfig);
198
- // Verify that history was restored to the new client
199
- expect(mockNewClient.setHistory).toHaveBeenCalledWith(mockExistingHistory);
200
- });
201
- it('should handle case when no existing client is initialized', async () => {
202
- const config = new Config(baseParams);
203
- const authType = AuthType.USE_GEMINI;
204
- const mockContentConfig = {
205
- model: 'gemini-pro',
206
- apiKey: 'test-key',
207
- };
208
- createContentGeneratorConfig.mockReturnValue(mockContentConfig);
209
- const mockNewClient = {
210
- isInitialized: vi.fn().mockReturnValue(true),
211
- getHistory: vi.fn().mockReturnValue([]),
212
- setHistory: vi.fn(),
213
- initialize: vi.fn().mockResolvedValue(undefined),
214
- };
215
- // No existing client
216
- config.geminiClient = null;
217
- GeminiClient.mockImplementation(() => mockNewClient);
218
- await config.refreshAuth(authType);
219
- // Verify that new client was created and initialized
220
- expect(GeminiClient).toHaveBeenCalledWith(config);
221
- expect(mockNewClient.initialize).toHaveBeenCalledWith(mockContentConfig);
222
- // Verify that setHistory was not called since there was no existing history
223
- expect(mockNewClient.setHistory).not.toHaveBeenCalled();
224
- });
225
- });
226
- it('Config constructor should store userMemory correctly', () => {
227
- const config = new Config(baseParams);
228
- expect(config.getUserMemory()).toBe(USER_MEMORY);
229
- // Verify other getters if needed
230
- expect(config.getTargetDir()).toBe(path.resolve(TARGET_DIR)); // Check resolved path
231
- });
232
- it('Config constructor should default userMemory to empty string if not provided', () => {
233
- const paramsWithoutMemory = { ...baseParams };
234
- delete paramsWithoutMemory.userMemory;
235
- const config = new Config(paramsWithoutMemory);
236
- expect(config.getUserMemory()).toBe('');
237
- });
238
- it('Config constructor should call setLlxprtMdFilename with contextFileName if provided', () => {
239
- const contextFileName = 'CUSTOM_AGENTS.md';
240
- const paramsWithContextFile = {
241
- ...baseParams,
242
- contextFileName,
243
- };
244
- new Config(paramsWithContextFile);
245
- expect(mockSetGeminiMdFilename).toHaveBeenCalledWith(contextFileName);
246
- });
247
- it('Config constructor should not call setLlxprtMdFilename if contextFileName is not provided', () => {
248
- new Config(baseParams); // baseParams does not have contextFileName
249
- expect(mockSetGeminiMdFilename).not.toHaveBeenCalled();
250
- });
251
- it('should set default file filtering settings when not provided', () => {
252
- const config = new Config(baseParams);
253
- expect(config.getFileFilteringRespectGitIgnore()).toBe(true);
254
- });
255
- it('should set custom file filtering settings when provided', () => {
256
- const paramsWithFileFiltering = {
257
- ...baseParams,
258
- fileFiltering: {
259
- respectGitIgnore: false,
260
- },
261
- };
262
- const config = new Config(paramsWithFileFiltering);
263
- expect(config.getFileFilteringRespectGitIgnore()).toBe(false);
264
- });
265
- it('should initialize WorkspaceContext with includeDirectories', () => {
266
- const includeDirectories = ['/path/to/dir1', '/path/to/dir2'];
267
- const paramsWithIncludeDirs = {
268
- ...baseParams,
269
- includeDirectories,
270
- };
271
- const config = new Config(paramsWithIncludeDirs);
272
- const workspaceContext = config.getWorkspaceContext();
273
- const directories = workspaceContext.getDirectories();
274
- // Should include the target directory plus the included directories
275
- expect(directories).toHaveLength(3);
276
- expect(directories).toContain(path.resolve(baseParams.targetDir));
277
- expect(directories).toContain('/path/to/dir1');
278
- expect(directories).toContain('/path/to/dir2');
279
- });
280
- it('Config constructor should set telemetry to true when provided as true', () => {
281
- const paramsWithTelemetry = {
282
- ...baseParams,
283
- telemetry: { enabled: true },
284
- };
285
- const config = new Config(paramsWithTelemetry);
286
- expect(config.getTelemetryEnabled()).toBe(true);
287
- });
288
- it('Config constructor should set telemetry to false when provided as false', () => {
289
- const paramsWithTelemetry = {
290
- ...baseParams,
291
- telemetry: { enabled: false },
292
- };
293
- const config = new Config(paramsWithTelemetry);
294
- expect(config.getTelemetryEnabled()).toBe(false);
295
- });
296
- it('Config constructor should default telemetry to default value if not provided', () => {
297
- const paramsWithoutTelemetry = { ...baseParams };
298
- delete paramsWithoutTelemetry.telemetry;
299
- const config = new Config(paramsWithoutTelemetry);
300
- expect(config.getTelemetryEnabled()).toBe(TELEMETRY_SETTINGS.enabled);
301
- });
302
- it('should have a getFileService method that returns FileDiscoveryService', () => {
303
- const config = new Config(baseParams);
304
- const fileService = config.getFileService();
305
- expect(fileService).toBeDefined();
306
- });
307
- describe('Telemetry Settings', () => {
308
- it('should return default telemetry target if not provided', () => {
309
- const params = {
310
- ...baseParams,
311
- telemetry: { enabled: true },
312
- };
313
- const config = new Config(params);
314
- expect(config.getTelemetryTarget()).toBe(DEFAULT_TELEMETRY_TARGET);
315
- });
316
- it('should return provided OTLP endpoint', () => {
317
- const endpoint = 'http://custom.otel.collector:4317';
318
- const params = {
319
- ...baseParams,
320
- telemetry: { enabled: true, otlpEndpoint: endpoint },
321
- };
322
- const config = new Config(params);
323
- expect(config.getTelemetryOtlpEndpoint()).toBe(endpoint);
324
- });
325
- it('should return default OTLP endpoint if not provided', () => {
326
- const params = {
327
- ...baseParams,
328
- telemetry: { enabled: true },
329
- };
330
- const config = new Config(params);
331
- expect(config.getTelemetryOtlpEndpoint()).toBe(DEFAULT_OTLP_ENDPOINT);
332
- });
333
- it('should return provided logPrompts setting', () => {
334
- const params = {
335
- ...baseParams,
336
- telemetry: { enabled: true, logPrompts: false },
337
- };
338
- const config = new Config(params);
339
- expect(config.getTelemetryLogPromptsEnabled()).toBe(false);
340
- });
341
- it('should return default logPrompts setting (true) if not provided', () => {
342
- const params = {
343
- ...baseParams,
344
- telemetry: { enabled: true },
345
- };
346
- const config = new Config(params);
347
- expect(config.getTelemetryLogPromptsEnabled()).toBe(true);
348
- });
349
- it('should return default logPrompts setting (true) if telemetry object is not provided', () => {
350
- const paramsWithoutTelemetry = { ...baseParams };
351
- delete paramsWithoutTelemetry.telemetry;
352
- const config = new Config(paramsWithoutTelemetry);
353
- expect(config.getTelemetryLogPromptsEnabled()).toBe(true);
354
- });
355
- it('should return default telemetry target if telemetry object is not provided', () => {
356
- const paramsWithoutTelemetry = { ...baseParams };
357
- delete paramsWithoutTelemetry.telemetry;
358
- const config = new Config(paramsWithoutTelemetry);
359
- expect(config.getTelemetryTarget()).toBe(DEFAULT_TELEMETRY_TARGET);
360
- });
361
- it('should return default OTLP endpoint if telemetry object is not provided', () => {
362
- const paramsWithoutTelemetry = { ...baseParams };
363
- delete paramsWithoutTelemetry.telemetry;
364
- const config = new Config(paramsWithoutTelemetry);
365
- expect(config.getTelemetryOtlpEndpoint()).toBe(DEFAULT_OTLP_ENDPOINT);
366
- });
367
- });
368
- });
369
- //# sourceMappingURL=config.test.js.map