@@ -273,7 +273,8 @@ static const tool_def_t TOOLS[] = {
273273 {"index_repository" ,
274274 "Index a repository into the knowledge graph. "
275275 "Special mode 'cross-repo-intelligence': skip extraction, only match Routes/Channels "
276- "across projects to create CROSS_HTTP_CALLS/CROSS_ASYNC_CALLS/CROSS_CHANNEL edges. "
276+ "and Maven library dependencies across projects to create CROSS_HTTP_CALLS/"
277+ "CROSS_ASYNC_CALLS/CROSS_CHANNEL/CROSS_LIBRARY_DEPENDS_ON/CROSS_LIBRARY_USED_BY edges. "
277278 "Requires target_projects param. Ensure target projects have fresh indexes first." ,
278279 "{\"type\":\"object\",\"properties\":{\"repo_path\":{\"type\":\"string\",\"description\":"
279280 "\"Path to the repository\"},"
@@ -282,7 +283,8 @@ static const tool_def_t TOOLS[] = {
282283 "\"default\":\"full\",\"description\":\"All modes run type-aware LSP call/usage "
283284 "resolution (per-file + cross-file). full: all files + similarity/semantic edges. "
284285 "moderate: filtered files + similarity/semantic. fast: filtered files, no "
285- "similarity/semantic. cross-repo-intelligence: match Routes/Channels across projects.\"},"
286+ "similarity/semantic. cross-repo-intelligence: match Routes/Channels and Maven library "
287+ "dependencies across projects.\"},"
286288 "\"target_projects\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},"
287289 "\"description\":\"Projects to search for cross-repo links (cross-repo-intelligence mode). "
288290 "Use [\\\"*\\\"] for all indexed projects. Run list_projects to see available projects.\"},"
@@ -1813,9 +1815,14 @@ static void append_cross_repo_summary(yyjson_mut_doc *doc, yyjson_mut_val *root,
18131815 /* Scan edge types for any CROSS_* edges and sum them */
18141816 int cross_total = 0 ;
18151817 yyjson_mut_val * cr = yyjson_mut_obj (doc );
1816- static const char * cross_types [] = {"CROSS_HTTP_CALLS" , "CROSS_ASYNC_CALLS" ,
1817- "CROSS_CHANNEL" , "CROSS_GRPC_CALLS" ,
1818- "CROSS_GRAPHQL_CALLS" , "CROSS_TRPC_CALLS" };
1818+ static const char * cross_types [] = {"CROSS_HTTP_CALLS" ,
1819+ "CROSS_ASYNC_CALLS" ,
1820+ "CROSS_CHANNEL" ,
1821+ "CROSS_GRPC_CALLS" ,
1822+ "CROSS_GRAPHQL_CALLS" ,
1823+ "CROSS_TRPC_CALLS" ,
1824+ "CROSS_LIBRARY_DEPENDS_ON" ,
1825+ "CROSS_LIBRARY_USED_BY" };
18191826 for (int t = 0 ; t < (int )(sizeof (cross_types ) / sizeof (cross_types [0 ])); t ++ ) {
18201827 for (int i = 0 ; i < schema -> edge_type_count ; i ++ ) {
18211828 if (strcmp (schema -> edge_types [i ].type , cross_types [t ]) == 0 ) {
@@ -2462,7 +2469,7 @@ static char *handle_cross_repo_mode(const char *repo_path, const char *args) {
24622469 yyjson_doc_free (jdoc );
24632470
24642471 int total = result .http_edges + result .async_edges + result .channel_edges + result .grpc_edges +
2465- result .graphql_edges + result .trpc_edges ;
2472+ result .graphql_edges + result .trpc_edges + result . library_edges ;
24662473 yyjson_mut_doc * doc = yyjson_mut_doc_new (NULL );
24672474 yyjson_mut_val * root = yyjson_mut_obj (doc );
24682475 yyjson_mut_doc_set_root (doc , root );
@@ -2476,6 +2483,7 @@ static char *handle_cross_repo_mode(const char *repo_path, const char *args) {
24762483 yyjson_mut_obj_add_int (doc , root , "cross_grpc_calls" , result .grpc_edges );
24772484 yyjson_mut_obj_add_int (doc , root , "cross_graphql_calls" , result .graphql_edges );
24782485 yyjson_mut_obj_add_int (doc , root , "cross_trpc_calls" , result .trpc_edges );
2486+ yyjson_mut_obj_add_int (doc , root , "cross_library_edges" , result .library_edges );
24792487 yyjson_mut_obj_add_int (doc , root , "total_cross_edges" , total );
24802488 yyjson_mut_obj_add_real (doc , root , "elapsed_ms" , result .elapsed_ms );
24812489
0 commit comments