Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,21 @@ public class ConnectorSearchCommand extends SearchCommand {
private static final Set<String> AGENT_SUPPORT_CONNECTORS = LocalIndexCentral.getInstance()
.readJsonResource(AGENT_SUPPORT_CONNECTORS_JSON, AGENT_SUPPORT_CONNECTORS_LIST_TYPE);
public static final String IS_AGENT_SUPPORT = "isAgentSupport";
private static final Set<String> BLACKLISTED_CONNECTOR_NAME_PATTERNS = Set.of("ModelProvider");

private static boolean isBlacklisted(String connectorName) {
return BLACKLISTED_CONNECTOR_NAME_PATTERNS.stream().anyMatch(connectorName::contains);
}

public ConnectorSearchCommand(Project project, LineRange position, Map<String, String> queryMap) {
super(project, position, queryMap);
}

@Override
protected List<Item> defaultView() {
List<SearchResult> localConnectors = getLocalConnectors();
List<SearchResult> localConnectors = getLocalConnectors().stream()
.filter(result -> !isBlacklisted(result.name()))
.toList();
Category.Builder localCategoryBuilder = rootBuilder.stepIn("Local", null, null);
localConnectors.forEach(connection -> localCategoryBuilder.node(generateAvailableNode(connection, true)));

Expand All @@ -97,7 +104,9 @@ protected List<Item> search() {
// Search local connectors and rank them by relevance
// TODO: The current search does not combine local and standard connectors when calculating the relevance
// score. Consequently, results are currently returned in sets, and pagination does not work uniformly.
List<SearchResult> localConnectors = getLocalConnectors();
List<SearchResult> localConnectors = getLocalConnectors().stream()
.filter(result -> !isBlacklisted(result.name()))
.toList();
List<ScoredConnector> scoredConnectors = new ArrayList<>();
for (SearchResult connector : localConnectors) {
int score = RelevanceCalculator.calculateFuzzyRelevanceScore(
Expand All @@ -112,7 +121,9 @@ protected List<Item> search() {

// Search standard connectors from the database
List<SearchResult> searchResults = dbManager.searchConnectors(query, limit, offset);
searchResults.forEach(searchResult -> rootBuilder.node(generateAvailableNode(searchResult)));
searchResults.stream()
.filter(result -> !isBlacklisted(result.name()))
.forEach(searchResult -> rootBuilder.node(generateAvailableNode(searchResult)));
return rootBuilder.build().items();
}

Expand Down Expand Up @@ -150,7 +161,9 @@ protected List<Item> searchCurrentOrganization(String currentOrg) {
organizationConnectors.add(searchResult);
}
}
organizationConnectors.forEach(searchResult -> rootBuilder.node(generateAvailableNode(searchResult)));
organizationConnectors.stream()
.filter(result -> !isBlacklisted(result.name()))
.forEach(searchResult -> rootBuilder.node(generateAvailableNode(searchResult)));
}
return rootBuilder.build().items();
}
Expand All @@ -165,7 +178,10 @@ protected Map<String, List<SearchResult>> fetchPopularItems() {
List<String> packageList = category.getValue();
List<SearchResult> searchResults = dbManager.searchConnectorsByPackage(packageList, limit, offset);
SearchResult.sortByPackageListOrder(searchResults, packageList);
defaultView.put(category.getKey(), searchResults);
List<SearchResult> filteredResults = searchResults.stream()
.filter(result -> !isBlacklisted(result.name()))
.toList();
defaultView.put(category.getKey(), filteredResults);
}
return defaultView;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"description": "Sample Model providers",
"kind": "CONNECTOR",
"source": "empty.bal",
"queryMap": {
"q": "ModelProvider"
},
"categories": []
}
Loading