fss-link 1.0.40 → 1.0.45

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 (428) hide show
  1. package/dist/commands/mcp/add.test.ts +122 -0
  2. package/dist/commands/mcp/add.ts +222 -0
  3. package/dist/commands/mcp/list.test.ts +154 -0
  4. package/dist/commands/mcp/list.ts +139 -0
  5. package/dist/commands/mcp/remove.test.ts +69 -0
  6. package/dist/commands/mcp/remove.ts +60 -0
  7. package/dist/commands/mcp.test.ts +55 -0
  8. package/dist/commands/mcp.ts +27 -0
  9. package/dist/config/apiValidation.test.ts +118 -0
  10. package/dist/config/auth.test.ts +79 -0
  11. package/dist/config/auth.ts +100 -0
  12. package/dist/config/config.integration.test.ts +407 -0
  13. package/dist/config/config.test.ts +1952 -0
  14. package/dist/config/config.ts +690 -0
  15. package/dist/config/database.test.ts +96 -0
  16. package/dist/config/database.ts +752 -0
  17. package/dist/config/extension.test.ts +236 -0
  18. package/dist/config/extension.ts +180 -0
  19. package/dist/config/keyBindings.test.ts +62 -0
  20. package/dist/config/keyBindings.ts +184 -0
  21. package/dist/config/modelManager.ts +275 -0
  22. package/dist/config/providerManager.ts +244 -0
  23. package/dist/config/providerPersistence.test.ts +377 -0
  24. package/dist/config/providerPersistence.ts +105 -0
  25. package/dist/config/sandboxConfig.ts +107 -0
  26. package/dist/config/settings.test.ts +1424 -0
  27. package/dist/config/settings.ts +517 -0
  28. package/dist/config/settingsSchema.test.ts +252 -0
  29. package/dist/config/settingsSchema.ts +728 -0
  30. package/dist/config/trustedFolders.test.ts +208 -0
  31. package/dist/config/trustedFolders.ts +167 -0
  32. package/dist/gemini.test.tsx +252 -0
  33. package/dist/gemini.tsx +357 -0
  34. package/dist/generated/git-commit.ts +10 -0
  35. package/dist/index.ts +21 -0
  36. package/dist/nonInteractiveCli.test.ts +276 -0
  37. package/dist/nonInteractiveCli.ts +143 -0
  38. package/dist/package.json +87 -87
  39. package/dist/patches/is-in-ci.ts +17 -0
  40. package/dist/services/BuiltinCommandLoader.test.ts +127 -0
  41. package/dist/services/BuiltinCommandLoader.ts +95 -0
  42. package/dist/services/CommandService.test.ts +352 -0
  43. package/dist/services/CommandService.ts +103 -0
  44. package/dist/services/FileCommandLoader.test.ts +1002 -0
  45. package/dist/services/FileCommandLoader.ts +289 -0
  46. package/dist/services/McpPromptLoader.ts +231 -0
  47. package/dist/services/SearchEngineConfigProvider.ts +100 -0
  48. package/dist/services/prompt-processors/argumentProcessor.test.ts +41 -0
  49. package/dist/services/prompt-processors/argumentProcessor.ts +23 -0
  50. package/dist/services/prompt-processors/shellProcessor.test.ts +709 -0
  51. package/dist/services/prompt-processors/shellProcessor.ts +248 -0
  52. package/dist/services/prompt-processors/types.ts +44 -0
  53. package/dist/services/types.ts +24 -0
  54. package/dist/src/config/apiValidation.test.d.ts +6 -0
  55. package/dist/src/config/apiValidation.test.js +99 -0
  56. package/dist/src/config/apiValidation.test.js.map +1 -0
  57. package/dist/src/config/database.d.ts +32 -0
  58. package/dist/src/config/database.js +281 -2
  59. package/dist/src/config/database.js.map +1 -1
  60. package/dist/src/config/database.test.d.ts +6 -0
  61. package/dist/src/config/database.test.js +80 -0
  62. package/dist/src/config/database.test.js.map +1 -0
  63. package/dist/src/config/providerManager.d.ts +74 -0
  64. package/dist/src/config/providerManager.js +203 -0
  65. package/dist/src/config/providerManager.js.map +1 -0
  66. package/dist/src/config/providerPersistence.d.ts +75 -0
  67. package/dist/src/config/providerPersistence.js +55 -0
  68. package/dist/src/config/providerPersistence.js.map +1 -0
  69. package/dist/src/config/providerPersistence.test.d.ts +6 -0
  70. package/dist/src/config/providerPersistence.test.js +283 -0
  71. package/dist/src/config/providerPersistence.test.js.map +1 -0
  72. package/dist/src/config/settingsSchema.d.ts +9 -0
  73. package/dist/src/config/settingsSchema.js +9 -0
  74. package/dist/src/config/settingsSchema.js.map +1 -1
  75. package/dist/src/generated/git-commit.d.ts +1 -1
  76. package/dist/src/generated/git-commit.js +1 -1
  77. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  78. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  79. package/dist/src/ui/App.js +14 -2
  80. package/dist/src/ui/App.js.map +1 -1
  81. package/dist/src/ui/commands/contextCommand.d.ts +7 -0
  82. package/dist/src/ui/commands/contextCommand.js +115 -0
  83. package/dist/src/ui/commands/contextCommand.js.map +1 -0
  84. package/dist/src/ui/components/ContextUsageDisplay.d.ts +3 -1
  85. package/dist/src/ui/components/ContextUsageDisplay.js +43 -3
  86. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  87. package/dist/src/ui/components/Footer.d.ts +1 -0
  88. package/dist/src/ui/components/Footer.js +2 -2
  89. package/dist/src/ui/components/Footer.js.map +1 -1
  90. package/dist/src/ui/components/GeminiKeyDialog.d.ts +11 -0
  91. package/dist/src/ui/components/GeminiKeyDialog.js +156 -0
  92. package/dist/src/ui/components/GeminiKeyDialog.js.map +1 -0
  93. package/dist/src/ui/components/OpenAIEndpointDialog.d.ts +19 -0
  94. package/dist/src/ui/components/OpenAIEndpointDialog.js +163 -0
  95. package/dist/src/ui/components/OpenAIEndpointDialog.js.map +1 -0
  96. package/dist/src/ui/components/WelcomeBackDialog.d.ts +36 -0
  97. package/dist/src/ui/components/WelcomeBackDialog.js +109 -0
  98. package/dist/src/ui/components/WelcomeBackDialog.js.map +1 -0
  99. package/dist/src/ui/hooks/useWelcomeBack.d.ts +52 -0
  100. package/dist/src/ui/hooks/useWelcomeBack.js +214 -0
  101. package/dist/src/ui/hooks/useWelcomeBack.js.map +1 -0
  102. package/dist/src/zed-integration/schema.d.ts +1516 -1516
  103. package/dist/test-setup.ts +12 -0
  104. package/dist/test-utils/customMatchers.ts +65 -0
  105. package/dist/test-utils/mockCommandContext.test.ts +62 -0
  106. package/dist/test-utils/mockCommandContext.ts +105 -0
  107. package/dist/test-utils/render.tsx +18 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/dist/ui/App.test.tsx +2181 -0
  110. package/dist/ui/App.tsx +1344 -0
  111. package/dist/ui/IdeIntegrationNudge.tsx +98 -0
  112. package/dist/ui/__snapshots__/App.test.tsx.snap +124 -0
  113. package/dist/ui/colors.ts +56 -0
  114. package/dist/ui/commands/aboutCommand.test.ts +153 -0
  115. package/dist/ui/commands/aboutCommand.ts +49 -0
  116. package/dist/ui/commands/authCommand.test.ts +36 -0
  117. package/dist/ui/commands/authCommand.ts +17 -0
  118. package/dist/ui/commands/bugCommand.test.ts +114 -0
  119. package/dist/ui/commands/bugCommand.ts +92 -0
  120. package/dist/ui/commands/chatCommand.test.ts +414 -0
  121. package/dist/ui/commands/chatCommand.ts +280 -0
  122. package/dist/ui/commands/clearCommand.test.ts +100 -0
  123. package/dist/ui/commands/clearCommand.ts +29 -0
  124. package/dist/ui/commands/compressCommand.test.ts +129 -0
  125. package/dist/ui/commands/compressCommand.ts +78 -0
  126. package/dist/ui/commands/contextCommand.ts +132 -0
  127. package/dist/ui/commands/copyCommand.test.ts +296 -0
  128. package/dist/ui/commands/copyCommand.ts +67 -0
  129. package/dist/ui/commands/corgiCommand.test.ts +34 -0
  130. package/dist/ui/commands/corgiCommand.ts +16 -0
  131. package/dist/ui/commands/directoryCommand.test.tsx +185 -0
  132. package/dist/ui/commands/directoryCommand.tsx +179 -0
  133. package/dist/ui/commands/docsCommand.test.ts +99 -0
  134. package/dist/ui/commands/docsCommand.ts +42 -0
  135. package/dist/ui/commands/editorCommand.test.ts +30 -0
  136. package/dist/ui/commands/editorCommand.ts +21 -0
  137. package/dist/ui/commands/extensionsCommand.test.ts +67 -0
  138. package/dist/ui/commands/extensionsCommand.ts +46 -0
  139. package/dist/ui/commands/helpCommand.test.ts +52 -0
  140. package/dist/ui/commands/helpCommand.ts +23 -0
  141. package/dist/ui/commands/ideCommand.test.ts +255 -0
  142. package/dist/ui/commands/ideCommand.ts +283 -0
  143. package/dist/ui/commands/initCommand.test.ts +127 -0
  144. package/dist/ui/commands/initCommand.ts +117 -0
  145. package/dist/ui/commands/mcpCommand.test.ts +1057 -0
  146. package/dist/ui/commands/mcpCommand.ts +531 -0
  147. package/dist/ui/commands/memoryCommand.test.ts +344 -0
  148. package/dist/ui/commands/memoryCommand.ts +305 -0
  149. package/dist/ui/commands/privacyCommand.test.ts +38 -0
  150. package/dist/ui/commands/privacyCommand.ts +17 -0
  151. package/dist/ui/commands/quitCommand.test.ts +55 -0
  152. package/dist/ui/commands/quitCommand.ts +36 -0
  153. package/dist/ui/commands/restoreCommand.test.ts +250 -0
  154. package/dist/ui/commands/restoreCommand.ts +157 -0
  155. package/dist/ui/commands/searchEngineSetupCommand.ts +18 -0
  156. package/dist/ui/commands/settingsCommand.test.ts +36 -0
  157. package/dist/ui/commands/settingsCommand.ts +17 -0
  158. package/dist/ui/commands/setupGithubCommand.test.ts +238 -0
  159. package/dist/ui/commands/setupGithubCommand.ts +212 -0
  160. package/dist/ui/commands/speakCommand.ts +175 -0
  161. package/dist/ui/commands/statsCommand.test.ts +78 -0
  162. package/dist/ui/commands/statsCommand.ts +70 -0
  163. package/dist/ui/commands/terminalSetupCommand.test.ts +85 -0
  164. package/dist/ui/commands/terminalSetupCommand.ts +45 -0
  165. package/dist/ui/commands/themeCommand.test.ts +38 -0
  166. package/dist/ui/commands/themeCommand.ts +17 -0
  167. package/dist/ui/commands/toolsCommand.test.ts +105 -0
  168. package/dist/ui/commands/toolsCommand.ts +71 -0
  169. package/dist/ui/commands/ttsCommand.ts +143 -0
  170. package/dist/ui/commands/types.ts +204 -0
  171. package/dist/ui/commands/vimCommand.ts +25 -0
  172. package/dist/ui/commands/voiceCommand.ts +125 -0
  173. package/dist/ui/components/AboutBox.tsx +133 -0
  174. package/dist/ui/components/AsciiArt.ts +54 -0
  175. package/dist/ui/components/AuthDialog.test.tsx +334 -0
  176. package/dist/ui/components/AuthDialog.tsx +289 -0
  177. package/dist/ui/components/AuthInProgress.tsx +62 -0
  178. package/dist/ui/components/AutoAcceptIndicator.tsx +47 -0
  179. package/dist/ui/components/ConsoleSummaryDisplay.tsx +35 -0
  180. package/dist/ui/components/ContextSummaryDisplay.test.tsx +85 -0
  181. package/dist/ui/components/ContextSummaryDisplay.tsx +120 -0
  182. package/dist/ui/components/ContextUsageDisplay.tsx +77 -0
  183. package/dist/ui/components/DebugProfiler.tsx +36 -0
  184. package/dist/ui/components/DetailedMessagesDisplay.tsx +82 -0
  185. package/dist/ui/components/EditorSettingsDialog.tsx +172 -0
  186. package/dist/ui/components/FolderTrustDialog.test.tsx +36 -0
  187. package/dist/ui/components/FolderTrustDialog.tsx +74 -0
  188. package/dist/ui/components/Footer.test.tsx +159 -0
  189. package/dist/ui/components/Footer.tsx +158 -0
  190. package/dist/ui/components/GeminiKeyDialog.tsx +252 -0
  191. package/dist/ui/components/GeminiRespondingSpinner.tsx +34 -0
  192. package/dist/ui/components/Header.test.tsx +44 -0
  193. package/dist/ui/components/Header.tsx +70 -0
  194. package/dist/ui/components/Help.tsx +174 -0
  195. package/dist/ui/components/HistoryItemDisplay.test.tsx +125 -0
  196. package/dist/ui/components/HistoryItemDisplay.tsx +98 -0
  197. package/dist/ui/components/InputPrompt.test.tsx +1467 -0
  198. package/dist/ui/components/InputPrompt.tsx +641 -0
  199. package/dist/ui/components/LMStudioModelPrompt.tsx +215 -0
  200. package/dist/ui/components/LoadingIndicator.test.tsx +296 -0
  201. package/dist/ui/components/LoadingIndicator.tsx +82 -0
  202. package/dist/ui/components/MemoryUsageDisplay.tsx +36 -0
  203. package/dist/ui/components/ModelStatsDisplay.test.tsx +252 -0
  204. package/dist/ui/components/ModelStatsDisplay.tsx +197 -0
  205. package/dist/ui/components/OllamaModelPrompt.tsx +206 -0
  206. package/dist/ui/components/OpenAIEndpointDialog.tsx +261 -0
  207. package/dist/ui/components/OpenAIKeyPrompt.test.tsx +64 -0
  208. package/dist/ui/components/OpenAIKeyPrompt.tsx +197 -0
  209. package/dist/ui/components/PrepareLabel.tsx +48 -0
  210. package/dist/ui/components/SearchEngineConfigDialog.tsx +280 -0
  211. package/dist/ui/components/SessionSummaryDisplay.test.tsx +75 -0
  212. package/dist/ui/components/SessionSummaryDisplay.tsx +18 -0
  213. package/dist/ui/components/SettingsDialog.test.tsx +865 -0
  214. package/dist/ui/components/SettingsDialog.tsx +753 -0
  215. package/dist/ui/components/ShellConfirmationDialog.test.tsx +53 -0
  216. package/dist/ui/components/ShellConfirmationDialog.tsx +103 -0
  217. package/dist/ui/components/ShellModeIndicator.tsx +18 -0
  218. package/dist/ui/components/ShowMoreLines.tsx +40 -0
  219. package/dist/ui/components/StatsDisplay.test.tsx +401 -0
  220. package/dist/ui/components/StatsDisplay.tsx +273 -0
  221. package/dist/ui/components/SuggestionsDisplay.tsx +102 -0
  222. package/dist/ui/components/ThemeDialog.tsx +310 -0
  223. package/dist/ui/components/Tips.tsx +45 -0
  224. package/dist/ui/components/TodoDisplay.test.tsx +97 -0
  225. package/dist/ui/components/TodoDisplay.tsx +72 -0
  226. package/dist/ui/components/ToolStatsDisplay.test.tsx +180 -0
  227. package/dist/ui/components/ToolStatsDisplay.tsx +208 -0
  228. package/dist/ui/components/UpdateNotification.tsx +23 -0
  229. package/dist/ui/components/WelcomeBackDialog.tsx +290 -0
  230. package/dist/ui/components/__snapshots__/IDEContextDetailDisplay.test.tsx.snap +24 -0
  231. package/dist/ui/components/__snapshots__/ModelStatsDisplay.test.tsx.snap +121 -0
  232. package/dist/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap +30 -0
  233. package/dist/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap +21 -0
  234. package/dist/ui/components/__snapshots__/StatsDisplay.test.tsx.snap +264 -0
  235. package/dist/ui/components/__snapshots__/ToolStatsDisplay.test.tsx.snap +91 -0
  236. package/dist/ui/components/messages/CompressionMessage.tsx +49 -0
  237. package/dist/ui/components/messages/DiffRenderer.test.tsx +365 -0
  238. package/dist/ui/components/messages/DiffRenderer.tsx +358 -0
  239. package/dist/ui/components/messages/ErrorMessage.tsx +31 -0
  240. package/dist/ui/components/messages/GeminiMessage.tsx +43 -0
  241. package/dist/ui/components/messages/GeminiMessageContent.tsx +43 -0
  242. package/dist/ui/components/messages/InfoMessage.tsx +32 -0
  243. package/dist/ui/components/messages/ToolConfirmationMessage.test.tsx +58 -0
  244. package/dist/ui/components/messages/ToolConfirmationMessage.tsx +297 -0
  245. package/dist/ui/components/messages/ToolGroupMessage.tsx +126 -0
  246. package/dist/ui/components/messages/ToolMessage.test.tsx +183 -0
  247. package/dist/ui/components/messages/ToolMessage.tsx +296 -0
  248. package/dist/ui/components/messages/UserMessage.tsx +43 -0
  249. package/dist/ui/components/messages/UserShellMessage.tsx +25 -0
  250. package/dist/ui/components/shared/MaxSizedBox.test.tsx +425 -0
  251. package/dist/ui/components/shared/MaxSizedBox.tsx +624 -0
  252. package/dist/ui/components/shared/RadioButtonSelect.test.tsx +181 -0
  253. package/dist/ui/components/shared/RadioButtonSelect.tsx +234 -0
  254. package/dist/ui/components/shared/__snapshots__/RadioButtonSelect.test.tsx.snap +47 -0
  255. package/dist/ui/components/shared/text-buffer.test.ts +1728 -0
  256. package/dist/ui/components/shared/text-buffer.ts +2227 -0
  257. package/dist/ui/components/shared/vim-buffer-actions.test.ts +1119 -0
  258. package/dist/ui/components/shared/vim-buffer-actions.ts +814 -0
  259. package/dist/ui/constants.ts +17 -0
  260. package/dist/ui/contexts/KeypressContext.test.tsx +391 -0
  261. package/dist/ui/contexts/KeypressContext.tsx +440 -0
  262. package/dist/ui/contexts/OverflowContext.tsx +87 -0
  263. package/dist/ui/contexts/SessionContext.test.tsx +132 -0
  264. package/dist/ui/contexts/SessionContext.tsx +143 -0
  265. package/dist/ui/contexts/SettingsContext.tsx +20 -0
  266. package/dist/ui/contexts/StreamingContext.tsx +22 -0
  267. package/dist/ui/contexts/VimModeContext.tsx +79 -0
  268. package/dist/ui/editors/editorSettingsManager.ts +66 -0
  269. package/dist/ui/hooks/atCommandProcessor.test.ts +1102 -0
  270. package/dist/ui/hooks/atCommandProcessor.ts +485 -0
  271. package/dist/ui/hooks/shellCommandProcessor.test.ts +481 -0
  272. package/dist/ui/hooks/shellCommandProcessor.ts +314 -0
  273. package/dist/ui/hooks/slashCommandProcessor.test.ts +1044 -0
  274. package/dist/ui/hooks/slashCommandProcessor.ts +595 -0
  275. package/dist/ui/hooks/useAtCompletion.test.ts +497 -0
  276. package/dist/ui/hooks/useAtCompletion.ts +244 -0
  277. package/dist/ui/hooks/useAuthCommand.ts +129 -0
  278. package/dist/ui/hooks/useAutoAcceptIndicator.test.ts +300 -0
  279. package/dist/ui/hooks/useAutoAcceptIndicator.ts +52 -0
  280. package/dist/ui/hooks/useBracketedPaste.ts +37 -0
  281. package/dist/ui/hooks/useCommandCompletion.test.ts +518 -0
  282. package/dist/ui/hooks/useCommandCompletion.tsx +238 -0
  283. package/dist/ui/hooks/useCompletion.ts +128 -0
  284. package/dist/ui/hooks/useConsoleMessages.test.ts +147 -0
  285. package/dist/ui/hooks/useConsoleMessages.ts +110 -0
  286. package/dist/ui/hooks/useEditorSettings.test.ts +283 -0
  287. package/dist/ui/hooks/useEditorSettings.ts +75 -0
  288. package/dist/ui/hooks/useFocus.test.ts +119 -0
  289. package/dist/ui/hooks/useFocus.ts +48 -0
  290. package/dist/ui/hooks/useFolderTrust.test.ts +159 -0
  291. package/dist/ui/hooks/useFolderTrust.ts +72 -0
  292. package/dist/ui/hooks/useGeminiStream.test.tsx +1998 -0
  293. package/dist/ui/hooks/useGeminiStream.ts +1017 -0
  294. package/dist/ui/hooks/useGitBranchName.test.ts +280 -0
  295. package/dist/ui/hooks/useGitBranchName.ts +79 -0
  296. package/dist/ui/hooks/useHistoryManager.test.ts +202 -0
  297. package/dist/ui/hooks/useHistoryManager.ts +111 -0
  298. package/dist/ui/hooks/useInputHistory.test.ts +261 -0
  299. package/dist/ui/hooks/useInputHistory.ts +111 -0
  300. package/dist/ui/hooks/useKeypress.test.ts +280 -0
  301. package/dist/ui/hooks/useKeypress.ts +39 -0
  302. package/dist/ui/hooks/useKittyKeyboardProtocol.ts +31 -0
  303. package/dist/ui/hooks/useLoadingIndicator.test.ts +139 -0
  304. package/dist/ui/hooks/useLoadingIndicator.ts +57 -0
  305. package/dist/ui/hooks/useLogger.ts +32 -0
  306. package/dist/ui/hooks/useMessageQueue.test.ts +226 -0
  307. package/dist/ui/hooks/useMessageQueue.ts +69 -0
  308. package/dist/ui/hooks/usePhraseCycler.test.ts +145 -0
  309. package/dist/ui/hooks/usePhraseCycler.ts +198 -0
  310. package/dist/ui/hooks/usePrivacySettings.test.ts +242 -0
  311. package/dist/ui/hooks/usePrivacySettings.ts +150 -0
  312. package/dist/ui/hooks/useReactToolScheduler.ts +309 -0
  313. package/dist/ui/hooks/useRefreshMemoryCommand.ts +7 -0
  314. package/dist/ui/hooks/useReverseSearchCompletion.test.tsx +260 -0
  315. package/dist/ui/hooks/useReverseSearchCompletion.tsx +95 -0
  316. package/dist/ui/hooks/useSettingsCommand.ts +25 -0
  317. package/dist/ui/hooks/useShellHistory.test.ts +219 -0
  318. package/dist/ui/hooks/useShellHistory.ts +133 -0
  319. package/dist/ui/hooks/useShowMemoryCommand.ts +75 -0
  320. package/dist/ui/hooks/useSlashCompletion.test.ts +434 -0
  321. package/dist/ui/hooks/useSlashCompletion.ts +187 -0
  322. package/dist/ui/hooks/useStateAndRef.ts +36 -0
  323. package/dist/ui/hooks/useTerminalSize.ts +32 -0
  324. package/dist/ui/hooks/useThemeCommand.ts +110 -0
  325. package/dist/ui/hooks/useTimer.test.ts +120 -0
  326. package/dist/ui/hooks/useTimer.ts +65 -0
  327. package/dist/ui/hooks/useToolScheduler.test.ts +1123 -0
  328. package/dist/ui/hooks/useWelcomeBack.ts +253 -0
  329. package/dist/ui/hooks/vim.test.ts +1691 -0
  330. package/dist/ui/hooks/vim.ts +784 -0
  331. package/dist/ui/keyMatchers.test.ts +337 -0
  332. package/dist/ui/keyMatchers.ts +105 -0
  333. package/dist/ui/privacy/CloudFreePrivacyNotice.tsx +117 -0
  334. package/dist/ui/privacy/CloudPaidPrivacyNotice.tsx +59 -0
  335. package/dist/ui/privacy/GeminiPrivacyNotice.tsx +62 -0
  336. package/dist/ui/privacy/PrivacyNotice.tsx +42 -0
  337. package/dist/ui/semantic-colors.ts +26 -0
  338. package/dist/ui/themes/ansi-light.ts +150 -0
  339. package/dist/ui/themes/ansi.ts +159 -0
  340. package/dist/ui/themes/atom-one-dark.ts +147 -0
  341. package/dist/ui/themes/ayu-light.ts +139 -0
  342. package/dist/ui/themes/ayu.ts +113 -0
  343. package/dist/ui/themes/color-utils.test.ts +221 -0
  344. package/dist/ui/themes/color-utils.ts +231 -0
  345. package/dist/ui/themes/default-light.ts +108 -0
  346. package/dist/ui/themes/default.ts +151 -0
  347. package/dist/ui/themes/dracula.ts +124 -0
  348. package/dist/ui/themes/fss-code-dark.ts +156 -0
  349. package/dist/ui/themes/fss-dark.ts +113 -0
  350. package/dist/ui/themes/fss-light.ts +139 -0
  351. package/dist/ui/themes/github-dark.ts +147 -0
  352. package/dist/ui/themes/github-light.ts +149 -0
  353. package/dist/ui/themes/googlecode.ts +146 -0
  354. package/dist/ui/themes/no-color.ts +125 -0
  355. package/dist/ui/themes/qwen-dark.ts +118 -0
  356. package/dist/ui/themes/qwen-light.ts +144 -0
  357. package/dist/ui/themes/semantic-tokens.ts +127 -0
  358. package/dist/ui/themes/shades-of-purple.ts +352 -0
  359. package/dist/ui/themes/theme-manager.test.ts +99 -0
  360. package/dist/ui/themes/theme-manager.ts +257 -0
  361. package/dist/ui/themes/theme.test.ts +97 -0
  362. package/dist/ui/themes/theme.ts +451 -0
  363. package/dist/ui/themes/xcode.ts +154 -0
  364. package/dist/ui/types.ts +255 -0
  365. package/dist/ui/utils/CodeColorizer.tsx +217 -0
  366. package/dist/ui/utils/ConsolePatcher.ts +71 -0
  367. package/dist/ui/utils/InlineMarkdownRenderer.tsx +173 -0
  368. package/dist/ui/utils/MarkdownDisplay.test.tsx +244 -0
  369. package/dist/ui/utils/MarkdownDisplay.tsx +415 -0
  370. package/dist/ui/utils/TableRenderer.tsx +159 -0
  371. package/dist/ui/utils/__snapshots__/MarkdownDisplay.test.tsx.snap +93 -0
  372. package/dist/ui/utils/clipboardUtils.test.ts +76 -0
  373. package/dist/ui/utils/clipboardUtils.ts +149 -0
  374. package/dist/ui/utils/commandUtils.test.ts +384 -0
  375. package/dist/ui/utils/commandUtils.ts +106 -0
  376. package/dist/ui/utils/computeStats.test.ts +292 -0
  377. package/dist/ui/utils/computeStats.ts +86 -0
  378. package/dist/ui/utils/displayUtils.test.ts +58 -0
  379. package/dist/ui/utils/displayUtils.ts +32 -0
  380. package/dist/ui/utils/formatters.test.ts +72 -0
  381. package/dist/ui/utils/formatters.ts +63 -0
  382. package/dist/ui/utils/isNarrowWidth.ts +9 -0
  383. package/dist/ui/utils/kittyProtocolDetector.ts +105 -0
  384. package/dist/ui/utils/markdownUtilities.test.ts +50 -0
  385. package/dist/ui/utils/markdownUtilities.ts +125 -0
  386. package/dist/ui/utils/platformConstants.ts +52 -0
  387. package/dist/ui/utils/terminalSetup.ts +342 -0
  388. package/dist/ui/utils/textUtils.ts +40 -0
  389. package/dist/ui/utils/updateCheck.test.ts +163 -0
  390. package/dist/ui/utils/updateCheck.ts +100 -0
  391. package/dist/utils/checks.ts +28 -0
  392. package/dist/utils/cleanup.test.ts +68 -0
  393. package/dist/utils/cleanup.ts +36 -0
  394. package/dist/utils/dialogScopeUtils.ts +64 -0
  395. package/dist/utils/events.ts +14 -0
  396. package/dist/utils/gitUtils.test.ts +149 -0
  397. package/dist/utils/gitUtils.ts +116 -0
  398. package/dist/utils/handleAutoUpdate.test.ts +272 -0
  399. package/dist/utils/handleAutoUpdate.ts +145 -0
  400. package/dist/utils/installationInfo.test.ts +315 -0
  401. package/dist/utils/installationInfo.ts +176 -0
  402. package/dist/utils/package.ts +38 -0
  403. package/dist/utils/readStdin.ts +51 -0
  404. package/dist/utils/resolvePath.ts +21 -0
  405. package/dist/utils/sandbox-macos-permissive-closed.sb +32 -0
  406. package/dist/utils/sandbox-macos-permissive-open.sb +25 -0
  407. package/dist/utils/sandbox-macos-permissive-proxied.sb +37 -0
  408. package/dist/utils/sandbox-macos-restrictive-closed.sb +93 -0
  409. package/dist/utils/sandbox-macos-restrictive-open.sb +96 -0
  410. package/dist/utils/sandbox-macos-restrictive-proxied.sb +98 -0
  411. package/dist/utils/sandbox.ts +962 -0
  412. package/dist/utils/settingsUtils.test.ts +797 -0
  413. package/dist/utils/settingsUtils.ts +489 -0
  414. package/dist/utils/spawnWrapper.ts +9 -0
  415. package/dist/utils/startupWarnings.test.ts +83 -0
  416. package/dist/utils/startupWarnings.ts +40 -0
  417. package/dist/utils/updateEventEmitter.ts +13 -0
  418. package/dist/utils/userStartupWarnings.test.ts +87 -0
  419. package/dist/utils/userStartupWarnings.ts +69 -0
  420. package/dist/utils/version.ts +12 -0
  421. package/dist/validateNonInterActiveAuth.test.ts +260 -0
  422. package/dist/validateNonInterActiveAuth.ts +51 -0
  423. package/dist/vitest.config.ts +37 -0
  424. package/dist/zed-integration/acp.ts +366 -0
  425. package/dist/zed-integration/fileSystemService.ts +47 -0
  426. package/dist/zed-integration/schema.ts +466 -0
  427. package/dist/zed-integration/zedIntegration.ts +944 -0
  428. package/package.json +2 -2
@@ -39,7 +39,7 @@ export class FSSLinkDatabase {
39
39
  else {
40
40
  this.db = new this.SQL.Database();
41
41
  }
42
- this.initializeSchema();
42
+ await this.initializeSchema();
43
43
  this.initialized = true;
44
44
  }
45
45
  /**
@@ -62,7 +62,7 @@ export class FSSLinkDatabase {
62
62
  /**
63
63
  * Initialize database schema
64
64
  */
65
- initializeSchema() {
65
+ async initializeSchema() {
66
66
  if (!this.db)
67
67
  return;
68
68
  // Model configurations table
@@ -88,6 +88,44 @@ export class FSSLinkDatabase {
88
88
  value TEXT NOT NULL,
89
89
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
90
90
  )
91
+ `);
92
+ // Custom endpoints table
93
+ this.db.exec(`
94
+ CREATE TABLE IF NOT EXISTS custom_endpoints (
95
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
96
+ provider_id INTEGER NOT NULL,
97
+ name TEXT NOT NULL,
98
+ url TEXT NOT NULL,
99
+ description TEXT,
100
+ is_default BOOLEAN DEFAULT 0,
101
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
102
+ FOREIGN KEY (provider_id) REFERENCES model_configs (id)
103
+ )
104
+ `);
105
+ // Provider usage tracking table
106
+ this.db.exec(`
107
+ CREATE TABLE IF NOT EXISTS provider_usage (
108
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
109
+ provider_id INTEGER NOT NULL,
110
+ session_date DATE DEFAULT CURRENT_DATE,
111
+ session_count INTEGER DEFAULT 1,
112
+ tokens_used INTEGER DEFAULT 0,
113
+ session_duration INTEGER DEFAULT 0,
114
+ FOREIGN KEY (provider_id) REFERENCES model_configs (id),
115
+ UNIQUE(provider_id, session_date)
116
+ )
117
+ `);
118
+ // Provider settings table (for additional configuration like sampling params)
119
+ this.db.exec(`
120
+ CREATE TABLE IF NOT EXISTS provider_settings (
121
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
122
+ provider_id INTEGER NOT NULL,
123
+ setting_key TEXT NOT NULL,
124
+ setting_value TEXT NOT NULL,
125
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
126
+ FOREIGN KEY (provider_id) REFERENCES model_configs (id),
127
+ UNIQUE(provider_id, setting_key)
128
+ )
91
129
  `);
92
130
  // Create indexes for performance
93
131
  this.db.exec(`
@@ -95,10 +133,85 @@ export class FSSLinkDatabase {
95
133
  CREATE INDEX IF NOT EXISTS idx_model_configs_favorite ON model_configs(is_favorite);
96
134
  CREATE INDEX IF NOT EXISTS idx_model_configs_last_used ON model_configs(last_used DESC);
97
135
  CREATE INDEX IF NOT EXISTS idx_model_configs_auth_type ON model_configs(auth_type);
136
+ CREATE INDEX IF NOT EXISTS idx_custom_endpoints_provider ON custom_endpoints(provider_id);
137
+ CREATE INDEX IF NOT EXISTS idx_provider_usage_date ON provider_usage(session_date DESC);
138
+ CREATE INDEX IF NOT EXISTS idx_provider_settings_key ON provider_settings(provider_id, setting_key);
98
139
  `);
140
+ // Insert default configurations if none exist
141
+ await this.ensureDefaultConfigurations();
99
142
  // Save initial schema
100
143
  this.save();
101
144
  }
145
+ /**
146
+ * Ensure default model configurations exist for new installations
147
+ */
148
+ async ensureDefaultConfigurations() {
149
+ if (!this.db)
150
+ return;
151
+ // Check if any configurations exist
152
+ const stmt = this.db.prepare('SELECT COUNT(*) as count FROM model_configs');
153
+ const result = stmt.get();
154
+ if (result.count === 0) {
155
+ // Insert default Ollama configuration for new users (no API key needed)
156
+ const defaultOllamaConfig = {
157
+ auth_type: 'ollama',
158
+ model_name: 'qwen3-coder:latest',
159
+ endpoint_url: 'http://localhost:11434/v1',
160
+ api_key: null,
161
+ display_name: 'Qwen3 Coder (Ollama)',
162
+ is_favorite: 1, // Mark as favorite so it's selected by default
163
+ is_active: 1, // Mark as active
164
+ last_used: null,
165
+ created_at: new Date().toISOString()
166
+ };
167
+ const insertStmt = this.db.prepare(`
168
+ INSERT INTO model_configs (
169
+ auth_type, model_name, endpoint_url, api_key, display_name,
170
+ is_favorite, is_active, last_used, created_at
171
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
172
+ `);
173
+ insertStmt.run(defaultOllamaConfig.auth_type, defaultOllamaConfig.model_name, defaultOllamaConfig.endpoint_url, defaultOllamaConfig.api_key, defaultOllamaConfig.display_name, defaultOllamaConfig.is_favorite, defaultOllamaConfig.is_active, defaultOllamaConfig.last_used, defaultOllamaConfig.created_at);
174
+ // Also insert a default Gemini configuration (inactive) for when users want to configure API keys later
175
+ const defaultGeminiConfig = {
176
+ auth_type: 'use_gemini',
177
+ model_name: 'gemini-2.5-flash-thinking',
178
+ endpoint_url: 'https://generativelanguage.googleapis.com/v1',
179
+ api_key: null,
180
+ display_name: 'Gemini 2.5 Flash Thinking (Requires API Key)',
181
+ is_favorite: 0,
182
+ is_active: 0, // Inactive until user configures API key
183
+ last_used: null,
184
+ created_at: new Date().toISOString()
185
+ };
186
+ insertStmt.run(defaultGeminiConfig.auth_type, defaultGeminiConfig.model_name, defaultGeminiConfig.endpoint_url, defaultGeminiConfig.api_key, defaultGeminiConfig.display_name, defaultGeminiConfig.is_favorite, defaultGeminiConfig.is_active, defaultGeminiConfig.last_used, defaultGeminiConfig.created_at);
187
+ // Add default LM Studio configuration (active, optional API key)
188
+ const defaultLMStudioConfig = {
189
+ auth_type: 'lm_studio',
190
+ model_name: 'qwen3-coder:latest',
191
+ endpoint_url: 'http://localhost:1234/v1',
192
+ api_key: null, // API key is optional for LM Studio
193
+ display_name: 'Qwen3 Coder (LM Studio)',
194
+ is_favorite: 0,
195
+ is_active: 1, // Active by default since no API key needed
196
+ last_used: null,
197
+ created_at: new Date().toISOString()
198
+ };
199
+ insertStmt.run(defaultLMStudioConfig.auth_type, defaultLMStudioConfig.model_name, defaultLMStudioConfig.endpoint_url, defaultLMStudioConfig.api_key, defaultLMStudioConfig.display_name, defaultLMStudioConfig.is_favorite, defaultLMStudioConfig.is_active, defaultLMStudioConfig.last_used, defaultLMStudioConfig.created_at);
200
+ // Add default OpenAI configuration (inactive, requires API key)
201
+ const defaultOpenAIConfig = {
202
+ auth_type: 'use_openai',
203
+ model_name: 'gpt-4o',
204
+ endpoint_url: 'https://api.openai.com/v1',
205
+ api_key: null, // API key required but not set by default
206
+ display_name: 'GPT-4o (Requires API Key)',
207
+ is_favorite: 0,
208
+ is_active: 0, // Inactive until user configures API key
209
+ last_used: null,
210
+ created_at: new Date().toISOString()
211
+ };
212
+ insertStmt.run(defaultOpenAIConfig.auth_type, defaultOpenAIConfig.model_name, defaultOpenAIConfig.endpoint_url, defaultOpenAIConfig.api_key, defaultOpenAIConfig.display_name, defaultOpenAIConfig.is_favorite, defaultOpenAIConfig.is_active, defaultOpenAIConfig.last_used, defaultOpenAIConfig.created_at);
213
+ }
214
+ }
102
215
  /**
103
216
  * Get the currently active model configuration
104
217
  */
@@ -322,6 +435,172 @@ export class FSSLinkDatabase {
322
435
  createdAt: row.created_at ? new Date(row.created_at) : undefined,
323
436
  };
324
437
  }
438
+ // ============= ENHANCED PROVIDER MANAGEMENT =============
439
+ /**
440
+ * Record provider usage for intelligent default selection
441
+ */
442
+ async recordProviderUsage(providerId, tokensUsed, sessionDuration) {
443
+ await this.ensureInitialized();
444
+ if (!this.db)
445
+ return;
446
+ // Update or insert daily usage statistics
447
+ this.db.exec(`
448
+ INSERT INTO provider_usage (provider_id, tokens_used, session_duration)
449
+ VALUES (?, ?, ?)
450
+ ON CONFLICT(provider_id, session_date)
451
+ DO UPDATE SET
452
+ session_count = session_count + 1,
453
+ tokens_used = tokens_used + excluded.tokens_used,
454
+ session_duration = session_duration + excluded.session_duration
455
+ `, [providerId, tokensUsed, sessionDuration]);
456
+ // Update last_used timestamp in model_configs
457
+ this.db.exec(`
458
+ UPDATE model_configs
459
+ SET last_used = CURRENT_TIMESTAMP
460
+ WHERE id = ?
461
+ `, [providerId]);
462
+ this.save();
463
+ }
464
+ /**
465
+ * Save custom endpoint for a provider
466
+ */
467
+ async saveCustomEndpoint(providerId, name, url, description, isDefault = false) {
468
+ await this.ensureInitialized();
469
+ if (!this.db)
470
+ return -1;
471
+ // If setting as default, unset other defaults for this provider
472
+ if (isDefault) {
473
+ this.db.exec(`
474
+ UPDATE custom_endpoints
475
+ SET is_default = 0
476
+ WHERE provider_id = ?
477
+ `, [providerId]);
478
+ }
479
+ this.db.exec(`
480
+ INSERT OR REPLACE INTO custom_endpoints (provider_id, name, url, description, is_default)
481
+ VALUES (?, ?, ?, ?, ?)
482
+ `, [providerId, name, url, description || null, isDefault ? 1 : 0]);
483
+ this.save();
484
+ const result = this.db.exec('SELECT last_insert_rowid() as id');
485
+ return result[0]?.values[0]?.[0] || -1;
486
+ }
487
+ /**
488
+ * Get custom endpoints for a provider
489
+ */
490
+ async getCustomEndpoints(providerId) {
491
+ await this.ensureInitialized();
492
+ if (!this.db)
493
+ return [];
494
+ const stmt = this.db.prepare(`
495
+ SELECT id, provider_id, name, url, description, is_default, created_at
496
+ FROM custom_endpoints
497
+ WHERE provider_id = ?
498
+ ORDER BY is_default DESC, created_at DESC
499
+ `);
500
+ return stmt.all(providerId) || [];
501
+ }
502
+ /**
503
+ * Save provider-specific settings (like sampling params)
504
+ */
505
+ async saveProviderSetting(providerId, key, value) {
506
+ await this.ensureInitialized();
507
+ if (!this.db)
508
+ return;
509
+ const stmt = this.db.prepare(`
510
+ INSERT OR REPLACE INTO provider_settings (provider_id, setting_key, setting_value)
511
+ VALUES (?, ?, ?)
512
+ `);
513
+ stmt.run(providerId, key, value);
514
+ this.save();
515
+ }
516
+ /**
517
+ * Get provider-specific settings
518
+ */
519
+ async getProviderSettings(providerId) {
520
+ await this.ensureInitialized();
521
+ if (!this.db)
522
+ return {};
523
+ const stmt = this.db.prepare(`
524
+ SELECT setting_key, setting_value
525
+ FROM provider_settings
526
+ WHERE provider_id = ?
527
+ `);
528
+ const results = stmt.all(providerId) || [];
529
+ const settings = {};
530
+ for (const row of results) {
531
+ settings[row.setting_key] = row.setting_value;
532
+ }
533
+ return settings;
534
+ }
535
+ /**
536
+ * Get smart default provider based on usage and preferences
537
+ */
538
+ async getSmartDefaultProvider() {
539
+ await this.ensureInitialized();
540
+ if (!this.db)
541
+ return null;
542
+ // Priority order:
543
+ // 1. User-marked favorite (is_favorite = 1)
544
+ // 2. Most used provider in last 30 days
545
+ // 3. Most recently used provider
546
+ const stmt = this.db.prepare(`
547
+ SELECT
548
+ m.id, m.auth_type, m.model_name, m.endpoint_url, m.api_key,
549
+ m.display_name, m.is_favorite, m.is_active, m.last_used, m.created_at,
550
+ COALESCE(u.recent_usage_score, 0) as usage_score
551
+ FROM model_configs m
552
+ LEFT JOIN (
553
+ SELECT
554
+ provider_id,
555
+ SUM(session_count * (1.0 / (julianday('now') - julianday(session_date) + 1))) as recent_usage_score
556
+ FROM provider_usage
557
+ WHERE session_date >= date('now', '-30 days')
558
+ GROUP BY provider_id
559
+ ) u ON m.id = u.provider_id
560
+ ORDER BY
561
+ m.is_favorite DESC,
562
+ usage_score DESC,
563
+ m.last_used DESC,
564
+ m.created_at DESC
565
+ LIMIT 1
566
+ `);
567
+ const result = stmt.get([]);
568
+ if (!result)
569
+ return null;
570
+ return {
571
+ authType: result.auth_type,
572
+ modelName: result.model_name,
573
+ endpointUrl: result.endpoint_url,
574
+ apiKey: result.api_key,
575
+ displayName: result.display_name,
576
+ isFavorite: Boolean(result.is_favorite),
577
+ isActive: Boolean(result.is_active)
578
+ };
579
+ }
580
+ /**
581
+ * Get a specific model configuration by ID
582
+ */
583
+ async getModelById(modelId) {
584
+ await this.ensureInitialized();
585
+ if (!this.db)
586
+ return null;
587
+ const stmt = this.db.prepare(`
588
+ SELECT * FROM models WHERE id = ?
589
+ `);
590
+ const result = stmt.get(modelId);
591
+ if (!result)
592
+ return null;
593
+ return {
594
+ id: result.id,
595
+ authType: result.auth_type,
596
+ modelName: result.model_name,
597
+ endpointUrl: result.endpoint_url,
598
+ apiKey: result.api_key,
599
+ displayName: result.display_name,
600
+ isFavorite: Boolean(result.is_favorite),
601
+ isActive: Boolean(result.is_active)
602
+ };
603
+ }
325
604
  }
326
605
  // Singleton instance for global access
327
606
  let databaseInstance = null;
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/config/database.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,SAAS,MAAM,QAAQ,CAAC;AAE/B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,EAAE,GAAoB,IAAI,CAAC;IAC3B,MAAM,CAAS;IACvB,8DAA8D;IACtD,GAAG,CAAM,CAAC,yBAAyB;IACnC,WAAW,GAAG,KAAK,CAAC;IAE5B;QACE,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,CAAC,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAE7B,2CAA2C;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,6BAA6B;QAC7B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;KAcZ,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;KAMZ,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWZ,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;KAWZ,CAAC,CAAC;QAEH,8EAA8E;QAC9E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;KAUZ,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQZ,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,sBAAsB;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,2BAA2B;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAuB,CAAC;QAE/C,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACvB,wEAAwE;YACxE,MAAM,mBAAmB,GAAG;gBAC1B,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,oBAAoB;gBAChC,YAAY,EAAE,2BAA2B;gBACzC,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,sBAAsB;gBACpC,WAAW,EAAE,CAAC,EAAE,+CAA+C;gBAC/D,SAAS,EAAE,CAAC,EAAI,iBAAiB;gBACjC,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAKlC,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,CACZ,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,WAAW,EAC/B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,CAC/B,CAAC;YAEF,wGAAwG;YACxG,MAAM,mBAAmB,GAAG;gBAC1B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,2BAA2B;gBACvC,YAAY,EAAE,8CAA8C;gBAC5D,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,8CAA8C;gBAC5D,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC,EAAE,yCAAyC;gBACvD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,UAAU,CAAC,GAAG,CACZ,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,WAAW,EAC/B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,CAC/B,CAAC;YAEF,iEAAiE;YACjE,MAAM,qBAAqB,GAAG;gBAC5B,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,oBAAoB;gBAChC,YAAY,EAAE,0BAA0B;gBACxC,OAAO,EAAE,IAAI,EAAE,oCAAoC;gBACnD,YAAY,EAAE,yBAAyB;gBACvC,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC,EAAE,4CAA4C;gBAC1D,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,UAAU,CAAC,GAAG,CACZ,qBAAqB,CAAC,SAAS,EAC/B,qBAAqB,CAAC,UAAU,EAChC,qBAAqB,CAAC,YAAY,EAClC,qBAAqB,CAAC,OAAO,EAC7B,qBAAqB,CAAC,YAAY,EAClC,qBAAqB,CAAC,WAAW,EACjC,qBAAqB,CAAC,SAAS,EAC/B,qBAAqB,CAAC,SAAS,EAC/B,qBAAqB,CAAC,UAAU,CACjC,CAAC;YAEF,gEAAgE;YAChE,MAAM,mBAAmB,GAAG;gBAC1B,SAAS,EAAE,YAAY;gBACvB,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,2BAA2B;gBACzC,OAAO,EAAE,IAAI,EAAE,0CAA0C;gBACzD,YAAY,EAAE,2BAA2B;gBACzC,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC,EAAE,yCAAyC;gBACvD,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,UAAU,CAAC,GAAG,CACZ,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,EAC9B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,OAAO,EAC3B,mBAAmB,CAAC,YAAY,EAChC,mBAAmB,CAAC,WAAW,EAC/B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,SAAS,EAC7B,mBAAmB,CAAC,UAAU,CAC/B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpC,mEAAmE;QACnE,uEAAuE;QACvE,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,wBAAwB;QACxB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAEtD,mDAAmD;QACnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;KAIX,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAET,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAmB;QACzC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC;YACP,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,WAAW,IAAI,IAAI;YAC1B,MAAM,CAAC,MAAM,IAAI,IAAI;YACrB,MAAM,CAAC,WAAW,IAAI,IAAI;YAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,+BAA+B;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAW,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;KAK5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE;QACtC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAO5B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEZ,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAClC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;;KAIX,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAET,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAW,EAAE,KAAa;QAChD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;;;KAGX,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAEjB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACjC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAExF,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAuB,CAAC;YACvD,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACxE,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAoC,CAAC;YACjE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,8DAA8D;IACtD,mBAAmB,CAAC,GAAQ;QAClC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7D,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACjE,CAAC;IACJ,CAAC;IAED,2DAA2D;IAE3D;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAAkB,EAAE,UAAkB,EAAE,eAAuB;QACvF,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,0CAA0C;QAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQZ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QAE9C,8CAA8C;QAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;KAIZ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEjB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,IAAY,EAAE,GAAW,EAAE,WAAoB,EAAE,SAAS,GAAG,KAAK;QAC7G,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;QAExB,gEAAgE;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;OAIZ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;KAGZ,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAW,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;KAK5B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAAkB,EAAE,GAAW,EAAE,KAAa;QACtE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC;QAChD,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1B,kBAAkB;QAClB,4CAA4C;QAC5C,wCAAwC;QACxC,iCAAiC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;KAoB5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,SAAS;YAC1B,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;SACpC,CAAC;IACJ,CAAC;CACF;AAED,uCAAuC;AACvC,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,gBAAgB,EAAE,CAAC;QACrB,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACzB,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { getFSSLinkDatabase } from './database.js';
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ import * as os from 'os';
11
+ describe('FSS Link Database Initialization', () => {
12
+ let testDbPath;
13
+ beforeEach(async () => {
14
+ // Create temporary database for testing
15
+ testDbPath = path.join(os.tmpdir(), `test-fss-link-init-${Date.now()}.db`);
16
+ // Override the database path for testing
17
+ process.env['FSS_LINK_TEST_DB'] = testDbPath;
18
+ });
19
+ afterEach(async () => {
20
+ // Clean up test database
21
+ if (fs.existsSync(testDbPath)) {
22
+ fs.unlinkSync(testDbPath);
23
+ }
24
+ delete process.env['FSS_LINK_TEST_DB'];
25
+ });
26
+ it('should create default configurations on first initialization', async () => {
27
+ const db = await getFSSLinkDatabase();
28
+ await db.initialize();
29
+ // Check that default configurations were created
30
+ const allConfigs = await db.getAllModels();
31
+ console.log('All configurations:', JSON.stringify(allConfigs, null, 2));
32
+ expect(allConfigs).toBeDefined();
33
+ expect(allConfigs.length).toBeGreaterThan(0);
34
+ // Should have default Ollama config
35
+ const ollamaConfig = allConfigs.find(c => c.authType === 'ollama');
36
+ expect(ollamaConfig).toBeDefined();
37
+ expect(ollamaConfig?.modelName).toBe('qwen3-coder:latest');
38
+ expect(ollamaConfig?.isActive).toBe(true);
39
+ expect(ollamaConfig?.isFavorite).toBe(true);
40
+ // Should have default Gemini config (inactive)
41
+ const geminiConfig = allConfigs.find(c => c.authType === 'gemini');
42
+ expect(geminiConfig).toBeDefined();
43
+ expect(geminiConfig?.modelName).toBe('gemini-2.5-flash-thinking');
44
+ expect(geminiConfig?.isActive).toBe(false);
45
+ // Should have default LM Studio config (active)
46
+ const lmStudioConfig = allConfigs.find(c => c.authType === 'lmstudio');
47
+ expect(lmStudioConfig).toBeDefined();
48
+ expect(lmStudioConfig?.modelName).toBe('qwen3-coder:latest');
49
+ expect(lmStudioConfig?.isActive).toBe(true);
50
+ // Should have default OpenAI config (inactive)
51
+ const openaiConfig = allConfigs.find(c => c.authType === 'openai');
52
+ expect(openaiConfig).toBeDefined();
53
+ expect(openaiConfig?.modelName).toBe('gpt-4o');
54
+ expect(openaiConfig?.endpointUrl).toBe('https://api.openai.com/v1');
55
+ expect(openaiConfig?.displayName).toBe('GPT-4o (Requires API Key)');
56
+ expect(openaiConfig?.isActive).toBe(false);
57
+ });
58
+ it('should return smart default provider', async () => {
59
+ const db = await getFSSLinkDatabase();
60
+ await db.initialize();
61
+ const defaultProvider = await db.getSmartDefaultProvider();
62
+ expect(defaultProvider).toBeDefined();
63
+ expect(defaultProvider?.authType).toBe('ollama');
64
+ expect(defaultProvider?.modelName).toBe('qwen3-coder:latest');
65
+ expect(defaultProvider?.isActive).toBe(true);
66
+ expect(defaultProvider?.isFavorite).toBe(true);
67
+ });
68
+ it('should not duplicate default configurations on subsequent initializations', async () => {
69
+ const db = await getFSSLinkDatabase();
70
+ // First initialization
71
+ await db.initialize();
72
+ const firstCount = (await db.getAllModels()).length;
73
+ // Second initialization should not add more defaults
74
+ await db.initialize();
75
+ const secondCount = (await db.getAllModels()).length;
76
+ expect(firstCount).toBe(secondCount);
77
+ expect(firstCount).toBe(4); // Should have exactly 4 default configs: Ollama, Gemini, LM Studio, OpenAI
78
+ });
79
+ });
80
+ //# sourceMappingURL=database.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.test.js","sourceRoot":"","sources":["../../../src/config/database.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthType, ModelConfig } from 'fss-link-core';
7
+ /**
8
+ * Comprehensive Provider Manager
9
+ * Handles all provider configurations, persistence, and smart defaults
10
+ */
11
+ export declare class ProviderManager {
12
+ private static instance;
13
+ static getInstance(): ProviderManager;
14
+ /**
15
+ * Get all configured providers with usage statistics
16
+ */
17
+ getAllProviders(): Promise<ModelConfig[]>;
18
+ /**
19
+ * Get smart default provider based on usage and user preferences
20
+ */
21
+ getDefaultProvider(): Promise<ModelConfig | null>;
22
+ /**
23
+ * Save provider configuration with automatic usage tracking setup
24
+ */
25
+ saveProvider(config: ModelConfig): Promise<number>;
26
+ /**
27
+ * Record provider usage for intelligent defaults
28
+ */
29
+ recordUsage(providerId: number, tokensUsed: number, sessionDurationMs: number): Promise<void>;
30
+ /**
31
+ * Get custom endpoints for a provider
32
+ */
33
+ getCustomEndpoints(providerId: number): Promise<Array<Record<string, unknown>>>;
34
+ /**
35
+ * Save custom endpoint
36
+ */
37
+ saveCustomEndpoint(providerId: number, name: string, url: string, description?: string, isDefault?: boolean): Promise<number>;
38
+ /**
39
+ * Get provider-specific settings (like sampling params, API keys, etc.)
40
+ */
41
+ getProviderSettings(providerId: number): Promise<Record<string, unknown>>;
42
+ /**
43
+ * Save provider-specific setting
44
+ */
45
+ saveProviderSetting(providerId: number, key: string, value: unknown): Promise<void>;
46
+ /**
47
+ * Get providers by type (OpenAI, Ollama, etc.)
48
+ */
49
+ getProvidersByType(authType: AuthType): Promise<ModelConfig[]>;
50
+ /**
51
+ * Mark provider as favorite (affects smart default selection)
52
+ */
53
+ setFavoriteProvider(providerId: number, isFavorite: boolean): Promise<void>;
54
+ /**
55
+ * Update provider configuration
56
+ */
57
+ updateProvider(providerId: number, updates: Partial<ModelConfig>): Promise<void>;
58
+ /**
59
+ * Delete provider configuration
60
+ */
61
+ deleteProvider(providerId: number): Promise<void>;
62
+ /**
63
+ * Get usage statistics for all providers
64
+ */
65
+ getUsageStatistics(): Promise<Record<number, unknown>>;
66
+ /**
67
+ * Auto-configure provider based on successful authentication
68
+ */
69
+ autoConfigureFromSuccess(authType: AuthType, modelName: string, endpointUrl?: string, apiKey?: string, additionalConfig?: Record<string, unknown>): Promise<number>;
70
+ /**
71
+ * Get recommended providers based on usage patterns
72
+ */
73
+ getRecommendedProviders(limit?: number): Promise<ModelConfig[]>;
74
+ }