hunk.code_window:     openQuickSearchModalAtom
     );
     const currentWorkspace = useService(Workspace);
     const { pageId } = useParams();
     const blockSuiteWorkspace = currentWorkspace.blockSuiteWorkspace;
     const pageMeta = useBlockSuiteDocMeta(
       currentWorkspace.blockSuiteWorkspace
     ).find(meta => meta.id === pageId);
     if (!blockSuiteWorkspace) {
       return null;
     }
     return (
       <CMDKQuickSearchModal
  
hunk.labels: keep keep keep replace replace replace replace replace replace replace replace replace replace keep keep keep
hunk.after_edit:   const workbench = useService(Workbench);
     const currentPath = useLiveData(workbench.location.map(l => l.pathname));
     const pageRecordList = useService(PageRecordList);
     const currentPathId = matchPath('/:pageId', currentPath)?.params.pageId;
     // TODO: getting pageid from route is fragile, get current page from context
     const currentPage = useLiveData(
       currentPathId ? pageRecordList.record(currentPathId) : null
     );
     const pageMeta = useLiveData(currentPage?.meta);
  
hunk.file_path: packages/frontend/core/src/layouts/workspace-layout.tsx
hunk.type: replace
file: import {
    Field,
    ID,
    InputType,
    ObjectType,
    OmitType,
    PartialType,
    PickType,
    registerEnumType,
  } from '@nestjs/graphql';
  import type { Workspace } from '@prisma/client';
  import { SafeIntResolver } from 'graphql-scalars';
  
  import { UserType } from '../users/types';
  
  export enum Permission {
    Read = 0,
    Write = 1,
    Admin = 10,
    Owner = 99,
  }
  
  registerEnumType(Permission, {
    name: 'Permission',
    description: 'User permission in workspace',
  });
  
  @ObjectType()
  export class InviteUserType extends OmitType(
    PartialType(UserType),
    ['id'],
    ObjectType
  ) {
    @Field(() => ID)
    id!: string;
  
    @Field(() => Permission, { description: 'User permission in workspace' })
    permission!: Permission;
  
    @Field({ description: 'Invite id' })
    inviteId!: string;
  
    @Field({ description: 'User accepted' })
    accepted!: boolean;
  }
  
  @ObjectType()
  export class WorkspaceType implements Partial<Workspace> {
    @Field(() => ID)
    id!: string;
  
    @Field({ description: 'is Public workspace' })
    public!: boolean;
  
    @Field({ description: 'Workspace created date' })
    createdAt!: Date;
  
    @Field(() => [InviteUserType], {
      description: 'Members of workspace',
    })
    members!: InviteUserType[];
  }
  
  @ObjectType()
  export class InvitationWorkspaceType {
    @Field(() => ID)
    id!: string;
  
    @Field({ description: 'Workspace name' })
    name!: string;
  
    @Field(() => String, {
      // nullable: true,
      description: 'Base64 encoded avatar',
    })
    avatar!: string;
  }
  
  @ObjectType()
  export class WorkspaceBlobSizes {
    @Field(() => SafeIntResolver)
    size!: number;
  }
  
  @ObjectType()
  export class InvitationType {
    @Field({ description: 'Workspace information' })
    workspace!: InvitationWorkspaceType;
    @Field({ description: 'User information' })
    user!: UserType;
    @Field({ description: 'Invitee information' })
    invitee!: UserType;
  }
  
  @InputType()
  export class UpdateWorkspaceInput extends PickType(
    PartialType(WorkspaceType),
    ['public'],
    InputType
  ) {
    @Field(() => ID)
    id!: string;
  }
  