@didim365/agent-cli 0.1.1 → 0.1.2

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 (1034) hide show
  1. package/package.json +6 -3
  2. package/dist/src/commands/extensions/configure.test.d.ts +0 -1
  3. package/dist/src/commands/extensions/configure.test.js +0 -197
  4. package/dist/src/commands/extensions/configure.test.js.map +0 -1
  5. package/dist/src/commands/extensions/disable.test.d.ts +0 -6
  6. package/dist/src/commands/extensions/disable.test.js +0 -169
  7. package/dist/src/commands/extensions/disable.test.js.map +0 -1
  8. package/dist/src/commands/extensions/enable.test.d.ts +0 -6
  9. package/dist/src/commands/extensions/enable.test.js +0 -199
  10. package/dist/src/commands/extensions/enable.test.js.map +0 -1
  11. package/dist/src/commands/extensions/install.test.d.ts +0 -6
  12. package/dist/src/commands/extensions/install.test.js +0 -140
  13. package/dist/src/commands/extensions/install.test.js.map +0 -1
  14. package/dist/src/commands/extensions/link.test.d.ts +0 -6
  15. package/dist/src/commands/extensions/link.test.js +0 -137
  16. package/dist/src/commands/extensions/link.test.js.map +0 -1
  17. package/dist/src/commands/extensions/list.test.d.ts +0 -6
  18. package/dist/src/commands/extensions/list.test.js +0 -148
  19. package/dist/src/commands/extensions/list.test.js.map +0 -1
  20. package/dist/src/commands/extensions/new.test.d.ts +0 -6
  21. package/dist/src/commands/extensions/new.test.js +0 -62
  22. package/dist/src/commands/extensions/new.test.js.map +0 -1
  23. package/dist/src/commands/extensions/uninstall.test.d.ts +0 -6
  24. package/dist/src/commands/extensions/uninstall.test.js +0 -199
  25. package/dist/src/commands/extensions/uninstall.test.js.map +0 -1
  26. package/dist/src/commands/extensions/update.test.d.ts +0 -6
  27. package/dist/src/commands/extensions/update.test.js +0 -170
  28. package/dist/src/commands/extensions/update.test.js.map +0 -1
  29. package/dist/src/commands/extensions/validate.test.d.ts +0 -6
  30. package/dist/src/commands/extensions/validate.test.js +0 -96
  31. package/dist/src/commands/extensions/validate.test.js.map +0 -1
  32. package/dist/src/commands/extensions.test.d.ts +0 -6
  33. package/dist/src/commands/extensions.test.js +0 -67
  34. package/dist/src/commands/extensions.test.js.map +0 -1
  35. package/dist/src/commands/hooks/migrate.test.d.ts +0 -6
  36. package/dist/src/commands/hooks/migrate.test.js +0 -388
  37. package/dist/src/commands/hooks/migrate.test.js.map +0 -1
  38. package/dist/src/commands/mcp/add.test.d.ts +0 -6
  39. package/dist/src/commands/mcp/add.test.js +0 -274
  40. package/dist/src/commands/mcp/add.test.js.map +0 -1
  41. package/dist/src/commands/mcp/list.test.d.ts +0 -6
  42. package/dist/src/commands/mcp/list.test.js +0 -150
  43. package/dist/src/commands/mcp/list.test.js.map +0 -1
  44. package/dist/src/commands/mcp/remove.test.d.ts +0 -6
  45. package/dist/src/commands/mcp/remove.test.js +0 -189
  46. package/dist/src/commands/mcp/remove.test.js.map +0 -1
  47. package/dist/src/commands/mcp.test.d.ts +0 -6
  48. package/dist/src/commands/mcp.test.js +0 -65
  49. package/dist/src/commands/mcp.test.js.map +0 -1
  50. package/dist/src/commands/skills/disable.test.d.ts +0 -6
  51. package/dist/src/commands/skills/disable.test.js +0 -96
  52. package/dist/src/commands/skills/disable.test.js.map +0 -1
  53. package/dist/src/commands/skills/enable.test.d.ts +0 -6
  54. package/dist/src/commands/skills/enable.test.js +0 -107
  55. package/dist/src/commands/skills/enable.test.js.map +0 -1
  56. package/dist/src/commands/skills/install.test.d.ts +0 -6
  57. package/dist/src/commands/skills/install.test.js +0 -95
  58. package/dist/src/commands/skills/install.test.js.map +0 -1
  59. package/dist/src/commands/skills/list.test.d.ts +0 -6
  60. package/dist/src/commands/skills/list.test.js +0 -136
  61. package/dist/src/commands/skills/list.test.js.map +0 -1
  62. package/dist/src/commands/skills/uninstall.test.d.ts +0 -6
  63. package/dist/src/commands/skills/uninstall.test.js +0 -61
  64. package/dist/src/commands/skills/uninstall.test.js.map +0 -1
  65. package/dist/src/commands/skills.test.d.ts +0 -6
  66. package/dist/src/commands/skills.test.js +0 -49
  67. package/dist/src/commands/skills.test.js.map +0 -1
  68. package/dist/src/commands/utils.test.d.ts +0 -6
  69. package/dist/src/commands/utils.test.js +0 -35
  70. package/dist/src/commands/utils.test.js.map +0 -1
  71. package/dist/src/config/auth.test.d.ts +0 -6
  72. package/dist/src/config/auth.test.js +0 -89
  73. package/dist/src/config/auth.test.js.map +0 -1
  74. package/dist/src/config/config.integration.test.d.ts +0 -6
  75. package/dist/src/config/config.integration.test.js +0 -205
  76. package/dist/src/config/config.integration.test.js.map +0 -1
  77. package/dist/src/config/config.test.d.ts +0 -6
  78. package/dist/src/config/config.test.js +0 -2413
  79. package/dist/src/config/config.test.js.map +0 -1
  80. package/dist/src/config/extension-manager-agents.test.d.ts +0 -6
  81. package/dist/src/config/extension-manager-agents.test.js +0 -114
  82. package/dist/src/config/extension-manager-agents.test.js.map +0 -1
  83. package/dist/src/config/extension-manager-scope.test.d.ts +0 -6
  84. package/dist/src/config/extension-manager-scope.test.js +0 -153
  85. package/dist/src/config/extension-manager-scope.test.js.map +0 -1
  86. package/dist/src/config/extension-manager-skills.test.d.ts +0 -6
  87. package/dist/src/config/extension-manager-skills.test.js +0 -148
  88. package/dist/src/config/extension-manager-skills.test.js.map +0 -1
  89. package/dist/src/config/extension.test.d.ts +0 -6
  90. package/dist/src/config/extension.test.js +0 -1671
  91. package/dist/src/config/extension.test.js.map +0 -1
  92. package/dist/src/config/extensions/consent.test.d.ts +0 -6
  93. package/dist/src/config/extensions/consent.test.js +0 -280
  94. package/dist/src/config/extensions/consent.test.js.map +0 -1
  95. package/dist/src/config/extensions/extensionEnablement.test.d.ts +0 -6
  96. package/dist/src/config/extensions/extensionEnablement.test.js +0 -404
  97. package/dist/src/config/extensions/extensionEnablement.test.js.map +0 -1
  98. package/dist/src/config/extensions/extensionSettings.test.d.ts +0 -6
  99. package/dist/src/config/extensions/extensionSettings.test.js +0 -493
  100. package/dist/src/config/extensions/extensionSettings.test.js.map +0 -1
  101. package/dist/src/config/extensions/extensionUpdates.test.d.ts +0 -6
  102. package/dist/src/config/extensions/extensionUpdates.test.js +0 -230
  103. package/dist/src/config/extensions/extensionUpdates.test.js.map +0 -1
  104. package/dist/src/config/extensions/github.test.d.ts +0 -6
  105. package/dist/src/config/extensions/github.test.js +0 -441
  106. package/dist/src/config/extensions/github.test.js.map +0 -1
  107. package/dist/src/config/extensions/github_fetch.test.d.ts +0 -6
  108. package/dist/src/config/extensions/github_fetch.test.js +0 -169
  109. package/dist/src/config/extensions/github_fetch.test.js.map +0 -1
  110. package/dist/src/config/extensions/storage.test.d.ts +0 -6
  111. package/dist/src/config/extensions/storage.test.js +0 -64
  112. package/dist/src/config/extensions/storage.test.js.map +0 -1
  113. package/dist/src/config/extensions/update.test.d.ts +0 -6
  114. package/dist/src/config/extensions/update.test.js +0 -231
  115. package/dist/src/config/extensions/update.test.js.map +0 -1
  116. package/dist/src/config/extensions/variables.test.d.ts +0 -6
  117. package/dist/src/config/extensions/variables.test.js +0 -103
  118. package/dist/src/config/extensions/variables.test.js.map +0 -1
  119. package/dist/src/config/keyBindings.test.d.ts +0 -6
  120. package/dist/src/config/keyBindings.test.js +0 -108
  121. package/dist/src/config/keyBindings.test.js.map +0 -1
  122. package/dist/src/config/mcp/mcpServerEnablement.test.d.ts +0 -6
  123. package/dist/src/config/mcp/mcpServerEnablement.test.js +0 -147
  124. package/dist/src/config/mcp/mcpServerEnablement.test.js.map +0 -1
  125. package/dist/src/config/policy-engine.integration.test.d.ts +0 -6
  126. package/dist/src/config/policy-engine.integration.test.js +0 -353
  127. package/dist/src/config/policy-engine.integration.test.js.map +0 -1
  128. package/dist/src/config/sandboxConfig.test.d.ts +0 -6
  129. package/dist/src/config/sandboxConfig.test.js +0 -184
  130. package/dist/src/config/sandboxConfig.test.js.map +0 -1
  131. package/dist/src/config/settingPaths.test.d.ts +0 -6
  132. package/dist/src/config/settingPaths.test.js +0 -22
  133. package/dist/src/config/settingPaths.test.js.map +0 -1
  134. package/dist/src/config/settings-validation.test.d.ts +0 -6
  135. package/dist/src/config/settings-validation.test.js +0 -370
  136. package/dist/src/config/settings-validation.test.js.map +0 -1
  137. package/dist/src/config/settings.test.d.ts +0 -6
  138. package/dist/src/config/settings.test.js +0 -1822
  139. package/dist/src/config/settings.test.js.map +0 -1
  140. package/dist/src/config/settingsSchema.test.d.ts +0 -6
  141. package/dist/src/config/settingsSchema.test.js +0 -309
  142. package/dist/src/config/settingsSchema.test.js.map +0 -1
  143. package/dist/src/config/settings_repro.test.d.ts +0 -6
  144. package/dist/src/config/settings_repro.test.js +0 -166
  145. package/dist/src/config/settings_repro.test.js.map +0 -1
  146. package/dist/src/config/settings_validation_warning.test.d.ts +0 -6
  147. package/dist/src/config/settings_validation_warning.test.js +0 -123
  148. package/dist/src/config/settings_validation_warning.test.js.map +0 -1
  149. package/dist/src/config/skills-backward-compatibility.test.d.ts +0 -6
  150. package/dist/src/config/skills-backward-compatibility.test.js +0 -99
  151. package/dist/src/config/skills-backward-compatibility.test.js.map +0 -1
  152. package/dist/src/config/trustedFolders.test.d.ts +0 -6
  153. package/dist/src/config/trustedFolders.test.js +0 -385
  154. package/dist/src/config/trustedFolders.test.js.map +0 -1
  155. package/dist/src/core/auth.test.d.ts +0 -6
  156. package/dist/src/core/auth.test.js +0 -47
  157. package/dist/src/core/auth.test.js.map +0 -1
  158. package/dist/src/core/initializer.test.d.ts +0 -6
  159. package/dist/src/core/initializer.test.js +0 -101
  160. package/dist/src/core/initializer.test.js.map +0 -1
  161. package/dist/src/core/theme.test.d.ts +0 -6
  162. package/dist/src/core/theme.test.js +0 -46
  163. package/dist/src/core/theme.test.js.map +0 -1
  164. package/dist/src/deferred.test.d.ts +0 -6
  165. package/dist/src/deferred.test.js +0 -164
  166. package/dist/src/deferred.test.js.map +0 -1
  167. package/dist/src/gemini.test.d.ts +0 -6
  168. package/dist/src/gemini.test.js +0 -1334
  169. package/dist/src/gemini.test.js.map +0 -1
  170. package/dist/src/gemini_cleanup.test.d.ts +0 -6
  171. package/dist/src/gemini_cleanup.test.js +0 -208
  172. package/dist/src/gemini_cleanup.test.js.map +0 -1
  173. package/dist/src/nonInteractiveCli.test.d.ts +0 -6
  174. package/dist/src/nonInteractiveCli.test.js +0 -1687
  175. package/dist/src/nonInteractiveCli.test.js.map +0 -1
  176. package/dist/src/services/BuiltinCommandLoader.test.d.ts +0 -6
  177. package/dist/src/services/BuiltinCommandLoader.test.js +0 -254
  178. package/dist/src/services/BuiltinCommandLoader.test.js.map +0 -1
  179. package/dist/src/services/CommandService.test.d.ts +0 -6
  180. package/dist/src/services/CommandService.test.js +0 -234
  181. package/dist/src/services/CommandService.test.js.map +0 -1
  182. package/dist/src/services/FileCommandLoader.test.d.ts +0 -6
  183. package/dist/src/services/FileCommandLoader.test.js +0 -1102
  184. package/dist/src/services/FileCommandLoader.test.js.map +0 -1
  185. package/dist/src/services/McpPromptLoader.test.d.ts +0 -6
  186. package/dist/src/services/McpPromptLoader.test.js +0 -411
  187. package/dist/src/services/McpPromptLoader.test.js.map +0 -1
  188. package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +0 -6
  189. package/dist/src/services/prompt-processors/argumentProcessor.test.js +0 -40
  190. package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +0 -1
  191. package/dist/src/services/prompt-processors/atFileProcessor.test.d.ts +0 -6
  192. package/dist/src/services/prompt-processors/atFileProcessor.test.js +0 -174
  193. package/dist/src/services/prompt-processors/atFileProcessor.test.js.map +0 -1
  194. package/dist/src/services/prompt-processors/injectionParser.test.d.ts +0 -6
  195. package/dist/src/services/prompt-processors/injectionParser.test.js +0 -189
  196. package/dist/src/services/prompt-processors/injectionParser.test.js.map +0 -1
  197. package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +0 -6
  198. package/dist/src/services/prompt-processors/shellProcessor.test.js +0 -514
  199. package/dist/src/services/prompt-processors/shellProcessor.test.js.map +0 -1
  200. package/dist/src/test-utils/mockCommandContext.test.d.ts +0 -6
  201. package/dist/src/test-utils/mockCommandContext.test.js +0 -51
  202. package/dist/src/test-utils/mockCommandContext.test.js.map +0 -1
  203. package/dist/src/test-utils/render.test.d.ts +0 -6
  204. package/dist/src/test-utils/render.test.js +0 -79
  205. package/dist/src/test-utils/render.test.js.map +0 -1
  206. package/dist/src/ui/App.test.d.ts +0 -6
  207. package/dist/src/ui/App.test.js +0 -218
  208. package/dist/src/ui/App.test.js.map +0 -1
  209. package/dist/src/ui/AppContainer.test.d.ts +0 -6
  210. package/dist/src/ui/AppContainer.test.js +0 -2072
  211. package/dist/src/ui/AppContainer.test.js.map +0 -1
  212. package/dist/src/ui/IdeIntegrationNudge.test.d.ts +0 -6
  213. package/dist/src/ui/IdeIntegrationNudge.test.js +0 -158
  214. package/dist/src/ui/IdeIntegrationNudge.test.js.map +0 -1
  215. package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +0 -6
  216. package/dist/src/ui/auth/ApiAuthDialog.test.js +0 -109
  217. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +0 -1
  218. package/dist/src/ui/auth/AuthDialog.test.d.ts +0 -6
  219. package/dist/src/ui/auth/AuthDialog.test.js +0 -309
  220. package/dist/src/ui/auth/AuthDialog.test.js.map +0 -1
  221. package/dist/src/ui/auth/AuthInProgress.test.d.ts +0 -6
  222. package/dist/src/ui/auth/AuthInProgress.test.js +0 -81
  223. package/dist/src/ui/auth/AuthInProgress.test.js.map +0 -1
  224. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.d.ts +0 -6
  225. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +0 -66
  226. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +0 -1
  227. package/dist/src/ui/auth/useAuth.test.d.ts +0 -6
  228. package/dist/src/ui/auth/useAuth.test.js +0 -189
  229. package/dist/src/ui/auth/useAuth.test.js.map +0 -1
  230. package/dist/src/ui/commands/aboutCommand.test.d.ts +0 -6
  231. package/dist/src/ui/commands/aboutCommand.test.js +0 -143
  232. package/dist/src/ui/commands/aboutCommand.test.js.map +0 -1
  233. package/dist/src/ui/commands/agentsCommand.test.d.ts +0 -6
  234. package/dist/src/ui/commands/agentsCommand.test.js +0 -344
  235. package/dist/src/ui/commands/agentsCommand.test.js.map +0 -1
  236. package/dist/src/ui/commands/authCommand.test.d.ts +0 -6
  237. package/dist/src/ui/commands/authCommand.test.js +0 -98
  238. package/dist/src/ui/commands/authCommand.test.js.map +0 -1
  239. package/dist/src/ui/commands/bugCommand.test.d.ts +0 -6
  240. package/dist/src/ui/commands/bugCommand.test.js +0 -186
  241. package/dist/src/ui/commands/bugCommand.test.js.map +0 -1
  242. package/dist/src/ui/commands/chatCommand.test.d.ts +0 -6
  243. package/dist/src/ui/commands/chatCommand.test.js +0 -620
  244. package/dist/src/ui/commands/chatCommand.test.js.map +0 -1
  245. package/dist/src/ui/commands/clearCommand.test.d.ts +0 -6
  246. package/dist/src/ui/commands/clearCommand.test.js +0 -87
  247. package/dist/src/ui/commands/clearCommand.test.js.map +0 -1
  248. package/dist/src/ui/commands/compressCommand.test.d.ts +0 -6
  249. package/dist/src/ui/commands/compressCommand.test.js +0 -98
  250. package/dist/src/ui/commands/compressCommand.test.js.map +0 -1
  251. package/dist/src/ui/commands/copyCommand.test.d.ts +0 -6
  252. package/dist/src/ui/commands/copyCommand.test.js +0 -242
  253. package/dist/src/ui/commands/copyCommand.test.js.map +0 -1
  254. package/dist/src/ui/commands/corgiCommand.test.d.ts +0 -6
  255. package/dist/src/ui/commands/corgiCommand.test.js +0 -28
  256. package/dist/src/ui/commands/corgiCommand.test.js.map +0 -1
  257. package/dist/src/ui/commands/directoryCommand.test.d.ts +0 -6
  258. package/dist/src/ui/commands/directoryCommand.test.js +0 -353
  259. package/dist/src/ui/commands/directoryCommand.test.js.map +0 -1
  260. package/dist/src/ui/commands/docsCommand.test.d.ts +0 -6
  261. package/dist/src/ui/commands/docsCommand.test.js +0 -72
  262. package/dist/src/ui/commands/docsCommand.test.js.map +0 -1
  263. package/dist/src/ui/commands/editorCommand.test.d.ts +0 -6
  264. package/dist/src/ui/commands/editorCommand.test.js +0 -27
  265. package/dist/src/ui/commands/editorCommand.test.js.map +0 -1
  266. package/dist/src/ui/commands/extensionsCommand.test.d.ts +0 -6
  267. package/dist/src/ui/commands/extensionsCommand.test.js +0 -778
  268. package/dist/src/ui/commands/extensionsCommand.test.js.map +0 -1
  269. package/dist/src/ui/commands/helpCommand.test.d.ts +0 -6
  270. package/dist/src/ui/commands/helpCommand.test.js +0 -42
  271. package/dist/src/ui/commands/helpCommand.test.js.map +0 -1
  272. package/dist/src/ui/commands/hooksCommand.test.d.ts +0 -6
  273. package/dist/src/ui/commands/hooksCommand.test.js +0 -572
  274. package/dist/src/ui/commands/hooksCommand.test.js.map +0 -1
  275. package/dist/src/ui/commands/ideCommand.test.d.ts +0 -6
  276. package/dist/src/ui/commands/ideCommand.test.js +0 -203
  277. package/dist/src/ui/commands/ideCommand.test.js.map +0 -1
  278. package/dist/src/ui/commands/initCommand.test.d.ts +0 -6
  279. package/dist/src/ui/commands/initCommand.test.js +0 -84
  280. package/dist/src/ui/commands/initCommand.test.js.map +0 -1
  281. package/dist/src/ui/commands/mcpCommand.test.d.ts +0 -6
  282. package/dist/src/ui/commands/mcpCommand.test.js +0 -189
  283. package/dist/src/ui/commands/mcpCommand.test.js.map +0 -1
  284. package/dist/src/ui/commands/memoryCommand.test.d.ts +0 -6
  285. package/dist/src/ui/commands/memoryCommand.test.js +0 -350
  286. package/dist/src/ui/commands/memoryCommand.test.js.map +0 -1
  287. package/dist/src/ui/commands/modelCommand.test.d.ts +0 -6
  288. package/dist/src/ui/commands/modelCommand.test.js +0 -41
  289. package/dist/src/ui/commands/modelCommand.test.js.map +0 -1
  290. package/dist/src/ui/commands/permissionsCommand.test.d.ts +0 -6
  291. package/dist/src/ui/commands/permissionsCommand.test.js +0 -86
  292. package/dist/src/ui/commands/permissionsCommand.test.js.map +0 -1
  293. package/dist/src/ui/commands/policiesCommand.test.d.ts +0 -6
  294. package/dist/src/ui/commands/policiesCommand.test.js +0 -87
  295. package/dist/src/ui/commands/policiesCommand.test.js.map +0 -1
  296. package/dist/src/ui/commands/privacyCommand.test.d.ts +0 -6
  297. package/dist/src/ui/commands/privacyCommand.test.js +0 -32
  298. package/dist/src/ui/commands/privacyCommand.test.js.map +0 -1
  299. package/dist/src/ui/commands/quitCommand.test.d.ts +0 -6
  300. package/dist/src/ui/commands/quitCommand.test.js +0 -50
  301. package/dist/src/ui/commands/quitCommand.test.js.map +0 -1
  302. package/dist/src/ui/commands/restoreCommand.test.d.ts +0 -6
  303. package/dist/src/ui/commands/restoreCommand.test.js +0 -190
  304. package/dist/src/ui/commands/restoreCommand.test.js.map +0 -1
  305. package/dist/src/ui/commands/rewindCommand.test.d.ts +0 -6
  306. package/dist/src/ui/commands/rewindCommand.test.js +0 -242
  307. package/dist/src/ui/commands/rewindCommand.test.js.map +0 -1
  308. package/dist/src/ui/commands/settingsCommand.test.d.ts +0 -6
  309. package/dist/src/ui/commands/settingsCommand.test.js +0 -30
  310. package/dist/src/ui/commands/settingsCommand.test.js.map +0 -1
  311. package/dist/src/ui/commands/setupGithubCommand.test.d.ts +0 -6
  312. package/dist/src/ui/commands/setupGithubCommand.test.js +0 -238
  313. package/dist/src/ui/commands/setupGithubCommand.test.js.map +0 -1
  314. package/dist/src/ui/commands/skillsCommand.test.d.ts +0 -6
  315. package/dist/src/ui/commands/skillsCommand.test.js +0 -426
  316. package/dist/src/ui/commands/skillsCommand.test.js.map +0 -1
  317. package/dist/src/ui/commands/statsCommand.test.d.ts +0 -6
  318. package/dist/src/ui/commands/statsCommand.test.js +0 -70
  319. package/dist/src/ui/commands/statsCommand.test.js.map +0 -1
  320. package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +0 -6
  321. package/dist/src/ui/commands/terminalSetupCommand.test.js +0 -66
  322. package/dist/src/ui/commands/terminalSetupCommand.test.js.map +0 -1
  323. package/dist/src/ui/commands/themeCommand.test.d.ts +0 -6
  324. package/dist/src/ui/commands/themeCommand.test.js +0 -32
  325. package/dist/src/ui/commands/themeCommand.test.js.map +0 -1
  326. package/dist/src/ui/commands/toolsCommand.test.d.ts +0 -6
  327. package/dist/src/ui/commands/toolsCommand.test.js +0 -100
  328. package/dist/src/ui/commands/toolsCommand.test.js.map +0 -1
  329. package/dist/src/ui/components/AboutBox.test.d.ts +0 -6
  330. package/dist/src/ui/components/AboutBox.test.js +0 -59
  331. package/dist/src/ui/components/AboutBox.test.js.map +0 -1
  332. package/dist/src/ui/components/AdminSettingsChangedDialog.test.d.ts +0 -6
  333. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +0 -43
  334. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +0 -1
  335. package/dist/src/ui/components/AgentConfigDialog.test.d.ts +0 -6
  336. package/dist/src/ui/components/AgentConfigDialog.test.js +0 -241
  337. package/dist/src/ui/components/AgentConfigDialog.test.js.map +0 -1
  338. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.d.ts +0 -6
  339. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +0 -190
  340. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +0 -1
  341. package/dist/src/ui/components/AnsiOutput.test.d.ts +0 -6
  342. package/dist/src/ui/components/AnsiOutput.test.js +0 -92
  343. package/dist/src/ui/components/AnsiOutput.test.js.map +0 -1
  344. package/dist/src/ui/components/AppHeader.test.d.ts +0 -6
  345. package/dist/src/ui/components/AppHeader.test.js +0 -225
  346. package/dist/src/ui/components/AppHeader.test.js.map +0 -1
  347. package/dist/src/ui/components/ApprovalModeIndicator.test.d.ts +0 -6
  348. package/dist/src/ui/components/ApprovalModeIndicator.test.js +0 -37
  349. package/dist/src/ui/components/ApprovalModeIndicator.test.js.map +0 -1
  350. package/dist/src/ui/components/AskUserDialog.test.d.ts +0 -6
  351. package/dist/src/ui/components/AskUserDialog.test.js +0 -598
  352. package/dist/src/ui/components/AskUserDialog.test.js.map +0 -1
  353. package/dist/src/ui/components/Banner.test.d.ts +0 -6
  354. package/dist/src/ui/components/Banner.test.js +0 -24
  355. package/dist/src/ui/components/Banner.test.js.map +0 -1
  356. package/dist/src/ui/components/CliSpinner.test.d.ts +0 -6
  357. package/dist/src/ui/components/CliSpinner.test.js +0 -28
  358. package/dist/src/ui/components/CliSpinner.test.js.map +0 -1
  359. package/dist/src/ui/components/Composer.test.d.ts +0 -6
  360. package/dist/src/ui/components/Composer.test.js +0 -383
  361. package/dist/src/ui/components/Composer.test.js.map +0 -1
  362. package/dist/src/ui/components/ConfigInitDisplay.test.d.ts +0 -6
  363. package/dist/src/ui/components/ConfigInitDisplay.test.js +0 -117
  364. package/dist/src/ui/components/ConfigInitDisplay.test.js.map +0 -1
  365. package/dist/src/ui/components/ConsentPrompt.test.d.ts +0 -6
  366. package/dist/src/ui/components/ConsentPrompt.test.js +0 -77
  367. package/dist/src/ui/components/ConsentPrompt.test.js.map +0 -1
  368. package/dist/src/ui/components/ConsoleSummaryDisplay.test.d.ts +0 -6
  369. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js +0 -26
  370. package/dist/src/ui/components/ConsoleSummaryDisplay.test.js.map +0 -1
  371. package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +0 -6
  372. package/dist/src/ui/components/ContextSummaryDisplay.test.js +0 -102
  373. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +0 -1
  374. package/dist/src/ui/components/ContextUsageDisplay.test.d.ts +0 -6
  375. package/dist/src/ui/components/ContextUsageDisplay.test.js +0 -43
  376. package/dist/src/ui/components/ContextUsageDisplay.test.js.map +0 -1
  377. package/dist/src/ui/components/CopyModeWarning.test.d.ts +0 -6
  378. package/dist/src/ui/components/CopyModeWarning.test.js +0 -33
  379. package/dist/src/ui/components/CopyModeWarning.test.js.map +0 -1
  380. package/dist/src/ui/components/DebugProfiler.test.d.ts +0 -6
  381. package/dist/src/ui/components/DebugProfiler.test.js +0 -229
  382. package/dist/src/ui/components/DebugProfiler.test.js.map +0 -1
  383. package/dist/src/ui/components/DetailedMessagesDisplay.test.d.ts +0 -6
  384. package/dist/src/ui/components/DetailedMessagesDisplay.test.js +0 -39
  385. package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +0 -1
  386. package/dist/src/ui/components/DialogManager.test.d.ts +0 -6
  387. package/dist/src/ui/components/DialogManager.test.js +0 -177
  388. package/dist/src/ui/components/DialogManager.test.js.map +0 -1
  389. package/dist/src/ui/components/EditorSettingsDialog.test.d.ts +0 -6
  390. package/dist/src/ui/components/EditorSettingsDialog.test.js +0 -119
  391. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +0 -1
  392. package/dist/src/ui/components/ExitWarning.test.d.ts +0 -6
  393. package/dist/src/ui/components/ExitWarning.test.js +0 -54
  394. package/dist/src/ui/components/ExitWarning.test.js.map +0 -1
  395. package/dist/src/ui/components/FolderTrustDialog.test.d.ts +0 -6
  396. package/dist/src/ui/components/FolderTrustDialog.test.js +0 -102
  397. package/dist/src/ui/components/FolderTrustDialog.test.js.map +0 -1
  398. package/dist/src/ui/components/Footer.test.d.ts +0 -6
  399. package/dist/src/ui/components/Footer.test.js +0 -321
  400. package/dist/src/ui/components/Footer.test.js.map +0 -1
  401. package/dist/src/ui/components/GeminiRespondingSpinner.test.d.ts +0 -6
  402. package/dist/src/ui/components/GeminiRespondingSpinner.test.js +0 -61
  403. package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +0 -1
  404. package/dist/src/ui/components/GradientRegression.test.d.ts +0 -6
  405. package/dist/src/ui/components/GradientRegression.test.js +0 -105
  406. package/dist/src/ui/components/GradientRegression.test.js.map +0 -1
  407. package/dist/src/ui/components/Header.test.d.ts +0 -6
  408. package/dist/src/ui/components/Header.test.js +0 -147
  409. package/dist/src/ui/components/Header.test.js.map +0 -1
  410. package/dist/src/ui/components/Help.test.d.ts +0 -6
  411. package/dist/src/ui/components/Help.test.js +0 -67
  412. package/dist/src/ui/components/Help.test.js.map +0 -1
  413. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
  414. package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -207
  415. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
  416. package/dist/src/ui/components/HookStatusDisplay.test.d.ts +0 -6
  417. package/dist/src/ui/components/HookStatusDisplay.test.js +0 -51
  418. package/dist/src/ui/components/HookStatusDisplay.test.js.map +0 -1
  419. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +0 -6
  420. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +0 -58
  421. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +0 -1
  422. package/dist/src/ui/components/InputPrompt.test.d.ts +0 -6
  423. package/dist/src/ui/components/InputPrompt.test.js +0 -2596
  424. package/dist/src/ui/components/InputPrompt.test.js.map +0 -1
  425. package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
  426. package/dist/src/ui/components/LoadingIndicator.test.js +0 -207
  427. package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
  428. package/dist/src/ui/components/LogoutConfirmationDialog.test.d.ts +0 -6
  429. package/dist/src/ui/components/LogoutConfirmationDialog.test.js +0 -59
  430. package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +0 -1
  431. package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +0 -6
  432. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +0 -25
  433. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +0 -1
  434. package/dist/src/ui/components/MainContent.test.d.ts +0 -6
  435. package/dist/src/ui/components/MainContent.test.js +0 -83
  436. package/dist/src/ui/components/MainContent.test.js.map +0 -1
  437. package/dist/src/ui/components/MemoryUsageDisplay.test.d.ts +0 -6
  438. package/dist/src/ui/components/MemoryUsageDisplay.test.js +0 -49
  439. package/dist/src/ui/components/MemoryUsageDisplay.test.js.map +0 -1
  440. package/dist/src/ui/components/ModelDialog.test.d.ts +0 -6
  441. package/dist/src/ui/components/ModelDialog.test.js +0 -197
  442. package/dist/src/ui/components/ModelDialog.test.js.map +0 -1
  443. package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +0 -6
  444. package/dist/src/ui/components/ModelStatsDisplay.test.js +0 -343
  445. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +0 -1
  446. package/dist/src/ui/components/MultiFolderTrustDialog.test.d.ts +0 -6
  447. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +0 -162
  448. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +0 -1
  449. package/dist/src/ui/components/NewAgentsNotification.test.d.ts +0 -6
  450. package/dist/src/ui/components/NewAgentsNotification.test.js +0 -48
  451. package/dist/src/ui/components/NewAgentsNotification.test.js.map +0 -1
  452. package/dist/src/ui/components/Notifications.test.d.ts +0 -6
  453. package/dist/src/ui/components/Notifications.test.js +0 -164
  454. package/dist/src/ui/components/Notifications.test.js.map +0 -1
  455. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +0 -6
  456. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +0 -162
  457. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +0 -1
  458. package/dist/src/ui/components/ProQuotaDialog.test.d.ts +0 -6
  459. package/dist/src/ui/components/ProQuotaDialog.test.js +0 -191
  460. package/dist/src/ui/components/ProQuotaDialog.test.js.map +0 -1
  461. package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +0 -6
  462. package/dist/src/ui/components/QueuedMessageDisplay.test.js +0 -65
  463. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +0 -1
  464. package/dist/src/ui/components/QuittingDisplay.test.d.ts +0 -6
  465. package/dist/src/ui/components/QuittingDisplay.test.js +0 -49
  466. package/dist/src/ui/components/QuittingDisplay.test.js.map +0 -1
  467. package/dist/src/ui/components/RawMarkdownIndicator.test.d.ts +0 -6
  468. package/dist/src/ui/components/RawMarkdownIndicator.test.js +0 -34
  469. package/dist/src/ui/components/RawMarkdownIndicator.test.js.map +0 -1
  470. package/dist/src/ui/components/RewindConfirmation.test.d.ts +0 -6
  471. package/dist/src/ui/components/RewindConfirmation.test.js +0 -53
  472. package/dist/src/ui/components/RewindConfirmation.test.js.map +0 -1
  473. package/dist/src/ui/components/RewindViewer.test.d.ts +0 -6
  474. package/dist/src/ui/components/RewindViewer.test.js +0 -241
  475. package/dist/src/ui/components/RewindViewer.test.js.map +0 -1
  476. package/dist/src/ui/components/SessionBrowser.test.d.ts +0 -6
  477. package/dist/src/ui/components/SessionBrowser.test.js +0 -256
  478. package/dist/src/ui/components/SessionBrowser.test.js.map +0 -1
  479. package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +0 -6
  480. package/dist/src/ui/components/SessionSummaryDisplay.test.js +0 -75
  481. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +0 -1
  482. package/dist/src/ui/components/SettingsDialog.test.d.ts +0 -6
  483. package/dist/src/ui/components/SettingsDialog.test.js +0 -1150
  484. package/dist/src/ui/components/SettingsDialog.test.js.map +0 -1
  485. package/dist/src/ui/components/ShellInputPrompt.test.d.ts +0 -6
  486. package/dist/src/ui/components/ShellInputPrompt.test.js +0 -91
  487. package/dist/src/ui/components/ShellInputPrompt.test.js.map +0 -1
  488. package/dist/src/ui/components/ShellModeIndicator.test.d.ts +0 -6
  489. package/dist/src/ui/components/ShellModeIndicator.test.js +0 -17
  490. package/dist/src/ui/components/ShellModeIndicator.test.js.map +0 -1
  491. package/dist/src/ui/components/ShowMoreLines.test.d.ts +0 -6
  492. package/dist/src/ui/components/ShowMoreLines.test.js +0 -40
  493. package/dist/src/ui/components/ShowMoreLines.test.js.map +0 -1
  494. package/dist/src/ui/components/StatsDisplay.test.d.ts +0 -6
  495. package/dist/src/ui/components/StatsDisplay.test.js +0 -438
  496. package/dist/src/ui/components/StatsDisplay.test.js.map +0 -1
  497. package/dist/src/ui/components/StatusDisplay.test.d.ts +0 -6
  498. package/dist/src/ui/components/StatusDisplay.test.js +0 -155
  499. package/dist/src/ui/components/StatusDisplay.test.js.map +0 -1
  500. package/dist/src/ui/components/StickyHeader.test.d.ts +0 -6
  501. package/dist/src/ui/components/StickyHeader.test.js +0 -17
  502. package/dist/src/ui/components/StickyHeader.test.js.map +0 -1
  503. package/dist/src/ui/components/SuggestionsDisplay.test.d.ts +0 -6
  504. package/dist/src/ui/components/SuggestionsDisplay.test.js +0 -56
  505. package/dist/src/ui/components/SuggestionsDisplay.test.js.map +0 -1
  506. package/dist/src/ui/components/Table.test.d.ts +0 -6
  507. package/dist/src/ui/components/Table.test.js +0 -53
  508. package/dist/src/ui/components/Table.test.js.map +0 -1
  509. package/dist/src/ui/components/ThemeDialog.test.d.ts +0 -6
  510. package/dist/src/ui/components/ThemeDialog.test.js +0 -167
  511. package/dist/src/ui/components/ThemeDialog.test.js.map +0 -1
  512. package/dist/src/ui/components/ThemedGradient.test.d.ts +0 -6
  513. package/dist/src/ui/components/ThemedGradient.test.js +0 -30
  514. package/dist/src/ui/components/ThemedGradient.test.js.map +0 -1
  515. package/dist/src/ui/components/Tips.test.d.ts +0 -6
  516. package/dist/src/ui/components/Tips.test.js +0 -23
  517. package/dist/src/ui/components/Tips.test.js.map +0 -1
  518. package/dist/src/ui/components/ToolConfirmationQueue.test.d.ts +0 -6
  519. package/dist/src/ui/components/ToolConfirmationQueue.test.js +0 -71
  520. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +0 -1
  521. package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +0 -6
  522. package/dist/src/ui/components/ToolStatsDisplay.test.js +0 -227
  523. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +0 -1
  524. package/dist/src/ui/components/UpdateNotification.test.d.ts +0 -6
  525. package/dist/src/ui/components/UpdateNotification.test.js +0 -16
  526. package/dist/src/ui/components/UpdateNotification.test.js.map +0 -1
  527. package/dist/src/ui/components/ValidationDialog.test.d.ts +0 -6
  528. package/dist/src/ui/components/ValidationDialog.test.js +0 -153
  529. package/dist/src/ui/components/ValidationDialog.test.js.map +0 -1
  530. package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +0 -6
  531. package/dist/src/ui/components/messages/CompressionMessage.test.js +0 -191
  532. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +0 -1
  533. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
  534. package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -240
  535. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
  536. package/dist/src/ui/components/messages/ErrorMessage.test.d.ts +0 -6
  537. package/dist/src/ui/components/messages/ErrorMessage.test.js +0 -23
  538. package/dist/src/ui/components/messages/ErrorMessage.test.js.map +0 -1
  539. package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +0 -6
  540. package/dist/src/ui/components/messages/GeminiMessage.test.js +0 -35
  541. package/dist/src/ui/components/messages/GeminiMessage.test.js.map +0 -1
  542. package/dist/src/ui/components/messages/InfoMessage.test.d.ts +0 -6
  543. package/dist/src/ui/components/messages/InfoMessage.test.js +0 -28
  544. package/dist/src/ui/components/messages/InfoMessage.test.js.map +0 -1
  545. package/dist/src/ui/components/messages/RedirectionConfirmation.test.d.ts +0 -6
  546. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +0 -33
  547. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +0 -1
  548. package/dist/src/ui/components/messages/ShellToolMessage.test.d.ts +0 -6
  549. package/dist/src/ui/components/messages/ShellToolMessage.test.js +0 -123
  550. package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +0 -1
  551. package/dist/src/ui/components/messages/Todo.test.d.ts +0 -6
  552. package/dist/src/ui/components/messages/Todo.test.js +0 -114
  553. package/dist/src/ui/components/messages/Todo.test.js.map +0 -1
  554. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
  555. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -232
  556. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
  557. package/dist/src/ui/components/messages/ToolGroupMessage.test.d.ts +0 -6
  558. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +0 -529
  559. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +0 -1
  560. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
  561. package/dist/src/ui/components/messages/ToolMessage.test.js +0 -217
  562. package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
  563. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.d.ts +0 -6
  564. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js +0 -89
  565. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js.map +0 -1
  566. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +0 -6
  567. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +0 -62
  568. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +0 -1
  569. package/dist/src/ui/components/messages/ToolResultDisplay.test.d.ts +0 -6
  570. package/dist/src/ui/components/messages/ToolResultDisplay.test.js +0 -114
  571. package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +0 -1
  572. package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.d.ts +0 -6
  573. package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +0 -134
  574. package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +0 -1
  575. package/dist/src/ui/components/messages/UserMessage.test.d.ts +0 -6
  576. package/dist/src/ui/components/messages/UserMessage.test.js +0 -32
  577. package/dist/src/ui/components/messages/UserMessage.test.js.map +0 -1
  578. package/dist/src/ui/components/messages/WarningMessage.test.d.ts +0 -6
  579. package/dist/src/ui/components/messages/WarningMessage.test.js +0 -23
  580. package/dist/src/ui/components/messages/WarningMessage.test.js.map +0 -1
  581. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +0 -6
  582. package/dist/src/ui/components/shared/BaseSelectionList.test.js +0 -386
  583. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +0 -1
  584. package/dist/src/ui/components/shared/BaseSettingsDialog.test.d.ts +0 -6
  585. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +0 -434
  586. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +0 -1
  587. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +0 -6
  588. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +0 -79
  589. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +0 -1
  590. package/dist/src/ui/components/shared/EnumSelector.test.d.ts +0 -6
  591. package/dist/src/ui/components/shared/EnumSelector.test.js +0 -70
  592. package/dist/src/ui/components/shared/EnumSelector.test.js.map +0 -1
  593. package/dist/src/ui/components/shared/ExpandableText.test.d.ts +0 -6
  594. package/dist/src/ui/components/shared/ExpandableText.test.js +0 -88
  595. package/dist/src/ui/components/shared/ExpandableText.test.js.map +0 -1
  596. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.d.ts +0 -6
  597. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js +0 -34
  598. package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js.map +0 -1
  599. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
  600. package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -90
  601. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
  602. package/dist/src/ui/components/shared/RadioButtonSelect.test.d.ts +0 -6
  603. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +0 -134
  604. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +0 -1
  605. package/dist/src/ui/components/shared/Scrollable.test.d.ts +0 -6
  606. package/dist/src/ui/components/shared/Scrollable.test.js +0 -74
  607. package/dist/src/ui/components/shared/Scrollable.test.js.map +0 -1
  608. package/dist/src/ui/components/shared/ScrollableList.test.d.ts +0 -6
  609. package/dist/src/ui/components/shared/ScrollableList.test.js +0 -241
  610. package/dist/src/ui/components/shared/ScrollableList.test.js.map +0 -1
  611. package/dist/src/ui/components/shared/TabHeader.test.d.ts +0 -6
  612. package/dist/src/ui/components/shared/TabHeader.test.js +0 -106
  613. package/dist/src/ui/components/shared/TabHeader.test.js.map +0 -1
  614. package/dist/src/ui/components/shared/TextInput.test.d.ts +0 -6
  615. package/dist/src/ui/components/shared/TextInput.test.js +0 -242
  616. package/dist/src/ui/components/shared/TextInput.test.js.map +0 -1
  617. package/dist/src/ui/components/shared/VirtualizedList.test.d.ts +0 -6
  618. package/dist/src/ui/components/shared/VirtualizedList.test.js +0 -171
  619. package/dist/src/ui/components/shared/VirtualizedList.test.js.map +0 -1
  620. package/dist/src/ui/components/shared/performance.test.d.ts +0 -1
  621. package/dist/src/ui/components/shared/performance.test.js +0 -67
  622. package/dist/src/ui/components/shared/performance.test.js.map +0 -1
  623. package/dist/src/ui/components/shared/text-buffer.test.d.ts +0 -6
  624. package/dist/src/ui/components/shared/text-buffer.test.js +0 -2490
  625. package/dist/src/ui/components/shared/text-buffer.test.js.map +0 -1
  626. package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +0 -6
  627. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +0 -964
  628. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +0 -1
  629. package/dist/src/ui/components/views/ChatList.test.d.ts +0 -6
  630. package/dist/src/ui/components/views/ChatList.test.js +0 -45
  631. package/dist/src/ui/components/views/ChatList.test.js.map +0 -1
  632. package/dist/src/ui/components/views/ExtensionsList.test.d.ts +0 -6
  633. package/dist/src/ui/components/views/ExtensionsList.test.js +0 -148
  634. package/dist/src/ui/components/views/ExtensionsList.test.js.map +0 -1
  635. package/dist/src/ui/components/views/McpStatus.test.d.ts +0 -6
  636. package/dist/src/ui/components/views/McpStatus.test.js +0 -153
  637. package/dist/src/ui/components/views/McpStatus.test.js.map +0 -1
  638. package/dist/src/ui/components/views/SkillsList.test.d.ts +0 -6
  639. package/dist/src/ui/components/views/SkillsList.test.js +0 -97
  640. package/dist/src/ui/components/views/SkillsList.test.js.map +0 -1
  641. package/dist/src/ui/components/views/ToolsList.test.d.ts +0 -6
  642. package/dist/src/ui/components/views/ToolsList.test.js +0 -45
  643. package/dist/src/ui/components/views/ToolsList.test.js.map +0 -1
  644. package/dist/src/ui/contexts/KeypressContext.test.d.ts +0 -6
  645. package/dist/src/ui/contexts/KeypressContext.test.js +0 -957
  646. package/dist/src/ui/contexts/KeypressContext.test.js.map +0 -1
  647. package/dist/src/ui/contexts/MouseContext.test.d.ts +0 -6
  648. package/dist/src/ui/contexts/MouseContext.test.js +0 -198
  649. package/dist/src/ui/contexts/MouseContext.test.js.map +0 -1
  650. package/dist/src/ui/contexts/ScrollProvider.drag.test.d.ts +0 -6
  651. package/dist/src/ui/contexts/ScrollProvider.drag.test.js +0 -319
  652. package/dist/src/ui/contexts/ScrollProvider.drag.test.js.map +0 -1
  653. package/dist/src/ui/contexts/ScrollProvider.test.d.ts +0 -6
  654. package/dist/src/ui/contexts/ScrollProvider.test.js +0 -377
  655. package/dist/src/ui/contexts/ScrollProvider.test.js.map +0 -1
  656. package/dist/src/ui/contexts/SessionContext.test.d.ts +0 -6
  657. package/dist/src/ui/contexts/SessionContext.test.js +0 -198
  658. package/dist/src/ui/contexts/SessionContext.test.js.map +0 -1
  659. package/dist/src/ui/contexts/ToolActionsContext.test.d.ts +0 -6
  660. package/dist/src/ui/contexts/ToolActionsContext.test.js +0 -166
  661. package/dist/src/ui/contexts/ToolActionsContext.test.js.map +0 -1
  662. package/dist/src/ui/hooks/atCommandProcessor.test.d.ts +0 -6
  663. package/dist/src/ui/hooks/atCommandProcessor.test.js +0 -1032
  664. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +0 -1
  665. package/dist/src/ui/hooks/atCommandProcessor_agents.test.d.ts +0 -6
  666. package/dist/src/ui/hooks/atCommandProcessor_agents.test.js +0 -183
  667. package/dist/src/ui/hooks/atCommandProcessor_agents.test.js.map +0 -1
  668. package/dist/src/ui/hooks/shellCommandProcessor.test.d.ts +0 -6
  669. package/dist/src/ui/hooks/shellCommandProcessor.test.js +0 -521
  670. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +0 -1
  671. package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +0 -6
  672. package/dist/src/ui/hooks/slashCommandProcessor.test.js +0 -796
  673. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +0 -1
  674. package/dist/src/ui/hooks/toolMapping.test.d.ts +0 -6
  675. package/dist/src/ui/hooks/toolMapping.test.js +0 -209
  676. package/dist/src/ui/hooks/toolMapping.test.js.map +0 -1
  677. package/dist/src/ui/hooks/useAnimatedScrollbar.test.d.ts +0 -6
  678. package/dist/src/ui/hooks/useAnimatedScrollbar.test.js +0 -85
  679. package/dist/src/ui/hooks/useAnimatedScrollbar.test.js.map +0 -1
  680. package/dist/src/ui/hooks/useApprovalModeIndicator.test.d.ts +0 -6
  681. package/dist/src/ui/hooks/useApprovalModeIndicator.test.js +0 -435
  682. package/dist/src/ui/hooks/useApprovalModeIndicator.test.js.map +0 -1
  683. package/dist/src/ui/hooks/useAtCompletion.test.d.ts +0 -6
  684. package/dist/src/ui/hooks/useAtCompletion.test.js +0 -417
  685. package/dist/src/ui/hooks/useAtCompletion.test.js.map +0 -1
  686. package/dist/src/ui/hooks/useAtCompletion_agents.test.d.ts +0 -6
  687. package/dist/src/ui/hooks/useAtCompletion_agents.test.js +0 -87
  688. package/dist/src/ui/hooks/useAtCompletion_agents.test.js.map +0 -1
  689. package/dist/src/ui/hooks/useBanner.test.d.ts +0 -6
  690. package/dist/src/ui/hooks/useBanner.test.js +0 -92
  691. package/dist/src/ui/hooks/useBanner.test.js.map +0 -1
  692. package/dist/src/ui/hooks/useBatchedScroll.test.d.ts +0 -6
  693. package/dist/src/ui/hooks/useBatchedScroll.test.js +0 -62
  694. package/dist/src/ui/hooks/useBatchedScroll.test.js.map +0 -1
  695. package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +0 -6
  696. package/dist/src/ui/hooks/useCommandCompletion.test.js +0 -462
  697. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +0 -1
  698. package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +0 -6
  699. package/dist/src/ui/hooks/useConsoleMessages.test.js +0 -159
  700. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +0 -1
  701. package/dist/src/ui/hooks/useEditorSettings.test.d.ts +0 -6
  702. package/dist/src/ui/hooks/useEditorSettings.test.js +0 -179
  703. package/dist/src/ui/hooks/useEditorSettings.test.js.map +0 -1
  704. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +0 -6
  705. package/dist/src/ui/hooks/useExtensionUpdates.test.js +0 -279
  706. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +0 -1
  707. package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +0 -6
  708. package/dist/src/ui/hooks/useFlickerDetector.test.js +0 -106
  709. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +0 -1
  710. package/dist/src/ui/hooks/useFocus.test.d.ts +0 -6
  711. package/dist/src/ui/hooks/useFocus.test.js +0 -131
  712. package/dist/src/ui/hooks/useFocus.test.js.map +0 -1
  713. package/dist/src/ui/hooks/useFolderTrust.test.d.ts +0 -6
  714. package/dist/src/ui/hooks/useFolderTrust.test.js +0 -218
  715. package/dist/src/ui/hooks/useFolderTrust.test.js.map +0 -1
  716. package/dist/src/ui/hooks/useGeminiStream.test.d.ts +0 -6
  717. package/dist/src/ui/hooks/useGeminiStream.test.js +0 -2149
  718. package/dist/src/ui/hooks/useGeminiStream.test.js.map +0 -1
  719. package/dist/src/ui/hooks/useGitBranchName.test.d.ts +0 -6
  720. package/dist/src/ui/hooks/useGitBranchName.test.js +0 -183
  721. package/dist/src/ui/hooks/useGitBranchName.test.js.map +0 -1
  722. package/dist/src/ui/hooks/useHistoryManager.test.d.ts +0 -6
  723. package/dist/src/ui/hooks/useHistoryManager.test.js +0 -188
  724. package/dist/src/ui/hooks/useHistoryManager.test.js.map +0 -1
  725. package/dist/src/ui/hooks/useHookDisplayState.test.d.ts +0 -6
  726. package/dist/src/ui/hooks/useHookDisplayState.test.js +0 -180
  727. package/dist/src/ui/hooks/useHookDisplayState.test.js.map +0 -1
  728. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +0 -6
  729. package/dist/src/ui/hooks/useIdeTrustListener.test.js +0 -214
  730. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +0 -1
  731. package/dist/src/ui/hooks/useIncludeDirsTrust.test.d.ts +0 -6
  732. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +0 -172
  733. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +0 -1
  734. package/dist/src/ui/hooks/useInputHistory.test.d.ts +0 -6
  735. package/dist/src/ui/hooks/useInputHistory.test.js +0 -208
  736. package/dist/src/ui/hooks/useInputHistory.test.js.map +0 -1
  737. package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +0 -6
  738. package/dist/src/ui/hooks/useInputHistoryStore.test.js +0 -238
  739. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +0 -1
  740. package/dist/src/ui/hooks/useKeypress.test.d.ts +0 -6
  741. package/dist/src/ui/hooks/useKeypress.test.js +0 -205
  742. package/dist/src/ui/hooks/useKeypress.test.js.map +0 -1
  743. package/dist/src/ui/hooks/useLoadingIndicator.test.d.ts +0 -6
  744. package/dist/src/ui/hooks/useLoadingIndicator.test.js +0 -145
  745. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +0 -1
  746. package/dist/src/ui/hooks/useMcpStatus.test.d.ts +0 -6
  747. package/dist/src/ui/hooks/useMcpStatus.test.js +0 -69
  748. package/dist/src/ui/hooks/useMcpStatus.test.js.map +0 -1
  749. package/dist/src/ui/hooks/useMemoryMonitor.test.d.ts +0 -6
  750. package/dist/src/ui/hooks/useMemoryMonitor.test.js +0 -62
  751. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +0 -1
  752. package/dist/src/ui/hooks/useMessageQueue.test.d.ts +0 -6
  753. package/dist/src/ui/hooks/useMessageQueue.test.js +0 -327
  754. package/dist/src/ui/hooks/useMessageQueue.test.js.map +0 -1
  755. package/dist/src/ui/hooks/useModelCommand.test.d.ts +0 -6
  756. package/dist/src/ui/hooks/useModelCommand.test.js +0 -45
  757. package/dist/src/ui/hooks/useModelCommand.test.js.map +0 -1
  758. package/dist/src/ui/hooks/useMouse.test.d.ts +0 -6
  759. package/dist/src/ui/hooks/useMouse.test.js +0 -57
  760. package/dist/src/ui/hooks/useMouse.test.js.map +0 -1
  761. package/dist/src/ui/hooks/useMouseClick.test.d.ts +0 -6
  762. package/dist/src/ui/hooks/useMouseClick.test.js +0 -59
  763. package/dist/src/ui/hooks/useMouseClick.test.js.map +0 -1
  764. package/dist/src/ui/hooks/useMouseDoubleClick.test.d.ts +0 -6
  765. package/dist/src/ui/hooks/useMouseDoubleClick.test.js +0 -125
  766. package/dist/src/ui/hooks/useMouseDoubleClick.test.js.map +0 -1
  767. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +0 -6
  768. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +0 -291
  769. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +0 -1
  770. package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +0 -6
  771. package/dist/src/ui/hooks/usePhraseCycler.test.js +0 -208
  772. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +0 -1
  773. package/dist/src/ui/hooks/usePrivacySettings.test.d.ts +0 -6
  774. package/dist/src/ui/hooks/usePrivacySettings.test.js +0 -104
  775. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +0 -1
  776. package/dist/src/ui/hooks/useQuotaAndFallback.test.d.ts +0 -6
  777. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +0 -477
  778. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +0 -1
  779. package/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +0 -6
  780. package/dist/src/ui/hooks/useReactToolScheduler.test.js +0 -58
  781. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +0 -1
  782. package/dist/src/ui/hooks/useReverseSearchCompletion.test.d.ts +0 -6
  783. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +0 -169
  784. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +0 -1
  785. package/dist/src/ui/hooks/useRewind.test.d.ts +0 -6
  786. package/dist/src/ui/hooks/useRewind.test.js +0 -100
  787. package/dist/src/ui/hooks/useRewind.test.js.map +0 -1
  788. package/dist/src/ui/hooks/useSelectionList.test.d.ts +0 -6
  789. package/dist/src/ui/hooks/useSelectionList.test.js +0 -848
  790. package/dist/src/ui/hooks/useSelectionList.test.js.map +0 -1
  791. package/dist/src/ui/hooks/useSessionBrowser.test.d.ts +0 -6
  792. package/dist/src/ui/hooks/useSessionBrowser.test.js +0 -203
  793. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +0 -1
  794. package/dist/src/ui/hooks/useSessionResume.test.d.ts +0 -6
  795. package/dist/src/ui/hooks/useSessionResume.test.js +0 -336
  796. package/dist/src/ui/hooks/useSessionResume.test.js.map +0 -1
  797. package/dist/src/ui/hooks/useShellHistory.test.d.ts +0 -6
  798. package/dist/src/ui/hooks/useShellHistory.test.js +0 -223
  799. package/dist/src/ui/hooks/useShellHistory.test.js.map +0 -1
  800. package/dist/src/ui/hooks/useShellInactivityStatus.test.d.ts +0 -6
  801. package/dist/src/ui/hooks/useShellInactivityStatus.test.js +0 -84
  802. package/dist/src/ui/hooks/useShellInactivityStatus.test.js.map +0 -1
  803. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +0 -9
  804. package/dist/src/ui/hooks/useSlashCompletion.test.js +0 -845
  805. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +0 -1
  806. package/dist/src/ui/hooks/useSnowfall.test.d.ts +0 -6
  807. package/dist/src/ui/hooks/useSnowfall.test.js +0 -88
  808. package/dist/src/ui/hooks/useSnowfall.test.js.map +0 -1
  809. package/dist/src/ui/hooks/useTabbedNavigation.test.d.ts +0 -6
  810. package/dist/src/ui/hooks/useTabbedNavigation.test.js +0 -187
  811. package/dist/src/ui/hooks/useTabbedNavigation.test.js.map +0 -1
  812. package/dist/src/ui/hooks/useTimer.test.d.ts +0 -6
  813. package/dist/src/ui/hooks/useTimer.test.js +0 -119
  814. package/dist/src/ui/hooks/useTimer.test.js.map +0 -1
  815. package/dist/src/ui/hooks/useTips.test.d.ts +0 -6
  816. package/dist/src/ui/hooks/useTips.test.js +0 -33
  817. package/dist/src/ui/hooks/useTips.test.js.map +0 -1
  818. package/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +0 -6
  819. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js +0 -376
  820. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +0 -1
  821. package/dist/src/ui/hooks/useToolScheduler.test.d.ts +0 -6
  822. package/dist/src/ui/hooks/useToolScheduler.test.js +0 -881
  823. package/dist/src/ui/hooks/useToolScheduler.test.js.map +0 -1
  824. package/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +0 -6
  825. package/dist/src/ui/hooks/useToolSchedulerFacade.test.js +0 -45
  826. package/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +0 -1
  827. package/dist/src/ui/hooks/useTurnActivityMonitor.test.d.ts +0 -6
  828. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js +0 -97
  829. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js.map +0 -1
  830. package/dist/src/ui/hooks/vim.test.d.ts +0 -6
  831. package/dist/src/ui/hooks/vim.test.js +0 -1384
  832. package/dist/src/ui/hooks/vim.test.js.map +0 -1
  833. package/dist/src/ui/keyMatchers.test.d.ts +0 -6
  834. package/dist/src/ui/keyMatchers.test.js +0 -386
  835. package/dist/src/ui/keyMatchers.test.js.map +0 -1
  836. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.d.ts +0 -6
  837. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js +0 -121
  838. package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js.map +0 -1
  839. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.d.ts +0 -6
  840. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js +0 -34
  841. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js.map +0 -1
  842. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.d.ts +0 -6
  843. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js +0 -34
  844. package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js.map +0 -1
  845. package/dist/src/ui/privacy/PrivacyNotice.test.d.ts +0 -6
  846. package/dist/src/ui/privacy/PrivacyNotice.test.js +0 -62
  847. package/dist/src/ui/privacy/PrivacyNotice.test.js.map +0 -1
  848. package/dist/src/ui/state/extensions.test.d.ts +0 -6
  849. package/dist/src/ui/state/extensions.test.js +0 -219
  850. package/dist/src/ui/state/extensions.test.js.map +0 -1
  851. package/dist/src/ui/themes/color-utils.test.d.ts +0 -6
  852. package/dist/src/ui/themes/color-utils.test.js +0 -245
  853. package/dist/src/ui/themes/color-utils.test.js.map +0 -1
  854. package/dist/src/ui/themes/theme-manager.test.d.ts +0 -6
  855. package/dist/src/ui/themes/theme-manager.test.js +0 -150
  856. package/dist/src/ui/themes/theme-manager.test.js.map +0 -1
  857. package/dist/src/ui/themes/theme.test.d.ts +0 -6
  858. package/dist/src/ui/themes/theme.test.js +0 -174
  859. package/dist/src/ui/themes/theme.test.js.map +0 -1
  860. package/dist/src/ui/utils/CodeColorizer.test.d.ts +0 -6
  861. package/dist/src/ui/utils/CodeColorizer.test.js +0 -38
  862. package/dist/src/ui/utils/CodeColorizer.test.js.map +0 -1
  863. package/dist/src/ui/utils/InlineMarkdownRenderer.test.d.ts +0 -6
  864. package/dist/src/ui/utils/InlineMarkdownRenderer.test.js +0 -21
  865. package/dist/src/ui/utils/InlineMarkdownRenderer.test.js.map +0 -1
  866. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
  867. package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -159
  868. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
  869. package/dist/src/ui/utils/clipboardUtils.test.d.ts +0 -6
  870. package/dist/src/ui/utils/clipboardUtils.test.js +0 -359
  871. package/dist/src/ui/utils/clipboardUtils.test.js.map +0 -1
  872. package/dist/src/ui/utils/clipboardUtils.windows.test.d.ts +0 -6
  873. package/dist/src/ui/utils/clipboardUtils.windows.test.js +0 -55
  874. package/dist/src/ui/utils/clipboardUtils.windows.test.js.map +0 -1
  875. package/dist/src/ui/utils/commandUtils.test.d.ts +0 -6
  876. package/dist/src/ui/utils/commandUtils.test.js +0 -479
  877. package/dist/src/ui/utils/commandUtils.test.js.map +0 -1
  878. package/dist/src/ui/utils/computeStats.test.d.ts +0 -6
  879. package/dist/src/ui/utils/computeStats.test.js +0 -271
  880. package/dist/src/ui/utils/computeStats.test.js.map +0 -1
  881. package/dist/src/ui/utils/directoryUtils.test.d.ts +0 -6
  882. package/dist/src/ui/utils/directoryUtils.test.js +0 -244
  883. package/dist/src/ui/utils/directoryUtils.test.js.map +0 -1
  884. package/dist/src/ui/utils/displayUtils.test.d.ts +0 -6
  885. package/dist/src/ui/utils/displayUtils.test.js +0 -61
  886. package/dist/src/ui/utils/displayUtils.test.js.map +0 -1
  887. package/dist/src/ui/utils/formatters.test.d.ts +0 -6
  888. package/dist/src/ui/utils/formatters.test.js +0 -124
  889. package/dist/src/ui/utils/formatters.test.js.map +0 -1
  890. package/dist/src/ui/utils/highlight.test.d.ts +0 -6
  891. package/dist/src/ui/utils/highlight.test.js +0 -198
  892. package/dist/src/ui/utils/highlight.test.js.map +0 -1
  893. package/dist/src/ui/utils/input.test.d.ts +0 -6
  894. package/dist/src/ui/utils/input.test.js +0 -44
  895. package/dist/src/ui/utils/input.test.js.map +0 -1
  896. package/dist/src/ui/utils/markdownUtilities.test.d.ts +0 -6
  897. package/dist/src/ui/utils/markdownUtilities.test.js +0 -42
  898. package/dist/src/ui/utils/markdownUtilities.test.js.map +0 -1
  899. package/dist/src/ui/utils/mouse.test.d.ts +0 -6
  900. package/dist/src/ui/utils/mouse.test.js +0 -136
  901. package/dist/src/ui/utils/mouse.test.js.map +0 -1
  902. package/dist/src/ui/utils/rewindFileOps.test.d.ts +0 -6
  903. package/dist/src/ui/utils/rewindFileOps.test.js +0 -375
  904. package/dist/src/ui/utils/rewindFileOps.test.js.map +0 -1
  905. package/dist/src/ui/utils/terminalCapabilityManager.test.d.ts +0 -6
  906. package/dist/src/ui/utils/terminalCapabilityManager.test.js +0 -220
  907. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +0 -1
  908. package/dist/src/ui/utils/terminalSetup.test.d.ts +0 -6
  909. package/dist/src/ui/utils/terminalSetup.test.js +0 -147
  910. package/dist/src/ui/utils/terminalSetup.test.js.map +0 -1
  911. package/dist/src/ui/utils/terminalUtils.test.d.ts +0 -6
  912. package/dist/src/ui/utils/terminalUtils.test.js +0 -40
  913. package/dist/src/ui/utils/terminalUtils.test.js.map +0 -1
  914. package/dist/src/ui/utils/textOutput.test.d.ts +0 -6
  915. package/dist/src/ui/utils/textOutput.test.js +0 -79
  916. package/dist/src/ui/utils/textOutput.test.js.map +0 -1
  917. package/dist/src/ui/utils/textUtils.test.d.ts +0 -6
  918. package/dist/src/ui/utils/textUtils.test.js +0 -168
  919. package/dist/src/ui/utils/textUtils.test.js.map +0 -1
  920. package/dist/src/ui/utils/ui-sizing.test.d.ts +0 -6
  921. package/dist/src/ui/utils/ui-sizing.test.js +0 -38
  922. package/dist/src/ui/utils/ui-sizing.test.js.map +0 -1
  923. package/dist/src/ui/utils/updateCheck.test.d.ts +0 -6
  924. package/dist/src/ui/utils/updateCheck.test.js +0 -134
  925. package/dist/src/ui/utils/updateCheck.test.js.map +0 -1
  926. package/dist/src/utils/agentUtils.test.d.ts +0 -6
  927. package/dist/src/utils/agentUtils.test.js +0 -121
  928. package/dist/src/utils/agentUtils.test.js.map +0 -1
  929. package/dist/src/utils/checks.test.d.ts +0 -6
  930. package/dist/src/utils/checks.test.js +0 -29
  931. package/dist/src/utils/checks.test.js.map +0 -1
  932. package/dist/src/utils/cleanup.test.d.ts +0 -6
  933. package/dist/src/utils/cleanup.test.js +0 -92
  934. package/dist/src/utils/cleanup.test.js.map +0 -1
  935. package/dist/src/utils/commands.test.d.ts +0 -6
  936. package/dist/src/utils/commands.test.js +0 -115
  937. package/dist/src/utils/commands.test.js.map +0 -1
  938. package/dist/src/utils/commentJson.test.d.ts +0 -6
  939. package/dist/src/utils/commentJson.test.js +0 -308
  940. package/dist/src/utils/commentJson.test.js.map +0 -1
  941. package/dist/src/utils/deepMerge.test.d.ts +0 -6
  942. package/dist/src/utils/deepMerge.test.js +0 -201
  943. package/dist/src/utils/deepMerge.test.js.map +0 -1
  944. package/dist/src/utils/dialogScopeUtils.test.d.ts +0 -6
  945. package/dist/src/utils/dialogScopeUtils.test.js +0 -81
  946. package/dist/src/utils/dialogScopeUtils.test.js.map +0 -1
  947. package/dist/src/utils/envVarResolver.test.d.ts +0 -6
  948. package/dist/src/utils/envVarResolver.test.js +0 -221
  949. package/dist/src/utils/envVarResolver.test.js.map +0 -1
  950. package/dist/src/utils/errors.test.d.ts +0 -6
  951. package/dist/src/utils/errors.test.js +0 -435
  952. package/dist/src/utils/errors.test.js.map +0 -1
  953. package/dist/src/utils/events.test.d.ts +0 -6
  954. package/dist/src/utils/events.test.js +0 -24
  955. package/dist/src/utils/events.test.js.map +0 -1
  956. package/dist/src/utils/gitUtils.test.d.ts +0 -6
  957. package/dist/src/utils/gitUtils.test.js +0 -113
  958. package/dist/src/utils/gitUtils.test.js.map +0 -1
  959. package/dist/src/utils/handleAutoUpdate.test.d.ts +0 -6
  960. package/dist/src/utils/handleAutoUpdate.test.js +0 -310
  961. package/dist/src/utils/handleAutoUpdate.test.js.map +0 -1
  962. package/dist/src/utils/installationInfo.test.d.ts +0 -6
  963. package/dist/src/utils/installationInfo.test.js +0 -296
  964. package/dist/src/utils/installationInfo.test.js.map +0 -1
  965. package/dist/src/utils/jsonoutput.test.d.ts +0 -6
  966. package/dist/src/utils/jsonoutput.test.js +0 -74
  967. package/dist/src/utils/jsonoutput.test.js.map +0 -1
  968. package/dist/src/utils/math.test.d.ts +0 -6
  969. package/dist/src/utils/math.test.js +0 -23
  970. package/dist/src/utils/math.test.js.map +0 -1
  971. package/dist/src/utils/persistentState.test.d.ts +0 -6
  972. package/dist/src/utils/persistentState.test.js +0 -68
  973. package/dist/src/utils/persistentState.test.js.map +0 -1
  974. package/dist/src/utils/processUtils.test.d.ts +0 -6
  975. package/dist/src/utils/processUtils.test.js +0 -20
  976. package/dist/src/utils/processUtils.test.js.map +0 -1
  977. package/dist/src/utils/readStdin.test.d.ts +0 -6
  978. package/dist/src/utils/readStdin.test.js +0 -117
  979. package/dist/src/utils/readStdin.test.js.map +0 -1
  980. package/dist/src/utils/readStdin_safety.test.d.ts +0 -6
  981. package/dist/src/utils/readStdin_safety.test.js +0 -68
  982. package/dist/src/utils/readStdin_safety.test.js.map +0 -1
  983. package/dist/src/utils/relaunch.test.d.ts +0 -6
  984. package/dist/src/utils/relaunch.test.js +0 -279
  985. package/dist/src/utils/relaunch.test.js.map +0 -1
  986. package/dist/src/utils/resolvePath.test.d.ts +0 -6
  987. package/dist/src/utils/resolvePath.test.js +0 -34
  988. package/dist/src/utils/resolvePath.test.js.map +0 -1
  989. package/dist/src/utils/sandbox.test.d.ts +0 -6
  990. package/dist/src/utils/sandbox.test.js +0 -314
  991. package/dist/src/utils/sandbox.test.js.map +0 -1
  992. package/dist/src/utils/sandboxUtils.test.d.ts +0 -6
  993. package/dist/src/utils/sandboxUtils.test.js +0 -122
  994. package/dist/src/utils/sandboxUtils.test.js.map +0 -1
  995. package/dist/src/utils/sessionCleanup.integration.test.d.ts +0 -6
  996. package/dist/src/utils/sessionCleanup.integration.test.js +0 -182
  997. package/dist/src/utils/sessionCleanup.integration.test.js.map +0 -1
  998. package/dist/src/utils/sessionCleanup.test.d.ts +0 -6
  999. package/dist/src/utils/sessionCleanup.test.js +0 -1298
  1000. package/dist/src/utils/sessionCleanup.test.js.map +0 -1
  1001. package/dist/src/utils/sessionUtils.test.d.ts +0 -6
  1002. package/dist/src/utils/sessionUtils.test.js +0 -503
  1003. package/dist/src/utils/sessionUtils.test.js.map +0 -1
  1004. package/dist/src/utils/sessions.test.d.ts +0 -6
  1005. package/dist/src/utils/sessions.test.js +0 -581
  1006. package/dist/src/utils/sessions.test.js.map +0 -1
  1007. package/dist/src/utils/settingsUtils.test.d.ts +0 -6
  1008. package/dist/src/utils/settingsUtils.test.js +0 -808
  1009. package/dist/src/utils/settingsUtils.test.js.map +0 -1
  1010. package/dist/src/utils/skillUtils.test.d.ts +0 -6
  1011. package/dist/src/utils/skillUtils.test.js +0 -70
  1012. package/dist/src/utils/skillUtils.test.js.map +0 -1
  1013. package/dist/src/utils/startupWarnings.test.d.ts +0 -6
  1014. package/dist/src/utils/startupWarnings.test.js +0 -61
  1015. package/dist/src/utils/startupWarnings.test.js.map +0 -1
  1016. package/dist/src/utils/updateEventEmitter.test.d.ts +0 -6
  1017. package/dist/src/utils/updateEventEmitter.test.js +0 -18
  1018. package/dist/src/utils/updateEventEmitter.test.js.map +0 -1
  1019. package/dist/src/utils/userStartupWarnings.test.d.ts +0 -6
  1020. package/dist/src/utils/userStartupWarnings.test.js +0 -98
  1021. package/dist/src/utils/userStartupWarnings.test.js.map +0 -1
  1022. package/dist/src/utils/windowTitle.test.d.ts +0 -6
  1023. package/dist/src/utils/windowTitle.test.js +0 -216
  1024. package/dist/src/utils/windowTitle.test.js.map +0 -1
  1025. package/dist/src/validateNonInterActiveAuth.test.d.ts +0 -6
  1026. package/dist/src/validateNonInterActiveAuth.test.js +0 -319
  1027. package/dist/src/validateNonInterActiveAuth.test.js.map +0 -1
  1028. package/dist/src/zed-integration/fileSystemService.test.d.ts +0 -6
  1029. package/dist/src/zed-integration/fileSystemService.test.js +0 -88
  1030. package/dist/src/zed-integration/fileSystemService.test.js.map +0 -1
  1031. package/dist/src/zed-integration/zedIntegration.test.d.ts +0 -6
  1032. package/dist/src/zed-integration/zedIntegration.test.js +0 -625
  1033. package/dist/src/zed-integration/zedIntegration.test.js.map +0 -1
  1034. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,1298 +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, afterEach } from 'vitest';
7
- import * as fs from 'node:fs/promises';
8
- import * as path from 'node:path';
9
- import { SESSION_FILE_PREFIX, debugLogger, } from '@didim365/agent-cli-core';
10
- import { cleanupExpiredSessions } from './sessionCleanup.js';
11
- import { getAllSessionFiles } from './sessionUtils.js';
12
- // Mock the fs module
13
- vi.mock('fs/promises');
14
- vi.mock('./sessionUtils.js', () => ({
15
- getAllSessionFiles: vi.fn(),
16
- }));
17
- const mockFs = vi.mocked(fs);
18
- const mockGetAllSessionFiles = vi.mocked(getAllSessionFiles);
19
- // Create mock config
20
- function createMockConfig(overrides = {}) {
21
- return {
22
- storage: {
23
- getProjectTempDir: vi.fn().mockReturnValue('/tmp/test-project'),
24
- },
25
- getSessionId: vi.fn().mockReturnValue('current123'),
26
- getDebugMode: vi.fn().mockReturnValue(false),
27
- initialize: vi.fn().mockResolvedValue(undefined),
28
- ...overrides,
29
- };
30
- }
31
- // Create test session data
32
- function createTestSessions() {
33
- const now = new Date();
34
- const oneWeekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
35
- const twoWeeksAgo = new Date(now.getTime() - 14 * 24 * 60 * 60 * 1000);
36
- const oneMonthAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
37
- return [
38
- {
39
- id: 'current123',
40
- file: `${SESSION_FILE_PREFIX}2025-01-20T10-30-00-current12`,
41
- fileName: `${SESSION_FILE_PREFIX}2025-01-20T10-30-00-current12.json`,
42
- startTime: now.toISOString(),
43
- lastUpdated: now.toISOString(),
44
- messageCount: 5,
45
- displayName: 'Current session',
46
- firstUserMessage: 'Current session',
47
- isCurrentSession: true,
48
- index: 1,
49
- },
50
- {
51
- id: 'recent456',
52
- file: `${SESSION_FILE_PREFIX}2025-01-18T15-45-00-recent45`,
53
- fileName: `${SESSION_FILE_PREFIX}2025-01-18T15-45-00-recent45.json`,
54
- startTime: oneWeekAgo.toISOString(),
55
- lastUpdated: oneWeekAgo.toISOString(),
56
- messageCount: 10,
57
- displayName: 'Recent session',
58
- firstUserMessage: 'Recent session',
59
- isCurrentSession: false,
60
- index: 2,
61
- },
62
- {
63
- id: 'old789abc',
64
- file: `${SESSION_FILE_PREFIX}2025-01-10T09-15-00-old789ab`,
65
- fileName: `${SESSION_FILE_PREFIX}2025-01-10T09-15-00-old789ab.json`,
66
- startTime: twoWeeksAgo.toISOString(),
67
- lastUpdated: twoWeeksAgo.toISOString(),
68
- messageCount: 3,
69
- displayName: 'Old session',
70
- firstUserMessage: 'Old session',
71
- isCurrentSession: false,
72
- index: 3,
73
- },
74
- {
75
- id: 'ancient12',
76
- file: `${SESSION_FILE_PREFIX}2024-12-25T12-00-00-ancient1`,
77
- fileName: `${SESSION_FILE_PREFIX}2024-12-25T12-00-00-ancient1.json`,
78
- startTime: oneMonthAgo.toISOString(),
79
- lastUpdated: oneMonthAgo.toISOString(),
80
- messageCount: 15,
81
- displayName: 'Ancient session',
82
- firstUserMessage: 'Ancient session',
83
- isCurrentSession: false,
84
- index: 4,
85
- },
86
- ];
87
- }
88
- describe('Session Cleanup', () => {
89
- beforeEach(() => {
90
- vi.clearAllMocks();
91
- vi.spyOn(debugLogger, 'error').mockImplementation(() => { });
92
- vi.spyOn(debugLogger, 'warn').mockImplementation(() => { });
93
- // By default, return all test sessions as valid
94
- const sessions = createTestSessions();
95
- mockGetAllSessionFiles.mockResolvedValue(sessions.map((session) => ({
96
- fileName: session.fileName,
97
- sessionInfo: session,
98
- })));
99
- });
100
- afterEach(() => {
101
- vi.restoreAllMocks();
102
- });
103
- describe('cleanupExpiredSessions', () => {
104
- it('should return early when cleanup is disabled', async () => {
105
- const config = createMockConfig();
106
- const settings = {
107
- general: { sessionRetention: { enabled: false } },
108
- };
109
- const result = await cleanupExpiredSessions(config, settings);
110
- expect(result.disabled).toBe(true);
111
- expect(result.scanned).toBe(0);
112
- expect(result.deleted).toBe(0);
113
- expect(result.skipped).toBe(0);
114
- expect(result.failed).toBe(0);
115
- });
116
- it('should return early when sessionRetention is not configured', async () => {
117
- const config = createMockConfig();
118
- const settings = {};
119
- const result = await cleanupExpiredSessions(config, settings);
120
- expect(result.disabled).toBe(true);
121
- expect(result.scanned).toBe(0);
122
- expect(result.deleted).toBe(0);
123
- });
124
- it('should handle invalid maxAge configuration', async () => {
125
- const config = createMockConfig({
126
- getDebugMode: vi.fn().mockReturnValue(true),
127
- });
128
- const settings = {
129
- general: {
130
- sessionRetention: {
131
- enabled: true,
132
- maxAge: 'invalid-format',
133
- },
134
- },
135
- };
136
- const result = await cleanupExpiredSessions(config, settings);
137
- expect(result.disabled).toBe(true);
138
- expect(result.scanned).toBe(0);
139
- expect(result.deleted).toBe(0);
140
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Session cleanup disabled: Error: Invalid retention period format'));
141
- });
142
- it('should delete sessions older than maxAge', async () => {
143
- const config = createMockConfig();
144
- const settings = {
145
- general: {
146
- sessionRetention: {
147
- enabled: true,
148
- maxAge: '10d', // 10 days
149
- },
150
- },
151
- };
152
- // Mock successful file operations
153
- mockFs.access.mockResolvedValue(undefined);
154
- mockFs.readFile.mockResolvedValue(JSON.stringify({
155
- sessionId: 'test',
156
- messages: [],
157
- startTime: '2025-01-01T00:00:00Z',
158
- lastUpdated: '2025-01-01T00:00:00Z',
159
- }));
160
- mockFs.unlink.mockResolvedValue(undefined);
161
- const result = await cleanupExpiredSessions(config, settings);
162
- expect(result.disabled).toBe(false);
163
- expect(result.scanned).toBe(4);
164
- expect(result.deleted).toBe(2); // Should delete the 2-week-old and 1-month-old sessions
165
- expect(result.skipped).toBe(2); // Current session + recent session should be skipped
166
- expect(result.failed).toBe(0);
167
- });
168
- it('should never delete current session', async () => {
169
- const config = createMockConfig();
170
- const settings = {
171
- general: {
172
- sessionRetention: {
173
- enabled: true,
174
- maxAge: '1d', // Very short retention
175
- },
176
- },
177
- };
178
- // Mock successful file operations
179
- mockFs.access.mockResolvedValue(undefined);
180
- mockFs.readFile.mockResolvedValue(JSON.stringify({
181
- sessionId: 'test',
182
- messages: [],
183
- startTime: '2025-01-01T00:00:00Z',
184
- lastUpdated: '2025-01-01T00:00:00Z',
185
- }));
186
- mockFs.unlink.mockResolvedValue(undefined);
187
- const result = await cleanupExpiredSessions(config, settings);
188
- // Should delete all sessions except the current one
189
- expect(result.disabled).toBe(false);
190
- expect(result.deleted).toBe(3);
191
- // Verify that unlink was never called with the current session file
192
- const unlinkCalls = mockFs.unlink.mock.calls;
193
- const currentSessionPath = path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}2025-01-20T10-30-00-current12.json`);
194
- expect(unlinkCalls.find((call) => call[0] === currentSessionPath)).toBeUndefined();
195
- });
196
- it('should handle count-based retention', async () => {
197
- const config = createMockConfig();
198
- const settings = {
199
- general: {
200
- sessionRetention: {
201
- enabled: true,
202
- maxCount: 2, // Keep only 2 most recent sessions
203
- },
204
- },
205
- };
206
- // Mock successful file operations
207
- mockFs.access.mockResolvedValue(undefined);
208
- mockFs.readFile.mockResolvedValue(JSON.stringify({
209
- sessionId: 'test',
210
- messages: [],
211
- startTime: '2025-01-01T00:00:00Z',
212
- lastUpdated: '2025-01-01T00:00:00Z',
213
- }));
214
- mockFs.unlink.mockResolvedValue(undefined);
215
- const result = await cleanupExpiredSessions(config, settings);
216
- expect(result.disabled).toBe(false);
217
- expect(result.scanned).toBe(4);
218
- expect(result.deleted).toBe(2); // Should delete 2 oldest sessions (after skipping the current one)
219
- expect(result.skipped).toBe(2); // Current session + 1 recent session should be kept
220
- });
221
- it('should handle file system errors gracefully', async () => {
222
- const config = createMockConfig();
223
- const settings = {
224
- general: {
225
- sessionRetention: {
226
- enabled: true,
227
- maxAge: '1d',
228
- },
229
- },
230
- };
231
- // Mock file operations to succeed for access and readFile but fail for unlink
232
- mockFs.access.mockResolvedValue(undefined);
233
- mockFs.readFile.mockResolvedValue(JSON.stringify({
234
- sessionId: 'test',
235
- messages: [],
236
- startTime: '2025-01-01T00:00:00Z',
237
- lastUpdated: '2025-01-01T00:00:00Z',
238
- }));
239
- mockFs.unlink.mockRejectedValue(new Error('Permission denied'));
240
- const result = await cleanupExpiredSessions(config, settings);
241
- expect(result.disabled).toBe(false);
242
- expect(result.scanned).toBe(4);
243
- expect(result.deleted).toBe(0);
244
- expect(result.failed).toBeGreaterThan(0);
245
- });
246
- it('should handle empty sessions directory', async () => {
247
- const config = createMockConfig();
248
- const settings = {
249
- general: {
250
- sessionRetention: {
251
- enabled: true,
252
- maxAge: '30d',
253
- },
254
- },
255
- };
256
- mockGetAllSessionFiles.mockResolvedValue([]);
257
- const result = await cleanupExpiredSessions(config, settings);
258
- expect(result.disabled).toBe(false);
259
- expect(result.scanned).toBe(0);
260
- expect(result.deleted).toBe(0);
261
- expect(result.skipped).toBe(0);
262
- expect(result.failed).toBe(0);
263
- });
264
- it('should handle global errors gracefully', async () => {
265
- const config = createMockConfig();
266
- const settings = {
267
- general: {
268
- sessionRetention: {
269
- enabled: true,
270
- maxAge: '30d',
271
- },
272
- },
273
- };
274
- // Mock getSessionFiles to throw an error
275
- mockGetAllSessionFiles.mockRejectedValue(new Error('Directory access failed'));
276
- const result = await cleanupExpiredSessions(config, settings);
277
- expect(result.disabled).toBe(false);
278
- expect(result.failed).toBe(1);
279
- expect(debugLogger.warn).toHaveBeenCalledWith('Session cleanup failed: Directory access failed');
280
- });
281
- it('should respect minRetention configuration', async () => {
282
- const config = createMockConfig();
283
- const settings = {
284
- general: {
285
- sessionRetention: {
286
- enabled: true,
287
- maxAge: '12h', // Less than 1 day minimum
288
- minRetention: '1d',
289
- },
290
- },
291
- };
292
- const result = await cleanupExpiredSessions(config, settings);
293
- // Should disable cleanup due to minRetention violation
294
- expect(result.disabled).toBe(true);
295
- expect(result.scanned).toBe(0);
296
- expect(result.deleted).toBe(0);
297
- });
298
- it('should log debug information when enabled', async () => {
299
- const config = createMockConfig({
300
- getDebugMode: vi.fn().mockReturnValue(true),
301
- });
302
- const settings = {
303
- general: {
304
- sessionRetention: {
305
- enabled: true,
306
- maxAge: '10d',
307
- },
308
- },
309
- };
310
- // Mock successful file operations
311
- mockFs.access.mockResolvedValue(undefined);
312
- mockFs.readFile.mockResolvedValue(JSON.stringify({
313
- sessionId: 'test',
314
- messages: [],
315
- startTime: '2025-01-01T00:00:00Z',
316
- lastUpdated: '2025-01-01T00:00:00Z',
317
- }));
318
- mockFs.unlink.mockResolvedValue(undefined);
319
- const debugSpy = vi
320
- .spyOn(debugLogger, 'debug')
321
- .mockImplementation(() => { });
322
- await cleanupExpiredSessions(config, settings);
323
- expect(debugSpy).toHaveBeenCalledWith(expect.stringContaining('Session cleanup: deleted'));
324
- expect(debugSpy).toHaveBeenCalledWith(expect.stringContaining('Deleted expired session:'));
325
- debugSpy.mockRestore();
326
- });
327
- });
328
- describe('Specific cleanup scenarios', () => {
329
- it('should delete sessions that exceed the cutoff date', async () => {
330
- const config = createMockConfig();
331
- const settings = {
332
- general: {
333
- sessionRetention: {
334
- enabled: true,
335
- maxAge: '7d', // Keep sessions for 7 days
336
- },
337
- },
338
- };
339
- // Create sessions with specific dates
340
- const now = new Date();
341
- const fiveDaysAgo = new Date(now.getTime() - 5 * 24 * 60 * 60 * 1000);
342
- const eightDaysAgo = new Date(now.getTime() - 8 * 24 * 60 * 60 * 1000);
343
- const fifteenDaysAgo = new Date(now.getTime() - 15 * 24 * 60 * 60 * 1000);
344
- const testSessions = [
345
- {
346
- id: 'current',
347
- file: `${SESSION_FILE_PREFIX}current`,
348
- fileName: `${SESSION_FILE_PREFIX}current.json`,
349
- startTime: now.toISOString(),
350
- lastUpdated: now.toISOString(),
351
- messageCount: 1,
352
- displayName: 'Current',
353
- firstUserMessage: 'Current',
354
- isCurrentSession: true,
355
- index: 1,
356
- },
357
- {
358
- id: 'session5d',
359
- file: `${SESSION_FILE_PREFIX}5d`,
360
- fileName: `${SESSION_FILE_PREFIX}5d.json`,
361
- startTime: fiveDaysAgo.toISOString(),
362
- lastUpdated: fiveDaysAgo.toISOString(),
363
- messageCount: 1,
364
- displayName: '5 days old',
365
- firstUserMessage: '5 days',
366
- isCurrentSession: false,
367
- index: 2,
368
- },
369
- {
370
- id: 'session8d',
371
- file: `${SESSION_FILE_PREFIX}8d`,
372
- fileName: `${SESSION_FILE_PREFIX}8d.json`,
373
- startTime: eightDaysAgo.toISOString(),
374
- lastUpdated: eightDaysAgo.toISOString(),
375
- messageCount: 1,
376
- displayName: '8 days old',
377
- firstUserMessage: '8 days',
378
- isCurrentSession: false,
379
- index: 3,
380
- },
381
- {
382
- id: 'session15d',
383
- file: `${SESSION_FILE_PREFIX}15d`,
384
- fileName: `${SESSION_FILE_PREFIX}15d.json`,
385
- startTime: fifteenDaysAgo.toISOString(),
386
- lastUpdated: fifteenDaysAgo.toISOString(),
387
- messageCount: 1,
388
- displayName: '15 days old',
389
- firstUserMessage: '15 days',
390
- isCurrentSession: false,
391
- index: 4,
392
- },
393
- ];
394
- mockGetAllSessionFiles.mockResolvedValue(testSessions.map((session) => ({
395
- fileName: session.fileName,
396
- sessionInfo: session,
397
- })));
398
- // Mock successful file operations
399
- mockFs.access.mockResolvedValue(undefined);
400
- mockFs.readFile.mockResolvedValue(JSON.stringify({
401
- sessionId: 'test',
402
- messages: [],
403
- startTime: '2025-01-01T00:00:00Z',
404
- lastUpdated: '2025-01-01T00:00:00Z',
405
- }));
406
- mockFs.unlink.mockResolvedValue(undefined);
407
- const result = await cleanupExpiredSessions(config, settings);
408
- // Should delete sessions older than 7 days (8d and 15d sessions)
409
- expect(result.disabled).toBe(false);
410
- expect(result.scanned).toBe(4);
411
- expect(result.deleted).toBe(2);
412
- expect(result.skipped).toBe(2); // Current + 5d session
413
- // Verify which files were deleted
414
- const unlinkCalls = mockFs.unlink.mock.calls.map((call) => call[0]);
415
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}8d.json`));
416
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}15d.json`));
417
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}5d.json`));
418
- });
419
- it('should NOT delete sessions within the cutoff date', async () => {
420
- const config = createMockConfig();
421
- const settings = {
422
- general: {
423
- sessionRetention: {
424
- enabled: true,
425
- maxAge: '14d', // Keep sessions for 14 days
426
- },
427
- },
428
- };
429
- // Create sessions all within the retention period
430
- const now = new Date();
431
- const oneDayAgo = new Date(now.getTime() - 1 * 24 * 60 * 60 * 1000);
432
- const sevenDaysAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
433
- const thirteenDaysAgo = new Date(now.getTime() - 13 * 24 * 60 * 60 * 1000);
434
- const testSessions = [
435
- {
436
- id: 'current',
437
- file: `${SESSION_FILE_PREFIX}current`,
438
- fileName: `${SESSION_FILE_PREFIX}current.json`,
439
- startTime: now.toISOString(),
440
- lastUpdated: now.toISOString(),
441
- messageCount: 1,
442
- displayName: 'Current',
443
- firstUserMessage: 'Current',
444
- isCurrentSession: true,
445
- index: 1,
446
- },
447
- {
448
- id: 'session1d',
449
- file: `${SESSION_FILE_PREFIX}1d`,
450
- fileName: `${SESSION_FILE_PREFIX}1d.json`,
451
- startTime: oneDayAgo.toISOString(),
452
- lastUpdated: oneDayAgo.toISOString(),
453
- messageCount: 1,
454
- displayName: '1 day old',
455
- firstUserMessage: '1 day',
456
- isCurrentSession: false,
457
- index: 2,
458
- },
459
- {
460
- id: 'session7d',
461
- file: `${SESSION_FILE_PREFIX}7d`,
462
- fileName: `${SESSION_FILE_PREFIX}7d.json`,
463
- startTime: sevenDaysAgo.toISOString(),
464
- lastUpdated: sevenDaysAgo.toISOString(),
465
- messageCount: 1,
466
- displayName: '7 days old',
467
- firstUserMessage: '7 days',
468
- isCurrentSession: false,
469
- index: 3,
470
- },
471
- {
472
- id: 'session13d',
473
- file: `${SESSION_FILE_PREFIX}13d`,
474
- fileName: `${SESSION_FILE_PREFIX}13d.json`,
475
- startTime: thirteenDaysAgo.toISOString(),
476
- lastUpdated: thirteenDaysAgo.toISOString(),
477
- messageCount: 1,
478
- displayName: '13 days old',
479
- firstUserMessage: '13 days',
480
- isCurrentSession: false,
481
- index: 4,
482
- },
483
- ];
484
- mockGetAllSessionFiles.mockResolvedValue(testSessions.map((session) => ({
485
- fileName: session.fileName,
486
- sessionInfo: session,
487
- })));
488
- // Mock successful file operations
489
- mockFs.access.mockResolvedValue(undefined);
490
- mockFs.readFile.mockResolvedValue(JSON.stringify({
491
- sessionId: 'test',
492
- messages: [],
493
- startTime: '2025-01-01T00:00:00Z',
494
- lastUpdated: '2025-01-01T00:00:00Z',
495
- }));
496
- mockFs.unlink.mockResolvedValue(undefined);
497
- const result = await cleanupExpiredSessions(config, settings);
498
- // Should NOT delete any sessions as all are within 14 days
499
- expect(result.disabled).toBe(false);
500
- expect(result.scanned).toBe(4);
501
- expect(result.deleted).toBe(0);
502
- expect(result.skipped).toBe(4);
503
- expect(result.failed).toBe(0);
504
- // Verify no files were deleted
505
- expect(mockFs.unlink).not.toHaveBeenCalled();
506
- });
507
- it('should keep N most recent deletable sessions', async () => {
508
- const config = createMockConfig();
509
- const settings = {
510
- general: {
511
- sessionRetention: {
512
- enabled: true,
513
- maxCount: 3, // Keep only 3 most recent sessions
514
- },
515
- },
516
- };
517
- // Create 6 sessions with different timestamps
518
- const now = new Date();
519
- const sessions = [
520
- {
521
- id: 'current',
522
- file: `${SESSION_FILE_PREFIX}current`,
523
- fileName: `${SESSION_FILE_PREFIX}current.json`,
524
- startTime: now.toISOString(),
525
- lastUpdated: now.toISOString(),
526
- messageCount: 1,
527
- displayName: 'Current (newest)',
528
- firstUserMessage: 'Current',
529
- isCurrentSession: true,
530
- index: 1,
531
- },
532
- ];
533
- // Add 5 more sessions with decreasing timestamps
534
- for (let i = 1; i <= 5; i++) {
535
- const daysAgo = new Date(now.getTime() - i * 24 * 60 * 60 * 1000);
536
- sessions.push({
537
- id: `session${i}`,
538
- file: `${SESSION_FILE_PREFIX}${i}d`,
539
- fileName: `${SESSION_FILE_PREFIX}${i}d.json`,
540
- startTime: daysAgo.toISOString(),
541
- lastUpdated: daysAgo.toISOString(),
542
- messageCount: 1,
543
- displayName: `${i} days old`,
544
- firstUserMessage: `${i} days`,
545
- isCurrentSession: false,
546
- index: i + 1,
547
- });
548
- }
549
- mockGetAllSessionFiles.mockResolvedValue(sessions.map((session) => ({
550
- fileName: session.fileName,
551
- sessionInfo: session,
552
- })));
553
- // Mock successful file operations
554
- mockFs.access.mockResolvedValue(undefined);
555
- mockFs.readFile.mockResolvedValue(JSON.stringify({
556
- sessionId: 'test',
557
- messages: [],
558
- startTime: '2025-01-01T00:00:00Z',
559
- lastUpdated: '2025-01-01T00:00:00Z',
560
- }));
561
- mockFs.unlink.mockResolvedValue(undefined);
562
- const result = await cleanupExpiredSessions(config, settings);
563
- // Should keep current + 2 most recent (1d and 2d), delete 3d, 4d, 5d
564
- expect(result.disabled).toBe(false);
565
- expect(result.scanned).toBe(6);
566
- expect(result.deleted).toBe(3);
567
- expect(result.skipped).toBe(3);
568
- // Verify which files were deleted (should be the 3 oldest)
569
- const unlinkCalls = mockFs.unlink.mock.calls.map((call) => call[0]);
570
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}3d.json`));
571
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}4d.json`));
572
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}5d.json`));
573
- // Verify which files were NOT deleted
574
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}current.json`));
575
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}1d.json`));
576
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}2d.json`));
577
- });
578
- it('should handle combined maxAge and maxCount retention (most restrictive wins)', async () => {
579
- const config = createMockConfig();
580
- const settings = {
581
- general: {
582
- sessionRetention: {
583
- enabled: true,
584
- maxAge: '10d', // Keep sessions for 10 days
585
- maxCount: 2, // But also keep only 2 most recent
586
- },
587
- },
588
- };
589
- // Create sessions where maxCount is more restrictive
590
- const now = new Date();
591
- const threeDaysAgo = new Date(now.getTime() - 3 * 24 * 60 * 60 * 1000);
592
- const fiveDaysAgo = new Date(now.getTime() - 5 * 24 * 60 * 60 * 1000);
593
- const sevenDaysAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
594
- const twelveDaysAgo = new Date(now.getTime() - 12 * 24 * 60 * 60 * 1000);
595
- const testSessions = [
596
- {
597
- id: 'current',
598
- file: `${SESSION_FILE_PREFIX}current`,
599
- fileName: `${SESSION_FILE_PREFIX}current.json`,
600
- startTime: now.toISOString(),
601
- lastUpdated: now.toISOString(),
602
- messageCount: 1,
603
- displayName: 'Current',
604
- firstUserMessage: 'Current',
605
- isCurrentSession: true,
606
- index: 1,
607
- },
608
- {
609
- id: 'session3d',
610
- file: `${SESSION_FILE_PREFIX}3d`,
611
- fileName: `${SESSION_FILE_PREFIX}3d.json`,
612
- startTime: threeDaysAgo.toISOString(),
613
- lastUpdated: threeDaysAgo.toISOString(),
614
- messageCount: 1,
615
- displayName: '3 days old',
616
- firstUserMessage: '3 days',
617
- isCurrentSession: false,
618
- index: 2,
619
- },
620
- {
621
- id: 'session5d',
622
- file: `${SESSION_FILE_PREFIX}5d`,
623
- fileName: `${SESSION_FILE_PREFIX}5d.json`,
624
- startTime: fiveDaysAgo.toISOString(),
625
- lastUpdated: fiveDaysAgo.toISOString(),
626
- messageCount: 1,
627
- displayName: '5 days old',
628
- firstUserMessage: '5 days',
629
- isCurrentSession: false,
630
- index: 3,
631
- },
632
- {
633
- id: 'session7d',
634
- file: `${SESSION_FILE_PREFIX}7d`,
635
- fileName: `${SESSION_FILE_PREFIX}7d.json`,
636
- startTime: sevenDaysAgo.toISOString(),
637
- lastUpdated: sevenDaysAgo.toISOString(),
638
- messageCount: 1,
639
- displayName: '7 days old',
640
- firstUserMessage: '7 days',
641
- isCurrentSession: false,
642
- index: 4,
643
- },
644
- {
645
- id: 'session12d',
646
- file: `${SESSION_FILE_PREFIX}12d`,
647
- fileName: `${SESSION_FILE_PREFIX}12d.json`,
648
- startTime: twelveDaysAgo.toISOString(),
649
- lastUpdated: twelveDaysAgo.toISOString(),
650
- messageCount: 1,
651
- displayName: '12 days old',
652
- firstUserMessage: '12 days',
653
- isCurrentSession: false,
654
- index: 5,
655
- },
656
- ];
657
- mockGetAllSessionFiles.mockResolvedValue(testSessions.map((session) => ({
658
- fileName: session.fileName,
659
- sessionInfo: session,
660
- })));
661
- // Mock successful file operations
662
- mockFs.access.mockResolvedValue(undefined);
663
- mockFs.readFile.mockResolvedValue(JSON.stringify({
664
- sessionId: 'test',
665
- messages: [],
666
- startTime: '2025-01-01T00:00:00Z',
667
- lastUpdated: '2025-01-01T00:00:00Z',
668
- }));
669
- mockFs.unlink.mockResolvedValue(undefined);
670
- const result = await cleanupExpiredSessions(config, settings);
671
- // Should delete:
672
- // - session12d (exceeds maxAge of 10d)
673
- // - session7d and session5d (exceed maxCount of 2, keeping current + 3d)
674
- expect(result.disabled).toBe(false);
675
- expect(result.scanned).toBe(5);
676
- expect(result.deleted).toBe(3);
677
- expect(result.skipped).toBe(2); // Current + 3d session
678
- // Verify which files were deleted
679
- const unlinkCalls = mockFs.unlink.mock.calls.map((call) => call[0]);
680
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}5d.json`));
681
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}7d.json`));
682
- expect(unlinkCalls).toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}12d.json`));
683
- // Verify which files were NOT deleted
684
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}current.json`));
685
- expect(unlinkCalls).not.toContain(path.join('/tmp/test-project', 'chats', `${SESSION_FILE_PREFIX}3d.json`));
686
- });
687
- });
688
- describe('parseRetentionPeriod format validation', () => {
689
- // Test all supported formats
690
- it.each([
691
- ['1h', 60 * 60 * 1000],
692
- ['24h', 24 * 60 * 60 * 1000],
693
- ['168h', 168 * 60 * 60 * 1000],
694
- ['1d', 24 * 60 * 60 * 1000],
695
- ['7d', 7 * 24 * 60 * 60 * 1000],
696
- ['30d', 30 * 24 * 60 * 60 * 1000],
697
- ['365d', 365 * 24 * 60 * 60 * 1000],
698
- ['1w', 7 * 24 * 60 * 60 * 1000],
699
- ['2w', 14 * 24 * 60 * 60 * 1000],
700
- ['4w', 28 * 24 * 60 * 60 * 1000],
701
- ['52w', 364 * 24 * 60 * 60 * 1000],
702
- ['1m', 30 * 24 * 60 * 60 * 1000],
703
- ['3m', 90 * 24 * 60 * 60 * 1000],
704
- ['6m', 180 * 24 * 60 * 60 * 1000],
705
- ['12m', 360 * 24 * 60 * 60 * 1000],
706
- ])('should correctly parse valid format %s', async (input) => {
707
- const config = createMockConfig();
708
- const settings = {
709
- general: {
710
- sessionRetention: {
711
- enabled: true,
712
- maxAge: input,
713
- // Set minRetention to 1h to allow testing of hour-based maxAge values
714
- minRetention: '1h',
715
- },
716
- },
717
- };
718
- mockGetAllSessionFiles.mockResolvedValue([]);
719
- // If it parses correctly, cleanup should proceed without error
720
- const result = await cleanupExpiredSessions(config, settings);
721
- expect(result.disabled).toBe(false);
722
- expect(result.failed).toBe(0);
723
- });
724
- // Test invalid formats
725
- it.each([
726
- '30', // Missing unit
727
- '30x', // Invalid unit
728
- 'd', // No number
729
- '1.5d', // Decimal not supported
730
- '-5d', // Negative number
731
- '1 d', // Space in format
732
- '1dd', // Double unit
733
- 'abc', // Non-numeric
734
- '30s', // Unsupported unit (seconds)
735
- '30y', // Unsupported unit (years)
736
- '0d', // Zero value (technically valid regex but semantically invalid)
737
- ])('should reject invalid format %s', async (input) => {
738
- const config = createMockConfig({
739
- getDebugMode: vi.fn().mockReturnValue(true),
740
- });
741
- const settings = {
742
- general: {
743
- sessionRetention: {
744
- enabled: true,
745
- maxAge: input,
746
- },
747
- },
748
- };
749
- const result = await cleanupExpiredSessions(config, settings);
750
- expect(result.disabled).toBe(true);
751
- expect(result.scanned).toBe(0);
752
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining(input === '0d'
753
- ? 'Invalid retention period: 0d. Value must be greater than 0'
754
- : `Invalid retention period format: ${input}`));
755
- });
756
- // Test special case - empty string
757
- it('should reject empty string', async () => {
758
- const config = createMockConfig({
759
- getDebugMode: vi.fn().mockReturnValue(true),
760
- });
761
- const settings = {
762
- general: {
763
- sessionRetention: {
764
- enabled: true,
765
- maxAge: '',
766
- },
767
- },
768
- };
769
- const result = await cleanupExpiredSessions(config, settings);
770
- expect(result.disabled).toBe(true);
771
- expect(result.scanned).toBe(0);
772
- // Empty string means no valid retention method specified
773
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Either maxAge or maxCount must be specified'));
774
- });
775
- // Test edge cases
776
- it('should handle very large numbers', async () => {
777
- const config = createMockConfig();
778
- const settings = {
779
- general: {
780
- sessionRetention: {
781
- enabled: true,
782
- maxAge: '9999d', // Very large number
783
- },
784
- },
785
- };
786
- mockGetAllSessionFiles.mockResolvedValue([]);
787
- const result = await cleanupExpiredSessions(config, settings);
788
- expect(result.disabled).toBe(false);
789
- expect(result.failed).toBe(0);
790
- });
791
- it('should validate minRetention format', async () => {
792
- const config = createMockConfig({
793
- getDebugMode: vi.fn().mockReturnValue(true),
794
- });
795
- const settings = {
796
- general: {
797
- sessionRetention: {
798
- enabled: true,
799
- maxAge: '5d',
800
- minRetention: 'invalid-format', // Invalid minRetention
801
- },
802
- },
803
- };
804
- mockGetAllSessionFiles.mockResolvedValue([]);
805
- // Should fall back to default minRetention and proceed
806
- const result = await cleanupExpiredSessions(config, settings);
807
- // Since maxAge (5d) > default minRetention (1d), this should succeed
808
- expect(result.disabled).toBe(false);
809
- expect(result.failed).toBe(0);
810
- });
811
- });
812
- describe('Configuration validation', () => {
813
- it('should require either maxAge or maxCount', async () => {
814
- const config = createMockConfig({
815
- getDebugMode: vi.fn().mockReturnValue(true),
816
- });
817
- const settings = {
818
- general: {
819
- sessionRetention: {
820
- enabled: true,
821
- // Neither maxAge nor maxCount specified
822
- },
823
- },
824
- };
825
- const result = await cleanupExpiredSessions(config, settings);
826
- expect(result.disabled).toBe(true);
827
- expect(result.scanned).toBe(0);
828
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Either maxAge or maxCount must be specified'));
829
- });
830
- it('should validate maxCount range', async () => {
831
- const config = createMockConfig({
832
- getDebugMode: vi.fn().mockReturnValue(true),
833
- });
834
- const settings = {
835
- general: {
836
- sessionRetention: {
837
- enabled: true,
838
- maxCount: 0, // Invalid count
839
- },
840
- },
841
- };
842
- const result = await cleanupExpiredSessions(config, settings);
843
- expect(result.disabled).toBe(true);
844
- expect(result.scanned).toBe(0);
845
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('maxCount must be at least 1'));
846
- });
847
- describe('maxAge format validation', () => {
848
- it('should reject invalid maxAge format - no unit', async () => {
849
- const config = createMockConfig({
850
- getDebugMode: vi.fn().mockReturnValue(true),
851
- });
852
- const settings = {
853
- general: {
854
- sessionRetention: {
855
- enabled: true,
856
- maxAge: '30', // Missing unit
857
- },
858
- },
859
- };
860
- const result = await cleanupExpiredSessions(config, settings);
861
- expect(result.disabled).toBe(true);
862
- expect(result.scanned).toBe(0);
863
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format: 30'));
864
- });
865
- it('should reject invalid maxAge format - invalid unit', async () => {
866
- const config = createMockConfig({
867
- getDebugMode: vi.fn().mockReturnValue(true),
868
- });
869
- const settings = {
870
- general: {
871
- sessionRetention: {
872
- enabled: true,
873
- maxAge: '30x', // Invalid unit 'x'
874
- },
875
- },
876
- };
877
- const result = await cleanupExpiredSessions(config, settings);
878
- expect(result.disabled).toBe(true);
879
- expect(result.scanned).toBe(0);
880
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format: 30x'));
881
- });
882
- it('should reject invalid maxAge format - no number', async () => {
883
- const config = createMockConfig({
884
- getDebugMode: vi.fn().mockReturnValue(true),
885
- });
886
- const settings = {
887
- general: {
888
- sessionRetention: {
889
- enabled: true,
890
- maxAge: 'd', // No number
891
- },
892
- },
893
- };
894
- const result = await cleanupExpiredSessions(config, settings);
895
- expect(result.disabled).toBe(true);
896
- expect(result.scanned).toBe(0);
897
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format: d'));
898
- });
899
- it('should reject invalid maxAge format - decimal number', async () => {
900
- const config = createMockConfig({
901
- getDebugMode: vi.fn().mockReturnValue(true),
902
- });
903
- const settings = {
904
- general: {
905
- sessionRetention: {
906
- enabled: true,
907
- maxAge: '1.5d', // Decimal not supported
908
- },
909
- },
910
- };
911
- const result = await cleanupExpiredSessions(config, settings);
912
- expect(result.disabled).toBe(true);
913
- expect(result.scanned).toBe(0);
914
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format: 1.5d'));
915
- });
916
- it('should reject invalid maxAge format - negative number', async () => {
917
- const config = createMockConfig({
918
- getDebugMode: vi.fn().mockReturnValue(true),
919
- });
920
- const settings = {
921
- general: {
922
- sessionRetention: {
923
- enabled: true,
924
- maxAge: '-5d', // Negative not allowed
925
- },
926
- },
927
- };
928
- const result = await cleanupExpiredSessions(config, settings);
929
- expect(result.disabled).toBe(true);
930
- expect(result.scanned).toBe(0);
931
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format: -5d'));
932
- });
933
- it('should accept valid maxAge format - hours', async () => {
934
- const config = createMockConfig();
935
- const settings = {
936
- general: {
937
- sessionRetention: {
938
- enabled: true,
939
- maxAge: '48h', // Valid: 48 hours
940
- maxCount: 10, // Need at least one valid retention method
941
- },
942
- },
943
- };
944
- mockGetAllSessionFiles.mockResolvedValue([]);
945
- const result = await cleanupExpiredSessions(config, settings);
946
- // Should not reject the configuration
947
- expect(result.disabled).toBe(false);
948
- expect(result.scanned).toBe(0);
949
- expect(result.failed).toBe(0);
950
- });
951
- it('should accept valid maxAge format - days', async () => {
952
- const config = createMockConfig();
953
- const settings = {
954
- general: {
955
- sessionRetention: {
956
- enabled: true,
957
- maxAge: '7d', // Valid: 7 days
958
- },
959
- },
960
- };
961
- mockGetAllSessionFiles.mockResolvedValue([]);
962
- const result = await cleanupExpiredSessions(config, settings);
963
- // Should not reject the configuration
964
- expect(result.disabled).toBe(false);
965
- expect(result.scanned).toBe(0);
966
- expect(result.failed).toBe(0);
967
- });
968
- it('should accept valid maxAge format - weeks', async () => {
969
- const config = createMockConfig();
970
- const settings = {
971
- general: {
972
- sessionRetention: {
973
- enabled: true,
974
- maxAge: '2w', // Valid: 2 weeks
975
- },
976
- },
977
- };
978
- mockGetAllSessionFiles.mockResolvedValue([]);
979
- const result = await cleanupExpiredSessions(config, settings);
980
- // Should not reject the configuration
981
- expect(result.disabled).toBe(false);
982
- expect(result.scanned).toBe(0);
983
- expect(result.failed).toBe(0);
984
- });
985
- it('should accept valid maxAge format - months', async () => {
986
- const config = createMockConfig();
987
- const settings = {
988
- general: {
989
- sessionRetention: {
990
- enabled: true,
991
- maxAge: '3m', // Valid: 3 months
992
- },
993
- },
994
- };
995
- mockGetAllSessionFiles.mockResolvedValue([]);
996
- const result = await cleanupExpiredSessions(config, settings);
997
- // Should not reject the configuration
998
- expect(result.disabled).toBe(false);
999
- expect(result.scanned).toBe(0);
1000
- expect(result.failed).toBe(0);
1001
- });
1002
- });
1003
- describe('minRetention validation', () => {
1004
- it('should reject maxAge less than default minRetention (1d)', async () => {
1005
- const config = createMockConfig({
1006
- getDebugMode: vi.fn().mockReturnValue(true),
1007
- });
1008
- const settings = {
1009
- general: {
1010
- sessionRetention: {
1011
- enabled: true,
1012
- maxAge: '12h', // Less than default 1d minRetention
1013
- },
1014
- },
1015
- };
1016
- const result = await cleanupExpiredSessions(config, settings);
1017
- expect(result.disabled).toBe(true);
1018
- expect(result.scanned).toBe(0);
1019
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('maxAge cannot be less than minRetention (1d)'));
1020
- });
1021
- it('should reject maxAge less than custom minRetention', async () => {
1022
- const config = createMockConfig({
1023
- getDebugMode: vi.fn().mockReturnValue(true),
1024
- });
1025
- const settings = {
1026
- general: {
1027
- sessionRetention: {
1028
- enabled: true,
1029
- maxAge: '2d',
1030
- minRetention: '3d', // maxAge < minRetention
1031
- },
1032
- },
1033
- };
1034
- const result = await cleanupExpiredSessions(config, settings);
1035
- expect(result.disabled).toBe(true);
1036
- expect(result.scanned).toBe(0);
1037
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('maxAge cannot be less than minRetention (3d)'));
1038
- });
1039
- it('should accept maxAge equal to minRetention', async () => {
1040
- const config = createMockConfig();
1041
- const settings = {
1042
- general: {
1043
- sessionRetention: {
1044
- enabled: true,
1045
- maxAge: '2d',
1046
- minRetention: '2d', // maxAge == minRetention (edge case)
1047
- },
1048
- },
1049
- };
1050
- mockGetAllSessionFiles.mockResolvedValue([]);
1051
- const result = await cleanupExpiredSessions(config, settings);
1052
- // Should not reject the configuration
1053
- expect(result.disabled).toBe(false);
1054
- expect(result.scanned).toBe(0);
1055
- expect(result.failed).toBe(0);
1056
- });
1057
- it('should accept maxAge greater than minRetention', async () => {
1058
- const config = createMockConfig();
1059
- const settings = {
1060
- general: {
1061
- sessionRetention: {
1062
- enabled: true,
1063
- maxAge: '7d',
1064
- minRetention: '2d', // maxAge > minRetention
1065
- },
1066
- },
1067
- };
1068
- mockGetAllSessionFiles.mockResolvedValue([]);
1069
- const result = await cleanupExpiredSessions(config, settings);
1070
- // Should not reject the configuration
1071
- expect(result.disabled).toBe(false);
1072
- expect(result.scanned).toBe(0);
1073
- expect(result.failed).toBe(0);
1074
- });
1075
- it('should handle invalid minRetention format gracefully', async () => {
1076
- const config = createMockConfig({
1077
- getDebugMode: vi.fn().mockReturnValue(true),
1078
- });
1079
- const settings = {
1080
- general: {
1081
- sessionRetention: {
1082
- enabled: true,
1083
- maxAge: '5d',
1084
- minRetention: 'invalid', // Invalid format
1085
- },
1086
- },
1087
- };
1088
- mockGetAllSessionFiles.mockResolvedValue([]);
1089
- // When minRetention is invalid, it should default to 1d
1090
- // Since maxAge (5d) > default minRetention (1d), this should be valid
1091
- const result = await cleanupExpiredSessions(config, settings);
1092
- // Should not reject due to minRetention (falls back to default)
1093
- expect(result.disabled).toBe(false);
1094
- expect(result.scanned).toBe(0);
1095
- expect(result.failed).toBe(0);
1096
- });
1097
- });
1098
- describe('maxCount boundary validation', () => {
1099
- it('should accept maxCount = 1 (minimum valid)', async () => {
1100
- const config = createMockConfig();
1101
- const settings = {
1102
- general: {
1103
- sessionRetention: {
1104
- enabled: true,
1105
- maxCount: 1, // Minimum valid value
1106
- },
1107
- },
1108
- };
1109
- mockGetAllSessionFiles.mockResolvedValue([]);
1110
- const result = await cleanupExpiredSessions(config, settings);
1111
- // Should accept the configuration
1112
- expect(result.disabled).toBe(false);
1113
- expect(result.scanned).toBe(0);
1114
- expect(result.failed).toBe(0);
1115
- });
1116
- it('should accept maxCount = 1000 (maximum valid)', async () => {
1117
- const config = createMockConfig();
1118
- const settings = {
1119
- general: {
1120
- sessionRetention: {
1121
- enabled: true,
1122
- maxCount: 1000, // Maximum valid value
1123
- },
1124
- },
1125
- };
1126
- mockGetAllSessionFiles.mockResolvedValue([]);
1127
- const result = await cleanupExpiredSessions(config, settings);
1128
- // Should accept the configuration
1129
- expect(result.disabled).toBe(false);
1130
- expect(result.scanned).toBe(0);
1131
- expect(result.failed).toBe(0);
1132
- });
1133
- it('should reject negative maxCount', async () => {
1134
- const config = createMockConfig({
1135
- getDebugMode: vi.fn().mockReturnValue(true),
1136
- });
1137
- const settings = {
1138
- general: {
1139
- sessionRetention: {
1140
- enabled: true,
1141
- maxCount: -1, // Negative value
1142
- },
1143
- },
1144
- };
1145
- const result = await cleanupExpiredSessions(config, settings);
1146
- expect(result.disabled).toBe(true);
1147
- expect(result.scanned).toBe(0);
1148
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('maxCount must be at least 1'));
1149
- });
1150
- it('should accept valid maxCount in normal range', async () => {
1151
- const config = createMockConfig();
1152
- const settings = {
1153
- general: {
1154
- sessionRetention: {
1155
- enabled: true,
1156
- maxCount: 50, // Normal valid value
1157
- },
1158
- },
1159
- };
1160
- mockGetAllSessionFiles.mockResolvedValue([]);
1161
- const result = await cleanupExpiredSessions(config, settings);
1162
- // Should accept the configuration
1163
- expect(result.disabled).toBe(false);
1164
- expect(result.scanned).toBe(0);
1165
- expect(result.failed).toBe(0);
1166
- });
1167
- });
1168
- describe('combined configuration validation', () => {
1169
- it('should accept valid maxAge and maxCount together', async () => {
1170
- const config = createMockConfig();
1171
- const settings = {
1172
- general: {
1173
- sessionRetention: {
1174
- enabled: true,
1175
- maxAge: '30d',
1176
- maxCount: 10,
1177
- },
1178
- },
1179
- };
1180
- mockGetAllSessionFiles.mockResolvedValue([]);
1181
- const result = await cleanupExpiredSessions(config, settings);
1182
- // Should accept the configuration
1183
- expect(result.disabled).toBe(false);
1184
- expect(result.scanned).toBe(0);
1185
- expect(result.failed).toBe(0);
1186
- });
1187
- it('should reject if both maxAge and maxCount are invalid', async () => {
1188
- const config = createMockConfig({
1189
- getDebugMode: vi.fn().mockReturnValue(true),
1190
- });
1191
- const settings = {
1192
- general: {
1193
- sessionRetention: {
1194
- enabled: true,
1195
- maxAge: 'invalid',
1196
- maxCount: 0,
1197
- },
1198
- },
1199
- };
1200
- const result = await cleanupExpiredSessions(config, settings);
1201
- expect(result.disabled).toBe(true);
1202
- expect(result.scanned).toBe(0);
1203
- // Should fail on first validation error (maxAge format)
1204
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format'));
1205
- });
1206
- it('should reject if maxAge is invalid even when maxCount is valid', async () => {
1207
- const config = createMockConfig({
1208
- getDebugMode: vi.fn().mockReturnValue(true),
1209
- });
1210
- const settings = {
1211
- general: {
1212
- sessionRetention: {
1213
- enabled: true,
1214
- maxAge: 'invalid', // Invalid format
1215
- maxCount: 5, // Valid count
1216
- },
1217
- },
1218
- };
1219
- // The validation logic rejects invalid maxAge format even if maxCount is valid
1220
- const result = await cleanupExpiredSessions(config, settings);
1221
- // Should reject due to invalid maxAge format
1222
- expect(result.disabled).toBe(true);
1223
- expect(result.scanned).toBe(0);
1224
- expect(debugLogger.warn).toHaveBeenCalledWith(expect.stringContaining('Invalid retention period format'));
1225
- });
1226
- });
1227
- it('should never throw an exception, always returning a result', async () => {
1228
- const config = createMockConfig();
1229
- const settings = {
1230
- general: {
1231
- sessionRetention: {
1232
- enabled: true,
1233
- maxAge: '7d',
1234
- },
1235
- },
1236
- };
1237
- // Mock getSessionFiles to throw an error
1238
- mockGetAllSessionFiles.mockRejectedValue(new Error('Failed to read directory'));
1239
- // Should not throw, should return a result with errors
1240
- const result = await cleanupExpiredSessions(config, settings);
1241
- expect(result).toBeDefined();
1242
- expect(result.disabled).toBe(false);
1243
- expect(result.failed).toBe(1);
1244
- });
1245
- it('should delete corrupted session files', async () => {
1246
- const config = createMockConfig();
1247
- const settings = {
1248
- general: {
1249
- sessionRetention: {
1250
- enabled: true,
1251
- maxAge: '30d',
1252
- },
1253
- },
1254
- };
1255
- // Mock getAllSessionFiles to return both valid and corrupted files
1256
- const validSession = createTestSessions()[0];
1257
- mockGetAllSessionFiles.mockResolvedValue([
1258
- { fileName: validSession.fileName, sessionInfo: validSession },
1259
- {
1260
- fileName: `${SESSION_FILE_PREFIX}2025-01-02T10-00-00-corrupt1.json`,
1261
- sessionInfo: null,
1262
- },
1263
- {
1264
- fileName: `${SESSION_FILE_PREFIX}2025-01-03T10-00-00-corrupt2.json`,
1265
- sessionInfo: null,
1266
- },
1267
- ]);
1268
- mockFs.unlink.mockResolvedValue(undefined);
1269
- const result = await cleanupExpiredSessions(config, settings);
1270
- expect(result.disabled).toBe(false);
1271
- expect(result.scanned).toBe(3); // 1 valid + 2 corrupted
1272
- expect(result.deleted).toBe(2); // Should delete the 2 corrupted files
1273
- expect(result.skipped).toBe(1); // The valid session is kept
1274
- // Verify corrupted files were deleted
1275
- expect(mockFs.unlink).toHaveBeenCalledWith(expect.stringContaining('corrupt1.json'));
1276
- expect(mockFs.unlink).toHaveBeenCalledWith(expect.stringContaining('corrupt2.json'));
1277
- });
1278
- it('should handle unexpected errors without throwing', async () => {
1279
- const config = createMockConfig();
1280
- const settings = {
1281
- general: {
1282
- sessionRetention: {
1283
- enabled: true,
1284
- maxAge: '7d',
1285
- },
1286
- },
1287
- };
1288
- // Mock getSessionFiles to throw a non-Error object
1289
- mockGetAllSessionFiles.mockRejectedValue('String error');
1290
- // Should not throw, should return a result with errors
1291
- const result = await cleanupExpiredSessions(config, settings);
1292
- expect(result).toBeDefined();
1293
- expect(result.disabled).toBe(false);
1294
- expect(result.failed).toBe(1);
1295
- });
1296
- });
1297
- });
1298
- //# sourceMappingURL=sessionCleanup.test.js.map