chore(server): return parent id of sessions (#10638)

This commit is contained in:
darkskygit
2025-03-05 14:03:36 +00:00
parent 43ded6aa38
commit fbb6df3da8
7 changed files with 92 additions and 18 deletions

View File

@@ -280,6 +280,9 @@ class CopilotSessionType {
@Field(() => ID) @Field(() => ID)
id!: string; id!: string;
@Field(() => ID, { nullable: true })
parentSessionId!: string | undefined;
@Field(() => String) @Field(() => String)
promptName!: string; promptName!: string;
} }

View File

@@ -401,7 +401,13 @@ export class ChatSessionService {
workspaceId: string, workspaceId: string,
docId?: string, docId?: string,
options?: { action?: boolean } options?: { action?: boolean }
): Promise<Array<{ id: string; promptName: string }>> { ): Promise<
Array<{
id: string;
parentSessionId?: string;
promptName: string;
}>
> {
return await this.db.aiSession return await this.db.aiSession
.findMany({ .findMany({
where: { where: {
@@ -415,12 +421,14 @@ export class ChatSessionService {
}, },
select: { select: {
id: true, id: true,
parentSessionId: true,
promptName: true, promptName: true,
}, },
}) })
.then(sessions => .then(sessions =>
sessions.map(({ id, promptName }) => ({ sessions.map(({ id, parentSessionId, promptName }) => ({
id, id,
parentSessionId: parentSessionId || undefined,
promptName, promptName,
})) }))
); );

View File

@@ -197,6 +197,7 @@ type CopilotQuota {
type CopilotSessionType { type CopilotSessionType {
id: ID! id: ID!
parentSessionId: ID
promptName: String! promptName: String!
} }

View File

@@ -7,6 +7,7 @@ query getCopilotSessions(
copilot(workspaceId: $workspaceId) { copilot(workspaceId: $workspaceId) {
sessions(docId: $docId, options: $options) { sessions(docId: $docId, options: $options) {
id id
parentSessionId
promptName promptName
} }
} }

View File

@@ -426,6 +426,7 @@ query getCopilotSessions($workspaceId: String!, $docId: String, $options: QueryC
copilot(workspaceId: $workspaceId) { copilot(workspaceId: $workspaceId) {
sessions(docId: $docId, options: $options) { sessions(docId: $docId, options: $options) {
id id
parentSessionId
promptName promptName
} }
} }
@@ -1700,13 +1701,20 @@ export const getWorkspaceRolePermissionsQuery = {
query getWorkspaceRolePermissions($id: String!) { query getWorkspaceRolePermissions($id: String!) {
workspaceRolePermissions(id: $id) { workspaceRolePermissions(id: $id) {
permissions { permissions {
Workspace_Adminitrators_Manage
Workspace_Blobs_List
Workspace_Blobs_Read
Workspace_Blobs_Write
Workspace_Copilot
Workspace_CreateDoc Workspace_CreateDoc
Workspace_Delete Workspace_Delete
Workspace_Organize_Read Workspace_Organize_Read
Workspace_Payment_Manage
Workspace_Properties_Create Workspace_Properties_Create
Workspace_Properties_Delete Workspace_Properties_Delete
Workspace_Properties_Read Workspace_Properties_Read
Workspace_Properties_Update Workspace_Properties_Update
Workspace_Read
Workspace_Settings_Read Workspace_Settings_Read
Workspace_Settings_Update Workspace_Settings_Update
Workspace_Sync Workspace_Sync

View File

@@ -1,13 +1,20 @@
query getWorkspaceRolePermissions($id: String!) { query getWorkspaceRolePermissions($id: String!) {
workspaceRolePermissions(id: $id) { workspaceRolePermissions(id: $id) {
permissions { permissions {
Workspace_Adminitrators_Manage
Workspace_Blobs_List
Workspace_Blobs_Read
Workspace_Blobs_Write
Workspace_Copilot
Workspace_CreateDoc Workspace_CreateDoc
Workspace_Delete Workspace_Delete
Workspace_Organize_Read Workspace_Organize_Read
Workspace_Payment_Manage
Workspace_Properties_Create Workspace_Properties_Create
Workspace_Properties_Delete Workspace_Properties_Delete
Workspace_Properties_Read Workspace_Properties_Read
Workspace_Properties_Update Workspace_Properties_Update
Workspace_Read
Workspace_Settings_Read Workspace_Settings_Read
Workspace_Settings_Update Workspace_Settings_Update
Workspace_Sync Workspace_Sync

View File

@@ -82,6 +82,11 @@ export interface Copilot {
histories: Array<CopilotHistories>; histories: Array<CopilotHistories>;
/** Get the quota of the user in the workspace */ /** Get the quota of the user in the workspace */
quota: CopilotQuota; quota: CopilotQuota;
/**
* Get the session id list in the workspace
* @deprecated Use `sessions` instead
*/
sessionIds: Array<Scalars['String']['output']>;
/** Get the session list in the workspace */ /** Get the session list in the workspace */
sessions: Array<CopilotSessionType>; sessions: Array<CopilotSessionType>;
workspaceId: Maybe<Scalars['ID']['output']>; workspaceId: Maybe<Scalars['ID']['output']>;
@@ -97,6 +102,11 @@ export interface CopilotHistoriesArgs {
options?: InputMaybe<QueryChatHistoriesInput>; options?: InputMaybe<QueryChatHistoriesInput>;
} }
export interface CopilotSessionIdsArgs {
docId?: InputMaybe<Scalars['String']['input']>;
options?: InputMaybe<QueryChatSessionsInput>;
}
export interface CopilotSessionsArgs { export interface CopilotSessionsArgs {
docId?: InputMaybe<Scalars['String']['input']>; docId?: InputMaybe<Scalars['String']['input']>;
options?: InputMaybe<QueryChatSessionsInput>; options?: InputMaybe<QueryChatSessionsInput>;
@@ -262,6 +272,7 @@ export interface CopilotQuota {
export interface CopilotSessionType { export interface CopilotSessionType {
__typename?: 'CopilotSessionType'; __typename?: 'CopilotSessionType';
id: Scalars['ID']['output']; id: Scalars['ID']['output'];
parentSessionId: Maybe<Scalars['ID']['output']>;
promptName: Scalars['String']['output']; promptName: Scalars['String']['output'];
} }
@@ -389,6 +400,12 @@ export interface DocTypeGrantedUsersListArgs {
pagination: PaginationInput; pagination: PaginationInput;
} }
export interface DocUpdateBlockedDataType {
__typename?: 'DocUpdateBlockedDataType';
docId: Scalars['String']['output'];
spaceId: Scalars['String']['output'];
}
export interface EditorType { export interface EditorType {
__typename?: 'EditorType'; __typename?: 'EditorType';
avatarUrl: Maybe<Scalars['String']['output']>; avatarUrl: Maybe<Scalars['String']['output']>;
@@ -409,6 +426,7 @@ export type ErrorDataUnion =
| DocActionDeniedDataType | DocActionDeniedDataType
| DocHistoryNotFoundDataType | DocHistoryNotFoundDataType
| DocNotFoundDataType | DocNotFoundDataType
| DocUpdateBlockedDataType
| ExpectToGrantDocUserRolesDataType | ExpectToGrantDocUserRolesDataType
| ExpectToRevokeDocUserRolesDataType | ExpectToRevokeDocUserRolesDataType
| ExpectToUpdateDocUserRoleDataType | ExpectToUpdateDocUserRoleDataType
@@ -416,6 +434,7 @@ export type ErrorDataUnion =
| InvalidEmailDataType | InvalidEmailDataType
| InvalidHistoryTimestampDataType | InvalidHistoryTimestampDataType
| InvalidLicenseUpdateParamsDataType | InvalidLicenseUpdateParamsDataType
| InvalidOauthCallbackCodeDataType
| InvalidPasswordLengthDataType | InvalidPasswordLengthDataType
| InvalidRuntimeConfigTypeDataType | InvalidRuntimeConfigTypeDataType
| MemberNotFoundInSpaceDataType | MemberNotFoundInSpaceDataType
@@ -452,6 +471,7 @@ export enum ErrorNames {
CANNOT_DELETE_OWN_ACCOUNT = 'CANNOT_DELETE_OWN_ACCOUNT', CANNOT_DELETE_OWN_ACCOUNT = 'CANNOT_DELETE_OWN_ACCOUNT',
CANT_UPDATE_ONETIME_PAYMENT_SUBSCRIPTION = 'CANT_UPDATE_ONETIME_PAYMENT_SUBSCRIPTION', CANT_UPDATE_ONETIME_PAYMENT_SUBSCRIPTION = 'CANT_UPDATE_ONETIME_PAYMENT_SUBSCRIPTION',
CAN_NOT_BATCH_GRANT_DOC_OWNER_PERMISSIONS = 'CAN_NOT_BATCH_GRANT_DOC_OWNER_PERMISSIONS', CAN_NOT_BATCH_GRANT_DOC_OWNER_PERMISSIONS = 'CAN_NOT_BATCH_GRANT_DOC_OWNER_PERMISSIONS',
CAN_NOT_REVOKE_YOURSELF = 'CAN_NOT_REVOKE_YOURSELF',
CAPTCHA_VERIFICATION_FAILED = 'CAPTCHA_VERIFICATION_FAILED', CAPTCHA_VERIFICATION_FAILED = 'CAPTCHA_VERIFICATION_FAILED',
COPILOT_ACTION_TAKEN = 'COPILOT_ACTION_TAKEN', COPILOT_ACTION_TAKEN = 'COPILOT_ACTION_TAKEN',
COPILOT_CONTEXT_FILE_NOT_SUPPORTED = 'COPILOT_CONTEXT_FILE_NOT_SUPPORTED', COPILOT_CONTEXT_FILE_NOT_SUPPORTED = 'COPILOT_CONTEXT_FILE_NOT_SUPPORTED',
@@ -474,6 +494,7 @@ export enum ErrorNames {
DOC_HISTORY_NOT_FOUND = 'DOC_HISTORY_NOT_FOUND', DOC_HISTORY_NOT_FOUND = 'DOC_HISTORY_NOT_FOUND',
DOC_IS_NOT_PUBLIC = 'DOC_IS_NOT_PUBLIC', DOC_IS_NOT_PUBLIC = 'DOC_IS_NOT_PUBLIC',
DOC_NOT_FOUND = 'DOC_NOT_FOUND', DOC_NOT_FOUND = 'DOC_NOT_FOUND',
DOC_UPDATE_BLOCKED = 'DOC_UPDATE_BLOCKED',
EARLY_ACCESS_REQUIRED = 'EARLY_ACCESS_REQUIRED', EARLY_ACCESS_REQUIRED = 'EARLY_ACCESS_REQUIRED',
EMAIL_ALREADY_USED = 'EMAIL_ALREADY_USED', EMAIL_ALREADY_USED = 'EMAIL_ALREADY_USED',
EMAIL_TOKEN_NOT_FOUND = 'EMAIL_TOKEN_NOT_FOUND', EMAIL_TOKEN_NOT_FOUND = 'EMAIL_TOKEN_NOT_FOUND',
@@ -495,6 +516,7 @@ export enum ErrorNames {
INVALID_LICENSE_SESSION_ID = 'INVALID_LICENSE_SESSION_ID', INVALID_LICENSE_SESSION_ID = 'INVALID_LICENSE_SESSION_ID',
INVALID_LICENSE_TO_ACTIVATE = 'INVALID_LICENSE_TO_ACTIVATE', INVALID_LICENSE_TO_ACTIVATE = 'INVALID_LICENSE_TO_ACTIVATE',
INVALID_LICENSE_UPDATE_PARAMS = 'INVALID_LICENSE_UPDATE_PARAMS', INVALID_LICENSE_UPDATE_PARAMS = 'INVALID_LICENSE_UPDATE_PARAMS',
INVALID_OAUTH_CALLBACK_CODE = 'INVALID_OAUTH_CALLBACK_CODE',
INVALID_OAUTH_CALLBACK_STATE = 'INVALID_OAUTH_CALLBACK_STATE', INVALID_OAUTH_CALLBACK_STATE = 'INVALID_OAUTH_CALLBACK_STATE',
INVALID_PASSWORD_LENGTH = 'INVALID_PASSWORD_LENGTH', INVALID_PASSWORD_LENGTH = 'INVALID_PASSWORD_LENGTH',
INVALID_RUNTIME_CONFIG_TYPE = 'INVALID_RUNTIME_CONFIG_TYPE', INVALID_RUNTIME_CONFIG_TYPE = 'INVALID_RUNTIME_CONFIG_TYPE',
@@ -511,6 +533,7 @@ export enum ErrorNames {
NO_COPILOT_PROVIDER_AVAILABLE = 'NO_COPILOT_PROVIDER_AVAILABLE', NO_COPILOT_PROVIDER_AVAILABLE = 'NO_COPILOT_PROVIDER_AVAILABLE',
OAUTH_ACCOUNT_ALREADY_CONNECTED = 'OAUTH_ACCOUNT_ALREADY_CONNECTED', OAUTH_ACCOUNT_ALREADY_CONNECTED = 'OAUTH_ACCOUNT_ALREADY_CONNECTED',
OAUTH_STATE_EXPIRED = 'OAUTH_STATE_EXPIRED', OAUTH_STATE_EXPIRED = 'OAUTH_STATE_EXPIRED',
OWNER_CAN_NOT_LEAVE_WORKSPACE = 'OWNER_CAN_NOT_LEAVE_WORKSPACE',
PASSWORD_REQUIRED = 'PASSWORD_REQUIRED', PASSWORD_REQUIRED = 'PASSWORD_REQUIRED',
QUERY_TOO_LONG = 'QUERY_TOO_LONG', QUERY_TOO_LONG = 'QUERY_TOO_LONG',
RUNTIME_CONFIG_NOT_FOUND = 'RUNTIME_CONFIG_NOT_FOUND', RUNTIME_CONFIG_NOT_FOUND = 'RUNTIME_CONFIG_NOT_FOUND',
@@ -622,6 +645,12 @@ export interface InvalidLicenseUpdateParamsDataType {
reason: Scalars['String']['output']; reason: Scalars['String']['output'];
} }
export interface InvalidOauthCallbackCodeDataType {
__typename?: 'InvalidOauthCallbackCodeDataType';
body: Scalars['String']['output'];
status: Scalars['Int']['output'];
}
export interface InvalidPasswordLengthDataType { export interface InvalidPasswordLengthDataType {
__typename?: 'InvalidPasswordLengthDataType'; __typename?: 'InvalidPasswordLengthDataType';
max: Scalars['Int']['output']; max: Scalars['Int']['output'];
@@ -787,7 +816,7 @@ export interface Mutation {
/** add a doc to context */ /** add a doc to context */
addContextDoc: Array<CopilotContextListItem>; addContextDoc: Array<CopilotContextListItem>;
addWorkspaceFeature: Scalars['Boolean']['output']; addWorkspaceFeature: Scalars['Boolean']['output'];
approveMember: Scalars['String']['output']; approveMember: Scalars['Boolean']['output'];
cancelSubscription: SubscriptionType; cancelSubscription: SubscriptionType;
changeEmail: UserType; changeEmail: UserType;
changePassword: Scalars['Boolean']['output']; changePassword: Scalars['Boolean']['output'];
@@ -823,7 +852,7 @@ export interface Mutation {
forkCopilotSession: Scalars['String']['output']; forkCopilotSession: Scalars['String']['output'];
generateLicenseKey: Scalars['String']['output']; generateLicenseKey: Scalars['String']['output'];
grantDocUserRoles: Scalars['Boolean']['output']; grantDocUserRoles: Scalars['Boolean']['output'];
grantMember: Scalars['String']['output']; grantMember: Scalars['Boolean']['output'];
invite: Scalars['String']['output']; invite: Scalars['String']['output'];
inviteBatch: Array<InviteResult>; inviteBatch: Array<InviteResult>;
leaveWorkspace: Scalars['Boolean']['output']; leaveWorkspace: Scalars['Boolean']['output'];
@@ -1239,15 +1268,16 @@ export interface Query {
error: ErrorDataUnion; error: ErrorDataUnion;
/** send workspace invitation */ /** send workspace invitation */
getInviteInfo: InvitationType; getInviteInfo: InvitationType;
/** Get is admin of workspace */
isAdmin: Scalars['Boolean']['output'];
/** Get is owner of workspace */
isOwner: Scalars['Boolean']['output'];
/** /**
* List blobs of workspace * Get is admin of workspace
* @deprecated use `workspace.blobs` instead * @deprecated use WorkspaceType[role] instead
*/ */
listBlobs: Array<Scalars['String']['output']>; isAdmin: Scalars['Boolean']['output'];
/**
* Get is owner of workspace
* @deprecated use WorkspaceType[role] instead
*/
isOwner: Scalars['Boolean']['output'];
/** List all copilot prompts */ /** List all copilot prompts */
listCopilotPrompts: Array<CopilotPromptType>; listCopilotPrompts: Array<CopilotPromptType>;
prices: Array<SubscriptionPrice>; prices: Array<SubscriptionPrice>;
@@ -1268,7 +1298,10 @@ export interface Query {
usersCount: Scalars['Int']['output']; usersCount: Scalars['Int']['output'];
/** Get workspace by id */ /** Get workspace by id */
workspace: WorkspaceType; workspace: WorkspaceType;
/** Get workspace role permissions */ /**
* Get workspace role permissions
* @deprecated use WorkspaceType[permissions] instead
*/
workspaceRolePermissions: WorkspaceRolePermissions; workspaceRolePermissions: WorkspaceRolePermissions;
/** Get all accessible workspaces for current user */ /** Get all accessible workspaces for current user */
workspaces: Array<WorkspaceType>; workspaces: Array<WorkspaceType>;
@@ -1290,10 +1323,6 @@ export interface QueryIsOwnerArgs {
workspaceId: Scalars['String']['input']; workspaceId: Scalars['String']['input'];
} }
export interface QueryListBlobsArgs {
workspaceId: Scalars['String']['input'];
}
export interface QueryUserArgs { export interface QueryUserArgs {
email: Scalars['String']['input']; email: Scalars['String']['input'];
} }
@@ -1706,13 +1735,20 @@ export interface WorkspacePermissionNotFoundDataType {
export interface WorkspacePermissions { export interface WorkspacePermissions {
__typename?: 'WorkspacePermissions'; __typename?: 'WorkspacePermissions';
Workspace_Adminitrators_Manage: Scalars['Boolean']['output'];
Workspace_Blobs_List: Scalars['Boolean']['output'];
Workspace_Blobs_Read: Scalars['Boolean']['output'];
Workspace_Blobs_Write: Scalars['Boolean']['output'];
Workspace_Copilot: Scalars['Boolean']['output'];
Workspace_CreateDoc: Scalars['Boolean']['output']; Workspace_CreateDoc: Scalars['Boolean']['output'];
Workspace_Delete: Scalars['Boolean']['output']; Workspace_Delete: Scalars['Boolean']['output'];
Workspace_Organize_Read: Scalars['Boolean']['output']; Workspace_Organize_Read: Scalars['Boolean']['output'];
Workspace_Payment_Manage: Scalars['Boolean']['output'];
Workspace_Properties_Create: Scalars['Boolean']['output']; Workspace_Properties_Create: Scalars['Boolean']['output'];
Workspace_Properties_Delete: Scalars['Boolean']['output']; Workspace_Properties_Delete: Scalars['Boolean']['output'];
Workspace_Properties_Read: Scalars['Boolean']['output']; Workspace_Properties_Read: Scalars['Boolean']['output'];
Workspace_Properties_Update: Scalars['Boolean']['output']; Workspace_Properties_Update: Scalars['Boolean']['output'];
Workspace_Read: Scalars['Boolean']['output'];
Workspace_Settings_Read: Scalars['Boolean']['output']; Workspace_Settings_Read: Scalars['Boolean']['output'];
Workspace_Settings_Update: Scalars['Boolean']['output']; Workspace_Settings_Update: Scalars['Boolean']['output'];
Workspace_Sync: Scalars['Boolean']['output']; Workspace_Sync: Scalars['Boolean']['output'];
@@ -1785,6 +1821,8 @@ export interface WorkspaceType {
owner: UserType; owner: UserType;
/** Cloud page metadata of workspace */ /** Cloud page metadata of workspace */
pageMeta: WorkspacePageMeta; pageMeta: WorkspacePageMeta;
/** map of action permissions */
permissions: WorkspacePermissions;
/** is Public workspace */ /** is Public workspace */
public: Scalars['Boolean']['output']; public: Scalars['Boolean']['output'];
/** Get public docs of a workspace */ /** Get public docs of a workspace */
@@ -2247,6 +2285,7 @@ export type GetCopilotSessionsQuery = {
sessions: Array<{ sessions: Array<{
__typename?: 'CopilotSessionType'; __typename?: 'CopilotSessionType';
id: string; id: string;
parentSessionId: string | null;
promptName: string; promptName: string;
}>; }>;
}; };
@@ -3396,13 +3435,20 @@ export type GetWorkspaceRolePermissionsQuery = {
__typename?: 'WorkspaceRolePermissions'; __typename?: 'WorkspaceRolePermissions';
permissions: { permissions: {
__typename?: 'WorkspacePermissions'; __typename?: 'WorkspacePermissions';
Workspace_Adminitrators_Manage: boolean;
Workspace_Blobs_List: boolean;
Workspace_Blobs_Read: boolean;
Workspace_Blobs_Write: boolean;
Workspace_Copilot: boolean;
Workspace_CreateDoc: boolean; Workspace_CreateDoc: boolean;
Workspace_Delete: boolean; Workspace_Delete: boolean;
Workspace_Organize_Read: boolean; Workspace_Organize_Read: boolean;
Workspace_Payment_Manage: boolean;
Workspace_Properties_Create: boolean; Workspace_Properties_Create: boolean;
Workspace_Properties_Delete: boolean; Workspace_Properties_Delete: boolean;
Workspace_Properties_Read: boolean; Workspace_Properties_Read: boolean;
Workspace_Properties_Update: boolean; Workspace_Properties_Update: boolean;
Workspace_Read: boolean;
Workspace_Settings_Read: boolean; Workspace_Settings_Read: boolean;
Workspace_Settings_Update: boolean; Workspace_Settings_Update: boolean;
Workspace_Sync: boolean; Workspace_Sync: boolean;
@@ -3420,7 +3466,7 @@ export type ApproveWorkspaceTeamMemberMutationVariables = Exact<{
export type ApproveWorkspaceTeamMemberMutation = { export type ApproveWorkspaceTeamMemberMutation = {
__typename?: 'Mutation'; __typename?: 'Mutation';
approveMember: string; approveMember: boolean;
}; };
export type GrantWorkspaceTeamMemberMutationVariables = Exact<{ export type GrantWorkspaceTeamMemberMutationVariables = Exact<{
@@ -3431,7 +3477,7 @@ export type GrantWorkspaceTeamMemberMutationVariables = Exact<{
export type GrantWorkspaceTeamMemberMutation = { export type GrantWorkspaceTeamMemberMutation = {
__typename?: 'Mutation'; __typename?: 'Mutation';
grantMember: string; grantMember: boolean;
}; };
export type Queries = export type Queries =