Array of raw number arrays (each the same length).
Array of {x, y} points in the same order as input.
Run the full clustering pipeline on the server via the
RunClusterAnalysis GraphQL mutation, then map the result into the
Angular ClusterVisualizationResult shape used for rendering.
This is the preferred path: the server fetches the vectors, clusters, reduces dimensions, and (optionally) names clusters with an LLM — so the client never has to ship large vector payloads or duplicate that logic.
The data provider is resolved per multi-provider rules: the caller may
pass an explicit IMetadataProvider; otherwise the global
Metadata.Provider is used. The provider must be a GraphQLDataProvider
(the browser transport); when it is not, this method returns null so the
caller can fall back to ClusteringService.RunClustering.
Clustering configuration (algorithm, K, epsilon, etc.).
Optionaloptions: ClusterAnalysisServerOptionsOptional server-only knobs (NameClusters, Dimensions, PersistName, EntityID).
Optionalprovider: IMetadataProviderOptional metadata provider to scope the request to a specific server.
A visualization result, or null when no GraphQL provider is available.
Run the full clustering pipeline on pre-fetched vectors in the browser: cluster, project to 2D, and return a visualization result.
This is the fallback path used when no GraphQL provider is available, or by callers that already hold the vectors and want local computation.
Array of vectors with keys, raw number arrays, and optional metadata.
Clustering configuration (algorithm, K, epsilon, etc.).
A complete visualization result ready for rendering.
Reduce an array of high-dimensional vectors to 2D points using UMAP (falls back to PCA if UMAP is unavailable).
This is a standalone helper when you only need dimensionality reduction without clustering.