Skip to content

Commit 641d9b9

Browse files
Shidfarclaude
andcommitted
feat: register protocol endpoints in all 14 linkers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a15be1c commit 641d9b9

14 files changed

Lines changed: 224 additions & 0 deletions

src/pipeline/servicelink_eventbridge.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,22 @@ int cbm_servicelink_eventbridge(cbm_pipeline_ctx_t *ctx) {
579579
"producers", itoa_eb(prod_count),
580580
"consumers", itoa_eb(cons_count));
581581

582+
/* Register endpoints for cross-repo matching */
583+
if (ctx->endpoints) {
584+
for (int i = 0; i < prod_count; i++) {
585+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "eventbridge",
586+
"producer", producers[i].identifier,
587+
producers[i].source_qn, producers[i].file_path,
588+
producers[i].extra);
589+
}
590+
for (int i = 0; i < cons_count; i++) {
591+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "eventbridge",
592+
"consumer", consumers[i].identifier,
593+
consumers[i].handler_qn, consumers[i].file_path,
594+
consumers[i].extra);
595+
}
596+
}
597+
582598
/* 4. Match consumers to producers and create edges */
583599
int link_count = 0;
584600

src/pipeline/servicelink_graphql.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,22 @@ int cbm_servicelink_graphql(cbm_pipeline_ctx_t *ctx) {
834834
"producers", itoa_gql(prod_count),
835835
"consumers", itoa_gql(cons_count));
836836

837+
/* Register endpoints for cross-repo matching */
838+
if (ctx->endpoints) {
839+
for (int i = 0; i < prod_count; i++) {
840+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "graphql",
841+
"producer", producers[i].identifier,
842+
producers[i].source_qn, producers[i].file_path,
843+
producers[i].extra);
844+
}
845+
for (int i = 0; i < cons_count; i++) {
846+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "graphql",
847+
"consumer", consumers[i].identifier,
848+
consumers[i].handler_qn, consumers[i].file_path,
849+
consumers[i].extra);
850+
}
851+
}
852+
837853
if (prod_count == 0 || cons_count == 0) {
838854
cbm_log_info("servicelink.done", "protocol", "graphql",
839855
"links", "0");

src/pipeline/servicelink_grpc.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,22 @@ int cbm_servicelink_grpc(cbm_pipeline_ctx_t *ctx) {
615615
"producers", itoa_grpc(prod_count),
616616
"consumers", itoa_grpc(cons_count));
617617

618+
/* Register endpoints for cross-repo matching */
619+
if (ctx->endpoints) {
620+
for (int i = 0; i < prod_count; i++) {
621+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "grpc",
622+
"producer", producers[i].identifier,
623+
producers[i].source_qn, producers[i].file_path,
624+
producers[i].extra);
625+
}
626+
for (int i = 0; i < cons_count; i++) {
627+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "grpc",
628+
"consumer", consumers[i].identifier,
629+
consumers[i].handler_qn, consumers[i].file_path,
630+
consumers[i].extra);
631+
}
632+
}
633+
618634
/* 4. Match consumers to producers and create edges.
619635
* Collect best matches, dedup by (src, tgt) keeping highest confidence
620636
* to prevent lower-confidence overwrites via gbuf dedup. */

src/pipeline/servicelink_kafka.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,22 @@ int cbm_servicelink_kafka(cbm_pipeline_ctx_t *ctx) {
484484
"producers", itoa_kafka(prod_count),
485485
"consumers", itoa_kafka(cons_count));
486486

487+
/* Register endpoints for cross-repo matching */
488+
if (ctx->endpoints) {
489+
for (int i = 0; i < prod_count; i++) {
490+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "kafka",
491+
"producer", producers[i].identifier,
492+
producers[i].source_qn, producers[i].file_path,
493+
producers[i].extra);
494+
}
495+
for (int i = 0; i < cons_count; i++) {
496+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "kafka",
497+
"consumer", consumers[i].identifier,
498+
consumers[i].handler_qn, consumers[i].file_path,
499+
consumers[i].extra);
500+
}
501+
}
502+
487503
/* 4. Match consumers to producers and create edges */
488504
int link_count = 0;
489505

src/pipeline/servicelink_mqtt.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,22 @@ int cbm_servicelink_mqtt(cbm_pipeline_ctx_t *ctx) {
532532
"producers", itoa_mqtt(prod_count),
533533
"consumers", itoa_mqtt(cons_count));
534534

535+
/* Register endpoints for cross-repo matching */
536+
if (ctx->endpoints) {
537+
for (int i = 0; i < prod_count; i++) {
538+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "mqtt",
539+
"producer", producers[i].identifier,
540+
producers[i].source_qn, producers[i].file_path,
541+
producers[i].extra);
542+
}
543+
for (int i = 0; i < cons_count; i++) {
544+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "mqtt",
545+
"consumer", consumers[i].identifier,
546+
consumers[i].handler_qn, consumers[i].file_path,
547+
consumers[i].extra);
548+
}
549+
}
550+
535551
/* 4. ALL-match: for each consumer, check ALL producers and create edges for any match */
536552
int link_count = 0;
537553

src/pipeline/servicelink_nats.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,22 @@ int cbm_servicelink_nats(cbm_pipeline_ctx_t *ctx) {
571571
"producers", itoa_nats(prod_count),
572572
"consumers", itoa_nats(cons_count));
573573

574+
/* Register endpoints for cross-repo matching */
575+
if (ctx->endpoints) {
576+
for (int i = 0; i < prod_count; i++) {
577+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "nats",
578+
"producer", producers[i].identifier,
579+
producers[i].source_qn, producers[i].file_path,
580+
producers[i].extra);
581+
}
582+
for (int i = 0; i < cons_count; i++) {
583+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "nats",
584+
"consumer", consumers[i].identifier,
585+
consumers[i].handler_qn, consumers[i].file_path,
586+
consumers[i].extra);
587+
}
588+
}
589+
574590
/* 4. ALL-match: check ALL producers for each consumer (like RabbitMQ) */
575591
int link_count = 0;
576592

src/pipeline/servicelink_pubsub.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,22 @@ int cbm_servicelink_pubsub(cbm_pipeline_ctx_t *ctx) {
447447
"producers", itoa_pubsub(prod_count),
448448
"consumers", itoa_pubsub(cons_count));
449449

450+
/* Register endpoints for cross-repo matching */
451+
if (ctx->endpoints) {
452+
for (int i = 0; i < prod_count; i++) {
453+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "pubsub",
454+
"producer", producers[i].identifier,
455+
producers[i].source_qn, producers[i].file_path,
456+
producers[i].extra);
457+
}
458+
for (int i = 0; i < cons_count; i++) {
459+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "pubsub",
460+
"consumer", consumers[i].identifier,
461+
consumers[i].handler_qn, consumers[i].file_path,
462+
consumers[i].extra);
463+
}
464+
}
465+
450466
/* 4. Match consumers to producers by topic name and create edges */
451467
int link_count = 0;
452468

src/pipeline/servicelink_rabbitmq.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,22 @@ int cbm_servicelink_rabbitmq(cbm_pipeline_ctx_t *ctx) {
599599
"producers", itoa_amqp(prod_count),
600600
"consumers", itoa_amqp(cons_count));
601601

602+
/* Register endpoints for cross-repo matching */
603+
if (ctx->endpoints) {
604+
for (int i = 0; i < prod_count; i++) {
605+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "rabbitmq",
606+
"producer", producers[i].identifier,
607+
producers[i].source_qn, producers[i].file_path,
608+
producers[i].extra);
609+
}
610+
for (int i = 0; i < cons_count; i++) {
611+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "rabbitmq",
612+
"consumer", consumers[i].identifier,
613+
consumers[i].handler_qn, consumers[i].file_path,
614+
consumers[i].extra);
615+
}
616+
}
617+
602618
/* 4. Match consumers to producers and create edges */
603619
int link_count = 0;
604620

src/pipeline/servicelink_redis_pubsub.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,22 @@ int cbm_servicelink_redis_pubsub(cbm_pipeline_ctx_t *ctx) {
578578
"producers", itoa_redis(prod_count),
579579
"consumers", itoa_redis(cons_count));
580580

581+
/* Register endpoints for cross-repo matching */
582+
if (ctx->endpoints) {
583+
for (int i = 0; i < prod_count; i++) {
584+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "redis_pubsub",
585+
"producer", producers[i].identifier,
586+
producers[i].source_qn, producers[i].file_path,
587+
producers[i].extra);
588+
}
589+
for (int i = 0; i < cons_count; i++) {
590+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "redis_pubsub",
591+
"consumer", consumers[i].identifier,
592+
consumers[i].handler_qn, consumers[i].file_path,
593+
consumers[i].extra);
594+
}
595+
}
596+
581597
/* 4. ALL-match: for each consumer, check ALL producers, create edges for matches */
582598
int link_count = 0;
583599

src/pipeline/servicelink_sns.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,22 @@ int cbm_servicelink_sns(cbm_pipeline_ctx_t *ctx) {
451451
"producers", itoa_sns(prod_count),
452452
"consumers", itoa_sns(cons_count));
453453

454+
/* Register endpoints for cross-repo matching */
455+
if (ctx->endpoints) {
456+
for (int i = 0; i < prod_count; i++) {
457+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "sns",
458+
"producer", producers[i].identifier,
459+
producers[i].source_qn, producers[i].file_path,
460+
producers[i].extra);
461+
}
462+
for (int i = 0; i < cons_count; i++) {
463+
sl_register_endpoint(ctx->endpoints, ctx->project_name, "sns",
464+
"consumer", consumers[i].identifier,
465+
consumers[i].handler_qn, consumers[i].file_path,
466+
consumers[i].extra);
467+
}
468+
}
469+
454470
/* 4. Match consumers to producers by topic name and create edges */
455471
int link_count = 0;
456472

0 commit comments

Comments
 (0)