diff --git a/packages/backend/server/src/plugins/copilot/workspace/resolver.ts b/packages/backend/server/src/plugins/copilot/workspace/resolver.ts index 0d2aaafaf8..2d733d0403 100644 --- a/packages/backend/server/src/plugins/copilot/workspace/resolver.ts +++ b/packages/backend/server/src/plugins/copilot/workspace/resolver.ts @@ -31,6 +31,7 @@ import { MAX_EMBEDDABLE_SIZE } from '../types'; import { CopilotWorkspaceService } from './service'; import { CopilotWorkspaceFileType, + CopilotWorkspaceIgnoredDocType, PaginatedCopilotWorkspaceFileType, PaginatedIgnoredDocsType, } from './types'; @@ -90,6 +91,18 @@ export class CopilotWorkspaceEmbeddingConfigResolver { return paginate(ignoredDocs, 'createdAt', pagination, totalCount); } + @ResolveField(() => [CopilotWorkspaceIgnoredDocType], { + complexity: 2, + }) + async allIgnoredDocs( + @Parent() config: CopilotWorkspaceConfigType + ): Promise { + const [ignoredDocs] = await this.copilotWorkspace.listIgnoredDocs( + config.workspaceId + ); + + return ignoredDocs; + } @Mutation(() => Number, { name: 'updateWorkspaceEmbeddingIgnoredDocs', complexity: 2, diff --git a/packages/backend/server/src/schema.gql b/packages/backend/server/src/schema.gql index 09388fca12..12961a7750 100644 --- a/packages/backend/server/src/schema.gql +++ b/packages/backend/server/src/schema.gql @@ -273,6 +273,7 @@ type CopilotSessionType { } type CopilotWorkspaceConfig { + allIgnoredDocs: [CopilotWorkspaceIgnoredDoc!]! files(pagination: PaginationInput!): PaginatedCopilotWorkspaceFileType! ignoredDocs(pagination: PaginationInput!): PaginatedIgnoredDocsType! workspaceId: String! diff --git a/packages/common/graphql/src/graphql/copilot-workspace-get-files.gql b/packages/common/graphql/src/graphql/copilot-workspace-file-get.gql similarity index 100% rename from packages/common/graphql/src/graphql/copilot-workspace-get-files.gql rename to packages/common/graphql/src/graphql/copilot-workspace-file-get.gql diff --git a/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-add.gql b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-add.gql new file mode 100644 index 0000000000..e73e612b01 --- /dev/null +++ b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-add.gql @@ -0,0 +1,3 @@ +mutation addWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $add: [String!]!) { + updateWorkspaceEmbeddingIgnoredDocs(workspaceId: $workspaceId, add: $add) +} diff --git a/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-get-all.gql b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-get-all.gql new file mode 100644 index 0000000000..d1b2e8eb14 --- /dev/null +++ b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-get-all.gql @@ -0,0 +1,10 @@ +query getAllWorkspaceEmbeddingIgnoredDocs($workspaceId: String!) { + workspace(id: $workspaceId) { + embedding { + allIgnoredDocs { + docId + createdAt + } + } + } +} diff --git a/packages/common/graphql/src/graphql/copilot-workspace-get-ignored-docs.gql b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-get.gql similarity index 100% rename from packages/common/graphql/src/graphql/copilot-workspace-get-ignored-docs.gql rename to packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-get.gql diff --git a/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-remove.gql b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-remove.gql new file mode 100644 index 0000000000..51659dfbed --- /dev/null +++ b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs-remove.gql @@ -0,0 +1,3 @@ +mutation removeWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $remove: [String!]!) { + updateWorkspaceEmbeddingIgnoredDocs(workspaceId: $workspaceId, remove: $remove) +} diff --git a/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs.gql b/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs.gql deleted file mode 100644 index 7ecabdb5d6..0000000000 --- a/packages/common/graphql/src/graphql/copilot-workspace-ignored-docs.gql +++ /dev/null @@ -1,3 +0,0 @@ -mutation updateWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $add: [String!], $remove: [String!]) { - updateWorkspaceEmbeddingIgnoredDocs(workspaceId: $workspaceId, add: $add, remove: $remove) -} diff --git a/packages/common/graphql/src/graphql/index.ts b/packages/common/graphql/src/graphql/index.ts index 338f012447..f5f6944342 100644 --- a/packages/common/graphql/src/graphql/index.ts +++ b/packages/common/graphql/src/graphql/index.ts @@ -756,14 +756,6 @@ export const addWorkspaceEmbeddingFilesMutation = { file: true, }; -export const removeWorkspaceEmbeddingFilesMutation = { - id: 'removeWorkspaceEmbeddingFilesMutation' as const, - op: 'removeWorkspaceEmbeddingFiles', - query: `mutation removeWorkspaceEmbeddingFiles($workspaceId: String!, $fileId: String!) { - removeWorkspaceEmbeddingFiles(workspaceId: $workspaceId, fileId: $fileId) -}`, -}; - export const getWorkspaceEmbeddingFilesQuery = { id: 'getWorkspaceEmbeddingFilesQuery' as const, op: 'getWorkspaceEmbeddingFiles', @@ -791,6 +783,37 @@ export const getWorkspaceEmbeddingFilesQuery = { }`, }; +export const removeWorkspaceEmbeddingFilesMutation = { + id: 'removeWorkspaceEmbeddingFilesMutation' as const, + op: 'removeWorkspaceEmbeddingFiles', + query: `mutation removeWorkspaceEmbeddingFiles($workspaceId: String!, $fileId: String!) { + removeWorkspaceEmbeddingFiles(workspaceId: $workspaceId, fileId: $fileId) +}`, +}; + +export const addWorkspaceEmbeddingIgnoredDocsMutation = { + id: 'addWorkspaceEmbeddingIgnoredDocsMutation' as const, + op: 'addWorkspaceEmbeddingIgnoredDocs', + query: `mutation addWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $add: [String!]!) { + updateWorkspaceEmbeddingIgnoredDocs(workspaceId: $workspaceId, add: $add) +}`, +}; + +export const getAllWorkspaceEmbeddingIgnoredDocsQuery = { + id: 'getAllWorkspaceEmbeddingIgnoredDocsQuery' as const, + op: 'getAllWorkspaceEmbeddingIgnoredDocs', + query: `query getAllWorkspaceEmbeddingIgnoredDocs($workspaceId: String!) { + workspace(id: $workspaceId) { + embedding { + allIgnoredDocs { + docId + createdAt + } + } + } +}`, +}; + export const getWorkspaceEmbeddingIgnoredDocsQuery = { id: 'getWorkspaceEmbeddingIgnoredDocsQuery' as const, op: 'getWorkspaceEmbeddingIgnoredDocs', @@ -815,15 +838,11 @@ export const getWorkspaceEmbeddingIgnoredDocsQuery = { }`, }; -export const updateWorkspaceEmbeddingIgnoredDocsMutation = { - id: 'updateWorkspaceEmbeddingIgnoredDocsMutation' as const, - op: 'updateWorkspaceEmbeddingIgnoredDocs', - query: `mutation updateWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $add: [String!], $remove: [String!]) { - updateWorkspaceEmbeddingIgnoredDocs( - workspaceId: $workspaceId - add: $add - remove: $remove - ) +export const removeWorkspaceEmbeddingIgnoredDocsMutation = { + id: 'removeWorkspaceEmbeddingIgnoredDocsMutation' as const, + op: 'removeWorkspaceEmbeddingIgnoredDocs', + query: `mutation removeWorkspaceEmbeddingIgnoredDocs($workspaceId: String!, $remove: [String!]!) { + updateWorkspaceEmbeddingIgnoredDocs(workspaceId: $workspaceId, remove: $remove) }`, }; diff --git a/packages/common/graphql/src/schema.ts b/packages/common/graphql/src/schema.ts index 2c2b144848..b01b1e2888 100644 --- a/packages/common/graphql/src/schema.ts +++ b/packages/common/graphql/src/schema.ts @@ -366,6 +366,7 @@ export interface CopilotSessionType { export interface CopilotWorkspaceConfig { __typename?: 'CopilotWorkspaceConfig'; + allIgnoredDocs: Array; files: PaginatedCopilotWorkspaceFileType; ignoredDocs: PaginatedIgnoredDocsType; workspaceId: Scalars['String']['output']; @@ -3273,16 +3274,6 @@ export type AddWorkspaceEmbeddingFilesMutation = { }; }; -export type RemoveWorkspaceEmbeddingFilesMutationVariables = Exact<{ - workspaceId: Scalars['String']['input']; - fileId: Scalars['String']['input']; -}>; - -export type RemoveWorkspaceEmbeddingFilesMutation = { - __typename?: 'Mutation'; - removeWorkspaceEmbeddingFiles: boolean; -}; - export type GetWorkspaceEmbeddingFilesQueryVariables = Exact<{ workspaceId: Scalars['String']['input']; pagination: PaginationInput; @@ -3318,6 +3309,45 @@ export type GetWorkspaceEmbeddingFilesQuery = { }; }; +export type RemoveWorkspaceEmbeddingFilesMutationVariables = Exact<{ + workspaceId: Scalars['String']['input']; + fileId: Scalars['String']['input']; +}>; + +export type RemoveWorkspaceEmbeddingFilesMutation = { + __typename?: 'Mutation'; + removeWorkspaceEmbeddingFiles: boolean; +}; + +export type AddWorkspaceEmbeddingIgnoredDocsMutationVariables = Exact<{ + workspaceId: Scalars['String']['input']; + add: Array | Scalars['String']['input']; +}>; + +export type AddWorkspaceEmbeddingIgnoredDocsMutation = { + __typename?: 'Mutation'; + updateWorkspaceEmbeddingIgnoredDocs: number; +}; + +export type GetAllWorkspaceEmbeddingIgnoredDocsQueryVariables = Exact<{ + workspaceId: Scalars['String']['input']; +}>; + +export type GetAllWorkspaceEmbeddingIgnoredDocsQuery = { + __typename?: 'Query'; + workspace: { + __typename?: 'WorkspaceType'; + embedding: { + __typename?: 'CopilotWorkspaceConfig'; + allIgnoredDocs: Array<{ + __typename?: 'CopilotWorkspaceIgnoredDoc'; + docId: string; + createdAt: string; + }>; + }; + }; +}; + export type GetWorkspaceEmbeddingIgnoredDocsQueryVariables = Exact<{ workspaceId: Scalars['String']['input']; pagination: PaginationInput; @@ -3350,17 +3380,12 @@ export type GetWorkspaceEmbeddingIgnoredDocsQuery = { }; }; -export type UpdateWorkspaceEmbeddingIgnoredDocsMutationVariables = Exact<{ +export type RemoveWorkspaceEmbeddingIgnoredDocsMutationVariables = Exact<{ workspaceId: Scalars['String']['input']; - add?: InputMaybe< - Array | Scalars['String']['input'] - >; - remove?: InputMaybe< - Array | Scalars['String']['input'] - >; + remove: Array | Scalars['String']['input']; }>; -export type UpdateWorkspaceEmbeddingIgnoredDocsMutation = { +export type RemoveWorkspaceEmbeddingIgnoredDocsMutation = { __typename?: 'Mutation'; updateWorkspaceEmbeddingIgnoredDocs: number; }; @@ -4628,6 +4653,11 @@ export type Queries = variables: GetWorkspaceEmbeddingFilesQueryVariables; response: GetWorkspaceEmbeddingFilesQuery; } + | { + name: 'getAllWorkspaceEmbeddingIgnoredDocsQuery'; + variables: GetAllWorkspaceEmbeddingIgnoredDocsQueryVariables; + response: GetAllWorkspaceEmbeddingIgnoredDocsQuery; + } | { name: 'getWorkspaceEmbeddingIgnoredDocsQuery'; variables: GetWorkspaceEmbeddingIgnoredDocsQueryVariables; @@ -5001,9 +5031,14 @@ export type Mutations = response: RemoveWorkspaceEmbeddingFilesMutation; } | { - name: 'updateWorkspaceEmbeddingIgnoredDocsMutation'; - variables: UpdateWorkspaceEmbeddingIgnoredDocsMutationVariables; - response: UpdateWorkspaceEmbeddingIgnoredDocsMutation; + name: 'addWorkspaceEmbeddingIgnoredDocsMutation'; + variables: AddWorkspaceEmbeddingIgnoredDocsMutationVariables; + response: AddWorkspaceEmbeddingIgnoredDocsMutation; + } + | { + name: 'removeWorkspaceEmbeddingIgnoredDocsMutation'; + variables: RemoveWorkspaceEmbeddingIgnoredDocsMutationVariables; + response: RemoveWorkspaceEmbeddingIgnoredDocsMutation; } | { name: 'createCheckoutSessionMutation';