diff --git a/client/web-sveltekit/vite.config.ts b/client/web-sveltekit/vite.config.ts index fbce360a257..5e46fa275c0 100644 --- a/client/web-sveltekit/vite.config.ts +++ b/client/web-sveltekit/vite.config.ts @@ -79,7 +79,7 @@ export default defineConfig(({ mode }) => { proxy: { // Proxy requests to specific endpoints to a real Sourcegraph // instance. - '^(/sign-in|/.assets|/-|/.api|/search/stream|/users|/notebooks|/insights|/batch-changes)|/-/(raw|compare|own|embeddings|code-graph|batch-changes|settings)(/|$)': + '^(/sign-in|/.assets|/-|/.api|/search/stream|/users|/notebooks|/insights|/batch-changes)|/-/(raw|compare|own|code-graph|batch-changes|settings)(/|$)': { target: process.env.SOURCEGRAPH_API_URL || 'https://sourcegraph.com', changeOrigin: true, diff --git a/client/web/BUILD.bazel b/client/web/BUILD.bazel index d0262208d86..a75e4e48872 100644 --- a/client/web/BUILD.bazel +++ b/client/web/BUILD.bazel @@ -736,10 +736,6 @@ ts_project( "src/enterprise/codeintel/sort.ts", "src/enterprise/codeintel/useCodeIntel.ts", "src/enterprise/codeintel/useSearchBasedCodeIntel.ts", - "src/enterprise/cody/configuration/components/EmptyPoliciesList.tsx", - "src/enterprise/cody/configuration/pages/CodyConfigurationPage.tsx", - "src/enterprise/cody/repo/CodyRepoArea.tsx", - "src/enterprise/cody/repo/CodyRepoSidebar.tsx", "src/enterprise/dotcom/productSubscriptions/AccountName.tsx", "src/enterprise/dotcom/productSubscriptions/ProductLicenseValidity.tsx", "src/enterprise/dotcom/productSubscriptions/ProductSubscriptionLabel.tsx", @@ -1070,9 +1066,6 @@ ts_project( "src/enterprise/site-admin/UserManagement/backend.ts", "src/enterprise/site-admin/UserManagement/components/RoleAssignmentModal.tsx", "src/enterprise/site-admin/backend.ts", - "src/enterprise/site-admin/cody/RepoEmbeddingJobNode.tsx", - "src/enterprise/site-admin/cody/SiteAdminCodyPage.tsx", - "src/enterprise/site-admin/cody/backend.ts", "src/enterprise/site-admin/dotcom/customers/SiteAdminCustomersPage.tsx", "src/enterprise/site-admin/dotcom/productSubscriptions/CodyGatewayRateLimitModal.tsx", "src/enterprise/site-admin/dotcom/productSubscriptions/CodyServicesSection.tsx", @@ -1392,7 +1385,6 @@ ts_project( "src/repo/releases/RepositoryReleasesTagsPage.tsx", "src/repo/repoContainerRoutes.tsx", "src/repo/repoRevisionContainerRoutes.tsx", - "src/repo/repoRevisionSidebar/cody/backend.tsx", "src/repo/settings/RepoSettingsArea.tsx", "src/repo/settings/RepoSettingsIndexPage.tsx", "src/repo/settings/RepoSettingsMirrorPage.tsx", diff --git a/client/web/dev/utils/create-js-context.ts b/client/web/dev/utils/create-js-context.ts index cbfd10e448a..808df75c5a6 100644 --- a/client/web/dev/utils/create-js-context.ts +++ b/client/web/dev/utils/create-js-context.ts @@ -87,7 +87,6 @@ export const createJsContext = ({ sourcegraphBaseUrl }: { sourcegraphBaseUrl: st endpoint: ENVIRONMENT_CONFIG.CLIENT_OTEL_EXPORTER_OTLP_ENDPOINT, }, telemetryRecorder: noOpTelemetryRecorder, - embeddingsEnabled: false, primaryLoginProvidersCount: 5, // Site-config overrides default JS context ...siteConfig, diff --git a/client/web/src/cody/components/ScopeSelector/ScopeSelector.module.scss b/client/web/src/cody/components/ScopeSelector/ScopeSelector.module.scss index 43ef95e31aa..3c029655872 100644 --- a/client/web/src/cody/components/ScopeSelector/ScopeSelector.module.scss +++ b/client/web/src/cody/components/ScopeSelector/ScopeSelector.module.scss @@ -114,9 +114,6 @@ .repo-icon { color: var(--text-disabled); } - .embedding-icon-no-embeddings { - color: var(--gray-07); - } } .not-included-in-context:hover { diff --git a/client/web/src/cody/isCodyEnabled.tsx b/client/web/src/cody/isCodyEnabled.tsx index c2864b75cc4..ead829ca841 100644 --- a/client/web/src/cody/isCodyEnabled.tsx +++ b/client/web/src/cody/isCodyEnabled.tsx @@ -10,5 +10,3 @@ export const isCodyEnabled = (): boolean => { } export const isSignInRequiredForCody = (): boolean => !window.context.isAuthenticatedUser - -export const isEmbeddingsEnabled = (): boolean => window.context?.codyEnabled && window.context?.embeddingsEnabled diff --git a/client/web/src/enterprise/codeintel/configuration/hooks/queryPolicies.tsx b/client/web/src/enterprise/codeintel/configuration/hooks/queryPolicies.tsx index 0d37de9b9f5..842b3263042 100644 --- a/client/web/src/enterprise/codeintel/configuration/hooks/queryPolicies.tsx +++ b/client/web/src/enterprise/codeintel/configuration/hooks/queryPolicies.tsx @@ -24,7 +24,6 @@ export const POLICIES_CONFIGURATION = gql` $query: String $forDataRetention: Boolean $forIndexing: Boolean - $forEmbeddings: Boolean $first: Int $after: String $protected: Boolean @@ -34,7 +33,6 @@ export const POLICIES_CONFIGURATION = gql` query: $query forDataRetention: $forDataRetention forIndexing: $forIndexing - forEmbeddings: $forEmbeddings first: $first after: $after protected: $protected @@ -60,7 +58,6 @@ export const queryPolicies = ( query, forDataRetention, forIndexing, - forEmbeddings, after, protected: varProtected, }: Partial, @@ -71,7 +68,6 @@ export const queryPolicies = ( query: query ?? null, forDataRetention: forDataRetention ?? null, forIndexing: forIndexing ?? null, - forEmbeddings: forEmbeddings ?? null, first: first ?? null, after: after ?? null, protected: varProtected ?? null, diff --git a/client/web/src/enterprise/codeintel/configuration/hooks/types.tsx b/client/web/src/enterprise/codeintel/configuration/hooks/types.tsx index 2f7c11380df..b1f7aeeb396 100644 --- a/client/web/src/enterprise/codeintel/configuration/hooks/types.tsx +++ b/client/web/src/enterprise/codeintel/configuration/hooks/types.tsx @@ -16,7 +16,6 @@ export const nullPolicy = { indexingEnabled: false, indexCommitMaxAgeHours: null, indexIntermediateCommits: false, - embeddingsEnabled: false, repository: null, } @@ -39,6 +38,5 @@ export const defaultCodeIntelligenceConfigurationPolicyFieldsFragment = gql` indexingEnabled indexCommitMaxAgeHours indexIntermediateCommits - embeddingsEnabled } ` diff --git a/client/web/src/enterprise/codeintel/configuration/hooks/usePolicyConfigurationById.tsx b/client/web/src/enterprise/codeintel/configuration/hooks/usePolicyConfigurationById.tsx index 20a32e027fc..06a86995bf7 100644 --- a/client/web/src/enterprise/codeintel/configuration/hooks/usePolicyConfigurationById.tsx +++ b/client/web/src/enterprise/codeintel/configuration/hooks/usePolicyConfigurationById.tsx @@ -41,7 +41,6 @@ const emptyPolicy: CodeIntelligenceConfigurationPolicyFields = { indexingEnabled: false, indexCommitMaxAgeHours: null, indexIntermediateCommits: false, - embeddingsEnabled: false, } export const usePolicyConfigurationByID = (id: string): UsePolicyConfigResult => { diff --git a/client/web/src/enterprise/codeintel/configuration/hooks/useSavePolicyConfiguration.tsx b/client/web/src/enterprise/codeintel/configuration/hooks/useSavePolicyConfiguration.tsx index a851cac5985..74af846afaa 100644 --- a/client/web/src/enterprise/codeintel/configuration/hooks/useSavePolicyConfiguration.tsx +++ b/client/web/src/enterprise/codeintel/configuration/hooks/useSavePolicyConfiguration.tsx @@ -17,7 +17,6 @@ const CREATE_POLICY_CONFIGURATION = gql` $indexingEnabled: Boolean! $indexCommitMaxAgeHours: Int $indexIntermediateCommits: Boolean! - $embeddingsEnabled: Boolean! ) { createCodeIntelligenceConfigurationPolicy( repository: $repositoryId @@ -31,7 +30,6 @@ const CREATE_POLICY_CONFIGURATION = gql` indexingEnabled: $indexingEnabled indexCommitMaxAgeHours: $indexCommitMaxAgeHours indexIntermediateCommits: $indexIntermediateCommits - embeddingsEnabled: $embeddingsEnabled ) { id } @@ -51,7 +49,6 @@ const UPDATE_POLICY_CONFIGURATION = gql` $indexingEnabled: Boolean! $indexCommitMaxAgeHours: Int $indexIntermediateCommits: Boolean! - $embeddingsEnabled: Boolean! ) { updateCodeIntelligenceConfigurationPolicy( id: $id @@ -65,7 +62,6 @@ const UPDATE_POLICY_CONFIGURATION = gql` indexingEnabled: $indexingEnabled indexCommitMaxAgeHours: $indexCommitMaxAgeHours indexIntermediateCommits: $indexIntermediateCommits - embeddingsEnabled: $embeddingsEnabled ) { alwaysNil } diff --git a/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPage.tsx b/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPage.tsx index ca10c7fcbe8..3f921a3443b 100644 --- a/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPage.tsx +++ b/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPage.tsx @@ -1,4 +1,4 @@ -import React, { type FunctionComponent, useCallback, useEffect, useMemo } from 'react' +import React, { useCallback, useEffect, useMemo, type FunctionComponent } from 'react' import { useApolloClient } from '@apollo/client' import { @@ -11,10 +11,9 @@ import { mdiLock, mdiPencil, mdiSourceRepository, - mdiVectorPolyline, } from '@mdi/js' import classNames from 'classnames' -import { useNavigate, useLocation } from 'react-router-dom' +import { useLocation, useNavigate } from 'react-router-dom' import { Subject } from 'rxjs' import { RepoLink } from '@sourcegraph/shared/src/components/RepoLink' @@ -69,12 +68,12 @@ export const CodeIntelConfigurationPage: FunctionComponent - queryPolicies({ ...args, repository: repo?.id, forEmbeddings: false, protected: true }, apolloClient), + queryPolicies({ ...args, repository: repo?.id, protected: true }, apolloClient), [queryPolicies, repo?.id, apolloClient] ) const queryCustomPoliciesCallback = useCallback( (args: FilteredConnectionQueryArguments) => - queryPolicies({ ...args, repository: repo?.id, forEmbeddings: false, protected: false }, apolloClient), + queryPolicies({ ...args, repository: repo?.id, protected: false }, apolloClient), [queryPolicies, repo?.id, apolloClient] ) @@ -222,7 +221,6 @@ export const CodeIntelConfigurationPage: FunctionComponent Promise indexingEnabled?: boolean - domain?: 'scip' | 'embeddings' } type PoliciesNodeProps = ProtectedPoliciesNodeProps | UnprotectedPoliciesNodeProps @@ -238,28 +235,24 @@ type PoliciesNodeProps = ProtectedPoliciesNodeProps | UnprotectedPoliciesNodePro export const PoliciesNode: FunctionComponent> = ({ node: policy, indexingEnabled = false, - domain = 'scip', ...props }) => ( <>
- + {policy.indexingEnabled && indexingEnabled && } {policy.retentionEnabled && } - {policy.embeddingsEnabled && }
@@ -299,23 +292,19 @@ interface PolicyDescriptionProps { policy: CodeIntelligenceConfigurationPolicyFields indexingEnabled?: boolean allowGlobalPolicies?: boolean - domain?: 'scip' | 'embeddings' } const PolicyDescription: FunctionComponent = ({ policy, indexingEnabled = false, allowGlobalPolicies = window.context?.codeIntelAutoIndexingAllowGlobalPolicies, - domain = 'scip', }) => (
@@ -323,7 +312,7 @@ const PolicyDescription: FunctionComponent = ({ - {!policy.retentionEnabled && !(indexingEnabled && policy.indexingEnabled) && !policy.embeddingsEnabled && ( + {!policy.retentionEnabled && !(indexingEnabled && policy.indexingEnabled) && ( = ({ po
) - -interface EmbeddingsDescriptionProps { - policy: CodeIntelligenceConfigurationPolicyFields -} - -const EmbeddingsDescription: FunctionComponent = ({ policy }) => ( -
- - - - - Maintains embeddings. -
-) diff --git a/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPolicyPage.tsx b/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPolicyPage.tsx index ee3853f6ab3..b664f4c3a6b 100644 --- a/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPolicyPage.tsx +++ b/client/web/src/enterprise/codeintel/configuration/pages/CodeIntelConfigurationPolicyPage.tsx @@ -1,10 +1,10 @@ -import { type FunctionComponent, useCallback, useEffect, useMemo, useState } from 'react' +import { useCallback, useEffect, useMemo, useState, type FunctionComponent } from 'react' import type { ApolloError } from '@apollo/client' -import { mdiCheck, mdiDelete, mdiGraveStone } from '@mdi/js' +import { mdiDelete, mdiGraveStone } from '@mdi/js' import classNames from 'classnames' import { debounce } from 'lodash' -import { useNavigate, useParams, useLocation } from 'react-router-dom' +import { useLocation, useNavigate, useParams } from 'react-router-dom' import { Toggle } from '@sourcegraph/branded/src/components/Toggle' import { useLazyQuery } from '@sourcegraph/http-client' @@ -46,8 +46,8 @@ import { useDeletePolicies } from '../hooks/useDeletePolicies' import { usePolicyConfigurationByID } from '../hooks/usePolicyConfigurationById' import { convertGitObjectFilterResult, - type GitObjectPreviewResult, PREVIEW_GIT_OBJECT_FILTER, + type GitObjectPreviewResult, } from '../hooks/usePreviewGitObjectFilter' import { useSavePolicyConfiguration } from '../hooks/useSavePolicyConfiguration' import { hasGlobalPolicyViolation } from '../shared' @@ -63,7 +63,6 @@ export interface CodeIntelConfigurationPolicyPageProps extends TelemetryProps, T authenticatedUser: AuthenticatedUser | null indexingEnabled?: boolean allowGlobalPolicies?: boolean - domain?: 'scip' | 'embeddings' } type PolicyUpdater = (updates: { @@ -75,7 +74,6 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent { @@ -85,8 +83,8 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent { telemetryService.logViewEvent('CodeIntelConfigurationPolicy') - telemetryRecorder.recordEvent(getViewEventFeatureName(domain, !!repo), 'view') - }, [telemetryService, telemetryRecorder, domain, repo]) + telemetryRecorder.recordEvent(getViewEventFeatureName(!!repo), 'view') + }, [telemetryService, telemetryRecorder, repo]) // Handle local policy state const [policy, setPolicy] = useState() @@ -159,9 +157,7 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent { const urlType = new URLSearchParams(location.search).get('type') const defaultTypes = - domain === 'embeddings' - ? { type: GitObjectType.GIT_COMMIT, embeddingsEnabled: true } - : urlType === 'branch' + urlType === 'branch' ? { type: GitObjectType.GIT_TREE, pattern: '*' } : urlType === 'tag' ? { type: GitObjectType.GIT_TAG, pattern: '*' } @@ -173,7 +169,7 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent @@ -188,8 +184,8 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent - {policy?.id === '' ? 'Create a new' : 'Update a'}{' '} - {domain === 'scip' ? 'code graph' : 'embeddings'} configuration policy for{' '} + {policy?.id === '' ? 'Create a new' : 'Update a'} code graph configuration policy for{' '} ) : ( <> - {policy?.id === '' ? 'Create a new' : 'Update a'} global{' '} - {domain === 'scip' ? 'code graph' : 'embeddings'} configuration policy + {policy?.id === '' ? 'Create a new' : 'Update a'} global code graph configuration policy ), }, ]} description={ - domain === 'scip' ? ( - <> - Rules that control{indexingEnabled && <> auto-indexing and} data retention behavior of - code graph data. - - ) : ( - <>Rules that control keeping embeddings up-to-date. - ) + <> + Rules that control{indexingEnabled && <> auto-indexing and} data retention behavior of code + graph data. + } className="mb-3" /> - {!policy.id && authenticatedUser?.siteAdmin && } - + {!policy.id && authenticatedUser?.siteAdmin && }={true}{' '} {savingError && } {deleteError && } {location.state && } @@ -233,21 +222,13 @@ export const CodeIntelConfigurationPolicyPage: FunctionComponent )} - - - {domain === 'scip' && } + + {!policy.repository && } - {domain === 'scip' ? ( - <> - {indexingEnabled && ( - - )} - - - ) : ( - - )} + + {indexingEnabled && } +
- ) - } - className="mb-3" - /> - - {deleteError && } - {location.state && } - - {authenticatedUser?.siteAdmin && repo && ( - - View additional configuration policies that - do not affect this repository. - - )} - - - - > - listComponent="div" - listClassName={classNames(styles.grid, 'mb-3')} - showMoreClassName="mb-0" - noun="configuration policy" - pluralNoun="configuration policies" - nodeComponent={PoliciesNode} - nodeComponentProps={{ isDeleting, onDelete, domain: 'embeddings' }} - queryConnection={queryPoliciesCallback} - cursorPaging={true} - inputClassName="ml-2 flex-1" - emptyElement={} - updates={updates} - /> - - - ) -} diff --git a/client/web/src/enterprise/cody/repo/CodyRepoArea.tsx b/client/web/src/enterprise/cody/repo/CodyRepoArea.tsx deleted file mode 100644 index 1bfff46787b..00000000000 --- a/client/web/src/enterprise/cody/repo/CodyRepoArea.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import type { FC } from 'react' - -import { Navigate, Route, Routes } from 'react-router-dom' - -import type { TelemetryV2Props } from '@sourcegraph/shared/src/telemetry' -import type { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { lazyComponent } from '@sourcegraph/shared/src/util/lazyComponent' - -import type { AuthenticatedUser } from '../../../auth' -import type { BreadcrumbSetters } from '../../../components/Breadcrumbs' -import { NotFoundPage } from '../../../components/HeroPage' -import type { RepositoryFields } from '../../../graphql-operations' -import type { RouteV6Descriptor } from '../../../util/contributions' -import type { CodeIntelConfigurationPolicyPageProps } from '../../codeintel/configuration/pages/CodeIntelConfigurationPolicyPage' -import { CodyConfigurationPage } from '../configuration/pages/CodyConfigurationPage' - -import { CodyRepoSidebar, type CodyRepoSidebarGroups } from './CodyRepoSidebar' - -export interface CodyRepoAreaRouteContext extends TelemetryProps, TelemetryV2Props { - repo: { id: string; name: string } - authenticatedUser: AuthenticatedUser | null -} - -export interface CodyRepoAreaRoute extends RouteV6Descriptor {} - -const CodeIntelConfigurationPolicyPage = lazyComponent< - CodeIntelConfigurationPolicyPageProps, - 'CodeIntelConfigurationPolicyPage' ->( - () => import('../../codeintel/configuration/pages/CodeIntelConfigurationPolicyPage'), - 'CodeIntelConfigurationPolicyPage' -) - -export const codyRepoAreaRoutes: readonly CodyRepoAreaRoute[] = [ - { - path: '/', - render: () => , - }, - { - path: '/configuration', - render: props => , - }, - { - path: '/configuration/:id', - render: props => , - }, -] - -export interface CodyRepoAreaProps extends BreadcrumbSetters, TelemetryProps, TelemetryV2Props { - repo: RepositoryFields - authenticatedUser: AuthenticatedUser | null -} - -const sidebarRoutes: CodyRepoSidebarGroups = [ - { - header: { label: 'Embeddings' }, - items: [ - { - to: '/configuration', - label: 'Configuration policies', - }, - ], - }, -] - -const BREADCRUMB = { key: 'embeddings', element: 'Embeddings' } - -export const CodyRepoArea: FC = props => { - const { useBreadcrumb, repo } = props - - useBreadcrumb(BREADCRUMB) - - return ( -
- - -
- - {codyRepoAreaRoutes.map( - ({ path, render, condition = () => true }) => - condition(props) && ( - - ) - )} - - } /> - -
-
- ) -} diff --git a/client/web/src/enterprise/cody/repo/CodyRepoSidebar.tsx b/client/web/src/enterprise/cody/repo/CodyRepoSidebar.tsx deleted file mode 100644 index ba8005aea65..00000000000 --- a/client/web/src/enterprise/cody/repo/CodyRepoSidebar.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import type { FC } from 'react' - -import { SidebarGroupHeader, SidebarGroup, SidebarNavItem } from '../../../components/Sidebar' -import type { NavGroupDescriptor } from '../../../util/contributions' - -export interface CodyRepoSideBarGroup extends NavGroupDescriptor {} - -export type CodyRepoSidebarGroups = readonly CodyRepoSideBarGroup[] - -interface Props { - codyRepoSidebarGroups: CodyRepoSidebarGroups - className?: string - repo: { url: string } -} - -export const CodyRepoSidebar: FC = ({ codyRepoSidebarGroups, className, repo }) => ( -
- {codyRepoSidebarGroups.map(({ header, items }, index) => ( - - {header && } - {items.map(({ label, to }) => ( - - {label} - - ))} - - ))} -
-) diff --git a/client/web/src/enterprise/repo/enterpriseRepoContainerRoutes.tsx b/client/web/src/enterprise/repo/enterpriseRepoContainerRoutes.tsx index c24c4855055..002bb584b81 100644 --- a/client/web/src/enterprise/repo/enterpriseRepoContainerRoutes.tsx +++ b/client/web/src/enterprise/repo/enterpriseRepoContainerRoutes.tsx @@ -9,8 +9,6 @@ const RepositoryCodeIntelArea = lazyComponent( 'RepositoryCodeIntelArea' ) -const CodyRepoArea = lazyComponent(() => import('../cody/repo/CodyRepoArea'), 'CodyRepoArea') - const RepositoryBatchChangesArea = lazyComponent( () => import('../batches/repo/RepositoryBatchChangesArea'), 'RepositoryBatchChangesArea' @@ -36,10 +34,6 @@ export const enterpriseRepoContainerRoutes: readonly RepoContainerRoute[] = [ ), }, - { - path: '/-/embeddings/*', - render: context => , - }, { path: '/-/batch-changes', condition: ({ batchChangesEnabled }) => batchChangesEnabled, diff --git a/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.module.scss b/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.module.scss deleted file mode 100644 index 96a8bf9280d..00000000000 --- a/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.module.scss +++ /dev/null @@ -1,12 +0,0 @@ -.badge-wrapper { - min-width: 90px; -} - -.error-content { - max-width: 600px; -} - -.alert-overflow { - max-height: 300px; - overflow-y: auto; -} diff --git a/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.tsx b/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.tsx deleted file mode 100644 index 86cc4251234..00000000000 --- a/client/web/src/enterprise/site-admin/cody/RepoEmbeddingJobNode.tsx +++ /dev/null @@ -1,215 +0,0 @@ -import { type FC, useState, useEffect } from 'react' - -import classNames from 'classnames' - -import { Timestamp } from '@sourcegraph/branded/src/components/Timestamp' -import { - Badge, - Button, - PopoverTrigger, - PopoverContent, - PopoverTail, - Popover, - Position, - type BadgeVariantType, - Link, - H4, - Alert, - Tooltip, -} from '@sourcegraph/wildcard' - -import { type RepoEmbeddingJobFields, RepoEmbeddingJobState } from '../../../graphql-operations' - -import styles from './RepoEmbeddingJobNode.module.scss' - -interface RepoEmbeddingJobNodeProps extends RepoEmbeddingJobFields { - onCancel: (id: string) => void -} - -export const RepoEmbeddingJobNode: FC = ({ - id, - state, - cancel, - repo, - revision, - finishedAt, - queuedAt, - startedAt, - failureMessage, - stats, - onCancel, -}) => ( -
  • -
    -
    -
    - -
    -
    - {repo && revision ? ( - - {repo.name}@{revision.abbreviatedOID} - - ) : repo ? ( - <>{repo.name} - ) : ( -
    Unknown repository
    - )} -
    - -
    -
    -
    -
    - {state === RepoEmbeddingJobState.QUEUED || state === RepoEmbeddingJobState.PROCESSING ? ( - - - - ) : null} -
    -
    -
  • -) - -const RepoEmbeddingJobExecutionInfo: FC< - Pick< - RepoEmbeddingJobFields, - 'state' | 'cancel' | 'finishedAt' | 'failureMessage' | 'queuedAt' | 'startedAt' | 'stats' - > -> = ({ state, cancel, finishedAt, queuedAt, startedAt, failureMessage, stats }) => { - const [isPopoverOpen, setIsPopoverOpen] = useState(false) - - const [estimatedFinish, setEstimatedFinish] = useState(null) - useEffect(() => { - setEstimatedFinish( - calculateEstimatedFinish(startedAt, stats.filesScheduled, stats.filesEmbedded, stats.filesSkipped) - ) - }, [startedAt, stats.filesScheduled, stats.filesEmbedded, stats.filesSkipped]) - - return ( - <> - {state === RepoEmbeddingJobState.COMPLETED && finishedAt && ( - - Completed embedding {stats.filesEmbedded} files ({stats.filesSkipped} skipped){' '} - - - )} - {state === RepoEmbeddingJobState.CANCELED && finishedAt && ( - - Stopped - - )} - {state === RepoEmbeddingJobState.QUEUED && ( - - {cancel ? ( - 'Cancelling ...' - ) : ( - <> - Queued - - )} - - )} - {state === RepoEmbeddingJobState.PROCESSING && startedAt && ( - - {cancel ? ( - 'Cancelling ...' - ) : estimatedFinish ? ( - <> - Expected to finish ( - {stats.filesSkipped + stats.filesEmbedded}/{stats.filesScheduled} files) - - ) : ( - <> - Started processing - - )} - - )} - {(state === RepoEmbeddingJobState.ERRORED || state === RepoEmbeddingJobState.FAILED) && failureMessage && ( - setIsPopoverOpen(event.isOpen)}> - - See errors - - - - -

    Error embedding repository:

    -
    {failureMessage}
    -
    -
    - -
    - )} - - ) -} - -function calculateEstimatedFinish( - startedAt: string | null, - filesScheduled: number, - filesEmbedded: number, - filesSkipped: number, - now?: number -): Date | null { - const currentTime = now ?? Date.now() - if (!startedAt) { - return null - } - const startTime = Date.parse(startedAt) - if (filesScheduled === 0) { - // There is a period between when the job starts processing and when - // we know how many files need to be processed. In the case where - // we do not have an update with the number of files scheduled, - // we cannot calculate a meaningful ETA. - return null - } - const proportionFinished = (filesEmbedded + filesSkipped) / filesScheduled - const timeElapsed = currentTime - startTime - const estimatedTotalTime = timeElapsed / proportionFinished - return new Date(startTime + estimatedTotalTime) -} - -function getRepoEmbeddingJobStateBadgeVariant(state: RepoEmbeddingJobState): BadgeVariantType { - switch (state) { - case RepoEmbeddingJobState.COMPLETED: { - return 'success' - } - case RepoEmbeddingJobState.CANCELED: { - return 'warning' - } - case RepoEmbeddingJobState.ERRORED: - case RepoEmbeddingJobState.FAILED: { - return 'danger' - } - case RepoEmbeddingJobState.QUEUED: - case RepoEmbeddingJobState.PROCESSING: { - return 'info' - } - } -} - -const RepoEmbeddingJobStateBadge: React.FunctionComponent<{ state: RepoEmbeddingJobState }> = ({ state }) => ( - - {state} - -) diff --git a/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.module.scss b/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.module.scss deleted file mode 100644 index 269e3e97d5a..00000000000 --- a/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.schedule-button { - height: 2.375rem; -} diff --git a/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.tsx b/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.tsx deleted file mode 100644 index 578a2fa66d0..00000000000 --- a/client/web/src/enterprise/site-admin/cody/SiteAdminCodyPage.tsx +++ /dev/null @@ -1,265 +0,0 @@ -import { type FC, useCallback, useEffect, useState, useMemo } from 'react' - -import { mdiMapSearch } from '@mdi/js' -import { capitalize } from 'lodash' -import { useLocation } from 'react-router-dom' - -import { RepoEmbeddingJobState } from '@sourcegraph/shared/src/graphql-operations' -import { TelemetryV2Props } from '@sourcegraph/shared/src/telemetry' -import type { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { - Button, - Container, - getDefaultInputProps, - Label, - PageHeader, - useField, - useForm, - H3, - type Validator, - ErrorAlert, - Form, - useDebounce, - Icon, -} from '@sourcegraph/wildcard' - -import { CodyColorIcon } from '../../../cody/chat/CodyPageIcon' -import type { FilteredConnectionFilter, FilteredConnectionFilterValue } from '../../../components/FilteredConnection' -import { - ConnectionContainer, - ConnectionError, - ConnectionForm, - ConnectionList, - ConnectionLoading, - ConnectionSummary, - ShowMoreButton, - SummaryContainer, -} from '../../../components/FilteredConnection/ui' -import { getFilterFromURL } from '../../../components/FilteredConnection/utils' -import { PageTitle } from '../../../components/PageTitle' -import { RepositoriesField } from '../../insights/components' - -import { useCancelRepoEmbeddingJob, useRepoEmbeddingJobsConnection, useScheduleRepoEmbeddingJobs } from './backend' -import { RepoEmbeddingJobNode } from './RepoEmbeddingJobNode' - -import styles from './SiteAdminCodyPage.module.scss' - -export interface SiteAdminCodyPageProps extends TelemetryProps, TelemetryV2Props {} - -interface RepoEmbeddingJobsFormValues { - repositories: string[] -} - -const INITIAL_REPOSITORIES = { repositories: [] } - -const repositoriesValidator: Validator = value => { - if (value !== undefined && value.length === 0) { - return 'Repositories is a required field.' - } - return -} - -// Helper function to convert an enum to a list of FilteredConnectionFilterValue -const enumToFilterValues = (enumeration: { [key in T]: T }): FilteredConnectionFilterValue[] => { - const values: FilteredConnectionFilterValue[] = [] - for (const key of Object.keys(enumeration)) { - values.push({ - value: key.toLowerCase(), - label: capitalize(key), - args: {}, - tooltip: `Show ${key.toLowerCase()} jobs`, - }) - } - return values -} - -export const SiteAdminCodyPage: FC = ({ telemetryService, telemetryRecorder }) => { - useEffect(() => { - telemetryService.logPageView('SiteAdminCodyPage') - telemetryRecorder.recordEvent('admin.cody.embeddingsJobs', 'view') - }, [telemetryService, telemetryRecorder]) - - const location = useLocation() - const searchParams = useMemo(() => new URLSearchParams(location.search), [location.search]) - const queryParam = searchParams.get('query') - - const [searchValue, setSearchValue] = useState(queryParam || '') - const query = useDebounce(searchValue, 200) - - const defaultStateFilterValue = 'all' - const filters: FilteredConnectionFilter[] = [ - { - id: 'state', - label: 'State', - type: 'select', - values: [ - { - label: 'All', - value: defaultStateFilterValue, - tooltip: 'Show all jobs', - args: {}, - }, - ...enumToFilterValues(RepoEmbeddingJobState), - ], - }, - ] - - const [filterValues, setFilterValues] = useState>(() => - getFilterFromURL(searchParams, filters) - ) - - const getStateFilterValue = (filterValues: Map): string | null => { - const val = filterValues.get('state')?.value || defaultStateFilterValue - return val === defaultStateFilterValue ? null : val - } - - const { loading, hasNextPage, fetchMore, refetchAll, refetchFirst, connection, error } = - useRepoEmbeddingJobsConnection(query, getStateFilterValue(filterValues)) - - const [scheduleRepoEmbeddingJobs, { loading: repoEmbeddingJobsLoading, error: repoEmbeddingJobsError }] = - useScheduleRepoEmbeddingJobs() - - const onSubmit = useCallback( - async (repoNames: string[]) => { - telemetryRecorder.recordEvent('admin.cody.embeddingsJobs', 'scheduleJob') - await scheduleRepoEmbeddingJobs({ variables: { repoNames } }) - refetchFirst() - }, - [refetchFirst, scheduleRepoEmbeddingJobs, telemetryRecorder] - ) - - const form = useForm({ - initialValues: INITIAL_REPOSITORIES, - touched: false, - onSubmit: values => onSubmit(values.repositories), - }) - - const repositories = useField({ - name: 'repositories', - formApi: form.formAPI, - validators: { sync: repositoriesValidator }, - }) - - const updateQueryParams = (key: string, value: string): void => { - if (value === '') { - searchParams.delete(key) - } else { - searchParams.set(key, value) - } - - const queryString = searchParams.toString() - const newUrl = queryString === '' ? window.location.pathname : `${window.location.pathname}?${queryString}` - window.history.replaceState(null, '', newUrl) - } - - const [cancelRepoEmbeddingJob, { error: cancelRepoEmbeddingJobError }] = useCancelRepoEmbeddingJob() - - const onCancel = useCallback( - async (id: string) => { - await cancelRepoEmbeddingJob({ variables: { id } }) - refetchAll() - }, - [cancelRepoEmbeddingJob, refetchAll] - ) - - return ( - <> - - - -

    Schedule repositories for embedding

    -
    - -
    - -
    - -
    -
    -
    - {(repoEmbeddingJobsError || cancelRepoEmbeddingJobError) && ( -
    - -
    - )} -
    - -

    Repository embeddings jobs

    - - { - setSearchValue(event.target.value) - updateQueryParams('query', event.target.value) - }} - inputPlaceholder="Filter embeddings jobs..." - filters={filters} - filterValues={filterValues} - onFilterSelect={(filter: FilteredConnectionFilter, value: FilteredConnectionFilterValue) => { - setFilterValues(values => { - const newValues = new Map(values) - newValues.set(filter.id, value) - return newValues - }) - updateQueryParams(filter.id, value.value) - }} - /> - {error && } - {loading && !connection && } - - {connection?.nodes?.map(node => ( - - ))} - - {connection && ( - - } - /> - {hasNextPage && } - - )} - -
    - - ) -} - -const EmptyList: FC<{}> = () => ( -
    - -
    No repository embeddings jobs found.
    -
    -) diff --git a/client/web/src/enterprise/site-admin/cody/backend.ts b/client/web/src/enterprise/site-admin/cody/backend.ts deleted file mode 100644 index f7485c2298f..00000000000 --- a/client/web/src/enterprise/site-admin/cody/backend.ts +++ /dev/null @@ -1,107 +0,0 @@ -import type { MutationTuple } from '@apollo/client' - -import { dataOrThrowErrors, gql, useMutation } from '@sourcegraph/http-client' - -import { - useShowMorePagination, - type UseShowMorePaginationResult, -} from '../../../components/FilteredConnection/hooks/useShowMorePagination' -import type { - CancelRepoEmbeddingJobResult, - CancelRepoEmbeddingJobVariables, - RepoEmbeddingJobFields, - RepoEmbeddingJobsListResult, - RepoEmbeddingJobsListVariables, - ScheduleRepoEmbeddingJobsResult, - ScheduleRepoEmbeddingJobsVariables, -} from '../../../graphql-operations' - -const REPO_EMBEDDING_JOB_FRAGMENT = gql` - fragment RepoEmbeddingJobFields on RepoEmbeddingJob { - id - state - failureMessage - finishedAt - queuedAt - startedAt - cancel - repo { - name - url - } - revision { - oid - abbreviatedOID - } - stats { - filesScheduled - filesEmbedded - filesSkipped - } - } -` - -export const REPO_EMBEDDING_JOBS_LIST_QUERY = gql` - ${REPO_EMBEDDING_JOB_FRAGMENT} - - query RepoEmbeddingJobsList($first: Int, $after: String, $query: String, $state: String) { - repoEmbeddingJobs(first: $first, after: $after, query: $query, state: $state) { - nodes { - ...RepoEmbeddingJobFields - } - totalCount - pageInfo { - endCursor - hasNextPage - } - } - } -` - -export const useRepoEmbeddingJobsConnection = ( - query: string, - state: string | null -): UseShowMorePaginationResult => - useShowMorePagination({ - query: REPO_EMBEDDING_JOBS_LIST_QUERY, - variables: { after: null, first: 10, query, state }, - getConnection: result => { - const { repoEmbeddingJobs } = dataOrThrowErrors(result) - return repoEmbeddingJobs - }, - options: { - pollInterval: 5000, - }, - }) - -export const SCHEDULE_REPO_EMBEDDING_JOBS = gql` - mutation ScheduleRepoEmbeddingJobs($repoNames: [String!]!) { - scheduleRepositoriesForEmbedding(repoNames: $repoNames) { - alwaysNil - } - } -` - -export function useScheduleRepoEmbeddingJobs(): MutationTuple< - ScheduleRepoEmbeddingJobsResult, - ScheduleRepoEmbeddingJobsVariables -> { - return useMutation( - SCHEDULE_REPO_EMBEDDING_JOBS - ) -} - -export const CANCEL_REPO_EMBEDDING_JOB = gql` - mutation CancelRepoEmbeddingJob($id: ID!) { - cancelRepoEmbeddingJob(job: $id) { - alwaysNil - } - } -` - -export function useCancelRepoEmbeddingJob(): MutationTuple< - CancelRepoEmbeddingJobResult, - CancelRepoEmbeddingJobVariables -> { - return useMutation(CANCEL_REPO_EMBEDDING_JOB) -} diff --git a/client/web/src/integration/jscontext.ts b/client/web/src/integration/jscontext.ts index 0a0cb2640dd..68a0893354d 100644 --- a/client/web/src/integration/jscontext.ts +++ b/client/web/src/integration/jscontext.ts @@ -76,7 +76,6 @@ export const createJsContext = ({ sourcegraphBaseUrl }: { sourcegraphBaseUrl: st xhrHeaders: {}, authProviders: [builtinAuthProvider], authMinPasswordLength: 12, - embeddingsEnabled: false, runningOnMacOS: true, primaryLoginProvidersCount: 5, // use noOpTelemetryRecorder since this jsContext is only used for integration tests. diff --git a/client/web/src/jscontext.ts b/client/web/src/jscontext.ts index 1f95a7e66ba..bf300bca760 100644 --- a/client/web/src/jscontext.ts +++ b/client/web/src/jscontext.ts @@ -239,9 +239,6 @@ export interface SourcegraphContext extends Pick, 'e /** Whether the own API is enabled on the Sourcegraph instance */ ownEnabled: boolean - /** Whether embeddings are enabled on this site. */ - embeddingsEnabled: boolean - /** Authentication provider instances in site config. */ authProviders: AuthProvider[] diff --git a/client/web/src/repo/repoRevisionSidebar/cody/backend.tsx b/client/web/src/repo/repoRevisionSidebar/cody/backend.tsx deleted file mode 100644 index 3f582ce2681..00000000000 --- a/client/web/src/repo/repoRevisionSidebar/cody/backend.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { gql } from '@sourcegraph/http-client' - -export const REPO_EMBEDDING_EXISTS_QUERY = gql` - query RepoEmbeddingExistsQuery($repoName: String!) { - repository(name: $repoName) { - id - embeddingExists - } - } -` diff --git a/client/web/src/repo/tree/TreePage.tsx b/client/web/src/repo/tree/TreePage.tsx index 55eb13cf561..40f347efdc0 100644 --- a/client/web/src/repo/tree/TreePage.tsx +++ b/client/web/src/repo/tree/TreePage.tsx @@ -1,4 +1,4 @@ -import React, { type FC, useEffect, useMemo } from 'react' +import React, { useEffect, useMemo, type FC } from 'react' import { mdiAccount, @@ -12,13 +12,12 @@ import { mdiSourceFork, mdiSourceRepository, mdiTag, - mdiVectorPolyline, } from '@mdi/js' import classNames from 'classnames' import { Navigate } from 'react-router-dom' import { catchError } from 'rxjs/operators' -import { asError, encodeURIPathComponent, type ErrorLike, isErrorLike, basename } from '@sourcegraph/common' +import { asError, basename, encodeURIPathComponent, isErrorLike, type ErrorLike } from '@sourcegraph/common' import { gql, useQuery } from '@sourcegraph/http-client' import { fetchTreeEntries } from '@sourcegraph/shared/src/backend/repo' import { displayRepoName } from '@sourcegraph/shared/src/components/RepoLink' @@ -26,7 +25,7 @@ import type { PlatformContextProps } from '@sourcegraph/shared/src/platform/cont import type { Settings } from '@sourcegraph/shared/src/schema/settings.schema' import type { SearchContextProps } from '@sourcegraph/shared/src/search' import type { SettingsCascadeProps } from '@sourcegraph/shared/src/settings/settings' -import { TelemetryV2Props } from '@sourcegraph/shared/src/telemetry' +import type { TelemetryV2Props } from '@sourcegraph/shared/src/telemetry' import type { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' import { toPrettyBlobURL } from '@sourcegraph/shared/src/util/url' import { @@ -47,7 +46,7 @@ import type { AuthenticatedUser } from '../../auth' import type { BatchChangesProps } from '../../batches' import { RepoBatchChangesButton } from '../../batches/RepoBatchChangesButton' import type { CodeIntelligenceProps } from '../../codeintel' -import { isCodyEnabled, isEmbeddingsEnabled } from '../../cody/isCodyEnabled' +import { isCodyEnabled } from '../../cody/isCodyEnabled' import type { BreadcrumbSetters } from '../../components/Breadcrumbs' import { PageTitle } from '../../components/PageTitle' import type { FileCommitsResult, FileCommitsVariables, RepositoryFields } from '../../graphql-operations' @@ -302,20 +301,6 @@ export const TreePage: FC = ({ )} - {isEmbeddingsEnabled() && ( - - - - )} {batchChangesEnabled && !isPackage && ( - {node.embeddingExists && ( - - - - )} {node.mirrorInfo.cloneInProgress && } {node.mirrorInfo.lastError && ( setIsPopoverOpen(event.isOpen)}> @@ -228,17 +217,6 @@ export const RepositoryNode: React.FunctionComponent Search indexing - {isEmbeddingsEnabled() && ( - navigate(`/${node.name}/-/embeddings/configuration`)} - className="p-2" - > - - Embeddings - - )} Completion model (included only for "sourcegraph" provider) -
  • - Embeddings -
      -
    • Provider (e.g., "sourcegraph", "openai", "azure-openai", etc.)
    • -
    • Model
    • -
    -
  • Whether Cody context filters are configured in the site config (true/false)
  • diff --git a/client/web/src/site-admin/SiteAdminRepositoriesContainer.tsx b/client/web/src/site-admin/SiteAdminRepositoriesContainer.tsx index 82012caea08..7b84c03ef0b 100644 --- a/client/web/src/site-admin/SiteAdminRepositoriesContainer.tsx +++ b/client/web/src/site-admin/SiteAdminRepositoriesContainer.tsx @@ -6,7 +6,6 @@ import { useLocation, useNavigate } from 'react-router-dom' import { useQuery } from '@sourcegraph/http-client' import { Container, ErrorAlert, Input, LoadingSpinner, PageSwitcher, useDebounce } from '@sourcegraph/wildcard' -import { isEmbeddingsEnabled } from '../cody/isCodyEnabled' import { EXTERNAL_SERVICE_IDS_AND_NAMES } from '../components/externalServices/backend' import { buildFilterArgs, @@ -17,18 +16,18 @@ import { import { usePageSwitcherPagination } from '../components/FilteredConnection/hooks/usePageSwitcherPagination' import { getFilterFromURL, getUrlQuery } from '../components/FilteredConnection/utils' import { + RepositoryOrderBy, type ExternalServiceIDsAndNamesResult, type ExternalServiceIDsAndNamesVariables, type RepositoriesResult, type RepositoriesVariables, - RepositoryOrderBy, type SiteAdminRepositoryFields, type StatusAndRepoStatsResult, } from '../graphql-operations' import { PageRoutes } from '../routes.constants' import { ValueLegendList, type ValueLegendListProps } from './analytics/components/ValueLegendList' -import { REPOSITORIES_QUERY, REPO_PAGE_POLL_INTERVAL, STATUS_AND_REPO_STATS } from './backend' +import { REPO_PAGE_POLL_INTERVAL, REPOSITORIES_QUERY, STATUS_AND_REPO_STATS } from './backend' import { RepositoryNode } from './RepositoryNode' import styles from './SiteAdminRepositoriesContainer.module.scss' @@ -82,12 +81,6 @@ const STATUS_FILTERS: { [label: string]: FilteredConnectionFilterValue } = { tooltip: 'Show only repositories which are corrupt', args: { corrupted: true }, }, - Embedded: { - label: 'Embedded', - value: 'embedded', - tooltip: 'Show only repositories which are embedded', - args: { notEmbedded: false }, - }, } const FILTERS: FilteredConnectionFilter[] = [ @@ -254,8 +247,6 @@ export const SiteAdminRepositoriesContainer: React.FunctionComponent<{ alwaysPol query: searchQuery, indexed: args.indexed ?? true, notIndexed: args.notIndexed ?? true, - embedded: args.embedded ?? true, - notEmbedded: args.notEmbedded ?? true, failedFetch: args.failedFetch ?? false, corrupted: args.corrupted ?? false, cloneStatus: args.cloneStatus ?? null, @@ -365,22 +356,6 @@ export const SiteAdminRepositoriesContainer: React.FunctionComponent<{ alwaysPol }, ] - if (isEmbeddingsEnabled()) { - items.push({ - value: data.repositoryStats.embedded, - description: 'Embedded', - color: 'var(--body-color)', - position: 'right', - tooltip: 'The number of repositories that have been embedded for Cody.', - onClick: () => - setFilterValues(values => { - const newValues = new Map(values) - newValues.set('status', STATUS_FILTERS.Embedded) - return newValues - }), - }) - } - if (data.repositoryStats.corrupted > 0) { items.push({ value: data.repositoryStats.corrupted, diff --git a/client/web/src/site-admin/backend.ts b/client/web/src/site-admin/backend.ts index 0367a96eac6..63cf9050c81 100644 --- a/client/web/src/site-admin/backend.ts +++ b/client/web/src/site-admin/backend.ts @@ -21,6 +21,9 @@ import type { FeatureFlagFields, FeatureFlagsResult, FeatureFlagsVariables, + GitserverFields, + GitserversResult, + GitserversVariables, OrganizationsConnectionFields, OrganizationsResult, OrganizationsVariables, @@ -54,9 +57,6 @@ import type { WebhookPageHeaderVariables, WebhooksListResult, WebhooksListVariables, - GitserversVariables, - GitserversResult, - GitserverFields, } from '../graphql-operations' import { accessTokenFragment } from '../settings/tokens/AccessTokenNode' @@ -149,7 +149,6 @@ const siteAdminRepositoryFieldsFragment = gql` externalRepository { ...ExternalRepositoryFields } - embeddingExists } ` export const REPOSITORIES_QUERY = gql` @@ -161,8 +160,6 @@ export const REPOSITORIES_QUERY = gql` $query: String $indexed: Boolean $notIndexed: Boolean - $embedded: Boolean - $notEmbedded: Boolean $failedFetch: Boolean $corrupted: Boolean $cloneStatus: CloneStatus @@ -178,8 +175,6 @@ export const REPOSITORIES_QUERY = gql` query: $query indexed: $indexed notIndexed: $notIndexed - embedded: $embedded - notEmbedded: $notEmbedded failedFetch: $failedFetch corrupted: $corrupted cloneStatus: $cloneStatus @@ -344,7 +339,6 @@ export const RECLONE_REPOSITORY_MUTATION = gql` /** * Fetches the site and its configuration. - * * @returns Observable that emits the site */ export function fetchSite(): Observable { @@ -480,7 +474,6 @@ export function fetchAllConfigAndSettings(): Observable { /** * Updates the site's configuration. - * * @returns An observable indicating whether or not a service restart is * required for the update to be applied. */ @@ -753,7 +746,6 @@ export const STATUS_AND_REPO_STATS = gql` failedFetch corrupted indexed - embedded } statusMessages { ... on GitUpdatesDisabled { diff --git a/client/web/src/site-admin/routes.tsx b/client/web/src/site-admin/routes.tsx index ff8c7358000..2ff43218241 100644 --- a/client/web/src/site-admin/routes.tsx +++ b/client/web/src/site-admin/routes.tsx @@ -3,9 +3,7 @@ import { Navigate, useLocation } from 'react-router-dom' import { lazyComponent } from '@sourcegraph/shared/src/util/lazyComponent' import { FeedbackBadge } from '@sourcegraph/wildcard' -import { isEmbeddingsEnabled } from '../cody/isCodyEnabled' import type { BatchSpecsPageProps } from '../enterprise/batches/BatchSpecsPage' -import { CodeIntelConfigurationPolicyPage } from '../enterprise/codeintel/configuration/pages/CodeIntelConfigurationPolicyPage' import { SHOW_BUSINESS_FEATURES } from '../enterprise/dotcom/productSubscriptions/features' import { OwnAnalyticsPage } from '../enterprise/own/admin-ui/OwnAnalyticsPage' import type { SiteAdminRolesPageProps } from '../enterprise/rbac/SiteAdminRolesPage' @@ -185,15 +183,6 @@ const CodeInsightsJobsPage = lazyComponent( ) const OwnStatusPage = lazyComponent(() => import('../enterprise/own/admin-ui/OwnStatusPage'), 'OwnStatusPage') -const SiteAdminCodyPage = lazyComponent( - () => import('../enterprise/site-admin/cody/SiteAdminCodyPage'), - 'SiteAdminCodyPage' -) -const CodyConfigurationPage = lazyComponent( - () => import('../enterprise/cody/configuration/pages/CodyConfigurationPage'), - 'CodyConfigurationPage' -) - export const otherSiteAdminRoutes: readonly SiteAdminAreaRoute[] = [ { path: '/', @@ -488,31 +477,6 @@ export const otherSiteAdminRoutes: readonly SiteAdminAreaRoute[] = [ condition: () => Boolean(window.context?.executorsEnabled), }, - // Cody configuration - { - exact: true, - path: '/cody', - render: () => , - condition: isEmbeddingsEnabled, - }, - { - exact: true, - path: '/embeddings', - render: props => , - condition: isEmbeddingsEnabled, - }, - { - exact: true, - path: '/embeddings/configuration', - render: props => , - condition: isEmbeddingsEnabled, - }, - { - path: '/embeddings/configuration/:id', - render: props => , - condition: isEmbeddingsEnabled, - }, - // rbac-related routes { path: '/roles', diff --git a/client/web/src/site-admin/sidebaritems.ts b/client/web/src/site-admin/sidebaritems.ts index 5b83c5fbcf5..8b8f0babdc0 100644 --- a/client/web/src/site-admin/sidebaritems.ts +++ b/client/web/src/site-admin/sidebaritems.ts @@ -9,7 +9,6 @@ import PackageVariantIcon from 'mdi-react/PackageVariantIcon' import SourceRepositoryIcon from 'mdi-react/SourceRepositoryIcon' import { BatchChangesIcon } from '../batches/icons' -import { CodyPageIcon } from '../cody/chat/CodyPageIcon' import { SHOW_BUSINESS_FEATURES } from '../enterprise/dotcom/productSubscriptions/features' import { checkRequestAccessAllowed } from '../util/checkRequestAccessAllowed' @@ -281,24 +280,6 @@ const codeIntelGroup: SiteAdminSideBarGroup = { condition: ({ license }) => license.isCodeSearchEnabled, } -export const codyGroup: SiteAdminSideBarGroup = { - header: { label: 'Cody', icon: CodyPageIcon }, - items: [ - { - label: 'Embeddings jobs', - to: '/site-admin/embeddings', - exact: true, - condition: () => window.context?.embeddingsEnabled, - }, - { - label: 'Embeddings policies', - to: '/site-admin/embeddings/configuration', - condition: () => window.context?.embeddingsEnabled, - }, - ], - condition: () => Boolean(window.context?.codyEnabled && window.context?.embeddingsEnabled), -} - const usersGroup: SiteAdminSideBarGroup = { header: { label: 'Users & auth', @@ -381,7 +362,6 @@ export const siteAdminSidebarGroups: SiteAdminSideBarGroups = [ configurationGroup, repositoriesGroup, codeIntelGroup, - codyGroup, usersGroup, executorsGroup, maintenanceGroup, diff --git a/cmd/frontend/internal/app/jscontext/jscontext.go b/cmd/frontend/internal/app/jscontext/jscontext.go index 2d3b4105c45..e69f3960717 100644 --- a/cmd/frontend/internal/app/jscontext/jscontext.go +++ b/cmd/frontend/internal/app/jscontext/jscontext.go @@ -244,8 +244,6 @@ type JSContext struct { SearchAggregationEnabled bool `json:"searchAggregationEnabled"` OwnEnabled bool `json:"ownEnabled"` - EmbeddingsEnabled bool `json:"embeddingsEnabled"` - RedirectUnsupportedBrowser bool `json:"RedirectUnsupportedBrowser"` ProductResearchPageEnabled bool `json:"productResearchPageEnabled"` @@ -453,8 +451,6 @@ func NewJSContextFromRequest(req *http.Request, db database.DB) JSContext { SearchAggregationEnabled: true, OwnEnabled: true, - EmbeddingsEnabled: conf.EmbeddingsEnabled(), - ProductResearchPageEnabled: conf.ProductResearchPageEnabled(), ExperimentalFeatures: conf.ExperimentalFeatures(), @@ -500,12 +496,11 @@ func NewJSContextFromRequest(req *http.Request, db database.DB) JSContext { context.ExperimentalFeatures.SearchJobs = pointers.Ptr(false) } - // If the license a Sourcegraph instance is running under does not support Cody features - // we force disable related features (embeddings etc). + // If the license a Sourcegraph instance is running under does not support Cody features, + // we force disable related features. if !context.LicenseInfo.Features.Cody { context.CodyEnabled = false context.CodyEnabledForCurrentUser = false - context.EmbeddingsEnabled = false } return context