{
	"name": "remote-ssh",
	"displayName": "Remote - SSH",
	"description": "%description%",
	"version": "0.122.0",
	"publisher": "ms-vscode-remote",
	"icon": "resources/remote-ssh.png",
	"repository": {
		"type": "git",
		"url": "https://github.com/Microsoft/vscode-remote-release.git"
	},
	"bugs": {
		"url": "https://github.com/Microsoft/vscode-remote-release/issues"
	},
	"license": "SEE LICENSE IN LICENSE.txt",
	"engines": {
		"vscode": "^1.107.0"
	},
	"extensionKind": [
		"ui"
	],
	"enabledApiProposals": [
		"resolvers",
		"tunnels",
		"terminalDataWriteEvent",
		"contribViewsRemote",
		"telemetry",
		"contribRemoteHelp"
	],
	"extensionPack": [
		"ms-vscode-remote.remote-ssh-edit",
		"ms-vscode.remote-explorer"
	],
	"categories": [
		"Other"
	],
	"keywords": [
		"remote development",
		"remote",
		"ssh"
	],
	"api": "none",
	"activationEvents": [
		"onCommand:remote-internal.getSshFoldersHistory",
		"onCommand:remote-internal.deleteSshFolderFromHistory",
		"onCommand:remote-internal.getActiveSshRemote",
		"onCommand:remote-internal.getConfiguredHostnames",
		"onCommand:remote-internal.openRemoteSshTarget",
		"onResolveRemoteAuthority:ssh-remote",
		"onUri"
	],
	"l10n": "./l10n",
	"main": "./out/extension",
	"aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255",
	"capabilities": {
		"untrustedWorkspaces": {
			"supported": true
		}
	},
	"contributes": {
		"chatParticipants": [
			{
				"name": "remote-ssh",
				"fullName": "Remote - SSH",
				"id": "remote-ssh",
				"description": "%chatParticipants.description%",
				"isSticky": true,
				"when": "config.remote.SSH.experimental.chat"
			}
		],
		"remoteHelp": {
			"getStarted": "https://aka.ms/vscode-remote/ssh/getting-started",
			"feedback": "https://aka.ms/vscode-remote/ssh/provide-feedback",
			"documentation": "https://aka.ms/vscode-remote/ssh",
			"issues": "https://aka.ms/vscode-remote/ssh/issues",
			"remoteName": [
				"ssh-remote"
			]
		},
		"configuration": {
			"title": "Remote - SSH",
			"properties": {
				"remote.SSH.configFile": {
					"type": "string",
					"description": "%setting.configFile.description%",
					"default": "",
					"scope": "application"
				},
				"remote.SSH.showLoginTerminal": {
					"type": "boolean",
					"description": "%setting.showLoginTerminal.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.defaultForwardedPorts": {
					"type": "array",
					"items": {
						"type": "object",
						"required": [
							"remotePort"
						],
						"properties": {
							"name": {
								"type": "string"
							},
							"remotePort": {
								"type": "number"
							},
							"localPort": {
								"type": "number"
							}
						}
					},
					"description": "%setting.defaultForwardedPorts.description%",
					"default": []
				},
				"remote.SSH.defaultExtensions": {
					"type": "array",
					"items": {
						"type": "string"
					},
					"description": "%setting.defaultExtensions.description%",
					"scope": "application"
				},
				"remote.SSH.path": {
					"type": "string",
					"description": "%setting.path.description%",
					"default": "",
					"scope": "application"
				},
				"remote.SSH.serverInstallPath": {
					"type": "object",
					"description": "%setting.serverInstallPath.description%",
					"scope": "application",
					"additionalProperties": {
						"type": "string"
					}
				},
				"remote.SSH.lockfilesInTmp": {
					"type": "boolean",
					"markdownDescription": "%setting.lockfilesInTmp.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.useFlock": {
					"type": "boolean",
					"markdownDescription": "%setting.useFlock.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.enableDynamicForwarding": {
					"type": "boolean",
					"description": "%setting.enableDynamicForwarding.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.enableAgentForwarding": {
					"type": "boolean",
					"markdownDescription": "%setting.enableAgentForwarding.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.enableX11Forwarding": {
					"type": "boolean",
					"markdownDescription": "%setting.enableX11Forwarding.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.permitPtyAllocation": {
					"type": "boolean",
					"markdownDescription": "%setting.permitPtyAllocation.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.useCurlAndWgetConfigurationFiles": {
					"type": "boolean",
					"markdownDescription": "%setting.useCurlAndWgetConfigurationFiles.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.useExecServer": {
					"type": "boolean",
					"markdownDescription": "%setting.useExecServer.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.enableRemoteCommand": {
					"type": "boolean",
					"markdownDescription": "%setting.enableRemoteCommand.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.externalSSH_ASKPASS": {
					"type": "boolean",
					"markdownDescription": "%setting.externalSSH_ASKPASS.description%",
					"scope": "application",
					"default": false
				},
				"remote.SSH.allowLocalServerDownload": {
					"type": "boolean",
					"description": "%setting.allowLocalServerDownload.description%",
					"markdownDeprecationMessage": "%setting.allowLocalServerDownload.deprecationMessage%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.localServerDownload": {
					"type": "string",
					"description": "%setting.localServerDownload.description%",
					"enum": [
						"auto",
						"always",
						"off"
					],
					"markdownEnumDescriptions": [
						"%setting.localServerDownload.auto.description%",
						"%setting.localServerDownload.always.description%",
						"%setting.localServerDownload.off.description%"
					],
					"scope": "application",
					"default": "auto"
				},
				"remote.SSH.windowsRemotes": {
					"type": "array",
					"markdownDescription": "%setting.windowsRemotes.description%",
					"deprecationMessage": "%setting.windowsRemotes.deprecationMessage%",
					"default": [],
					"items": {
						"type": "string"
					},
					"scope": "application"
				},
				"remote.SSH.useLocalServer": {
					"type": "boolean",
					"markdownDescription": "%setting.useLocalServer.description%",
					"scope": "application",
					"default": true
				},
				"remote.SSH.connectTimeout": {
					"type": "number",
					"description": "%setting.connectTimeout.description%",
					"default": 15,
					"scope": "application",
					"minimum": 1
				},
				"remote.SSH.logLevel": {
					"type": "string",
					"description": "%setting.logLevel.description%",
					"default": "debug",
					"scope": "application",
					"enum": [
						"debug",
						"trace"
					]
				},
				"remote.SSH.maxReconnectionAttempts": {
					"type": [
						"number",
						"null"
					],
					"markdownDescription": "%setting.maxReconnectionAttempts.description%",
					"default": null,
					"scope": "application",
					"maximum": 8,
					"minimum": 0
				},
				"remote.SSH.suppressWindowsSshWarning": {
					"type": "boolean",
					"description": "%setting.suppressWindowsSshWarning.description%",
					"default": false,
					"scope": "application"
				},
				"remote.SSH.remotePlatform": {
					"type": "object",
					"markdownDescription": "%setting.remotePlatform.description%",
					"scope": "application",
					"additionalProperties": {
						"type": "string",
						"enum": [
							"macOS",
							"windows",
							"linux"
						]
					}
				},
				"remote.SSH.remoteServerListenOnSocket": {
					"type": "boolean",
					"default": false,
					"markdownDescription": "%setting.remoteServerListenOnSocket.description%"
				},
				"remote.SSH.serverPickPortsFromRange": {
					"type": "object",
					"markdownDescription": "%setting.serverPickPortsFromRange.description%",
					"scope": "application",
					"additionalProperties": {
						"type": "string",
						"pattern": "^\\d+-\\d+$"
					}
				},
				"remote.SSH.preferredLocalPortRange": {
					"type": "string",
					"default": "",
					"markdownDescription": "%setting.preferredLocalPortRange.description%",
					"scope": "application",
					"pattern": "^\\d+-\\d+$|^$"
				},
				"remote.SSH.bindHost": {
					"type": "object",
					"markdownDescription": "%setting.bindHost.description%",
					"scope": "application",
					"examples": [
						{
							"example.com": "127.0.0.1"
						}
					],
					"additionalProperties": {
						"type": "string",
						"default": "127.0.0.1"
					}
				},
				"remote.SSH.experimental.chat": {
					"type": "boolean",
					"markdownDescription": "%setting.experimental.chat.description%",
					"scope": "application",
					"default": true,
					"tags": [
						"experimental"
					]
				},
				"remote.SSH.experimental.enhancedSessionLogs": {
					"type": "boolean",
					"markdownDescription": "%setting.experimental.enhancedSessionLogs.description%",
					"scope": "application",
					"default": true,
					"tags": [
						"experimental"
					]
				},
				"remote.SSH.httpProxy": {
					"type": [
						"string",
						"object"
					],
					"markdownDescription": "%setting.httpProxy.description%",
					"additionalProperties": {
						"type": "string"
					},
					"default": "",
					"examples": [
						{
							"myhost": "http://proxy.example.com:8080",
							"myhost2": "http://proxy2.example.com"
						},
						"http://proxy.example.com:8080"
					]
				},
				"remote.SSH.httpsProxy": {
					"type": [
						"string",
						"object"
					],
					"markdownDescription": "%setting.httpsProxy.description%",
					"additionalProperties": {
						"type": "string"
					},
					"default": "",
					"examples": [
						{
							"myhost": "https://proxy.example.com:8080",
							"myhost2": "https://proxy2.example.com"
						},
						"https://proxy.example.com:8080"
					]
				},
				"remote.SSH.preconnect": {
					"type": [
						"string",
						"object"
					],
					"markdownDescription": "%setting.preconnect.description%",
					"additionalProperties": {
						"type": "string"
					},
					"default": "",
					"examples": [
						{
							"myhost": "~/preconnect.sh",
							"myhost2": "C:\\Users\\user\\preconnect.ps1"
						},
						"~/preconnect.sh"
					],
					"tags": [
						"experimental"
					]
				},
				"remote.SSH.reconnectionGraceTime": {
					"type": [
						"number",
						"null"
					],
					"scope": "application",
					"markdownDescription": "%setting.reconnectionGraceTime.description%",
					"default": null
				}
			}
		},
		"commands": [
			{
				"command": "opensshremotes.openWebUI",
				"title": "%commands.openWebUI.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.openEmptyWindow",
				"title": "%commands.openEmptyWindow,title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.openEmptyWindowOnCurrentHost",
				"title": "%commands.openEmptyWindowOnCurrentHost.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.openEmptyWindowInCurrentWindow",
				"title": "%commands.openEmptyWindowInCurrentWindow.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.openConfigFile",
				"title": "%commands.openConfigFile.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.addNewSshHost",
				"title": "%commands.addNewSshHost.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.cleanDevBox",
				"title": "%commands.cleanDevBox.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.cleanRemoteServer",
				"title": "%commands.cleanRemoteServer.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.cleanCurrentRemoteServer",
				"title": "%commands.cleanCurrentRemoteServer.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.cleanLocalServer",
				"title": "%commands.cleanLocalServer.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.getHelp",
				"title": "%commands.getHelp.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.getStarted",
				"title": "%commands.getStarted.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.reportIssue",
				"title": "%commands.reportIssue.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.settings",
				"title": "%commands.settings.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.provideFeedback",
				"title": "%commands.provideFeedback.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.showLog",
				"title": "%commands.showLog.title%",
				"category": "Remote-SSH"
			},
			{
				"command": "opensshremotes.clearAllSessionHints",
				"title": "%commands.clearAllSessionHints.title%",
				"category": "Remote-SSH",
				"enablement": "config.remote.SSH.experimental.chat"
			}
		],
		"resourceLabelFormatters": [
			{
				"scheme": "vscode-remote",
				"authority": "ssh-remote+*",
				"formatting": {
					"label": "${path}",
					"separator": "/",
					"tildify": true,
					"workspaceSuffix": "SSH"
				}
			}
		],
		"menus": {
			"statusBar/remoteIndicator": [
				{
					"command": "opensshremotes.openEmptyWindow",
					"group": "remote_20_ssh-remote_1general@1"
				},
				{
					"command": "opensshremotes.openEmptyWindowInCurrentWindow",
					"group": "remote_20_ssh-remote_1general@2"
				}
			],
			"commandPalette": [
				{
					"command": "opensshremotes.getStarted",
					"when": "!remoteName && !virtualWorkspace || remoteName =~ /^ssh-remote$/ && remoteConnectionState == disconnected"
				},
				{
					"command": "opensshremotes.openEmptyWindowOnCurrentHost",
					"when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected"
				},
				{
					"command": "opensshremotes.provideFeedback",
					"when": "remoteName =~ /^ssh-remote$/"
				},
				{
					"command": "opensshremotes.cleanCurrentRemoteServer",
					"when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected"
				},
				{
					"command": "opensshremotes.cleanLocalServer",
					"when": "config.remote.SSH.useLocalServer"
				},
				{
					"command": "opensshremotes.openWebUI",
					"when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected && config.remote.SSH.enableWebAccess"
				}
			]
		}
	},
	"scripts": {
		"lint:eslint": "eslint \"src/**/*.ts\"",
		"lint:shellcheck": "node scripts/shellcheck.js",
		"lint": "npm-run-all lint:eslint lint:shellcheck",
		"preinstall": "npm_config_registry=https://registry.npmjs.org npm exec ado-npm-auth",
		"postinstall": "npm run downloadapi",
		"downloadapi": "vscode-dts dev",
		"vscode:prepublish": "webpack --mode production",
		"compile": "webpack --mode development",
		"watch": "webpack --mode development --watch",
		"package": "vsce package",
		"pretest": "npm run compile",
		"test": "vscode-test --label unit",
		"test:baseline": "vscode-test --label baseline",
		"baseline": "npm-run-all pretest test:baseline"
	},
	"devDependencies": {
		"@devcontainers/cli": "latest",
		"@types/glob": "^8.1.0",
		"@types/lockfile": "^1.0.4",
		"@types/minimist": "^1.2.5",
		"@types/mocha": "^10.0.6",
		"@types/node": "^20.10.3",
		"@types/shell-quote": "^1.7.5",
		"@types/sinon": "^17.0.2",
		"@types/vscode": "1.90.0",
		"@types/webpack": "^5.28.5",
		"@typescript-eslint/eslint-plugin": "^6.13.2",
		"@typescript-eslint/parser": "^6.13.2",
		"@vscode/test-cli": "^0.0.10",
		"@vscode/test-electron": "^2.4.1",
		"@vscode/vsce": "^2.22.0",
		"ado-npm-auth": "^0.1.2",
		"copy-webpack-plugin": "^11.0.0",
		"copyfiles": "^2.4.1",
		"eslint": "^8.55.0",
		"mocha": "^10.2.0",
		"npm-run-all2": "^7.0.1",
		"raw-loader": "^4.0.2",
		"shellcheck": "^3.0.0",
		"sinon": "^17.0.1",
		"ts-loader": "^9.5.1",
		"ts-sinon": "^2.0.2",
		"typescript": "^5.3.2",
		"vscode-dts": "^0.3.3",
		"webpack": "^5.94.0",
		"webpack-cli": "^5.1.4"
	},
	"dependencies": {
		"@enonic/fnv-plus": "^1.3.0",
		"@microsoft/dev-tunnels-contracts": "^1.0.7463",
		"@vscode-internal/remote-web-rpc": "^2.1.9",
		"@vscode/chat-extension-utils": "^0.0.0-alpha.4",
		"@vscode/extension-telemetry": "^0.9.0",
		"@vscode/prompt-tsx": "^0.3.0-alpha.13",
		"glob": "^10.5.0",
		"https-proxy-agent": "^7.0.2",
		"lockfile": "^1.0.4",
		"minimist": "^1.2.8",
		"posix-getopt": "^1.2.1",
		"shell-quote": "^1.8.1",
		"socks": "^2.7.3",
		"ssh-config": "^5.0.2",
		"table": "^6.8.2"
	},
	"resolutions": {
		"strip-ansi": "6.0.1"
	},
	"__metadata": {
		"installedTimestamp": 1765760155775,
		"targetPlatform": "undefined",
		"size": 2831883
	}
}