diff --git a/agent/agent.go b/agent/agent.go index 4dd9072bc1284..368c50edbea4d 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -312,7 +312,7 @@ func (a *agent) init() { switch magicType { case agentssh.MagicSessionTypeSSH: connectionType = proto.Connection_SSH - case agentssh.MagicSessionTypeVSCode: + case agentssh.MagicSessionTypeVSCode, agentssh.MagicSessionTypeCursor, agentssh.MagicSessionTypeWindsurf: connectionType = proto.Connection_VSCODE case agentssh.MagicSessionTypeJetBrains: connectionType = proto.Connection_JETBRAINS diff --git a/agent/agentssh/agentssh.go b/agent/agentssh/agentssh.go index c769e5f07f56f..b6306f82dc566 100644 --- a/agent/agentssh/agentssh.go +++ b/agent/agentssh/agentssh.go @@ -84,6 +84,11 @@ const ( // MagicSessionTypeJetBrains is set in the SSH config by the JetBrains // extension to identify itself. MagicSessionTypeJetBrains MagicSessionType = "jetbrains" + // MagicSessionTypeCursor is set in the SSH config by the Cursor extension to identify itself. + MagicSessionTypeCursor MagicSessionType = "cursor" + // MagicSessionTypeWindsurf is set in the SSH config by the Windsurf + // extension to identify itself. + MagicSessionTypeWindsurf MagicSessionType = "windsurf" ) // BlockedFileTransferCommands contains a list of restricted file transfer commands. @@ -320,6 +325,10 @@ func extractMagicSessionType(env []string) (magicType MagicSessionType, rawType magicType = MagicSessionTypeVSCode case MagicSessionTypeJetBrains: magicType = MagicSessionTypeJetBrains + case MagicSessionTypeCursor: + magicType = MagicSessionTypeCursor + case MagicSessionTypeWindsurf: + magicType = MagicSessionTypeWindsurf case "", MagicSessionTypeSSH: magicType = MagicSessionTypeSSH default: @@ -416,7 +425,7 @@ func (s *Server) sessionHandler(session ssh.Session) { reportSession := true switch magicType { - case MagicSessionTypeVSCode: + case MagicSessionTypeVSCode, MagicSessionTypeCursor, MagicSessionTypeWindsurf: s.connCountVSCode.Add(1) defer s.connCountVSCode.Add(-1) case MagicSessionTypeJetBrains: diff --git a/agent/agentssh/metrics.go b/agent/agentssh/metrics.go index 22bbf1fd80743..22741527b6673 100644 --- a/agent/agentssh/metrics.go +++ b/agent/agentssh/metrics.go @@ -76,6 +76,8 @@ func magicTypeMetricLabel(magicType MagicSessionType) string { case MagicSessionTypeVSCode: case MagicSessionTypeJetBrains: case MagicSessionTypeSSH: + case MagicSessionTypeCursor: + case MagicSessionTypeWindsurf: case MagicSessionTypeUnknown: default: magicType = MagicSessionTypeUnknown