├── .changes
├── header.tpl.md
├── unreleased
│ └── .gitkeep
├── v0.11.0.md
├── v0.11.1.md
├── v0.12.0.md
├── v0.13.0.md
├── v0.13.1.md
├── v0.14.0.md
├── v0.15.0.md
├── v0.16.1.md
├── v0.17.0.md
├── v0.18.0.md
├── v0.19.0.md
├── v0.20.0.md
├── v0.21.0.md
├── v0.21.1.md
├── v0.21.2.md
├── v0.22.0.md
├── v0.23.0.md
├── v0.23.1.md
├── v0.24.0.md
├── v0.25.0.md
├── v0.25.1.md
├── v0.25.2.md
├── v0.26.0.md
├── v0.27.0.md
├── v0.27.1.md
├── v0.28.0.md
└── v0.29.0.md
├── .changie.yaml
├── .dockerignore
├── .env
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
└── workflows
│ ├── ast-grep-lint.yml
│ ├── autofix-pnpm.yml
│ ├── autofix-python.yml
│ ├── autofix-rust.yml
│ ├── bloat.yml
│ ├── docker.yml
│ ├── gh-pages.yml
│ ├── gpt-translate.yml
│ ├── nightly.yml
│ ├── release-intellij.yml
│ ├── release-vim.yml
│ ├── release-vscode.yml
│ ├── release.yml
│ ├── test-intellij.yml
│ ├── test-pnpm.yml
│ └── test-rust.yml
├── .gitignore
├── .gitmodules
├── .rustfmt.toml
├── .tmuxinator
└── tabby.yml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── MODEL_SPEC.md
├── Makefile
├── README-ja.md
├── README-zh.md
├── README.md
├── ci
├── package-from-upstream.sh
├── prepare_build_environment.ps1
└── prepare_build_environment.sh
├── clients
├── eclipse
│ ├── .gitignore
│ ├── README.md
│ ├── docs
│ │ ├── eclipse-export-archive-select-features.jpg
│ │ ├── eclipse-export-archive-select-wizard.jpg
│ │ ├── eclipse-import-project-select-project.jpg
│ │ ├── eclipse-import-project-select-wizard.jpg
│ │ └── eclipse-launch-application.jpg
│ ├── feature
│ │ ├── .project
│ │ ├── build.properties
│ │ └── feature.xml
│ ├── package.json
│ ├── plugin
│ │ ├── .classpath
│ │ ├── .gitignore
│ │ ├── .project
│ │ ├── .settings
│ │ │ ├── org.eclipse.core.resources.prefs
│ │ │ └── org.eclipse.jdt.core.prefs
│ │ ├── META-INF
│ │ │ └── MANIFEST.MF
│ │ ├── build.properties
│ │ ├── chat-panel
│ │ │ └── index.html
│ │ ├── images
│ │ │ ├── add_obj.png
│ │ │ ├── add_obj@2x.png
│ │ │ ├── chat.png
│ │ │ ├── chat@2x.png
│ │ │ ├── check_tsk.png
│ │ │ ├── check_tsk@2x.png
│ │ │ ├── hprio_tsk.png
│ │ │ ├── hprio_tsk@2x.png
│ │ │ ├── progress_task.png
│ │ │ ├── progress_task@2x.png
│ │ │ ├── settings.png
│ │ │ ├── settings@2x.png
│ │ │ ├── time_obj.png
│ │ │ ├── time_obj@2x.png
│ │ │ ├── warn_tsk.png
│ │ │ └── warn_tsk@2x.png
│ │ ├── plugin.xml
│ │ └── src
│ │ │ └── com
│ │ │ └── tabbyml
│ │ │ └── tabby4eclipse
│ │ │ ├── Activator.java
│ │ │ ├── DebouncedRunnable.java
│ │ │ ├── Images.java
│ │ │ ├── Logger.java
│ │ │ ├── Startup.java
│ │ │ ├── StringUtils.java
│ │ │ ├── Utils.java
│ │ │ ├── Version.java
│ │ │ ├── chat
│ │ │ ├── ChatCommand.java
│ │ │ ├── ChatView.java
│ │ │ ├── ChatViewType.java
│ │ │ ├── ChatViewUtils.java
│ │ │ ├── EditorFileContext.java
│ │ │ ├── FileLocation.java
│ │ │ ├── Filepath.java
│ │ │ ├── FilepathInGitRepository.java
│ │ │ ├── FilepathInWorkspace.java
│ │ │ ├── FilepathUri.java
│ │ │ ├── GitRepository.java
│ │ │ ├── LineRange.java
│ │ │ ├── Position.java
│ │ │ ├── PositionRange.java
│ │ │ └── Range.java
│ │ │ ├── commands
│ │ │ ├── OpenPreferences.java
│ │ │ ├── chat
│ │ │ │ ├── AddFileToChat.java
│ │ │ │ ├── AddSelectionToChat.java
│ │ │ │ ├── Explain.java
│ │ │ │ ├── Fix.java
│ │ │ │ ├── GenerateDocs.java
│ │ │ │ ├── GenerateTests.java
│ │ │ │ ├── OpenChatView.java
│ │ │ │ └── ToggleChatView.java
│ │ │ └── inlineCompletion
│ │ │ │ ├── Accept.java
│ │ │ │ ├── AcceptNextLine.java
│ │ │ │ ├── AcceptNextWord.java
│ │ │ │ ├── Dismiss.java
│ │ │ │ ├── Next.java
│ │ │ │ ├── Previous.java
│ │ │ │ └── Trigger.java
│ │ │ ├── editor
│ │ │ ├── EditorUtils.java
│ │ │ └── WorkbenchPartListener.java
│ │ │ ├── git
│ │ │ ├── EclipseJGitProvider.java
│ │ │ ├── GitProvider.java
│ │ │ ├── IGitProvider.java
│ │ │ └── NoOpGitProvider.java
│ │ │ ├── inlineCompletion
│ │ │ ├── IInlineCompletionService.java
│ │ │ ├── InlineCompletionItem.java
│ │ │ ├── InlineCompletionList.java
│ │ │ ├── InlineCompletionService.java
│ │ │ ├── renderer
│ │ │ │ ├── IInlineCompletionItemRenderer.java
│ │ │ │ ├── InlineCompletionItemRenderer.java
│ │ │ │ ├── InlineCompletionItemTextPainter.java
│ │ │ │ ├── InlineCompletionItemTextPainter2.java
│ │ │ │ └── InlineCompletionRendererSupport.java
│ │ │ └── trigger
│ │ │ │ ├── BasicInputEventTrigger.java
│ │ │ │ ├── DebouncedDocumentEventTrigger.java
│ │ │ │ ├── IInlineCompletionTrigger.java
│ │ │ │ ├── InlineCompletionTrigger.java
│ │ │ │ └── PairedDocumentEventTrigger.java
│ │ │ ├── lsp
│ │ │ ├── ConnectionProvider.java
│ │ │ ├── LanguageClientImpl.java
│ │ │ ├── LanguageServerService.java
│ │ │ ├── LanguageSupportProvider.java
│ │ │ ├── ServerConfigHolder.java
│ │ │ ├── StatusInfoHolder.java
│ │ │ └── protocol
│ │ │ │ ├── ClientCapabilities.java
│ │ │ │ ├── ClientInfo.java
│ │ │ │ ├── ClientProvidedConfig.java
│ │ │ │ ├── CompletionEventId.java
│ │ │ │ ├── Config.java
│ │ │ │ ├── EventParams.java
│ │ │ │ ├── GitDiffParams.java
│ │ │ │ ├── GitDiffResult.java
│ │ │ │ ├── GitRepository.java
│ │ │ │ ├── GitRepositoryParams.java
│ │ │ │ ├── IConfigService.java
│ │ │ │ ├── ILanguageServer.java
│ │ │ │ ├── IStatusService.java
│ │ │ │ ├── ITelemetryService.java
│ │ │ │ ├── ITextDocumentServiceExt.java
│ │ │ │ ├── InitializationOptions.java
│ │ │ │ ├── InlineCompletionItem.java
│ │ │ │ ├── InlineCompletionList.java
│ │ │ │ ├── InlineCompletionParams.java
│ │ │ │ ├── ReadFileParams.java
│ │ │ │ ├── ReadFileResult.java
│ │ │ │ ├── SemanticTokensRangeResult.java
│ │ │ │ ├── StatusIgnoredIssuesEditParams.java
│ │ │ │ ├── StatusInfo.java
│ │ │ │ └── StatusRequestParams.java
│ │ │ ├── preferences
│ │ │ ├── MainPreferencesPage.java
│ │ │ └── PreferencesService.java
│ │ │ └── statusbar
│ │ │ └── StatusbarContribution.java
│ └── scripts
│ │ └── copy-dependencies.js
├── example-vscode-lsp
│ └── README.md
├── intellij
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── gradle.xml
│ │ ├── kotlinc.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── .run
│ │ ├── Run Plugin Verifier.run.xml
│ │ └── Run Plugin.run.xml
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── build.gradle.kts
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── package.json
│ ├── settings.gradle.kts
│ └── src
│ │ └── main
│ │ ├── kotlin
│ │ └── com
│ │ │ └── tabbyml
│ │ │ └── intellijtabby
│ │ │ ├── Icons.kt
│ │ │ ├── ProjectExt.kt
│ │ │ ├── actionPromoter
│ │ │ ├── EditorActionPromoter.kt
│ │ │ └── HasPriority.kt
│ │ │ ├── actions
│ │ │ ├── CheckIssueDetail.kt
│ │ │ ├── GenerateCommitMessage.kt
│ │ │ ├── JoinTabbySlackCommunity.kt
│ │ │ ├── OpenModelRegistry.kt
│ │ │ ├── OpenOnlineDocumentation.kt
│ │ │ ├── OpenSettings.kt
│ │ │ ├── OpenTabbyGithubRepo.kt
│ │ │ ├── ToggleInlineCompletionTriggerMode.kt
│ │ │ ├── chat
│ │ │ │ ├── AddFileToChat.kt
│ │ │ │ ├── AddSelectionToChat.kt
│ │ │ │ ├── ChatAction.kt
│ │ │ │ ├── ChatActionHandler.kt
│ │ │ │ ├── ChatNavigationAction.kt
│ │ │ │ ├── CodeReview.kt
│ │ │ │ ├── Explain.kt
│ │ │ │ ├── Fix.kt
│ │ │ │ ├── GenerateDocs.kt
│ │ │ │ ├── GenerateTests.kt
│ │ │ │ ├── OpenChatToolWindow.kt
│ │ │ │ ├── ShowChatHistory.kt
│ │ │ │ ├── ShowNewChat.kt
│ │ │ │ └── ToggleChatToolWindow.kt
│ │ │ └── inlineCompletion
│ │ │ │ ├── Accept.kt
│ │ │ │ ├── AcceptNextLine.kt
│ │ │ │ ├── AcceptNextWord.kt
│ │ │ │ ├── CycleNext.kt
│ │ │ │ ├── CyclePrevious.kt
│ │ │ │ ├── Dismiss.kt
│ │ │ │ ├── InlineCompletionAction.kt
│ │ │ │ ├── InlineCompletionActionHandler.kt
│ │ │ │ ├── TabAccept.kt
│ │ │ │ └── Trigger.kt
│ │ │ ├── chat
│ │ │ ├── ChatBrowser.kt
│ │ │ ├── ChatBrowserFactory.kt
│ │ │ └── ChatPanelData.kt
│ │ │ ├── completion
│ │ │ ├── InlineCompletionData.kt
│ │ │ ├── InlineCompletionRenderer.kt
│ │ │ └── InlineCompletionService.kt
│ │ │ ├── events
│ │ │ ├── CaretListener.kt
│ │ │ ├── CombinedState.kt
│ │ │ ├── DocumentListener.kt
│ │ │ ├── EditorFactoryListener.kt
│ │ │ ├── FeaturesState.kt
│ │ │ ├── SelectionListener.kt
│ │ │ └── StartupActivity.kt
│ │ │ ├── git
│ │ │ ├── DummyGitProvider.kt
│ │ │ ├── Git4IdeaProvider.kt
│ │ │ └── GitProvider.kt
│ │ │ ├── inlineChat
│ │ │ ├── CodeVisionProvider.kt
│ │ │ ├── CommandHistory.kt
│ │ │ ├── CommandListComponent.kt
│ │ │ ├── DiffHighLightingPass.kt
│ │ │ ├── InlineChatAction.kt
│ │ │ ├── InlineChatIntentionAction.kt
│ │ │ ├── InlineChatService.kt
│ │ │ ├── SelectionGutterIconManager.kt
│ │ │ └── util.kt
│ │ │ ├── languageSupport
│ │ │ ├── DefaultLanguageSupportProvider.kt
│ │ │ ├── KotlinLanguageSupportProvider.kt
│ │ │ ├── LanguageSupportProvider.kt
│ │ │ └── LanguageSupportService.kt
│ │ │ ├── lsp
│ │ │ ├── ConfigurationSync.kt
│ │ │ ├── ConnectionService.kt
│ │ │ ├── LanguageClient.kt
│ │ │ ├── LanguageIdExt.kt
│ │ │ ├── PositionExt.kt
│ │ │ ├── TextDocumentSync.kt
│ │ │ ├── Tracer.kt
│ │ │ └── protocol
│ │ │ │ ├── ProtocolData.kt
│ │ │ │ ├── client
│ │ │ │ └── LanguageClient.kt
│ │ │ │ └── server
│ │ │ │ ├── ChatFeature.kt
│ │ │ │ ├── ConfigFeature.kt
│ │ │ │ ├── EditorsFeature.kt
│ │ │ │ ├── LanguageServer.kt
│ │ │ │ ├── NotebookDocumentFeature.kt
│ │ │ │ ├── StatusFeature.kt
│ │ │ │ ├── TelemetryFeature.kt
│ │ │ │ ├── TextDocumentFeature.kt
│ │ │ │ └── WorkspaceFeature.kt
│ │ │ ├── notifications
│ │ │ └── Notifications.kt
│ │ │ ├── settings
│ │ │ ├── Configurable.kt
│ │ │ ├── KeymapSettings.kt
│ │ │ ├── SettingsPanel.kt
│ │ │ ├── SettingsService.kt
│ │ │ └── SettingsState.kt
│ │ │ └── widgets
│ │ │ ├── ChatToolWindowFactory.kt
│ │ │ └── StatusBarWidgetFactory.kt
│ │ └── resources
│ │ ├── META-INF
│ │ ├── plugin-Git4Idea.xml
│ │ ├── plugin-kotlin.xml
│ │ ├── plugin.xml
│ │ └── pluginIcon.svg
│ │ ├── icons
│ │ ├── chat.svg
│ │ ├── chat_dark.svg
│ │ └── new-ui
│ │ │ ├── chat.svg
│ │ │ └── chat_dark.svg
│ │ └── strings.properties
├── tabby-agent
│ ├── .eslintrc
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .mocha.env.js
│ ├── .mocharc.js
│ ├── .prettierignore
│ ├── .prettierrc.json
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── launch.json
│ │ └── tasks.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── package.json
│ ├── register-loader.js
│ ├── src
│ │ ├── certsLoader.ts
│ │ ├── chat
│ │ │ ├── generateBranchName.ts
│ │ │ ├── generateCommitMessage.ts
│ │ │ ├── global.ts
│ │ │ ├── index.ts
│ │ │ ├── inlineEdit.ts
│ │ │ ├── prompts
│ │ │ │ ├── edit-command-insert.md
│ │ │ │ ├── edit-command-replace.md
│ │ │ │ ├── fix-spelling-and-grammar.md
│ │ │ │ ├── generate-branch-name.md
│ │ │ │ ├── generate-commit-message.md
│ │ │ │ ├── generate-docs.md
│ │ │ │ ├── generate-smart-apply.md
│ │ │ │ ├── include-file-context-item.md
│ │ │ │ ├── include-file-context-list.md
│ │ │ │ ├── index.d.ts
│ │ │ │ └── provide-smart-apply-line-range.md
│ │ │ ├── smartApply.ts
│ │ │ ├── smartRange.ts
│ │ │ └── utils.ts
│ │ ├── codeCompletion
│ │ │ ├── buildRequest.ts
│ │ │ ├── cache.ts
│ │ │ ├── contexts.ts
│ │ │ ├── debouncer.ts
│ │ │ ├── index.ts
│ │ │ ├── latencyTracker.ts
│ │ │ ├── postprocess
│ │ │ │ ├── base.ts
│ │ │ │ ├── dropDuplicated.test.ts
│ │ │ │ ├── dropDuplicated.ts
│ │ │ │ ├── dropMinimum.test.ts
│ │ │ │ ├── dropMinimum.ts
│ │ │ │ ├── formatIndentation.test.ts
│ │ │ │ ├── formatIndentation.ts
│ │ │ │ ├── golden
│ │ │ │ │ ├── basic_fibonacci_test
│ │ │ │ │ │ ├── python.toml
│ │ │ │ │ │ ├── rust.toml
│ │ │ │ │ │ └── typescript.toml
│ │ │ │ │ ├── limit_scope
│ │ │ │ │ │ ├── basic.toml
│ │ │ │ │ │ ├── fill_in_line_01.toml
│ │ │ │ │ │ ├── rust_01.toml
│ │ │ │ │ │ ├── rust_02.toml
│ │ │ │ │ │ ├── to_block_01.toml
│ │ │ │ │ │ ├── to_block_02.toml
│ │ │ │ │ │ ├── to_block_03.toml
│ │ │ │ │ │ ├── to_line_01.toml
│ │ │ │ │ │ └── typescript_01.toml
│ │ │ │ │ ├── remove_duplication
│ │ │ │ │ │ ├── basic.toml
│ │ │ │ │ │ ├── duplicated_block_closing_line_01.toml
│ │ │ │ │ │ ├── duplicated_line_suffix.toml
│ │ │ │ │ │ ├── similar_lines_01.toml
│ │ │ │ │ │ └── similar_lines_02.toml
│ │ │ │ │ └── replace_range
│ │ │ │ │ │ ├── basic.toml
│ │ │ │ │ │ ├── javascript_01.toml
│ │ │ │ │ │ ├── jsx_tags_01.toml
│ │ │ │ │ │ ├── jsx_tags_02.toml
│ │ │ │ │ │ ├── mismatched_01.toml
│ │ │ │ │ │ ├── multiple_01.toml
│ │ │ │ │ │ ├── multiple_02.toml
│ │ │ │ │ │ ├── rust_01.toml
│ │ │ │ │ │ └── typescript_01.toml
│ │ │ │ ├── index.ts
│ │ │ │ ├── limitScope.ts
│ │ │ │ ├── limitScopeByIndentation.test.ts
│ │ │ │ ├── limitScopeByIndentation.ts
│ │ │ │ ├── normalizeIndentation.test.ts
│ │ │ │ ├── normalizeIndentation.ts
│ │ │ │ ├── postprocess.test.ts
│ │ │ │ ├── removeDuplicateSuffixLines.test.ts
│ │ │ │ ├── removeDuplicateSuffixLines.ts
│ │ │ │ ├── removeDuplicatedBlockClosingLine.test.ts
│ │ │ │ ├── removeDuplicatedBlockClosingLine.ts
│ │ │ │ ├── removeLineEndsWithRepetition.test.ts
│ │ │ │ ├── removeLineEndsWithRepetition.ts
│ │ │ │ ├── removeRepetitiveBlocks.test.ts
│ │ │ │ ├── removeRepetitiveBlocks.ts
│ │ │ │ ├── removeRepetitiveLines.test.ts
│ │ │ │ ├── removeRepetitiveLines.ts
│ │ │ │ ├── testUtils.ts
│ │ │ │ ├── trimMultiLineInSingleLineMode.test.ts
│ │ │ │ ├── trimMultiLineInSingleLineMode.ts
│ │ │ │ ├── trimSpace.test.ts
│ │ │ │ └── trimSpace.ts
│ │ │ ├── solution.ts
│ │ │ └── statistics.ts
│ │ ├── codeLens.ts
│ │ ├── codeSearch.ts
│ │ ├── command.ts
│ │ ├── config
│ │ │ ├── configFile.ts
│ │ │ ├── default.test.ts
│ │ │ ├── default.ts
│ │ │ ├── index.ts
│ │ │ └── type.d.ts
│ │ ├── contextProviders
│ │ │ ├── declarationSnippets.ts
│ │ │ ├── documentContexts.ts
│ │ │ ├── editorOptions.ts
│ │ │ ├── editorVisibleRanges.ts
│ │ │ ├── git
│ │ │ │ ├── gitCommand.ts
│ │ │ │ └── index.ts
│ │ │ ├── recentlyChangedCodeSearch.ts
│ │ │ └── workspace.ts
│ │ ├── dataStore
│ │ │ ├── dataFile.ts
│ │ │ └── index.ts
│ │ ├── env.ts
│ │ ├── extensions
│ │ │ └── textDocuments.ts
│ │ ├── feature.ts
│ │ ├── http
│ │ │ ├── cloudApi.d.ts
│ │ │ ├── proxy.ts
│ │ │ ├── stream.ts
│ │ │ └── tabbyApiClient.ts
│ │ ├── index.ts
│ │ ├── logger
│ │ │ ├── fileLogger.ts
│ │ │ ├── index.ts
│ │ │ └── type.d.ts
│ │ ├── protocol.ts
│ │ ├── server.ts
│ │ ├── status.ts
│ │ ├── syntax
│ │ │ └── parser.ts
│ │ ├── telemetry.ts
│ │ └── utils
│ │ │ ├── array.ts
│ │ │ ├── diff.ts
│ │ │ ├── error.ts
│ │ │ ├── languageId.ts
│ │ │ ├── range.ts
│ │ │ ├── signal.ts
│ │ │ ├── string.ts
│ │ │ └── types.ts
│ ├── tsconfig.json
│ ├── tsup.config.ts
│ └── wasm
│ │ ├── LICENSES
│ │ ├── tree-sitter-go.wasm
│ │ ├── tree-sitter-python.wasm
│ │ ├── tree-sitter-ruby.wasm
│ │ ├── tree-sitter-rust.wasm
│ │ ├── tree-sitter-tsx.wasm
│ │ └── tree-sitter.wasm
├── tabby-chat-panel
│ ├── .gitignore
│ ├── README.md
│ ├── build.config.ts
│ ├── eslint.config.js
│ ├── package.json
│ ├── rollup.config.js
│ ├── src
│ │ ├── browser.ts
│ │ ├── client.ts
│ │ ├── index.ts
│ │ ├── react.ts
│ │ ├── server.ts
│ │ ├── thread.ts
│ │ └── types.ts
│ ├── test
│ │ └── index.test.ts
│ └── tsconfig.json
├── tabby-openapi
│ ├── .gitignore
│ ├── compatible
│ │ └── index.d.ts
│ ├── lib
│ │ ├── index.d.ts
│ │ ├── openai.d.ts
│ │ └── tabby.d.ts
│ ├── openapi.json
│ ├── package.json
│ └── scripts
│ │ └── codegen.js
├── tabby-threads
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ ├── rollup.config.js
│ ├── source
│ │ ├── abort-signal.ts
│ │ ├── abort-signal
│ │ │ ├── accept.ts
│ │ │ ├── create.ts
│ │ │ └── types.ts
│ │ ├── constants.ts
│ │ ├── encoding.ts
│ │ ├── encoding
│ │ │ └── basic.ts
│ │ ├── index.ts
│ │ ├── memory.ts
│ │ ├── signals.ts
│ │ ├── signals
│ │ │ ├── accept.ts
│ │ │ ├── create.ts
│ │ │ └── types.ts
│ │ ├── targets.ts
│ │ ├── targets
│ │ │ ├── broadcast-channel.ts
│ │ │ ├── iframe
│ │ │ │ ├── iframe.ts
│ │ │ │ ├── nested.ts
│ │ │ │ └── shared.ts
│ │ │ ├── message-port.ts
│ │ │ ├── target.ts
│ │ │ ├── web-socket-browser.ts
│ │ │ └── web-worker.ts
│ │ └── types.ts
│ ├── tsconfig.json
│ └── tsconfig.tsbuildinfo
├── vim
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── autoload
│ │ ├── tabby.vim
│ │ └── tabby
│ │ │ ├── inline_completion.vim
│ │ │ ├── inline_completion
│ │ │ ├── events.vim
│ │ │ ├── keybindings.vim
│ │ │ ├── service.vim
│ │ │ ├── utils.vim
│ │ │ └── virtual_text.vim
│ │ │ ├── lsp.vim
│ │ │ └── lsp
│ │ │ └── nvim_lsp.vim
│ ├── doc
│ │ └── tabby.txt
│ ├── lua
│ │ ├── tabby.lua
│ │ └── tabby
│ │ │ ├── lsp.lua
│ │ │ └── lsp
│ │ │ └── nvim_lsp.lua
│ └── plugin
│ │ └── tabby.vim
└── vscode
│ ├── .eslintrc
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .mocha.env.js
│ ├── .mocharc.js
│ ├── .prettierrc.json
│ ├── .vscode
│ ├── extensions.json
│ ├── launch.json
│ └── tasks.json
│ ├── .vscodeignore
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── assets
│ ├── chat-panel.css
│ ├── chat.svg
│ ├── logo.png
│ ├── tabby.png
│ └── walkthroughs
│ │ ├── chat.md
│ │ ├── chatEdit.png
│ │ ├── chatEditCompleted.png
│ │ ├── chatView.png
│ │ ├── chatViewWithSelected.png
│ │ ├── codeCompletion.md
│ │ ├── commandPalette.png
│ │ ├── commands.md
│ │ ├── connectToServer.md
│ │ ├── connectToServer_token.png
│ │ ├── connectToServer_url.png
│ │ ├── keybindings.md
│ │ ├── multipleChoice.png
│ │ ├── setupServer.md
│ │ └── statusbarReady.png
│ ├── package.json
│ ├── scripts
│ ├── dummy.js
│ └── publish.cjs
│ ├── src
│ ├── CodeActions.ts
│ ├── Config.ts
│ ├── ContextVariables.ts
│ ├── InlineCompletionProvider.ts
│ ├── StatusBarItem.ts
│ ├── cancelableFunction.ts
│ ├── chat
│ │ ├── chatPanel.ts
│ │ ├── context.ts
│ │ ├── createClient.ts
│ │ ├── dom.d.ts
│ │ ├── html
│ │ │ ├── error.html
│ │ │ ├── index.d.ts
│ │ │ └── main.html
│ │ ├── sidePanel.ts
│ │ ├── utils.ts
│ │ └── webview.ts
│ ├── code-action
│ │ ├── InlineEdit.ts
│ │ └── QuickFix.ts
│ ├── commands
│ │ ├── branchQuickPick.ts
│ │ ├── commandPalette.ts
│ │ ├── connectToServer.ts
│ │ └── index.ts
│ ├── deferred.ts
│ ├── env.ts
│ ├── extension.ts
│ ├── findFiles.ts
│ ├── findSymbols.ts
│ ├── git
│ │ ├── GitProvider.ts
│ │ └── git.d.ts
│ ├── inline-edit
│ │ ├── index.ts
│ │ ├── quickPick.ts
│ │ ├── util.test.ts
│ │ └── util.ts
│ ├── keybindings.ts
│ ├── logger.ts
│ ├── lsp
│ │ ├── AgentConfigFeature.ts
│ │ ├── AgentStatusFeature.ts
│ │ ├── ChatFeature.ts
│ │ ├── CodeLensMiddleware.ts
│ │ ├── ConfigurationMiddleware.ts
│ │ ├── ConfigurationSyncFeature.ts
│ │ ├── DataStoreFeature.ts
│ │ ├── EditorOptionsFeature.ts
│ │ ├── FileTrackFeature.ts
│ │ ├── GitProviderFeature.ts
│ │ ├── InitializationFeature.ts
│ │ ├── InlineCompletionFeature.ts
│ │ ├── LanguageSupportFeature.ts
│ │ ├── TelemetryFeature.ts
│ │ ├── WorkspaceFeature.ts
│ │ ├── WorkspaceFileSystemFeature.ts
│ │ ├── client.ts
│ │ └── vscodeWindowUtils.ts
│ ├── terminal.ts
│ └── windowUtils.ts
│ ├── tsconfig.build.json
│ ├── tsconfig.json
│ └── tsup.config.ts
├── codecov.yml
├── crates
├── aim-downloader
│ ├── Cargo.toml
│ ├── LICENCE.md
│ ├── README.md
│ └── src
│ │ ├── address.rs
│ │ ├── bar.rs
│ │ ├── consts.rs
│ │ ├── error.rs
│ │ ├── hash.rs
│ │ ├── https.rs
│ │ ├── io.rs
│ │ ├── lib.rs
│ │ ├── netrc.rs
│ │ └── untildify.rs
├── hash-ids
│ ├── Cargo.toml
│ └── src
│ │ ├── README.md
│ │ └── lib.rs
├── http-api-bindings
│ ├── Cargo.toml
│ └── src
│ │ ├── chat
│ │ └── mod.rs
│ │ ├── completion
│ │ ├── llama.rs
│ │ ├── mistral.rs
│ │ ├── mod.rs
│ │ └── openai.rs
│ │ ├── embedding
│ │ ├── azure.rs
│ │ ├── llama.rs
│ │ ├── mod.rs
│ │ └── openai.rs
│ │ ├── lib.rs
│ │ └── rate_limit.rs
├── llama-cpp-server
│ ├── Cargo.toml
│ ├── build.rs
│ └── src
│ │ ├── lib.rs
│ │ └── supervisor.rs
├── ollama-api-bindings
│ ├── Cargo.toml
│ └── src
│ │ ├── completion.rs
│ │ ├── embedding.rs
│ │ ├── lib.rs
│ │ └── model.rs
├── sqlx-migrate-validate
│ ├── Cargo.toml
│ ├── README.md
│ ├── src
│ │ ├── error.rs
│ │ ├── lib.rs
│ │ └── validate.rs
│ └── tests
│ │ ├── migrations-1
│ │ └── 20230312133715_create_table.sql
│ │ ├── migrations-2
│ │ ├── 20230312133715_create_table.sql
│ │ └── 20230312141719_add_other_table.sql
│ │ ├── migrations-3
│ │ └── 20230312141719_add_other_table.sql
│ │ ├── migrations-4
│ │ └── 20230312133715_create_table.sql
│ │ └── validate.rs
├── tabby-common
│ ├── Cargo.toml
│ ├── assets
│ │ └── languages.toml
│ └── src
│ │ ├── api
│ │ ├── code.rs
│ │ ├── event.rs
│ │ ├── ingestion.rs
│ │ ├── mod.rs
│ │ ├── server_setting.rs
│ │ └── structured_doc.rs
│ │ ├── axum.rs
│ │ ├── config.rs
│ │ ├── constants.rs
│ │ ├── index
│ │ ├── code
│ │ │ ├── mod.rs
│ │ │ └── tokenizer.rs
│ │ ├── mod.rs
│ │ └── structured_doc.rs
│ │ ├── languages.rs
│ │ ├── lib.rs
│ │ ├── path.rs
│ │ ├── registry.rs
│ │ ├── terminal.rs
│ │ └── usage.rs
├── tabby-crawler
│ ├── Cargo.toml
│ └── src
│ │ ├── lib.rs
│ │ ├── llms_txt_parser.rs
│ │ └── types.rs
├── tabby-download
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── tabby-git
│ ├── Cargo.toml
│ └── src
│ │ ├── commit.rs
│ │ ├── file_search.rs
│ │ ├── grep
│ │ ├── mod.rs
│ │ ├── output.rs
│ │ ├── query.rs
│ │ └── searcher.rs
│ │ ├── lib.rs
│ │ └── serve_git.rs
├── tabby-index-cli
│ ├── Cargo.toml
│ ├── README.md
│ ├── assets
│ │ └── queries.txt
│ └── src
│ │ ├── commands
│ │ ├── bench.rs
│ │ ├── head.rs
│ │ ├── inspect.rs
│ │ └── mod.rs
│ │ ├── main.rs
│ │ └── timer.rs
├── tabby-index
│ ├── Cargo.toml
│ ├── README.md
│ ├── queries
│ │ ├── csharp.scm
│ │ ├── gdscript.scm
│ │ ├── go.scm
│ │ ├── kotlin.scm
│ │ ├── ocaml.scm
│ │ ├── rust.scm
│ │ ├── scala.scm
│ │ ├── solidity.scm
│ │ └── tsx.scm
│ ├── src
│ │ ├── code
│ │ │ ├── index.rs
│ │ │ ├── intelligence.rs
│ │ │ ├── intelligence
│ │ │ │ └── id.rs
│ │ │ ├── languages.rs
│ │ │ ├── mod.rs
│ │ │ ├── repository.rs
│ │ │ ├── snapshots
│ │ │ │ ├── tabby_index__code__index__tests__code_splitter-2.snap
│ │ │ │ ├── tabby_index__code__index__tests__code_splitter-3.snap
│ │ │ │ ├── tabby_index__code__index__tests__code_splitter-4.snap
│ │ │ │ └── tabby_index__code__index__tests__code_splitter.snap
│ │ │ └── types.rs
│ │ ├── indexer.rs
│ │ ├── indexer_tests.rs
│ │ ├── lib.rs
│ │ ├── structured_doc
│ │ │ ├── mod.rs
│ │ │ ├── public.rs
│ │ │ ├── types.rs
│ │ │ └── types
│ │ │ │ ├── commit.rs
│ │ │ │ ├── ingested.rs
│ │ │ │ ├── issue.rs
│ │ │ │ ├── page.rs
│ │ │ │ ├── pull.rs
│ │ │ │ └── web.rs
│ │ ├── tantivy_utils.rs
│ │ └── testutils.rs
│ └── testdata
│ │ └── repositories
│ │ └── https_github.com_TabbyML_tabby
│ │ └── rust.rs
├── tabby-inference
│ ├── Cargo.toml
│ └── src
│ │ ├── chat.rs
│ │ ├── code.rs
│ │ ├── completion.rs
│ │ ├── decoding.rs
│ │ ├── embedding.rs
│ │ └── lib.rs
└── tabby
│ ├── .gitignore
│ ├── Cargo.toml
│ ├── build.rs
│ ├── src
│ ├── download.rs
│ ├── main.rs
│ ├── otel.rs
│ ├── routes
│ │ ├── chat.rs
│ │ ├── completions.rs
│ │ ├── events.rs
│ │ ├── health.rs
│ │ ├── metrics.rs
│ │ ├── mod.rs
│ │ ├── models.rs
│ │ └── server_setting.rs
│ ├── serve.rs
│ └── services
│ │ ├── code.rs
│ │ ├── completion.rs
│ │ ├── completion
│ │ ├── completion_prompt.rs
│ │ └── next_edit_prompt.rs
│ │ ├── embedding.rs
│ │ ├── event.rs
│ │ ├── health.rs
│ │ ├── mod.rs
│ │ ├── model
│ │ └── mod.rs
│ │ ├── structured_doc
│ │ ├── mod.rs
│ │ ├── serper.rs
│ │ └── tantivy.rs
│ │ └── tantivy.rs
│ └── tests
│ ├── goldentests.rs
│ ├── goldentests_chat.rs
│ └── snapshots
│ ├── goldentests__run_golden_tests-2.snap
│ ├── goldentests__run_golden_tests.snap
│ ├── goldentests__run_golden_tests_cpu-2.snap
│ ├── goldentests__run_golden_tests_cpu.snap
│ ├── goldentests_chat__run_chat_golden_tests-2.snap
│ ├── goldentests_chat__run_chat_golden_tests.snap
│ └── goldentests_chat__run_chat_golden_tests_cpu.snap
├── docker
├── Dockerfile.cuda
└── Dockerfile.rocm
├── ee
├── LICENSE
├── tabby-db-macros
│ ├── Cargo.toml
│ └── src
│ │ └── lib.rs
├── tabby-db
│ ├── .gitignore
│ ├── Cargo.toml
│ ├── docs
│ │ └── sqlx.md
│ ├── migrations
│ │ ├── 0001_registration-token-table.down.sql
│ │ ├── 0001_registration-token-table.up.sql
│ │ ├── 0002_users-table.down.sql
│ │ ├── 0002_users-table.up.sql
│ │ ├── 0003_invitations-table.down.sql
│ │ ├── 0003_invitations-table.up.sql
│ │ ├── 0004_refresh-tokens.down.sql
│ │ ├── 0004_refresh-tokens.up.sql
│ │ ├── 0005_job-runs-table.down.sql
│ │ ├── 0005_job-runs-table.up.sql
│ │ ├── 0006_github-oauth-credential.down.sql
│ │ ├── 0006_github-oauth-credential.up.sql
│ │ ├── 0007_email-setting.down.sql
│ │ ├── 0007_email-setting.up.sql
│ │ ├── 0008_repositories-table.down.sql
│ │ ├── 0008_repositories-table.up.sql
│ │ ├── 0009_google-oauth-credential.down.sql
│ │ ├── 0009_google-oauth-credential.up.sql
│ │ ├── 0010_server-setting.down.sql
│ │ ├── 0010_server-setting.up.sql
│ │ ├── 0011_new-email-settings.down.sql
│ │ ├── 0011_new-email-settings.up.sql
│ │ ├── 0012_remove-redirect-uri-field-oauth.down.sql
│ │ ├── 0012_remove-redirect-uri-field-oauth.up.sql
│ │ ├── 0013_add-smtp-port.down.sql
│ │ ├── 0013_add-smtp-port.up.sql
│ │ ├── 0014_password-reset.down.sql
│ │ ├── 0014_password-reset.up.sql
│ │ ├── 0015_enterprise-license.down.sql
│ │ ├── 0015_enterprise-license.up.sql
│ │ ├── 0016_merge-oauth-tables.down.sql
│ │ ├── 0016_merge-oauth-tables.up.sql
│ │ ├── 0017_add-user-completions.down.sql
│ │ ├── 0017_add-user-completions.up.sql
│ │ ├── 0018_user-password-nullable.down.sql
│ │ ├── 0018_user-password-nullable.up.sql
│ │ ├── 0019_user-avatar.down.sql
│ │ ├── 0019_user-avatar.up.sql
│ │ ├── 0020_job-run-index.down.sql
│ │ ├── 0020_job-run-index.up.sql
│ │ ├── 0021_repository-name-index.down.sql
│ │ ├── 0021_repository-name-index.up.sql
│ │ ├── 0022_github-provider.down.sql
│ │ ├── 0022_github-provider.up.sql
│ │ ├── 0023_user-completions-created-at-index.down.sql
│ │ ├── 0023_user-completions-created-at-index.up.sql
│ │ ├── 0024_github-provided-repos.down.sql
│ │ ├── 0024_github-provided-repos.up.sql
│ │ ├── 0025_user-events.down.sql
│ │ ├── 0025_user-events.up.sql
│ │ ├── 0026_clean-up-tables.down.sql
│ │ ├── 0026_clean-up-tables.up.sql
│ │ ├── 0027_remove-github-repository-columns-on-oauth.down.sql
│ │ ├── 0027_remove-github-repository-columns-on-oauth.up.sql
│ │ ├── 0028_gitlab-provider.down.sql
│ │ ├── 0028_gitlab-provider.up.sql
│ │ ├── 0029_merged-provider-tables.down.sql
│ │ ├── 0029_merged-provider-tables.up.sql
│ │ ├── 0030_user-name.down.sql
│ │ ├── 0030_user-name.up.sql
│ │ ├── 0031_web-crawler-urls.down.sql
│ │ ├── 0031_web-crawler-urls.up.sql
│ │ ├── 0033_add-job-runs-param-column.down.sql
│ │ ├── 0033_add-job-runs-param-column.up.sql
│ │ ├── 0034_add-started-at-column-in-job-runs.down.sql
│ │ ├── 0034_add-started-at-column-in-job-runs.up.sql
│ │ ├── 0035_add-thread-message-table.down.sql
│ │ ├── 0035_add-thread-message-table.up.sql
│ │ ├── 0036_web_document.down.sql
│ │ ├── 0036_web_document.up.sql
│ │ ├── 0037_remove-webcrawler-table.down.sql
│ │ ├── 0037_remove-webcrawler-table.up.sql
│ │ ├── 0038_add-access-control-tables.down.sql
│ │ ├── 0038_add-access-control-tables.up.sql
│ │ ├── 0039_add-notification-inbox.down.sql
│ │ ├── 0039_add-notification-inbox.up.sql
│ │ ├── 0040_add-code-source-id-column.down.sql
│ │ ├── 0040_add-code-source-id-column.up.sql
│ │ ├── 0041_ldap-credential.down.sql
│ │ ├── 0041_ldap-credential.up.sql
│ │ ├── 0042_add-file-list-attachment.down.sql
│ │ ├── 0042_add-file-list-attachment.up.sql
│ │ ├── 0043_page-section.down.sql
│ │ ├── 0043_page-section.up.sql
│ │ ├── 0044_add-page-sources.down.sql
│ │ ├── 0044_add-page-sources.up.sql
│ │ ├── 0045_remove-deprecated-columns.down.sql
│ │ ├── 0045_remove-deprecated-columns.up.sql
│ │ ├── 0046_add-disable-password-login.down.sql
│ │ ├── 0046_add-disable-password-login.up.sql
│ │ ├── 0047_add-ingestion.down.sql
│ │ └── 0047_add-ingestion.up.sql
│ ├── schema.sqlite
│ ├── schema
│ │ ├── schema.sql
│ │ ├── schema.svg
│ │ └── sqlite-schema-visualize.sql
│ └── src
│ │ ├── access_policy.rs
│ │ ├── attachment.rs
│ │ ├── cache.rs
│ │ ├── conversions.rs
│ │ ├── email_setting.rs
│ │ ├── ingestion.rs
│ │ ├── integrations.rs
│ │ ├── invitations.rs
│ │ ├── job_runs.rs
│ │ ├── ldap_credential.rs
│ │ ├── lib.rs
│ │ ├── migration_tests.rs
│ │ ├── notifications.rs
│ │ ├── oauth_credential.rs
│ │ ├── pages.rs
│ │ ├── password_reset.rs
│ │ ├── provided_repositories.rs
│ │ ├── refresh_tokens.rs
│ │ ├── repositories.rs
│ │ ├── server_setting.rs
│ │ ├── threads.rs
│ │ ├── user_chats.rs
│ │ ├── user_completions.rs
│ │ ├── user_events.rs
│ │ ├── user_groups.rs
│ │ ├── users.rs
│ │ └── web_documents.rs
├── tabby-email
│ ├── .gitignore
│ ├── README.md
│ ├── components
│ │ └── root-layout.tsx
│ ├── emails
│ │ ├── invitation.tsx
│ │ ├── password_reset.tsx
│ │ ├── signup_success.tsx
│ │ └── test.tsx
│ └── package.json
├── tabby-schema
│ ├── Cargo.toml
│ ├── examples
│ │ └── update-schema.rs
│ ├── graphql
│ │ └── schema.graphql
│ └── src
│ │ ├── dao.rs
│ │ ├── env.rs
│ │ ├── juniper
│ │ ├── mod.rs
│ │ └── relay
│ │ │ ├── connection.rs
│ │ │ ├── edge.rs
│ │ │ ├── mod.rs
│ │ │ ├── node_type.rs
│ │ │ └── page_info.rs
│ │ ├── lib.rs
│ │ ├── policy.rs
│ │ └── schema
│ │ ├── access_policy.rs
│ │ ├── analytic.rs
│ │ ├── auth.rs
│ │ ├── constants.rs
│ │ ├── context.rs
│ │ ├── email.rs
│ │ ├── ingestion.rs
│ │ ├── integration.rs
│ │ ├── interface.rs
│ │ ├── job.rs
│ │ ├── license.rs
│ │ ├── mod.rs
│ │ ├── notification.rs
│ │ ├── page.rs
│ │ ├── page
│ │ └── types.rs
│ │ ├── repository
│ │ ├── git.rs
│ │ ├── mod.rs
│ │ ├── third_party.rs
│ │ └── types.rs
│ │ ├── retrieval.rs
│ │ ├── setting.rs
│ │ ├── thread.rs
│ │ ├── thread
│ │ ├── inputs.rs
│ │ └── types.rs
│ │ ├── user_event.rs
│ │ ├── user_group.rs
│ │ ├── web_documents.rs
│ │ └── worker.rs
├── tabby-ui
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── README.md
│ ├── app
│ │ ├── (dashboard)
│ │ │ ├── (logs)
│ │ │ │ ├── jobs
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── job-detail.tsx
│ │ │ │ │ │ ├── job-row.tsx
│ │ │ │ │ │ └── jobs.tsx
│ │ │ │ │ ├── detail
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── utils.ts
│ │ │ │ └── layout.tsx
│ │ │ ├── activities
│ │ │ │ ├── components
│ │ │ │ │ └── activity.tsx
│ │ │ │ └── page.tsx
│ │ │ ├── components
│ │ │ │ ├── dashboard-layout.tsx
│ │ │ │ ├── dashboard-main.tsx
│ │ │ │ ├── dashboard-sidebar.tsx
│ │ │ │ └── sidebar.tsx
│ │ │ ├── experiments
│ │ │ │ ├── components
│ │ │ │ │ └── feature-list.tsx
│ │ │ │ └── page.tsx
│ │ │ ├── layout.tsx
│ │ │ ├── profile
│ │ │ │ ├── components
│ │ │ │ │ ├── avatar.tsx
│ │ │ │ │ ├── change-name.tsx
│ │ │ │ │ ├── change-password.tsx
│ │ │ │ │ ├── email.tsx
│ │ │ │ │ ├── profile-card.tsx
│ │ │ │ │ └── profile.tsx
│ │ │ │ └── page.tsx
│ │ │ ├── reports
│ │ │ │ ├── components
│ │ │ │ │ ├── annual-activity.tsx
│ │ │ │ │ ├── chat-daily-activity.tsx
│ │ │ │ │ ├── completion-daily-activity.tsx
│ │ │ │ │ ├── constants.ts
│ │ │ │ │ └── report.tsx
│ │ │ │ └── page.tsx
│ │ │ ├── settings
│ │ │ │ ├── (integrations)
│ │ │ │ │ ├── mail
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ ├── header.tsx
│ │ │ │ │ │ │ ├── mail-form.tsx
│ │ │ │ │ │ │ ├── mail-testing-form.tsx
│ │ │ │ │ │ │ └── mail.tsx
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ ├── providers
│ │ │ │ │ │ ├── [kind]
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ ├── common-provider-form.tsx
│ │ │ │ │ │ │ │ └── provider-list.tsx
│ │ │ │ │ │ │ ├── detail
│ │ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ │ ├── add-repository-form.tsx
│ │ │ │ │ │ │ │ │ ├── provider-detail.tsx
│ │ │ │ │ │ │ │ │ └── update-provider-form.tsx
│ │ │ │ │ │ │ │ ├── page.tsx
│ │ │ │ │ │ │ │ └── query.ts
│ │ │ │ │ │ │ ├── hooks
│ │ │ │ │ │ │ │ └── use-repository-kind.ts
│ │ │ │ │ │ │ ├── layout.tsx
│ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ │ └── new-page.tsx
│ │ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ ├── access-policy-view.tsx
│ │ │ │ │ │ │ ├── job-trigger.tsx
│ │ │ │ │ │ │ └── nav-bar.tsx
│ │ │ │ │ │ ├── constants.tsx
│ │ │ │ │ │ ├── doc
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ ├── create-custom-doc.tsx
│ │ │ │ │ │ │ │ ├── custom-doc.tsx
│ │ │ │ │ │ │ │ └── preset-doc.tsx
│ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ ├── git
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ ├── git.tsx
│ │ │ │ │ │ │ │ └── repository-table.tsx
│ │ │ │ │ │ │ ├── layout.tsx
│ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ │ ├── create-repository-form.tsx
│ │ │ │ │ │ │ │ │ └── new-page.tsx
│ │ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ ├── layout.tsx
│ │ │ │ │ │ └── query.ts
│ │ │ │ │ └── sso
│ │ │ │ │ │ ├── components
│ │ │ │ │ │ ├── credential-list.tsx
│ │ │ │ │ │ ├── form-sub-title.tsx
│ │ │ │ │ │ ├── ldap-credential-form.tsx
│ │ │ │ │ │ ├── oauth-credential-form.tsx
│ │ │ │ │ │ └── sso-type-radio.tsx
│ │ │ │ │ │ ├── constant.ts
│ │ │ │ │ │ ├── detail
│ │ │ │ │ │ ├── [oauth-provider]
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ └── oauth-credential-detail.tsx
│ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ └── ldap
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ └── ldap-credential-detail.tsx
│ │ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ ├── layout.tsx
│ │ │ │ │ │ ├── new
│ │ │ │ │ │ ├── component
│ │ │ │ │ │ │ └── new-page.tsx
│ │ │ │ │ │ └── page.tsx
│ │ │ │ │ │ └── page.tsx
│ │ │ │ ├── general
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── form-section.tsx
│ │ │ │ │ │ ├── general.tsx
│ │ │ │ │ │ ├── network-form.tsx
│ │ │ │ │ │ └── security-form.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── subscription
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── license-form.tsx
│ │ │ │ │ │ ├── license-table.tsx
│ │ │ │ │ │ └── subscription.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ └── team
│ │ │ │ │ ├── components
│ │ │ │ │ ├── create-invitation-form.tsx
│ │ │ │ │ ├── invitation-table.tsx
│ │ │ │ │ ├── team-nav.tsx
│ │ │ │ │ ├── team.tsx
│ │ │ │ │ ├── user-role-dialog.tsx
│ │ │ │ │ └── user-table.tsx
│ │ │ │ │ ├── groups
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── create-user-group.tsx
│ │ │ │ │ │ ├── membership-view.tsx
│ │ │ │ │ │ ├── types.ts
│ │ │ │ │ │ ├── upsert-member-dialog.tsx
│ │ │ │ │ │ ├── upsert-member-form.tsx
│ │ │ │ │ │ ├── user-group-item.tsx
│ │ │ │ │ │ └── user-group-page.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ │ ├── layout.tsx
│ │ │ │ │ └── page.tsx
│ │ │ └── system
│ │ │ │ ├── components
│ │ │ │ ├── cluster.tsx
│ │ │ │ ├── ingestion-table.tsx
│ │ │ │ └── worker-card.tsx
│ │ │ │ └── page.tsx
│ │ ├── (home)
│ │ │ ├── components
│ │ │ │ ├── animation-wrapper.tsx
│ │ │ │ ├── daily-charts.tsx
│ │ │ │ ├── related-questions.tsx
│ │ │ │ ├── stats.tsx
│ │ │ │ └── thread-feeds
│ │ │ │ │ ├── all-threads.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── my-threads.tsx
│ │ │ │ │ ├── thread-item.tsx
│ │ │ │ │ └── threads-context.ts
│ │ │ └── page.tsx
│ │ ├── api
│ │ │ └── page.tsx
│ │ ├── auth
│ │ │ ├── layout.tsx
│ │ │ ├── reset-password
│ │ │ │ ├── components
│ │ │ │ │ ├── reset-password-form.tsx
│ │ │ │ │ └── reset-password-page.tsx
│ │ │ │ └── page.tsx
│ │ │ ├── signin
│ │ │ │ ├── components
│ │ │ │ │ ├── ldap-signin-form.tsx
│ │ │ │ │ ├── reset-password-request-form.tsx
│ │ │ │ │ ├── reset-password-request-section.tsx
│ │ │ │ │ ├── self-signup-form.tsx
│ │ │ │ │ ├── self-signup-section.tsx
│ │ │ │ │ ├── signin-section.tsx
│ │ │ │ │ ├── signin.tsx
│ │ │ │ │ └── user-signin-form.tsx
│ │ │ │ └── page.tsx
│ │ │ └── signup
│ │ │ │ ├── components
│ │ │ │ ├── admin-register.css
│ │ │ │ ├── admin-register.tsx
│ │ │ │ ├── signup.tsx
│ │ │ │ └── user-register-form.tsx
│ │ │ │ └── page.tsx
│ │ ├── chat
│ │ │ ├── components
│ │ │ │ └── history-view.tsx
│ │ │ ├── page.css
│ │ │ └── page.tsx
│ │ ├── components
│ │ │ └── main.tsx
│ │ ├── files
│ │ │ ├── components
│ │ │ │ ├── blob-header.tsx
│ │ │ │ ├── blob-mode-view.tsx
│ │ │ │ ├── chat-side-bar.tsx
│ │ │ │ ├── code-editor-view.tsx
│ │ │ │ ├── code-search-bar.tsx
│ │ │ │ ├── code-search-result-view.tsx
│ │ │ │ ├── code-search-result.tsx
│ │ │ │ ├── error-view.tsx
│ │ │ │ ├── file-directory-breadcrumb.tsx
│ │ │ │ ├── file-tree-header.tsx
│ │ │ │ ├── file-tree-panel.tsx
│ │ │ │ ├── file-tree.tsx
│ │ │ │ ├── markdown-view.tsx
│ │ │ │ ├── raw-file-view.tsx
│ │ │ │ ├── repository-kind-icon.tsx
│ │ │ │ ├── source-code-browser.tsx
│ │ │ │ ├── text-file-view.tsx
│ │ │ │ ├── tree-mode-view.tsx
│ │ │ │ ├── types.ts
│ │ │ │ └── utils.ts
│ │ │ ├── lib
│ │ │ │ ├── action-bar-widget
│ │ │ │ │ ├── action-bar-widget-extension.tsx
│ │ │ │ │ └── action-bar-widget.tsx
│ │ │ │ ├── editor-search-extension
│ │ │ │ │ ├── search-panel.tsx
│ │ │ │ │ └── search.tsx
│ │ │ │ ├── event-emitter.ts
│ │ │ │ ├── line-menu-extension
│ │ │ │ │ ├── line-menu-extension.tsx
│ │ │ │ │ └── line-menu.css
│ │ │ │ ├── search-match-extension
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── style.css
│ │ │ │ └── selection-extension
│ │ │ │ │ └── index.ts
│ │ │ └── page.tsx
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ ├── not-found.tsx
│ │ ├── pages
│ │ │ ├── components
│ │ │ │ ├── error-view.tsx
│ │ │ │ ├── header.tsx
│ │ │ │ ├── message-content-form.tsx
│ │ │ │ ├── nav-bar.tsx
│ │ │ │ ├── new-page-form.tsx
│ │ │ │ ├── new-section-form.tsx
│ │ │ │ ├── page-content.tsx
│ │ │ │ ├── page-context.ts
│ │ │ │ ├── page-main.tsx
│ │ │ │ ├── page-title.tsx
│ │ │ │ ├── section-content.tsx
│ │ │ │ ├── section-form.tsx
│ │ │ │ ├── section-title.tsx
│ │ │ │ └── skeleton.tsx
│ │ │ ├── lib
│ │ │ │ ├── query.ts
│ │ │ │ └── utils.ts
│ │ │ ├── page.tsx
│ │ │ └── types.ts
│ │ └── search
│ │ │ ├── components
│ │ │ ├── assistant-message-section.tsx
│ │ │ ├── codebase-tree.tsx
│ │ │ ├── header.tsx
│ │ │ ├── intermediate-step.tsx
│ │ │ ├── messages-skeleton.tsx
│ │ │ ├── reading-code-step.tsx
│ │ │ ├── reading-doc-step.tsx
│ │ │ ├── search-context.ts
│ │ │ ├── search.tsx
│ │ │ ├── types.ts
│ │ │ └── user-message-section.tsx
│ │ │ └── page.tsx
│ ├── assets
│ │ ├── default-favicon.png
│ │ ├── fonts
│ │ │ ├── Inter-Bold.woff
│ │ │ └── Inter-Regular.woff
│ │ ├── logo-dark.png
│ │ ├── logo.png
│ │ └── tabby.png
│ ├── codegen.ts
│ ├── components.json
│ ├── components
│ │ ├── button-scroll-to-bottom.tsx
│ │ ├── chat
│ │ │ ├── chat-context.ts
│ │ │ ├── chat-panel.tsx
│ │ │ ├── chat-scroll-anchor.tsx
│ │ │ ├── chat.tsx
│ │ │ ├── code-references.tsx
│ │ │ ├── empty-screen.tsx
│ │ │ ├── form-editor
│ │ │ │ ├── helper.ts
│ │ │ │ ├── mention.tsx
│ │ │ │ └── utils.tsx
│ │ │ ├── git
│ │ │ │ └── utils.tsx
│ │ │ ├── imtermediate-step.tsx
│ │ │ ├── prompt-form.css
│ │ │ ├── prompt-form.tsx
│ │ │ ├── question-answer.tsx
│ │ │ ├── reading-doc-stepper.tsx
│ │ │ ├── reading-repo-stepper.tsx
│ │ │ ├── repo-select.tsx
│ │ │ ├── skeletion.tsx
│ │ │ ├── thread-item.tsx
│ │ │ └── types.ts
│ │ ├── client-only.tsx
│ │ ├── code-range-label.tsx
│ │ ├── codemirror
│ │ │ ├── basic-setup.ts
│ │ │ ├── code-tag-widget-extension.ts
│ │ │ ├── codemirror.tsx
│ │ │ ├── hover-highlight.ts
│ │ │ ├── line-click-extension.ts
│ │ │ ├── name-tag-extension.ts
│ │ │ ├── style.css
│ │ │ ├── tag-range-highlight-extension.ts
│ │ │ ├── tooltip-extesion.ts
│ │ │ └── utils.ts
│ │ ├── collapsible-container.tsx
│ │ ├── copy-button.tsx
│ │ ├── date-range-picker.tsx
│ │ ├── demo-banner.tsx
│ │ ├── dev-panel.tsx
│ │ ├── error-view.tsx
│ │ ├── external-link.tsx
│ │ ├── footer.tsx
│ │ ├── header.tsx
│ │ ├── license-banner.tsx
│ │ ├── license-guard.tsx
│ │ ├── load-more-indicator.tsx
│ │ ├── loading-wrapper.tsx
│ │ ├── markdown.tsx
│ │ ├── mention-tag.tsx
│ │ ├── message-markdown
│ │ │ ├── code.tsx
│ │ │ ├── custom-strip-tags-plugin.ts
│ │ │ ├── doc-detail-view.tsx
│ │ │ ├── index.tsx
│ │ │ ├── markdown-context.tsx
│ │ │ └── style.css
│ │ ├── not-found-page.tsx
│ │ ├── notification-box.tsx
│ │ ├── password-check-list.tsx
│ │ ├── prompt-editor
│ │ │ ├── index.tsx
│ │ │ ├── mention-extension.ts
│ │ │ ├── mention-list.tsx
│ │ │ ├── styles.css
│ │ │ ├── suggestion.tsx
│ │ │ └── types.ts
│ │ ├── providers.tsx
│ │ ├── quick-nav-pagination.tsx
│ │ ├── searchable-select.tsx
│ │ ├── site-favicon.tsx
│ │ ├── skeleton.tsx
│ │ ├── slack-dialog.tsx
│ │ ├── source-icon.tsx
│ │ ├── sub-header.tsx
│ │ ├── tailwind-indicator.tsx
│ │ ├── textarea-search
│ │ │ ├── index.tsx
│ │ │ ├── model-select.tsx
│ │ │ └── repo-select.tsx
│ │ ├── theme-toggle.tsx
│ │ ├── topbar-progress-indicator.tsx
│ │ ├── ui
│ │ │ ├── accordion.tsx
│ │ │ ├── alert-dialog.tsx
│ │ │ ├── alert.tsx
│ │ │ ├── avatar.tsx
│ │ │ ├── badge.tsx
│ │ │ ├── button.tsx
│ │ │ ├── calendar.tsx
│ │ │ ├── card.tsx
│ │ │ ├── carousel.tsx
│ │ │ ├── checkbox.tsx
│ │ │ ├── codeblock.tsx
│ │ │ ├── collapsible.tsx
│ │ │ ├── command.tsx
│ │ │ ├── dialog.tsx
│ │ │ ├── dropdown-menu.tsx
│ │ │ ├── form.tsx
│ │ │ ├── hover-card.tsx
│ │ │ ├── icons.tsx
│ │ │ ├── input.tsx
│ │ │ ├── label.tsx
│ │ │ ├── pagination.tsx
│ │ │ ├── popover.tsx
│ │ │ ├── radio-group.tsx
│ │ │ ├── resizable.tsx
│ │ │ ├── scroll-area.tsx
│ │ │ ├── select.tsx
│ │ │ ├── separator.tsx
│ │ │ ├── sheet.tsx
│ │ │ ├── sidebar.tsx
│ │ │ ├── skeleton.tsx
│ │ │ ├── sonner.tsx
│ │ │ ├── switch.tsx
│ │ │ ├── table.tsx
│ │ │ ├── tabs.tsx
│ │ │ ├── textarea.tsx
│ │ │ ├── toggle.tsx
│ │ │ └── tooltip.tsx
│ │ ├── user-avatar.tsx
│ │ └── user-panel.tsx
│ ├── lib
│ │ ├── constants
│ │ │ ├── index.ts
│ │ │ └── regex.ts
│ │ ├── experiment-flags.ts
│ │ ├── fonts.ts
│ │ ├── gql
│ │ │ └── .gitignore
│ │ ├── hooks
│ │ │ ├── use-all-members.tsx
│ │ │ ├── use-at-bottom.tsx
│ │ │ ├── use-copy-to-clipboard.tsx
│ │ │ ├── use-current-theme.tsx
│ │ │ ├── use-debounce.ts
│ │ │ ├── use-enter-submit.tsx
│ │ │ ├── use-hash.ts
│ │ │ ├── use-health.tsx
│ │ │ ├── use-hydration.ts
│ │ │ ├── use-interval.ts
│ │ │ ├── use-is-sticky.ts
│ │ │ ├── use-latest-release.tsx
│ │ │ ├── use-latest.ts
│ │ │ ├── use-license.ts
│ │ │ ├── use-me.ts
│ │ │ ├── use-mobile.tsx
│ │ │ ├── use-models.tsx
│ │ │ ├── use-network-setting.tsx
│ │ │ ├── use-repositories.ts
│ │ │ ├── use-router-stuff.ts
│ │ │ ├── use-scroll-top.ts
│ │ │ ├── use-server-info.ts
│ │ │ ├── use-statistics.ts
│ │ │ ├── use-store.ts
│ │ │ ├── use-thread-run.ts
│ │ │ ├── use-unmount.ts
│ │ │ └── use-workers.ts
│ │ ├── language-utils
│ │ │ ├── index.ts
│ │ │ ├── language-colors.json
│ │ │ └── languages.ts
│ │ ├── posthog.tsx
│ │ ├── stores
│ │ │ ├── answer-engine-store.tsx
│ │ │ ├── chat-store.ts
│ │ │ ├── page-store.ts
│ │ │ ├── scroll-store.ts
│ │ │ ├── user-preferences-store.ts
│ │ │ └── utils.ts
│ │ ├── tabby
│ │ │ ├── auth.tsx
│ │ │ ├── fetcher.ts
│ │ │ ├── gql.ts
│ │ │ ├── query.ts
│ │ │ └── token-management.ts
│ │ ├── types
│ │ │ ├── chat.ts
│ │ │ ├── common.ts
│ │ │ ├── index.ts
│ │ │ ├── repositories.ts
│ │ │ └── sso.ts
│ │ └── utils
│ │ │ ├── attachment.ts
│ │ │ ├── chat.ts
│ │ │ ├── index.ts
│ │ │ ├── markdown.ts
│ │ │ ├── markdown
│ │ │ ├── remark-codeblock-to-placeholder.ts
│ │ │ └── remark-placeholder-parser.ts
│ │ │ ├── pagination.ts
│ │ │ └── repository.ts
│ ├── next-env.d.ts
│ ├── next.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── prettier.config.cjs
│ ├── public
│ │ └── favicon.ico
│ ├── tailwind.config.js
│ ├── test
│ │ ├── components
│ │ │ └── chat
│ │ │ │ └── form-editor
│ │ │ │ └── helper.test.ts
│ │ ├── index.test.ts
│ │ └── utils
│ │ │ ├── markdown.test.ts
│ │ │ ├── remark-codeblock-to-placeholder.test.ts
│ │ │ └── remark-placeholder-parser.test.ts
│ └── tsconfig.json
└── tabby-webserver
│ ├── Cargo.toml
│ ├── development
│ └── Caddyfile
│ ├── docs
│ └── api_spec.md
│ ├── email_templates
│ ├── invitation.html
│ ├── password_reset.html
│ ├── signup_success.html
│ └── test.html
│ ├── keys
│ ├── .gitignore
│ └── license.key.pub
│ ├── src
│ ├── axum
│ │ ├── extract.rs
│ │ ├── mod.rs
│ │ └── websocket.rs
│ ├── hub.rs
│ ├── jwt.rs
│ ├── ldap.rs
│ ├── lib.rs
│ ├── oauth
│ │ ├── github.rs
│ │ ├── gitlab.rs
│ │ ├── google.rs
│ │ └── mod.rs
│ ├── path.rs
│ ├── rate_limit.rs
│ ├── routes
│ │ ├── hub.rs
│ │ ├── ingestion.rs
│ │ ├── mod.rs
│ │ ├── oauth.rs
│ │ ├── repositories
│ │ │ ├── mod.rs
│ │ │ └── resolve.rs
│ │ └── ui.rs
│ ├── service
│ │ ├── access_policy.rs
│ │ ├── analytic.rs
│ │ ├── answer.rs
│ │ ├── answer
│ │ │ ├── prompt_tools.rs
│ │ │ └── testutils
│ │ │ │ └── mod.rs
│ │ ├── auth.rs
│ │ ├── auth
│ │ │ └── testutils.rs
│ │ ├── background_job
│ │ │ ├── daily.rs
│ │ │ ├── db.rs
│ │ │ ├── git.rs
│ │ │ ├── helper
│ │ │ │ ├── cron.rs
│ │ │ │ ├── logger.rs
│ │ │ │ └── mod.rs
│ │ │ ├── hourly.rs
│ │ │ ├── index_commits.rs
│ │ │ ├── index_garbage_collection.rs
│ │ │ ├── index_ingestion.rs
│ │ │ ├── index_pages.rs
│ │ │ ├── license_check.rs
│ │ │ ├── mod.rs
│ │ │ ├── third_party_integration.rs
│ │ │ ├── third_party_integration
│ │ │ │ ├── error.rs
│ │ │ │ ├── issues.rs
│ │ │ │ └── pulls.rs
│ │ │ └── web_crawler.rs
│ │ ├── context.rs
│ │ ├── email
│ │ │ ├── mod.rs
│ │ │ ├── templates.rs
│ │ │ └── testutils.rs
│ │ ├── embedding.rs
│ │ ├── event_logger.rs
│ │ ├── ingestion.rs
│ │ ├── integration.rs
│ │ ├── job.rs
│ │ ├── license.rs
│ │ ├── mod.rs
│ │ ├── notification.rs
│ │ ├── page.rs
│ │ ├── page
│ │ │ └── prompt_tools.rs
│ │ ├── preset_web_documents_data.rs
│ │ ├── repository
│ │ │ ├── git.rs
│ │ │ ├── mod.rs
│ │ │ ├── prompt_tools.rs
│ │ │ ├── third_party.rs
│ │ │ └── third_party
│ │ │ │ ├── fetch.rs
│ │ │ │ └── fetch
│ │ │ │ ├── github.rs
│ │ │ │ └── gitlab.rs
│ │ ├── retrieval.rs
│ │ ├── retrieval
│ │ │ └── testutils.rs
│ │ ├── setting.rs
│ │ ├── snapshots
│ │ │ └── tabby_webserver__service__answer__tests__convert_messages_to_chat_completion_request.snap
│ │ ├── thread.rs
│ │ ├── user_event.rs
│ │ ├── user_group.rs
│ │ ├── utils
│ │ │ ├── mod.rs
│ │ │ └── prompt.rs
│ │ └── web_documents.rs
│ └── webserver.rs
│ └── ui
│ ├── 404.html
│ ├── _next
│ └── static
│ │ ├── 6THjZwODOtNUmFQ4Gzp5t
│ │ ├── _buildManifest.js
│ │ └── _ssgManifest.js
│ │ ├── chunks
│ │ ├── 0b0d3d93-d1b36f377edd7fea.js
│ │ ├── 1002-09e560a83c07e9f4.js
│ │ ├── 1009-d77352b43d12203a.js
│ │ ├── 1243.dc94f6775e949adb.js
│ │ ├── 1283-393050764b70ab39.js
│ │ ├── 1454-fd65c91d069bd7ed.js
│ │ ├── 1460-849850f3e0fcced7.js
│ │ ├── 1544-f96cdf5bcfa8f0e4.js
│ │ ├── 1565-6d9dbbf6faebff31.js
│ │ ├── 1731-8ddc21d17c1db3d5.js
│ │ ├── 1775.7417f7959f9622d5.js
│ │ ├── 1889-808f5c268ba4d728.js
│ │ ├── 216.272953c1841d35e1.js
│ │ ├── 21c8b353-925bb40fc9c4670c.js
│ │ ├── 2285-d0148b347779ec93.js
│ │ ├── 240-6e4dd6e33fcf5a86.js
│ │ ├── 2429-f7966c8cf910a416.js
│ │ ├── 2483.f250a3fa245e0644.js
│ │ ├── 2529-33007b8c432baaa8.js
│ │ ├── 265-88dc5785788a8710.js
│ │ ├── 2718-d762fd3fac1c2178.js
│ │ ├── 2928-98ebfedf06caf8e1.js
│ │ ├── 2959-2f5ae7e1fa23b9a8.js
│ │ ├── 3004.16106b790da84440.js
│ │ ├── 3013.40f5d6107e27b343.js
│ │ ├── 3087-090080c04c344643.js
│ │ ├── 3179-72a03be258e531a2.js
│ │ ├── 3396-2ca6ad3ee124641e.js
│ │ ├── 340-8b69198c1e94e4f2.js
│ │ ├── 3454.b1f455fa1bcb659c.js
│ │ ├── 3492-7ca10e8ef6aab493.js
│ │ ├── 3721-353be68b8fa07c6b.js
│ │ ├── 3c5aa50f-8b4f1f89b347e3ff.js
│ │ ├── 4007-80fb4e0338c67b28.js
│ │ ├── 4017-15bebe1f3a3c44e0.js
│ │ ├── 410-2d9f0445fa0cca52.js
│ │ ├── 436-401a51e7af01c90f.js
│ │ ├── 4421-0da05343b4d5e17a.js
│ │ ├── 4496-17761fa90faf34fd.js
│ │ ├── 4526-b6d4584afffa9c34.js
│ │ ├── 4546-05756522a4929864.js
│ │ ├── 4691-3ed340b4558906b1.js
│ │ ├── 4795.29765224db054a66.js
│ │ ├── 4915.de1d26bbe2e4c5fb.js
│ │ ├── 5289-682125a3379532f6.js
│ │ ├── 54180a3d-2885e2285ca2b331.js
│ │ ├── 5455.36cbc74f9a3f22ee.js
│ │ ├── 55-55623c01484a5724.js
│ │ ├── 557.95696512f7ebf6cb.js
│ │ ├── 5605-b7e57fceb5667e91.js
│ │ ├── 5665-32ab36ba93f52f1f.js
│ │ ├── 5723-34db62fac9667d56.js
│ │ ├── 5972-14d626d9e01ad6c3.js
│ │ ├── 6036.4d2976f72b7994b0.js
│ │ ├── 6065-17553e3578c58f7b.js
│ │ ├── 6092-2449363334b4c30a.js
│ │ ├── 6095-23d24a26b0b31c28.js
│ │ ├── 6338-49e7c4b55ba8981d.js
│ │ ├── 6432-33866c51c441c1bc.js
│ │ ├── 6520.c41bfe83286324b2.js
│ │ ├── 659.afb08e85af1127d0.js
│ │ ├── 6635-85423d316922c3d8.js
│ │ ├── 6805-48f0b1146fe740f9.js
│ │ ├── 6887-53dfec50a8a5eeda.js
│ │ ├── 6968-4ea1bbf8c29f201a.js
│ │ ├── 6978-91523ca6231ea70b.js
│ │ ├── 7003-05c7a4c5b4e5989f.js
│ │ ├── 7051-7a80262a5dbfe971.js
│ │ ├── 7070-0361b26f2c124ca9.js
│ │ ├── 726.fabc3cae8413c409.js
│ │ ├── 7350-fbd056e17fc64df9.js
│ │ ├── 7548-9d3520e9c948edb5.js
│ │ ├── 7cd0a9a7-fa3b9a0f20fcec7d.js
│ │ ├── 8040-e8a363d23bfc20c6.js
│ │ ├── 8194-f2af5792032c1d6a.js
│ │ ├── 8511-ad410fc9ccc47ec5.js
│ │ ├── 8708-1cf948906a401249.js
│ │ ├── 8847-0ee06515da7fd053.js
│ │ ├── 9153-56303a38b361663f.js
│ │ ├── 9188-e6ada579b4333d65.js
│ │ ├── 9218-32f27de639e19ba1.js
│ │ ├── 9223.6aabf819095d1397.js
│ │ ├── 9275-6df9aca1b01ee03d.js
│ │ ├── 9435-d0785650712e5454.js
│ │ ├── 9505.8db27f67df404d9a.js
│ │ ├── 9536-cc91f53b736e156c.js
│ │ ├── 9561-f3c7a8ea95f1deff.js
│ │ ├── 95919c35-2a0243d5f6d0cb88.js
│ │ ├── 9604-e2b028696ed86f56.js
│ │ ├── 9634-eb02e61df3d21583.js
│ │ ├── 9675.25c95da0af0c9d10.js
│ │ ├── 9691.177c11908e45c2d4.js
│ │ ├── 97.8963da16f6cabc24.js
│ │ ├── 9860-b2cab0e640a501ef.js
│ │ ├── 9906-125e9641f98e1ae5.js
│ │ ├── 9e33a154-31f26770480dd557.js
│ │ ├── app
│ │ │ ├── (dashboard)
│ │ │ │ ├── (logs)
│ │ │ │ │ ├── jobs
│ │ │ │ │ │ ├── detail
│ │ │ │ │ │ │ └── page-c30115076238b46c.js
│ │ │ │ │ │ └── page-3bfd6036ee5b415b.js
│ │ │ │ │ └── layout-d1f15da5bee43367.js
│ │ │ │ ├── activities
│ │ │ │ │ └── page-3977d3802bc061d5.js
│ │ │ │ ├── experiments
│ │ │ │ │ └── page-1b27d52c5f423f8c.js
│ │ │ │ ├── layout-de28a1a7a97aea73.js
│ │ │ │ ├── profile
│ │ │ │ │ └── page-fa19607bf35351b7.js
│ │ │ │ ├── reports
│ │ │ │ │ └── page-807426d1dd1598fa.js
│ │ │ │ ├── settings
│ │ │ │ │ ├── (integrations)
│ │ │ │ │ │ ├── mail
│ │ │ │ │ │ │ └── page-47f53ca20844ff8e.js
│ │ │ │ │ │ ├── providers
│ │ │ │ │ │ │ ├── [kind]
│ │ │ │ │ │ │ │ ├── detail
│ │ │ │ │ │ │ │ │ └── page-3e8a5c95f318fe68.js
│ │ │ │ │ │ │ │ ├── layout-9688fa1599db2b7b.js
│ │ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ │ └── page-2078198166a995dc.js
│ │ │ │ │ │ │ │ └── page-8f2bf20ea03adec0.js
│ │ │ │ │ │ │ ├── doc
│ │ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ │ └── page-b558042910b63bae.js
│ │ │ │ │ │ │ │ └── page-95cb24a09802216c.js
│ │ │ │ │ │ │ ├── git
│ │ │ │ │ │ │ │ ├── layout-4f6c4896a9b7682c.js
│ │ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ │ │ └── page-ff974a5ec621eea3.js
│ │ │ │ │ │ │ │ └── page-24e0bfa359cf56d3.js
│ │ │ │ │ │ │ └── layout-73ce9c8d662cc1f1.js
│ │ │ │ │ │ └── sso
│ │ │ │ │ │ │ ├── detail
│ │ │ │ │ │ │ ├── [oauth-provider]
│ │ │ │ │ │ │ │ └── page-5ce39dfa6afbb089.js
│ │ │ │ │ │ │ └── ldap
│ │ │ │ │ │ │ │ └── page-7c7b53efa1463ce7.js
│ │ │ │ │ │ │ ├── layout-98376daac2e91693.js
│ │ │ │ │ │ │ ├── new
│ │ │ │ │ │ │ └── page-3def33fbf85c587b.js
│ │ │ │ │ │ │ └── page-702da305aed26a3c.js
│ │ │ │ │ ├── general
│ │ │ │ │ │ └── page-9e03891fb9a47616.js
│ │ │ │ │ ├── subscription
│ │ │ │ │ │ └── page-e862c807ef8188f0.js
│ │ │ │ │ └── team
│ │ │ │ │ │ ├── groups
│ │ │ │ │ │ └── page-52d201da16a5f9af.js
│ │ │ │ │ │ ├── layout-0b7a68a98ff6c355.js
│ │ │ │ │ │ └── page-2dad63389dceb323.js
│ │ │ │ └── system
│ │ │ │ │ └── page-6326d40f0b98eb81.js
│ │ │ ├── (home)
│ │ │ │ └── page-aa009efa8145ca58.js
│ │ │ ├── api
│ │ │ │ └── page-95ba40586a9993a3.js
│ │ │ ├── auth
│ │ │ │ ├── layout-3980bdd380a2cd2a.js
│ │ │ │ ├── reset-password
│ │ │ │ │ └── page-69756c66773a93dd.js
│ │ │ │ ├── signin
│ │ │ │ │ └── page-3f25dc36f3976142.js
│ │ │ │ └── signup
│ │ │ │ │ └── page-eb8aecaa87991541.js
│ │ │ ├── chat
│ │ │ │ └── page-2122febecd87f45a.js
│ │ │ ├── files
│ │ │ │ └── page-9f080cd4c45921e2.js
│ │ │ ├── layout-a9dfde7e4294922d.js
│ │ │ ├── not-found-8fdd48e65bd803b1.js
│ │ │ ├── pages
│ │ │ │ └── page-28e4faf63b5e2311.js
│ │ │ └── search
│ │ │ │ └── page-f08cae58be4c1433.js
│ │ ├── c0672f29-5c54ef189b1b49b1.js
│ │ ├── d04f95b7-32b56781246774be.js
│ │ ├── framework-d01b68062ece2457.js
│ │ ├── main-82f15b1d71f96502.js
│ │ ├── main-app-bf380fe6274af3be.js
│ │ ├── pages
│ │ │ ├── _app-6f18eea95a933635.js
│ │ │ └── _error-e9871f0a501df54a.js
│ │ ├── polyfills-c67a75d1b6f99dc8.js
│ │ └── webpack-2a37924b5137759d.js
│ │ ├── css
│ │ ├── 1df4303b470c4ade.css
│ │ ├── 2191927085951a57.css
│ │ ├── 4d92cebb017c1f0c.css
│ │ ├── 68f52fface9b0518.css
│ │ ├── a672f7c938d6675d.css
│ │ ├── ae578fb5bf44c678.css
│ │ ├── d556bf5522245bf5.css
│ │ └── e61a9e1e462340ef.css
│ │ └── media
│ │ ├── 055106fdf8549d7a-s.woff2
│ │ ├── 0aa834ed78bf6d07-s.woff2
│ │ ├── 26a46d62cd723877-s.woff2
│ │ ├── 33f26bc6e74df765-s.woff2
│ │ ├── 55c55f0601d81cf3-s.woff2
│ │ ├── 581909926a08bbc8-s.woff2
│ │ ├── 6406d8793413ef02-s.woff2
│ │ ├── 67957d42bae0796d-s.woff2
│ │ ├── 6d93bde91c0c2823-s.woff2
│ │ ├── 886030b0b59bc5a7-s.woff2
│ │ ├── 939c4f875ee75fbb-s.woff2
│ │ ├── 97e0cb1ae144a2a9-s.woff2
│ │ ├── a34f9d1faa5f3315-s.p.woff2
│ │ ├── ac2397f7be75f086-s.woff2
│ │ ├── bb3ef058b751a6ad-s.p.woff2
│ │ ├── default-favicon.a2df8fbb.png
│ │ ├── df0a9ae256c0569c-s.woff2
│ │ ├── f75d6d02e2924b13-s.p.woff2
│ │ ├── f911b923c6adde36-s.woff2
│ │ ├── logo-dark.362a169d.png
│ │ ├── logo.526f7cf9.png
│ │ └── tabby.16ac81a9.png
│ ├── activities.html
│ ├── activities.txt
│ ├── api.html
│ ├── api.txt
│ ├── auth
│ ├── reset-password.html
│ ├── reset-password.txt
│ ├── signin.html
│ ├── signin.txt
│ ├── signup.html
│ └── signup.txt
│ ├── chat.html
│ ├── chat.txt
│ ├── experiments.html
│ ├── experiments.txt
│ ├── favicon.ico
│ ├── files.html
│ ├── files.txt
│ ├── index.html
│ ├── index.txt
│ ├── jobs.html
│ ├── jobs.txt
│ ├── jobs
│ ├── detail.html
│ └── detail.txt
│ ├── pages.html
│ ├── pages.txt
│ ├── profile.html
│ ├── profile.txt
│ ├── reports.html
│ ├── reports.txt
│ ├── search.html
│ ├── search.txt
│ ├── settings
│ ├── general.html
│ ├── general.txt
│ ├── mail.html
│ ├── mail.txt
│ ├── providers
│ │ ├── doc.html
│ │ ├── doc.txt
│ │ ├── doc
│ │ │ ├── new.html
│ │ │ └── new.txt
│ │ ├── git.html
│ │ ├── git.txt
│ │ ├── git
│ │ │ ├── new.html
│ │ │ └── new.txt
│ │ ├── github-self-hosted.html
│ │ ├── github-self-hosted.txt
│ │ ├── github-self-hosted
│ │ │ ├── detail.html
│ │ │ ├── detail.txt
│ │ │ ├── new.html
│ │ │ └── new.txt
│ │ ├── github.html
│ │ ├── github.txt
│ │ ├── github
│ │ │ ├── detail.html
│ │ │ ├── detail.txt
│ │ │ ├── new.html
│ │ │ └── new.txt
│ │ ├── gitlab-self-hosted.html
│ │ ├── gitlab-self-hosted.txt
│ │ ├── gitlab-self-hosted
│ │ │ ├── detail.html
│ │ │ ├── detail.txt
│ │ │ ├── new.html
│ │ │ └── new.txt
│ │ ├── gitlab.html
│ │ ├── gitlab.txt
│ │ └── gitlab
│ │ │ ├── detail.html
│ │ │ ├── detail.txt
│ │ │ ├── new.html
│ │ │ └── new.txt
│ ├── sso.html
│ ├── sso.txt
│ ├── sso
│ │ ├── detail
│ │ │ ├── github.html
│ │ │ ├── github.txt
│ │ │ ├── gitlab.html
│ │ │ ├── gitlab.txt
│ │ │ ├── google.html
│ │ │ ├── google.txt
│ │ │ ├── ldap.html
│ │ │ └── ldap.txt
│ │ ├── new.html
│ │ └── new.txt
│ ├── subscription.html
│ ├── subscription.txt
│ ├── team.html
│ ├── team.txt
│ └── team
│ │ ├── groups.html
│ │ └── groups.txt
│ ├── system.html
│ └── system.txt
├── experimental
├── copy-to-modelscope
│ ├── .gitignore
│ ├── README.md
│ ├── main.sh
│ └── sync.sh
├── deploy
│ ├── Caddyfile
│ └── docker-compose.yaml
├── eval
│ ├── gen-client.sh
│ ├── output.jsonl
│ ├── python.yaml
│ ├── sample.jsonl
│ ├── tabby-python-client
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── pyproject.toml
│ │ ├── setup.py
│ │ └── tabby_python_client
│ │ │ ├── __init__.py
│ │ │ ├── api
│ │ │ ├── __init__.py
│ │ │ ├── v1
│ │ │ │ ├── __init__.py
│ │ │ │ ├── completion.py
│ │ │ │ ├── event.py
│ │ │ │ └── health.py
│ │ │ └── v1beta
│ │ │ │ ├── __init__.py
│ │ │ │ └── search.py
│ │ │ ├── client.py
│ │ │ ├── errors.py
│ │ │ ├── models
│ │ │ ├── __init__.py
│ │ │ ├── chat_completion_chunk.py
│ │ │ ├── chat_completion_request.py
│ │ │ ├── choice.py
│ │ │ ├── completion_request.py
│ │ │ ├── completion_response.py
│ │ │ ├── debug_data.py
│ │ │ ├── debug_options.py
│ │ │ ├── health_state.py
│ │ │ ├── hit.py
│ │ │ ├── hit_document.py
│ │ │ ├── log_event_request.py
│ │ │ ├── message.py
│ │ │ ├── search_response.py
│ │ │ ├── segments.py
│ │ │ ├── snippet.py
│ │ │ └── version.py
│ │ │ ├── py.typed
│ │ │ └── types.py
│ └── tabby.py
├── model-converter
│ └── update-llama-model.sh
├── openapi
│ └── python.yaml
├── prompt-rewrite-eval
│ ├── README.md
│ ├── dashboard.py
│ ├── eval.toml
│ ├── evaluator.py
│ └── requirements.txt
├── scheduler
│ ├── completion.py
│ ├── dataset.py
│ └── search.py
└── supervisor
│ └── app.py
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── python
├── tabby-eval
│ └── modal
│ │ ├── predict.py
│ │ └── tabby_python_client
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── pyproject.toml
│ │ ├── setup.py
│ │ └── tabby_python_client
│ │ ├── __init__.py
│ │ ├── api
│ │ ├── __init__.py
│ │ ├── v1
│ │ │ ├── __init__.py
│ │ │ ├── completion.py
│ │ │ ├── event.py
│ │ │ └── health.py
│ │ └── v1beta
│ │ │ ├── __init__.py
│ │ │ └── search.py
│ │ ├── client.py
│ │ ├── errors.py
│ │ ├── models
│ │ ├── __init__.py
│ │ ├── chat_completion_chunk.py
│ │ ├── chat_completion_request.py
│ │ ├── choice.py
│ │ ├── completion_request.py
│ │ ├── completion_response.py
│ │ ├── debug_data.py
│ │ ├── debug_options.py
│ │ ├── health_state.py
│ │ ├── hit.py
│ │ ├── hit_document.py
│ │ ├── log_event_request.py
│ │ ├── message.py
│ │ ├── search_response.py
│ │ ├── segments.py
│ │ ├── snippet.py
│ │ └── version.py
│ │ ├── py.typed
│ │ └── types.py
├── tabby-loadtest
│ ├── README.md
│ ├── loadtest.js
│ ├── record.csv
│ ├── run.sh
│ └── server.py
└── tabby
│ └── trainer.py
├── rules
├── do-not-use-logkit-crate.yml
├── do-not-use-next-pages.yml
├── only-dao-and-policy-can-depend-tabby-db.yml
├── use-basic-job.yml
├── use-schema-result.yml
└── validate-requires-code.yml
├── sgconfig.yml
├── turbo.json
└── website
├── .gitattributes
├── .gitignore
├── babel.config.js
├── blog
├── 2023-08-31-first-stable-release.md
├── 2023-09-05-deploy-tabby-to-huggingface-space
│ ├── building.png
│ ├── curl.png
│ ├── docker-space.png
│ ├── edit-dockerfile.png
│ ├── edit-readme.png
│ ├── empty-readme.png
│ ├── empty-space.png
│ ├── index.md
│ ├── new-space.png
│ └── tabby-swagger.png
├── 2023-09-18-release-0-1-1-metal
│ ├── index.md
│ ├── staring-tabby-on-llama-cpp.png
│ └── twitter-img.jpg
├── 2023-09-30-stream-laziness-in-tabby
│ ├── cancellation.png
│ ├── index.md
│ ├── intro.png
│ ├── stream-flush.png
│ └── stream.png
├── 2023-10-14-seed-round-release-0-3-0-RAG.md
├── 2023-10-16-repository-context-for-code-completion
│ ├── index.md
│ └── whiteboard.jpg
├── 2023-10-21-incremental-decoding
│ ├── beam.png
│ ├── greedy.png
│ ├── index.md
│ ├── probability.png
│ └── twitter-decoding.png
├── 2023-11-13-model-evaluation
│ ├── cceval.png
│ ├── human-eval-plus.png
│ ├── index.md
│ ├── repobench.png
│ ├── repocoder.png
│ └── twitter-eval.png
├── 2023-11-23-coding-llm-leaderboard
│ ├── index.mdx
│ ├── leaderboard.png
│ └── next-line-accuracy.png
├── 2024-01-24-running-tabby-locally-with-rocm
│ ├── chat-session.png
│ ├── index.md
│ ├── rocm-packages.png
│ ├── tabby-rocm-docker.png
│ ├── tabby-running.png
│ └── using-completions.png
├── 2024-02-05-create-tabby-extension-with-language-server-protocol
│ ├── coc-tabby-completion.png
│ ├── index.md
│ ├── npx-run-tabby-agent.gif
│ ├── tabby-agent-lsp.png
│ └── tabby-agent.png
├── 2024-03-25-deploy-tabby-in-air-gapped-environment-with-docker
│ ├── cli-output.png
│ ├── index.md
│ └── no-internet.png
├── 2024-03-26-tabby-with-replicas-behind-reverse-proxy
│ ├── Caddyfile
│ ├── docker-compose.yml
│ └── index.mdx
├── 2024-04-08-connect-private-github-repository-to-tabby
│ ├── code-search-preview.png
│ ├── github-pat-contents-access.png
│ ├── github-pat-filling-info.png
│ ├── github-pat-generate-new-token.png
│ ├── github-pat-generate-token.png
│ └── index.md
├── 2024-05-01-vulkan-support
│ ├── completion.png
│ ├── index.md
│ ├── vulkan-installed-on-arch.png
│ └── vulkan-running.png
├── 2024-06-11-rank-fusion-in-tabby-code-completion
│ ├── index.md
│ └── repository-context-triggered.png
├── 2024-07-09-tabby-codestral
│ ├── codestral_api.jpeg
│ ├── index.mdx
│ ├── tabby-mistral.png
│ └── tabby_codestral.mp4
└── authors.yml
├── docs
├── administration
│ ├── _category_.yml
│ ├── answer-engine
│ │ ├── answer_engine.png
│ │ ├── doc_thinking_process.png
│ │ ├── index.mdx
│ │ ├── mention_documentation.png
│ │ ├── recent_activities.png
│ │ ├── repository_select.png
│ │ ├── repository_thinking_process.png
│ │ ├── share_link_button.png
│ │ └── web_search.png
│ ├── backup.md
│ ├── code-completion.md
│ ├── config-toml.md
│ ├── context
│ │ ├── code-browser-entry.png
│ │ ├── code-browser.png
│ │ ├── context-providers.png
│ │ ├── document.png
│ │ ├── git.png
│ │ ├── github-gitlab.png
│ │ ├── index.mdx
│ │ ├── repository-job-run.png
│ │ ├── repository-job.png
│ │ └── select-repo.png
│ ├── general-settings
│ │ ├── index.mdx
│ │ └── sign-in.png
│ ├── index-custom-document
│ │ ├── index-custom-document.mdx
│ │ ├── ingestion-status.png
│ │ └── registration-token.png
│ ├── license
│ │ ├── index.md
│ │ ├── reset.png
│ │ └── subscription.png
│ ├── model
│ │ ├── index.mdx
│ │ └── model_card.png
│ ├── reverse-proxy.mdx
│ ├── smtp
│ │ ├── index.md
│ │ ├── ses.png
│ │ └── test-email.png
│ ├── sso
│ │ ├── index.mdx
│ │ ├── integrations_sso.png
│ │ ├── ldap
│ │ │ ├── configuration.png
│ │ │ ├── index.mdx
│ │ │ ├── ldap-signin.png
│ │ │ ├── ldap-user.png
│ │ │ └── ldap-with-oauth.png
│ │ ├── sso_create.png
│ │ └── sso_signin.png
│ ├── upgrade.md
│ ├── usage-analytics
│ │ ├── activity_chart.png
│ │ ├── chat_section.png
│ │ ├── code_completions_section.png
│ │ └── index.mdx
│ ├── usage-collection.md
│ └── user
│ │ ├── access_control.png
│ │ ├── groups.png
│ │ ├── index.mdx
│ │ ├── invite_link.png
│ │ └── invite_member.png
├── extensions
│ ├── _category_.yml
│ ├── configurations.md
│ ├── installation
│ │ ├── _category_.yml
│ │ ├── intellij.mdx
│ │ ├── vim.mdx
│ │ └── vscode.mdx
│ └── troubleshooting
│ │ ├── index.md
│ │ ├── intellij-choose-boot-runtime-for-the-ide.png
│ │ └── vscode-output-view.png
├── faq.mdx
├── models
│ ├── index.mdx
│ └── index.mdx.tmpl
├── quick-start
│ ├── _category_.yml
│ ├── code-completion.png
│ ├── connect-success.png
│ ├── installation
│ │ ├── _category_.yml
│ │ ├── apple.md
│ │ ├── docker-compose.mdx
│ │ ├── docker.mdx
│ │ ├── linux
│ │ │ ├── assets.png
│ │ │ └── index.mdx
│ │ └── windows
│ │ │ ├── assets.png
│ │ │ ├── index.mdx
│ │ │ └── success.png
│ ├── personal-token.png
│ ├── register-account
│ │ ├── admin-ui.png
│ │ ├── homepage.png
│ │ ├── index.md
│ │ ├── invite-user.png
│ │ └── setup-admin.png
│ ├── setup-endpoint.png
│ └── setup-ide.md
├── references
│ ├── _category_.yaml
│ ├── cloud-deployment
│ │ ├── _category_.yml
│ │ ├── bentoml
│ │ │ ├── app-running.png
│ │ │ ├── bentodeploy.yaml
│ │ │ ├── bentofile.yaml
│ │ │ ├── index.md
│ │ │ ├── service.py
│ │ │ ├── setup-docker.sh
│ │ │ └── twitter-img.png
│ │ ├── hugging-face
│ │ │ ├── agent-config.png
│ │ │ ├── code-completion.png
│ │ │ ├── duplicate-space.png
│ │ │ ├── index.md
│ │ │ ├── swagger-ui.png
│ │ │ └── tabby-connected.png
│ │ ├── modal
│ │ │ ├── app-running.png
│ │ │ ├── app.py
│ │ │ └── index.md
│ │ └── skypilot
│ │ │ ├── index.md
│ │ │ ├── service-ready.png
│ │ │ ├── start-service.png
│ │ │ ├── tabby-ready.png
│ │ │ └── tabby.yaml
│ ├── models-http-api
│ │ ├── _category_.yml
│ │ ├── amazon-bedrock.md
│ │ ├── anthropic-claude.md
│ │ ├── azure-openai.md
│ │ ├── deepinfra.md
│ │ ├── deepseek.md
│ │ ├── fireworks.md
│ │ ├── jan.ai.md
│ │ ├── llama.cpp.mdx
│ │ ├── llamafile.md
│ │ ├── lm-studio.md
│ │ ├── mistral-ai.md
│ │ ├── ollama.md
│ │ ├── openai.md
│ │ ├── openrouter.md
│ │ ├── perplexity.md
│ │ ├── vllm.md
│ │ └── voyage-ai.md
│ └── programming-languages.md
├── roadmap.mdx
└── welcome.mdx
├── docusaurus.config.js
├── package.json
├── sidebars.js
├── src
├── components
│ ├── Collapse.jsx
│ ├── HomepageFeatures
│ │ ├── index.js
│ │ └── styles.module.css
│ └── Monaco
│ │ └── index.js
├── css
│ └── custom.css
├── pages
│ ├── index.js
│ ├── index.module.css
│ ├── playground.js
│ └── terms.mdx
└── theme
│ └── Admonition.js
├── static
├── .nojekyll
├── img
│ ├── demo.gif
│ ├── favicon.ico
│ ├── logo.png
│ └── tabby-social-card.png
├── openapi.json
└── robots.txt
├── tailwind.config.js
└── yarn.lock
/.changes/header.tpl.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 | All notable changes to this project will be documented in this file.
3 |
4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5 | adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6 | and is generated by [Changie](https://github.com/miniscruff/changie).
7 |
--------------------------------------------------------------------------------
/.changes/unreleased/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/.changes/unreleased/.gitkeep
--------------------------------------------------------------------------------
/.changes/v0.11.1.md:
--------------------------------------------------------------------------------
1 | ## v0.11.1 (2024-05-14)
2 |
3 | ### Fixed and Improvements
4 |
5 | * Fixed display of files where the path contains special characters. ([#2081](https://github.com/TabbyML/tabby/issues/2081))
6 | * Fixed non-admin users not being able to see the repository in Code Browser. ([#2110](https://github.com/TabbyML/tabby/discussions/2110))
7 |
--------------------------------------------------------------------------------
/.changes/v0.13.1.md:
--------------------------------------------------------------------------------
1 | ## v0.13.1 (2024-07-10)
2 |
3 | ### Fixed and Improvements
4 |
5 | * Bump llama.cpp version to b3334, supporting Deepseek V2 series models.
6 | * Turn on fast attention for Qwen2-1.5B model to fix the quantization error.
7 | * Properly set number of GPU layers (to zero) when device is CPU.
--------------------------------------------------------------------------------
/.changes/v0.17.0.md:
--------------------------------------------------------------------------------
1 | ## v0.17.0 (2024-09-10)
2 |
3 | ### Notice
4 |
5 | * We've reworked the `Web` (a beta feature) context provider into the `Developer Docs` context provider. Previously added context in the `Web` tab has been cleared and needs to be manually migrated to `Developer Docs`.
6 |
7 | ### Features
8 |
9 | * Extensive rework has been done in the answer engine search box.
10 | - Developer Docs / Web search is now triggered by `@`.
11 | - Repository Context is now selected using `#`.
12 |
13 | * Supports OCaml
14 |
--------------------------------------------------------------------------------
/.changes/v0.18.0.md:
--------------------------------------------------------------------------------
1 | ## v0.18.0 (2024-10-08)
2 |
3 | ### Notice
4 |
5 | * The Chat Side Panel implementation has been redesigned in version 0.18, necessitating an extension version bump for compatibility with 0.18.0.
6 | - VSCode: >= 1.12.0
7 | - IntelliJ: >= 1.8.0
8 |
9 | ### Features
10 |
11 | * User Groups Access Control: Server Administrators can now assign user groups to specific context providers to precisely control which contexts can be accessed by which user groups.
12 |
--------------------------------------------------------------------------------
/.changes/v0.20.0.md:
--------------------------------------------------------------------------------
1 | ## v0.20.0 (2024-11-08)
2 |
3 | ### Features
4 |
5 | * Search results can now be edited directly.
6 | * Allow switching backend chat models in Answer Engine.
7 | * Added a connection test button in the `System` tab to test the connection to the backend LLM server.
8 |
9 | ### Fixes and Improvements
10 |
11 | * Optimized CR-LF inference in code completion. ([#3279](https://github.com/TabbyML/tabby/issues/3279))
12 | * Bumped `llama.cpp` version to `b3995`.
13 |
--------------------------------------------------------------------------------
/.changes/v0.21.1.md:
--------------------------------------------------------------------------------
1 | ## v0.21.1 (2024-12-09)
2 |
3 | ### Notice
4 |
5 | * This is a patch release, please also check [the full release note](https://github.com/TabbyML/tabby/releases/tag/v0.21.0) for 0.21.
6 |
7 | ### Fixed and Improvements
8 |
9 | * Fixed Gitlab Context Provider.
--------------------------------------------------------------------------------
/.changes/v0.21.2.md:
--------------------------------------------------------------------------------
1 | ## v0.21.2 (2024-12-18)
2 |
3 | ### Notice
4 |
5 | * This is a patch release, please also check [the full release note](https://github.com/TabbyML/tabby/releases/tag/v0.21.1) for 0.21.1.
6 |
7 | ### Fixed and Improvements
8 |
9 | * Adapt extension side changes in new versions.
10 | - VSCode: 1.16.0
11 | - IntelliJ Platform: 1.9.1
12 |
--------------------------------------------------------------------------------
/.changes/v0.23.1.md:
--------------------------------------------------------------------------------
1 | ## v0.23.1 (2025-01-31)
2 |
3 | ### Fixed and Improvements
4 |
5 | * Fix the issue of being unable to download remote models due to changes in HuggingFace API. ([#3772](https://github.com/TabbyML/tabby/pull/3772))
6 |
--------------------------------------------------------------------------------
/.changes/v0.25.1.md:
--------------------------------------------------------------------------------
1 | ## v0.25.1 (2025-02-25)
2 |
3 | ### Notice
4 |
5 | * This is a patch release, please also check [the full release note](https://github.com/TabbyML/tabby/releases/tag/v0.25.0) for 0.25.
6 |
7 | ### Fixed and Improvements
8 |
9 | * Refine the UI details in Answer Engine. ([#3888](https://github.com/TabbyML/tabby/pull/3888)) ([#3889](https://github.com/TabbyML/tabby/pull/3889)) ([#3891](https://github.com/TabbyML/tabby/pull/3891))
10 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | .idea
2 | ci
3 | clients
4 | .github
5 | python
6 | **/target
7 | **/node_modules
8 | website
9 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | DATABASE_URL=sqlite://ee/tabby-db/schema.sqlite
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.bin filter=lfs diff=lfs merge=lfs -text
2 | website/** linguist-vendored
3 | clients/** linguist-vendored
4 | ee/tabby-ui/** linguist-vendored
5 | ee/tabby-webserver/ui/** linguist-vendored
6 | experimental/** linguist-vendored
7 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug-unconfirmed
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **Information about your version**
14 | Please provide output of `tabby --version`
15 |
16 | **Information about your GPU**
17 | Please provide output of `nvidia-smi`
18 |
19 | **Additional context**
20 | Add any other context about the problem here.
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Please describe the feature you want**
11 |
12 |
13 |
14 | **Additional context**
15 | Add any other context or screenshots about the feature request here.
16 |
17 | ---
18 | Please reply with a 👍 if you want this feature.
19 |
--------------------------------------------------------------------------------
/.github/workflows/ast-grep-lint.yml:
--------------------------------------------------------------------------------
1 | name: ast-grep lint
2 | on: [push]
3 |
4 | jobs:
5 | sg-lint:
6 | runs-on: ubuntu-latest
7 | name: ast-grep-lint
8 | steps:
9 | - name: Checkout
10 | uses: actions/checkout@v4
11 |
12 | - name: ast-grep lint step
13 | uses: ast-grep/action@v1.4
14 | with:
15 | version: 0.20.1
--------------------------------------------------------------------------------
/.github/workflows/nightly.yml:
--------------------------------------------------------------------------------
1 | name: Update nightly tag
2 |
3 | on:
4 | workflow_dispatch:
5 | schedule:
6 | - cron: '0 20 */1 * *'
7 |
8 | jobs:
9 | sync-branches:
10 | runs-on: ubuntu-latest
11 | name: Update nightly tag
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v2
15 | with:
16 | ssh-key: "${{ secrets.COMMIT_KEY }}"
17 |
18 | - name: Run latest-tag
19 | uses: EndBug/latest-tag@latest
20 | with:
21 | ref: nightly
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | node_modules
3 | .idea/
4 | .DS_Store
5 | .vscode/
6 | local/
7 | __pycache__
8 | .turbo
9 |
10 | # ignore cargo flamegraph temp files
11 | flamegraph.svg
12 | cargo-flamegraph.stacks
13 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "crates/llama-cpp-server/llama.cpp"]
2 | path = crates/llama-cpp-server/llama.cpp
3 | url = https://github.com/ggml-org/llama.cpp.git
4 |
--------------------------------------------------------------------------------
/.rustfmt.toml:
--------------------------------------------------------------------------------
1 | reorder_imports = true
2 | imports_granularity = "crate"
3 | group_imports = "StdExternalCrate"
4 |
--------------------------------------------------------------------------------
/.tmuxinator/tabby.yml:
--------------------------------------------------------------------------------
1 | name: tabby
2 | root: ./
3 |
4 | windows:
5 | - caddy:
6 | panes:
7 | - caddy run --watch --config ee/tabby-webserver/development/Caddyfile
8 | - server:
9 | layout: even-horizontal
10 | panes:
11 | - cargo run serve --port 8081
12 | - cd ee/tabby-ui && pnpm dev
13 |
--------------------------------------------------------------------------------
/ci/prepare_build_environment.ps1:
--------------------------------------------------------------------------------
1 | choco install --yes protoc
--------------------------------------------------------------------------------
/clients/eclipse/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 | plugin/tabby-agent
4 | plugin/chat-panel/tabby-chat-panel.min.js
5 |
--------------------------------------------------------------------------------
/clients/eclipse/docs/eclipse-export-archive-select-features.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/docs/eclipse-export-archive-select-features.jpg
--------------------------------------------------------------------------------
/clients/eclipse/docs/eclipse-export-archive-select-wizard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/docs/eclipse-export-archive-select-wizard.jpg
--------------------------------------------------------------------------------
/clients/eclipse/docs/eclipse-import-project-select-project.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/docs/eclipse-import-project-select-project.jpg
--------------------------------------------------------------------------------
/clients/eclipse/docs/eclipse-import-project-select-wizard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/docs/eclipse-import-project-select-wizard.jpg
--------------------------------------------------------------------------------
/clients/eclipse/docs/eclipse-launch-application.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/docs/eclipse-launch-application.jpg
--------------------------------------------------------------------------------
/clients/eclipse/feature/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | features.tabby4eclipse
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.pde.FeatureBuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.pde.FeatureNature
16 |
17 |
18 |
--------------------------------------------------------------------------------
/clients/eclipse/feature/build.properties:
--------------------------------------------------------------------------------
1 | bin.includes = feature.xml
2 |
--------------------------------------------------------------------------------
/clients/eclipse/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tabby4eclipse",
3 | "private": true,
4 | "scripts": {
5 | "build": "node scripts/copy-dependencies.js"
6 | },
7 | "devDependencies": {
8 | "tabby-agent": "workspace:*",
9 | "tabby-chat-panel": "workspace:*",
10 | "fs-extra": "^11.1.1"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/.gitignore:
--------------------------------------------------------------------------------
1 | /bin/
2 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | encoding/=UTF-8
3 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/build.properties:
--------------------------------------------------------------------------------
1 | source.. = src/
2 | output.. = bin/
3 | bin.includes = plugin.xml,\
4 | META-INF/,\
5 | images/, \
6 | tabby-agent/,\
7 | chat-panel/,\
8 | .\
9 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/add_obj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/add_obj.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/add_obj@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/add_obj@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/chat.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/chat@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/chat@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/check_tsk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/check_tsk.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/check_tsk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/check_tsk@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/hprio_tsk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/hprio_tsk.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/hprio_tsk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/hprio_tsk@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/progress_task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/progress_task.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/progress_task@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/progress_task@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/settings.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/settings@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/settings@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/time_obj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/time_obj.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/time_obj@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/time_obj@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/warn_tsk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/warn_tsk.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/images/warn_tsk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/eclipse/plugin/images/warn_tsk@2x.png
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/Utils.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse;
2 |
3 | public class Utils {
4 | public static boolean isWindows() {
5 | return System.getProperty("os.name").toLowerCase().contains("win");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/ChatCommand.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public abstract class ChatCommand {
4 | public static final String EXPLAIN = "explain";
5 | public static final String FIX = "fix";
6 | public static final String GENERATE_DOCS = "generate-docs";
7 | public static final String GENERATE_TESTS = "generate-tests";
8 | }
9 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/ChatViewType.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public abstract class ChatViewType {
4 | public static final String NEW_CHAT = "new-chat";
5 | public static final String HISTORY = "history";
6 | }
7 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/FileLocation.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class FileLocation {
4 | private final Filepath filepath;
5 | private final Object location;
6 |
7 | public FileLocation(Filepath filepath, Object location) {
8 | this.filepath = filepath;
9 | this.location = location;
10 | }
11 |
12 | public Filepath getFilepath() {
13 | return filepath;
14 | }
15 |
16 | public Object getLocation() {
17 | return location;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/Filepath.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public abstract class Filepath {
4 | private final String kind;
5 |
6 | protected Filepath(String kind) {
7 | this.kind = kind;
8 | }
9 |
10 | public String getKind() {
11 | return kind;
12 | }
13 |
14 | public static class Kind {
15 | public static final String GIT = "git";
16 | public static final String WORKSPACE = "workspace";
17 | public static final String URI = "uri";
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/FilepathUri.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class FilepathUri extends Filepath {
4 | private final String uri;
5 |
6 | public FilepathUri(String uri) {
7 | super(Kind.URI);
8 | this.uri = uri;
9 | }
10 |
11 | public String getUri() {
12 | return uri;
13 | }
14 | }
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/GitRepository.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class GitRepository {
4 | private final String url;
5 |
6 | public GitRepository(String url) {
7 | this.url = url;
8 | }
9 |
10 | public String getUrl() {
11 | return url;
12 | }
13 | }
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/LineRange.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class LineRange extends Range {
4 | private final int start;
5 | private final int end;
6 |
7 | public LineRange(int start, int end) {
8 | this.start = start;
9 | this.end = end;
10 | }
11 |
12 | public int getStart() {
13 | return start;
14 | }
15 |
16 | public int getEnd() {
17 | return end;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/Position.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class Position {
4 | private final int line;
5 | private final int character;
6 |
7 | public Position(int line, int character) {
8 | this.line = line;
9 | this.character = character;
10 | }
11 |
12 | public int getLine() {
13 | return line;
14 | }
15 |
16 | public int getCharacter() {
17 | return character;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/PositionRange.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public class PositionRange extends Range {
4 | private final Position start;
5 | private final Position end;
6 |
7 | public PositionRange(Position start, Position end) {
8 | this.start = start;
9 | this.end = end;
10 | }
11 |
12 | public Position getStart() {
13 | return start;
14 | }
15 |
16 | public Position getEnd() {
17 | return end;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/chat/Range.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.chat;
2 |
3 | public abstract class Range {
4 | }
5 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/git/NoOpGitProvider.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.git;
2 |
3 | public class NoOpGitProvider implements IGitProvider {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/GitDiffResult.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | public class GitDiffResult {
4 | private String diff;
5 |
6 | public GitDiffResult() {
7 | }
8 |
9 | public GitDiffResult(String diff) {
10 | this.diff = diff;
11 | }
12 |
13 | public String getDiff() {
14 | return diff;
15 | }
16 |
17 | public void setDiff(String diff) {
18 | this.diff = diff;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/GitRepositoryParams.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | public class GitRepositoryParams {
4 | private String uri;
5 |
6 | public GitRepositoryParams(String uri) {
7 | this.uri = uri;
8 | }
9 |
10 | public String getUri() {
11 | return uri;
12 | }
13 |
14 | public void setUri(String uri) {
15 | this.uri = uri;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/IConfigService.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | import java.util.concurrent.CompletableFuture;
4 |
5 | import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
6 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment;
7 |
8 | @JsonSegment("tabby")
9 | public interface IConfigService {
10 | @JsonRequest("config")
11 | CompletableFuture getConfig(Object params);
12 | }
13 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/ITelemetryService.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | import org.eclipse.lsp4j.jsonrpc.services.JsonNotification;
4 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment;
5 |
6 | @JsonSegment("tabby/telemetry")
7 | public interface ITelemetryService {
8 | @JsonNotification
9 | void event(EventParams params);
10 | }
11 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/ITextDocumentServiceExt.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | import java.util.concurrent.CompletableFuture;
4 |
5 | import org.eclipse.lsp4j.jsonrpc.services.JsonRequest;
6 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment;
7 |
8 | @JsonSegment("textDocument")
9 | public interface ITextDocumentServiceExt {
10 | @JsonRequest
11 | CompletableFuture inlineCompletion(InlineCompletionParams params);
12 | }
13 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/ReadFileResult.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | public class ReadFileResult {
4 | private String text;
5 |
6 | public ReadFileResult() {
7 | }
8 |
9 | public ReadFileResult(String text) {
10 | this.text = text;
11 | }
12 |
13 | public String getText() {
14 | return text;
15 | }
16 |
17 | public void setText(String text) {
18 | this.text = text;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/clients/eclipse/plugin/src/com/tabbyml/tabby4eclipse/lsp/protocol/StatusRequestParams.java:
--------------------------------------------------------------------------------
1 | package com.tabbyml.tabby4eclipse.lsp.protocol;
2 |
3 | public class StatusRequestParams {
4 | private boolean recheckConnection;
5 |
6 | public StatusRequestParams() {
7 | }
8 |
9 | public boolean getRecheckConnection() {
10 | return recheckConnection;
11 | }
12 |
13 | public void setRecheckConnection(boolean recheckConnection) {
14 | this.recheckConnection = recheckConnection;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/clients/example-vscode-lsp/README.md:
--------------------------------------------------------------------------------
1 | This example has been outdated and removed.
2 |
3 | As of tabby-agent v1.7, the Language Server Protocol (LSP) has become the only supported method to connect to tabby-agent.
4 | For examples of creating IDE extensions that connect with tabby-agent using LSP, please refer to the source code of our IDE extensions:
5 | - [VSCode Extension](https://github.com/TabbyML/tabby/tree/main/clients/vscode)
6 | - [IntelliJ Platform Plugin](https://github.com/TabbyML/tabby/tree/main/clients/intellij)
7 |
--------------------------------------------------------------------------------
/clients/intellij/.gitattributes:
--------------------------------------------------------------------------------
1 | *.wasm filter=lfs diff=lfs merge=lfs -text
--------------------------------------------------------------------------------
/clients/intellij/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/clients/intellij/.idea/.name:
--------------------------------------------------------------------------------
1 | intellij-tabby
--------------------------------------------------------------------------------
/clients/intellij/.idea/kotlinc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/clients/intellij/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/clients/intellij/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/clients/intellij/gradle.properties:
--------------------------------------------------------------------------------
1 | kotlin.stdlib.default.dependency=false
2 |
--------------------------------------------------------------------------------
/clients/intellij/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/clients/intellij/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/clients/intellij/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
4 | networkTimeout=10000
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/clients/intellij/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "intellij-tabby",
3 | "private": true,
4 | "devDependencies": {
5 | "tabby-agent": "workspace:*",
6 | "tabby-chat-panel": "workspace:*"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/clients/intellij/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | mavenCentral()
4 | gradlePluginPortal()
5 | }
6 | }
7 |
8 | rootProject.name = "intellij-tabby"
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actionPromoter/HasPriority.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actionPromoter
2 |
3 | interface HasPriority {
4 | val priority: Int
5 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/JoinTabbySlackCommunity.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions
2 |
3 | import com.intellij.ide.BrowserUtil
4 | import com.intellij.openapi.actionSystem.AnAction
5 | import com.intellij.openapi.actionSystem.AnActionEvent
6 |
7 | class JoinTabbySlackCommunity : AnAction() {
8 | override fun actionPerformed(e: AnActionEvent) {
9 | BrowserUtil.browse("https://links.tabbyml.com/join-slack-extensions")
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/OpenModelRegistry.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions
2 |
3 | import com.intellij.ide.BrowserUtil
4 | import com.intellij.openapi.actionSystem.AnAction
5 | import com.intellij.openapi.actionSystem.AnActionEvent
6 |
7 | class OpenModelRegistry : AnAction() {
8 | override fun actionPerformed(e: AnActionEvent) {
9 | BrowserUtil.browse("https://tabby.tabbyml.com/docs/models/")
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/OpenOnlineDocumentation.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions
2 |
3 | import com.intellij.ide.BrowserUtil
4 | import com.intellij.openapi.actionSystem.AnAction
5 | import com.intellij.openapi.actionSystem.AnActionEvent
6 |
7 | class OpenOnlineDocumentation : AnAction() {
8 | override fun actionPerformed(e: AnActionEvent) {
9 | BrowserUtil.browse("https://tabby.tabbyml.com/docs")
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/OpenTabbyGithubRepo.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions
2 |
3 | import com.intellij.ide.BrowserUtil
4 | import com.intellij.openapi.actionSystem.AnAction
5 | import com.intellij.openapi.actionSystem.AnActionEvent
6 |
7 | class OpenTabbyGithubRepo : AnAction() {
8 | override fun actionPerformed(e: AnActionEvent) {
9 | BrowserUtil.browse("https://github.com/tabbyml/tabby")
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/chat/AddFileToChat.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions.chat
2 |
3 | import com.intellij.openapi.editor.Editor
4 | import com.tabbyml.intellijtabby.chat.ChatBrowser
5 |
6 | class AddFileToChat : ChatAction(object : ChatActionHandler {
7 | override fun doExecute(editor: Editor, chatBrowser: ChatBrowser) {
8 | chatBrowser.addActiveEditorAsContext(ChatBrowser.RangeStrategy.FILE)
9 | }
10 | })
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/chat/ChatActionHandler.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions.chat
2 |
3 | import com.intellij.openapi.editor.Editor
4 | import com.tabbyml.intellijtabby.chat.ChatBrowser
5 |
6 | interface ChatActionHandler {
7 | fun doExecute(editor: Editor, chatBrowser: ChatBrowser)
8 | fun isEnabled(editor: Editor, chatBrowser: ChatBrowser?): Boolean {
9 | return true
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/chat/OpenChatToolWindow.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions.chat
2 |
3 | import com.intellij.openapi.actionSystem.AnAction
4 | import com.intellij.openapi.actionSystem.AnActionEvent
5 | import com.tabbyml.intellijtabby.widgets.openChatToolWindow
6 |
7 | class OpenChatToolWindow : AnAction() {
8 | override fun actionPerformed(e: AnActionEvent) {
9 | e.project?.let { openChatToolWindow(it) }
10 | }
11 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/chat/ShowChatHistory.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions.chat
2 |
3 | import com.tabbyml.intellijtabby.chat.ChatView
4 |
5 | class ShowChatHistory : ChatNavigationAction(ChatView.HISTORY)
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/actions/chat/ShowNewChat.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.actions.chat
2 |
3 | import com.tabbyml.intellijtabby.chat.ChatView
4 |
5 | class ShowNewChat : ChatNavigationAction(ChatView.NEW_CHAT)
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/events/CaretListener.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.events
2 |
3 | import com.intellij.openapi.editor.Editor
4 | import com.intellij.openapi.editor.event.CaretEvent
5 | import com.intellij.util.messages.Topic
6 |
7 | interface CaretListener {
8 | fun caretPositionChanged(editor: Editor, event: CaretEvent) {}
9 |
10 | companion object {
11 | @Topic.ProjectLevel
12 | val TOPIC = Topic(CaretListener::class.java, Topic.BroadcastDirection.NONE)
13 | }
14 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/git/DummyGitProvider.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.git
2 |
3 | class DummyGitProvider : GitProvider {
4 | override fun isSupported(): Boolean {
5 | return false
6 | }
7 | }
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/lsp/protocol/server/ConfigFeature.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.lsp.protocol.server
2 |
3 | import com.tabbyml.intellijtabby.lsp.protocol.Config
4 | import org.eclipse.lsp4j.jsonrpc.services.JsonRequest
5 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment
6 | import java.util.concurrent.CompletableFuture
7 |
8 | @JsonSegment("tabby")
9 | interface ConfigFeature {
10 | @JsonRequest("config")
11 | fun getConfig(): CompletableFuture
12 | }
13 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/lsp/protocol/server/EditorsFeature.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.lsp.protocol.server
2 |
3 | import com.tabbyml.intellijtabby.lsp.protocol.DidChangeActiveEditorParams
4 | import org.eclipse.lsp4j.jsonrpc.services.JsonNotification
5 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment
6 |
7 | @JsonSegment("tabby/editors")
8 | interface EditorsFeature {
9 | @JsonNotification
10 | fun didChangeActiveEditor(params: DidChangeActiveEditorParams)
11 | }
12 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/kotlin/com/tabbyml/intellijtabby/lsp/protocol/server/TelemetryFeature.kt:
--------------------------------------------------------------------------------
1 | package com.tabbyml.intellijtabby.lsp.protocol.server
2 |
3 | import com.tabbyml.intellijtabby.lsp.protocol.EventParams
4 | import org.eclipse.lsp4j.jsonrpc.services.JsonNotification
5 | import org.eclipse.lsp4j.jsonrpc.services.JsonSegment
6 |
7 | @JsonSegment("tabby/telemetry")
8 | interface TelemetryFeature {
9 | @JsonNotification
10 | fun event(params: EventParams)
11 | }
12 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/META-INF/plugin-kotlin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/icons/chat.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/icons/chat_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/icons/new-ui/chat.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/icons/new-ui/chat_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/clients/intellij/src/main/resources/strings.properties:
--------------------------------------------------------------------------------
1 | tabby.info=Tabby notification
2 | tabby.warning=Tabby warnings
--------------------------------------------------------------------------------
/clients/tabby-agent/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "env": {
4 | "es2020": true,
5 | "node": true
6 | },
7 | "parser": "@typescript-eslint/parser",
8 | "plugins": ["@typescript-eslint"],
9 | "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
10 | "rules": {
11 | "@typescript-eslint/no-explicit-any": 0,
12 | "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
13 | },
14 | "ignorePatterns": ["dist", "node_modules"]
15 | }
16 |
--------------------------------------------------------------------------------
/clients/tabby-agent/.gitattributes:
--------------------------------------------------------------------------------
1 | *.wasm filter=lfs diff=lfs merge=lfs -text
--------------------------------------------------------------------------------
/clients/tabby-agent/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 |
--------------------------------------------------------------------------------
/clients/tabby-agent/.mocha.env.js:
--------------------------------------------------------------------------------
1 | process.env.NODE_ENV = "test";
2 | process.env.IS_TEST = 1;
3 |
--------------------------------------------------------------------------------
/clients/tabby-agent/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | spec: ["src/**/*.test.ts"],
3 | require: ["ts-node/register", "./.mocha.env.js"],
4 | };
5 |
--------------------------------------------------------------------------------
/clients/tabby-agent/.prettierignore:
--------------------------------------------------------------------------------
1 | **/prompts/**
2 |
--------------------------------------------------------------------------------
/clients/tabby-agent/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120
3 | }
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/global.ts:
--------------------------------------------------------------------------------
1 | export let mutexAbortController: AbortController | undefined = undefined;
2 |
3 | // reset global mutexAbortController to undefined
4 | export const resetMutexAbortController = () => {
5 | mutexAbortController = undefined;
6 | };
7 |
8 | // initialize global mutexAbortController
9 | export const initMutexAbortController = () => {
10 | if (!mutexAbortController) {
11 | mutexAbortController = new AbortController();
12 | }
13 | return mutexAbortController;
14 | };
15 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/prompts/fix-spelling-and-grammar.md:
--------------------------------------------------------------------------------
1 | You are an AI writing assistant.
2 | You help fix spelling, improve grammar and reply the fixed text enclosed in XML tags.
3 | You should not use other XML tags in response unless they are parts of the user document.
4 | The text content to be processed will be enclosed in XML tags.
5 |
6 | {{document}}
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/prompts/generate-commit-message.md:
--------------------------------------------------------------------------------
1 | You are an AI coding assistant. You should generate a commit message based on the given diff.
2 | You should reply the commit message in the following format:
3 | (): .
4 |
5 |
6 | The could be feat, fix, docs, refactor, style, test, build, ci, or chore.
7 | The scope is optional.
8 | For examples:
9 | - feat: add support for chat.
10 | - fix(ui): fix homepage links.
11 |
12 | The diff is:
13 | ```diff
14 | {{diff}}
15 | ```
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/prompts/include-file-context-item.md:
--------------------------------------------------------------------------------
1 | title="{{filepath}}"
2 | referrer="{{referrer}}"
3 | {{content}}
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/prompts/include-file-context-list.md:
--------------------------------------------------------------------------------
1 | Here is the list of files available for reference. Each file has a full path as the "title", a short form used as the "referrer" in the user command, and the content enclosed in XML tags.
2 | {{fileList}}
--------------------------------------------------------------------------------
/clients/tabby-agent/src/chat/prompts/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module "*.md" {
2 | const content: string;
3 | export default content;
4 | }
5 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/codeCompletion/postprocess/golden/basic_fibonacci_test/python.toml:
--------------------------------------------------------------------------------
1 | description = 'Basic python function fibonacci'
2 |
3 | [config]
4 | # use default config
5 |
6 | [context]
7 | filepath = 'fibonacci.py'
8 | language = 'python'
9 | # indentation = ' ' # not specified
10 | text = '''
11 | def fibonacci(n):
12 | ├if n == 0 or n == 1:
13 | return n┤
14 | return fibonacci(n - 1) + fibonacci(n - 2)
15 | '''
16 |
17 | [expected]
18 | unchanged = true
19 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/codeCompletion/postprocess/golden/remove_duplication/basic.toml:
--------------------------------------------------------------------------------
1 | description = 'Remove duplication: keep unchanged'
2 |
3 | [config]
4 | # use default config
5 |
6 | [context]
7 | filepath = 'foo.js'
8 | language = 'javascript'
9 | # indentation = ' ' # not specified
10 | text = '''
11 | function print(obj) {
12 | ├console.log(obj);┤
13 | console.log(obj);
14 | }
15 | '''
16 |
17 | [expected]
18 | discard = true
19 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/codeCompletion/postprocess/golden/remove_duplication/similar_lines_01.toml:
--------------------------------------------------------------------------------
1 | description = 'Remove duplication: similar lines: bad case 01'
2 |
3 | [config]
4 | # use default config
5 |
6 | [context]
7 | filepath = 'checks.js'
8 | language = 'javascript'
9 | # indentation = ' ' # not specified
10 | text = '''
11 | function check(obj) {
12 | if (obj.a) {
13 | return true;
14 | ├}┤
15 | }
16 | '''
17 |
18 | [expected]
19 | unchanged = true
20 | notEqual = true # FIXME: fix bad case
21 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/codeCompletion/postprocess/golden/replace_range/basic.toml:
--------------------------------------------------------------------------------
1 | description = 'Replace range: basic'
2 |
3 | [config]
4 | # use default config
5 |
6 | [context]
7 | filepath = 'hello.js'
8 | language = 'javascript'
9 | # indentation = ' ' # not specified
10 | text = '''
11 | function printHello(├) {
12 | console.log('Hello');
13 | }┤)
14 | '''
15 |
16 | [expected]
17 | text = '''
18 | function printHello(├) {
19 | console.log('Hello');
20 | }┤)╣
21 | '''
22 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/codeCompletion/postprocess/golden/replace_range/typescript_01.toml:
--------------------------------------------------------------------------------
1 | description = 'Replace range: typescript 01'
2 |
3 | [config]
4 | # use default config
5 |
6 | [context]
7 | filepath = 'print.ts'
8 | language = 'typescript'
9 | # indentation = ' ' # not specified
10 | text = '''
11 | function print(obj: any) {
12 | console.log("Obj: ├", obj);┤")
13 | }
14 | '''
15 |
16 | [expected]
17 | text = '''
18 | function print(obj: any) {
19 | console.log("Obj: ├", obj);┤")╣
20 | }
21 | '''
22 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/env.ts:
--------------------------------------------------------------------------------
1 | // FIXME: refactor env variables for running tests
2 | export const isBrowser = !!process.env["IS_BROWSER"];
3 | export const isTest = !!process.env["IS_TEST"];
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import * as dns from "node:dns";
4 | import { isBrowser } from "./env";
5 | import { Server } from "./server";
6 |
7 | if (!isBrowser) {
8 | dns.setDefaultResultOrder("ipv4first");
9 | }
10 |
11 | const server = new Server();
12 | server.listen();
13 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/logger/type.d.ts:
--------------------------------------------------------------------------------
1 | export interface Logger {
2 | error: (msg: string, error: any) => void;
3 | warn: (msg: string) => void;
4 | info: (msg: string) => void;
5 | debug: (msg: string) => void;
6 | trace: (msg: string, verbose?: any) => void;
7 | }
8 |
--------------------------------------------------------------------------------
/clients/tabby-agent/src/utils/types.ts:
--------------------------------------------------------------------------------
1 | import { Range } from "vscode-languageserver";
2 | import { TextDocument } from "vscode-languageserver-textdocument";
3 |
4 | export interface DocumentRange {
5 | document: TextDocument;
6 | range: Range;
7 | }
8 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter-go.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1b69c5af834fd23053238e484c7fe9ed2f121d5b1fe32242af78576d67e49f1e
3 | size 240169
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter-python.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:72d0f97ba6c3134d7873ec5c9d0fd3c1f5137f4eac4dda0709993d92809e62b6
3 | size 474189
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter-ruby.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1190cddd839b78c2aec737573399a71c23fe9a546d3543f86304c4c68ca73852
3 | size 990787
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter-rust.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:273f9ce6f2c595ad4e63b3195513b61974ae1ec513efcce39da1afa90574ef38
3 | size 844087
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter-tsx.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:060422a330f9c819a10e7310788d336dbcb53cc6a4be0e91d40f644564080f97
3 | size 1182114
4 |
--------------------------------------------------------------------------------
/clients/tabby-agent/wasm/tree-sitter.wasm:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:17382e1a69bd628107e8dfe37d31d57f7ba948e5f2da77e56a8aa010488dc5ae
3 | size 186526
4 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/README.md:
--------------------------------------------------------------------------------
1 | # tabby-chat-panel
2 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/build.config.ts:
--------------------------------------------------------------------------------
1 | import { defineBuildConfig } from 'unbuild'
2 |
3 | export default defineBuildConfig({
4 | entries: [
5 | 'src/index',
6 | 'src/react',
7 | ],
8 | declaration: true,
9 | clean: true,
10 | rollup: {
11 | emitCJS: true,
12 | },
13 | })
14 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/eslint.config.js:
--------------------------------------------------------------------------------
1 | import antfu from '@antfu/eslint-config'
2 |
3 | export default antfu({
4 | rules: {
5 | curly: ['off', 'all'],
6 | },
7 | })
8 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/src/browser.ts:
--------------------------------------------------------------------------------
1 | import { createThreadFromIframe } from 'tabby-threads'
2 | import { createClient as createClientFromThread } from './thread'
3 | import type { ClientApi } from './client'
4 | import type { ServerApi, ServerApiList } from './server'
5 |
6 | export async function createClient(iframe: HTMLIFrameElement, api: ClientApi): Promise {
7 | const thread = createThreadFromIframe(iframe, { expose: api })
8 | return await createClientFromThread(thread)
9 | }
10 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/src/index.ts:
--------------------------------------------------------------------------------
1 | import { version } from '../package.json'
2 |
3 | export const TABBY_CHAT_PANEL_API_VERSION: string = version
4 | export * from './types'
5 | export * from './thread'
6 | export * from './server'
7 | export * from './client'
8 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/test/index.test.ts:
--------------------------------------------------------------------------------
1 | import { describe, expect, it } from 'vitest'
2 |
3 | describe('should', () => {
4 | it('exported', () => {
5 | expect(1).toEqual(1)
6 | })
7 | })
8 |
--------------------------------------------------------------------------------
/clients/tabby-chat-panel/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "jsx": "react",
5 | "lib": ["ESNext", "DOM"],
6 | "module": "ESNext",
7 | "moduleResolution": "Bundler",
8 | "resolveJsonModule": true,
9 | "strict": true,
10 | "strictNullChecks": true,
11 | "esModuleInterop": true,
12 | "skipDefaultLibCheck": true,
13 | "skipLibCheck": true
14 | },
15 | "include": ["src", "test", "build.config.ts"]
16 | }
17 |
--------------------------------------------------------------------------------
/clients/tabby-openapi/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/clients/tabby-openapi/lib/index.d.ts:
--------------------------------------------------------------------------------
1 | export * from "./tabby";
2 |
--------------------------------------------------------------------------------
/clients/tabby-threads/.gitignore:
--------------------------------------------------------------------------------
1 | .rollup.cache
2 | dist
--------------------------------------------------------------------------------
/clients/tabby-threads/source/abort-signal.ts:
--------------------------------------------------------------------------------
1 | export { acceptThreadAbortSignal } from "./abort-signal/accept";
2 | export { createThreadAbortSignal } from "./abort-signal/create";
3 | export type { ThreadAbortSignal } from "./abort-signal/types";
4 |
--------------------------------------------------------------------------------
/clients/tabby-threads/source/constants.ts:
--------------------------------------------------------------------------------
1 | export const RETAIN_METHOD = Symbol.for('quilt.threads.retain');
2 | export const RELEASE_METHOD = Symbol.for('quilt.threads.release');
3 | export const RETAINED_BY = Symbol.for('quilt.threads.retained-by');
4 | export const ENCODE_METHOD = Symbol.for('quilt.threads.encode');
5 | export const TRANSFERABLE = Symbol.for('quilt.threads.transferable');
6 |
--------------------------------------------------------------------------------
/clients/tabby-threads/source/encoding.ts:
--------------------------------------------------------------------------------
1 | export { createBasicEncoder } from "./encoding/basic";
2 |
--------------------------------------------------------------------------------
/clients/tabby-threads/source/signals.ts:
--------------------------------------------------------------------------------
1 | export { createThreadSignal } from "./signals/create.js";
2 | export { acceptThreadSignal, isThreadSignal } from "./signals/accept.js";
3 | export type { ThreadSignal } from "./signals/types.js";
4 |
--------------------------------------------------------------------------------
/clients/tabby-threads/source/targets/iframe/shared.ts:
--------------------------------------------------------------------------------
1 | export const CHECK_MESSAGE = 'quilt.threads.ping';
2 | export const RESPONSE_MESSAGE = 'quilt.threads.pong';
3 |
--------------------------------------------------------------------------------
/clients/vim/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/tags
2 |
--------------------------------------------------------------------------------
/clients/vim/autoload/tabby.vim:
--------------------------------------------------------------------------------
1 | if exists('g:autoloaded_tabby')
2 | finish
3 | endif
4 | let g:autoloaded_tabby = 1
5 |
6 | let g:tabby_version = "2.0.0-dev"
7 |
8 | function! tabby#Setup()
9 | call tabby#lsp#Setup()
10 | call tabby#inline_completion#Setup()
11 | endfunction
12 |
--------------------------------------------------------------------------------
/clients/vim/lua/tabby.lua:
--------------------------------------------------------------------------------
1 | return {
2 | lsp = require 'tabby.lsp',
3 | }
4 |
--------------------------------------------------------------------------------
/clients/vim/lua/tabby/lsp.lua:
--------------------------------------------------------------------------------
1 | return {
2 | nvim_lsp = require 'tabby.lsp.nvim_lsp',
3 | }
4 |
--------------------------------------------------------------------------------
/clients/vim/plugin/tabby.vim:
--------------------------------------------------------------------------------
1 | if exists('g:loaded_tabby')
2 | finish
3 | endif
4 | let g:loaded_tabby = 1
5 |
6 | call tabby#Setup()
7 |
--------------------------------------------------------------------------------
/clients/vscode/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "env": {
4 | "es2020": true,
5 | "node": true
6 | },
7 | "parser": "@typescript-eslint/parser",
8 | "plugins": ["@typescript-eslint"],
9 | "extends": [
10 | "eslint:recommended",
11 | "plugin:@typescript-eslint/strict",
12 | "plugin:@typescript-eslint/stylistic",
13 | "prettier"
14 | ],
15 | "ignorePatterns": ["dist", "node_modules"]
16 | }
17 |
--------------------------------------------------------------------------------
/clients/vscode/.gitattributes:
--------------------------------------------------------------------------------
1 | *.png filter=lfs diff=lfs merge=lfs -text
2 | *.svg filter=lfs diff=lfs merge=lfs -text
--------------------------------------------------------------------------------
/clients/vscode/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | dist
3 | node_modules
4 | generated
5 | .vscode-test/
6 | .vscode-test-web/
7 | *.vsix
8 | chat-panel/
--------------------------------------------------------------------------------
/clients/vscode/.mocha.env.js:
--------------------------------------------------------------------------------
1 | process.env.NODE_ENV = "test";
2 | process.env.IS_TEST = 1;
3 |
--------------------------------------------------------------------------------
/clients/vscode/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | spec: ["src/**/*.test.ts"],
3 | require: ["ts-node/register", "./.mocha.env.js"],
4 | };
5 |
--------------------------------------------------------------------------------
/clients/vscode/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120
3 | }
4 |
--------------------------------------------------------------------------------
/clients/vscode/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | .vscode-test-web/**
4 | out/**
5 | **/node_modules/**
6 | src/**
7 | .gitignore
8 | .gitattributes
9 | .prettierrc.json
10 | tsup.config.ts
11 | .yarnrc
12 | **/tsconfig.json
13 | **/.eslintrc.json
14 | **/*.map
15 | **/*.ts
16 | scripts/**
17 | .turbo
18 |
--------------------------------------------------------------------------------
/clients/vscode/assets/chat.svg:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4826ce8f21a55f8b020b23f491fc241f6bc275c709596898dddb44fd4c9bb8f3
3 | size 297
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/logo.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5f358d0230465ca2eb0c1d4d7f2e89b1cb369289ddf0ffa5db01e91b4b9c052c
3 | size 245810
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/tabby.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:163ea1f583c171e1bdfed2c3a3c94347bd7956c2ad4a9f07a0c4edcdba53ddcd
3 | size 46728
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/chatEdit.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c5050d25444340107a29cc9fb7f46c4698a65e144dea5310f886566621bfd076
3 | size 53699
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/chatEditCompleted.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ed5e0c8b606a0de6318bb5d958184a11348e8e9e4337c20c90de9bc590a85f62
3 | size 81022
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/chatView.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a56ad3fa79321fc45006abfbe6b42b9c23d8877ae4510e6048da717b2da21811
3 | size 138447
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/chatViewWithSelected.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:457fb1986ecf55677d2a9fde55aeed96a54b0e82e82671c459bf06bd248aab1b
3 | size 175550
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/commandPalette.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:85ccb0d0393819d71d271628fef949e949f1c663bed9b58dfc8be529fcf4b4b0
3 | size 50890
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/connectToServer_token.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b956f540455128fe311b69669ec68563c37748515d12531e213fc449fd1f8307
3 | size 19537
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/connectToServer_url.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:00508e2b1296196a885bc2e24e7c53b95f02088c0c7d6a17ab1f751b4ebc8fd8
3 | size 37449
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/multipleChoice.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:44164f2e086b599f681858c0a2a11a9df928e5323cec8bdbdc49dd2ac84e411d
3 | size 49039
4 |
--------------------------------------------------------------------------------
/clients/vscode/assets/walkthroughs/statusbarReady.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a87247c8ca9e1a5f7bd7fce491049c6af1edb90f880b6f1215f221f93a1b3b59
3 | size 13746
4 |
--------------------------------------------------------------------------------
/clients/vscode/scripts/dummy.js:
--------------------------------------------------------------------------------
1 | // This dummy js file is used as the entrypoint of the copy tabby-agent task.
2 |
--------------------------------------------------------------------------------
/clients/vscode/scripts/publish.cjs:
--------------------------------------------------------------------------------
1 | const packageJson = require("../package.json");
2 | const semver = require("semver");
3 |
4 | const minor = semver.minor(packageJson.version);
5 |
6 | if (minor % 2 === 0) {
7 | console.warn("Even minor version, release as stable channel");
8 | console.log("publish");
9 | } else {
10 | console.warn("Odd minor version, release as prerelease channel");
11 | console.log("publish-prerelease");
12 | }
13 |
--------------------------------------------------------------------------------
/clients/vscode/src/chat/dom.d.ts:
--------------------------------------------------------------------------------
1 | // We don't include DOM types in typescript building config
2 |
3 | // FIXME: Types used in `tabby-chat-panel` and `tabby-threads`
4 | declare type HTMLIFrameElement = unknown;
5 | declare type KeyboardEventInit = unknown;
6 |
--------------------------------------------------------------------------------
/clients/vscode/src/chat/html/index.d.ts:
--------------------------------------------------------------------------------
1 | declare module "*.html" {
2 | const content: string;
3 | export default content;
4 | }
5 |
--------------------------------------------------------------------------------
/clients/vscode/src/deferred.ts:
--------------------------------------------------------------------------------
1 | export const noop = () => {
2 | //
3 | };
4 |
5 | export class Deferred {
6 | public resolve: (value: T | PromiseLike) => void = noop;
7 | public reject: (err?: unknown) => void = noop;
8 | public readonly promise: Promise;
9 |
10 | constructor() {
11 | this.promise = new Promise((resolve, reject) => {
12 | this.resolve = resolve;
13 | this.reject = reject;
14 | });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/clients/vscode/src/env.ts:
--------------------------------------------------------------------------------
1 | export const isBrowser = !!process.env["IS_BROWSER"];
2 |
--------------------------------------------------------------------------------
/clients/vscode/src/lsp/ConfigurationMiddleware.ts:
--------------------------------------------------------------------------------
1 | import { ConfigurationMiddleware as VscodeLspConfigurationMiddleware } from "vscode-languageclient";
2 | import { ClientProvidedConfig } from "tabby-agent";
3 | import { Config } from "../Config";
4 |
5 | export class ConfigurationMiddleware implements VscodeLspConfigurationMiddleware {
6 | constructor(private readonly config: Config) {}
7 |
8 | async configuration(): Promise {
9 | return [this.config.buildClientProvidedConfig()];
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/clients/vscode/src/lsp/vscodeWindowUtils.ts:
--------------------------------------------------------------------------------
1 | import { window, TextEditor, Uri } from "vscode";
2 |
3 | export function findTextEditor(uri: Uri): TextEditor | undefined {
4 | if (window.activeTextEditor?.document.uri.toString() === uri.toString()) {
5 | return window.activeTextEditor;
6 | }
7 | return window.visibleTextEditors.find((editor) => editor.document.uri.toString() === uri.toString());
8 | }
9 |
--------------------------------------------------------------------------------
/clients/vscode/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "noUnusedLocals": true
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | status:
3 | project:
4 | default:
5 | threshold: 0%
6 | patch:
7 | default:
8 | target: 75%
9 | threshold: 0%
--------------------------------------------------------------------------------
/crates/aim-downloader/README.md:
--------------------------------------------------------------------------------
1 | # http_downloader
2 |
3 | Adopted from https://github.com/mihaigalos/aim
--------------------------------------------------------------------------------
/crates/aim-downloader/src/consts.rs:
--------------------------------------------------------------------------------
1 | use clap::crate_version;
2 |
3 | pub const CLIENT_ID: &str = concat!(
4 | env!("CARGO_PKG_REPOSITORY"),
5 | "/releases/tag/",
6 | crate_version!()
7 | );
8 |
--------------------------------------------------------------------------------
/crates/aim-downloader/src/lib.rs:
--------------------------------------------------------------------------------
1 | pub mod bar;
2 | pub mod error;
3 | pub mod https;
4 |
5 | mod address;
6 | mod consts;
7 | pub mod hash;
8 | mod io;
9 | mod netrc;
10 | mod untildify;
11 |
--------------------------------------------------------------------------------
/crates/hash-ids/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "hash-ids"
3 | version.workspace = true
4 | edition.workspace = true
5 | authors.workspace = true
6 | homepage.workspace = true
7 |
8 | [dependencies]
9 |
--------------------------------------------------------------------------------
/crates/hash-ids/src/README.md:
--------------------------------------------------------------------------------
1 | # hash-ids
2 |
3 | Vendored fork from https://github.com/kardeiz/hash-ids (MIT License)
--------------------------------------------------------------------------------
/crates/ollama-api-bindings/src/lib.rs:
--------------------------------------------------------------------------------
1 | mod model;
2 |
3 | mod completion;
4 | pub use completion::create as create_completion;
5 |
6 | mod embedding;
7 | pub use embedding::create as create_embedding;
8 |
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/README.md:
--------------------------------------------------------------------------------
1 | # sqlx-migrate-validate
2 |
3 | Vendored fork of https://github.com/tobikris/sqlx-migrate-validate
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/src/error.rs:
--------------------------------------------------------------------------------
1 | use sqlx::migrate::MigrateError;
2 |
3 | #[derive(Debug, thiserror::Error)]
4 | #[non_exhaustive]
5 | pub enum ValidateError {
6 | #[error("migration {0} was not applied")]
7 | VersionNotApplied(i64),
8 |
9 | #[error(transparent)]
10 | MigrateError(#[from] MigrateError),
11 | }
12 |
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/tests/migrations-1/20230312133715_create_table.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE users (
2 | user_id TEXT PRIMARY KEY,
3 | username TEXT NOT NULL
4 | );
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/tests/migrations-2/20230312133715_create_table.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE users (
2 | user_id TEXT PRIMARY KEY,
3 | username TEXT NOT NULL
4 | );
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/tests/migrations-2/20230312141719_add_other_table.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE roles (
2 | role_id TEXT PRIMARY KEY,
3 | role_name TEXT NOT NULL
4 | );
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/tests/migrations-3/20230312141719_add_other_table.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE roles (
2 | role_id TEXT PRIMARY KEY,
3 | role_name TEXT NOT NULL
4 | );
--------------------------------------------------------------------------------
/crates/sqlx-migrate-validate/tests/migrations-4/20230312133715_create_table.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE users (
2 | user_id TEXT PRIMARY KEY,
3 | username TEXT NOT NULL,
4 | email TEXT NOT NULL
5 | );
--------------------------------------------------------------------------------
/crates/tabby-common/src/api/mod.rs:
--------------------------------------------------------------------------------
1 | pub mod code;
2 | pub mod event;
3 | pub mod ingestion;
4 | pub mod server_setting;
5 | pub mod structured_doc;
6 |
--------------------------------------------------------------------------------
/crates/tabby-common/src/api/server_setting.rs:
--------------------------------------------------------------------------------
1 | use serde::{Deserialize, Serialize};
2 | use utoipa::ToSchema;
3 |
4 | #[derive(Serialize, Deserialize, ToSchema, Clone, Debug)]
5 | pub struct ServerSetting {
6 | pub disable_client_side_telemetry: bool,
7 | }
8 |
--------------------------------------------------------------------------------
/crates/tabby-common/src/constants.rs:
--------------------------------------------------------------------------------
1 | pub static USER_HEADER_FIELD_NAME: &str = "x-tabby-user";
2 |
--------------------------------------------------------------------------------
/crates/tabby-common/src/lib.rs:
--------------------------------------------------------------------------------
1 | //! Common tabby types and utilities.
2 | //! Defines common types and utilities used across multiple tabby subprojects, especially serialization and deserialization targets.
3 | pub mod api;
4 | pub mod axum;
5 | pub mod config;
6 | pub mod constants;
7 | pub mod index;
8 | pub mod languages;
9 | pub mod path;
10 | pub mod registry;
11 | pub mod terminal;
12 | pub mod usage;
13 |
--------------------------------------------------------------------------------
/crates/tabby-download/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "tabby-download"
3 | version = "0.30.0-dev.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | aim-downloader = { path = "../aim-downloader" }
8 | tabby-common = { path = "../tabby-common" }
9 | anyhow = { workspace = true }
10 | tracing = { workspace = true }
11 | tokio-retry = { workspace = true }
12 |
13 | [dev-dependencies]
14 | serial_test = { workspace = true }
15 |
--------------------------------------------------------------------------------
/crates/tabby-index-cli/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "tabby-index-cli"
3 | version.workspace = true
4 | edition.workspace = true
5 | authors.workspace = true
6 | homepage.workspace = true
7 |
8 | [dependencies]
9 | clap = { workspace = true, features = ["derive"]}
10 | tantivy.workspace = true
11 | tabby-common = { path = "../tabby-common" }
12 | anyhow.workspace = true
13 | serde.workspace = true
14 | serde_json.workspace = true
15 |
--------------------------------------------------------------------------------
/crates/tabby-index-cli/README.md:
--------------------------------------------------------------------------------
1 | # tabby-index-cli
2 |
3 | A cli tool to help debugging tabby's index, deriving from https://github.com/quickwit-oss/tantivy-cli
--------------------------------------------------------------------------------
/crates/tabby-index-cli/assets/queries.txt:
--------------------------------------------------------------------------------
1 | chunk_tokens:embedding_one_1 AND chunk_tokens:embedding_zero_2
--------------------------------------------------------------------------------
/crates/tabby-index-cli/src/commands/mod.rs:
--------------------------------------------------------------------------------
1 | mod bench;
2 | mod head;
3 | mod inspect;
4 |
5 | pub use self::{
6 | bench::{run_bench_cli, BenchArgs},
7 | head::{run_head_cli, HeadArgs},
8 | inspect::run_inspect_cli,
9 | };
10 |
--------------------------------------------------------------------------------
/crates/tabby-index/README.md:
--------------------------------------------------------------------------------
1 | # tabby-index
2 |
3 | This package contains indexer definition for Code / Documentation corpus.
--------------------------------------------------------------------------------
/crates/tabby-index/queries/csharp.scm:
--------------------------------------------------------------------------------
1 | (
2 | (class_declaration (identifier) @name) @definition.class
3 | )
4 |
5 | (
6 | (struct_declaration (identifier) @name) @definition.struct
7 | )
8 |
9 | (
10 | (method_declaration (identifier) @name) @definition.method
11 | )
12 |
13 | (
14 | (interface_declaration (identifier) @name) @definition.interface
15 | )
16 |
17 | (
18 | (local_function_statement (identifier) @name) @definition.function
19 | )
--------------------------------------------------------------------------------
/crates/tabby-index/queries/gdscript.scm:
--------------------------------------------------------------------------------
1 |
2 | (
3 | (class_definition (name) @name) @definition.class
4 | )
5 |
6 | (
7 | (function_definition (name) @name) @definition.function
8 | )
9 |
10 | (
11 | (call (identifier) @name) @reference.call
12 | )
13 |
--------------------------------------------------------------------------------
/crates/tabby-index/queries/kotlin.scm:
--------------------------------------------------------------------------------
1 | (
2 | (function_declaration (simple_identifier) @name) @definition.function
3 | )
4 |
5 | (
6 | (class_declaration (type_identifier) @name) @definition.class
7 | )
8 |
9 | (
10 | (object_literal (delegation_specifier) @name) @definition.object
11 | )
12 |
13 |
--------------------------------------------------------------------------------
/crates/tabby-inference/src/embedding.rs:
--------------------------------------------------------------------------------
1 | use async_trait::async_trait;
2 |
3 | #[async_trait]
4 | pub trait Embedding: Sync + Send {
5 | async fn embed(&self, prompt: &str) -> anyhow::Result>;
6 | }
7 |
--------------------------------------------------------------------------------
/crates/tabby/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 |
--------------------------------------------------------------------------------
/crates/tabby/src/routes/metrics.rs:
--------------------------------------------------------------------------------
1 | use std::sync::Arc;
2 |
3 | use axum::extract::State;
4 | use axum_prometheus::metrics_exporter_prometheus::PrometheusHandle;
5 |
6 | pub async fn metrics(State(state): State>) -> String {
7 | state.render()
8 | }
9 |
--------------------------------------------------------------------------------
/crates/tabby/src/services/embedding.rs:
--------------------------------------------------------------------------------
1 | use std::sync::Arc;
2 |
3 | use tabby_common::config::ModelConfig;
4 | use tabby_inference::Embedding;
5 |
6 | use super::model;
7 |
8 | pub async fn create(config: &ModelConfig) -> Arc {
9 | model::load_embedding(config).await
10 | }
11 |
--------------------------------------------------------------------------------
/crates/tabby/src/services/mod.rs:
--------------------------------------------------------------------------------
1 | pub mod code;
2 | pub mod completion;
3 | pub mod embedding;
4 | pub mod event;
5 | pub mod health;
6 | pub mod model;
7 | pub mod structured_doc;
8 | pub mod tantivy;
9 |
--------------------------------------------------------------------------------
/crates/tabby/tests/snapshots/goldentests__run_golden_tests_cpu-2.snap:
--------------------------------------------------------------------------------
1 | ---
2 | source: crates/tabby/tests/goldentests.rs
3 | expression: "golden_test(json!({\n \"language\": \"python\", \"seed\": 0, \"segments\":\n { \"prefix\": \"def char_frequencies(str):\\n freqs = {}\\n \", }\n })).await"
4 | ---
5 | choices:
6 | - index: 0
7 | text: "for c in str:\n freqs[c] = freqs.get(c, 0) + 1\n return freqs"
8 | debug_data: {}
9 | id: test-id
10 |
--------------------------------------------------------------------------------
/crates/tabby/tests/snapshots/goldentests_chat__run_chat_golden_tests_cpu.snap:
--------------------------------------------------------------------------------
1 | ---
2 | source: crates/tabby/tests/goldentests_chat.rs
3 | expression: "golden_test(json!({\n \"seed\": 0, \"model\": \"default\", \"messages\":\n [{ \"role\": \"user\", \"content\": \"How are you?\" }]\n })).await"
4 | ---
5 | " I'm an AI language model, so I don't have feelings or emotions like a human does. I'm here to help you with any questions or tasks you have. How can I assist you today?"
6 |
--------------------------------------------------------------------------------
/ee/tabby-db-macros/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "tabby-db-macros"
3 | version.workspace = true
4 | edition.workspace = true
5 | authors.workspace = true
6 | homepage.workspace = true
7 |
8 | [lib]
9 | proc-macro = true
10 |
11 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
12 |
13 | [dependencies]
14 | quote = "1.0.35"
15 | syn = { version = "2.0.52", features = ["full"] }
16 |
--------------------------------------------------------------------------------
/ee/tabby-db/.gitignore:
--------------------------------------------------------------------------------
1 | schema.sqlite-*
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0001_registration-token-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE registration_token;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0001_registration-token-table.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS registration_token (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | token VARCHAR(255) NOT NULL,
4 | created_at TIMESTAMP DEFAULT (DATETIME('now')),
5 | updated_at TIMESTAMP DEFAULT (DATETIME('now')),
6 | CONSTRAINT `idx_token` UNIQUE (`token`)
7 | );
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0002_users-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE users;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0003_invitations-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE invitations;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0003_invitations-table.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS invitations (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | email VARCHAR(150) NOT NULL COLLATE NOCASE,
4 | code VARCHAR(36) NOT NULL,
5 | created_at TIMESTAMP DEFAULT (DATETIME('now')),
6 | CONSTRAINT `idx_email` UNIQUE (`email`)
7 | CONSTRAINT `idx_code` UNIQUE (`code`)
8 | );
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0004_refresh-tokens.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE refresh_tokens;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0004_refresh-tokens.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS refresh_tokens (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | user_id INTEGER NOT NULL,
4 | token VARCHAR(255) NOT NULL COLLATE NOCASE,
5 | expires_at TIMESTAMP NOT NULL,
6 | created_at TIMESTAMP DEFAULT (DATETIME('now')),
7 | CONSTRAINT `idx_token` UNIQUE (`token`)
8 | );
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0005_job-runs-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE job_runs;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0005_job-runs-table.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS job_runs (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | job VARCHAR(255) NOT NULL,
4 | start_ts TIMESTAMP NOT NULL,
5 | end_ts TIMESTAMP,
6 | exit_code INTEGER,
7 | stdout TEXT NOT NULL,
8 | stderr TEXT NOT NULL,
9 | created_at TIMESTAMP DEFAULT (DATETIME('now')),
10 | updated_at TIMESTAMP DEFAULT (DATETIME('now'))
11 | );
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0006_github-oauth-credential.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE github_oauth_credential;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0006_github-oauth-credential.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS github_oauth_credential (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | client_id VARCHAR(32) NOT NULL,
4 | client_secret VARCHAR(64) NOT NULL,
5 | created_at TIMESTAMP NOT NULL DEFAULT (DATETIME('now')),
6 | updated_at TIMESTAMP NOT NULL DEFAULT (DATETIME('now'))
7 | );
8 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0007_email-setting.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE email_setting;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0007_email-setting.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS email_setting(
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | smtp_username VARCHAR(255) NOT NULL,
4 | smtp_password VARCHAR(255) NOT NULL,
5 | smtp_server VARCHAR(255) NOT NULL
6 | );
7 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0008_repositories-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE repositories;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0008_repositories-table.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS repositories (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | name VARCHAR(255) NOT NULL,
4 | git_url VARCHAR(255) NOT NULL,
5 | CONSTRAINT `idx_name` UNIQUE (`name`)
6 | CONSTRAINT `idx_git_url` UNIQUE (`git_url`)
7 | );
8 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0009_google-oauth-credential.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE google_oauth_credential;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0009_google-oauth-credential.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS google_oauth_credential (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | client_id VARCHAR(256) NOT NULL,
4 | client_secret VARCHAR(64) NOT NULL,
5 | redirect_uri VARCHAR(256) NOT NULL,
6 | created_at TIMESTAMP DEFAULT (DATETIME('now')),
7 | updated_at TIMESTAMP DEFAULT (DATETIME('now'))
8 | );
9 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0010_server-setting.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE server_setting;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0010_server-setting.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE server_setting (
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | security_allowed_register_domain_list STRING,
4 | security_disable_client_side_telemetry BOOLEAN NOT NULL DEFAULT FALSE,
5 | network_external_url STRING NOT NULL DEFAULT 'http://localhost:8080'
6 | );
7 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0011_new-email-settings.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE email_setting DROP COLUMN from_address;
2 | ALTER TABLE email_setting DROP COLUMN encryption;
3 | ALTER TABLE email_setting DROP COLUMN auth_method;
4 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0011_new-email-settings.up.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE email_setting;
2 | CREATE TABLE IF NOT EXISTS email_setting(
3 | id INTEGER PRIMARY KEY AUTOINCREMENT,
4 | smtp_username VARCHAR(255) NOT NULL,
5 | smtp_password VARCHAR(255) NOT NULL,
6 | smtp_server VARCHAR(255) NOT NULL,
7 | from_address VARCHAR(255) NOT NULL,
8 | encryption VARCHAR(255) NOT NULL DEFAULT 'ssltls',
9 | auth_method VARCHAR(255) NOT NULL DEFAULT 'plain'
10 | );
11 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0012_remove-redirect-uri-field-oauth.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE google_oauth_credential ADD COLUMN redirect_uri VARCHAR(256);
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0012_remove-redirect-uri-field-oauth.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE google_oauth_credential DROP COLUMN redirect_uri;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0013_add-smtp-port.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE email_setting DROP COLUMN smtp_port;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0013_add-smtp-port.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE email_setting ADD COLUMN smtp_port INTEGER NOT NULL DEFAULT 25;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0014_password-reset.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE password_reset;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0014_password-reset.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE password_reset(
2 | id INTEGER PRIMARY KEY AUTOINCREMENT,
3 | user_id INTEGER NOT NULL UNIQUE,
4 | code VARCHAR(36) NOT NULL,
5 | created_at TIMESTAMP NOT NULL DEFAULT (DATETIME('now'))
6 | );
7 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0015_enterprise-license.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE server_setting DROP COLUMN billing_enterprise_license;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0015_enterprise-license.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE server_setting ADD COLUMN billing_enterprise_license STRING;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0016_merge-oauth-tables.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE oauth_credential;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0017_add-user-completions.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX user_completions_completion_id_idx;
2 | DROP INDEX user_completions_user_id_language_idx;
3 | DROP TABLE user_completions;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0018_user-password-nullable.down.sql:
--------------------------------------------------------------------------------
1 | UPDATE users SET password_encrypted =
2 | CASE
3 | WHEN password_encrypted IS NULL THEN ''
4 | ELSE password_encrypted
5 | END;
6 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0018_user-password-nullable.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE users ADD COLUMN password_encrypted_nullable VARCHAR(128);
2 |
3 | UPDATE users SET password_encrypted_nullable =
4 | CASE
5 | WHEN LENGTH(password_encrypted) = 0 THEN NULL
6 | ELSE password_encrypted
7 | END;
8 |
9 | ALTER TABLE users DROP COLUMN password_encrypted;
10 | ALTER TABLE users RENAME password_encrypted_nullable TO password_encrypted;
11 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0019_user-avatar.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE users DROP COLUMN avatar;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0019_user-avatar.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE users ADD COLUMN avatar BLOB DEFAULT NULL;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0020_job-run-index.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX idx_job_created_at;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0020_job-run-index.up.sql:
--------------------------------------------------------------------------------
1 | CREATE INDEX idx_job_created_at ON job_runs(job, created_at);
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0021_repository-name-index.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX idx_repository_name;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0021_repository-name-index.up.sql:
--------------------------------------------------------------------------------
1 | CREATE INDEX idx_repository_name ON repositories(name);
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0022_github-provider.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE github_repository_provider;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0022_github-provider.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE github_repository_provider(
2 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
3 | display_name TEXT NOT NULL,
4 | application_id TEXT NOT NULL,
5 | secret TEXT NOT NULL,
6 | access_token TEXT,
7 | CONSTRAINT `idx_application_id` UNIQUE (`application_id`)
8 | );
9 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0023_user-completions-created-at-index.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX idx_user_completion_user_id_created_at_language;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0023_user-completions-created-at-index.up.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX user_completions_user_id_language_idx;
2 | CREATE INDEX idx_user_completion_user_id_created_at_language ON user_completions(user_id, created_at, language);
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0024_github-provided-repos.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE github_provided_repositories;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0025_user-events.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX idx_user_events_user_id;
2 | DROP INDEX idx_user_events_created_at;
3 | DROP TABLE user_events;
4 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0025_user-events.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE user_events (
2 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
3 | user_id INTEGER NOT NULL,
4 | kind TEXT NOT NULL,
5 | created_at TIMESTAMP NOT NULL DEFAULT (DATETIME('now')),
6 | payload BLOB NOT NULL,
7 | FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
8 | );
9 | CREATE INDEX idx_user_events_user_id ON user_events(user_id);
10 | CREATE INDEX idx_user_events_created_at ON user_events(created_at);
11 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0026_clean-up-tables.down.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-db/migrations/0026_clean-up-tables.down.sql
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0027_remove-github-repository-columns-on-oauth.down.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-db/migrations/0027_remove-github-repository-columns-on-oauth.down.sql
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0027_remove-github-repository-columns-on-oauth.up.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE github_repository_provider;
2 |
3 | CREATE TABLE github_repository_provider(
4 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
5 | display_name TEXT NOT NULL,
6 | access_token TEXT,
7 | synced_at TIMESTAMP
8 | );
9 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0028_gitlab-provider.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE gitlab_provided_repositories;
2 | DROP TABLE gitlab_repository_provider;
3 |
4 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0029_merged-provider-tables.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE integrations;
2 | DROP TABLE provided_repositories;
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0030_user-name.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE users DROP COLUMN name;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0030_user-name.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE users ADD COLUMN name VARCHAR(255);
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0031_web-crawler-urls.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE web_crawler_urls;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0031_web-crawler-urls.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE web_crawler_urls(
2 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
3 | url TEXT NOT NULL,
4 | created_at TIMESTAMP NOT NULL DEFAULT (DATETIME('now')),
5 | CONSTRAINT `unique_url` UNIQUE(url)
6 | );
7 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0033_add-job-runs-param-column.down.sql:
--------------------------------------------------------------------------------
1 | DROP INDEX `idx_job_runs_command`;
2 | ALTER TABLE job_runs DROP COLUMN command;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0033_add-job-runs-param-column.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE job_runs ADD COLUMN command TEXT;
2 | CREATE INDEX `idx_job_runs_command` ON job_runs(command);
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0034_add-started-at-column-in-job-runs.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE job_runs DROP COLUMN started_at;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0034_add-started-at-column-in-job-runs.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE job_runs ADD COLUMN started_at TIMESTAMP;
2 |
3 | -- Set started_at to created_at for all job runs that have already finished.
4 | UPDATE job_runs SET started_at = created_at WHERE exit_code IS NOT NULL;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0035_add-thread-message-table.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE thread_messages;
2 | DROP TABLE threads;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0036_web_document.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE web_documents;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0036_web_document.up.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE web_documents(
2 | id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
3 | name VARCHAR(255) NOT NULL,
4 | url TEXT NOT NULL,
5 | is_preset BOOLEAN NOT NULL DEFAULT FALSE,
6 | created_at TIMESTAMP NOT NULL DEFAULT(DATETIME('now')),
7 | updated_at TIMESTAMP NOT NULL DEFAULT(DATETIME('now')),
8 | CONSTRAINT idx_name UNIQUE(name),
9 | CONSTRAINT idx_url UNIQUE(url)
10 | );
11 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0037_remove-webcrawler-table.down.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-db/migrations/0037_remove-webcrawler-table.down.sql
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0037_remove-webcrawler-table.up.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE web_crawler_urls;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0038_add-access-control-tables.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE user_groups;
2 | DROP TABLE user_group_memberships;
3 | DROP TABLE source_id_read_access_policies;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0039_add-notification-inbox.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE notifications;
2 | DROP TABLE read_notifications;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0040_add-code-source-id-column.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE thread_messages
2 | DROP code_source_id;
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0040_add-code-source-id-column.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE thread_messages
2 | ADD code_source_id VARCHAR(255);
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0041_ldap-credential.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE ldap_credential;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0042_add-file-list-attachment.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE thread_messages
2 | DROP attachment;
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0043_page-section.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE page_sections;
2 | DROP TABLE pages;
3 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0044_add-page-sources.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE pages DROP COLUMN source_id;
2 |
3 | ALTER TABLE page_sections DROP COLUMN attachment;
4 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0044_add-page-sources.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE pages ADD code_source_id VARCHAR(255);
2 |
3 | ALTER TABLE page_sections ADD attachment BLOB NOT NULL DEFAULT '{}';
4 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0045_remove-deprecated-columns.down.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-db/migrations/0045_remove-deprecated-columns.down.sql
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0045_remove-deprecated-columns.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE thread_messages DROP COLUMN code_attachments;
2 | ALTER TABLE thread_messages DROP COLUMN client_code_attachments;
3 | ALTER TABLE thread_messages DROP COLUMN doc_attachments;
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0046_add-disable-password-login.down.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE server_setting DROP column security_disable_password_login;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0046_add-disable-password-login.up.sql:
--------------------------------------------------------------------------------
1 | ALTER TABLE server_setting ADD column security_disable_password_login BOOLEAN NOT NULL DEFAULT FALSE;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/migrations/0047_add-ingestion.down.sql:
--------------------------------------------------------------------------------
1 | DROP TABLE ingested_documents;
2 |
--------------------------------------------------------------------------------
/ee/tabby-db/schema.sqlite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-db/schema.sqlite
--------------------------------------------------------------------------------
/ee/tabby-db/src/conversions.rs:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/ee/tabby-email/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | .react-email
3 |
--------------------------------------------------------------------------------
/ee/tabby-email/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "emails",
3 | "version": "0.0.19",
4 | "private": true,
5 | "scripts": {
6 | "build": "email build && email export",
7 | "dev": "email dev"
8 | },
9 | "devDependencies": {
10 | "react-email": "2.1.3",
11 | "@react-email/components": "0.0.18",
12 | "@react-email/tailwind": "0.0.17",
13 | "react": "18.2.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ee/tabby-schema/examples/update-schema.rs:
--------------------------------------------------------------------------------
1 | use std::fs::write;
2 |
3 | use tabby_schema::create_schema;
4 |
5 | fn main() {
6 | let schema = create_schema();
7 | write("ee/tabby-schema/graphql/schema.graphql", schema.as_sdl()).unwrap();
8 | }
9 |
--------------------------------------------------------------------------------
/ee/tabby-schema/src/env.rs:
--------------------------------------------------------------------------------
1 | pub fn is_demo_mode() -> bool {
2 | std::env::var("TABBY_WEBSERVER_DEMO_MODE").is_ok()
3 | }
4 |
--------------------------------------------------------------------------------
/ee/tabby-schema/src/juniper/mod.rs:
--------------------------------------------------------------------------------
1 | pub mod relay;
2 |
--------------------------------------------------------------------------------
/ee/tabby-schema/src/juniper/relay/page_info.rs:
--------------------------------------------------------------------------------
1 | use juniper::GraphQLObject;
2 |
3 | #[derive(Default, GraphQLObject)]
4 | #[graphql(name = "PageInfo")]
5 | pub struct PageInfo {
6 | pub has_previous_page: bool,
7 | pub has_next_page: bool,
8 | pub start_cursor: Option,
9 | pub end_cursor: Option,
10 | }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/(logs)/jobs/detail/page.tsx:
--------------------------------------------------------------------------------
1 | import JobRunDetail from '../components/job-detail'
2 |
3 | export default function JobDetailPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/(logs)/jobs/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import JobRunsPage from './components/jobs'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Jobs'
7 | }
8 |
9 | export default function IndexPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/(logs)/layout.tsx:
--------------------------------------------------------------------------------
1 | export default function LogsLayout({
2 | children
3 | }: {
4 | children: React.ReactNode
5 | }) {
6 | return {children}
7 | }
8 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/activities/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Activity from './components/activity'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Activities'
7 | }
8 | export default function Page() {
9 | return
10 | }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/profile/components/email.tsx:
--------------------------------------------------------------------------------
1 | import { noop } from 'lodash-es'
2 |
3 | import { useMe } from '@/lib/hooks/use-me'
4 | import { Input } from '@/components/ui/input'
5 |
6 | export const Email = () => {
7 | const [{ data }] = useMe()
8 |
9 | return (
10 |
11 |
17 |
18 | )
19 | }
20 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/profile/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Profile from './components/profile'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Profile'
7 | }
8 |
9 | export default function Page() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/reports/components/constants.ts:
--------------------------------------------------------------------------------
1 | export const KEY_SELECT_ALL = 'all'
2 | export const DEFAULT_DATE_RANGE = '-14d'
3 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/reports/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import { Report } from './components/report'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Reports'
7 | }
8 |
9 | export default function Page() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/mail/components/header.tsx:
--------------------------------------------------------------------------------
1 | import { SubHeader } from '@/components/sub-header'
2 |
3 | export const MailDeliveryHeader = ({ className }: { className?: string }) => {
4 | return (
5 |
6 | Configuring SMTP information will enable users to receive database reports
7 | via email, such as slow query weekly reports.
8 |
9 | )
10 | }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/mail/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import { Mail } from './components/mail'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Mail Delivery'
7 | }
8 |
9 | export default function MailPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/[kind]/detail/page.tsx:
--------------------------------------------------------------------------------
1 | import ProviderDetail from './components/provider-detail'
2 |
3 | export default function IndexPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/[kind]/detail/query.ts:
--------------------------------------------------------------------------------
1 | import { graphql } from '@/lib/gql/generates'
2 |
3 | export const updateIntegratedRepositoryActiveMutation = graphql(/* GraphQL */ `
4 | mutation UpdateIntegratedRepositoryActive($id: ID!, $active: Boolean!) {
5 | updateIntegratedRepositoryActive(id: $id, active: $active)
6 | }
7 | `)
8 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/[kind]/new/page.tsx:
--------------------------------------------------------------------------------
1 | import { NewProvider } from './components/new-page'
2 |
3 | export default function IndexPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/[kind]/page.tsx:
--------------------------------------------------------------------------------
1 | import RepositoryProvidersPage from './components/provider-list'
2 |
3 | export default function IntegrateGitPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/doc/new/page.tsx:
--------------------------------------------------------------------------------
1 | import CreateCustomDocument from '../components/create-custom-doc'
2 |
3 | export default function CreateCustomDocumentPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/git/new/components/new-page.tsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 |
3 | import { useRouter } from 'next/navigation'
4 |
5 | import RepositoryForm from './create-repository-form'
6 |
7 | export const NewRepository = () => {
8 | const router = useRouter()
9 |
10 | const onCreated = () => {
11 | router.back()
12 | }
13 |
14 | return (
15 | <>
16 |
17 | >
18 | )
19 | }
20 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/git/new/page.tsx:
--------------------------------------------------------------------------------
1 | import { NewRepository } from './components/new-page'
2 |
3 | export default function IndexPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/git/page.tsx:
--------------------------------------------------------------------------------
1 | import Git from './components/git'
2 |
3 | export default function GitTabPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/providers/query.ts:
--------------------------------------------------------------------------------
1 | import { graphql } from '@/lib/gql/generates'
2 |
3 | export const triggerJobRunMutation = graphql(/* GraphQL */ `
4 | mutation triggerJobRun($command: String!) {
5 | triggerJobRun(command: $command)
6 | }
7 | `)
8 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/sso/components/form-sub-title.tsx:
--------------------------------------------------------------------------------
1 | import { cn } from '@/lib/utils'
2 |
3 | export function SubTitle({
4 | className,
5 | ...rest
6 | }: React.HTMLAttributes) {
7 | return
8 | }
9 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/sso/detail/ldap/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import { LdapCredentialDetail } from './components/ldap-credential-detail'
4 |
5 | export default function LDAPCredentialDetailPage() {
6 | return
7 | }
8 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/sso/new/page.tsx:
--------------------------------------------------------------------------------
1 | import { NewPage as NewPageComponent } from './component/new-page'
2 |
3 | const NewPage = () => {
4 | return
5 | }
6 |
7 | export default NewPage
8 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/(integrations)/sso/page.tsx:
--------------------------------------------------------------------------------
1 | import { CredentialList } from './components/credential-list'
2 |
3 | export default function CredentialPage() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/general/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import General from './components/general'
4 |
5 | export const metadata: Metadata = {
6 | title: 'General'
7 | }
8 |
9 | export default function GeneralSettings() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/subscription/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Subscription from './components/subscription'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Subscription'
7 | }
8 |
9 | export default function SubscriptionPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/team/groups/components/types.ts:
--------------------------------------------------------------------------------
1 | import { UserGroupsQuery } from '@/lib/gql/generates/graphql'
2 |
3 | export type MemberShips = UserGroupsQuery['userGroups'][0]['members']
4 | export type MemberShipUser = MemberShips[number]['user']
5 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/team/groups/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import UserGroup from './components/user-group-page'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Groups'
7 | }
8 |
9 | export default function UserGroupPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/team/layout.tsx:
--------------------------------------------------------------------------------
1 | import { TeamNav } from './components/team-nav'
2 |
3 | export default function TeamLayout({
4 | children
5 | }: {
6 | children: React.ReactNode
7 | }) {
8 | return (
9 | <>
10 |
11 | {children}
12 | >
13 | )
14 | }
15 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/settings/team/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Team from './components/team'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Members'
7 | }
8 |
9 | export default function IndexPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/(dashboard)/system/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import ClusterInfo from './components/cluster'
4 |
5 | export const metadata: Metadata = {
6 | title: 'System'
7 | }
8 |
9 | export default function IndexPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/api/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | export const metadata: Metadata = {
4 | title: 'API'
5 | }
6 |
7 | export default function IndexPage() {
8 | return
9 | }
10 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/auth/layout.tsx:
--------------------------------------------------------------------------------
1 | export default function RootLayout({
2 | children
3 | }: {
4 | children: React.ReactNode
5 | }) {
6 | return (
7 |
8 | {children}
9 |
10 | )
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/auth/reset-password/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import ResetPasswordPage from './components/reset-password-page'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Reset password'
7 | }
8 |
9 | export default function Page() {
10 | return (
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/auth/signin/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Signin from './components/signin'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Sign In'
7 | }
8 |
9 | export default function Page() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/auth/signup/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import Signup from './components/signup'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Sign Up'
7 | }
8 |
9 | export default function Page() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/files/components/types.ts:
--------------------------------------------------------------------------------
1 | export type FileDisplayType = 'image' | 'text' | 'raw'
2 | export type RepositoryRefKind = 'branch' | 'tag' | 'commit'
3 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/files/lib/line-menu-extension/line-menu.css:
--------------------------------------------------------------------------------
1 | .cm-selectedLine {
2 | background-color: rgba(255, 0, 0, 0.2);
3 | }
4 |
5 | .cm-selectedLineGutter {
6 | background-color: rgba(255, 0, 0, 0.2);
7 | }
--------------------------------------------------------------------------------
/ee/tabby-ui/app/files/lib/search-match-extension/style.css:
--------------------------------------------------------------------------------
1 | @tailwind utilities;
2 |
3 | @layer utilities {
4 | :root {
5 | --mark-bg: 60 82% 62%;
6 |
7 | }
8 |
9 | .dark {
10 | --mark-bg: 40, 40%, 25%;
11 | }
12 | }
--------------------------------------------------------------------------------
/ee/tabby-ui/app/files/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import { SourceCodeBrowser } from './components/source-code-browser'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Code Browser'
7 | }
8 |
9 | export default function Page() {
10 | return (
11 |
12 |
13 |
14 | )
15 | }
16 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/not-found.tsx:
--------------------------------------------------------------------------------
1 | import NotFoundPage from '@/components/not-found-page'
2 |
3 | export default function NotFound() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/pages/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import { Page as PageComponent } from './components/page-main'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Pages'
7 | }
8 |
9 | export default function Pages() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/search/components/messages-skeleton.tsx:
--------------------------------------------------------------------------------
1 | import { Skeleton } from '@/components/ui/skeleton'
2 |
3 | export function MessagesSkeleton() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/ee/tabby-ui/app/search/page.tsx:
--------------------------------------------------------------------------------
1 | import { Metadata } from 'next'
2 |
3 | import { Search } from './components/search'
4 |
5 | export const metadata: Metadata = {
6 | title: 'Search'
7 | }
8 |
9 | export default function IndexPage() {
10 | return
11 | }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/default-favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/default-favicon.png
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/fonts/Inter-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/fonts/Inter-Bold.woff
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/fonts/Inter-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/fonts/Inter-Regular.woff
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/logo-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/logo-dark.png
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/logo.png
--------------------------------------------------------------------------------
/ee/tabby-ui/assets/tabby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/assets/tabby.png
--------------------------------------------------------------------------------
/ee/tabby-ui/codegen.ts:
--------------------------------------------------------------------------------
1 |
2 | import type { CodegenConfig } from '@graphql-codegen/cli';
3 |
4 | const config: CodegenConfig = {
5 | overwrite: true,
6 | schema: "../tabby-schema/graphql/schema.graphql",
7 | documents: "./**/*.(tsx|ts)",
8 | ignoreNoDocuments: true,
9 | generates: {
10 | "lib/gql/generates/": {
11 | preset: "client",
12 | plugins: []
13 | }
14 | },
15 | hooks: { afterAllFileWrite: ['prettier --write'] }
16 | };
17 |
18 | export default config;
19 |
--------------------------------------------------------------------------------
/ee/tabby-ui/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "default",
4 | "rsc": true,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.js",
8 | "css": "app/globals.css",
9 | "baseColor": "slate",
10 | "cssVariables": true
11 | },
12 | "aliases": {
13 | "components": "@/components",
14 | "utils": "@/lib/utils"
15 | }
16 | }
--------------------------------------------------------------------------------
/ee/tabby-ui/components/chat/prompt-form.css:
--------------------------------------------------------------------------------
1 | .ProseMirror {
2 | &:focus {
3 | outline: none !important;
4 | }
5 |
6 | .ProseMirror-selectednode {
7 | outline: none !important;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/ee/tabby-ui/components/client-only.tsx:
--------------------------------------------------------------------------------
1 | import { useHydrated } from '@/lib/hooks/use-hydration'
2 |
3 | type Props = {
4 | children: React.ReactNode
5 | fallback?: React.ReactNode
6 | }
7 |
8 | export function ClientOnly({ children, fallback = null }: Props) {
9 | return useHydrated() ? <>{children}> : <>{fallback}>
10 | }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/components/message-markdown/style.css:
--------------------------------------------------------------------------------
1 | .message-markdown li > * {
2 | vertical-align: top;
3 | }
4 |
5 | .message-markdown .symbol {
6 | @apply rounded-md font-normal mx-1 px-1;
7 | }
8 |
9 | .message-markdown .symbol::before,
10 | .message-markdown .symbol::after {
11 | content: none;
12 | }
13 |
14 | .source-mention {
15 | @apply inline-flex items-baseline space-x-1;
16 | }
--------------------------------------------------------------------------------
/ee/tabby-ui/components/prompt-editor/styles.css:
--------------------------------------------------------------------------------
1 | .node-mention {
2 | @apply bg-[#e8e1d3] dark:bg-[#333333] rounded-md pb-0.5 pt-0;
3 | }
4 |
5 | /* Message Markdown */
6 | .message-markdown .node-mention {
7 | @apply border border-opacity-30 border-[#b3ada0];
8 | }
9 |
10 | /* Prompt editor */
11 | .tiptap .node-mention {
12 | @apply py-0.5;
13 | }
14 |
15 | .source-mention {
16 | @apply inline-flex items-baseline space-x-1;
17 | }
--------------------------------------------------------------------------------
/ee/tabby-ui/components/prompt-editor/types.ts:
--------------------------------------------------------------------------------
1 | import { ContextSource } from '@/lib/gql/generates/graphql'
2 |
3 | export type SourceOptionItem = {
4 | label: string
5 | id: string
6 | category: 'doc' | 'code'
7 | data: ContextSource
8 | }
9 |
10 | export type OptionItem = SourceOptionItem
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/components/ui/collapsible.tsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 |
3 | import * as CollapsiblePrimitive from '@radix-ui/react-collapsible'
4 |
5 | const Collapsible = CollapsiblePrimitive.Root
6 |
7 | const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger
8 |
9 | const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent
10 |
11 | export { Collapsible, CollapsibleTrigger, CollapsibleContent }
12 |
--------------------------------------------------------------------------------
/ee/tabby-ui/components/ui/skeleton.tsx:
--------------------------------------------------------------------------------
1 | import { cn } from '@/lib/utils'
2 |
3 | function Skeleton({
4 | className,
5 | ...props
6 | }: React.HTMLAttributes) {
7 | return (
8 |
12 | )
13 | }
14 |
15 | export { Skeleton }
16 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/fonts.ts:
--------------------------------------------------------------------------------
1 | import {
2 | JetBrains_Mono as FontMono,
3 | Montserrat as FontMontserrat,
4 | Inter as FontSans
5 | } from 'next/font/google'
6 |
7 | export const fontSans = FontSans({
8 | subsets: ['latin'],
9 | variable: '--font-sans'
10 | })
11 |
12 | export const fontMono = FontMono({
13 | subsets: ['latin'],
14 | variable: '--font-mono'
15 | })
16 |
17 | export const fontMontserrat = FontMontserrat({
18 | subsets: ['latin'],
19 | variable: '--font-montserrat',
20 | weight: '600'
21 | })
22 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/gql/.gitignore:
--------------------------------------------------------------------------------
1 | generates
2 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-current-theme.tsx:
--------------------------------------------------------------------------------
1 | import { useTheme } from 'next-themes'
2 |
3 | export function useCurrentTheme() {
4 | const { theme, systemTheme, setTheme } = useTheme()
5 |
6 | let currentTheme
7 | if (theme && theme !== 'system') {
8 | currentTheme = theme
9 | } else {
10 | currentTheme = systemTheme || 'light'
11 | }
12 |
13 | return {
14 | theme: currentTheme,
15 | setTheme,
16 | systemTheme
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-hydration.ts:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | let hydrating = true
4 |
5 | export function useHydrated() {
6 | let [hydrated, setHydrated] = React.useState(() => !hydrating)
7 |
8 | React.useEffect(function hydrate() {
9 | hydrating = false
10 | setHydrated(true)
11 | }, [])
12 |
13 | return hydrated
14 | }
15 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-latest-release.tsx:
--------------------------------------------------------------------------------
1 | 'use client'
2 |
3 | import { SWRResponse } from 'swr'
4 | import useSWRImmutable from 'swr/immutable'
5 |
6 | export interface ReleaseInfo {
7 | name: string
8 | }
9 |
10 | export function useLatestRelease(): SWRResponse {
11 | const fetcher = (url: string) => fetch(url).then(x => x.json())
12 | return useSWRImmutable(
13 | 'https://api.github.com/repos/TabbyML/tabby/releases/latest',
14 | fetcher
15 | )
16 | }
17 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-latest.ts:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | function useLatest(value: T) {
4 | const ref = React.useRef(value)
5 | ref.current = value
6 |
7 | return ref
8 | }
9 |
10 | export { useLatest }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-me.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from 'urql'
2 |
3 | import { graphql } from '@/lib/gql/generates'
4 |
5 | const meQuery = graphql(/* GraphQL */ `
6 | query MeQuery {
7 | me {
8 | id
9 | email
10 | name
11 | isAdmin
12 | isOwner
13 | authToken
14 | isPasswordSet
15 | isSsoUser
16 | }
17 | }
18 | `)
19 |
20 | const useMe = () => {
21 | return useQuery({ query: meQuery })
22 | }
23 |
24 | export { useMe }
25 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/hooks/use-unmount.ts:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | import { useLatest } from './use-latest'
4 |
5 | const useUnmount = (fn: () => void) => {
6 | const fnRef = useLatest(fn)
7 |
8 | React.useEffect(
9 | () => () => {
10 | fnRef.current()
11 | },
12 | []
13 | )
14 | }
15 |
16 | export { useUnmount }
17 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/stores/utils.ts:
--------------------------------------------------------------------------------
1 | import { Chat } from '@/lib/types'
2 |
3 | export const getChatById = (
4 | chats: Chat[] | undefined,
5 | chatId: string | undefined
6 | ): Chat | undefined => {
7 | if (!Array.isArray(chats) || !chatId) return undefined
8 | return chats.find(c => c.id === chatId)
9 | }
10 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/types/common.ts:
--------------------------------------------------------------------------------
1 | import { GraphQLError } from 'graphql'
2 | import { CombinedError } from 'urql'
3 |
4 | export type ServerActionResult = Promise<
5 | | Result
6 | | {
7 | error: string
8 | }
9 | >
10 |
11 | // get element type from array type
12 | export type ArrayElementType = T extends Array ? T : never
13 |
14 | export interface ExtendedCombinedError
15 | extends Omit {
16 | graphQLErrors?: GraphQLError[]
17 | }
18 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './common'
2 | export * from './chat'
3 | export * from './repositories'
4 | export * from './sso'
5 |
6 | declare global {
7 | interface Window {
8 | _originFetch?: Window['fetch'] | undefined
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ee/tabby-ui/lib/types/sso.ts:
--------------------------------------------------------------------------------
1 | export type SSOType = 'oauth' | 'ldap'
2 |
--------------------------------------------------------------------------------
/ee/tabby-ui/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/ee/tabby-ui/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | module.exports = {
3 | reactStrictMode: true,
4 | output: "export",
5 | images: {
6 | unoptimized: true
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/ee/tabby-ui/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/ee/tabby-ui/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-ui/public/favicon.ico
--------------------------------------------------------------------------------
/ee/tabby-webserver/keys/.gitignore:
--------------------------------------------------------------------------------
1 | license.key
2 |
--------------------------------------------------------------------------------
/ee/tabby-webserver/src/service/background_job/helper/mod.rs:
--------------------------------------------------------------------------------
1 | mod cron;
2 | mod logger;
3 |
4 | pub use cron::CronStream;
5 | pub use logger::JobLogger;
6 |
7 | pub trait Job {
8 | const NAME: &'static str;
9 | }
10 |
--------------------------------------------------------------------------------
/ee/tabby-webserver/src/service/retrieval/testutils.rs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/src/service/retrieval/testutils.rs
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/6THjZwODOtNUmFQ4Gzp5t/_buildManifest.js:
--------------------------------------------------------------------------------
1 | self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/_error":["static/chunks/pages/_error-e9871f0a501df54a.js"],sortedPages:["/_app","/_error"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/6THjZwODOtNUmFQ4Gzp5t/_ssgManifest.js:
--------------------------------------------------------------------------------
1 | self.__SSG_MANIFEST=new Set(["\u002Fsettings\u002Fproviders\u002F[kind]","\u002Fsettings\u002Fproviders\u002F[kind]\u002Fdetail","\u002Fsettings\u002Fproviders\u002F[kind]\u002Fnew","\u002Fsettings\u002Fsso\u002Fdetail\u002F[oauth-provider]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/(dashboard)/(logs)/layout-d1f15da5bee43367.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6845,7110,4738],{22819:function(){}},function(n){n.O(0,[3375,5289,1744],function(){return n(n.s=22819)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/(dashboard)/settings/(integrations)/providers/[kind]/layout-9688fa1599db2b7b.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2219,7915],{77564:function(e,n,s){Promise.resolve().then(s.bind(s,81565)),Promise.resolve().then(s.t.bind(s,54007,23))}},function(e){e.O(0,[7565,8415,4691,436,4007,3492,1565,3375,5289,1744],function(){return e(e.s=77564)}),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/(dashboard)/settings/(integrations)/providers/git/layout-4f6c4896a9b7682c.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7915,2219],{77564:function(e,n,s){Promise.resolve().then(s.bind(s,81565)),Promise.resolve().then(s.t.bind(s,54007,23))}},function(e){e.O(0,[7565,8415,4691,436,4007,3492,1565,3375,5289,1744],function(){return e(e.s=77564)}),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/(dashboard)/settings/(integrations)/sso/layout-98376daac2e91693.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5174],{65940:function(n,e,u){Promise.resolve().then(u.bind(u,81565))}},function(n){n.O(0,[7565,8415,4691,436,3492,1565,3375,5289,1744],function(){return n(n.s=65940)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/api/page-95ba40586a9993a3.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7110,4738,6845],{22819:function(){}},function(n){n.O(0,[3375,5289,1744],function(){return n(n.s=22819)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/app/auth/layout-3980bdd380a2cd2a.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4738,7110,6845],{22819:function(){}},function(n){n.O(0,[3375,5289,1744],function(){return n(n.s=22819)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/main-app-bf380fe6274af3be.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1744],{10643:function(e,n,t){Promise.resolve().then(t.t.bind(t,29861,23)),Promise.resolve().then(t.t.bind(t,12864,23)),Promise.resolve().then(t.t.bind(t,32892,23)),Promise.resolve().then(t.t.bind(t,76073,23)),Promise.resolve().then(t.t.bind(t,95814,23)),Promise.resolve().then(t.t.bind(t,96288,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[3375,5289],function(){return n(16158),n(10643)}),_N_E=e.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/pages/_app-6f18eea95a933635.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2888],{10238:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return u(47223)}])}},function(n){var _=function(_){return n(n.s=_)};n.O(0,[9774,179],function(){return _(10238),_(1067)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/chunks/pages/_error-e9871f0a501df54a.js:
--------------------------------------------------------------------------------
1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4820],{20079:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return u(87805)}])}},function(n){n.O(0,[2888,9774,179],function(){return n(n.s=20079)}),_N_E=n.O()}]);
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/css/a672f7c938d6675d.css:
--------------------------------------------------------------------------------
1 | .cm-selectedLine,.cm-selectedLineGutter{background-color:rgba(255,0,0,.2)}
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/055106fdf8549d7a-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/055106fdf8549d7a-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/0aa834ed78bf6d07-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/0aa834ed78bf6d07-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/26a46d62cd723877-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/26a46d62cd723877-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/33f26bc6e74df765-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/33f26bc6e74df765-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/55c55f0601d81cf3-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/55c55f0601d81cf3-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/581909926a08bbc8-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/581909926a08bbc8-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/6406d8793413ef02-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/6406d8793413ef02-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/67957d42bae0796d-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/67957d42bae0796d-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/6d93bde91c0c2823-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/6d93bde91c0c2823-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/886030b0b59bc5a7-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/886030b0b59bc5a7-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/939c4f875ee75fbb-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/939c4f875ee75fbb-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/97e0cb1ae144a2a9-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/97e0cb1ae144a2a9-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/a34f9d1faa5f3315-s.p.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/a34f9d1faa5f3315-s.p.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/ac2397f7be75f086-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/ac2397f7be75f086-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/bb3ef058b751a6ad-s.p.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/bb3ef058b751a6ad-s.p.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/default-favicon.a2df8fbb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/default-favicon.a2df8fbb.png
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/df0a9ae256c0569c-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/df0a9ae256c0569c-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/f75d6d02e2924b13-s.p.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/f75d6d02e2924b13-s.p.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/f911b923c6adde36-s.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/f911b923c6adde36-s.woff2
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/logo-dark.362a169d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/logo-dark.362a169d.png
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/logo.526f7cf9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/logo.526f7cf9.png
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/_next/static/media/tabby.16ac81a9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/_next/static/media/tabby.16ac81a9.png
--------------------------------------------------------------------------------
/ee/tabby-webserver/ui/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/ee/tabby-webserver/ui/favicon.ico
--------------------------------------------------------------------------------
/experimental/copy-to-modelscope/.gitignore:
--------------------------------------------------------------------------------
1 | hf_model
2 | ms_model
3 |
--------------------------------------------------------------------------------
/experimental/copy-to-modelscope/README.md:
--------------------------------------------------------------------------------
1 | # copy-to-modelscope
2 |
3 | Scripts to copy huggingface model to modelscope
4 |
--------------------------------------------------------------------------------
/experimental/copy-to-modelscope/sync.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -ex
4 |
5 |
6 | MODELS=$(cat < /tmp/openapi.json
10 |
11 | openapi-python-client generate \
12 | --path /tmp/openapi.json \
13 | --config ./python.yaml \
14 | --meta setup
15 |
--------------------------------------------------------------------------------
/experimental/eval/python.yaml:
--------------------------------------------------------------------------------
1 | project_name_override: tabby-python-client
2 | package_name_override: tabby_python_client
3 |
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__/
2 | build/
3 | dist/
4 | *.egg-info/
5 | .pytest_cache/
6 |
7 | # pyenv
8 | .python-version
9 |
10 | # Environments
11 | .env
12 | .venv
13 |
14 | # mypy
15 | .mypy_cache/
16 | .dmypy.json
17 | dmypy.json
18 |
19 | # JetBrains
20 | .idea/
21 |
22 | /coverage.xml
23 | /.coverage
24 |
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.black]
2 | line-length = 120
3 | target_version = ['py38', 'py39', 'py310', 'py311']
4 | exclude = '''
5 | (
6 | /(
7 | | \.git
8 | | \.venv
9 | | \.mypy_cache
10 | )/
11 | )
12 | '''
13 |
14 | [tool.isort]
15 | line_length = 120
16 | profile = "black"
17 |
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/tabby_python_client/__init__.py:
--------------------------------------------------------------------------------
1 | """ A client library for accessing Tabby Server """
2 | from .client import AuthenticatedClient, Client
3 |
4 | __all__ = (
5 | "AuthenticatedClient",
6 | "Client",
7 | )
8 |
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/tabby_python_client/api/__init__.py:
--------------------------------------------------------------------------------
1 | """ Contains methods for accessing the API """
2 |
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/tabby_python_client/api/v1/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/experimental/eval/tabby-python-client/tabby_python_client/api/v1/__init__.py
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/tabby_python_client/api/v1beta/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/experimental/eval/tabby-python-client/tabby_python_client/api/v1beta/__init__.py
--------------------------------------------------------------------------------
/experimental/eval/tabby-python-client/tabby_python_client/py.typed:
--------------------------------------------------------------------------------
1 | # Marker file for PEP 561
--------------------------------------------------------------------------------
/experimental/openapi/python.yaml:
--------------------------------------------------------------------------------
1 | project_name_override: tabby-python-client
2 | package_name_override: tabby_client
3 |
--------------------------------------------------------------------------------
/experimental/prompt-rewrite-eval/eval.toml:
--------------------------------------------------------------------------------
1 |
2 | # Tabby config
3 | tabby_path = "/home/jiachen/workspace/tabbyml/tabby/target/debug/tabby"
4 |
5 | # Indexing / prompt rewriting config
6 | index_repo_url = "https://github.com/huggingface/transformers"
7 | sample_repo_url = "https://github.com/huggingface/transformers"
8 | language = "python"
9 | prompt_count = 10
--------------------------------------------------------------------------------
/experimental/prompt-rewrite-eval/requirements.txt:
--------------------------------------------------------------------------------
1 | requests
2 | streamlit
3 | jsonlines
--------------------------------------------------------------------------------
/experimental/scheduler/search.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import streamlit as st
3 | from typing import NamedTuple
4 |
5 | # force wide mode
6 | st.set_page_config(layout="wide")
7 |
8 | query = st.text_input("Query")
9 |
10 | if query:
11 | r = requests.get("http://localhost:8080/v1beta/search", params=dict(q=query))
12 | hits = r.json()["hits"]
13 | for x in hits:
14 | st.write(x)
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "build": "turbo build",
5 | "vscode:dev": "turbo vscode:dev",
6 | "lint": "turbo lint",
7 | "lint:fix": "turbo lint:fix",
8 | "test": "turbo test"
9 | },
10 | "engines": {
11 | "node": ">=18",
12 | "pnpm": ">=9"
13 | },
14 | "devDependencies": {
15 | "turbo": "^1.13.3"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - clients/*
3 | - ee/tabby-ui
4 | - ee/tabby-email
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__/
2 | build/
3 | dist/
4 | *.egg-info/
5 | .pytest_cache/
6 |
7 | # pyenv
8 | .python-version
9 |
10 | # Environments
11 | .env
12 | .venv
13 |
14 | # mypy
15 | .mypy_cache/
16 | .dmypy.json
17 | dmypy.json
18 |
19 | # JetBrains
20 | .idea/
21 |
22 | /coverage.xml
23 | /.coverage
24 |
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/pyproject.toml:
--------------------------------------------------------------------------------
1 | [tool.black]
2 | line-length = 120
3 | target_version = ['py38', 'py39', 'py310', 'py311']
4 | exclude = '''
5 | (
6 | /(
7 | | \.git
8 | | \.venv
9 | | \.mypy_cache
10 | )/
11 | )
12 | '''
13 |
14 | [tool.isort]
15 | line_length = 120
16 | profile = "black"
17 |
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/tabby_python_client/__init__.py:
--------------------------------------------------------------------------------
1 | """ A client library for accessing Tabby Server """
2 | from .client import AuthenticatedClient, Client
3 |
4 | __all__ = (
5 | "AuthenticatedClient",
6 | "Client",
7 | )
8 |
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/tabby_python_client/api/__init__.py:
--------------------------------------------------------------------------------
1 | """ Contains methods for accessing the API """
2 |
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/tabby_python_client/api/v1/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/python/tabby-eval/modal/tabby_python_client/tabby_python_client/api/v1/__init__.py
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/tabby_python_client/api/v1beta/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/python/tabby-eval/modal/tabby_python_client/tabby_python_client/api/v1beta/__init__.py
--------------------------------------------------------------------------------
/python/tabby-eval/modal/tabby_python_client/tabby_python_client/py.typed:
--------------------------------------------------------------------------------
1 | # Marker file for PEP 561
--------------------------------------------------------------------------------
/python/tabby-loadtest/README.md:
--------------------------------------------------------------------------------
1 | # Run loadtest with tabby on modal GPUs
2 |
3 | Steps:
4 | 1. Adjust `TABBY_API_HOST` in `run.sh` to match your modal deployment url.
5 | 2. Add models you're interested in to benchmark at end of `run.sh`
6 | 3. Run `run.sh`, output will be appended to `record.csv`
--------------------------------------------------------------------------------
/rules/do-not-use-logkit-crate.yml:
--------------------------------------------------------------------------------
1 | id: do-not-use-logkit-crate
2 | message: Don't use logkit crate with use statement to avoid conflicts with the tracing crate. logkit crate is only used for background job logging to enrich the jobs output in admin UI.
3 | severity: error
4 | language: rust
5 | files:
6 | - ./**
7 | rule:
8 | pattern: use logkit::$$$;
--------------------------------------------------------------------------------
/rules/do-not-use-next-pages.yml:
--------------------------------------------------------------------------------
1 | id: do-not-use-next-pages
2 | message: Don't use next pages routing as we're fully commited to app router.
3 | severity: error
4 | language: typescript
5 | files:
6 | - ./ee/tabby-ui/**
7 | rule:
8 | pattern: import $$$ from 'next/router'
--------------------------------------------------------------------------------
/rules/only-dao-and-policy-can-depend-tabby-db.yml:
--------------------------------------------------------------------------------
1 | id: only-dao-can-depend-tabby-db
2 | message: Only dao can depend on tabby-db
3 | severity: error
4 | language: rust
5 | files:
6 | - ./ee/tabby-schema/src/**
7 | ignores:
8 | - ./ee/tabby-schema/src/dao.rs
9 | - ./ee/tabby-schema/src/policy.rs
10 | rule:
11 | pattern: tabby_db
12 |
--------------------------------------------------------------------------------
/rules/use-basic-job.yml:
--------------------------------------------------------------------------------
1 | id: use-basic-job
2 | message: Use BasicJob / CronJob for worker creation.
3 | severity: error
4 | language: rust
5 | files:
6 | - ./ee/tabby-webserver/src/service/background_job/**
7 | ignores:
8 | - ./ee/tabby-webserver/src/service/background_job/helper/mod.rs
9 | rule:
10 | pattern: WorkerBuilder
--------------------------------------------------------------------------------
/rules/use-schema-result.yml:
--------------------------------------------------------------------------------
1 | id: use-schema-result
2 | message: Use schema::Result as API interface
3 | severity: error
4 | language: rust
5 | files:
6 | - ./ee/tabby-schema/src/**
7 | ignores:
8 | - ./ee/tabby-schema/src/lib.rs
9 | - ./ee/tabby-schema/src/dao.rs
10 | rule:
11 | any:
12 | - pattern: anyhow
13 | not:
14 | inside:
15 | kind: enum_variant
16 | stopBy: end
17 | - pattern: FieldResult
--------------------------------------------------------------------------------
/sgconfig.yml:
--------------------------------------------------------------------------------
1 | ruleDirs:
2 | - rules
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "pipeline": {
4 | "build": {
5 | "dependsOn": [
6 | "^build"
7 | ],
8 | "outputs": [
9 | "out/**",
10 | "dist/**",
11 | ".next/**",
12 | "!.next/cache/**"
13 | ]
14 | },
15 | "lint": {},
16 | "lint:fix": {},
17 | "test": {},
18 | "vscode:dev": {}
19 | }
20 | }
--------------------------------------------------------------------------------
/website/.gitattributes:
--------------------------------------------------------------------------------
1 | static/img/demo.gif filter=lfs diff=lfs merge=lfs -text
2 | static/img/logo.png filter=lfs diff=lfs merge=lfs -text
3 | *.png filter=lfs diff=lfs merge=lfs -text
4 |
--------------------------------------------------------------------------------
/website/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | /node_modules
3 |
4 | # Production
5 | /build
6 |
7 | # Generated files
8 | .docusaurus
9 | .cache-loader
10 |
11 | # Misc
12 | .DS_Store
13 | .env.local
14 | .env.development.local
15 | .env.test.local
16 | .env.production.local
17 |
18 | npm-debug.log*
19 | yarn-debug.log*
20 | yarn-error.log*
21 |
--------------------------------------------------------------------------------
/website/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
3 | };
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/building.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:217e1f88ad89dac43702ba47b8f03b839688c91fbd0bc615e1ead1136929eb85
3 | size 77144
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/curl.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9014397eaaab01428d31f5bed1fbf80dcd057ace1eaaba80b1a79b318bfada7d
3 | size 145521
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/docker-space.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:aed68833581d2425934d298c16bbc40751620193ea3cc74b587a7a29bde8f32a
3 | size 110795
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/edit-dockerfile.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:202ea4cc78210bcde878308df7622674ef9b4ba0dd00973c2f4d0d9580b020a9
3 | size 106356
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/edit-readme.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c2cd3157c810b6a2413fc57827b764a3b565c6587fcf5f6e197eaefb47290ebb
3 | size 91288
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/empty-readme.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c676a5b0066e188f76e653045b38c23c232f1065a530f7829a4967c712fb9a11
3 | size 82266
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/empty-space.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:18f304df8674f47d2b5030425865c8dcbf4af6f244e530affe5a73c12d7a526e
3 | size 71983
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/new-space.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3c8fee47db1016a16d5bfb8d6774de41ee203a0404a7f177158d14214ebc77f7
3 | size 187987
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-05-deploy-tabby-to-huggingface-space/tabby-swagger.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e306595b3c072ad69fbc3908895fd2ad1d2e0d0beaa92ae26593def810b42f74
3 | size 74581
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-18-release-0-1-1-metal/staring-tabby-on-llama-cpp.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6353801e36b9a36aa37936aef0b92f7105d837764f05b93ff8aea8bbb3ce9715
3 | size 518921
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-18-release-0-1-1-metal/twitter-img.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/blog/2023-09-18-release-0-1-1-metal/twitter-img.jpg
--------------------------------------------------------------------------------
/website/blog/2023-09-30-stream-laziness-in-tabby/cancellation.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:93f559473aa7d0e2da81d2fb2fe2a733549a2b83cc84da8c95d92d0bc4d2e8b5
3 | size 130476
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-30-stream-laziness-in-tabby/intro.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4113704a91e8355fb14ff43c0b26fb3fd926168dbc0eacca008f5b8657e1cb8e
3 | size 111767
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-30-stream-laziness-in-tabby/stream-flush.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:905ca358ae3198ccd587d7a837cc82fcbfad30c7c5b6115248a41ed9ae5468b8
3 | size 107185
4 |
--------------------------------------------------------------------------------
/website/blog/2023-09-30-stream-laziness-in-tabby/stream.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:74734640c70fb1ebbfe6baa9a3ff8f8ef257577766d98df6bbdb066e44a9a17d
3 | size 104103
4 |
--------------------------------------------------------------------------------
/website/blog/2023-10-16-repository-context-for-code-completion/whiteboard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/blog/2023-10-16-repository-context-for-code-completion/whiteboard.jpg
--------------------------------------------------------------------------------
/website/blog/2023-10-21-incremental-decoding/beam.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f8f7d8de1a5d8e3e7de3c965dad5b8237c1991e58213b3b073055c05b468dcb8
3 | size 125118
4 |
--------------------------------------------------------------------------------
/website/blog/2023-10-21-incremental-decoding/greedy.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d2aa5f9c1bc7fc4dfc3b413e6aea5068cbb212f5678c09787b1b011512e7337b
3 | size 127018
4 |
--------------------------------------------------------------------------------
/website/blog/2023-10-21-incremental-decoding/probability.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6727b8e562eb613f06e20f8f88bc329cc1e155186c4c323975e0faa6a882823f
3 | size 82446
4 |
--------------------------------------------------------------------------------
/website/blog/2023-10-21-incremental-decoding/twitter-decoding.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:865d6f56fbe264ca3f20882c31103a3c974d5c2ac4bb58267ccfc41ba15b302c
3 | size 1237528
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-13-model-evaluation/cceval.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e7306bd77e34135d6a7bb8ae3b433836b9feac9f3972496321e4bb79f025409b
3 | size 747981
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-13-model-evaluation/human-eval-plus.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d6ec700847f8b342df131d77241b1d2abb3a6fd32a439fcf20ec3030953a33b8
3 | size 105866
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-13-model-evaluation/repobench.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5135725cf366ca5f25674ed97bf455d57e35d376d2cb747b2cee3ac69e8ee63c
3 | size 342050
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-13-model-evaluation/repocoder.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d1e5e280f492b5360e90ed907410cbfa9d4094e51c81b5ab4b1714dad2d5bd7c
3 | size 93348
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-13-model-evaluation/twitter-eval.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:627fca67566917f4bec563605173952918aec30c4b3167cb5cdee68db6d555cb
3 | size 509583
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-23-coding-llm-leaderboard/leaderboard.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7ff5a75e64d713c5469cdbec6cfdb147168767035b6ea55c1532aaa1439cd8b7
3 | size 172531
4 |
--------------------------------------------------------------------------------
/website/blog/2023-11-23-coding-llm-leaderboard/next-line-accuracy.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:05ab20c5d56e79bf326583dd38de82fc1692a8bcbbdae2f8f9e3f3b586bbc971
3 | size 88348
4 |
--------------------------------------------------------------------------------
/website/blog/2024-01-24-running-tabby-locally-with-rocm/chat-session.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7d12bd45beaacab1c8ec3267472d1d195811e6b0ee507f81ae5da3ca79a95719
3 | size 60514
4 |
--------------------------------------------------------------------------------
/website/blog/2024-01-24-running-tabby-locally-with-rocm/rocm-packages.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e98cdf3dc2006562aeca70348b12b701d36d87209249d4378117f75808c153dc
3 | size 20019
4 |
--------------------------------------------------------------------------------
/website/blog/2024-01-24-running-tabby-locally-with-rocm/tabby-rocm-docker.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:08b6cb60d4992266a26156545dc20fdef05bdb190c167702057e7c9341396bdf
3 | size 78331
4 |
--------------------------------------------------------------------------------
/website/blog/2024-01-24-running-tabby-locally-with-rocm/tabby-running.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c91219f58b6b6b154c971535e1e2341b6598c4a524fc59301f136d24f1952166
3 | size 59278
4 |
--------------------------------------------------------------------------------
/website/blog/2024-01-24-running-tabby-locally-with-rocm/using-completions.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bc235b3021d14c2124d3a7331118dcff419dc351254168f8b5b87290c6da1b03
3 | size 15695
4 |
--------------------------------------------------------------------------------
/website/blog/2024-02-05-create-tabby-extension-with-language-server-protocol/coc-tabby-completion.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f6e69e961ee0cd8f8b79265e6bcf37944acc7e80b6105098a4905725ab66ac46
3 | size 102790
4 |
--------------------------------------------------------------------------------
/website/blog/2024-02-05-create-tabby-extension-with-language-server-protocol/npx-run-tabby-agent.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/blog/2024-02-05-create-tabby-extension-with-language-server-protocol/npx-run-tabby-agent.gif
--------------------------------------------------------------------------------
/website/blog/2024-02-05-create-tabby-extension-with-language-server-protocol/tabby-agent-lsp.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:25dee621e1830ba3d1505584666ab2c897932de29a790b831e8929363df5b0c1
3 | size 157054
4 |
--------------------------------------------------------------------------------
/website/blog/2024-02-05-create-tabby-extension-with-language-server-protocol/tabby-agent.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f48c62977b81503c25fac0498820a143ccf08ad57f909d445530941e244b2511
3 | size 139107
4 |
--------------------------------------------------------------------------------
/website/blog/2024-03-25-deploy-tabby-in-air-gapped-environment-with-docker/cli-output.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:245f523814627d4265aa58c484b5b700f279ec209b51ebb52490711444655157
3 | size 97443
4 |
--------------------------------------------------------------------------------
/website/blog/2024-03-25-deploy-tabby-in-air-gapped-environment-with-docker/no-internet.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1175d1728a20f363218876c33b23370040e3deddb747892c87571c3aaef73942
3 | size 134732
4 |
--------------------------------------------------------------------------------
/website/blog/2024-03-26-tabby-with-replicas-behind-reverse-proxy/Caddyfile:
--------------------------------------------------------------------------------
1 | http://*:8080 {
2 | handle_path /* {
3 | reverse_proxy worker-0:8080 worker-1:8080
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/website/blog/2024-04-08-connect-private-github-repository-to-tabby/code-search-preview.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0dbe8e47fbc4ef0e96d2cd6144c6d3038668b8d40410997547d678f7170c9324
3 | size 367526
4 |
--------------------------------------------------------------------------------
/website/blog/2024-04-08-connect-private-github-repository-to-tabby/github-pat-contents-access.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6c82c756b5604523cc8af5a312f4543721029b0c081cf095c05648eca4d388df
3 | size 95729
4 |
--------------------------------------------------------------------------------
/website/blog/2024-04-08-connect-private-github-repository-to-tabby/github-pat-filling-info.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:37e49d2adaa48cf10f783a9d01ca4138c5cc31d76f3a6a3e046d7f07c358d6aa
3 | size 222024
4 |
--------------------------------------------------------------------------------
/website/blog/2024-04-08-connect-private-github-repository-to-tabby/github-pat-generate-new-token.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:34e78a3c3f07e04444f4603e9be7fa2af6dcecd90cba41fe7b5f2783e859a7b9
3 | size 132068
4 |
--------------------------------------------------------------------------------
/website/blog/2024-04-08-connect-private-github-repository-to-tabby/github-pat-generate-token.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7cf8ef5342c5c3242f205af858b1fe47d5a362bf3b10e01a7a81bc13d46f5ec3
3 | size 50474
4 |
--------------------------------------------------------------------------------
/website/blog/2024-05-01-vulkan-support/completion.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4aa971d90eca2da311b6f07d59130c2969790999e2ff1023d481df4aeece19d4
3 | size 6127
4 |
--------------------------------------------------------------------------------
/website/blog/2024-05-01-vulkan-support/vulkan-installed-on-arch.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b3eba27c4b08d17a753e71d9ed08dc59fb2460db5a54fc759a95b91da7618c30
3 | size 16694
4 |
--------------------------------------------------------------------------------
/website/blog/2024-05-01-vulkan-support/vulkan-running.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0ed0a074e8cb4ea35a8f3174257527c46fdbdbd6f64ac912ff71102e36e1a46c
3 | size 46399
4 |
--------------------------------------------------------------------------------
/website/blog/2024-06-11-rank-fusion-in-tabby-code-completion/repository-context-triggered.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7953d75736098fd36d919a8cc159634d1bdebde0f1df5910a78fadf7bcba536d
3 | size 341126
4 |
--------------------------------------------------------------------------------
/website/blog/2024-07-09-tabby-codestral/codestral_api.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/blog/2024-07-09-tabby-codestral/codestral_api.jpeg
--------------------------------------------------------------------------------
/website/blog/2024-07-09-tabby-codestral/tabby-mistral.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d42ef7186b71170574063bc6ae6e2b0dca4441775d7e17e2c99425f654d4ce6c
3 | size 115653
4 |
--------------------------------------------------------------------------------
/website/blog/2024-07-09-tabby-codestral/tabby_codestral.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/blog/2024-07-09-tabby-codestral/tabby_codestral.mp4
--------------------------------------------------------------------------------
/website/docs/administration/_category_.yml:
--------------------------------------------------------------------------------
1 | label: 🔧 Administration
2 | position: 3
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/answer_engine.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e1525bb438dac9c63858125479dc10fffb4094d5d25d8c6dbd02f5f040f11ccc
3 | size 19766
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/doc_thinking_process.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:656575e3345727f98c77cf38c5588906936c4cd0743a4b6c855d03bd41593ab8
3 | size 28082
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/mention_documentation.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4fdb7cc53ac9f6e3ee3df701602b45101c3cf74689cdec22c9e0b39d3cd4c8a0
3 | size 11069
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/recent_activities.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c1741fbd5aaf3b6c2ac24e2cfb666aa0b64188973e7ee1d4d877f4deca1183c1
3 | size 49202
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/repository_select.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e5956cbf41c77379c1b972345bcc30d360a2f8262293e8dc04ab25a28c1b1737
3 | size 33854
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/repository_thinking_process.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:831dc1883d8bdf5dbd9f99d007cc256cab2099ad36742d0f2a2c0e5f7962bf44
3 | size 78315
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/share_link_button.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b641135f1335a4778a1a9d7cdef58491458e4e9bb6ece7b5ddab41217826e47d
3 | size 12283
4 |
--------------------------------------------------------------------------------
/website/docs/administration/answer-engine/web_search.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:87fa5a3da8872e8612f15958e7dc71f45e27545bfae03322da8549ad0cace169
3 | size 9553
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/code-browser-entry.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3b818e9bc47303fa4480a49ec17c3e8620518d42c77653174078f446acf49968
3 | size 66254
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/code-browser.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:420930c90b6b097764546e450d68a979554dd97ff6b98c4f49cf22db8f0228d7
3 | size 32531
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/context-providers.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:776646b8e10a037694d98874c6c5b6ff5694bb8279269f4577b843a9e64a0317
3 | size 124346
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/document.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5d310f737df3a0a4cea1f6101403fdcb3264e97efa41b5c0d335fb85f8c10a8a
3 | size 161051
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/git.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3be9f784c3c4623e31ebc484167f201dfa8c9d799149e65cd4f349a7206c7c74
3 | size 51224
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/github-gitlab.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b32ed29098bd1b32eb344171bbecdd16b64f2e11dee1d9fe91ba6408be6d1861
3 | size 96683
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/repository-job-run.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b3f875e5ea0cd6f106b5daf82588599fc2d1f4c8046e83334b1eac84e3ce7ef7
3 | size 349888
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/repository-job.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d9abbbf665796a3a0fa27c94f48c7db1cbe23ed7acaded066308a5624ecc37e6
3 | size 139170
4 |
--------------------------------------------------------------------------------
/website/docs/administration/context/select-repo.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2a311148ec1665178cc4402c65eb9bb1b90059d98426c1fd9f18df31146d587f
3 | size 129092
4 |
--------------------------------------------------------------------------------
/website/docs/administration/general-settings/sign-in.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0929f5637841ade117b49bfaf7fb82fd1b41e9df9bf0cc81157705fc489532b5
3 | size 30282
4 |
--------------------------------------------------------------------------------
/website/docs/administration/index-custom-document/ingestion-status.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7dd069a68f217ba1380e282824b13c62e9cf547b057ec9acdc22ca7eeb858777
3 | size 403278
4 |
--------------------------------------------------------------------------------
/website/docs/administration/index-custom-document/registration-token.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:48058464210b6e2b5903dccc4c693b5d4c9cc1b9d64657e90bfc86af412193e3
3 | size 275536
4 |
--------------------------------------------------------------------------------
/website/docs/administration/license/reset.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d00a512d313813873b1e2832c13b5e09deda75c5f01251effd28021177efe78f
3 | size 364167
4 |
--------------------------------------------------------------------------------
/website/docs/administration/license/subscription.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d80e22d170a26cf789e350504f01171e6294216e537c2f66d3e041544827b103
3 | size 357110
4 |
--------------------------------------------------------------------------------
/website/docs/administration/model/model_card.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:cfa2515fb2044bbe6c5fdf5cdaabfe749e90e438b7a3a851ea35705a9d73a192
3 | size 14248
4 |
--------------------------------------------------------------------------------
/website/docs/administration/smtp/ses.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e9843d334fba885d30db0832073ba8cc02efa720b6efda92c43697555197472c
3 | size 403291
4 |
--------------------------------------------------------------------------------
/website/docs/administration/smtp/test-email.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c9113779ec1c3b64804a362763e85c51986d1eb552b5f579da2fb87126a3549a
3 | size 46888
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/integrations_sso.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:aec0e0eb129d5b1f3c7358a5ea22dcd7d0d9ac4ebff8dcc100256b982671e5ed
3 | size 102573
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/ldap/configuration.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d595ed144acd5ddd0218bbd2b3caef8676131dfc2d64f75aa7f8038dde6cc318
3 | size 393435
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/ldap/ldap-signin.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4ddedddf34cec8ccbe2ff8da5e485e77c25c506dfac4de44d6d1e49373cbe925
3 | size 218000
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/ldap/ldap-user.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a0b334e906d097accb15cc00aac76a924a7986d78123cf1884e4e8f476ced6c4
3 | size 210542
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/ldap/ldap-with-oauth.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6202c5e6c8c9654fcc60cc6e33e21d38bec0542021ca1ac4d8cc456fdf032eea
3 | size 618985
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/sso_create.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c8ebdd4bc7dda4c73224ad3fb98c06ecfbec33ed2100b79c7c3044aa41703dee
3 | size 171127
4 |
--------------------------------------------------------------------------------
/website/docs/administration/sso/sso_signin.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:10e9adbf1e97719ca5c0bf38864d2599410285f84668f1e6b660ad5aa213cc51
3 | size 37308
4 |
--------------------------------------------------------------------------------
/website/docs/administration/usage-analytics/activity_chart.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:18ffe3b3f4515eb21c9bc5f2dca82120f116117bbd19408b1841dfbd998a167b
3 | size 28756
4 |
--------------------------------------------------------------------------------
/website/docs/administration/usage-analytics/chat_section.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d9f616ad2e8b076511b1fe59a0c84c3cd76a7a019e358fe73bf0e3b62c2831f3
3 | size 17960
4 |
--------------------------------------------------------------------------------
/website/docs/administration/usage-analytics/code_completions_section.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e6935f37136aad6aa8394f96b3229602502efd7e52a6c55dbce9ce8b0d2bef72
3 | size 27328
4 |
--------------------------------------------------------------------------------
/website/docs/administration/user/access_control.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a84c8f51026ab18a4e4aaff29d456ba7043a97e9c1289e4f893a7dcf6736de07
3 | size 25657
4 |
--------------------------------------------------------------------------------
/website/docs/administration/user/groups.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:35e7790ace46cc5225b3608a2141497b8b98c8b22913c6ea566485cc963ffa17
3 | size 24414
4 |
--------------------------------------------------------------------------------
/website/docs/administration/user/invite_link.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:081dacf445bc1d2ea628a9e49e54a8c6afe659a324f57bc67a32a3366956bc6f
3 | size 7581
4 |
--------------------------------------------------------------------------------
/website/docs/administration/user/invite_member.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f5f93e6942c4de2bb3e4159d0c62ead6b9dc52b45fef28fd0c5c4b0875b47a74
3 | size 12618
4 |
--------------------------------------------------------------------------------
/website/docs/extensions/_category_.yml:
--------------------------------------------------------------------------------
1 | label: 💻 IDE / Editor Extensions
2 | position: 3
--------------------------------------------------------------------------------
/website/docs/extensions/installation/_category_.yml:
--------------------------------------------------------------------------------
1 | label: Installation
2 | position: 1
--------------------------------------------------------------------------------
/website/docs/extensions/installation/intellij.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 1
3 | title: IntelliJ Platform
4 | description: Plugin for IDEA, PyCharm, GoLand, Android Studio, and more
5 | ---
6 |
7 | import IntelliJ from "../../../../clients/intellij/README.md";
8 |
9 |
10 |
--------------------------------------------------------------------------------
/website/docs/extensions/installation/vim.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 2
3 | description: Support for vim / neovim editors
4 | title: VIM / NeoVIM
5 | ---
6 |
7 | import VIM from "../../../../clients/vim/README.md";
8 |
9 |
10 |
--------------------------------------------------------------------------------
/website/docs/extensions/installation/vscode.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 0
3 | title: Visual Studio Code
4 | description: Extension for Visual Studio Code
5 | ---
6 |
7 | import VSCode from "../../../../clients/vscode/README.md";
8 |
9 |
10 |
--------------------------------------------------------------------------------
/website/docs/extensions/troubleshooting/intellij-choose-boot-runtime-for-the-ide.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:30a5a540a0979769e9bec20f7aed23d8c1a0c1adb047694b71096393dde128f1
3 | size 83599
4 |
--------------------------------------------------------------------------------
/website/docs/extensions/troubleshooting/vscode-output-view.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f874495b4a659af5bbfd171306f061962c1491e3dae8657844adffc5cee7b92a
3 | size 80703
4 |
--------------------------------------------------------------------------------
/website/docs/models/index.mdx.tmpl:
--------------------------------------------------------------------------------
1 | ---
2 | sidebar_position: 4
3 | hide_table_of_contents: true
4 | ---
5 |
6 | # 🧑🔬 Models Registry
7 |
--------------------------------------------------------------------------------
/website/docs/quick-start/_category_.yml:
--------------------------------------------------------------------------------
1 | label: 🚀 Quick Start
2 | position: 2
3 |
--------------------------------------------------------------------------------
/website/docs/quick-start/code-completion.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:de39259dd3d38f88111261aeeee00ae12660e101ea0acd9152887416e131e79b
3 | size 12194
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/connect-success.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fc3585d74087464cbf6c010d4eaf7b6e6f311c569e29ddfa5fd6ade0e9219d8d
3 | size 3606
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/installation/_category_.yml:
--------------------------------------------------------------------------------
1 | label: Step 1 - Installation
2 | position: 1
--------------------------------------------------------------------------------
/website/docs/quick-start/installation/linux/assets.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a536bf891a95cad1a62984567cf977952dcf9f5561bb8988c2c52dbc71f9b3c9
3 | size 86241
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/installation/windows/assets.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:10a3abc5ae75dc01662c3fe7336090e449a86b87557171573e8d30591476b21d
3 | size 207383
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/installation/windows/success.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9f567444fa8f3b49999d2a41160d37d7d589267209fb3856d6c5ba2cc823138f
3 | size 44882
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/personal-token.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b037f064b948a5d64646f79df1a9814c6617cbc951e038822f5725cf9de4aefb
3 | size 26749
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/register-account/admin-ui.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c2860c2e7137397ab91fb53ee7d5496dcf6ee035abcbb640285dbd024fa3203d
3 | size 342022
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/register-account/homepage.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:36cfa956c5b152f17cc580f2882aea462cabc986a2d0fcbeb233a4d161a2e619
3 | size 200791
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/register-account/invite-user.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0e379fca5992d022c365beb7c2bc3ae9e328cf29ee29a113f298afc893eec093
3 | size 121850
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/register-account/setup-admin.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:8c233a49fc431ca913f5b2096cd51d39647e593ce7a5b796212d75d8ddb10868
3 | size 107769
4 |
--------------------------------------------------------------------------------
/website/docs/quick-start/setup-endpoint.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a190c268bc37cc8036a2790fc759d838492149a8f6b6bf48f839fdc9ea1549ad
3 | size 107908
4 |
--------------------------------------------------------------------------------
/website/docs/references/_category_.yaml:
--------------------------------------------------------------------------------
1 | label: 📚 References
2 | position: 100
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/_category_.yml:
--------------------------------------------------------------------------------
1 | label: Cloud Deployment
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/bentoml/app-running.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:133ba4282e8c1912622db7210f0936bd0da90465eea2ac3106ccbe5d244e2e05
3 | size 68712
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/bentoml/bentodeploy.yaml:
--------------------------------------------------------------------------------
1 | name: tabby
2 | bento: ./
3 | access_authorization: false
4 | envs:
5 | - name: RCLONE_CONFIG_R2_TYPE
6 | value: s3
7 | - name: RCLONE_CONFIG_R2_ACCESS_KEY_ID
8 | value: $YOUR_R2_ACCESS_KEY_ID
9 | - name: RCLONE_CONFIG_R2_SECRET_ACCESS_KEY
10 | value: $YOUR_R2_SECRET_ACCESS_KEY
11 | - name: RCLONE_CONFIG_R2_ENDPOINT
12 | value: $YOUR_R2_ENDPOINT
13 | - name: TABBY_MODEL_CACHE_ROOT
14 | value: /home/bentoml/tabby-models
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/bentoml/bentofile.yaml:
--------------------------------------------------------------------------------
1 | service: 'service:Tabby'
2 | include:
3 | - '*.py'
4 | python:
5 | packages:
6 | - asgi-proxy-lib
7 | docker:
8 | cuda_version: "11.7.1"
9 | system_packages:
10 | - unzip
11 | - git
12 | - curl
13 | - software-properties-common
14 | setup_script: "./setup-docker.sh"
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/bentoml/twitter-img.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bf60d2cc5d095ddcf2f3d9e2b88f01faeb400cd7b3ef5f0a216cb10780171181
3 | size 205805
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/hugging-face/agent-config.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a58b8ec8dcbee680f4e83bf6bbd04de0cd95cd79c40a1f004a065f8ea9e09fa8
3 | size 47926
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/hugging-face/code-completion.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d45cf131a4a5d46dc0f4e36d0f74a3668fae14dcdef04d77889e1e2d9e5b29e9
3 | size 13946
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/hugging-face/duplicate-space.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9a5f5b32d5328a60d42a62a4908048f427149e3df87497c6b7f6c1357ec0e051
3 | size 297279
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/hugging-face/swagger-ui.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5be9d492ddf6992a634cdca6a303b95c411100881f9d75a3b534d2b6a4b2c8b5
3 | size 332826
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/hugging-face/tabby-connected.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b94e50a0d2f12d4ba28fe789c045e25a7c73f8b45c04c9c763b349e1f64de1ba
3 | size 2032
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/modal/app-running.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a0b02844ed3ef1224d67c5f547af2749d0653571fe6da44d876608d43830a176
3 | size 231732
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/skypilot/service-ready.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a413df338623f81c14e470f93cabb11be6368a738e70309a4192560a663c7d51
3 | size 39367
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/skypilot/start-service.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:544447575a60fc264db698a747326a03c9b47a310dc2092af6e32b699cb9b425
3 | size 31796
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/skypilot/tabby-ready.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6ec8c99fd93fa82466e2ab21003d6f8f12c2ee5cc34e7305abae52110e0be9bb
3 | size 31349
4 |
--------------------------------------------------------------------------------
/website/docs/references/cloud-deployment/skypilot/tabby.yaml:
--------------------------------------------------------------------------------
1 | resources:
2 | ports: 8080
3 | accelerators: T4:1
4 | # Or, allow using any of these GPUs to enhance GPU availability.
5 | # SkyPilot will auto-select the cheapest and available GPU.
6 | # accelerators: {T4:1, L4:1, A100:1, A10G:1}
7 |
8 | service:
9 | readiness_probe: /metrics
10 | replicas: 1
11 |
12 | run: |
13 | docker run --gpus all -p 8080:8080 -v ~/.tabby:/data \
14 | tabbyml/tabby \
15 | serve --model TabbyML/StarCoder-1B --device cuda
16 |
--------------------------------------------------------------------------------
/website/docs/references/models-http-api/_category_.yml:
--------------------------------------------------------------------------------
1 | label: Models HTTP API
--------------------------------------------------------------------------------
/website/docs/references/models-http-api/voyage-ai.md:
--------------------------------------------------------------------------------
1 | # Voyage AI
2 |
3 | [Voyage AI](https://voyage.ai/) is a company that provides a range of embedding models. Tabby supports Voyage AI's models for embedding tasks.
4 |
5 | ## Embeddings model
6 |
7 | Voyage AI provides specialized embedding models through their API interface.
8 |
9 | ```toml title="~/.tabby/config.toml"
10 | [model.embedding.http]
11 | kind = "voyage/embedding"
12 | model_name = "voyage-code-2"
13 | api_key = "your-api-key"
14 | ```
15 |
--------------------------------------------------------------------------------
/website/src/components/Collapse.jsx:
--------------------------------------------------------------------------------
1 | import React from "react"
2 | import Details from '@theme/MDXComponents/Details';
3 |
4 | export default function Collapse (props) {
5 | const { children, title = "Collapse" } = props;
6 |
7 | return (
8 |
9 | {title}
10 |
11 | {children}
12 |
13 | );
14 | }
--------------------------------------------------------------------------------
/website/src/components/HomepageFeatures/styles.module.css:
--------------------------------------------------------------------------------
1 | .features {
2 | display: flex;
3 | align-items: center;
4 | padding: 2rem 0;
5 | width: 100%;
6 | }
7 |
8 | .featureSvg {
9 | height: 200px;
10 | width: 200px;
11 | }
12 |
--------------------------------------------------------------------------------
/website/src/pages/index.module.css:
--------------------------------------------------------------------------------
1 | /**
2 | * CSS files with the .module.css suffix will be treated as CSS modules
3 | * and scoped locally.
4 | */
5 |
6 | .heroBanner {
7 | padding: 4rem 0;
8 | text-align: center;
9 | position: relative;
10 | overflow: hidden;
11 | }
12 |
13 | @media screen and (max-width: 996px) {
14 | .heroBanner {
15 | padding: 2rem;
16 | }
17 | }
18 |
19 | .buttons {
20 | display: flex;
21 | align-items: center;
22 | justify-content: center;
23 | }
24 |
--------------------------------------------------------------------------------
/website/src/pages/terms.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Terms
3 | hide_table_of_contents: true
4 | ---
5 |
6 | import Collapse from '@site/src/components/Collapse';
7 |
8 |
9 | You can find a copy of our FOSS License Terms in our GitHub repository. We license the FOSS version of Tabby under the Apache 2.0 License.
10 |
--------------------------------------------------------------------------------
/website/src/theme/Admonition.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Admonition from '@theme-original/Admonition';
3 |
4 |
5 | export default function AdmonitionWrapper(props) {
6 | if (props.type === 'subscription') {
7 | return SUBSCRIPTION} icon={💰}
8 | >
9 | {props.children}
10 |
11 | } else {
12 | return ;
13 | }
14 | }
--------------------------------------------------------------------------------
/website/static/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/static/.nojekyll
--------------------------------------------------------------------------------
/website/static/img/demo.gif:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fc24841caeb59b66cba4a84a839f90d9806b221c6dcda7aaa1176d5467aa9c51
3 | size 1464599
4 |
--------------------------------------------------------------------------------
/website/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TabbyML/tabby/9f939f9ae752a7a5608e7286aabdee09b13640a0/website/static/img/favicon.ico
--------------------------------------------------------------------------------
/website/static/img/logo.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:39353dcf87494d749240d826fb90a87278231f9636da674ce0e7407c5196b713
3 | size 46528
4 |
--------------------------------------------------------------------------------
/website/static/img/tabby-social-card.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9a1a4931c4929637e88dcce7e5ad2b173cd52a636bd28203448f4ef94d4fbb55
3 | size 87063
4 |
--------------------------------------------------------------------------------
/website/static/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/website/tailwind.config.js:
--------------------------------------------------------------------------------
1 | // tailwind.config.js
2 | /** @type {import('tailwindcss').Config} */
3 | module.exports = {
4 | corePlugins: {
5 | preflight: false, // disable Tailwind's reset
6 | },
7 | content: ["./src/**/*.{js,jsx,ts,tsx}", "./docs/**/*.mdx", "./blog/**/*.mdx"],
8 | darkMode: ['class', '[data-theme="dark"]'],
9 | theme: {
10 | extend: {},
11 | },
12 | plugins: [],
13 | }
14 |
15 |
--------------------------------------------------------------------------------