gitextract_slssybq4/ ├── .dockerignore ├── .eslintrc.common.js ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── BUG.yml │ │ ├── CUSTOM.yml │ │ ├── FEATURE.yml │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── custom.md │ │ └── feature_request.md │ └── workflows/ │ ├── docker_test.yml │ ├── electron_build_linux.yml │ ├── electron_build_macos.yml │ ├── electron_build_windows.yml │ ├── electron_linux_test.yml │ ├── electron_macos_test.yml │ ├── linux_test.yml │ ├── macos_test.yml │ ├── on_release.yml │ ├── package_version_increased.yml │ └── windows_test.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ └── settings.json ├── DB-Dockerfile ├── Dockerfile ├── LICENSE ├── PRIVACY ├── README.md ├── SECURITY.md ├── changelog/ │ ├── v1.0.0.md │ ├── v2.0.0.md │ ├── v2.2.0.md │ ├── v2.2.1.md │ ├── v2.2.2.md │ ├── v2.2.3.md │ └── v2.2.4.md ├── client/ │ ├── .babelrc │ ├── .gitignore │ ├── build.sh │ ├── eslint.config.mjs │ ├── package.json │ ├── public/ │ │ ├── manifest.json │ │ └── robots.txt │ ├── setup-icons.js │ ├── src/ │ │ ├── App.css │ │ ├── App.tsx │ │ ├── Testing.ts │ │ ├── WithPrgl.tsx │ │ ├── app/ │ │ │ ├── CommandPalette/ │ │ │ │ ├── CommandPalette.css │ │ │ │ ├── CommandPalette.tsx │ │ │ │ ├── Documentation.css │ │ │ │ ├── Documentation.tsx │ │ │ │ ├── getDocumentation.ts │ │ │ │ ├── getUIDocShortestPath.ts │ │ │ │ ├── useGoToUI.tsx │ │ │ │ ├── useHighlightDocItem.ts │ │ │ │ └── utils.ts │ │ │ ├── UIDocs/ │ │ │ │ ├── UIInstallationUIDoc.ts │ │ │ │ ├── accountUIDoc.ts │ │ │ │ ├── commandPaletteUIDoc.ts │ │ │ │ ├── connection/ │ │ │ │ │ ├── AIAssistantUIDoc.ts │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── accessControlUIDoc.ts │ │ │ │ │ │ ├── apiUIDoc.ts │ │ │ │ │ │ ├── backupAndRestoreUIDoc.ts │ │ │ │ │ │ └── fileStorageUIDoc.ts │ │ │ │ │ ├── connectionConfigUIDoc.ts │ │ │ │ │ ├── dashboard/ │ │ │ │ │ │ ├── dashboardContentUIDoc.ts │ │ │ │ │ │ ├── dashboardMenuUIDoc.ts │ │ │ │ │ │ ├── mapUIDoc.ts │ │ │ │ │ │ ├── serverSideFunctionUIDoc.ts │ │ │ │ │ │ ├── sqlEditorUIDoc.ts │ │ │ │ │ │ ├── table/ │ │ │ │ │ │ │ ├── addColumnMenuUIDoc.ts │ │ │ │ │ │ │ ├── columnMenuUIDoc.ts │ │ │ │ │ │ │ ├── paginationUIDoc.ts │ │ │ │ │ │ │ ├── smartFilterBarUIDoc.ts │ │ │ │ │ │ │ ├── smartFormUIDoc.ts │ │ │ │ │ │ │ ├── tableMenuUIDoc.ts │ │ │ │ │ │ │ └── tableUIDoc.ts │ │ │ │ │ │ └── timechartUIDoc.ts │ │ │ │ │ ├── dashboardUIDoc.ts │ │ │ │ │ └── getCommonViewHeaderUIDoc.ts │ │ │ │ ├── connectionsUIDoc.ts │ │ │ │ ├── desktopInstallation.ts │ │ │ │ ├── editConnectionUIDoc.ts │ │ │ │ ├── navbarUIDoc.ts │ │ │ │ ├── overviewUIDoc.ts │ │ │ │ └── serverSettingsUIDoc.ts │ │ │ ├── UIDocs.ts │ │ │ ├── XRealIpSpoofableAlert.tsx │ │ │ └── domToSVG/ │ │ │ ├── SVGif/ │ │ │ │ ├── addSVGifCaption.ts │ │ │ │ ├── addSVGifPointer.ts │ │ │ │ ├── addSVGifTimelineControls.ts │ │ │ │ ├── animations/ │ │ │ │ │ ├── getSVGifCursorAnimationHandler.ts │ │ │ │ │ ├── getSVGifTypeAnimation.ts │ │ │ │ │ └── getSVGifZoomToAnimation.ts │ │ │ │ ├── compressSVGif.ts │ │ │ │ ├── getSVGif.ts │ │ │ │ ├── getSVGifAnimations.ts │ │ │ │ ├── getSVGifParsedScenes.ts │ │ │ │ ├── getSVGifRevealKeyframes.ts │ │ │ │ └── getSVGifTargetBBox.ts │ │ │ ├── addFragmentViewBoxes.ts │ │ │ ├── containers/ │ │ │ │ ├── addOverflowClipPath.ts │ │ │ │ ├── bgAndBorderToSVG.ts │ │ │ │ ├── deduplicateSVGPaths.ts │ │ │ │ ├── elementToSVG.ts │ │ │ │ ├── rectangleToSVG.ts │ │ │ │ └── shadowToSVG.ts │ │ │ ├── domToSVG.ts │ │ │ ├── domToThemeAwareSVG.ts │ │ │ ├── getCorrespondingDarkNode.ts │ │ │ ├── graphics/ │ │ │ │ ├── fontIconToSVG.ts │ │ │ │ ├── getForeignObject.ts │ │ │ │ └── imgToSVG.ts │ │ │ ├── recordDomChanges.ts │ │ │ ├── setThemeForSVGScreenshot.ts │ │ │ ├── text/ │ │ │ │ ├── getTextForSVG.ts │ │ │ │ └── textToSVG.ts │ │ │ └── utils/ │ │ │ ├── addNewChildren.ts │ │ │ ├── canvasToDataURL.ts │ │ │ ├── copyAnimationStylesToSvg.ts │ │ │ ├── getWhatToRenderOnSVG.ts │ │ │ ├── isElementVisible.ts │ │ │ └── toFixed.ts │ │ ├── appUtils.ts │ │ ├── components/ │ │ │ ├── AlertProvider.tsx │ │ │ ├── Animations.css │ │ │ ├── Animations.tsx │ │ │ ├── Btn.css │ │ │ ├── Btn.tsx │ │ │ ├── ButtonBar.tsx │ │ │ ├── ButtonGroup.tsx │ │ │ ├── Chat/ │ │ │ │ ├── Chat.css │ │ │ │ ├── Chat.tsx │ │ │ │ ├── ChatFileAttachments/ │ │ │ │ │ └── ChatFileAttachments.tsx │ │ │ │ ├── ChatMessage.tsx │ │ │ │ ├── ChatSendControls.tsx │ │ │ │ ├── ChatSpeech/ │ │ │ │ │ ├── ChatSpeech.tsx │ │ │ │ │ ├── ChatSpeechSetup.tsx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── SpeechRecorder.ts │ │ │ │ │ │ ├── renderSpeechAudioLevelsIcon.ts │ │ │ │ │ │ ├── useSpeechRecorder.ts │ │ │ │ │ │ └── useSpeechToTextWeb.ts │ │ │ │ │ └── useChatSpeechSetup.ts │ │ │ │ ├── Marked.css │ │ │ │ ├── Marked.tsx │ │ │ │ ├── MonacoCodeInMarkdown/ │ │ │ │ │ ├── MarkdownMonacoCodeHeader.tsx │ │ │ │ │ ├── MonacoCodeInMarkdown.tsx │ │ │ │ │ └── useOnRunSQL.ts │ │ │ │ ├── useChatOnPaste.ts │ │ │ │ └── useChatState.ts │ │ │ ├── Checkbox.css │ │ │ ├── Checkbox.tsx │ │ │ ├── Chip.css │ │ │ ├── Chip.tsx │ │ │ ├── ClickCatch.tsx │ │ │ ├── ClickCatchOverlay.css │ │ │ ├── ClickCatchOverlay.tsx │ │ │ ├── ConfirmationDialog.tsx │ │ │ ├── CopyToClipboardBtn.tsx │ │ │ ├── DragOverUpload/ │ │ │ │ ├── DragOverUpload.css │ │ │ │ └── DragOverUpload.tsx │ │ │ ├── DraggableLI.tsx │ │ │ ├── ErrorComponent.tsx │ │ │ ├── ExpandSection.tsx │ │ │ ├── Expander.tsx │ │ │ ├── FileBrowser/ │ │ │ │ ├── FileBrowser.tsx │ │ │ │ └── FileBrowserCurrentDirectory.tsx │ │ │ ├── FileInput/ │ │ │ │ ├── DropZone.tsx │ │ │ │ ├── FileInput.tsx │ │ │ │ ├── FileInputMedia.tsx │ │ │ │ └── useFileDropZone.ts │ │ │ ├── FlashMessage.tsx │ │ │ ├── Flex.tsx │ │ │ ├── FormField/ │ │ │ │ ├── FormField.css │ │ │ │ ├── FormField.tsx │ │ │ │ ├── FormFieldCodeEditor.tsx │ │ │ │ ├── FormFieldDebounced.tsx │ │ │ │ ├── FormFieldSkeleton.tsx │ │ │ │ └── onFormFieldKeyDown.ts │ │ │ ├── Hotkey.css │ │ │ ├── Hotkey.tsx │ │ │ ├── Icon/ │ │ │ │ └── Icon.tsx │ │ │ ├── IconPalette/ │ │ │ │ └── IconPalette.tsx │ │ │ ├── InfoRow.tsx │ │ │ ├── Input.tsx │ │ │ ├── JSONBSchema/ │ │ │ │ ├── JSONBSchema.tsx │ │ │ │ ├── JSONBSchemaAllowedOptions.tsx │ │ │ │ ├── JSONBSchemaArray.tsx │ │ │ │ ├── JSONBSchemaLookup.tsx │ │ │ │ ├── JSONBSchemaObject.tsx │ │ │ │ ├── JSONBSchemaOneOfType.tsx │ │ │ │ ├── JSONBSchemaPrimitive.tsx │ │ │ │ ├── JSONBSchemaRecord.tsx │ │ │ │ └── isCompleteJSONB.ts │ │ │ ├── JsonRenderer.tsx │ │ │ ├── Label.css │ │ │ ├── Label.tsx │ │ │ ├── LabeledRow.tsx │ │ │ ├── List.css │ │ │ ├── List.tsx │ │ │ ├── Loader/ │ │ │ │ ├── Loading.css │ │ │ │ ├── Loading.tsx │ │ │ │ ├── SpinnerV2.tsx │ │ │ │ ├── SpinnerV3.tsx │ │ │ │ └── SpinnerV4.tsx │ │ │ ├── MediaViewer/ │ │ │ │ ├── MediaViewer.tsx │ │ │ │ └── RenderMedia.tsx │ │ │ ├── MenuList.css │ │ │ ├── MenuList.tsx │ │ │ ├── MenuListItem.tsx │ │ │ ├── MonacoEditor/ │ │ │ │ ├── MonacoEditor.tsx │ │ │ │ ├── useMonacoEditorAddActions.ts │ │ │ │ └── useWhyDidYouUpdate.ts │ │ │ ├── MonacoLogRenderer/ │ │ │ │ └── MonacoLogRenderer.tsx │ │ │ ├── NavBar/ │ │ │ │ ├── NavBar.css │ │ │ │ ├── NavBar.tsx │ │ │ │ ├── NavBarWrapper.tsx │ │ │ │ └── useNavBarItems.ts │ │ │ ├── Pan.tsx │ │ │ ├── Popup/ │ │ │ │ ├── Footer.tsx │ │ │ │ ├── FooterButtons.tsx │ │ │ │ ├── Popup.css │ │ │ │ ├── Popup.tsx │ │ │ │ ├── PopupHeader.tsx │ │ │ │ ├── getPopupPosition.ts │ │ │ │ ├── getPopupStyle.ts │ │ │ │ └── popupCheckPosition.ts │ │ │ ├── PopupMenu.tsx │ │ │ ├── PopupMenuList.tsx │ │ │ ├── PostgresInstallationInstructions.tsx │ │ │ ├── ProgressBar.css │ │ │ ├── ProgressBar.tsx │ │ │ ├── QRCodeImage.tsx │ │ │ ├── Scheduler.css │ │ │ ├── Scheduler.tsx │ │ │ ├── ScrollFade/ │ │ │ │ ├── ScrollFade.tsx │ │ │ │ └── useResizeObserver.ts │ │ │ ├── SearchList/ │ │ │ │ ├── SearchInput.tsx │ │ │ │ ├── SearchList.css │ │ │ │ ├── SearchList.tsx │ │ │ │ ├── SearchListContent.tsx │ │ │ │ ├── SearchListItems.tsx │ │ │ │ ├── SearchListRowContent.tsx │ │ │ │ ├── getSearchListMatchAndHighlight.tsx │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useSearchListItems.tsx │ │ │ │ │ ├── useSearchListItemsSorting.ts │ │ │ │ │ ├── useSearchListOnClick.ts │ │ │ │ │ ├── useSearchListOnKeyUpDown.ts │ │ │ │ │ └── useSearchListSearch.ts │ │ │ │ └── searchMatchUtils/ │ │ │ │ ├── getItemSearchRank.ts │ │ │ │ └── getSearchRanking.ts │ │ │ ├── Section.tsx │ │ │ ├── Select/ │ │ │ │ ├── Select.css │ │ │ │ ├── Select.tsx │ │ │ │ └── SelectTriggerButton.tsx │ │ │ ├── ShorterText.tsx │ │ │ ├── SidePanel.tsx │ │ │ ├── Slider.css │ │ │ ├── Slider.tsx │ │ │ ├── StatusChip.tsx │ │ │ ├── Stepper.tsx │ │ │ ├── SvgIcon.tsx │ │ │ ├── SwitchToggle.css │ │ │ ├── SwitchToggle.tsx │ │ │ ├── Table/ │ │ │ │ ├── Pagination.tsx │ │ │ │ ├── Table.css │ │ │ │ ├── Table.tsx │ │ │ │ ├── TableBody.tsx │ │ │ │ ├── TableHeader.tsx │ │ │ │ ├── TableRow.tsx │ │ │ │ └── useVirtualisedRows.ts │ │ │ ├── Tabs.tsx │ │ │ └── Tooltip.tsx │ │ ├── dashboard/ │ │ │ ├── API/ │ │ │ │ └── zip.ts │ │ │ ├── AccessControl/ │ │ │ │ ├── AccessControl.tsx │ │ │ │ ├── AccessControlRuleEditor.tsx │ │ │ │ ├── AccessRuleEditorFooter.tsx │ │ │ │ ├── AccessRuleSummary.tsx │ │ │ │ ├── ContextDataSelector.tsx │ │ │ │ ├── ContextFilter.tsx │ │ │ │ ├── ExistingAccessRules.tsx │ │ │ │ ├── Methods/ │ │ │ │ │ ├── ArgumentDefinition.tsx │ │ │ │ │ ├── MethodDefinition.tsx │ │ │ │ │ ├── MethodDefinitionEditAsJson.tsx │ │ │ │ │ ├── MethodFunctionDefinition.tsx │ │ │ │ │ ├── ReferencesDefinition.tsx │ │ │ │ │ └── useCodeEditorTsTypes.ts │ │ │ │ ├── OptionControllers/ │ │ │ │ │ ├── DynamicFields.tsx │ │ │ │ │ ├── FieldFilterControl.tsx │ │ │ │ │ └── FilterControl.tsx │ │ │ │ ├── PasswordlessSetup.tsx │ │ │ │ ├── PermissionTypes/ │ │ │ │ │ ├── PAllTables.tsx │ │ │ │ │ ├── PCustomTables.tsx │ │ │ │ │ └── PRunSQL.tsx │ │ │ │ ├── PublishedWorkspaceSelector.tsx │ │ │ │ ├── RuleTypeControls/ │ │ │ │ │ ├── ComparablePGPolicies.tsx │ │ │ │ │ ├── DeleteRuleControl.tsx │ │ │ │ │ ├── ExampleComparablePolicy.tsx │ │ │ │ │ ├── InsertRuleControl.tsx │ │ │ │ │ ├── RuleToggle.tsx │ │ │ │ │ ├── SelectRuleControl.tsx │ │ │ │ │ ├── SyncRuleControl.tsx │ │ │ │ │ ├── UpdateRuleControl.tsx │ │ │ │ │ └── getComparablePGPolicy.ts │ │ │ │ ├── TableRules/ │ │ │ │ │ ├── FileTableAccessControlInfo.tsx │ │ │ │ │ ├── TablePermissionControls.tsx │ │ │ │ │ ├── TableRulesPopup.tsx │ │ │ │ │ └── useLocalTableRulesErrors.ts │ │ │ │ ├── UserStats.tsx │ │ │ │ ├── UserSyncConfig.tsx │ │ │ │ ├── UserTypeSelect.tsx │ │ │ │ ├── useAccessControlSearchParams.ts │ │ │ │ └── useEditedAccessRule.ts │ │ │ ├── AskLLM/ │ │ │ │ ├── AskLLM.tsx │ │ │ │ ├── Chat/ │ │ │ │ │ ├── AskLLMChat.tsx │ │ │ │ │ ├── AskLLMChatHeader.tsx │ │ │ │ │ ├── AskLLMChatMessages/ │ │ │ │ │ │ ├── LLMChatMessage/ │ │ │ │ │ │ │ ├── LLMChatMessage.tsx │ │ │ │ │ │ │ ├── LLMChatMessageContent.tsx │ │ │ │ │ │ │ ├── LLMChatMessageContentText.tsx │ │ │ │ │ │ │ ├── LLMChatMessageHeader.tsx │ │ │ │ │ │ │ ├── LLMGroupedToolCallsMessage.tsx │ │ │ │ │ │ │ └── LLMSingleChatMessage.tsx │ │ │ │ │ │ ├── ProstglesToolUseMessage/ │ │ │ │ │ │ │ ├── ProstglesMCPTools/ │ │ │ │ │ │ │ │ ├── DockerSandboxCreateContainer.tsx │ │ │ │ │ │ │ │ ├── ExecuteSQL.tsx │ │ │ │ │ │ │ │ ├── LoadSuggestedDashboards.tsx │ │ │ │ │ │ │ │ ├── LoadSuggestedToolsAndPrompt/ │ │ │ │ │ │ │ │ │ ├── LoadSuggestedToolsAndPrompt.tsx │ │ │ │ │ │ │ │ │ └── LoadSuggestedToolsAndPromptLoadBtn.tsx │ │ │ │ │ │ │ │ ├── LoadSuggestedWorkflow.tsx │ │ │ │ │ │ │ │ ├── WebSearch/ │ │ │ │ │ │ │ │ │ ├── Favicon.tsx │ │ │ │ │ │ │ │ │ └── WebSearch.tsx │ │ │ │ │ │ │ │ └── common/ │ │ │ │ │ │ │ │ ├── DatabaseAccessPermissions.tsx │ │ │ │ │ │ │ │ ├── HeaderList.tsx │ │ │ │ │ │ │ │ └── useTypedToolUseResultData.ts │ │ │ │ │ │ │ └── ProstglesToolUseMessage.tsx │ │ │ │ │ │ ├── ToolUseChatMessage/ │ │ │ │ │ │ │ ├── PopupSection.tsx │ │ │ │ │ │ │ ├── ToolUseChatMessage.tsx │ │ │ │ │ │ │ ├── ToolUseChatMessageBtn.tsx │ │ │ │ │ │ │ ├── ToolUseChatMessageBtnTextSummary.tsx │ │ │ │ │ │ │ ├── ToolUseChatMessageJSONData.tsx │ │ │ │ │ │ │ ├── ToolUseChatMessageResult.tsx │ │ │ │ │ │ │ ├── useToolUseChatMessage.ts │ │ │ │ │ │ │ └── utils/ │ │ │ │ │ │ │ └── getToolUseResult.ts │ │ │ │ │ │ └── hooks/ │ │ │ │ │ │ ├── useLLMChatMessageGrouper.tsx │ │ │ │ │ │ └── useLLMChatMessages.tsx │ │ │ │ │ ├── AskLLMChatOptions.tsx │ │ │ │ │ ├── useAskLLMChatSend.ts │ │ │ │ │ ├── useLLMChat.tsx │ │ │ │ │ └── useLLMSchemaStr.ts │ │ │ │ ├── ChatActionBar/ │ │ │ │ │ ├── AskLLMChatActionBar.tsx │ │ │ │ │ ├── AskLLMChatActionBarDatabaseAccess.tsx │ │ │ │ │ ├── AskLLMChatActionBarMCPTools.tsx │ │ │ │ │ ├── AskLLMChatActionBarMCPToolsBtn.tsx │ │ │ │ │ ├── AskLLMChatActionBarModelSelector.tsx │ │ │ │ │ └── AskLLMChatActionBarPromptSelector.tsx │ │ │ │ ├── Setup/ │ │ │ │ │ ├── AddLLMPromptForm.tsx │ │ │ │ │ ├── AskLLMAccessControl.tsx │ │ │ │ │ ├── LLMProviderSetup.tsx │ │ │ │ │ ├── ProstglesSignup.tsx │ │ │ │ │ ├── SetupLLMCredentials.tsx │ │ │ │ │ └── useLLMSetupState.ts │ │ │ │ ├── Tools/ │ │ │ │ │ ├── AskLLMToolApprover.tsx │ │ │ │ │ ├── loadGeneratedWorkspaces/ │ │ │ │ │ │ ├── loadGeneratedBarchart.ts │ │ │ │ │ │ ├── loadGeneratedMap.ts │ │ │ │ │ │ ├── loadGeneratedTimechart.ts │ │ │ │ │ │ └── loadGeneratedWorkspaces.ts │ │ │ │ │ └── useLLMToolsApprover.tsx │ │ │ │ └── useLocalLLM.ts │ │ │ ├── BackupAndRestore/ │ │ │ │ ├── AutomaticBackups.tsx │ │ │ │ ├── BackupsControls.tsx │ │ │ │ ├── BackupsInProgress.tsx │ │ │ │ ├── CloudStorageCredentialSelector.tsx │ │ │ │ ├── CodeConfirmation.tsx │ │ │ │ ├── CompletedBackups.tsx │ │ │ │ ├── DumpLocationOptions.tsx │ │ │ │ ├── DumpRestoreAlerts.tsx │ │ │ │ ├── PGDumpOptions.tsx │ │ │ │ ├── RenderBackupLogs.tsx │ │ │ │ ├── RenderBackupStatus.tsx │ │ │ │ ├── Restore/ │ │ │ │ │ ├── Restore.tsx │ │ │ │ │ └── RestoreOptions.tsx │ │ │ │ └── useBackupsControlsState.ts │ │ │ ├── Charts/ │ │ │ │ ├── CanvasChart.ts │ │ │ │ ├── TimeChart/ │ │ │ │ │ ├── TimeChart.tsx │ │ │ │ │ ├── getBinValueLabels.ts │ │ │ │ │ ├── getTimeAxisTicks.ts │ │ │ │ │ ├── getTimechartBinSize.ts │ │ │ │ │ ├── getTimechartTooltipIntersections.ts │ │ │ │ │ ├── getTimechartTooltipShapes.ts │ │ │ │ │ ├── measureText.ts │ │ │ │ │ ├── onDeltaTimechart.ts │ │ │ │ │ ├── onRenderTimechart.ts │ │ │ │ │ └── prepareTimechartData.ts │ │ │ │ ├── createHiPPICanvas.ts │ │ │ │ ├── drawMonotoneXCurve.ts │ │ │ │ ├── drawShapes/ │ │ │ │ │ ├── drawLinkLine.ts │ │ │ │ │ ├── drawShapes.ts │ │ │ │ │ ├── drawShapesOnSVG.ts │ │ │ │ │ ├── findShortestPathAroundRectangles.ts │ │ │ │ │ ├── getTimechartGradientPeakSections.ts │ │ │ │ │ └── shortestLinkLineV2.ts │ │ │ │ └── roundRect.ts │ │ │ ├── Charts.tsx │ │ │ ├── CodeEditor/ │ │ │ │ ├── CodeEditor.tsx │ │ │ │ ├── CodeEditorWithSaveButton.tsx │ │ │ │ ├── monacoTsLibs.ts │ │ │ │ ├── registerLogLang.ts │ │ │ │ └── utils/ │ │ │ │ ├── getMonacoJsonSchemas.ts │ │ │ │ ├── setMonacoErrorMarkers.ts │ │ │ │ ├── useSetMonacoJsonSchemas.ts │ │ │ │ └── useSetMonacoTsLibraries.ts │ │ │ ├── CodeExample.tsx │ │ │ ├── ConnectionConfig/ │ │ │ │ ├── APIDetails/ │ │ │ │ │ ├── APICodeExamples.tsx │ │ │ │ │ ├── APIDetails.tsx │ │ │ │ │ ├── APIDetailsHttp.tsx │ │ │ │ │ ├── APIDetailsTokens.tsx │ │ │ │ │ ├── APIDetailsWs.tsx │ │ │ │ │ └── AllowedOriginCheck.tsx │ │ │ │ ├── ConnectionConfig.tsx │ │ │ │ ├── ServerSideFunctions.tsx │ │ │ │ └── useConnectionConfigSearchParams.ts │ │ │ ├── ConnectionSelector.tsx │ │ │ ├── Dashboard/ │ │ │ │ ├── CloseSaveSQLPopup.tsx │ │ │ │ ├── DBS.ts │ │ │ │ ├── Dashboard.tsx │ │ │ │ ├── DashboardCenteredLayoutResizer.tsx │ │ │ │ ├── PALETTE.ts │ │ │ │ ├── ViewRenderer.tsx │ │ │ │ ├── cloneWorkspace.ts │ │ │ │ ├── dashboardUtils.ts │ │ │ │ ├── debuggingUtils.ts │ │ │ │ ├── getTables.ts │ │ │ │ ├── getViewRendererUtils.ts │ │ │ │ └── loadTable.ts │ │ │ ├── DashboardMenu/ │ │ │ │ ├── CreateTable.tsx │ │ │ │ ├── DashboardHotkeys.tsx │ │ │ │ ├── DashboardMenu.tsx │ │ │ │ ├── DashboardMenuContent.tsx │ │ │ │ ├── DashboardMenuHeader.tsx │ │ │ │ ├── DashboardMenuHotkeys.tsx │ │ │ │ ├── DashboardMenuResizer.tsx │ │ │ │ ├── DashboardMenuSettings.tsx │ │ │ │ ├── NewTableMenu.tsx │ │ │ │ ├── SettingsSection.tsx │ │ │ │ └── useTableSizeInfo.ts │ │ │ ├── DetailedFilterControl/ │ │ │ │ ├── DetailedFilterBaseControl.tsx │ │ │ │ ├── DetailedFilterBaseControlRouter.tsx │ │ │ │ ├── DetailedFilterBaseTypes/ │ │ │ │ │ ├── AgeFilter.tsx │ │ │ │ │ ├── GeoFilter.tsx │ │ │ │ │ ├── ListFilter/ │ │ │ │ │ │ ├── ListFilter.tsx │ │ │ │ │ │ └── fetchListFilterOptions.ts │ │ │ │ │ └── NumberOrDateFilter.tsx │ │ │ │ ├── DetailedFilterControl.tsx │ │ │ │ ├── FTS_LANGUAGES.ts │ │ │ │ ├── FilterWrapper.css │ │ │ │ ├── FilterWrapper.tsx │ │ │ │ └── validateFilter.ts │ │ │ ├── Feedback.tsx │ │ │ ├── FileImporter/ │ │ │ │ ├── FileImporter.tsx │ │ │ │ ├── FileImporterFooter.tsx │ │ │ │ ├── checkCSVColumnDataTypes.tsx │ │ │ │ ├── importFile.ts │ │ │ │ ├── parseCSVFile.ts │ │ │ │ └── setFile.ts │ │ │ ├── FileTableControls/ │ │ │ │ ├── CreateFileColumn.tsx │ │ │ │ ├── FileColumnConfigControls.tsx │ │ │ │ ├── FileColumnConfigEditor.tsx │ │ │ │ ├── FileStorageControls.tsx │ │ │ │ ├── FileStorageDelete.tsx │ │ │ │ ├── FileStorageReferencedTablesConfig.tsx │ │ │ │ ├── FileTableConfigControls.tsx │ │ │ │ └── useFileTableConfigControls.ts │ │ │ ├── JSONBColumnEditor.tsx │ │ │ ├── LinkMenu.tsx │ │ │ ├── Map/ │ │ │ │ ├── DeckGLFeatureEditor.tsx │ │ │ │ ├── DeckGLMap.css │ │ │ │ ├── DeckGLMap.tsx │ │ │ │ ├── DeckGLWrapped.ts │ │ │ │ ├── InMapControls.tsx │ │ │ │ ├── fitBounds.ts │ │ │ │ ├── mapDrawUtils.ts │ │ │ │ └── mapUtils.ts │ │ │ ├── RTComp.tsx │ │ │ ├── RenderFilter.tsx │ │ │ ├── SQLEditor/ │ │ │ │ ├── SQLCompletion/ │ │ │ │ │ ├── CommonMatchImports.ts │ │ │ │ │ ├── KEYWORDS.ts │ │ │ │ │ ├── MacthCreate/ │ │ │ │ │ │ ├── MatchCreate.ts │ │ │ │ │ │ ├── MatchCreateView.ts │ │ │ │ │ │ ├── matchCreateIndex.ts │ │ │ │ │ │ ├── matchCreatePolicy.ts │ │ │ │ │ │ ├── matchCreateRule.tsx │ │ │ │ │ │ ├── matchCreateTable.ts │ │ │ │ │ │ └── matchCreateTrigger.ts │ │ │ │ │ ├── MatchAlter/ │ │ │ │ │ │ ├── MatchAlter.tsx │ │ │ │ │ │ ├── matchAlterPolicy.ts │ │ │ │ │ │ ├── matchAlterTable.ts │ │ │ │ │ │ └── matchCreateOrAlterUser.tsx │ │ │ │ │ ├── MatchComment.ts │ │ │ │ │ ├── MatchCopy.ts │ │ │ │ │ ├── MatchDrop.ts │ │ │ │ │ ├── MatchFirst.ts │ │ │ │ │ ├── MatchGrant.ts │ │ │ │ │ ├── MatchInsert.tsx │ │ │ │ │ ├── MatchLast.ts │ │ │ │ │ ├── MatchPublication.ts │ │ │ │ │ ├── MatchReassign.ts │ │ │ │ │ ├── MatchReindex.ts │ │ │ │ │ ├── MatchSelect.ts │ │ │ │ │ ├── MatchSet.ts │ │ │ │ │ ├── MatchSubscription.ts │ │ │ │ │ ├── MatchUpdate.ts │ │ │ │ │ ├── MatchVacuum.ts │ │ │ │ │ ├── MatchWith.ts │ │ │ │ │ ├── MathDelete.ts │ │ │ │ │ ├── PSQL.ts │ │ │ │ │ ├── STARTING_KEYWORDS.ts │ │ │ │ │ ├── TableKWDs.ts │ │ │ │ │ ├── completionUtils/ │ │ │ │ │ │ ├── checkIfInsideDollarFunctionDefinition.ts │ │ │ │ │ │ ├── checkIfUnfinishedParenthesis.ts │ │ │ │ │ │ ├── getCodeBlock.ts │ │ │ │ │ │ ├── getQueryReturnType.ts │ │ │ │ │ │ ├── getTableExpressionReturnTypes.ts │ │ │ │ │ │ ├── getTabularExpressions.ts │ │ │ │ │ │ └── getTokens.ts │ │ │ │ │ ├── getExpected.ts │ │ │ │ │ ├── getJoinSuggestions.ts │ │ │ │ │ ├── getMatch.ts │ │ │ │ │ ├── getPGObjects.ts │ │ │ │ │ ├── getPrevTokensNoParantheses.ts │ │ │ │ │ ├── jsonbPathSuggest.ts │ │ │ │ │ ├── monacoSQLSetup/ │ │ │ │ │ │ ├── registerHover.ts │ │ │ │ │ │ └── registerSuggestions.ts │ │ │ │ │ ├── suggestColumnLike.ts │ │ │ │ │ ├── suggestCondition.ts │ │ │ │ │ ├── suggestFuncArgs.ts │ │ │ │ │ ├── suggestTableLike.ts │ │ │ │ │ ├── suggestValue.ts │ │ │ │ │ └── withKWDs.ts │ │ │ │ ├── SQLEditorSuggestions.ts │ │ │ │ ├── SQLSmartEditor.tsx │ │ │ │ ├── SQL_SNIPPETS.ts │ │ │ │ ├── W_SQLEditor.css │ │ │ │ ├── W_SQLEditor.tsx │ │ │ │ ├── addSqlEditorFunctions.ts │ │ │ │ ├── defineCustomMonacoSQLTheme.ts │ │ │ │ ├── getFormattedSql.ts │ │ │ │ ├── registerFunctionSuggestions.ts │ │ │ │ └── utils/ │ │ │ │ ├── scrollToLineIfNeeded.ts │ │ │ │ └── setMonacEditorError.ts │ │ │ ├── SampleSchemas.tsx │ │ │ ├── SchemaGraph/ │ │ │ │ ├── ERDSchema/ │ │ │ │ │ ├── ERDSchema.tsx │ │ │ │ │ ├── getInitialPlacement.ts │ │ │ │ │ ├── useCanvasPanZoom.ts │ │ │ │ │ ├── useDrawSchemaShapes.ts │ │ │ │ │ ├── useFetchSchemaForDiagram.ts │ │ │ │ │ ├── usePanShapes.ts │ │ │ │ │ └── useSchemaShapes.ts │ │ │ │ ├── SchemaGraph.tsx │ │ │ │ ├── SchemaGraphControls.tsx │ │ │ │ └── types.ts │ │ │ ├── SearchAll/ │ │ │ │ ├── SearchAll.tsx │ │ │ │ ├── SearchAllContent.tsx │ │ │ │ ├── SearchAllHeader.tsx │ │ │ │ ├── SearchMatchRow.tsx │ │ │ │ └── hooks/ │ │ │ │ ├── useSearchAllState.ts │ │ │ │ ├── useSearchListProps.tsx │ │ │ │ ├── useSearchTables.tsx │ │ │ │ └── useTablesAndViewsSearchItems.ts │ │ │ ├── SilverGrid/ │ │ │ │ ├── SilverGrid.tsx │ │ │ │ ├── SilverGridChild.tsx │ │ │ │ ├── SilverGridChildHeader.tsx │ │ │ │ ├── SilverGridResizer.tsx │ │ │ │ └── TreeBuilder.ts │ │ │ ├── SmartCard/ │ │ │ │ ├── SmartCard.tsx │ │ │ │ ├── SmartCardActions.tsx │ │ │ │ ├── SmartCardColumn.tsx │ │ │ │ ├── getSelectForFieldConfigs.ts │ │ │ │ ├── getSmartCardColumns.ts │ │ │ │ ├── parseFieldConfigs.tsx │ │ │ │ └── useFieldConfigParser.ts │ │ │ ├── SmartCardList/ │ │ │ │ ├── SmartCardList.tsx │ │ │ │ ├── SmartCardListHeaderControls.tsx │ │ │ │ ├── SmartCardListJoinedNewRecords.tsx │ │ │ │ └── useSmartCardListState.ts │ │ │ ├── SmartFilter/ │ │ │ │ ├── AddJoinFilter.tsx │ │ │ │ ├── MinimisedFilter.css │ │ │ │ ├── MinimisedFilter.tsx │ │ │ │ ├── SmartAddFilter.tsx │ │ │ │ ├── SmartFilter.tsx │ │ │ │ ├── SmartSearch/ │ │ │ │ │ ├── SmartSearch.css │ │ │ │ │ ├── SmartSearch.tsx │ │ │ │ │ ├── getSmartSearchRows.ts │ │ │ │ │ └── onSearchItems.tsx │ │ │ │ ├── SortByControl.tsx │ │ │ │ └── smartFilterUtils.ts │ │ │ ├── SmartFilterBar/ │ │ │ │ ├── SmartFilterBar.tsx │ │ │ │ ├── SmartFilterBarFilters.tsx │ │ │ │ ├── SmartFilterBarRightActions.tsx │ │ │ │ ├── SmartFilterBarSearch.tsx │ │ │ │ ├── SmartFilterBarSort.tsx │ │ │ │ └── useSmartFilterBarState.ts │ │ │ ├── SmartForm/ │ │ │ │ ├── ChipArrayEditor.tsx │ │ │ │ ├── InsertButton.tsx │ │ │ │ ├── JoinedRecords/ │ │ │ │ │ ├── JoinedRecords.tsx │ │ │ │ │ ├── JoinedRecordsAddRow.tsx │ │ │ │ │ ├── JoinedRecordsSection.tsx │ │ │ │ │ ├── getJoinFilter.ts │ │ │ │ │ ├── useJoinedRecordsSections.ts │ │ │ │ │ └── useJoinedSectionFieldConfigs.tsx │ │ │ │ ├── SmartForm.tsx │ │ │ │ ├── SmartFormField/ │ │ │ │ │ ├── RenderValue.tsx │ │ │ │ │ ├── SmartFormField.tsx │ │ │ │ │ ├── SmartFormFieldFileSection.tsx │ │ │ │ │ ├── SmartFormFieldForeignKey.tsx │ │ │ │ │ ├── SmartFormFieldLinkedData.tsx │ │ │ │ │ ├── SmartFormFieldLinkedDataInsert/ │ │ │ │ │ │ ├── SmartFormFieldLinkedDataInsert.tsx │ │ │ │ │ │ └── useSmartFormFieldLinkedDataInsert.tsx │ │ │ │ │ ├── SmartFormFieldLinkedDataSearch.tsx │ │ │ │ │ ├── SmartFormFieldRightButtons.tsx │ │ │ │ │ ├── ViewMoreSmartCardList.tsx │ │ │ │ │ ├── fetchColumnValueSuggestions.ts │ │ │ │ │ ├── fetchForeignKeyOptions.tsx │ │ │ │ │ ├── fieldUtils.ts │ │ │ │ │ ├── useFormData.ts │ │ │ │ │ ├── useNestedInsertDefaultData.ts │ │ │ │ │ ├── useSmartFormFieldAsJSON.tsx │ │ │ │ │ └── useSmartFormFieldOnChange.ts │ │ │ │ ├── SmartFormFieldList.tsx │ │ │ │ ├── SmartFormFileSection.tsx │ │ │ │ ├── SmartFormFooter/ │ │ │ │ │ ├── SmartFormFooterButtons.tsx │ │ │ │ │ └── useSmartFormActions.ts │ │ │ │ ├── SmartFormNewRowDataHandler.ts │ │ │ │ ├── SmartFormPopup/ │ │ │ │ │ └── SmartFormPopupWrapper.tsx │ │ │ │ ├── SmartFormUpperFooter/ │ │ │ │ │ ├── SmartFormUpperFooter.tsx │ │ │ │ │ └── useActiveJoinedRecordsTab.ts │ │ │ │ ├── useNewRowDataHandler.ts │ │ │ │ ├── useSmartForm.ts │ │ │ │ ├── useSmartFormColumns.ts │ │ │ │ └── useSmartFormMode.ts │ │ │ ├── SmartSelect.tsx │ │ │ ├── SmartTable.tsx │ │ │ ├── StatusMonitor/ │ │ │ │ ├── StatusMonitor.tsx │ │ │ │ ├── StatusMonitorConnections.tsx │ │ │ │ ├── StatusMonitorInfoHeader/ │ │ │ │ │ ├── StatusMonitorInfoHeader.tsx │ │ │ │ │ ├── StatusMonitorInfoHeaderCpu.tsx │ │ │ │ │ └── StatusMonitorInfoHeaderMemory.tsx │ │ │ │ ├── StatusMonitorProcList.tsx │ │ │ │ └── StatusMonitorProcListControlsHeader.tsx │ │ │ ├── TableConfig/ │ │ │ │ ├── ProcessLogs.tsx │ │ │ │ └── TableConfig.tsx │ │ │ ├── TimeSeries.tsx │ │ │ ├── UserManager.tsx │ │ │ ├── W_Barchart/ │ │ │ │ ├── W_Barchart.tsx │ │ │ │ ├── fetchSQLBarchartData.ts │ │ │ │ └── useBarchartData.ts │ │ │ ├── W_Map/ │ │ │ │ ├── OSM/ │ │ │ │ │ ├── OverpassQuery.tsx │ │ │ │ │ ├── fetchOSMCountryBoundary.ts │ │ │ │ │ ├── getOSMData.ts │ │ │ │ │ ├── osmToGeoJSON.ts │ │ │ │ │ └── osmTypes.ts │ │ │ │ ├── W_Map.tsx │ │ │ │ ├── W_MapMenu.tsx │ │ │ │ ├── controls/ │ │ │ │ │ ├── MapBasemapOptions.tsx │ │ │ │ │ ├── MapInfoSection.tsx │ │ │ │ │ ├── MapOSMQuery.tsx │ │ │ │ │ └── MapOpacityMenu.tsx │ │ │ │ ├── fetchData/ │ │ │ │ │ ├── fetchMapLayerData.ts │ │ │ │ │ ├── getMapData.ts │ │ │ │ │ ├── getMapDataExtent.ts │ │ │ │ │ └── getMapLayerQueries.ts │ │ │ │ ├── getMapFeatureStyle.ts │ │ │ │ └── onMapHover.ts │ │ │ ├── W_Method/ │ │ │ │ ├── FunctionLabel.tsx │ │ │ │ ├── NewMethod.tsx │ │ │ │ ├── PublishedMethods.tsx │ │ │ │ ├── W_Method.tsx │ │ │ │ ├── W_MethodControls.tsx │ │ │ │ └── W_MethodMenu.tsx │ │ │ ├── W_QuickMenu.tsx │ │ │ ├── W_SQL/ │ │ │ │ ├── CSVRender.tsx │ │ │ │ ├── CopyResultBtn.tsx │ │ │ │ ├── MonacoLanguageRegister.ts │ │ │ │ ├── SQLHotkeys.tsx │ │ │ │ ├── TestSQL.ts │ │ │ │ ├── W_SQL.tsx │ │ │ │ ├── W_SQLBottomBar/ │ │ │ │ │ ├── W_SQLBottomBar.tsx │ │ │ │ │ └── W_SQLBottomBarProcStats.tsx │ │ │ │ ├── W_SQLMenu.tsx │ │ │ │ ├── W_SQLResults.tsx │ │ │ │ ├── customRenderers.tsx │ │ │ │ ├── demoScripts/ │ │ │ │ │ ├── createTables.ts │ │ │ │ │ ├── mainTestScripts.ts │ │ │ │ │ ├── testBugs.ts │ │ │ │ │ ├── testMiscAndBugs.ts │ │ │ │ │ └── testSqlCharts.ts │ │ │ │ ├── getChartableSQL.ts │ │ │ │ ├── getDemoUtils.ts │ │ │ │ ├── getSQLResultTableColumns.ts │ │ │ │ ├── monacoEditorTypes.ts │ │ │ │ ├── parseExplainResult.ts │ │ │ │ ├── parseSQLError.ts │ │ │ │ ├── parseSqlResultCols.ts │ │ │ │ ├── runSQL/ │ │ │ │ │ ├── getQueryTotalRowCount.ts │ │ │ │ │ └── runSQL.ts │ │ │ │ └── runSQLErrorHints.ts │ │ │ ├── W_Table/ │ │ │ │ ├── CardView/ │ │ │ │ │ ├── CardView.tsx │ │ │ │ │ ├── CardViewColumn.tsx │ │ │ │ │ ├── CardViewKanban.tsx │ │ │ │ │ ├── CardViewRow.tsx │ │ │ │ │ ├── DragHeader.tsx │ │ │ │ │ ├── useCardViewState.ts │ │ │ │ │ └── useDragHeader.ts │ │ │ │ ├── ColumnMenu/ │ │ │ │ │ ├── AddColumnMenu.tsx │ │ │ │ │ ├── AddComputedColumn/ │ │ │ │ │ │ ├── AddComputedColMenu.tsx │ │ │ │ │ │ ├── FunctionColumnList.tsx │ │ │ │ │ │ ├── QuickAddComputedColumn.tsx │ │ │ │ │ │ └── useAddComputedColumn.ts │ │ │ │ │ ├── AlterColumn/ │ │ │ │ │ │ ├── AlterColumn.tsx │ │ │ │ │ │ ├── AlterColumnFileOptions.tsx │ │ │ │ │ │ ├── ColumnEditor.tsx │ │ │ │ │ │ ├── CreateColumn.tsx │ │ │ │ │ │ ├── ReferenceEditor.tsx │ │ │ │ │ │ └── alterColumnUtilts.ts │ │ │ │ │ ├── ColorPicker.tsx │ │ │ │ │ ├── ColumnDisplayFormat/ │ │ │ │ │ │ ├── ChipStylePalette.tsx │ │ │ │ │ │ ├── ColumnDisplayFormat.tsx │ │ │ │ │ │ ├── ConditionalCellIconStyleControls.tsx │ │ │ │ │ │ ├── ConditionalCellStyleControls.tsx │ │ │ │ │ │ ├── NestedColumnRender.tsx │ │ │ │ │ │ └── columnFormatUtils.tsx │ │ │ │ │ ├── ColumnList.tsx │ │ │ │ │ ├── ColumnMenu.tsx │ │ │ │ │ ├── ColumnQuickStats/ │ │ │ │ │ │ ├── ColumnQuickStats.tsx │ │ │ │ │ │ └── useColumnQuickStats.ts │ │ │ │ │ ├── ColumnSelect/ │ │ │ │ │ │ ├── ColumnSelect.tsx │ │ │ │ │ │ └── getColumnListItem.tsx │ │ │ │ │ ├── ColumnSortMenu.tsx │ │ │ │ │ ├── ColumnStyleControls/ │ │ │ │ │ │ ├── ColumnStyleControls.tsx │ │ │ │ │ │ └── getValueColors.ts │ │ │ │ │ ├── ColumnsMenu.tsx │ │ │ │ │ ├── FunctionSelector/ │ │ │ │ │ │ ├── FunctionExtraArguments.tsx │ │ │ │ │ │ ├── FunctionSelector.tsx │ │ │ │ │ │ └── functions.ts │ │ │ │ │ ├── JoinPathSelectorV2.tsx │ │ │ │ │ ├── LinkedColumn/ │ │ │ │ │ │ ├── LinkedColumn.tsx │ │ │ │ │ │ ├── LinkedColumnFooter.tsx │ │ │ │ │ │ └── LinkedColumnSelect.tsx │ │ │ │ │ ├── NestedTimechartControls.tsx │ │ │ │ │ ├── SummariseColumns.tsx │ │ │ │ │ ├── getNestedColumnTable.ts │ │ │ │ │ └── rgba2hex.ts │ │ │ │ ├── JoinPathSelector/ │ │ │ │ │ ├── JoinPathItem.tsx │ │ │ │ │ ├── JoinPathSelector.tsx │ │ │ │ │ └── getJoinTree.ts │ │ │ │ ├── NodeCountChecker.tsx │ │ │ │ ├── ProstglesTable.css │ │ │ │ ├── QuickFilterGroupsControl.tsx │ │ │ │ ├── RowCard.tsx │ │ │ │ ├── TableMenu/ │ │ │ │ │ ├── AddChartMenu.tsx │ │ │ │ │ ├── AutoRefreshMenu.tsx │ │ │ │ │ ├── W_TableMenu.tsx │ │ │ │ │ ├── W_TableMenu_AccessRules.tsx │ │ │ │ │ ├── W_TableMenu_Constraints.tsx │ │ │ │ │ ├── W_TableMenu_CurrentQuery.tsx │ │ │ │ │ ├── W_TableMenu_DisplayOptions.tsx │ │ │ │ │ ├── W_TableMenu_Indexes.tsx │ │ │ │ │ ├── W_TableMenu_Policies.tsx │ │ │ │ │ ├── W_TableMenu_TableInfo.tsx │ │ │ │ │ ├── W_TableMenu_Triggers.tsx │ │ │ │ │ ├── getAndFixWColumnsConfig.tsx │ │ │ │ │ ├── getChartCols.ts │ │ │ │ │ └── getTableMeta.ts │ │ │ │ ├── TooManyColumnsWarning.tsx │ │ │ │ ├── W_Table.tsx │ │ │ │ ├── W_Table_Content.tsx │ │ │ │ ├── colorBlend.ts │ │ │ │ ├── getTableData/ │ │ │ │ │ ├── getTableData.ts │ │ │ │ │ └── getTableFilter.ts │ │ │ │ └── tableUtils/ │ │ │ │ ├── StyledTableColumn.tsx │ │ │ │ ├── getColWInfo.ts │ │ │ │ ├── getColWidth.ts │ │ │ │ ├── getEditColumn.tsx │ │ │ │ ├── getFullColumnConfig.ts │ │ │ │ ├── getJoinPaths.ts │ │ │ │ ├── getRowFilter.ts │ │ │ │ ├── getTableCols.tsx │ │ │ │ ├── getTableSelect.ts │ │ │ │ ├── onRenderColumn.tsx │ │ │ │ ├── prepareColsForRender.ts │ │ │ │ └── tableUtils.ts │ │ │ ├── W_TimeChart/ │ │ │ │ ├── AddTimeChartFilter.tsx │ │ │ │ ├── W_TimeChart.tsx │ │ │ │ ├── W_TimeChartHeaderControls.tsx │ │ │ │ ├── W_TimeChartLayerLegend.tsx │ │ │ │ ├── W_TimeChartMenu.tsx │ │ │ │ └── fetchData/ │ │ │ │ ├── constants.ts │ │ │ │ ├── fetchAndSetTimechartLayerData.ts │ │ │ │ ├── fetchTimechartLayer.ts │ │ │ │ ├── getTimeChartData.ts │ │ │ │ ├── getTimeChartLayers.ts │ │ │ │ ├── getTimeChartLayersWithBins.ts │ │ │ │ ├── getTimeChartSelectParams.ts │ │ │ │ ├── getTimeLayerDataSignature.ts │ │ │ │ └── getTimechartExtentFilter.ts │ │ │ ├── Window.tsx │ │ │ ├── WindowControls/ │ │ │ │ ├── AddChartLayer.tsx │ │ │ │ ├── ColorByLegend/ │ │ │ │ │ ├── ColorByLegend.tsx │ │ │ │ │ └── getGroupByValueColor.ts │ │ │ │ ├── DataLayerManager/ │ │ │ │ │ ├── DataLayer.tsx │ │ │ │ │ ├── DataLayerManager.tsx │ │ │ │ │ └── useSortedLayerQueries.ts │ │ │ │ ├── LayerColorPicker.tsx │ │ │ │ ├── MapLayerStyling.tsx │ │ │ │ ├── OSMLayerOptions.tsx │ │ │ │ ├── SQLChartLayerEditor.tsx │ │ │ │ └── TimeChartLayerOptions.tsx │ │ │ ├── WorkspaceMenu/ │ │ │ │ ├── WorkspaceAddBtn.tsx │ │ │ │ ├── WorkspaceDeleteBtn.tsx │ │ │ │ ├── WorkspaceMenu.css │ │ │ │ ├── WorkspaceMenu.tsx │ │ │ │ ├── WorkspaceMenuDropDown.tsx │ │ │ │ ├── WorkspaceSettings.tsx │ │ │ │ └── useWorkspaces.ts │ │ │ ├── joinUtils.ts │ │ │ ├── localSettings.ts │ │ │ ├── setPan.ts │ │ │ └── shortestPath.ts │ │ ├── demo/ │ │ │ ├── AppVideoDemo.tsx │ │ │ ├── MousePointer.tsx │ │ │ ├── demoUtils.ts │ │ │ ├── recordDemoUtils.ts │ │ │ └── scripts/ │ │ │ ├── AIAssistantDemo.ts │ │ │ ├── accessControlDemo.ts │ │ │ ├── backupDemo.ts │ │ │ ├── dashboardDemo.ts │ │ │ ├── fileDemo.ts │ │ │ ├── schemaDiagramDemo.ts │ │ │ ├── sqlVideoDemo.ts │ │ │ └── videoDemoAccessControlScripts.ts │ │ ├── exports.ts │ │ ├── hooks/ │ │ │ ├── useDebouncedCallback.ts │ │ │ ├── useThrottledCallback.ts │ │ │ └── useTypedSearchParams.ts │ │ ├── i18n/ │ │ │ ├── LanguageSelector.tsx │ │ │ ├── i18nUtils.ts │ │ │ └── translations/ │ │ │ ├── de.json │ │ │ ├── es.json │ │ │ ├── fr.json │ │ │ ├── hi.json │ │ │ ├── ru.json │ │ │ ├── translations.ts │ │ │ └── zh.json │ │ ├── index.css │ │ ├── index.html.ejs │ │ ├── index.tsx │ │ ├── pages/ │ │ │ ├── Account/ │ │ │ │ ├── Account.tsx │ │ │ │ ├── ChangePassword.tsx │ │ │ │ ├── Sessions.tsx │ │ │ │ └── Setup2FA.tsx │ │ │ ├── AccountMenu.tsx │ │ │ ├── Alerts.tsx │ │ │ ├── ComponentList.tsx │ │ │ ├── Connections/ │ │ │ │ ├── Connection.tsx │ │ │ │ ├── ConnectionActionBar.tsx │ │ │ │ ├── Connections.tsx │ │ │ │ ├── ConnectionsOptions.tsx │ │ │ │ ├── CreateConnection/ │ │ │ │ │ ├── CreateConnection.tsx │ │ │ │ │ └── useCreateConnection.ts │ │ │ │ ├── CreatePostgresUser.tsx │ │ │ │ ├── useConnectionServersList.ts │ │ │ │ └── useConnections.ts │ │ │ ├── ElectronSetup/ │ │ │ │ ├── ElectronSetup.tsx │ │ │ │ ├── ElectronSetupStateDB.tsx │ │ │ │ └── useElectronSetup.ts │ │ │ ├── Login/ │ │ │ │ ├── AuthNotifPopup.tsx │ │ │ │ ├── Login.tsx │ │ │ │ ├── LoginTotpForm.tsx │ │ │ │ ├── LoginWithProviders.tsx │ │ │ │ ├── SocialIcons.css │ │ │ │ ├── SocialIcons.tsx │ │ │ │ └── useLoginState.ts │ │ │ ├── NewConnection/ │ │ │ │ ├── NewConnectionFormFields.tsx │ │ │ │ ├── NewConnnectionForm.tsx │ │ │ │ ├── SchemaFilter.tsx │ │ │ │ └── newConnectionUtils.ts │ │ │ ├── NonHTTPSWarning.tsx │ │ │ ├── NotFound.tsx │ │ │ ├── ProjectConnection/ │ │ │ │ ├── PrglContextProvider.tsx │ │ │ │ ├── ProjectConnection.tsx │ │ │ │ ├── ProjectConnectionError.tsx │ │ │ │ └── useProjectDb.ts │ │ │ ├── ProjectLogs.tsx │ │ │ ├── ServerSettings/ │ │ │ │ ├── AuthProvidersSetup.tsx │ │ │ │ ├── EmailAuthSetup.tsx │ │ │ │ ├── EmailAuthSetupIngredients/ │ │ │ │ │ ├── EmailSMTPAndTemplateSetup.tsx │ │ │ │ │ ├── EmailSMTPSetup.tsx │ │ │ │ │ └── EmailTemplateSetup.tsx │ │ │ │ ├── MCPServers/ │ │ │ │ │ ├── MCPServerConfig/ │ │ │ │ │ │ ├── MCPServerConfig.tsx │ │ │ │ │ │ ├── MCPServerConfigButton.tsx │ │ │ │ │ │ ├── useMCPServerConfigState.tsx │ │ │ │ │ │ └── useMCPServerEnable.ts │ │ │ │ │ ├── MCPServerFooterActions/ │ │ │ │ │ │ ├── MCPServerFooterActions.tsx │ │ │ │ │ │ └── MCPServersInstall.tsx │ │ │ │ │ ├── MCPServerHeaderCheckbox.tsx │ │ │ │ │ ├── MCPServerTools/ │ │ │ │ │ │ ├── MCPServerTools.tsx │ │ │ │ │ │ └── MCPServerToolsGroupToggle.tsx │ │ │ │ │ ├── MCPServers.tsx │ │ │ │ │ ├── MCPServersHeader.tsx │ │ │ │ │ ├── MCPServersToolbar/ │ │ │ │ │ │ ├── AddMCPServer.tsx │ │ │ │ │ │ ├── MCPServersToolbar.tsx │ │ │ │ │ │ └── useAddMCPServer.ts │ │ │ │ │ ├── useMCPChatAllowedTools.ts │ │ │ │ │ └── useMCPServersListProps.tsx │ │ │ │ ├── OAuthProviderSetup.tsx │ │ │ │ ├── ServerSettings.tsx │ │ │ │ ├── Services.tsx │ │ │ │ └── useEditableData.ts │ │ │ ├── TopControls.tsx │ │ │ └── projectUtils.ts │ │ ├── theme/ │ │ │ ├── ThemeSelector.tsx │ │ │ ├── useAppTheme.ts │ │ │ └── useSystemTheme.ts │ │ ├── useAppState/ │ │ │ ├── dbsConnectionOptions.ts │ │ │ ├── useAppState.ts │ │ │ ├── useDBSClient.ts │ │ │ └── useServerState.ts │ │ └── utils/ │ │ ├── colorUtils.ts │ │ ├── hashCode.ts │ │ └── utils.ts │ ├── static/ │ │ └── util.css │ ├── tsconfig.eslint.json │ ├── tsconfig.json │ ├── tsconfig_lib.json │ ├── tsconfig_rollup.json │ └── tslint.json ├── common/ │ ├── DBGeneratedSchema.d.ts │ ├── DashboardTypes.d.ts │ ├── DashboardTypes.js │ ├── DashboardTypes.ts │ ├── OAuthUtils.d.ts │ ├── OAuthUtils.js │ ├── OAuthUtils.ts │ ├── dashboardTypesContent.d.ts │ ├── dashboardTypesContent.js │ ├── dashboardTypesContent.ts │ ├── electronInitTypes.d.ts │ ├── electronInitTypes.js │ ├── electronInitTypes.ts │ ├── filterUtils.d.ts │ ├── filterUtils.js │ ├── filterUtils.ts │ ├── llmUtils.d.ts │ ├── llmUtils.js │ ├── llmUtils.ts │ ├── mcp.d.ts │ ├── mcp.js │ ├── mcp.ts │ ├── prostglesMcp.d.ts │ ├── prostglesMcp.js │ ├── prostglesMcp.ts │ ├── psql_queries.json │ ├── publishUtils.d.ts │ ├── publishUtils.js │ ├── publishUtils.ts │ ├── tsconfig.json │ ├── utils.d.ts │ ├── utils.js │ └── utils.ts ├── docker-compose.yml ├── docs/ │ ├── 01_Overview.md │ ├── 02_Installation.md │ ├── 03_Installation_(Desktop_Version).md │ ├── 04_Navigation_bar.md │ ├── 05_Connections.md │ ├── 06_Connection_dashboard.md │ ├── 07_Import_file.md │ ├── 08_Schema_diagram.md │ ├── 09_SQL_editor.md │ ├── 10_Table_view.md │ ├── 11_Map_view.md │ ├── 12_Timechart_view.md │ ├── 13_AI_Assistant.md │ ├── 14_Connection_configuration.md │ ├── 15_Access_control.md │ ├── 16_File_storage.md │ ├── 17_Backup_and_Restore.md │ ├── 18_API.md │ ├── 19_Server_Settings.md │ ├── 20_Account.md │ └── 21_Command_Palette.md ├── e2e/ │ ├── .gitignore │ ├── package.json │ ├── playwright.config.js │ ├── playwright.config.ts │ ├── test-local.sh │ ├── tests/ │ │ ├── Testing.ts │ │ ├── command_palette.spec.ts │ │ ├── createReceipt.ts │ │ ├── create_docs.spec.ts │ │ ├── create_load_test_users.spec.ts │ │ ├── demo_video.spec.ts │ │ ├── demo_video_setup.spec.ts │ │ ├── load_test.spec.ts │ │ ├── main.spec.ts │ │ ├── mockSMTPServer.ts │ │ ├── sampleToolUseData.ts │ │ ├── speechToTextTest.ts │ │ ├── svgScreenshots/ │ │ │ ├── SVG_SCREENSHOT_DETAILS.ts │ │ │ ├── account.svgif.ts │ │ │ ├── aiAssistant.svgif.ts │ │ │ ├── backupAndRestore.svgif.ts │ │ │ ├── commandPalette.svgif.ts │ │ │ ├── dashboard.svgif.ts │ │ │ ├── electronSetup.svgif.ts │ │ │ ├── fileImporter.svgif.ts │ │ │ ├── getOverviewSvgifSpecs.svgif.ts │ │ │ ├── map.svgif.ts │ │ │ ├── navbar.svgif.ts │ │ │ ├── newConnection.svgif.ts │ │ │ ├── schemaDiagram.svgif.ts │ │ │ ├── smartForm.svgif.ts │ │ │ ├── sqlEditor.svgif.ts │ │ │ ├── table.svgif.ts │ │ │ ├── timechart.svgif.ts │ │ │ └── utils/ │ │ │ ├── constants.ts │ │ │ ├── getFilesFromDir.ts │ │ │ ├── getSceneUtils.ts │ │ │ ├── saveSVGScreenshot.ts │ │ │ ├── saveSVGifs.ts │ │ │ ├── saveSVGs.ts │ │ │ ├── svgScreenshotsCompleteReferenced.ts │ │ │ └── typeSendAddScenes.ts │ │ ├── testAskLLM.ts │ │ ├── tsconfig.json │ │ └── utils/ │ │ ├── constants.ts │ │ ├── goTo.ts │ │ ├── isPortFree.ts │ │ └── utils.ts │ └── tsconfig.json ├── electron/ │ ├── .gitignore │ ├── README.md │ ├── build.sh │ ├── e2e-electron/ │ │ ├── electron.spec.tsx │ │ └── tsconfig.json │ ├── forge.config.js │ ├── getProtocolHandler.ts │ ├── images/ │ │ ├── generate_from_svg.sh │ │ └── loading-effect.css │ ├── loadingHTML.ts │ ├── main.ts │ ├── mainWindow.ts │ ├── package.json │ ├── playwright.config.ts │ ├── screenCapture.bat │ ├── setContextMenu.ts │ ├── start.sh │ ├── test-linux-macos.sh │ ├── test-linux.sh │ ├── test-setup.js │ ├── test-w-debug.sh │ ├── test.sh │ ├── tsconfig.json │ ├── win-inno-setup.ts │ └── win.js ├── package.json ├── releases/ │ ├── v1.0.0.md │ ├── v2.0.0.md │ ├── v2.2.2.md │ ├── v2.2.3.md │ └── v2.2.4.md ├── scripts/ │ ├── demo/ │ │ ├── SCREEN RECORD.txt │ │ ├── record-local.sh │ │ └── split-video.sh │ ├── get_version.sh │ ├── release.sh │ ├── start-dev-electron.sh │ ├── start-dev.sh │ ├── start-prod.sh │ └── test.sh └── server/ ├── .gitignore ├── .vscode/ │ └── settings.json ├── eslint.config.mjs ├── licenses.json ├── package.json ├── proj-prgl.js ├── sample_schemas/ │ ├── _crypto.sql │ ├── cleaning.sql │ ├── cloud_computing.sql │ ├── countries.sql │ ├── crypto/ │ │ ├── onMount.ts │ │ ├── tableConfig.ts │ │ └── workspaceConfig.ts │ ├── financial.sql │ ├── food_delivery/ │ │ ├── connection.ts │ │ ├── databaseConfig.ts │ │ ├── onInit.sql │ │ ├── onMount.ts │ │ └── workspaceConfig.ts │ ├── lodging.sql │ ├── maps.sql │ ├── property_management/ │ │ ├── onMount.ts │ │ └── workspaceConfig.ts │ ├── sales.sql │ ├── sample.sql │ ├── testschema.ts │ └── weather/ │ └── onMount.ts ├── src/ │ ├── BackupManager/ │ │ ├── BackupManager.ts │ │ ├── checkAutomaticBackup.ts │ │ ├── getInstalledPrograms.ts │ │ ├── pgDump.ts │ │ ├── pgRestore.ts │ │ ├── pipeFromCommand.ts │ │ ├── pipeToCommand.ts │ │ └── utils.ts │ ├── ConnectionManager/ │ │ ├── ConnectionManager.ts │ │ ├── ForkedPrglProcRunner/ │ │ │ ├── ForkedPrglProcRunner.ts │ │ │ ├── createProc.ts │ │ │ └── forkedProcess.ts │ │ ├── connectionManagerUtils.ts │ │ ├── getConnectionPublish.ts │ │ ├── getConnectionPublishMethods.ts │ │ ├── getInitiatedPostgresqlPIDs.ts │ │ ├── initConnectionManager.ts │ │ ├── saveCertificates.ts │ │ └── startConnection.ts │ ├── Logger.ts │ ├── McpHub/ │ │ ├── AnthropicMcpHub/ │ │ │ ├── McpHub.ts │ │ │ ├── McpTypes.ts │ │ │ ├── connectToMCPServer.ts │ │ │ ├── fetchMCPResourceTemplatesList.ts │ │ │ ├── fetchMCPResourcesList.ts │ │ │ ├── fetchMCPToolsList.ts │ │ │ ├── installMCPServer.ts │ │ │ ├── runShellCommand.ts │ │ │ └── startMcpHub.ts │ │ ├── DefaultMCPServers/ │ │ │ ├── DefaultMCPServers.ts │ │ │ └── mcpGithub.ts │ │ ├── ProstglesMcpHub/ │ │ │ ├── ProstglesMCPServerTypes.ts │ │ │ ├── ProstglesMCPServers/ │ │ │ │ ├── DockerSandbox/ │ │ │ │ │ ├── createContainer.spec.ts │ │ │ │ │ ├── createContainer.ts │ │ │ │ │ ├── dockerMCPServerProxy/ │ │ │ │ │ │ ├── dockerContainerAuthRegistry.ts │ │ │ │ │ │ ├── dockerMCPServerProxy.ts │ │ │ │ │ │ └── isPortFree.ts │ │ │ │ │ ├── executeDockerCommand.ts │ │ │ │ │ ├── fetchTools.ts │ │ │ │ │ ├── getContainerLogs.ts │ │ │ │ │ ├── getDockerGatewayIP.ts │ │ │ │ │ └── getDockerRunArgs.ts │ │ │ │ ├── DockerSandbox.mcp.ts │ │ │ │ └── WebSearch.mcp.ts │ │ │ ├── ProstglesMCPServers.ts │ │ │ └── ProstglesMcpHub.ts │ │ ├── callMCPServerTool.ts │ │ ├── fetchMCPServerConfigs.ts │ │ ├── insertServerList.ts │ │ ├── reloadMcpServerTools.ts │ │ └── testMCPServerConfig.ts │ ├── SecurityManager/ │ │ └── initUsers.ts │ ├── ServiceManager/ │ │ ├── ServiceManager.spec.ts │ │ ├── ServiceManager.ts │ │ ├── ServiceManagerTypes.ts │ │ ├── buildService.ts │ │ ├── dockerInspect.ts │ │ ├── enableService.ts │ │ ├── getDockerBuildHash.ts │ │ ├── getSelectedConfigEnvs.ts │ │ ├── getServiceEndoints.ts │ │ ├── initialiseServices.ts │ │ ├── services/ │ │ │ ├── speechToText/ │ │ │ │ ├── speechToText.service.ts │ │ │ │ └── src/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ └── requirements.txt │ │ │ └── webSearchSearxng/ │ │ │ ├── src/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── limiter.toml │ │ │ │ └── settings.yml │ │ │ └── webSearchSearxng.service.ts │ │ ├── startService.ts │ │ └── stopService.ts │ ├── authConfig/ │ │ ├── OAuthProviders/ │ │ │ ├── getOAuthLoginProviders.ts │ │ │ └── loginWithProvider.ts │ │ ├── authUtils.ts │ │ ├── createPasswordlessAdminSessionIfNeeded.ts │ │ ├── createPublicUserSessionIfAllowed.ts │ │ ├── emailProvider/ │ │ │ ├── getEmailAuthProvider.ts │ │ │ ├── getEmailSenderWithMockTest.ts │ │ │ └── onEmailRegistration.ts │ │ ├── getActiveSession.ts │ │ ├── getAuth.ts │ │ ├── getLogin.ts │ │ ├── getUser.ts │ │ ├── onMagicLinkOrOTP.ts │ │ ├── onUseOrSocketConnected.ts │ │ ├── sessionUtils.ts │ │ ├── startRateLimitedLoginAttempt.ts │ │ ├── subscribeToAuthSetupChanges.ts │ │ └── upsertSession.ts │ ├── cloudClients/ │ │ └── cloudClients.ts │ ├── connectionUtils/ │ │ ├── getConnectionDetails.ts │ │ ├── testDBConnection.ts │ │ └── validateConnection.ts │ ├── electronConfig.ts │ ├── envVars.ts │ ├── getPSQLQueries.ts │ ├── index.ts │ ├── init/ │ │ ├── cleanupTestDatabases.ts │ │ ├── initExpressAndIOServers.ts │ │ ├── insertStateDatabase.ts │ │ ├── isRetryableError.ts │ │ ├── logOutgoingHttpRequests.ts │ │ ├── onProstglesReady.ts │ │ ├── setDBSRoutesForElectron.ts │ │ ├── startDevHotReloadNotifier.ts │ │ ├── startProstgles.ts │ │ ├── testDashboardTypesContent.ts │ │ └── tryStartProstgles.ts │ ├── init.sql │ ├── methods/ │ │ ├── getPidStats.ts │ │ ├── getPidStatsFromProc.ts │ │ └── statusMonitorUtils.ts │ ├── publish/ │ │ ├── getPublishLLM.ts │ │ └── publish.ts │ ├── publishMethods/ │ │ ├── applySampleSchema.ts │ │ ├── askLLM/ │ │ │ ├── LLMResponseTypes.ts │ │ │ ├── askLLM.ts │ │ │ ├── checkLLMLimit.ts │ │ │ ├── checkMaxCostLimitForChat.ts │ │ │ ├── fetchLLMResponse.ts │ │ │ ├── getFullPrompt.ts │ │ │ ├── getLLMRequestBody.ts │ │ │ ├── getLLMToolsAllowedInThisChat.ts │ │ │ ├── getLLMUsageCost.ts │ │ │ ├── getUserMessageCost.ts │ │ │ ├── parseLLMResponseObject.ts │ │ │ ├── prostglesLLMTools/ │ │ │ │ ├── getMCPServerTools.ts │ │ │ │ ├── getProstglesDBTools.ts │ │ │ │ ├── getProstglesLLMTools.ts │ │ │ │ ├── getPublishedMethodsTools.ts │ │ │ │ ├── prostglesMcpTools.ts │ │ │ │ └── runProstglesDBTool.ts │ │ │ ├── readFetchStream.ts │ │ │ ├── refreshModels.ts │ │ │ ├── runApprovedTools/ │ │ │ │ ├── runApprovedTools.ts │ │ │ │ └── validateLastMessageToolUseRequests.ts │ │ │ └── setupLLM.ts │ │ ├── deleteConnection.ts │ │ ├── getConnectionAndDatabaseConfig.ts │ │ ├── getNodeTypes.ts │ │ ├── prostglesSignup.ts │ │ ├── publishMethods.ts │ │ └── setFileStorage.ts │ ├── tableConfig/ │ │ ├── tableConfig.ts │ │ ├── tableConfigAccessControl.ts │ │ ├── tableConfigBackups.ts │ │ ├── tableConfigConnections.ts │ │ ├── tableConfigGlobalSettings.ts │ │ ├── tableConfigLinks.ts │ │ ├── tableConfigLlm/ │ │ │ ├── tableConfigLlm.ts │ │ │ ├── tableConfigLlmChats.ts │ │ │ └── tableConfigLlmExtraRequestData.ts │ │ ├── tableConfigMCPServers.ts │ │ ├── tableConfigMigrations.ts │ │ ├── tableConfigPublishedMethods.ts │ │ ├── tableConfigUsers.ts │ │ ├── tableConfigWindows.ts │ │ └── tableConfigWorkspaces.ts │ ├── testElectron.ts │ └── upsertConnection.ts ├── tsconfig.json └── tslint.json