Repository: quarkusio/quarkus
Issue: quarkus ext add io.quarkiverse.ngrok:quarkus-ngrok does not include version info 

### Describe the bug

running: `quarkus ext add io.quarkiverse.ngrok:quarkus-ngrok` adds only this:

```
 <dependency>
      <groupId>io.quarkiverse.ngrok</groupId>
      <artifactId>quarkus-ngrok</artifactId>
    </dependency>
```

### Expected behavior

it should have added:

```
 <dependency>
      <groupId>io.quarkiverse.ngrok</groupId>
      <artifactId>quarkus-ngrok</artifactId>
	<version>0.1.3</version>
    </dependency>
```

### Actual behavior

_No response_

### How to Reproduce?

using quarkus 2.9.0 cli

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/AddExtensionsCommandHandler.java
independent-projects/tools/devtools-testing/src/test/java/io/quarkus/devtools/project/create/ExtensionsAppearingInPlatformAndNonPlatformCatalogsTest.java

diff --git a/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/AddExtensionsCommandHandler.java b/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/AddExtensionsCommandHandler.java
index 179e5c30221..c40a36d03b1 100644
--- a/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/AddExtensionsCommandHandler.java
+++ b/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/AddExtensionsCommandHandler.java
@@ -103,17 +103,26 @@ public ExtensionInstallPlan planInstallation(QuarkusCommandInvocation invocation
         ExtensionInstallPlan.Builder builder = ExtensionInstallPlan.builder();
         for (String keyword : keywords) {
             int countColons = StringUtils.countMatches(keyword, ":");
-            // Check if it's just groupId:artifactId
-            if (countColons == 1) {
-                ArtifactKey artifactKey = ArtifactKey.fromString(keyword);
-                builder.addManagedExtension(new ArtifactCoords(artifactKey, null));
-                continue;
-            } else if (countColons > 1) {
+            if (countColons > 1) {
                 // it's a gav
                 builder.addIndependentExtension(ArtifactCoords.fromString(keyword));
                 continue;
             }
-            List<Extension> listed = listInternalExtensions(quarkusCore, keyword, catalog.getExtensions());
+            List<Extension> listed = List.of();
+            // Check if it's just groupId:artifactId
+            if (countColons == 1) {
+                ArtifactKey artifactKey = ArtifactKey.fromString(keyword);
+                for (Extension e : invocation.getExtensionsCatalog().getExtensions()) {
+                    if (e.getArtifact().getKey().equals(artifactKey)) {
+                        listed = List.of(e);
+                        break;
+                    }
+                }
+
+                //builder.addManagedExtension(new ArtifactCoords(artifactKey, null));
+            } else {
+                listed = listInternalExtensions(quarkusCore, keyword, catalog.getExtensions());
+            }
             if (listed.isEmpty()) {
                 // No extension found for this keyword.
                 builder.addUnmatchedKeyword(keyword);
@@ -125,7 +134,6 @@ else if (listed.size() > 1 && !ExtensionPredicate.isPattern(keyword)) {
             }
             for (Extension e : listed) {
                 final ArtifactCoords extensionCoords = e.getArtifact();
-
                 boolean managed = false;
                 ExtensionOrigin firstPlatform = null;
                 ExtensionOrigin preferredOrigin = null;
diff --git a/independent-projects/tools/devtools-testing/src/test/java/io/quarkus/devtools/project/create/ExtensionsAppearingInPlatformAndNonPlatformCatalogsTest.java b/independent-projects/tools/devtools-testing/src/test/java/io/quarkus/devtools/project/create/ExtensionsAppearingInPlatformAndNonPlatformCatalogsTest.java
index 8ac8580def2..ea848b69967 100644
--- a/independent-projects/tools/devtools-testing/src/test/java/io/quarkus/devtools/project/create/ExtensionsAppearingInPlatformAndNonPlatformCatalogsTest.java
+++ b/independent-projects/tools/devtools-testing/src/test/java/io/quarkus/devtools/project/create/ExtensionsAppearingInPlatformAndNonPlatformCatalogsTest.java
@@ -203,6 +203,20 @@ public void addExtensionAndImportMemberBom() throws Exception {
         assertModel(projectDir, toPlatformBomCoords("acme-baz-bom"), expectedExtensions, "1.0.1");
     }
 
+    @Test
+    public void addNonPlatformExtensionWithGA() throws Exception {
+        final Path projectDir = newProjectDir("add-non-platform-extension-with-ga");
+        createProject(projectDir, Arrays.asList("acme-foo"));
+
+        assertModel(projectDir, toPlatformBomCoords("acme-foo-bom"), toPlatformExtensionCoords("acme-foo"), "2.0.4");
+
+        addExtensions(projectDir, Arrays.asList("org.other:other-six-zero"));
+
+        final List<ArtifactCoords> expectedExtensions = toPlatformExtensionCoords("acme-foo");
+        expectedExtensions.add(ArtifactCoords.fromString("org.other:other-six-zero:6.0"));
+        assertModel(projectDir, toPlatformBomCoords("acme-foo-bom"), expectedExtensions, "2.0.4");
+    }
+
     @Test
     public void attemptCreateWithIncompatibleExtensions() throws Exception {
         final Path projectDir = newProjectDir("create-with-incompatible-extensions");