      "command": "liveshare.signout",
        "title": "%extension.liveshare.signOut.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.copyToken",
        "title": "Copy Cascade Token",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.start",
        "title": "%extension.liveshare.start.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.startFromFileTreeExplorer",
        "title": "%extension.liveshare.start.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/share.svg",
          "light": "images/light/share.svg"
        }
      },
      {
        "command": "liveshare.joinFromActivityBar",
        "title": "%extension.liveshare.join.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/join.svg",
          "light": "images/light/join.svg"
        }
      },
      {
        "command": "liveshare.startFromActivityBar",
        "title": "%extension.liveshare.start.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/share.svg",
          "light": "images/light/share.svg"
        }
      },
      {
        "command": "liveshare.startFromWelcomeContent",
        "title": "%extension.liveshare.start.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.startFromWelcomePage",
        "title": "%extension.liveshare.start.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.end",
        "title": "%extension.liveshare.end.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.endFromFileTreeExplorer",
        "title": "%extension.liveshare.end.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)"
      },
      {
        "command": "liveshare.endFromActivityBar",
        "title": "%extension.liveshare.end.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)"
      },
      {
        "command": "liveshare.join",
        "title": "%extension.liveshare.join.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.joinFromWelcomeContent",
        "title": "%extension.liveshare.join.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.leave",
        "title": "%extension.liveshare.leave.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.leaveFromFileTreeExplorer",
        "title": "%extension.liveshare.leave.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)"
      },
      {
        "command": "liveshare.leaveFromActivityBar",
        "title": "%extension.liveshare.leave.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)"
      },
      {
        "command": "liveshare.collaboration.link.copy",
        "title": "%extension.liveshare.copyLink.title%",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.collaboration.link.copyFromFileTreeExplorer",
        "title": "%extension.liveshare.copyLink.title%",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.collaboration.link.copyFromActivityBar",
        "title": "%extension.liveshare.copyLink.title%",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.debug",
        "title": "%extension.liveshare.joinDebug.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.listServers",
        "title": "%extension.liveshare.showSharedServers.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.shareServer",
        "title": "%extension.liveshare.shareServer.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.shareServer",
        "title": "%extension.liveshare.shareServer.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/addServer.svg",
          "light": "images/light/addServer.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.shareServer",
        "title": "%extension.liveshare.shareServer.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/addServer.svg",
          "light": "images/light/addServer.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.openServerInBrowser",
        "title": "%extension.liveshare.openServerInBrowser.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/globe.svg",
          "light": "images/light/globe.svg"
        }
      },
      {
        "command": "liveshare.activityBar.openServerInBrowser",
        "title": "%extension.liveshare.openServerInBrowser.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/globe.svg",
          "light": "images/light/globe.svg"
        }
      },
      {
        "command": "liveshare.unshareServer",
        "title": "%extension.liveshare.unshareServer.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.unshareServer",
        "title": "%extension.liveshare.unshareServer.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.unshareServer",
        "title": "%extension.liveshare.unshareServer.title%",
        "category": "Live Share",
        "icon": "$(circle-slash)",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.copyServerURL",
        "title": "%extension.liveshare.copyServerURL.title%",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.activityBar.copyServerURL",
        "title": "%extension.liveshare.copyServerURL.title%",
        "category": "Live Share",
        "icon": "$(clippy)"
      },
      {
        "command": "liveshare.focusParticipants",
        "title": "%extension.liveshare.focusParticipants.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/focus.svg",
          "light": "images/light/focus.svg"
        }
      },
      {
        "command": "liveshare.focusParticipantsFromFileTreeExplorer",
        "title": "%extension.liveshare.focusParticipants.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/focus.svg",
          "light": "images/light/focus.svg"
        }
      },
      {
        "command": "liveshare.focusParticipantsFromActivityBar",
        "title": "%extension.liveshare.focusParticipants.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/focus.svg",
          "light": "images/light/focus.svg"
        }
      },
      {
        "command": "liveshare.listParticipants",
        "title": "%extension.liveshare.listParticipants.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.follow",
        "title": "%extension.liveshare.followParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin.svg",
          "light": "images/light/pin.svg"
        }
      },
      {
        "command": "liveshare.followToTheSide",
        "title": "%extension.liveshare.followParticipantToSide.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin.svg",
          "light": "images/light/pin.svg"
        }
      },
      {
        "command": "liveshare.followToTheSideFromActivityBar",
        "title": "%extension.liveshare.followToSide.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin.svg",
          "light": "images/light/pin.svg"
        }
      },
      {
        "command": "liveshare.followToTheSideFromTreeExplorer",
        "title": "%extension.liveshare.followToSide.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin.svg",
          "light": "images/light/pin.svg"
        }
      },
      {
        "command": "liveshare.followFromFileTreeExplorer",
        "title": "%extension.liveshare.followParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin-small.svg",
          "light": "images/light/pin-small.svg"
        }
      },
      {
        "command": "liveshare.followFromActivityBar",
        "title": "%extension.liveshare.followParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/pin-small.svg",
          "light": "images/light/pin-small.svg"
        }
      },
      {
        "command": "liveshare.unfollow",
        "title": "%extension.liveshare.unfollowParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/pin-green.svg",
          "light": "images/pin-green.svg"
        }
      },
      {
        "command": "liveshare.unfollowFromFileTreeExplorer",
        "title": "%extension.liveshare.unfollowParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/pin-green-small.svg",
          "light": "images/pin-green-small.svg"
        }
      },
      {
        "command": "liveshare.unfollowFromActivityBar",
        "title": "%extension.liveshare.unfollowParticipant.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/pin-green-small.svg",
          "light": "images/pin-green-small.svg"
        }
      },
      {
        "command": "liveshare.focusParticipantFromActivityBar",
        "title": "%extension.liveshare.focusParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.focusParticipantFromFileTreeExplorer",
        "title": "%extension.liveshare.focusParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.removeParticipant",
        "title": "%extension.liveshare.removeParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.removeParticipantFromFileTreeExplorer",
        "title": "%extension.liveshare.removeParticipant.title%",
        "category": "Live Share",
        "icon": "$(remove-close)"
      },
      {
        "command": "liveshare.removeParticipantFromActivityBar",
        "title": "%extension.liveshare.removeParticipant.title%",
        "category": "Live Share",
        "icon": "$(remove-close)"
      },
      {
        "command": "liveshare.blockParticipant",
        "title": "%extension.liveshare.blockParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.blockParticipantFromFileTreeExplorer",
        "title": "%extension.liveshare.blockParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.blockParticipantFromActivityBar",
        "title": "%extension.liveshare.blockParticipant.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.fileTreeExplorer.removeTerminal",
        "title": "%extension.liveshare.removeTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/cross.svg",
          "light": "images/cross.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.removeTerminal",
        "title": "%extension.liveshare.removeTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/cross.svg",
          "light": "images/cross.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.exportLogs",
        "title": "%extension.liveshare.exportLogs.title%",
        "category": "Live Share",
        "when": "liveshare:isNode"
      },
      {
        "command": "liveshare.getCoeditingInformation",
        "title": "%extension.liveshare.getCoeditingInformation.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.shareTerminal",
        "title": "%extension.liveshare.shareTerminal.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.shareTerminal",
        "title": "%extension.liveshare.shareTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/addTerminal.svg",
          "light": "images/light/addTerminal.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.shareTerminal",
        "title": "%extension.liveshare.shareTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/addTerminal.svg",
          "light": "images/light/addTerminal.svg"
        },
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.listTerminals",
        "title": "%extension.liveshare.showSharedTerminals.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.help",
        "title": "%extension.liveshare.help.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.fileTreeExplorer.openTerminal",
        "title": "%extension.liveshare.focusTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/focusTerminal.svg",
          "light": "images/light/focusTerminal.svg"
        }
      },
      {
        "command": "liveshare.activityBar.openTerminal",
        "title": "%extension.liveshare.focusTerminal.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/focusTerminal.svg",
          "light": "images/light/focusTerminal.svg"
        }
      },
      {
        "command": "liveshare.fileTreeExplorer.makeTerminalReadWrite",
        "title": "%extension.liveshare.makeReadWrite.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.makeTerminalReadWrite",
        "title": "%extension.liveshare.makeReadWrite.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.fileTreeExplorer.makeTerminalReadOnly",
        "title": "%extension.liveshare.makeReadOnly.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.activityBar.makeTerminalReadOnly",
        "title": "%extension.liveshare.makeReadOnly.title%",
        "category": "Live Share",
        "when": "!liveshare:isWeb"
      },
      {
        "command": "liveshare.startReadOnly",
        "title": "%extension.liveshare.startReadOnlySession.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/share.svg",
          "light": "images/light/share.svg"
        }
      },
      {
        "command": "liveshare.startReadOnlyFromFileTreeExplorer",
        "title": "%extension.liveshare.startReadOnlySession.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/share.svg",
          "light": "images/light/share.svg"
        }
      },
      {
        "command": "liveshare.startReadOnlyFromActivityBar",
        "title": "%extension.liveshare.startReadOnlySession.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/dark/share.svg",
          "light": "images/light/share.svg"
        }
      },
      {
        "command": "liveshare.startReadOnlyFromWelcomeContent",
        "title": "%extension.liveshare.startReadOnlySession.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.signInAndReload",
        "title": "%extension.liveshare.signIn.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.openSessionChat",
        "title": "%extension.liveshare.chatOpenSession.title%",
        "category": "Live Share",
        "icon": {
          "light": "images/light/chat.svg",
          "dark": "images/dark/chat.svg"
        }
      },
      {
        "command": "liveshare.openActivityLog",
        "title": "%extension.liveshare.openActivityLog.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.scc.openChange",
        "title": "%extension.liveshare.openChanges.title%",
        "category": "Live Share Source Control",
        "icon": {
          "light": "images/light/open-change.svg",
          "dark": "images/dark/open-change.svg"
        }
      },
      {
        "command": "liveshare.scc.openFile",
        "title": "%extension.liveshare.openFile.title%",
        "category": "Live Share Source Control",
        "icon": "$(go-to-file)"
      },
      {
        "command": "liveshare.scc.openFile2",
        "title": "%extension.liveshare.openFile.title%",
        "category": "Live Share Source Control",
        "icon": "$(go-to-file)"
      },
      {
        "command": "liveshare.scc.clean",
        "title": "%extension.liveshare.discardChanges.title%",
        "category": "Live Share Source Control",
        "icon": "$(discard)"
      },
      {
        "command": "liveshare.scc.cleanAll",
        "title": "%extension.liveshare.discardAllChanges.title%",
        "category": "Live Share Source Control",
        "icon": "$(discard)"
      },
      {
        "command": "liveshare.scc.revertChange",
        "title": "%extension.liveshare.revertChange.title%",
        "category": "Live Share Source Control",
        "icon": "$(discard)"
      },
      {
        "command": "liveshare.activityBar.user.elevate",
        "title": "%extension.liveshare.makeReadWrite.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.activityBar.user.decrease",
        "title": "%extension.liveshare.makeReadOnly.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.fileTreeExplorer.user.elevate",
        "title": "%extension.liveshare.makeReadWrite.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.fileTreeExplorer.user.decrease",
        "title": "%extension.liveshare.makeReadOnly.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.comments.createThread",
        "title": "%extension.liveshare.comments.createThread.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.comments.reply",
        "title": "%extension.liveshare.comments.reply.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.comments.editComment",
        "title": "%extension.liveshare.comments.editComment.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/edit_inverse.svg",
          "light": "images/edit.svg"
        }
      },
      {
        "command": "liveshare.comments.deleteComment",
        "title": "%extension.liveshare.comments.deleteComment.title%",
        "category": "Live Share",
        "icon": {
          "dark": "images/close_inverse.svg",
          "light": "images/close.svg"
        }
      },
      {
        "command": "liveshare.comments.deleteThread",
        "title": "%extension.liveshare.comments.deleteThread.title%",
        "category": "Live Share",
        "icon": "$(close)"
      },
      {
        "command": "liveshare.comments.saveComment",
        "title": "%extension.liveshare.comments.saveComment.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.comments.cancelEditComment",
        "title": "%extension.liveshare.comments.cancelEditComment.title%",
        "category": "Live Share"
      },
      {
        "command": "liveshare.openInVSCode",
        "title": "Open in VS Code",
        "category": "Live Share"
      },
      {
        "command": "liveshare.openInVS",
        "title": "Open in Visual Studio",
        "category": "Live Share"
      },
      {
        "command": "liveshare.accessibility.setOutputDevice",
        "title": "Accessibility: Set Output Device"
      },
      {
        "command": "liveshare.accessibility.toggleVoiceEnabled",
        "title": "Accessibility: Toggle Voice Enabled"
      },
      {
        "command": "liveshare.accessibility.toggleSoundsEnabled",
        "title": "Accessibility: Toggle Sounds Enabled"
      },
      {
        "command": "liveshare.accessibility.announceCoeditorLocation",
        "title": "Accessibility: Announce Co-editor Location"
      }
    ],
    "menus": {
      "view/title": [
        {
          "command": "liveshare.startFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && liveshare:state != Shared && liveshare:state != SharingInProgress && liveshare:state != JoiningInProgress && liveshare:state != Joined",
          "group": "navigation"
        },
        {
          "command": "liveshare.endFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared",
          "group": "navigation"
        },
        {
          "command": "liveshare.leaveFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && liveshare:state == Joined",
          "group": "navigation"
        },
        {
          "command": "liveshare.focusParticipantsFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && liveshare:hasCollaborators",
          "group": "navigation"
        },
        {
          "command": "liveshare.collaboration.link.copyFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared",
          "group": "navigation"
        },
        {
          "command": "liveshare.startFromActivityBar",
          "when": "view == liveshare.session && liveshare:state != Shared && liveshare:state != SharingInProgress && liveshare:state != JoiningInProgress && liveshare:state != Joined",
          "group": "navigation"
        },
        {
          "command": "liveshare.joinFromActivityBar",
          "when": "view == liveshare.session && liveshare:state != Shared && liveshare:state != SharingInProgress && liveshare:state != JoiningInProgress && liveshare:state != Joined",
          "group": "navigation"
        },
        {
          "command": "liveshare.endFromActivityBar",
          "when": "view == liveshare.session && liveshare:state == Shared",
          "group": "navigation"
        },
        {
          "command": "liveshare.leaveFromActivityBar",
          "when": "view == liveshare.session && liveshare:state == Joined",
          "group": "navigation"
        },
        {
          "command": "liveshare.focusParticipantsFromActivityBar",
          "when": "view == liveshare.session && liveshare:hasCollaborators",
          "group": "navigation"
        },
        {
          "command": "liveshare.collaboration.link.copyFromActivityBar",
          "when": "view == liveshare.session && liveshare:state == Shared",
          "group": "navigation"
        },
        {
          "command": "liveshare.copyToken",
          "when": "view == liveshare.devtools",
          "group": "navigation"
        }
      ],
      "view/item/context": [
        {
          "command": "liveshare.followFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /(participants.participant|participants.guest)(?!.followed)/",
          "group": "participantContextMenu@1"
        },
        {
          "command": "liveshare.followToTheSideFromTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /participants.participant|participants.guest/",
          "group": "participantContextMenu@2"
        },
        {
          "command": "liveshare.unfollowFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /participants.participant.followed|participants.guest.followed/",
          "group": "participantContextMenu@1"
        },
        {
          "command": "liveshare.focusParticipantFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /participants.participant|participants.guest/",
          "group": "participantContextMenu@2"
        },
        {
          "command": "liveshare.focusParticipantFromActivityBar",
          "when": "view == liveshare.session && viewItem =~ /participants.participant|participants.guest/",
          "group": "participantContextMenu@1"
        },
        {
          "command": "liveshare.blockParticipantFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /^participants.guest$|^participants.guest.followed$|participants.guest.elevated$|^participants.guest.followed.elevated/",
          "group": "participantContextMenu@3"
        },
        {
          "command": "liveshare.removeParticipantFromFileTreeExplorer",
          "when": "view == liveshare.session.explorer && viewItem =~ /participants.guest/",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareServer",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared && viewItem == servers",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareServer",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared && viewItem == servers"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareTerminal",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared && viewItem == terminals",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareTerminal",
          "when": "view == liveshare.session.explorer && liveshare:state == Shared && viewItem == terminals"
        },
        {
          "command": "liveshare.fileTreeExplorer.unshareServer",
          "when": "view == liveshare.session.explorer && viewItem == servers.local",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.unshareServer",
          "when": "view == liveshare.session.explorer && viewItem == servers.local"
        },
        {
          "command": "liveshare.fileTreeExplorer.openServerInBrowser",
          "when": "view == liveshare.session.explorer && viewItem == servers.local"
        },
        {
          "command": "liveshare.fileTreeExplorer.openServerInBrowser",
          "when": "view == liveshare.session.explorer && viewItem == servers.remote"
        },
        {
          "command": "liveshare.fileTreeExplorer.copyServerURL",
          "when": "view == liveshare.session.explorer && viewItem == servers.local",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.copyServerURL",
          "when": "view == liveshare.session.explorer && viewItem == servers.local"
        },
        {
          "command": "liveshare.fileTreeExplorer.copyServerURL",
          "when": "view == liveshare.session.explorer && viewItem == servers.remote",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.copyServerURL",
          "when": "view == liveshare.session.explorer && viewItem == servers.remote"
        },
        {
          "command": "liveshare.fileTreeExplorer.openTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readonly"
        },
        {
          "command": "liveshare.fileTreeExplorer.openTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readwrite"
        },
        {
          "command": "liveshare.fileTreeExplorer.openTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.remote"
        },
        {
          "command": "liveshare.fileTreeExplorer.removeTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readonly",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.removeTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readwrite",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.removeTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readonly",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.removeTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readwrite",
          "group": "inline"
        },
        {
          "command": "liveshare.fileTreeExplorer.removeTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readonly"
        },
        {
          "command": "liveshare.fileTreeExplorer.removeTerminal",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readwrite"
        },
        {
          "command": "liveshare.activityBar.removeTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readonly"
        },
        {
          "command": "liveshare.activityBar.removeTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readwrite"
        },
        {
          "command": "liveshare.fileTreeExplorer.makeTerminalReadWrite",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readonly && !liveshare:isReadOnlySession && !liveshare:readOnlyTerminalsEnforced"
        },
        {
          "command": "liveshare.activityBar.makeTerminalReadWrite",
          "when": "view == liveshare.session && viewItem == terminals.local.readonly && !liveshare:isReadOnlySession && !liveshare:readOnlyTerminalsEnforced"
        },
        {
          "command": "liveshare.fileTreeExplorer.makeTerminalReadOnly",
          "when": "view == liveshare.session.explorer && viewItem == terminals.local.readwrite && !liveshare:isReadOnlySession"
        },
        {
          "command": "liveshare.activityBar.makeTerminalReadOnly",
          "when": "view == liveshare.session && viewItem == terminals.local.readwrite && !liveshare:isReadOnlySession"
        },
        {
          "command": "liveshare.followFromActivityBar",
          "when": "view == liveshare.session && viewItem =~ /(participants.participant|participants.guest)(?!.followed)/",
          "group": "participantContextMenu@1"
        },
        {
          "command": "liveshare.followToTheSideFromActivityBar",
          "when": "view == liveshare.session && viewItem =~ /participants.participant|participants.guest/",
          "group": "participantContextMenu@2"
        },
        {
          "command": "liveshare.unfollowFromActivityBar",
          "when": "view == liveshare.session && viewItem =~ /participants.participant.followed|participants.guest.followed/",
          "group": "participantContextMenu@1"
        },
        {
          "command": "liveshare.blockParticipantFromActivityBar",
          "when": "view == liveshare.session  && viewItem =~ /^participants.guest$|^participants.guest.followed$|participants.guest.elevated$|^participants.guest.followed.elevated/",
          "group": "participantContextMenu@3"
        },
        {
          "command": "liveshare.removeParticipantFromActivityBar",
          "when": "view == liveshare.session && viewItem =~ /participants.guest/",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.user.elevate",
          "when": "view == liveshare.session && liveshare:isReadOnlySession && viewItem =~ /^participants.guest$|^participants.guest.followed$|^participants.guest.anonymous$|^participants.guest.followed.anonymous$/"
        },
        {
          "command": "liveshare.activityBar.user.elevate",
          "when": "view == liveshare.session && !liveshare:isReadOnlySession && viewItem =~ /^participants.guest.anonymous$|^participants.guest.followed.anonymous$/"
        },
        {
          "command": "liveshare.activityBar.user.decrease",
          "when": "view == liveshare.session && liveshare:isReadOnlySession && viewItem =~ /^participants.guest.elevated$|^participants.guest.followed.elevated$|^participants.guest.elevated.anonymous$|^participants.guest.followed.elevated.anonymous$/"
        },
        {
          "command": "liveshare.activityBar.user.decrease",
          "when": "view == liveshare.session && !liveshare:isReadOnlySession && viewItem =~ /^participants.guest.elevated.anonymous$|^participants.guest.followed.elevated.anonymous$/"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.elevate",
          "when": "view == liveshare.session.explorer && liveshare:isReadOnlySession && viewItem =~ /^participants.guest$|^participants.guest.followed$|^participants.guest.anonymous$|^participants.guest.followed.anonymous$/"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.elevate",
          "when": "view == liveshare.session.explorer && !liveshare:isReadOnlySession && viewItem =~ /^participants.guest.anonymous$|^participants.guest.followed.anonymous$/"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.decrease",
          "when": "view == liveshare.session.explorer && liveshare:isReadOnlySession && viewItem =~ /^participants.guest.elevated$|^participants.guest.followed.elevated$|^participants.guest.elevated.anonymous$|^participants.guest.followed.elevated.anonymous$/"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.decrease",
          "when": "view == liveshare.session.explorer && !liveshare:isReadOnlySession && viewItem =~ /^participants.guest.elevated.anonymous$|^participants.guest.followed.elevated.anonymous$/"
        },
        {
          "command": "liveshare.activityBar.shareServer",
          "when": "view == liveshare.session && liveshare:state == Shared && viewItem == servers",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.shareServer",
          "when": "view == liveshare.session && liveshare:state == Shared && viewItem == servers"
        },
        {
          "command": "liveshare.activityBar.shareTerminal",
          "when": "view == liveshare.session && liveshare:state == Shared && viewItem == terminals",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.shareTerminal",
          "when": "view == liveshare.session && liveshare:state == Shared && viewItem == terminals"
        },
        {
          "command": "liveshare.activityBar.unshareServer",
          "when": "view == liveshare.session && viewItem == servers.local",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.unshareServer",
          "when": "view == liveshare.session && viewItem == servers.local"
        },
        {
          "command": "liveshare.activityBar.openServerInBrowser",
          "when": "view == liveshare.session && viewItem == servers.local"
        },
        {
          "command": "liveshare.activityBar.openServerInBrowser",
          "when": "view == liveshare.session && viewItem == servers.remote"
        },
        {
          "command": "liveshare.activityBar.copyServerURL",
          "when": "view == liveshare.session && viewItem == servers.local",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.copyServerURL",
          "when": "view == liveshare.session && viewItem == servers.local"
        },
        {
          "command": "liveshare.activityBar.copyServerURL",
          "when": "view == liveshare.session && viewItem == servers.remote",
          "group": "inline"
        },
        {
          "command": "liveshare.activityBar.copyServerURL",
          "when": "view == liveshare.session && viewItem == servers.remote"
        },
        {
          "command": "liveshare.activityBar.openTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readonly"
        },
        {
          "command": "liveshare.activityBar.openTerminal",
          "when": "view == liveshare.session && viewItem == terminals.local.readwrite"
        },
        {
          "command": "liveshare.activityBar.openTerminal",
          "when": "view == liveshare.session && viewItem == terminals.remote"
        }
      ],
      "editor/title": [
        {
          "command": "liveshare.follow",
          "when": "liveshare:isFollowable && liveshare:hasCollaborators && !liveshare:isFollowing",
          "group": "navigation@-1000"
        },
        {
          "command": "liveshare.unfollow",
          "when": "liveshare:isFollowable && liveshare:hasCollaborators && liveshare:isFollowing",
          "group": "navigation@-1000"
        },
        {
          "command": "liveshare.focusParticipants",
          "when": "liveshare:hasCollaborators",
          "group": "navigation@-999"
        },
        {
          "command": "liveshare.scc.openFile",
          "group": "navigation",
          "when": "vslsSccOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^vsls$|^vsls-scc$|^vslsexternal$/"
        },
        {
          "command": "liveshare.scc.openChange",
          "group": "navigation",
          "when": "vslsSccOpenRepositoryCount != 0 && !isInDiffEditor && resourceScheme == vsls"
        }
      ],
      "scm/resourceGroup/context": [
        {
          "command": "liveshare.scc.cleanAll",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /clean_/ && !liveshare:isReadOnlySession",
          "group": "inline"
        },
        {
          "command": "liveshare.scc.cleanAll",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /clean_/ && !liveshare:isReadOnlySession",
          "group": "1_modification"
        }
      ],
      "scm/resourceState/context": [
        {
          "command": "liveshare.scc.openFile",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /openFile_/",
          "group": "navigation"
        },
        {
          "command": "liveshare.scc.openChange",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /openChanges_/",
          "group": "navigation"
        },
        {
          "command": "liveshare.scc.clean",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /clean_/ && !liveshare:isReadOnlySession",
          "group": "1_modification"
        },
        {
          "command": "liveshare.scc.openFile",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /openFile_/",
          "group": "inline@0"
        },
        {
          "command": "liveshare.scc.clean",
          "when": "scmProvider == vsls-scc && scmResourceGroup =~ /clean_/ && !liveshare:isReadOnlySession",
          "group": "inline@1"
        }
      ],
      "scm/change/title": [
        {
          "command": "liveshare.scc.revertChange",
          "when": "originalResourceScheme == vsls-scc && !liveshare:isReadOnlySession"
        }
      ],
      "comments/commentThread/title": [
        {
          "command": "liveshare.comments.deleteThread",
          "group": "navigation",
          "when": "commentThread =~ /deletable/ && !commentThreadIsEmpty && commentController == vsls-comments"
        }
      ],
      "comments/commentThread/context": [
        {
          "command": "liveshare.comments.createThread",
          "group": "inline",
          "precondition": "!commentIsEmpty && commentController == vsls-comments",
          "when": "commentThreadIsEmpty && commentController == vsls-comments"
        },
        {
          "command": "liveshare.comments.reply",
          "group": "inline",
          "precondition": "!commentIsEmpty && commentController == vsls-comments",
          "when": "!commentThreadIsEmpty && commentController == vsls-comments"
        }
      ],
      "comments/comment/title": [
        {
          "command": "liveshare.comments.editComment",
          "group": "group@1",
          "when": "comment =~ /editable/ && commentController == vsls-comments "
        },
        {
          "command": "liveshare.comments.deleteComment",
          "group": "group@2",
          "when": "comment =~ /deletable/ && commentController == vsls-comments"
        }
      ],
      "comments/comment/context": [
        {
          "command": "liveshare.comments.cancelEditComment",
          "group": "inline@1",
          "when": "commentController == vsls-comments"
        },
        {
          "command": "liveshare.comments.saveComment",
          "group": "inline@2",
          "when": "commentController == vsls-comments"
        }
      ],
      "statusBar/remoteIndicator": [
        {
          "command": "liveshare.startFromActivityBar",
          "group": "virtualfs_00_vsls_vslsfs",
          "when": "!liveshare:state || liveshare:state ==  SignedOut || liveshare:state ==  SignedIn"
        },
        {
          "command": "liveshare.joinFromActivityBar",
          "group": "virtualfs_01_vsls_vslsfs",
          "when": "!liveshare:state || liveshare:state ==  SignedOut || liveshare:state ==  SignedIn"
        },
        {
          "command": "liveshare.follow",
          "group": "virtualfs_00_vsls_vslsfs",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.focusParticipants",
          "group": "virtualfs_01_vsls_vslsfs",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.openSessionChat",
          "group": "virtualfs_02_vsls_vslsfs",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.leave",
          "group": "virtualfs_03_vsls_vslsfs",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.openInVSCode",
          "group": "virtualfs_04_vsls_vslsfs",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        },
        {
          "command": "liveshare.openInVS",
          "group": "virtualfs_05_vsls_vslsfs",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        }
      ],
      "menuBar/home": [
        {
          "command": "liveshare.openInVSCode",
          "group": "openin_actions@1",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        },
        {
          "command": "liveshare.openInVS",
          "group": "openin_actions@2",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        }
      ],
      "commandPalette": [
        {
          "command": "liveshare.exportLogs",
          "when": "liveshare:isNode"
        },
        {
          "command": "liveshare.signin",
          "when": "liveshare:state == SignedOut"
        },
        {
          "command": "liveshare.signin",
          "when": "liveshare:state == SigningIn"
        },
        {
          "command": "liveshare.signin",
          "when": "liveshare:state == ExternallySigningIn"
        },
        {
          "command": "liveshare.signin.token",
          "when": "liveshare:isWeb && liveshare:state == SignedOut && !liveshare:isNativeAuthEnabled"
        },
        {
          "command": "liveshare.signin.token",
          "when": "liveshare:isWeb && liveshare:state == SigningIn && !liveshare:isNativeAuthEnabled"
        },
        {
          "command": "liveshare.signin.token",
          "when": "liveshare:isWeb && liveshare:state == ExternallySigningIn && !liveshare:isNativeAuthEnabled"
        },
        {
          "command": "liveshare.signin.token",
          "when": "liveshare:isWeb && liveshare:isAnonymousUser && !liveshare:isNativeAuthEnabled"
        },
        {
          "command": "liveshare.signout",
          "when": "liveshare:state != SignedOut && !liveshare:isAnonymousUser && !liveshare:isCollaborating && !liveshare:isNativeAuthEnabled"
        },
        {
          "command": "liveshare.copyToken",
          "when": "config.liveshare.teamStatus || liveshare:isTeamMember"
        },
        {
          "command": "liveshare.start",
          "when": "(liveshare:state != Shared && liveshare:state != Joined) || (liveshare:state == SignedOut)"
        },
        {
          "command": "liveshare.startReadOnly",
          "when": "(liveshare:state != Shared && liveshare:state != Joined) || (liveshare:state == SignedOut)"
        },
        {
          "command": "liveshare.startReadOnlyFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.startReadOnlyFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.startReadOnlyFromWelcomeContent",
          "when": "false"
        },
        {
          "command": "liveshare.startFromWelcomeContent",
          "when": "false"
        },
        {
          "command": "liveshare.joinFromWelcomeContent",
          "when": "false"
        },
        {
          "command": "liveshare.end",
          "when": "liveshare:state == Shared"
        },
        {
          "command": "liveshare.join",
          "when": "liveshare:state != Shared && liveshare:state != Joined"
        },
        {
          "command": "liveshare.leave",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.debug",
          "when": "liveshare:state == Joined"
        },
        {
          "command": "liveshare.listServers",
          "when": "liveshare:isCollaborating"
        },
        {
          "command": "liveshare.signInAndReload",
          "when": "liveshare:isAnonymousUser"
        },
        {
          "command": "liveshare.focusParticipants",
          "when": "liveshare:hasCollaborators"
        },
        {
          "command": "liveshare.shareServer",
          "when": "!liveshare:isWeb && liveshare:state == Shared"
        },
        {
          "command": "liveshare.unshareServer",
          "when": "!liveshare:isWeb && liveshare:isServerShared && liveshare:state == Shared"
        },
        {
          "command": "liveshare.follow",
          "when": "liveshare:isFollowable && liveshare:hasCollaborators && !liveshare:isFollowing"
        },
        {
          "command": "liveshare.unfollow",
          "when": "liveshare:isFollowable && liveshare:hasCollaborators && liveshare:isFollowing"
        },
        {
          "command": "liveshare.listParticipants",
          "when": "liveshare:hasCollaborators"
        },
        {
          "command": "liveshare.shareTerminal",
          "when": "!liveshare:isWeb && liveshare:state == Shared"
        },
        {
          "command": "liveshare.listTerminals",
          "when": "liveshare:hasSharedTerminals && liveshare:state == Joined"
        },
        {
          "command": "liveshare.help"
        },
        {
          "command": "liveshare.collaboration.link.copy",
          "when": "liveshare:isCollaborating"
        },
        {
          "command": "liveshare.followFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.followToTheSide",
          "when": "liveshare:hasCollaborators"
        },
        {
          "command": "liveshare.followToTheSideFromTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.openSessionChat",
          "when": "false"
        },
        {
          "command": "liveshare.openActivityLog",
          "when": "false"
        },
        {
          "command": "liveshare.unfollowFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.followFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.followToTheSideFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.unfollowFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.focusParticipantFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.focusParticipantFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.removeParticipant",
          "when": "false"
        },
        {
          "command": "liveshare.removeParticipantFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.removeParticipantFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.blockParticipant",
          "when": "false"
        },
        {
          "command": "liveshare.blockParticipantFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.blockParticipantFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.unshareServer",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.unshareServer",
          "when": "false"
        },
        {
          "command": "liveshare.collaboration.link.copyFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.collaboration.link.copyFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.startFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.startFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.startFromWelcomePage",
          "when": "false"
        },
        {
          "command": "liveshare.joinFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.endFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.endFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.focusParticipantsFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.focusParticipantsFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.leaveFromFileTreeExplorer",
          "when": "false"
        },
        {
          "command": "liveshare.leaveFromActivityBar",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareServer",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.shareServer",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.unshareServer",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.unshareServer",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.openServerInBrowser",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.openServerInBrowser",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.copyServerURL",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.copyServerURL",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.shareTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.shareTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.openTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.openTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.makeTerminalReadWrite",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.makeTerminalReadWrite",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.makeTerminalReadOnly",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.makeTerminalReadOnly",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.removeTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.removeTerminal",
          "when": "false"
        },
        {
          "command": "liveshare.scc.openFile",
          "when": "false"
        },
        {
          "command": "liveshare.scc.openFile2",
          "when": "false"
        },
        {
          "command": "liveshare.scc.openChange",
          "when": "false"
        },
        {
          "command": "liveshare.scc.clean",
          "when": "false"
        },
        {
          "command": "liveshare.scc.cleanAll",
          "when": "false"
        },
        {
          "command": "liveshare.scc.revertChange",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.user.elevate",
          "when": "false"
        },
        {
          "command": "liveshare.activityBar.user.decrease",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.elevate",
          "when": "false"
        },
        {
          "command": "liveshare.fileTreeExplorer.user.decrease",
          "when": "false"
        },
        {
          "command": "liveshare.comments.createThread",
          "when": "false"
        },
        {
          "command": "liveshare.comments.reply",
          "when": "false"
        },
        {
          "command": "liveshare.comments.editComment",
          "when": "false"
        },
        {
          "command": "liveshare.comments.deleteComment",
          "when": "false"
        },
        {
          "command": "liveshare.comments.deleteThread",
          "when": "false"
        },
        {
          "command": "liveshare.comments.saveComment",
          "when": "false"
        },
        {
          "command": "liveshare.comments.cancelEditComment",
          "when": "false"
        },
        {
          "command": "liveshare.getCoeditingInformation",
          "when": "liveshare:diagnosticModeEnabled"
        },
        {
          "command": "liveshare.openInVSCode",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        },
        {
          "command": "liveshare.openInVS",
          "when": "liveshare:isWeb && liveshare:state == Joined"
        },
        {
          "command": "liveshare.accessibility.setOutputDevice",
          "when": "!liveshare:isWeb && isWindows && config.liveshare.accessibility.accessibilityFeaturesEnabled != off"
        },
        {
          "command": "liveshare.accessibility.toggleVoiceEnabled",
          "when": "!liveshare:isWeb && config.liveshare.accessibility.accessibilityFeaturesEnabled != off"
        },
        {
          "command": "liveshare.accessibility.toggleSoundsEnabled",
          "when": "!liveshare:isWeb && config.liveshare.accessibility.accessibilityFeaturesEnabled != off"
        },
        {
          "command": "liveshare.accessibility.announceCoeditorLocation",
          "when": "!liveshare:isWeb && config.liveshare.accessibility.accessibilityFeaturesEnabled != off"
        }
      ]
    },
    "keybindings": [
      {
        "command": "liveshare.follow",
        "key": "ctrl+alt+f",
        "mac": "cmd+alt+f",
        "when": "liveshare:hasCollaborators && !liveshare:isFollowing"
      },
      {
        "command": "liveshare.followToTheSide",
        "key": "ctrl+alt+/",
        "mac": "cmd+alt+/",
        "when": "liveshare:hasCollaborators"
      },
      {
        "command": "liveshare.unfollow",
        "key": "ctrl+alt+f",
        "mac": "cmd+alt+f",
        "when": "liveshare:hasCollaborators && liveshare:isFollowing"
      },
      {
        "command": "liveshare.join",
        "key": "ctrl+alt+j",
        "mac": "cmd+alt+j",
        "when": "liveshare:state != Shared && liveshare:state != Joined"
      }
    ],
    "configuration": {
      "type": "object",
      "title": "%extension.liveshare.liveShareConfiguration.title%",
      "properties": {
        "liveshare.anonymousGuestApproval": {
          "default": "prompt",
          "enum": [
            "prompt",
            "accept",
            "reject"
          ],
          "description": "%extension.liveshare.anonymousGuestApproval.title%"
        },
        "liveshare.launcherClient": {
          "type": "string",
          "default": "web",
          "enum": [
            "web",
            "visualStudioCode",
            "visualStudio"
          ],
          "description": "%extension.liveshare.launcherClient.title%"
        },
        "liveshare.diagnosticLoggingLevel": {
          "default": "Warning",
          "enum": [
            "Trace",
            "Debug",
            "Info",
            "Warning",
            "Error",
            "Critical",
            "Off"
          ],
          "description": "%extension.liveshare.diagnosticLoggingLevel.title%"
        },
        "liveshare.diagnosticLogging": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.diagnosticLogging.title%"
        },
        "liveshare.diagnosticMode": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.diagnosticMode.title%"
        },
        "liveshare.connectionMode": {
          "type": "string",
          "default": "auto",
          "enum": [
            "auto",
            "direct",
            "relay"
          ],
          "description": "%extension.liveshare.connectionMode.title%"
        },
        "liveshare.nameTagVisibility": {
          "type": "string",
          "default": "Activity",
          "enum": [
            "Always",
            "Activity",
            "Never"
          ],
          "description": "%extension.liveshare.nameTagVisibility.title%"
        },
        "liveshare.guestApprovalRequired": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.guestApprovalRequired.title%"
        },
        "liveshare.shareExternalFiles": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.shareExternalFiles.title%"
        },
        "liveshare.joinDebugSessionOption": {
          "type": "string",
          "default": "Automatic",
          "enum": [
            "Automatic",
            "Manual",
            "Prompt"
          ],
          "description": "%extension.liveshare.joinDebugSessionOption.title%"
        },
        "liveshare.showInStatusBar": {
          "type": "string",
          "default": "always",
          "enum": [
            "always",
            "whileCollaborating",
            "never"
          ],
          "description": "%extension.liveshare.showInStatusBar.title%"
        },
        "liveshare.sharedTerminalWidth": {
          "type": "number",
          "default": 120,
          "description": "%extension.liveshare.sharedTerminalWidth.title%"
        },
        "liveshare.sharedTerminalHeight": {
          "type": "number",
          "default": 50,
          "description": "%extension.liveshare.sharedTerminalHeight.title%"
        },
        "liveshare.featureSet": {
          "type": "string",
          "default": "stable",
          "enum": [
            "stable",
            "insiders"
          ],
          "markdownDescription": "%extension.liveshare.features.markdownDescription%"
        },
        "liveshare.keepAliveInterval": {
          "type": "number",
          "default": 20,
          "description": "%extension.liveshare.keepAliveInterval.title%"
        },
        "liveshare.allowGuestTaskControl": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.allowGuestTaskControl.title%"
        },
        "liveshare.allowGuestDebugControl": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.allowGuestDebugControl.title%"
        },
        "liveshare.languages.allowGuestCommandControl": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.allowGuestCommandControl.title%"
        },
        "liveshare.notebooks.allowGuestExecuteCells": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.allowGuestExecuteCells.title%"
        },
        "liveshare.focusBehavior": {
          "type": "string",
          "default": "accept",
          "description": "%extension.liveshare.focusBehavior.title%",
          "enum": [
            "accept",
            "prompt"
          ]
        },
        "liveshare.alwaysFollowHost": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.alwaysFollowHost.title%"
        },
        "liveshare.showReadOnlyUsersInEditor": {
          "type": "string",
          "default": "whileFollowing",
          "description": "%extension.liveshare.showReadOnlyUsersInEditor.title%",
          "enum": [
            "whileFollowing",
            "always"
          ]
        },
        "liveshare.increasedGuestLimit": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.increasedGuestLimit.title%"
        },
        "liveshare.autoShareTerminals": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.autoShareTerminals.title%"
        },
        "liveshare.codeLens": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.codeLens.title%"
        },
        "liveshare.showVerboseNotifications": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.showVerboseNotifications.title%"
        },
        "liveshare.populateGitCoAuthors": {
          "type": "string",
          "default": "always",
          "description": "%extension.liveshare.populateGitCoAuthors.title%",
          "enum": [
            "always",
            "never"
          ]
        },
        "liveshare.autoShareServers": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.autoShareServers.title%"
        },
        "liveshare.openSharedServers": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.openSharedServers.title%"
        },
        "liveshare.publishWorkspaceInfo": {
          "type": "boolean",
          "default": false,
          "description": "%extension.liveshare.publishWorkspaceInfo.description%"
        },
        "liveshare.comments": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.comments.description%"
        },
        "liveshare.accessibility.accessibilityFeaturesEnabled": {
          "type": "string",
          "default": "auto",
          "enum": [
            "auto",
            "on",
            "off"
          ],
          "description": "%extension.liveshare.accessibility.accessibilityFeaturesEnabled.description%"
        },
        "liveshare.accessibility.outputDevice": {
          "type": "string",
          "default": "Default",
          "description": "%extension.liveshare.accessibility.outputDevice.description%"
        },
        "liveshare.accessibility.voiceVolume": {
          "type": "number",
          "minimum": 0,
          "maxiumum": 100,
          "default": 100,
          "description": "%extension.liveshare.accessibility.voiceVolume.description%"
        },
        "liveshare.accessibility.soundVolume": {
          "type": "number",
          "minimum": 0,
          "maxiumum": 100,
          "default": 100,
          "description": "%extension.liveshare.accessibility.soundVolume.description%"
        },
        "liveshare.accessibility.speechRate": {
          "type": "number",
          "minimum": 1,
          "maxiumum": 10,
          "default": 2,
          "description": "%extension.liveshare.accessibility.speechRate.description%"
        },
        "liveshare.accessibility.voice": {
          "type": "string",
          "default": "en-US-Jenny",
          "enum": [
            "en-AU-Natasha",
            "en-AU-William",
            "en-CA-Clara",
            "en-CA-Liam",
            "en-HK-Yan",
            "en-HK-Sam",
            "en-IN-Neerja",
            "en-IN-Prabhat",
            "en-IE-Emily",
            "en-IE-Connor",
            "en-NZ-Molly",
            "en-NZ-Mitchell",
            "en-PH-Rosa",
            "en-PH-James",
            "en-SG-Luna",
            "en-SG-Wayne",
            "en-ZA-Leah",
            "en-ZA-Luke",
            "en-GB-Libby",
            "en-GB-Sonia",
            "en-GB-Mia",
            "en-GB-Ryan",
            "en-US-Aria",
            "en-US-Jenny",
            "en-US-Guy",
            "en-US-Sara",
            "en-US-Amber",
            "en-US-Ashley",
            "en-US-Cora",
            "en-US-Elizabeth",
            "en-US-Michelle",
            "en-US-Monica",
            "en-US-Ana",
            "en-US-Brandon",
            "en-US-Christopher",
            "en-US-Jacob",
            "en-US-Eric",
            "zh-HK-HiuGaai",
            "zh-HK-WanLung",
            "zh-CN-Xiaohan",
            "zh-CN-Yunxi",
            "zh-TW-HsiaoChen",
            "zh-TW-YunJhe",
            "fr-FR-Denise",
            "fr-FR-Henri",
            "de-DE-Katja",
            "de-DE-Conrad",
            "it-IT-Elsa",
            "it-IT-Diego",
            "es-ES-Elvira",
            "es-ES-Alvaro",
            "ja-JP-Nanami",
            "ja-JP-Keita",
            "ko-KR-SunHi",
            "ko-KR-InJoon",
            "ru-RU-Dariya",
            "ru-RU-Dmitry",
            "bg-BG-Kalina",
            "bg-BG-Borislav",
            "hu-HU-Noemi",
            "hu-HU-Tamas",
            "pt-BR-Francisca",
            "pt-BR-Antonio",
            "tr-TR-Emel",
            "tr-TR-Ahmet",
            "pl-PL-Agnieszka",
            "pl-PL-Marek",
            "cs-CZ-Vlasta",
            "cs-CZ-Antonin"
          ],
          "description": "%extension.liveshare.accessibility.voice.description%"
        },
        "liveshare.accessibility.voiceEnabled": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.accessibility.voiceEnabled.description%"
        },
        "liveshare.accessibility.soundsEnabled": {
          "type": "boolean",
          "default": true,
          "description": "%extension.liveshare.accessibility.soundsEnabled.description%"
        }
      }
    },
    "debuggers": [
      {
        "type": "vslsJoin",
        "when": "virtualWorkspace == vsls",
        "label": "Visual Studio Live Share Participant Debugging",
        "args": [],
        "configurationAttributes": {
          "launch": {
            "required": [
              "agentUri",
              "joinedInfo",
              "localPath",
              "pipeName"
            ],
            "properties": {
              "agentUri": {
                "type": "string",
                "description": "%extension.liveshare.properties.title%"
              },
              "joinedInfo": {
                "type": "object",
                "description": "%extension.liveshare.joinedInfo.title%"
              },
              "localPath": {
                "type": "string",
                "description": "%extension.liveshare.localPath.title%"
              },
              "pipeName": {
                "type": "string",
                "description": "%extension.liveshare.pipeName.title%"
              }
            }
          }
        }
      },
      {
        "type": "vslsShare",
        "when": "!virtualWorkspace && !liveshare:isWeb",
        "label": "Visual Studio Live Share Debugging",
        "args": [],
        "configurationAttributes": {
          "launch": {
            "required": [
              "agentUri",
              "joinedInfo",
              "pipeName",
              "adapterProxy"
            ],
            "properties": {
              "agentUri": {
                "type": "string",
                "description": "%extension.liveshare.properties.title%"
              },
              "joinedInfo": {
                "type": "object",
                "description": "%extension.liveshare.joinedInfo.title%"
              },
              "pipeName": {
                "type": "string",
                "description": "%extension.liveshare.pipeName.title%"
              },
              "adapterProxy": {
                "type": "object",
                "description": "%extension.liveshare.adapterProxy.title%"
              }
            }
          }
        }
      }
    ],
    "taskDefinitions": [
      {
        "type": "vsls",
        "required": [
          "taskUid"
        ],
        "properties": {
          "taskUid": {
            "type": "string",
            "description": "%extension.liveshare.taskDefinitionsProperties.title%"
          },
          "executionId": {
            "type": "string",
            "description": "%extension.liveshare.taskDefinitionsExecId.title%"
          }
        }
      }
    ],
    "problemMatchers": [
      {
        "name": "vsls",
        "owner": "vsls",
        "fileLocation": [
          "relative",
          "${workspaceFolder}"
        ],
        "pattern": [
          {
            "regexp": "^([^\\s].*)$",
            "file": 1
          },
          {
            "regexp": "^\\s+(\\d+):(\\d+)\\s+(error|warning|info)\\s+(.*)\\s\\s+(.*)$",
            "line": 1,
            "column": 2,
            "severity": 3,
            "message": 4,
            "code": 5
          }
        ]
      }
    ],
    "statusBarItems": [
      {
        "id": "liveshare.userStatusBarItem",
        "alignment": "left",
        "priority": 3,
        "name": "Live Share Collaboration",
        "text": "$(live-share) Live Share",
        "command": "liveshare.start"
      }
    ]
  },
  "scripts": {
    "test": "yarn webpack-node && yarn run-vscode-test && yarn run-unit-test",
    "pr-test": "yarn run-vscode-test && yarn run-unit-test",
    "run-vscode-test": "node ./out/test/runTest.js",
    "run-unit-test": "jest -c jest.config.js",
    "run-legacy-vscode-test": "node ./out/test/legacy/runTest.js",
    "vscode-test": "yarn webpack-node && yarn run-vscode-test",
    "unit-test": "yarn webpack-node && yarn run-unit-test",
    "legacy-vscode-test": "yarn webpack-node && yarn run-legacy-vscode-test",
    "vscode:prepublish": "echo \"nothing\"",
    "webview:build": "cd ../communications/webview && yarn build",
    "activitiesWebview:build": "cd ../activities/activitiesWebview && yarn build",
    "compile": "../../common/node_modules/.bin/tsc -b ./",
    "webpack:build": "yarn compile && yarn webview:build",
    "watch": "../../common/node_modules/.bin/tsc -b -watch ./",
    "build:webpack": "node ../../node_modules/webpack-cli/bin/cli.js --config webpack.browser.config",
    "prewebpack": "cd ../../vsls-contracts && yarn generate-contracts",
    "webpack-dev": "yarn webpack:build && yarn build:webpack --mode=development",
    "webpack-dev-deploy": "yarn webpack-dev && gulp deploy-web && gulp fixOutWebPackageContents",
    "webpack": "yarn webpack:build && yarn build:webpack && gulp deploy-web",
    "build:webpack-node": "node ../../common/node_modules/webpack-cli/bin/cli.js --config webpack.node.config",
    "deploy-node": "yarn compile-port-forwarder && yarn compile-liveshare-hub && yarn compile-speaker && gulp deploy-node",
    "webpack-node-browser": "yarn webpack:build && yarn build:webpack-node && yarn build:webpack && yarn deploy-node && gulp deploy-node-browser",
    "webpack-node": "yarn webpack:build && yarn build:webpack-node && yarn deploy-node",
    "webpack-node-dev": "yarn webpack:build && yarn build:webpack-node --mode=development && yarn deploy-node",
    "package-dev": "yarn webpack-node-dev && gulp package",
    "package-node": "yarn webpack-node && gulp package",
    "package": "yarn webpack-node-browser && gulp package",
    "compile-dev": "yarn compile && gulp deploy-package-out",
    "compile-port-forwarder": "cd ../../port-forwarder/hub && yarn webpack-node",
    "compile-liveshare-hub": "cd ../hub && yarn webpack-node",
    "compile-speaker": "cd ../../speaker && ../common/node_modules/.bin/tsc -b",
    "build:lint": "../../node_modules/.bin/eslint src --ext ts",
    "build:lint-fix": "../../node_modules/.bin/eslint src --ext ts --fix",
    "update-proposed": "yarn vscode-dts dev && move vscode.proposed.*.d.ts ../../typings/"
  },
  "dependencies": {
    "@vs/liveshare-core": "link:../core",
    "@vs/liveshare-debug": "link:../debugging",
    "@vs/liveshare-lsp": "link:../languageService",
    "@vs/liveshare-reviews": "link:../reviews",
    "@vs/liveshare-notebooks": "link:../notebooks",
    "@vs/liveshare-servers": "link:../servers",
    "@vs/liveshare-communications": "link:../communications",
    "@vs/liveshare-terminals": "link:../terminals",
    "@vs/liveshare-tasks": "link:../tasks",
    "@vs/liveshare-api": "link:../api",
    "@vs/liveshare-accessibility": "link:../accessibility",
    "@vs/liveshare-activities": "link:../activities",
    "@vs/vscode-command-framework": "link:../../vscode-command-framework",
    "@vs/vso-workspace-client": "link:../../workspace/client",
    "@vs/vso-workspace-client-hub": "link:../../workspace/client-hub",
    "@vs/vso-node-utils": "link:../../node/utils",
    "module-alias": "^2.2.2",
    "vscode-jsonrpc": "^4.0.0",
    "vscode-nls": "^4.1.2",
    "speaker": "^0.5.4"
  },
  "devDependencies": {
    "@jest/reporters": "^27.4.6",
    "@types/jest-cli": "^24.3.0",
    "@types/node": "^10.14.8",
    "@types/vscode": "^1.72.0",
    "@types/wav": "^1.0.1",
    "@types/concat-stream": "^1.6.1",
    "@vscode/test-electron": "^2.0.3",
    "copyfiles": "^2.1.1",
    "gulp": "^4.0.2",
    "gulp-typescript": "^5.0.1",
    "jest": "^27.0.3",
    "jest-mock-extended": "^1.0.15",
    "nerdbank-gitversioning": "^3.4.220",
    "terser-webpack-plugin": "^5.3.3",
    "ts-jest": "^27.0.2",
    "vscode-dts": "^0.3.3",
    "webpack": "^5.76.0",
    "webpack-cli": "^4.10.0",
    "source-map-loader": "^4.0.0",
    "node-polyfill-webpack-plugin": "^2.0.0",
    "@types/jest": "^25.2.3",
    "vscode-nls-dev": "^4.0.4",
    "@types/rewire": "^2.5.28",
    "rewire": "^3.0.2",
    "moq.ts": "^6.4.0",
    "gulp-clean": "^0.4.0",
    "gulp-filter": "^6.0.0",
    "gulp-sourcemaps": "^2.6.5",
    "@types/lockfile": "^1.0.0",
    "vsce": "^1.95.0",
    "rimraf": "^3.0.2",
    "json-stable-stringify": "^1.0.1"
  },
  "_moduleAliases": {
    "@extension-abstractions": "./src/node",
    "@workspace-abstractions": "../../../node_modules/@vs/liveshare-workspace/dist/src/abstractions/node",
    "@core-abstractions": "../../../node_modules/@vs/liveshare-core/dist/src/abstractions/node",
    "@server-abstractions": "../../../node_modules/@vs/liveshare-servers/dist/src/abstractions/node",
    "@vscode-abstractions": "../../../node_modules/@vs/vscode-command-framework/dist/src/abstractions/node",
    "@api-abstractions": "../../../node_modules/@vs/liveshare-api/dist/src/abstractions/node"
  },
  "__metadata": {
    "id": "5a6dc0d5-dc02-4121-8e24-cad33a2ff0af",
    "publisherDisplayName": "Microsoft",
    "publisherId": "74365139-d24d-4d0a-8377-c28643f7a216"
  }
}
ØA
—Eoúô