forked from CopilotKit/CopilotKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathframework-order.ts
More file actions
44 lines (43 loc) · 1.48 KB
/
Copy pathframework-order.ts
File metadata and controls
44 lines (43 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Display order for the agentic-backend picker. Replaces the previous
// category-grouped layout — partners explicitly asked us to drop the
// "MOST POPULAR / AGENT FRAMEWORKS / ENTERPRISE / EMERGING" buckets,
// which read as a tier list and worked against the partnership story.
// Both the sidebar dropdown and the docs-landing "Switch backend" grid
// render a single flat list in this order.
//
// Built-in Agent (CopilotKit) is intentionally NOT in this list: the
// sidebar variant pins it at the top as a separate row, and the docs
// landing already renders the page in BIA's "Continue with…" frame.
export const FRAMEWORK_DISPLAY_ORDER: readonly string[] = [
"deepagents",
"langgraph-python",
"langgraph-fastapi",
"langgraph-typescript",
"google-adk",
"strands",
"strands-typescript",
"mastra",
"claude-sdk-python",
"claude-sdk-typescript",
"pydantic-ai",
"ms-agent-python",
"ms-agent-dotnet",
"ms-agent-harness-dotnet",
"ag2",
"agno",
"llamaindex",
"langroid",
"spring-ai",
"crewai-crews",
];
export function compareByDisplayOrder(a: string, b: string): number {
const ai = FRAMEWORK_DISPLAY_ORDER.indexOf(a);
const bi = FRAMEWORK_DISPLAY_ORDER.indexOf(b);
// Slugs not in the list sort to the end, alpha as tiebreak — keeps
// the picker stable if the registry adds an integration before this
// list is updated.
if (ai === -1 && bi === -1) return a.localeCompare(b);
if (ai === -1) return 1;
if (bi === -1) return -1;
return ai - bi;
}