fss-link 1.0.50 → 1.0.52

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 (446) hide show
  1. package/README.md +42 -2
  2. package/dist/index.js +0 -0
  3. package/dist/package.json +2 -2
  4. package/dist/src/config/config.d.ts +1 -0
  5. package/dist/src/config/config.js +5 -0
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/config/database-utils.d.ts +185 -0
  8. package/dist/src/config/database-utils.js +295 -0
  9. package/dist/src/config/database-utils.js.map +1 -0
  10. package/dist/src/config/database.d.ts +300 -12
  11. package/dist/src/config/database.js +762 -187
  12. package/dist/src/config/database.js.map +1 -1
  13. package/dist/src/config/databaseBackup.d.ts +114 -0
  14. package/dist/src/config/databaseBackup.js +334 -0
  15. package/dist/src/config/databaseBackup.js.map +1 -0
  16. package/dist/src/config/databaseHealthMonitor.d.ts +86 -0
  17. package/dist/src/config/databaseHealthMonitor.js +180 -0
  18. package/dist/src/config/databaseHealthMonitor.js.map +1 -0
  19. package/dist/src/config/databaseMetrics.d.ts +147 -0
  20. package/dist/src/config/databaseMetrics.js +369 -0
  21. package/dist/src/config/databaseMetrics.js.map +1 -0
  22. package/dist/src/config/databaseMigrations.d.ts +63 -0
  23. package/dist/src/config/databaseMigrations.js +417 -0
  24. package/dist/src/config/databaseMigrations.js.map +1 -0
  25. package/dist/src/config/databasePool.d.ts +70 -0
  26. package/dist/src/config/databasePool.js +193 -0
  27. package/dist/src/config/databasePool.js.map +1 -0
  28. package/dist/src/config/databaseSchemaValidator.d.ts +114 -0
  29. package/dist/src/config/databaseSchemaValidator.js +499 -0
  30. package/dist/src/config/databaseSchemaValidator.js.map +1 -0
  31. package/dist/src/config/providerPersistence.d.ts +7 -0
  32. package/dist/src/config/providerPersistence.js +14 -7
  33. package/dist/src/config/providerPersistence.js.map +1 -1
  34. package/dist/src/config/queryOptimizer.d.ts +127 -0
  35. package/dist/src/config/queryOptimizer.js +309 -0
  36. package/dist/src/config/queryOptimizer.js.map +1 -0
  37. package/dist/src/gemini.js +35 -2
  38. package/dist/src/gemini.js.map +1 -1
  39. package/dist/src/generated/git-commit.d.ts +2 -2
  40. package/dist/src/generated/git-commit.js +2 -2
  41. package/dist/src/ui/utils/updateCheck.js +1 -1
  42. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  43. package/dist/src/utils/installationInfo.js +16 -0
  44. package/dist/src/utils/installationInfo.js.map +1 -1
  45. package/dist/src/utils/installationInfo.test.js +6 -6
  46. package/dist/src/utils/installationInfo.test.js.map +1 -1
  47. package/dist/src/utils/sandbox.js +2 -8
  48. package/dist/src/utils/sandbox.js.map +1 -1
  49. package/dist/src/validateNonInterActiveAuth.js +11 -1
  50. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +2 -2
  53. package/dist/commands/mcp/add.test.ts +0 -122
  54. package/dist/commands/mcp/add.ts +0 -222
  55. package/dist/commands/mcp/list.test.ts +0 -154
  56. package/dist/commands/mcp/list.ts +0 -139
  57. package/dist/commands/mcp/remove.test.ts +0 -69
  58. package/dist/commands/mcp/remove.ts +0 -60
  59. package/dist/commands/mcp.test.ts +0 -55
  60. package/dist/commands/mcp.ts +0 -27
  61. package/dist/config/apiValidation.test.ts +0 -118
  62. package/dist/config/auth.test.ts +0 -79
  63. package/dist/config/auth.ts +0 -100
  64. package/dist/config/config.integration.test.ts +0 -407
  65. package/dist/config/config.test.ts +0 -1952
  66. package/dist/config/config.ts +0 -690
  67. package/dist/config/database.test.ts +0 -96
  68. package/dist/config/database.ts +0 -824
  69. package/dist/config/extension.test.ts +0 -236
  70. package/dist/config/extension.ts +0 -180
  71. package/dist/config/keyBindings.test.ts +0 -62
  72. package/dist/config/keyBindings.ts +0 -184
  73. package/dist/config/modelManager.ts +0 -326
  74. package/dist/config/providerManager.ts +0 -244
  75. package/dist/config/providerPersistence.test.ts +0 -377
  76. package/dist/config/providerPersistence.ts +0 -105
  77. package/dist/config/sandboxConfig.ts +0 -107
  78. package/dist/config/settings.test.ts +0 -1424
  79. package/dist/config/settings.ts +0 -517
  80. package/dist/config/settingsSchema.test.ts +0 -252
  81. package/dist/config/settingsSchema.ts +0 -728
  82. package/dist/config/trustedFolders.test.ts +0 -208
  83. package/dist/config/trustedFolders.ts +0 -167
  84. package/dist/gemini.test.tsx +0 -252
  85. package/dist/gemini.tsx +0 -357
  86. package/dist/generated/git-commit.ts +0 -10
  87. package/dist/index.ts +0 -21
  88. package/dist/nonInteractiveCli.test.ts +0 -276
  89. package/dist/nonInteractiveCli.ts +0 -143
  90. package/dist/patches/is-in-ci.ts +0 -17
  91. package/dist/services/BuiltinCommandLoader.test.ts +0 -127
  92. package/dist/services/BuiltinCommandLoader.ts +0 -95
  93. package/dist/services/CommandService.test.ts +0 -352
  94. package/dist/services/CommandService.ts +0 -103
  95. package/dist/services/FileCommandLoader.test.ts +0 -1002
  96. package/dist/services/FileCommandLoader.ts +0 -289
  97. package/dist/services/McpPromptLoader.ts +0 -231
  98. package/dist/services/SearchEngineConfigProvider.ts +0 -100
  99. package/dist/services/prompt-processors/argumentProcessor.test.ts +0 -41
  100. package/dist/services/prompt-processors/argumentProcessor.ts +0 -23
  101. package/dist/services/prompt-processors/shellProcessor.test.ts +0 -709
  102. package/dist/services/prompt-processors/shellProcessor.ts +0 -248
  103. package/dist/services/prompt-processors/types.ts +0 -44
  104. package/dist/services/types.ts +0 -24
  105. package/dist/src/config/apiValidation.test.d.ts +0 -6
  106. package/dist/src/config/apiValidation.test.js +0 -99
  107. package/dist/src/config/apiValidation.test.js.map +0 -1
  108. package/dist/src/config/database.test.d.ts +0 -6
  109. package/dist/src/config/database.test.js +0 -80
  110. package/dist/src/config/database.test.js.map +0 -1
  111. package/dist/src/config/providerManager.d.ts +0 -74
  112. package/dist/src/config/providerManager.js +0 -203
  113. package/dist/src/config/providerManager.js.map +0 -1
  114. package/dist/src/config/providerPersistence.test.d.ts +0 -6
  115. package/dist/src/config/providerPersistence.test.js +0 -283
  116. package/dist/src/config/providerPersistence.test.js.map +0 -1
  117. package/dist/src/ui/components/GeminiKeyDialog.d.ts +0 -11
  118. package/dist/src/ui/components/GeminiKeyDialog.js +0 -156
  119. package/dist/src/ui/components/GeminiKeyDialog.js.map +0 -1
  120. package/dist/src/ui/components/OpenAIEndpointDialog.d.ts +0 -19
  121. package/dist/src/ui/components/OpenAIEndpointDialog.js +0 -163
  122. package/dist/src/ui/components/OpenAIEndpointDialog.js.map +0 -1
  123. package/dist/test-setup.ts +0 -12
  124. package/dist/test-utils/customMatchers.ts +0 -65
  125. package/dist/test-utils/mockCommandContext.test.ts +0 -62
  126. package/dist/test-utils/mockCommandContext.ts +0 -105
  127. package/dist/test-utils/render.tsx +0 -18
  128. package/dist/ui/App.test.tsx +0 -2181
  129. package/dist/ui/App.tsx +0 -1344
  130. package/dist/ui/IdeIntegrationNudge.tsx +0 -98
  131. package/dist/ui/__snapshots__/App.test.tsx.snap +0 -124
  132. package/dist/ui/colors.ts +0 -56
  133. package/dist/ui/commands/aboutCommand.test.ts +0 -153
  134. package/dist/ui/commands/aboutCommand.ts +0 -49
  135. package/dist/ui/commands/authCommand.test.ts +0 -36
  136. package/dist/ui/commands/authCommand.ts +0 -17
  137. package/dist/ui/commands/bugCommand.test.ts +0 -114
  138. package/dist/ui/commands/bugCommand.ts +0 -92
  139. package/dist/ui/commands/chatCommand.test.ts +0 -414
  140. package/dist/ui/commands/chatCommand.ts +0 -280
  141. package/dist/ui/commands/clearCommand.test.ts +0 -100
  142. package/dist/ui/commands/clearCommand.ts +0 -29
  143. package/dist/ui/commands/compressCommand.test.ts +0 -129
  144. package/dist/ui/commands/compressCommand.ts +0 -78
  145. package/dist/ui/commands/contextCommand.ts +0 -132
  146. package/dist/ui/commands/copyCommand.test.ts +0 -296
  147. package/dist/ui/commands/copyCommand.ts +0 -67
  148. package/dist/ui/commands/corgiCommand.test.ts +0 -34
  149. package/dist/ui/commands/corgiCommand.ts +0 -16
  150. package/dist/ui/commands/directoryCommand.test.tsx +0 -185
  151. package/dist/ui/commands/directoryCommand.tsx +0 -179
  152. package/dist/ui/commands/docsCommand.test.ts +0 -99
  153. package/dist/ui/commands/docsCommand.ts +0 -42
  154. package/dist/ui/commands/editorCommand.test.ts +0 -30
  155. package/dist/ui/commands/editorCommand.ts +0 -21
  156. package/dist/ui/commands/extensionsCommand.test.ts +0 -67
  157. package/dist/ui/commands/extensionsCommand.ts +0 -46
  158. package/dist/ui/commands/helpCommand.test.ts +0 -52
  159. package/dist/ui/commands/helpCommand.ts +0 -23
  160. package/dist/ui/commands/ideCommand.test.ts +0 -255
  161. package/dist/ui/commands/ideCommand.ts +0 -283
  162. package/dist/ui/commands/initCommand.test.ts +0 -127
  163. package/dist/ui/commands/initCommand.ts +0 -117
  164. package/dist/ui/commands/mcpCommand.test.ts +0 -1057
  165. package/dist/ui/commands/mcpCommand.ts +0 -531
  166. package/dist/ui/commands/memoryCommand.test.ts +0 -344
  167. package/dist/ui/commands/memoryCommand.ts +0 -305
  168. package/dist/ui/commands/privacyCommand.test.ts +0 -38
  169. package/dist/ui/commands/privacyCommand.ts +0 -17
  170. package/dist/ui/commands/quitCommand.test.ts +0 -55
  171. package/dist/ui/commands/quitCommand.ts +0 -36
  172. package/dist/ui/commands/restoreCommand.test.ts +0 -250
  173. package/dist/ui/commands/restoreCommand.ts +0 -157
  174. package/dist/ui/commands/searchEngineSetupCommand.ts +0 -18
  175. package/dist/ui/commands/settingsCommand.test.ts +0 -36
  176. package/dist/ui/commands/settingsCommand.ts +0 -17
  177. package/dist/ui/commands/setupGithubCommand.test.ts +0 -238
  178. package/dist/ui/commands/setupGithubCommand.ts +0 -212
  179. package/dist/ui/commands/speakCommand.ts +0 -175
  180. package/dist/ui/commands/statsCommand.test.ts +0 -78
  181. package/dist/ui/commands/statsCommand.ts +0 -70
  182. package/dist/ui/commands/terminalSetupCommand.test.ts +0 -85
  183. package/dist/ui/commands/terminalSetupCommand.ts +0 -45
  184. package/dist/ui/commands/themeCommand.test.ts +0 -38
  185. package/dist/ui/commands/themeCommand.ts +0 -17
  186. package/dist/ui/commands/toolsCommand.test.ts +0 -105
  187. package/dist/ui/commands/toolsCommand.ts +0 -71
  188. package/dist/ui/commands/ttsCommand.ts +0 -143
  189. package/dist/ui/commands/types.ts +0 -204
  190. package/dist/ui/commands/vimCommand.ts +0 -25
  191. package/dist/ui/commands/voiceCommand.ts +0 -125
  192. package/dist/ui/components/AboutBox.tsx +0 -133
  193. package/dist/ui/components/AsciiArt.ts +0 -54
  194. package/dist/ui/components/AuthDialog.test.tsx +0 -334
  195. package/dist/ui/components/AuthDialog.tsx +0 -289
  196. package/dist/ui/components/AuthInProgress.tsx +0 -62
  197. package/dist/ui/components/AutoAcceptIndicator.tsx +0 -47
  198. package/dist/ui/components/ConsoleSummaryDisplay.tsx +0 -35
  199. package/dist/ui/components/ContextSummaryDisplay.test.tsx +0 -85
  200. package/dist/ui/components/ContextSummaryDisplay.tsx +0 -120
  201. package/dist/ui/components/ContextUsageDisplay.tsx +0 -77
  202. package/dist/ui/components/DebugProfiler.tsx +0 -36
  203. package/dist/ui/components/DetailedMessagesDisplay.tsx +0 -82
  204. package/dist/ui/components/EditorSettingsDialog.tsx +0 -172
  205. package/dist/ui/components/FolderTrustDialog.test.tsx +0 -36
  206. package/dist/ui/components/FolderTrustDialog.tsx +0 -74
  207. package/dist/ui/components/Footer.test.tsx +0 -159
  208. package/dist/ui/components/Footer.tsx +0 -158
  209. package/dist/ui/components/GeminiKeyDialog.tsx +0 -252
  210. package/dist/ui/components/GeminiRespondingSpinner.tsx +0 -34
  211. package/dist/ui/components/Header.test.tsx +0 -44
  212. package/dist/ui/components/Header.tsx +0 -70
  213. package/dist/ui/components/Help.tsx +0 -174
  214. package/dist/ui/components/HistoryItemDisplay.test.tsx +0 -125
  215. package/dist/ui/components/HistoryItemDisplay.tsx +0 -98
  216. package/dist/ui/components/InputPrompt.test.tsx +0 -1467
  217. package/dist/ui/components/InputPrompt.tsx +0 -641
  218. package/dist/ui/components/LMStudioModelPrompt.tsx +0 -215
  219. package/dist/ui/components/LoadingIndicator.test.tsx +0 -296
  220. package/dist/ui/components/LoadingIndicator.tsx +0 -82
  221. package/dist/ui/components/MemoryUsageDisplay.tsx +0 -36
  222. package/dist/ui/components/ModelStatsDisplay.test.tsx +0 -252
  223. package/dist/ui/components/ModelStatsDisplay.tsx +0 -197
  224. package/dist/ui/components/OllamaModelPrompt.tsx +0 -206
  225. package/dist/ui/components/OpenAIEndpointDialog.tsx +0 -261
  226. package/dist/ui/components/OpenAIKeyPrompt.test.tsx +0 -64
  227. package/dist/ui/components/OpenAIKeyPrompt.tsx +0 -197
  228. package/dist/ui/components/PrepareLabel.tsx +0 -48
  229. package/dist/ui/components/SearchEngineConfigDialog.tsx +0 -280
  230. package/dist/ui/components/SessionSummaryDisplay.test.tsx +0 -75
  231. package/dist/ui/components/SessionSummaryDisplay.tsx +0 -18
  232. package/dist/ui/components/SettingsDialog.test.tsx +0 -865
  233. package/dist/ui/components/SettingsDialog.tsx +0 -753
  234. package/dist/ui/components/ShellConfirmationDialog.test.tsx +0 -53
  235. package/dist/ui/components/ShellConfirmationDialog.tsx +0 -103
  236. package/dist/ui/components/ShellModeIndicator.tsx +0 -18
  237. package/dist/ui/components/ShowMoreLines.tsx +0 -40
  238. package/dist/ui/components/StatsDisplay.test.tsx +0 -401
  239. package/dist/ui/components/StatsDisplay.tsx +0 -273
  240. package/dist/ui/components/SuggestionsDisplay.tsx +0 -102
  241. package/dist/ui/components/ThemeDialog.tsx +0 -310
  242. package/dist/ui/components/Tips.tsx +0 -45
  243. package/dist/ui/components/TodoDisplay.test.tsx +0 -97
  244. package/dist/ui/components/TodoDisplay.tsx +0 -72
  245. package/dist/ui/components/ToolStatsDisplay.test.tsx +0 -180
  246. package/dist/ui/components/ToolStatsDisplay.tsx +0 -208
  247. package/dist/ui/components/UpdateNotification.tsx +0 -23
  248. package/dist/ui/components/WelcomeBackDialog.tsx +0 -290
  249. package/dist/ui/components/__snapshots__/IDEContextDetailDisplay.test.tsx.snap +0 -24
  250. package/dist/ui/components/__snapshots__/ModelStatsDisplay.test.tsx.snap +0 -121
  251. package/dist/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap +0 -30
  252. package/dist/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap +0 -21
  253. package/dist/ui/components/__snapshots__/StatsDisplay.test.tsx.snap +0 -264
  254. package/dist/ui/components/__snapshots__/ToolStatsDisplay.test.tsx.snap +0 -91
  255. package/dist/ui/components/messages/CompressionMessage.tsx +0 -49
  256. package/dist/ui/components/messages/DiffRenderer.test.tsx +0 -365
  257. package/dist/ui/components/messages/DiffRenderer.tsx +0 -358
  258. package/dist/ui/components/messages/ErrorMessage.tsx +0 -31
  259. package/dist/ui/components/messages/GeminiMessage.tsx +0 -43
  260. package/dist/ui/components/messages/GeminiMessageContent.tsx +0 -43
  261. package/dist/ui/components/messages/InfoMessage.tsx +0 -32
  262. package/dist/ui/components/messages/ToolConfirmationMessage.test.tsx +0 -58
  263. package/dist/ui/components/messages/ToolConfirmationMessage.tsx +0 -297
  264. package/dist/ui/components/messages/ToolGroupMessage.tsx +0 -126
  265. package/dist/ui/components/messages/ToolMessage.test.tsx +0 -183
  266. package/dist/ui/components/messages/ToolMessage.tsx +0 -296
  267. package/dist/ui/components/messages/UserMessage.tsx +0 -43
  268. package/dist/ui/components/messages/UserShellMessage.tsx +0 -25
  269. package/dist/ui/components/shared/MaxSizedBox.test.tsx +0 -425
  270. package/dist/ui/components/shared/MaxSizedBox.tsx +0 -624
  271. package/dist/ui/components/shared/RadioButtonSelect.test.tsx +0 -181
  272. package/dist/ui/components/shared/RadioButtonSelect.tsx +0 -234
  273. package/dist/ui/components/shared/__snapshots__/RadioButtonSelect.test.tsx.snap +0 -47
  274. package/dist/ui/components/shared/text-buffer.test.ts +0 -1728
  275. package/dist/ui/components/shared/text-buffer.ts +0 -2227
  276. package/dist/ui/components/shared/vim-buffer-actions.test.ts +0 -1119
  277. package/dist/ui/components/shared/vim-buffer-actions.ts +0 -814
  278. package/dist/ui/constants.ts +0 -17
  279. package/dist/ui/contexts/KeypressContext.test.tsx +0 -391
  280. package/dist/ui/contexts/KeypressContext.tsx +0 -440
  281. package/dist/ui/contexts/OverflowContext.tsx +0 -87
  282. package/dist/ui/contexts/SessionContext.test.tsx +0 -132
  283. package/dist/ui/contexts/SessionContext.tsx +0 -143
  284. package/dist/ui/contexts/SettingsContext.tsx +0 -20
  285. package/dist/ui/contexts/StreamingContext.tsx +0 -22
  286. package/dist/ui/contexts/VimModeContext.tsx +0 -79
  287. package/dist/ui/editors/editorSettingsManager.ts +0 -66
  288. package/dist/ui/hooks/atCommandProcessor.test.ts +0 -1102
  289. package/dist/ui/hooks/atCommandProcessor.ts +0 -485
  290. package/dist/ui/hooks/shellCommandProcessor.test.ts +0 -481
  291. package/dist/ui/hooks/shellCommandProcessor.ts +0 -314
  292. package/dist/ui/hooks/slashCommandProcessor.test.ts +0 -1044
  293. package/dist/ui/hooks/slashCommandProcessor.ts +0 -595
  294. package/dist/ui/hooks/useAtCompletion.test.ts +0 -497
  295. package/dist/ui/hooks/useAtCompletion.ts +0 -244
  296. package/dist/ui/hooks/useAuthCommand.ts +0 -129
  297. package/dist/ui/hooks/useAutoAcceptIndicator.test.ts +0 -300
  298. package/dist/ui/hooks/useAutoAcceptIndicator.ts +0 -52
  299. package/dist/ui/hooks/useBracketedPaste.ts +0 -37
  300. package/dist/ui/hooks/useCommandCompletion.test.ts +0 -518
  301. package/dist/ui/hooks/useCommandCompletion.tsx +0 -238
  302. package/dist/ui/hooks/useCompletion.ts +0 -128
  303. package/dist/ui/hooks/useConsoleMessages.test.ts +0 -147
  304. package/dist/ui/hooks/useConsoleMessages.ts +0 -110
  305. package/dist/ui/hooks/useEditorSettings.test.ts +0 -283
  306. package/dist/ui/hooks/useEditorSettings.ts +0 -75
  307. package/dist/ui/hooks/useFocus.test.ts +0 -119
  308. package/dist/ui/hooks/useFocus.ts +0 -48
  309. package/dist/ui/hooks/useFolderTrust.test.ts +0 -159
  310. package/dist/ui/hooks/useFolderTrust.ts +0 -72
  311. package/dist/ui/hooks/useGeminiStream.test.tsx +0 -1998
  312. package/dist/ui/hooks/useGeminiStream.ts +0 -1017
  313. package/dist/ui/hooks/useGitBranchName.test.ts +0 -280
  314. package/dist/ui/hooks/useGitBranchName.ts +0 -79
  315. package/dist/ui/hooks/useHistoryManager.test.ts +0 -202
  316. package/dist/ui/hooks/useHistoryManager.ts +0 -111
  317. package/dist/ui/hooks/useInputHistory.test.ts +0 -261
  318. package/dist/ui/hooks/useInputHistory.ts +0 -111
  319. package/dist/ui/hooks/useKeypress.test.ts +0 -280
  320. package/dist/ui/hooks/useKeypress.ts +0 -39
  321. package/dist/ui/hooks/useKittyKeyboardProtocol.ts +0 -31
  322. package/dist/ui/hooks/useLoadingIndicator.test.ts +0 -139
  323. package/dist/ui/hooks/useLoadingIndicator.ts +0 -57
  324. package/dist/ui/hooks/useLogger.ts +0 -32
  325. package/dist/ui/hooks/useMessageQueue.test.ts +0 -226
  326. package/dist/ui/hooks/useMessageQueue.ts +0 -69
  327. package/dist/ui/hooks/usePhraseCycler.test.ts +0 -145
  328. package/dist/ui/hooks/usePhraseCycler.ts +0 -198
  329. package/dist/ui/hooks/usePrivacySettings.test.ts +0 -242
  330. package/dist/ui/hooks/usePrivacySettings.ts +0 -150
  331. package/dist/ui/hooks/useReactToolScheduler.ts +0 -309
  332. package/dist/ui/hooks/useRefreshMemoryCommand.ts +0 -7
  333. package/dist/ui/hooks/useReverseSearchCompletion.test.tsx +0 -260
  334. package/dist/ui/hooks/useReverseSearchCompletion.tsx +0 -95
  335. package/dist/ui/hooks/useSettingsCommand.ts +0 -25
  336. package/dist/ui/hooks/useShellHistory.test.ts +0 -219
  337. package/dist/ui/hooks/useShellHistory.ts +0 -133
  338. package/dist/ui/hooks/useShowMemoryCommand.ts +0 -75
  339. package/dist/ui/hooks/useSlashCompletion.test.ts +0 -434
  340. package/dist/ui/hooks/useSlashCompletion.ts +0 -187
  341. package/dist/ui/hooks/useStateAndRef.ts +0 -36
  342. package/dist/ui/hooks/useTerminalSize.ts +0 -32
  343. package/dist/ui/hooks/useThemeCommand.ts +0 -110
  344. package/dist/ui/hooks/useTimer.test.ts +0 -120
  345. package/dist/ui/hooks/useTimer.ts +0 -65
  346. package/dist/ui/hooks/useToolScheduler.test.ts +0 -1123
  347. package/dist/ui/hooks/useWelcomeBack.ts +0 -253
  348. package/dist/ui/hooks/vim.test.ts +0 -1691
  349. package/dist/ui/hooks/vim.ts +0 -784
  350. package/dist/ui/keyMatchers.test.ts +0 -337
  351. package/dist/ui/keyMatchers.ts +0 -105
  352. package/dist/ui/privacy/CloudFreePrivacyNotice.tsx +0 -117
  353. package/dist/ui/privacy/CloudPaidPrivacyNotice.tsx +0 -59
  354. package/dist/ui/privacy/GeminiPrivacyNotice.tsx +0 -62
  355. package/dist/ui/privacy/PrivacyNotice.tsx +0 -42
  356. package/dist/ui/semantic-colors.ts +0 -26
  357. package/dist/ui/themes/ansi-light.ts +0 -150
  358. package/dist/ui/themes/ansi.ts +0 -159
  359. package/dist/ui/themes/atom-one-dark.ts +0 -147
  360. package/dist/ui/themes/ayu-light.ts +0 -139
  361. package/dist/ui/themes/ayu.ts +0 -113
  362. package/dist/ui/themes/color-utils.test.ts +0 -221
  363. package/dist/ui/themes/color-utils.ts +0 -231
  364. package/dist/ui/themes/default-light.ts +0 -108
  365. package/dist/ui/themes/default.ts +0 -151
  366. package/dist/ui/themes/dracula.ts +0 -124
  367. package/dist/ui/themes/fss-code-dark.ts +0 -156
  368. package/dist/ui/themes/fss-dark.ts +0 -113
  369. package/dist/ui/themes/fss-light.ts +0 -139
  370. package/dist/ui/themes/github-dark.ts +0 -147
  371. package/dist/ui/themes/github-light.ts +0 -149
  372. package/dist/ui/themes/googlecode.ts +0 -146
  373. package/dist/ui/themes/no-color.ts +0 -125
  374. package/dist/ui/themes/qwen-dark.ts +0 -118
  375. package/dist/ui/themes/qwen-light.ts +0 -144
  376. package/dist/ui/themes/semantic-tokens.ts +0 -127
  377. package/dist/ui/themes/shades-of-purple.ts +0 -352
  378. package/dist/ui/themes/theme-manager.test.ts +0 -99
  379. package/dist/ui/themes/theme-manager.ts +0 -257
  380. package/dist/ui/themes/theme.test.ts +0 -97
  381. package/dist/ui/themes/theme.ts +0 -451
  382. package/dist/ui/themes/xcode.ts +0 -154
  383. package/dist/ui/types.ts +0 -255
  384. package/dist/ui/utils/CodeColorizer.tsx +0 -217
  385. package/dist/ui/utils/ConsolePatcher.ts +0 -71
  386. package/dist/ui/utils/InlineMarkdownRenderer.tsx +0 -173
  387. package/dist/ui/utils/MarkdownDisplay.test.tsx +0 -244
  388. package/dist/ui/utils/MarkdownDisplay.tsx +0 -415
  389. package/dist/ui/utils/TableRenderer.tsx +0 -159
  390. package/dist/ui/utils/__snapshots__/MarkdownDisplay.test.tsx.snap +0 -93
  391. package/dist/ui/utils/clipboardUtils.test.ts +0 -76
  392. package/dist/ui/utils/clipboardUtils.ts +0 -149
  393. package/dist/ui/utils/commandUtils.test.ts +0 -384
  394. package/dist/ui/utils/commandUtils.ts +0 -106
  395. package/dist/ui/utils/computeStats.test.ts +0 -292
  396. package/dist/ui/utils/computeStats.ts +0 -86
  397. package/dist/ui/utils/displayUtils.test.ts +0 -58
  398. package/dist/ui/utils/displayUtils.ts +0 -32
  399. package/dist/ui/utils/formatters.test.ts +0 -72
  400. package/dist/ui/utils/formatters.ts +0 -63
  401. package/dist/ui/utils/isNarrowWidth.ts +0 -9
  402. package/dist/ui/utils/kittyProtocolDetector.ts +0 -105
  403. package/dist/ui/utils/markdownUtilities.test.ts +0 -50
  404. package/dist/ui/utils/markdownUtilities.ts +0 -125
  405. package/dist/ui/utils/platformConstants.ts +0 -52
  406. package/dist/ui/utils/terminalSetup.ts +0 -342
  407. package/dist/ui/utils/textUtils.ts +0 -40
  408. package/dist/ui/utils/updateCheck.test.ts +0 -163
  409. package/dist/ui/utils/updateCheck.ts +0 -100
  410. package/dist/utils/checks.ts +0 -28
  411. package/dist/utils/cleanup.test.ts +0 -68
  412. package/dist/utils/cleanup.ts +0 -36
  413. package/dist/utils/dialogScopeUtils.ts +0 -64
  414. package/dist/utils/events.ts +0 -14
  415. package/dist/utils/gitUtils.test.ts +0 -149
  416. package/dist/utils/gitUtils.ts +0 -116
  417. package/dist/utils/handleAutoUpdate.test.ts +0 -272
  418. package/dist/utils/handleAutoUpdate.ts +0 -145
  419. package/dist/utils/installationInfo.test.ts +0 -315
  420. package/dist/utils/installationInfo.ts +0 -176
  421. package/dist/utils/package.ts +0 -38
  422. package/dist/utils/readStdin.ts +0 -51
  423. package/dist/utils/resolvePath.ts +0 -21
  424. package/dist/utils/sandbox-macos-permissive-closed.sb +0 -32
  425. package/dist/utils/sandbox-macos-permissive-open.sb +0 -25
  426. package/dist/utils/sandbox-macos-permissive-proxied.sb +0 -37
  427. package/dist/utils/sandbox-macos-restrictive-closed.sb +0 -93
  428. package/dist/utils/sandbox-macos-restrictive-open.sb +0 -96
  429. package/dist/utils/sandbox-macos-restrictive-proxied.sb +0 -98
  430. package/dist/utils/sandbox.ts +0 -962
  431. package/dist/utils/settingsUtils.test.ts +0 -797
  432. package/dist/utils/settingsUtils.ts +0 -489
  433. package/dist/utils/spawnWrapper.ts +0 -9
  434. package/dist/utils/startupWarnings.test.ts +0 -83
  435. package/dist/utils/startupWarnings.ts +0 -40
  436. package/dist/utils/updateEventEmitter.ts +0 -13
  437. package/dist/utils/userStartupWarnings.test.ts +0 -87
  438. package/dist/utils/userStartupWarnings.ts +0 -69
  439. package/dist/utils/version.ts +0 -12
  440. package/dist/validateNonInterActiveAuth.test.ts +0 -260
  441. package/dist/validateNonInterActiveAuth.ts +0 -51
  442. package/dist/vitest.config.ts +0 -37
  443. package/dist/zed-integration/acp.ts +0 -366
  444. package/dist/zed-integration/fileSystemService.ts +0 -47
  445. package/dist/zed-integration/schema.ts +0 -466
  446. package/dist/zed-integration/zedIntegration.ts +0 -944
package/README.md CHANGED
@@ -40,9 +40,39 @@ fss-link spawn --count 6 --template ./templates/regression.yml
40
40
  cd project && fss-link rag index . && fss-link rag query "error handling"
41
41
  ```
42
42
 
43
+ ## ⚡ **NEW: CLI Provider & Model Flags (v1.0.52)**
44
+
45
+ **Instant model switching without authentication ceremony!** Specify provider and model directly on the command line:
46
+
47
+ ```bash
48
+ # Quick Ollama tasks
49
+ fss-link --provider ollama --model qwen3:4b -p "explain this code"
50
+ fss-link --provider ollama --model qwen3-coder:latest -p "refactor this function"
51
+
52
+ # LM Studio for specialized models
53
+ fss-link --provider lm_studio --model llama-3.1-8b -p "write documentation"
54
+
55
+ # OpenAI for advanced reasoning
56
+ fss-link --provider openai-api-key --model gpt-4o -p "complex analysis task"
57
+
58
+ # Gemini for multimodal tasks
59
+ fss-link --provider gemini-api-key --model gemini-2.0-flash-thinking -p "analyze this image"
60
+ ```
61
+
62
+ ### 🎯 **Provider Options**
63
+ - `ollama` - Local Ollama server (default port 11434)
64
+ - `lm_studio` - LM Studio server (default port 1234)
65
+ - `openai-api-key` - OpenAI API (requires API key)
66
+ - `gemini-api-key` - Google Gemini API (requires API key)
67
+
68
+ ### 🔄 **Fallback Hierarchy**
69
+ 1. **CLI Arguments** - `--provider` and `--model` flags (highest priority)
70
+ 2. **Database Configuration** - Persistent model settings
71
+ 3. **Environment Variables** - Traditional env var fallback
72
+
43
73
  ## 📦 Installation
44
74
 
45
- **FSS Link v1.0.13 is now published to NPM! Install it globally for the best experience:**
75
+ **FSS Link v1.0.52 is now published to NPM with CLI Provider & Model Flags! Install it globally for the best experience:**
46
76
 
47
77
  ```bash
48
78
  # Method 1: NPM Global Install (Recommended)
@@ -50,9 +80,19 @@ npm install -g fss-link
50
80
 
51
81
  # Now you can use fss-link anywhere
52
82
  fss-link --help
53
- fss-link --version # Should show v1.0.13
83
+ fss-link --version # Should show v1.0.52
54
84
  ```
55
85
 
86
+ ### 🎉 **NEW: Welcome Back System (v1.0.43)**
87
+
88
+ FSS Link now features an intelligent **Welcome Back dialog** that appears when you return to projects with existing history:
89
+
90
+ - **🔍 Project Status Dashboard** - Git status, session history, momentum analysis
91
+ - **📊 Smart Context Generation** - Priority-based information filtering (7 levels)
92
+ - **⚡ Multi-Agent Awareness** - Universal session tracking across all agents
93
+ - **🎯 Seamless Resumption** - Intelligent context population for continuing work
94
+ - **🚀 Production Quality** - Comprehensive error handling, performance optimization
95
+
56
96
  ### 🔄 **Node.js Version Requirements**
57
97
 
58
98
  FSS Link requires **Node.js 20+**. If you have an older version, upgrade first:
package/dist/index.js CHANGED
File without changes
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fss-link",
3
- "version": "1.0.50",
3
+ "version": "1.0.52",
4
4
  "description": "FSS Link - AI-powered coding assistant",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "sandboxImageUri": "ghcr.io/fsscoding/fss-link:0.0.10"
29
29
  },
30
30
  "dependencies": {
31
- "fss-link-core": "1.0.47",
31
+ "fss-link-core": "1.0.48",
32
32
  "@google/genai": "1.9.0",
33
33
  "@iarna/toml": "^2.2.5",
34
34
  "@modelcontextprotocol/sdk": "^1.15.1",
@@ -8,6 +8,7 @@ import { Settings } from './settings.js';
8
8
  import { Extension } from './extension.js';
9
9
  export interface CliArgs {
10
10
  model: string | undefined;
11
+ provider: string | undefined;
11
12
  sandbox: boolean | string | undefined;
12
13
  sandboxImage: string | undefined;
13
14
  debug: boolean | undefined;
@@ -38,6 +38,11 @@ export async function parseArguments() {
38
38
  type: 'string',
39
39
  description: `Model`,
40
40
  default: process.env['GEMINI_MODEL'],
41
+ })
42
+ .option('provider', {
43
+ type: 'string',
44
+ choices: ['ollama', 'lm_studio', 'openai-api-key', 'gemini-api-key'],
45
+ description: 'Model provider (ollama, lm_studio, openai-api-key, gemini-api-key)',
41
46
  })
42
47
  .option('prompt', {
43
48
  alias: 'p',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Database } from 'sql.js';
7
+ /**
8
+ * TEMPORARY DATABASE UTILITIES
9
+ *
10
+ * These wrapper functions provide immediate relief from manual memory management
11
+ * while we transition to a proper ORM/repository pattern.
12
+ *
13
+ * @todo PHASE 2: Replace with Repository pattern (BaseRepository, ModelRepository, etc.)
14
+ * @todo PHASE 3: Consider migrating to Drizzle ORM or similar for full type safety
15
+ *
16
+ * Current problems these wrappers solve:
17
+ * - Manual .free() calls causing memory leaks
18
+ * - Inconsistent error handling patterns
19
+ * - No automatic cleanup on exceptions
20
+ * - Raw SQL scattered throughout business logic
21
+ */
22
+ /**
23
+ * Safe query execution with automatic statement cleanup.
24
+ * Returns all matching rows as an array.
25
+ *
26
+ * @todo UPGRADE: Replace with repository.findMany() method
27
+ *
28
+ * @param db - SQLite database instance
29
+ * @param sql - SQL query string
30
+ * @param params - Query parameters (optional)
31
+ * @returns Array of query results
32
+ * @throws DatabaseError for SQL execution errors
33
+ */
34
+ export declare function safeQuery<T = any>(db: Database, sql: string, params?: any[]): T[];
35
+ /**
36
+ * Safe query execution returning first result or null.
37
+ * Automatically handles statement cleanup.
38
+ *
39
+ * @todo UPGRADE: Replace with repository.findFirst() method
40
+ *
41
+ * @param db - SQLite database instance
42
+ * @param sql - SQL query string
43
+ * @param params - Query parameters (optional)
44
+ * @returns First matching row or null
45
+ * @throws DatabaseError for SQL execution errors
46
+ */
47
+ export declare function safeQueryFirst<T = any>(db: Database, sql: string, params?: any[]): T | null;
48
+ /**
49
+ * Safe execution of INSERT/UPDATE/DELETE statements.
50
+ * Automatically handles statement cleanup.
51
+ *
52
+ * @todo UPGRADE: Replace with repository.create()/update()/delete() methods
53
+ *
54
+ * @param db - SQLite database instance
55
+ * @param sql - SQL statement string
56
+ * @param params - Statement parameters (optional)
57
+ * @returns Number of affected rows
58
+ * @throws DatabaseError for SQL execution errors
59
+ */
60
+ export declare function safeExec(db: Database, sql: string, params?: any[]): number;
61
+ /**
62
+ * Safe transaction execution with automatic rollback on error.
63
+ * Ensures consistent database state even if operations fail.
64
+ *
65
+ * @todo UPGRADE: Replace with repository.withTransaction() method
66
+ *
67
+ * @param db - SQLite database instance
68
+ * @param operations - Function containing database operations
69
+ * @returns Result of operations function
70
+ * @throws DatabaseError for transaction failures
71
+ */
72
+ export declare function safeTransaction<T>(db: Database, operations: () => T): T;
73
+ /**
74
+ * Get the last inserted row ID from an INSERT operation.
75
+ * Helper for operations that need the new record ID.
76
+ *
77
+ * @todo UPGRADE: Repository pattern will handle this automatically
78
+ *
79
+ * @param db - SQLite database instance
80
+ * @returns Last inserted row ID
81
+ */
82
+ export declare function getLastInsertId(db: Database): number;
83
+ /**
84
+ * Custom error class for database operations.
85
+ * Provides consistent error handling across all database functions.
86
+ *
87
+ * @todo UPGRADE: Repository pattern will have more specific error types
88
+ */
89
+ export declare class DatabaseError extends Error {
90
+ cause?: unknown | undefined;
91
+ constructor(message: string, cause?: unknown | undefined);
92
+ }
93
+ /**
94
+ * MIGRATION HELPERS
95
+ *
96
+ * These functions help gradually replace manual prepare/free patterns
97
+ * throughout the existing codebase.
98
+ */
99
+ /**
100
+ * Check if a table exists in the database.
101
+ * Common pattern used in migration logic.
102
+ *
103
+ * @param db - SQLite database instance
104
+ * @param tableName - Name of table to check
105
+ * @returns True if table exists
106
+ */
107
+ export declare function tableExists(db: Database, tableName: string): boolean;
108
+ /**
109
+ * Check if a column exists in a table.
110
+ * Useful for schema validation and migrations.
111
+ *
112
+ * @param db - SQLite database instance
113
+ * @param tableName - Name of table
114
+ * @param columnName - Name of column to check
115
+ * @returns True if column exists
116
+ */
117
+ export declare function columnExists(db: Database, tableName: string, columnName: string): boolean;
118
+ /**
119
+ * COMMON UTILITY PATTERNS
120
+ *
121
+ * These higher-level helpers encapsulate frequent database patterns
122
+ */
123
+ /**
124
+ * Check if any records exist matching the criteria
125
+ * @param db - SQLite database instance
126
+ * @param table - Table name
127
+ * @param whereClause - WHERE clause (without WHERE keyword)
128
+ * @param params - Parameters for WHERE clause
129
+ * @returns True if any records exist
130
+ */
131
+ export declare function recordExists(db: Database, table: string, whereClause: string, params?: any[]): boolean;
132
+ /**
133
+ * Count records matching criteria
134
+ * @param db - SQLite database instance
135
+ * @param table - Table name
136
+ * @param whereClause - WHERE clause (without WHERE keyword, optional)
137
+ * @param params - Parameters for WHERE clause
138
+ * @returns Number of matching records
139
+ */
140
+ export declare function countRecords(db: Database, table: string, whereClause?: string, params?: any[]): number;
141
+ /**
142
+ * Delete records with safe execution
143
+ * @param db - SQLite database instance
144
+ * @param table - Table name
145
+ * @param whereClause - WHERE clause (without WHERE keyword)
146
+ * @param params - Parameters for WHERE clause
147
+ * @returns Number of deleted records
148
+ */
149
+ export declare function deleteRecords(db: Database, table: string, whereClause: string, params?: any[]): number;
150
+ /**
151
+ * Update records with safe execution
152
+ * @param db - SQLite database instance
153
+ * @param table - Table name
154
+ * @param setClause - SET clause (without SET keyword)
155
+ * @param whereClause - WHERE clause (without WHERE keyword)
156
+ * @param params - Parameters for SET and WHERE clauses
157
+ * @returns Number of updated records
158
+ */
159
+ export declare function updateRecords(db: Database, table: string, setClause: string, whereClause: string, params?: any[]): number;
160
+ /**
161
+ * EXAMPLE MIGRATION FROM OLD PATTERN TO NEW PATTERN:
162
+ *
163
+ * // OLD (manual memory management):
164
+ * const stmt = db.prepare('SELECT * FROM model_configs WHERE auth_type = ?');
165
+ * stmt.bind([authType]);
166
+ * const results = [];
167
+ * while (stmt.step()) {
168
+ * results.push(stmt.getAsObject());
169
+ * }
170
+ * stmt.free(); // Easy to forget!
171
+ *
172
+ * // NEW (automatic cleanup):
173
+ * const results = safeQuery(db, 'SELECT * FROM model_configs WHERE auth_type = ?', [authType]);
174
+ *
175
+ * // UTILITY HELPERS:
176
+ * const hasActiveModels = recordExists(db, 'model_configs', 'is_active = 1');
177
+ * const modelCount = countRecords(db, 'model_configs', 'auth_type = ?', ['ollama']);
178
+ * const deletedCount = deleteRecords(db, 'model_configs', 'is_active = 0 AND last_used < ?', [cutoffDate]);
179
+ *
180
+ * // FUTURE (repository pattern):
181
+ * const results = await modelRepo.findByAuthType(authType);
182
+ * const hasActive = await modelRepo.hasActive();
183
+ * const count = await modelRepo.countByAuthType('ollama');
184
+ * const deleted = await modelRepo.deleteInactive(cutoffDate);
185
+ */
@@ -0,0 +1,295 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * TEMPORARY DATABASE UTILITIES
8
+ *
9
+ * These wrapper functions provide immediate relief from manual memory management
10
+ * while we transition to a proper ORM/repository pattern.
11
+ *
12
+ * @todo PHASE 2: Replace with Repository pattern (BaseRepository, ModelRepository, etc.)
13
+ * @todo PHASE 3: Consider migrating to Drizzle ORM or similar for full type safety
14
+ *
15
+ * Current problems these wrappers solve:
16
+ * - Manual .free() calls causing memory leaks
17
+ * - Inconsistent error handling patterns
18
+ * - No automatic cleanup on exceptions
19
+ * - Raw SQL scattered throughout business logic
20
+ */
21
+ /**
22
+ * Safe query execution with automatic statement cleanup.
23
+ * Returns all matching rows as an array.
24
+ *
25
+ * @todo UPGRADE: Replace with repository.findMany() method
26
+ *
27
+ * @param db - SQLite database instance
28
+ * @param sql - SQL query string
29
+ * @param params - Query parameters (optional)
30
+ * @returns Array of query results
31
+ * @throws DatabaseError for SQL execution errors
32
+ */
33
+ export function safeQuery(db, sql, params = []) {
34
+ let stmt = null;
35
+ try {
36
+ stmt = db.prepare(sql);
37
+ if (params.length > 0) {
38
+ stmt.bind(params);
39
+ }
40
+ const results = [];
41
+ while (stmt.step()) {
42
+ results.push(stmt.getAsObject());
43
+ }
44
+ return results;
45
+ }
46
+ catch (error) {
47
+ throw new DatabaseError(`Query failed: ${sql}`, error);
48
+ }
49
+ finally {
50
+ if (stmt) {
51
+ stmt.free();
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * Safe query execution returning first result or null.
57
+ * Automatically handles statement cleanup.
58
+ *
59
+ * @todo UPGRADE: Replace with repository.findFirst() method
60
+ *
61
+ * @param db - SQLite database instance
62
+ * @param sql - SQL query string
63
+ * @param params - Query parameters (optional)
64
+ * @returns First matching row or null
65
+ * @throws DatabaseError for SQL execution errors
66
+ */
67
+ export function safeQueryFirst(db, sql, params = []) {
68
+ let stmt = null;
69
+ try {
70
+ stmt = db.prepare(sql);
71
+ if (params.length > 0) {
72
+ stmt.bind(params);
73
+ }
74
+ return stmt.step() ? stmt.getAsObject() : null;
75
+ }
76
+ catch (error) {
77
+ throw new DatabaseError(`Query failed: ${sql}`, error);
78
+ }
79
+ finally {
80
+ if (stmt) {
81
+ stmt.free();
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Safe execution of INSERT/UPDATE/DELETE statements.
87
+ * Automatically handles statement cleanup.
88
+ *
89
+ * @todo UPGRADE: Replace with repository.create()/update()/delete() methods
90
+ *
91
+ * @param db - SQLite database instance
92
+ * @param sql - SQL statement string
93
+ * @param params - Statement parameters (optional)
94
+ * @returns Number of affected rows
95
+ * @throws DatabaseError for SQL execution errors
96
+ */
97
+ export function safeExec(db, sql, params = []) {
98
+ let stmt = null;
99
+ try {
100
+ stmt = db.prepare(sql);
101
+ if (params.length > 0) {
102
+ stmt.bind(params);
103
+ }
104
+ stmt.step();
105
+ // Get affected rows count for INSERT/UPDATE/DELETE
106
+ const changes = db.exec('SELECT changes() as count')[0];
107
+ return changes?.values?.[0]?.[0] || 0;
108
+ }
109
+ catch (error) {
110
+ throw new DatabaseError(`Execution failed: ${sql}`, error);
111
+ }
112
+ finally {
113
+ if (stmt) {
114
+ stmt.free();
115
+ }
116
+ }
117
+ }
118
+ /**
119
+ * Safe transaction execution with automatic rollback on error.
120
+ * Ensures consistent database state even if operations fail.
121
+ *
122
+ * @todo UPGRADE: Replace with repository.withTransaction() method
123
+ *
124
+ * @param db - SQLite database instance
125
+ * @param operations - Function containing database operations
126
+ * @returns Result of operations function
127
+ * @throws DatabaseError for transaction failures
128
+ */
129
+ export function safeTransaction(db, operations) {
130
+ try {
131
+ db.exec('BEGIN TRANSACTION');
132
+ const result = operations();
133
+ db.exec('COMMIT');
134
+ return result;
135
+ }
136
+ catch (error) {
137
+ try {
138
+ db.exec('ROLLBACK');
139
+ }
140
+ catch (rollbackError) {
141
+ // Log rollback failure but throw original error
142
+ console.error('Failed to rollback transaction:', rollbackError);
143
+ }
144
+ throw new DatabaseError('Transaction failed', error);
145
+ }
146
+ }
147
+ /**
148
+ * Get the last inserted row ID from an INSERT operation.
149
+ * Helper for operations that need the new record ID.
150
+ *
151
+ * @todo UPGRADE: Repository pattern will handle this automatically
152
+ *
153
+ * @param db - SQLite database instance
154
+ * @returns Last inserted row ID
155
+ */
156
+ export function getLastInsertId(db) {
157
+ const result = safeQueryFirst(db, 'SELECT last_insert_rowid() as id');
158
+ return result?.id || 0;
159
+ }
160
+ /**
161
+ * Custom error class for database operations.
162
+ * Provides consistent error handling across all database functions.
163
+ *
164
+ * @todo UPGRADE: Repository pattern will have more specific error types
165
+ */
166
+ export class DatabaseError extends Error {
167
+ cause;
168
+ constructor(message, cause) {
169
+ super(message);
170
+ this.cause = cause;
171
+ this.name = 'DatabaseError';
172
+ // Include original error details if available
173
+ if (cause instanceof Error) {
174
+ this.message += ` (${cause.message})`;
175
+ }
176
+ }
177
+ }
178
+ /**
179
+ * MIGRATION HELPERS
180
+ *
181
+ * These functions help gradually replace manual prepare/free patterns
182
+ * throughout the existing codebase.
183
+ */
184
+ /**
185
+ * Check if a table exists in the database.
186
+ * Common pattern used in migration logic.
187
+ *
188
+ * @param db - SQLite database instance
189
+ * @param tableName - Name of table to check
190
+ * @returns True if table exists
191
+ */
192
+ export function tableExists(db, tableName) {
193
+ const result = safeQueryFirst(db, 'SELECT COUNT(*) as count FROM sqlite_master WHERE type="table" AND name=?', [tableName]);
194
+ return (result?.count || 0) > 0;
195
+ }
196
+ /**
197
+ * Check if a column exists in a table.
198
+ * Useful for schema validation and migrations.
199
+ *
200
+ * @param db - SQLite database instance
201
+ * @param tableName - Name of table
202
+ * @param columnName - Name of column to check
203
+ * @returns True if column exists
204
+ */
205
+ export function columnExists(db, tableName, columnName) {
206
+ try {
207
+ const result = safeQuery(db, `PRAGMA table_info(${tableName})`);
208
+ return result.some((col) => col.name === columnName);
209
+ }
210
+ catch {
211
+ return false;
212
+ }
213
+ }
214
+ /**
215
+ * COMMON UTILITY PATTERNS
216
+ *
217
+ * These higher-level helpers encapsulate frequent database patterns
218
+ */
219
+ /**
220
+ * Check if any records exist matching the criteria
221
+ * @param db - SQLite database instance
222
+ * @param table - Table name
223
+ * @param whereClause - WHERE clause (without WHERE keyword)
224
+ * @param params - Parameters for WHERE clause
225
+ * @returns True if any records exist
226
+ */
227
+ export function recordExists(db, table, whereClause, params = []) {
228
+ const result = safeQueryFirst(db, `SELECT COUNT(*) as count FROM ${table} WHERE ${whereClause}`, params);
229
+ return (result?.count || 0) > 0;
230
+ }
231
+ /**
232
+ * Count records matching criteria
233
+ * @param db - SQLite database instance
234
+ * @param table - Table name
235
+ * @param whereClause - WHERE clause (without WHERE keyword, optional)
236
+ * @param params - Parameters for WHERE clause
237
+ * @returns Number of matching records
238
+ */
239
+ export function countRecords(db, table, whereClause, params = []) {
240
+ const sql = whereClause
241
+ ? `SELECT COUNT(*) as count FROM ${table} WHERE ${whereClause}`
242
+ : `SELECT COUNT(*) as count FROM ${table}`;
243
+ const result = safeQueryFirst(db, sql, params);
244
+ return result?.count || 0;
245
+ }
246
+ /**
247
+ * Delete records with safe execution
248
+ * @param db - SQLite database instance
249
+ * @param table - Table name
250
+ * @param whereClause - WHERE clause (without WHERE keyword)
251
+ * @param params - Parameters for WHERE clause
252
+ * @returns Number of deleted records
253
+ */
254
+ export function deleteRecords(db, table, whereClause, params = []) {
255
+ return safeExec(db, `DELETE FROM ${table} WHERE ${whereClause}`, params);
256
+ }
257
+ /**
258
+ * Update records with safe execution
259
+ * @param db - SQLite database instance
260
+ * @param table - Table name
261
+ * @param setClause - SET clause (without SET keyword)
262
+ * @param whereClause - WHERE clause (without WHERE keyword)
263
+ * @param params - Parameters for SET and WHERE clauses
264
+ * @returns Number of updated records
265
+ */
266
+ export function updateRecords(db, table, setClause, whereClause, params = []) {
267
+ return safeExec(db, `UPDATE ${table} SET ${setClause} WHERE ${whereClause}`, params);
268
+ }
269
+ /**
270
+ * EXAMPLE MIGRATION FROM OLD PATTERN TO NEW PATTERN:
271
+ *
272
+ * // OLD (manual memory management):
273
+ * const stmt = db.prepare('SELECT * FROM model_configs WHERE auth_type = ?');
274
+ * stmt.bind([authType]);
275
+ * const results = [];
276
+ * while (stmt.step()) {
277
+ * results.push(stmt.getAsObject());
278
+ * }
279
+ * stmt.free(); // Easy to forget!
280
+ *
281
+ * // NEW (automatic cleanup):
282
+ * const results = safeQuery(db, 'SELECT * FROM model_configs WHERE auth_type = ?', [authType]);
283
+ *
284
+ * // UTILITY HELPERS:
285
+ * const hasActiveModels = recordExists(db, 'model_configs', 'is_active = 1');
286
+ * const modelCount = countRecords(db, 'model_configs', 'auth_type = ?', ['ollama']);
287
+ * const deletedCount = deleteRecords(db, 'model_configs', 'is_active = 0 AND last_used < ?', [cutoffDate]);
288
+ *
289
+ * // FUTURE (repository pattern):
290
+ * const results = await modelRepo.findByAuthType(authType);
291
+ * const hasActive = await modelRepo.hasActive();
292
+ * const count = await modelRepo.countByAuthType('ollama');
293
+ * const deleted = await modelRepo.deleteInactive(cutoffDate);
294
+ */
295
+ //# sourceMappingURL=database-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-utils.js","sourceRoot":"","sources":["../../../src/config/database-utils.ts"],"names":[],"mappings":"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"}