@@ -501,13 +501,53 @@ def friendly_title(name: str, page_type: str = "class") -> str:
501501 ],
502502}
503503
504+ # TypeScript SDK links to TypeScript-specific docs
505+ TYPESCRIPT_RELATED_DOCS = {
506+ "agent" : [
507+ ("TypeScript Overview" , "/docs/typescript/overview" , "book-open" ),
508+ ("TypeScript Quickstart" , "/docs/typescript/quickstart" , "rocket" ),
509+ ("TypeScript Agent" , "/docs/typescript/agent" , "robot" ),
510+ ],
511+ "tool" : [
512+ ("TypeScript Tools" , "/docs/typescript/tools" , "wrench" ),
513+ ("TypeScript Agent" , "/docs/typescript/agent" , "robot" ),
514+ ],
515+ "config" : [
516+ ("TypeScript Installation" , "/docs/typescript/installation" , "download" ),
517+ ("TypeScript Overview" , "/docs/typescript/overview" , "book-open" ),
518+ ],
519+ "memory" : [
520+ ("TypeScript Memory" , "/docs/typescript/memory" , "brain" ),
521+ ],
522+ "workflow" : [
523+ ("TypeScript AgentFlow" , "/docs/typescript/agentflow" , "diagram-project" ),
524+ ("TypeScript AgentTeam" , "/docs/typescript/agentteam" , "users" ),
525+ ],
526+ "team" : [
527+ ("TypeScript AgentTeam" , "/docs/typescript/agentteam" , "users" ),
528+ ],
529+ "flow" : [
530+ ("TypeScript AgentFlow" , "/docs/typescript/agentflow" , "diagram-project" ),
531+ ],
532+ "task" : [
533+ ("TypeScript AgentTeam" , "/docs/typescript/agentteam" , "users" ),
534+ ],
535+ "mcp" : [
536+ ("TypeScript MCP" , "/docs/typescript/mcp" , "plug" ),
537+ ],
538+ "llm" : [
539+ ("TypeScript Overview" , "/docs/typescript/overview" , "book-open" ),
540+ ],
541+ }
504542
505- def get_related_docs (name : str , max_items : int = 5 ) -> list :
543+
544+ def get_related_docs (name : str , max_items : int = 5 , package : str = "python" ) -> list :
506545 """Find related documentation based on keywords in the name.
507546
508547 Args:
509548 name: Class, function, or module name to find related docs for
510549 max_items: Maximum number of related docs to return
550+ package: Package name to determine which mapping to use
511551
512552 Returns:
513553 List of (title, path, icon) tuples, most relevant first
@@ -516,8 +556,14 @@ def get_related_docs(name: str, max_items: int = 5) -> list:
516556 related = []
517557 seen_paths = set ()
518558
559+ # Select the appropriate mapping based on package
560+ if package == "typescript" :
561+ docs_map = TYPESCRIPT_RELATED_DOCS
562+ else :
563+ docs_map = RELATED_DOCS # Python packages use the main mapping
564+
519565 # Check each keyword against the name
520- for keyword , docs in RELATED_DOCS .items ():
566+ for keyword , docs in docs_map .items ():
521567 if keyword in name_lower :
522568 for doc in docs :
523569 if doc [1 ] not in seen_paths :
@@ -527,17 +573,18 @@ def get_related_docs(name: str, max_items: int = 5) -> list:
527573 return related [:max_items ]
528574
529575
530- def render_related_section (name : str , max_items : int = 5 ) -> str :
576+ def render_related_section (name : str , max_items : int = 5 , package : str = "python" ) -> str :
531577 """Render a CardGroup section with related documentation links.
532578
533579 Args:
534580 name: Class, function, or module name
535581 max_items: Maximum related items to show
582+ package: Package name to determine which links to use
536583
537584 Returns:
538585 MDX string with CardGroup, or empty string if no related docs
539586 """
540- related = get_related_docs (name , max_items )
587+ related = get_related_docs (name , max_items , package )
541588 if not related :
542589 return ""
543590
@@ -1249,7 +1296,7 @@ def _render_module(self, info: ModuleInfo) -> str:
12491296 lines .append (f"| `{ name } ` | `{ escape_for_table (truncated_val , is_type = False )} ` |" )
12501297 lines .append ("" )
12511298 # Add related documentation section
1252- related_section = render_related_section (info .short_name , max_items = 5 )
1299+ related_section = render_related_section (info .short_name , max_items = 5 , package = self . package_name )
12531300 if related_section :
12541301 lines .append (related_section )
12551302
@@ -1333,7 +1380,7 @@ def _render_module_granular(self, info: ModuleInfo) -> str:
13331380 lines .append (f"| `{ name } ` | `{ escape_for_table (truncated_val , is_type = False )} ` |" )
13341381 lines .append ("" )
13351382 # Add related documentation section
1336- related_section = render_related_section (info .short_name , max_items = 5 )
1383+ related_section = render_related_section (info .short_name , max_items = 5 , package = self . package_name )
13371384 if related_section :
13381385 lines .append (related_section )
13391386
@@ -1467,7 +1514,7 @@ def _render_class_page(self, cls: ClassInfo, module_info: ModuleInfo) -> str:
14671514 lines .append (f"```{ lang } \n { cls .examples [0 ]} \n ```\n " )
14681515
14691516 # Add related documentation section
1470- related_section = render_related_section (cls .name , max_items = 5 )
1517+ related_section = render_related_section (cls .name , max_items = 5 , package = self . package_name )
14711518 if related_section :
14721519 lines .append (related_section )
14731520
@@ -1577,7 +1624,7 @@ def _render_function_page(self, func: FunctionInfo, module_info: ModuleInfo, cls
15771624 lines .append (f"```python\n { dedented_ex } \n ```\n " )
15781625
15791626 # Add related documentation section
1580- related_section = render_related_section (func .name , max_items = 5 )
1627+ related_section = render_related_section (func .name , max_items = 5 , package = self . package_name )
15811628 if related_section :
15821629 lines .append (related_section )
15831630
0 commit comments