codeix 0.5.0

Fast semantic code search for AI agents — find symbols, references, and callers across any codebase
Documentation
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
{"file":"CHANGELOG.md","name":"Changelog","kind":"section","line":[1,1]}
{"file":"CHANGELOG.md","name":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)","kind":"section","line":[3,3],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)/⚠ BREAKING CHANGES","kind":"section","line":[6,6],"parent":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)/Features","kind":"section","line":[10,10],"parent":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)/Performance Improvements","kind":"section","line":[20,20],"parent":"Changelog/[0.2.0](https://github.com/montanetech/codeix/compare/v0.1.8...v0.2.0) (2026-02-06)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.8](https://github.com/montanetech/codeix/compare/v0.1.7...v0.1.8) (2026-02-06)","kind":"section","line":[24,24],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.8](https://github.com/montanetech/codeix/compare/v0.1.7...v0.1.8) (2026-02-06)/Features","kind":"section","line":[27,27],"parent":"Changelog/[0.1.8](https://github.com/montanetech/codeix/compare/v0.1.7...v0.1.8) (2026-02-06)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.8](https://github.com/montanetech/codeix/compare/v0.1.7...v0.1.8) (2026-02-06)/Bug Fixes","kind":"section","line":[32,32],"parent":"Changelog/[0.1.8](https://github.com/montanetech/codeix/compare/v0.1.7...v0.1.8) (2026-02-06)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.7](https://github.com/montanetech/codeix/compare/v0.1.6...v0.1.7) (2026-02-05)","kind":"section","line":[37,37],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.7](https://github.com/montanetech/codeix/compare/v0.1.6...v0.1.7) (2026-02-05)/Bug Fixes","kind":"section","line":[40,40],"parent":"Changelog/[0.1.7](https://github.com/montanetech/codeix/compare/v0.1.6...v0.1.7) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.6](https://github.com/montanetech/codeix/compare/v0.1.5...v0.1.6) (2026-02-05)","kind":"section","line":[44,44],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.6](https://github.com/montanetech/codeix/compare/v0.1.5...v0.1.6) (2026-02-05)/Bug Fixes","kind":"section","line":[47,47],"parent":"Changelog/[0.1.6](https://github.com/montanetech/codeix/compare/v0.1.5...v0.1.6) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.5](https://github.com/montanetech/codeix/compare/v0.1.4...v0.1.5) (2026-02-05)","kind":"section","line":[51,51],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.5](https://github.com/montanetech/codeix/compare/v0.1.4...v0.1.5) (2026-02-05)/Bug Fixes","kind":"section","line":[54,54],"parent":"Changelog/[0.1.5](https://github.com/montanetech/codeix/compare/v0.1.4...v0.1.5) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.4](https://github.com/montanetech/codeix/compare/v0.1.3...v0.1.4) (2026-02-05)","kind":"section","line":[59,59],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.4](https://github.com/montanetech/codeix/compare/v0.1.3...v0.1.4) (2026-02-05)/Bug Fixes","kind":"section","line":[62,62],"parent":"Changelog/[0.1.4](https://github.com/montanetech/codeix/compare/v0.1.3...v0.1.4) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.3](https://github.com/montanetech/codeix/compare/v0.1.2...v0.1.3) (2026-02-05)","kind":"section","line":[66,66],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.3](https://github.com/montanetech/codeix/compare/v0.1.2...v0.1.3) (2026-02-05)/Bug Fixes","kind":"section","line":[69,69],"parent":"Changelog/[0.1.3](https://github.com/montanetech/codeix/compare/v0.1.2...v0.1.3) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.2](https://github.com/montanetech/codeix/compare/v0.1.1...v0.1.2) (2026-02-05)","kind":"section","line":[73,73],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.2](https://github.com/montanetech/codeix/compare/v0.1.1...v0.1.2) (2026-02-05)/Bug Fixes","kind":"section","line":[76,76],"parent":"Changelog/[0.1.2](https://github.com/montanetech/codeix/compare/v0.1.1...v0.1.2) (2026-02-05)"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.1](https://github.com/montanetech/codeix/compare/codeix-v0.1.0...codeix-v0.1.1) (2026-02-05)","kind":"section","line":[81,81],"parent":"Changelog"}
{"file":"CHANGELOG.md","name":"Changelog/[0.1.1](https://github.com/montanetech/codeix/compare/codeix-v0.1.0...codeix-v0.1.1) (2026-02-05)/Features","kind":"section","line":[84,84],"parent":"Changelog/[0.1.1](https://github.com/montanetech/codeix/compare/codeix-v0.1.0...codeix-v0.1.1) (2026-02-05)"}
{"file":"README.md","name":"codeix","kind":"section","line":[1,1]}
{"file":"README.md","name":"codeix/Why","kind":"section","line":[11,11],"parent":"codeix"}
{"file":"README.md","name":"codeix/Why/What existing tools get wrong","kind":"section","line":[17,17],"parent":"codeix/Why"}
{"file":"README.md","name":"codeix/Why/What codeix does differently","kind":"section","line":[27,27],"parent":"codeix/Why"}
{"file":"README.md","name":"codeix/The `.codeindex` format","kind":"section","line":[36,36],"parent":"codeix"}
{"file":"README.md","name":"codeix/Ship your index with your package","kind":"section","line":[58,58],"parent":"codeix"}
{"file":"README.md","name":"codeix/MCP tools","kind":"section","line":[64,64],"parent":"codeix"}
{"file":"README.md","name":"codeix/Project discovery","kind":"section","line":[78,78],"parent":"codeix"}
{"file":"README.md","name":"codeix/Languages","kind":"section","line":[84,84],"parent":"codeix"}
{"file":"README.md","name":"codeix/Languages/Markdown support","kind":"section","line":[102,102],"parent":"codeix/Languages"}
{"file":"README.md","name":"codeix/Languages/Embedded scripts","kind":"section","line":[108,108],"parent":"codeix/Languages"}
{"file":"README.md","name":"codeix/Install","kind":"section","line":[121,121],"parent":"codeix"}
{"file":"README.md","name":"codeix/Usage","kind":"section","line":[144,144],"parent":"codeix"}
{"file":"README.md","name":"codeix/Usage/MCP client configuration","kind":"section","line":[161,161],"parent":"codeix/Usage"}
{"file":"README.md","name":"codeix/Design principles","kind":"section","line":[175,175],"parent":"codeix"}
{"file":"README.md","name":"codeix/Architecture","kind":"section","line":[182,182],"parent":"codeix"}
{"file":"README.md","name":"codeix/License","kind":"section","line":[186,186],"parent":"codeix"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions","kind":"section","line":[1,1]}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Problem Statement","kind":"section","line":[3,3],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Vision","kind":"section","line":[11,11],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-001: Index format is text-based JSONL","kind":"section","line":[19,19],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files","kind":"section","line":[38,38],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files/`index.json` — manifest","kind":"section","line":[50,50],"parent":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files/`files.jsonl` — file registry","kind":"section","line":[62,62],"parent":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files/`symbols.jsonl` — symbol index (definitions + imports)","kind":"section","line":[70,70],"parent":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files/`texts.jsonl` — comments, docstrings, string literals","kind":"section","line":[85,85],"parent":"Codeindex — Architecture Decisions/ADR-002: Index structure — 4 files"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-003: Index is self-contained, no dependency declarations","kind":"section","line":[107,107],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-004: Parsing via tree-sitter","kind":"section","line":[145,145],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch","kind":"section","line":[201,201],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch/`codeindex build`","kind":"section","line":[205,205],"parent":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch/`codeindex serve`","kind":"section","line":[211,211],"parent":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch/`codeindex serve --watch`","kind":"section","line":[216,216],"parent":"Codeindex — Architecture Decisions/ADR-005: Three commands — build, serve, watch"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-006: Deterministic, sorted output","kind":"section","line":[230,230],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-007: Index stays on disk via watch mode — committed like a lockfile","kind":"section","line":[246,246],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-008: Core is local only — no external services","kind":"section","line":[284,284],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing","kind":"section","line":[302,302],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing/Discovery tool","kind":"section","line":[308,308],"parent":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing/Search tools (FTS5, BM25-ranked)","kind":"section","line":[314,314],"parent":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing/Lookup tools (exact, structural)","kind":"section","line":[322,322],"parent":"Codeindex — Architecture Decisions/ADR-009: MCP tool surface — 7 tools, zero plumbing"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-010: Host language — Rust","kind":"section","line":[351,351],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-011: Project discovery — `.git/` boundaries","kind":"section","line":[413,413],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Future Considerations","kind":"section","line":[505,505],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Future Considerations/Project metadata tools","kind":"section","line":[507,507],"parent":"Codeindex — Architecture Decisions/Future Considerations"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Future Considerations/External API documentation — two-tier model","kind":"section","line":[521,521],"parent":"Codeindex — Architecture Decisions/Future Considerations"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Future Considerations/MCP resources","kind":"section","line":[551,551],"parent":"Codeindex — Architecture Decisions/Future Considerations"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Future Considerations/Dependency index composition (ADR-003)","kind":"section","line":[572,572],"parent":"Codeindex — Architecture Decisions/Future Considerations"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/ADR-012: Cross-platform support","kind":"section","line":[582,582],"parent":"Codeindex — Architecture Decisions"}
{"file":"docs/architecture.md","name":"Codeindex — Architecture Decisions/Resolved Questions","kind":"section","line":[612,612],"parent":"Codeindex — Architecture Decisions"}
{"file":"npm/install.js","name":"https","kind":"variable","line":[7,7],"visibility":"private"}
{"file":"npm/install.js","name":"fs","kind":"variable","line":[8,8],"visibility":"private"}
{"file":"npm/install.js","name":"path","kind":"variable","line":[9,9],"visibility":"private"}
{"file":"npm/install.js","name":"zlib","kind":"variable","line":[11,11],"visibility":"private"}
{"file":"npm/install.js","name":"VERSION","kind":"constant","line":[13,13],"visibility":"private"}
{"file":"npm/install.js","name":"REPO","kind":"constant","line":[14,14],"visibility":"private"}
{"file":"npm/install.js","name":"PLATFORM_MAP","kind":"constant","line":[16,20],"visibility":"private"}
{"file":"npm/install.js","name":"getTarget","kind":"function","line":[22,31],"tokens":"Object process key target PLATFORM_MAP","visibility":"private"}
{"file":"npm/install.js","name":"key","kind":"variable","line":[23,23],"tokens":"process","visibility":"private"}
{"file":"npm/install.js","name":"target","kind":"variable","line":[24,24],"tokens":"key PLATFORM_MAP","visibility":"private"}
{"file":"npm/install.js","name":"getArchiveUrl","kind":"function","line":[33,36],"tokens":"REPO target process ext VERSION","visibility":"private"}
{"file":"npm/install.js","name":"ext","kind":"variable","line":[34,34],"tokens":"process","visibility":"private"}
{"file":"npm/install.js","name":"download","kind":"function","line":[38,54],"tokens":"resolve download Error https res chunks Promise chunk url Buffer reject","visibility":"private"}
{"file":"npm/install.js","name":"chunks","kind":"variable","line":[48,48],"visibility":"private"}
{"file":"npm/install.js","name":"extractTarGz","kind":"function","line":[56,62],"tokens":"buffer tmpFile path destDir fs execSync","visibility":"private"}
{"file":"npm/install.js","name":"tmpFile","kind":"variable","line":[58,58],"tokens":"path destDir","visibility":"private"}
{"file":"npm/install.js","name":"extractZip","kind":"function","line":[64,73],"tokens":"execSync path tmpFile fs buffer destDir","visibility":"private"}
{"file":"npm/install.js","name":"tmpFile","kind":"variable","line":[66,66],"tokens":"destDir path","visibility":"private"}
{"file":"npm/install.js","name":"main","kind":"function","line":[75,101],"tokens":"__dirname path target binDir process VERSION fs getTarget binName url buffer download getArchiveUrl binPath extractZip extractTarGz","visibility":"private"}
{"file":"npm/install.js","name":"target","kind":"variable","line":[76,76],"tokens":"getTarget","visibility":"private"}
{"file":"npm/install.js","name":"url","kind":"variable","line":[77,77],"tokens":"target getArchiveUrl","visibility":"private"}
{"file":"npm/install.js","name":"binDir","kind":"variable","line":[78,78],"tokens":"path __dirname","visibility":"private"}
{"file":"npm/install.js","name":"binName","kind":"variable","line":[81,81],"tokens":"process","visibility":"private"}
{"file":"npm/install.js","name":"binPath","kind":"variable","line":[82,82],"tokens":"path binDir binName","visibility":"private"}
{"file":"npm/install.js","name":"buffer","kind":"variable","line":[91,91],"tokens":"download url","visibility":"private"}
{"file":"npm/run.js","name":"path","kind":"variable","line":[5,5],"visibility":"private"}
{"file":"npm/run.js","name":"ext","kind":"variable","line":[7,7],"tokens":"process","visibility":"private"}
{"file":"npm/run.js","name":"bin","kind":"variable","line":[8,8],"tokens":"__dirname path ext","visibility":"private"}
{"file":"python/codeix/__init__.py","name":"os","kind":"import","line":[3,3],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"platform","kind":"import","line":[4,4],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"stat","kind":"import","line":[5,5],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"subprocess","kind":"import","line":[6,6],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"sys","kind":"import","line":[7,7],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"tarfile","kind":"import","line":[8,8],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"tempfile","kind":"import","line":[9,9],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"zipfile","kind":"import","line":[10,10],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"io.BytesIO","kind":"import","line":[11,11],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"pathlib.Path","kind":"import","line":[12,12],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"urllib.request.urlopen","kind":"import","line":[13,13],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"urllib.request.Request","kind":"import","line":[13,13],"visibility":"private"}
{"file":"python/codeix/__init__.py","name":"__version__","kind":"variable","line":[15,15],"visibility":"internal"}
{"file":"python/codeix/__init__.py","name":"REPO","kind":"constant","line":[17,17],"visibility":"public"}
{"file":"python/codeix/__init__.py","name":"PLATFORM_MAP","kind":"constant","line":[19,23],"visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_cache_dir","kind":"function","line":[26,34],"tokens":"platform sys os Path get environ home base","visibility":"internal"}
{"file":"python/codeix/__init__.py","name":"_cache_dir.base","kind":"variable","line":[29,29],"parent":"_cache_dir","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_cache_dir.base","kind":"variable","line":[31,31],"parent":"_cache_dir","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_cache_dir.base","kind":"variable","line":[33,33],"parent":"_cache_dir","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_get_target","kind":"function","line":[37,44],"tokens":"system sys print stderr keys key platform machine exit PLATFORM_MAP get file target list","visibility":"internal"}
{"file":"python/codeix/__init__.py","name":"_get_target.key","kind":"variable","line":[38,38],"parent":"_get_target","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_get_target.target","kind":"variable","line":[39,39],"parent":"_get_target","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_download","kind":"function","line":[47,50],"tokens":"req __version__ headers urlopen Request resp url read","visibility":"internal"}
{"file":"python/codeix/__init__.py","name":"_download.req","kind":"variable","line":[48,48],"parent":"_download","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary","kind":"function","line":[53,95],"tokens":"cache sys st_mode read bin_path mkdir parents print __version__ platform archive_ext url _download zf member file extractfile exit stat BytesIO namelist tarfile getmembers zipfile S_IXGRP S_IXOTH data name _get_target fileobj mode target exists endswith write_bytes ZipFile open chmod ext S_IEXEC stderr REPO _cache_dir exist_ok tf","visibility":"internal"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.target","kind":"variable","line":[55,55],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.ext","kind":"variable","line":[56,56],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.cache","kind":"variable","line":[57,57],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.bin_path","kind":"variable","line":[58,58],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.archive_ext","kind":"variable","line":[63,63],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.url","kind":"variable","line":[64,64],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.data","kind":"variable","line":[67,67],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"_ensure_binary.f","kind":"variable","line":[81,81],"parent":"_ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"main","kind":"function","line":[98,108],"tokens":"stderr sys subprocess exit str run result print file returncode __version__ argv bin_path Exception REPO _ensure_binary","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"main.bin_path","kind":"variable","line":[101,101],"parent":"main","visibility":"public"}
{"file":"python/codeix/__init__.py","name":"main.result","kind":"variable","line":[107,107],"parent":"main","visibility":"public"}
{"file":"python/codeix/__main__.py","name":"codeix.main","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench.py","name":"bench.index_speed","kind":"import","line":[16,16],"visibility":"private"}
{"file":"scripts/bench.py","name":"bench.search_quality","kind":"import","line":[16,16],"visibility":"private"}
{"file":"scripts/bench.py","name":"bench.search_value","kind":"import","line":[16,16],"visibility":"private"}
{"file":"scripts/bench.py","name":"bench.__main__.main","kind":"import","line":[17,17],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":"..ab","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":"..index_speed","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":"..search_quality","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":"..search_value","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":".common.CACHE_DIR","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":".common.REPOS","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":".common.Repo","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/__init__.py","name":"__all__","kind":"variable","line":[6,14],"visibility":"internal"}
{"file":"scripts/bench/__main__.py","name":"argparse","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"json","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"shutil","kind":"import","line":[5,5],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"datetime.datetime","kind":"import","line":[6,6],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"pathlib.Path","kind":"import","line":[7,7],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"..index_speed","kind":"import","line":[9,9],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"..search_quality","kind":"import","line":[9,9],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"..search_value","kind":"import","line":[9,9],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":".ab.parse_judge_winner","kind":"import","line":[10,10],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":".common.RESPONSE_CACHE_DIR","kind":"import","line":[11,11],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":".common.log","kind":"import","line":[11,11],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":".common.log_success","kind":"import","line":[11,11],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"export_results","kind":"function","line":[14,59],"tokens":"indent results write_text parse_judge_winner log_success get winner _extract_reason report now output config_name tests len Path summary log json dumps append datetime output_path isoformat","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.tests","kind":"variable","line":[20,20],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.summary","kind":"variable","line":[21,21],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.q","kind":"variable","line":[24,24],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.winner","kind":"variable","line":[25,25],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.report","kind":"variable","line":[50,55],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"export_results.output","kind":"variable","line":[57,57],"parent":"export_results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"_extract_reason","kind":"function","line":[62,85],"tokens":"structured judge isinstance result_text loads get json JSONDecodeError re dict match search group str","visibility":"internal"}
{"file":"scripts/bench/__main__.py","name":"_extract_reason.structured","kind":"variable","line":[67,67],"parent":"_extract_reason","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"_extract_reason.result_text","kind":"variable","line":[71,71],"parent":"_extract_reason","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"re","kind":"import","line":[81,81],"visibility":"private"}
{"file":"scripts/bench/__main__.py","name":"_extract_reason.match","kind":"variable","line":[82,82],"parent":"_extract_reason","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"main","kind":"function","line":[88,130],"tokens":"parser RawDescriptionHelpFormatter add_argument log formatter_class help description run search_quality shutil index_speed rmtree action question export export_results RESPONSE_CACHE_DIR choices metavar search_value ArgumentParser argparse command epilog log_success exists parse_args verbose results","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"main.parser","kind":"variable","line":[89,107],"parent":"main","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"main.args","kind":"variable","line":[113,113],"parent":"main","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"main.results","kind":"variable","line":[118,118],"parent":"main","visibility":"public"}
{"file":"scripts/bench/__main__.py","name":"main.results","kind":"variable","line":[122,122],"parent":"main","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"asyncio","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"atexit","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"json","kind":"import","line":[5,5],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"os","kind":"import","line":[6,6],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"re","kind":"import","line":[7,7],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"shutil","kind":"import","line":[8,8],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"sys","kind":"import","line":[9,9],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"dataclasses.dataclass","kind":"import","line":[10,10],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"pathlib.Path","kind":"import","line":[11,11],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"typing.Callable","kind":"import","line":[12,12],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.CYAN","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.NC","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.RunContext","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.create_run_context","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.delete_cached_response","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.get_cache_key_from_cmd","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.get_cached_response","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.log","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.log_error","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.log_success","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":".common.save_cached_response","kind":"import","line":[14,26],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"MAX_PARALLEL_QUESTIONS","kind":"constant","line":[29,29],"visibility":"public"}
{"file":"scripts/bench/ab.py","name":"build_codeix_cmd","kind":"function","line":[32,48],"tokens":"mcp_config prompt max_turns str","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"build_claude_cmd","kind":"function","line":[51,61],"tokens":"str prompt max_turns","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"build_mcp_config","kind":"function","line":[64,77],"tokens":"json dumps bin_path","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"build_prompt","kind":"function","line":[80,82],"tokens":"question project","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig","kind":"class","line":[86,102],"tokens":"name extra_judge_fields RunContext setup_run label_b title tuple list setup_a bool str Callable setup_b label_a dict Path get_commands","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.name","kind":"variable","line":[88,88],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.label_a","kind":"variable","line":[89,89],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.label_b","kind":"variable","line":[90,90],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.title","kind":"variable","line":[91,91],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.setup_run","kind":"variable","line":[94,94],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.get_commands","kind":"variable","line":[97,97],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.setup_a","kind":"variable","line":[99,99],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.setup_b","kind":"variable","line":[100,100],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"ABConfig.extra_judge_fields","kind":"variable","line":[102,102],"parent":"ABConfig","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner","kind":"function","line":[105,135],"tokens":"loads IGNORECASE result_text json upper match dict str JSONDecodeError search re judge structured isinstance group get","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner.structured","kind":"variable","line":[110,110],"parent":"parse_judge_winner","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner.result_text","kind":"variable","line":[114,114],"parent":"parse_judge_winner","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner.match","kind":"variable","line":[124,124],"parent":"parse_judge_winner","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner.match","kind":"variable","line":[128,128],"parent":"parse_judge_winner","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"parse_judge_winner.match","kind":"variable","line":[132,132],"parent":"parse_judge_winner","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_subprocess","kind":"function","line":[138,172],"tokens":"copy stdout CancelledError os create_subprocess_exec loads decode Exception json proc stdin str get JSONDecodeError bin_dir stderr stdout_str communicate stderr_str DEVNULL cmd asyncio cwd start_new_session env environ subprocess PIPE terminate","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"subprocess","kind":"import","line":[143,143],"visibility":"private"}
{"file":"scripts/bench/ab.py","name":"run_subprocess.env","kind":"variable","line":[146,146],"parent":"run_subprocess","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_subprocess.proc","kind":"variable","line":[151,159],"parent":"run_subprocess","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_subprocess.stdout_str","kind":"variable","line":[161,161],"parent":"run_subprocess","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_subprocess.stderr_str","kind":"variable","line":[162,162],"parent":"run_subprocess","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question","kind":"function","line":[175,368],"tokens":"get_cache_key_from_cmd run_subprocess delete_cached_response judge_schema result_text idx dict gather cache_key_b cost_b result get_commands log cwd_a response save_cached_response label_b judge_cmd response_b response_a isinstance lower cmd_b append log_error response_b_text setup_a tasks label_a cached_a startswith result_file get resp indent cached_judge_flag judge_cache_key setup_b extra_judge_fields structured error_a results cached_b cmd_a error_b json config cost_a ctx results_dir judge_response error_text write_text judge_prompt cache_key_a cwd_b cost_info has_winner get_cached_response asyncio create_task has_error subtype str cached_judge response_a_text bin_dir dumps","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cache_key_a","kind":"variable","line":[192,192],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cache_key_b","kind":"variable","line":[193,193],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_a","kind":"variable","line":[195,195],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_b","kind":"variable","line":[196,196],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_a","kind":"variable","line":[201,201],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_b","kind":"variable","line":[202,202],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.tasks","kind":"variable","line":[213,213],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.results","kind":"variable","line":[220,220],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.idx","kind":"variable","line":[221,221],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_a","kind":"variable","line":[223,223],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_a","kind":"variable","line":[226,226],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_b","kind":"variable","line":[228,228],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_b","kind":"variable","line":[230,230],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_a","kind":"variable","line":[232,232],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_b","kind":"variable","line":[233,233],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.has_error","kind":"method","line":[242,254],"parent":"run_question","tokens":"resp result subtype startswith str lower isinstance get","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.has_error.subtype","kind":"variable","line":[244,244],"parent":"run_question.has_error","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.has_error.result","kind":"variable","line":[248,248],"parent":"run_question.has_error","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.error_a","kind":"variable","line":[257,257],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.error_b","kind":"variable","line":[258,258],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.result","kind":"variable","line":[266,278],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.result_file","kind":"variable","line":[279,279],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_a_text","kind":"variable","line":[286,286],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response_b_text","kind":"variable","line":[287,287],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cost_a","kind":"variable","line":[290,290],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cost_b","kind":"variable","line":[291,291],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cost_info","kind":"variable","line":[292,292],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cost_info","kind":"variable","line":[294,294],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_prompt","kind":"variable","line":[296,309],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_schema","kind":"variable","line":[312,312],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_cmd","kind":"variable","line":[313,319],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_cache_key","kind":"variable","line":[320,320],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_judge","kind":"variable","line":[321,321],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.response","kind":"variable","line":[325,325],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.structured","kind":"variable","line":[326,326],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.result_text","kind":"variable","line":[327,327],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.has_winner","kind":"variable","line":[329,329],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_judge","kind":"variable","line":[332,332],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_response","kind":"variable","line":[335,335],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_judge_flag","kind":"variable","line":[336,336],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.judge_response","kind":"variable","line":[339,339],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.structured","kind":"variable","line":[341,341],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.error_text","kind":"variable","line":[346,346],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.cached_judge_flag","kind":"variable","line":[348,348],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.result","kind":"variable","line":[350,362],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_question.result_file","kind":"variable","line":[364,364],"parent":"run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async","kind":"function","line":[371,494],"tokens":"bin_a join len rmtree cost_b cache_hits_a append create_task parse_judge_winner results cancel exists NC run_with_sem json loads cost_a_str a_wins ignore_errors title dict tasks get question_id read_text Path __file__ label_a create_run_context MAX_PARALLEL_QUESTIONS total_cost_a cache_hits_judge error_parts exit asyncio run_dir log task config overall b_wins Semaphore run_question sem errors questions cost_b_str parent cleanup label_b wins ctx setup_run wins_summary sum name register winner total_cost_b error_info log_error sys shutil atexit CancelledError cost_a bin_b gather CYAN print questions_file cache_hits_b","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.questions_file","kind":"variable","line":[376,376],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.questions","kind":"variable","line":[382,382],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.questions","kind":"variable","line":[384,384],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.ctx","kind":"variable","line":[390,390],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cleanup","kind":"method","line":[392,393],"parent":"run_async","tokens":"shutil run_dir rmtree ctx ignore_errors","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.sem","kind":"variable","line":[407,407],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.run_with_sem","kind":"method","line":[409,411],"parent":"run_async","tokens":"config sem ctx run_question","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.tasks","kind":"variable","line":[414,414],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.results","kind":"variable","line":[417,417],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.results","kind":"variable","line":[418,418],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.wins","kind":"variable","line":[440,440],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.total_cost_a","kind":"variable","line":[441,441],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.total_cost_b","kind":"variable","line":[442,442],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.errors","kind":"variable","line":[443,443],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.winner","kind":"variable","line":[445,445],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cost_a","kind":"variable","line":[453,453],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cost_b","kind":"variable","line":[454,454],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.error_info","kind":"variable","line":[457,457],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.error_parts","kind":"variable","line":[460,460],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.error_info","kind":"variable","line":[465,465],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.a_wins","kind":"variable","line":[471,471],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.b_wins","kind":"variable","line":[472,472],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.wins_summary","kind":"variable","line":[473,473],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cost_a_str","kind":"variable","line":[474,474],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cost_b_str","kind":"variable","line":[475,475],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.overall","kind":"variable","line":[480,480],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.overall","kind":"variable","line":[482,482],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.overall","kind":"variable","line":[484,484],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cache_hits_a","kind":"variable","line":[488,488],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cache_hits_b","kind":"variable","line":[489,489],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run_async.cache_hits_judge","kind":"variable","line":[490,490],"parent":"run_async","visibility":"public"}
{"file":"scripts/bench/ab.py","name":"run","kind":"function","line":[497,506],"tokens":"run_async question_id config KeyboardInterrupt print asyncio exit run sys","visibility":"public"}
{"file":"scripts/bench/common.py","name":"hashlib","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"json","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"os","kind":"import","line":[5,5],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"shutil","kind":"import","line":[6,6],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"subprocess","kind":"import","line":[7,7],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"tempfile","kind":"import","line":[8,8],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"dataclasses.dataclass","kind":"import","line":[9,9],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"pathlib.Path","kind":"import","line":[10,10],"visibility":"private"}
{"file":"scripts/bench/common.py","name":"PROJECT_ROOT","kind":"constant","line":[13,13],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"CACHE_DIR","kind":"constant","line":[17,17],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"RESPONSE_CACHE_DIR","kind":"constant","line":[18,18],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext","kind":"class","line":[22,29],"tokens":"repos Path repos_a run_dir results_dir bin_dir repos_b","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.run_dir","kind":"variable","line":[24,24],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.bin_dir","kind":"variable","line":[25,25],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.repos","kind":"variable","line":[26,26],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.repos_a","kind":"variable","line":[27,27],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.repos_b","kind":"variable","line":[28,28],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"RunContext.results_dir","kind":"variable","line":[29,29],"parent":"RunContext","visibility":"public"}
{"file":"scripts/bench/common.py","name":"create_run_context","kind":"function","line":[32,48],"tokens":"repos bin_dir repos_b ctx Path prefix mkdir results_dir RunContext repos_a mkdtemp run_dir tempfile parents","visibility":"public"}
{"file":"scripts/bench/common.py","name":"create_run_context.run_dir","kind":"variable","line":[34,34],"parent":"create_run_context","visibility":"public"}
{"file":"scripts/bench/common.py","name":"create_run_context.ctx","kind":"variable","line":[35,42],"parent":"create_run_context","visibility":"public"}
{"file":"scripts/bench/common.py","name":"Repo","kind":"class","line":[52,57],"tokens":"str size notes url name lang","visibility":"public"}
{"file":"scripts/bench/common.py","name":"Repo.url","kind":"variable","line":[54,54],"parent":"Repo","visibility":"public"}
{"file":"scripts/bench/common.py","name":"Repo.lang","kind":"variable","line":[55,55],"parent":"Repo","visibility":"public"}
{"file":"scripts/bench/common.py","name":"Repo.size","kind":"variable","line":[56,56],"parent":"Repo","visibility":"public"}
{"file":"scripts/bench/common.py","name":"Repo.notes","kind":"variable","line":[57,57],"parent":"Repo","visibility":"public"}
{"file":"scripts/bench/common.py","name":"REPOS","kind":"constant","line":[60,74],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"CYAN","kind":"constant","line":[77,77],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"GREEN","kind":"constant","line":[78,78],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"YELLOW","kind":"constant","line":[79,79],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"RED","kind":"constant","line":[80,80],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"BLUE","kind":"constant","line":[81,81],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"NC","kind":"constant","line":[82,82],"visibility":"public"}
{"file":"scripts/bench/common.py","name":"log","kind":"function","line":[85,86],"tokens":"BLUE NC msg print","visibility":"public"}
{"file":"scripts/bench/common.py","name":"log_success","kind":"function","line":[89,90],"tokens":"print GREEN NC msg","visibility":"public"}
{"file":"scripts/bench/common.py","name":"log_error","kind":"function","line":[93,94],"tokens":"print RED msg NC","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_local_codeix","kind":"function","line":[97,102],"tokens":"PROJECT_ROOT exists str local_build","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_local_codeix.local_build","kind":"variable","line":[99,99],"parent":"get_local_codeix","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_codeix_bin","kind":"function","line":[105,110],"tokens":"get os environ from_env get_local_codeix","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_codeix_bin.from_env","kind":"variable","line":[107,107],"parent":"get_codeix_bin","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_short_path","kind":"function","line":[113,127],"tokens":"name ValueError str Path relative_to cwd path PROJECT_ROOT","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_short_path.p","kind":"variable","line":[115,115],"parent":"get_short_path","visibility":"public"}
{"file":"scripts/bench/common.py","name":"build_index","kind":"function","line":[130,150],"tokens":"index_file exists name log_error stderr log str run returncode repo_path codeix_bin capture_output subprocess result text cmd","visibility":"public"}
{"file":"scripts/bench/common.py","name":"build_index.index_file","kind":"variable","line":[135,135],"parent":"build_index","visibility":"public"}
{"file":"scripts/bench/common.py","name":"build_index.cmd","kind":"variable","line":[141,141],"parent":"build_index","visibility":"public"}
{"file":"scripts/bench/common.py","name":"build_index.cmd","kind":"variable","line":[143,143],"parent":"build_index","visibility":"public"}
{"file":"scripts/bench/common.py","name":"build_index.result","kind":"variable","line":[146,146],"parent":"build_index","visibility":"public"}
{"file":"scripts/bench/common.py","name":"clone_repo_to","kind":"function","line":[153,184],"tokens":"cwd result run str returncode parents subprocess log_error branch name repo extend parent capture_output gitmodules mkdir exist_ok log dest url exists cmd","visibility":"public"}
{"file":"scripts/bench/common.py","name":"clone_repo_to.cmd","kind":"variable","line":[162,162],"parent":"clone_repo_to","visibility":"public"}
{"file":"scripts/bench/common.py","name":"clone_repo_to.result","kind":"variable","line":[167,167],"parent":"clone_repo_to","visibility":"public"}
{"file":"scripts/bench/common.py","name":"clone_repo_to.gitmodules","kind":"variable","line":[175,175],"parent":"clone_repo_to","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_repo_by_name","kind":"function","line":[187,192],"tokens":"name repo REPOS","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_files","kind":"function","line":[195,202],"tokens":"parts ex exclude path rglob count is_file any","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_files.exclude","kind":"variable","line":[197,197],"parent":"count_files","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_files.count","kind":"variable","line":[198,198],"parent":"count_files","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_lines","kind":"function","line":[205,216],"tokens":"is_file extensions path parts read_text Exception splitlines ex any exclude total len suffix errors rglob","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_lines.extensions","kind":"variable","line":[207,207],"parent":"count_lines","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_lines.exclude","kind":"variable","line":[208,208],"parent":"count_lines","visibility":"public"}
{"file":"scripts/bench/common.py","name":"count_lines.total","kind":"variable","line":[209,209],"parent":"count_lines","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_binary_version","kind":"function","line":[223,227],"tokens":"hashlib is_file hexdigest bin_path sha256 read_bytes exists","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_npm_codeix_version","kind":"function","line":[230,243],"tokens":"capture_output returncode result strip text Exception timeout run stdout subprocess","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_npm_codeix_version.result","kind":"variable","line":[233,238],"parent":"get_npm_codeix_version","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_claude_version","kind":"function","line":[246,259],"tokens":"subprocess result run returncode capture_output stdout text Exception timeout strip","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_claude_version.result","kind":"variable","line":[249,254],"parent":"get_claude_version","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_cache_key_from_cmd","kind":"function","line":[262,271],"tokens":"hashlib cmd_str cmd encode hexdigest join sha256","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_cache_key_from_cmd.cmd_str","kind":"variable","line":[270,270],"parent":"get_cache_key_from_cmd","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_cached_response","kind":"function","line":[274,291],"tokens":"cache_file cache_key OSError read_text RESPONSE_CACHE_DIR unlink JSONDecodeError json loads data exists","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_cached_response.cache_file","kind":"variable","line":[280,280],"parent":"get_cached_response","visibility":"public"}
{"file":"scripts/bench/common.py","name":"get_cached_response.data","kind":"variable","line":[283,283],"parent":"get_cached_response","visibility":"public"}
{"file":"scripts/bench/common.py","name":"delete_cached_response","kind":"function","line":[294,298],"tokens":"unlink cache_file RESPONSE_CACHE_DIR cache_key exists","visibility":"public"}
{"file":"scripts/bench/common.py","name":"delete_cached_response.cache_file","kind":"variable","line":[296,296],"parent":"delete_cached_response","visibility":"public"}
{"file":"scripts/bench/common.py","name":"save_cached_response","kind":"function","line":[301,308],"tokens":"json mkdir response data parents cache_file dumps cache_key exist_ok metadata RESPONSE_CACHE_DIR write_text indent","visibility":"public"}
{"file":"scripts/bench/common.py","name":"save_cached_response.cache_file","kind":"variable","line":[304,304],"parent":"save_cached_response","visibility":"public"}
{"file":"scripts/bench/common.py","name":"save_cached_response.data","kind":"variable","line":[305,305],"parent":"save_cached_response","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"atexit","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":"shutil","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":"subprocess","kind":"import","line":[5,5],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":"sys","kind":"import","line":[6,6],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":"time","kind":"import","line":[7,7],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.CYAN","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.NC","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.REPOS","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.RunContext","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.clone_repo_to","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.count_files","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.count_lines","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.create_run_context","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.get_codeix_bin","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.get_repo_by_name","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.log","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.log_error","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":".common.log_success","kind":"import","line":[9,23],"visibility":"private"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo","kind":"function","line":[26,64],"tokens":"ctx codeix_bin shutil path time rmtree name returncode str log_error exists files_per_sec size perf_counter repo repos count_lines lang result lines int count_files subprocess duration start verbose notes index_dir capture_output run files","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.path","kind":"variable","line":[28,28],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.files","kind":"variable","line":[33,33],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.lines","kind":"variable","line":[34,34],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.index_dir","kind":"variable","line":[37,37],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.start","kind":"variable","line":[42,42],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.result","kind":"variable","line":[43,46],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.duration","kind":"variable","line":[47,47],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"benchmark_repo.files_per_sec","kind":"variable","line":[53,53],"parent":"benchmark_repo","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run","kind":"function","line":[67,135],"tokens":"name atexit copy2 perf_counter codeix_bin cleanup shutil bin_dir verbose repos create_run_context results REPOS NC clone_duration repo result notes get_codeix_bin bin_path register rmtree ignore_errors exit CYAN clone_repo_to size print sys log_success time lang start log_error ctx run_dir log append str benchmark_repo chmod","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.codeix_bin","kind":"variable","line":[76,76],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.ctx","kind":"variable","line":[83,83],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.cleanup","kind":"method","line":[86,87],"parent":"run","tokens":"rmtree ignore_errors shutil ctx run_dir","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.bin_path","kind":"variable","line":[91,91],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.codeix_bin","kind":"variable","line":[94,94],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.start","kind":"variable","line":[101,101],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.clone_duration","kind":"variable","line":[104,104],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.results","kind":"variable","line":[117,117],"parent":"run","visibility":"public"}
{"file":"scripts/bench/index_speed.py","name":"run.result","kind":"variable","line":[119,119],"parent":"run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"shutil","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":"pathlib.Path","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".ab.ABConfig","kind":"import","line":[6,12],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".ab.build_codeix_cmd","kind":"import","line":[6,12],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".ab.build_mcp_config","kind":"import","line":[6,12],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".ab.build_prompt","kind":"import","line":[6,12],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".ab.run","kind":"import","line":[6,12],"alias":"run_ab","visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.RunContext","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.clone_repo_to","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.build_index","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.get_binary_version","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.get_codeix_bin","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.get_npm_codeix_version","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":".common.get_repo_by_name","kind":"import","line":[13,21],"visibility":"private"}
{"file":"scripts/bench/search_quality.py","name":"run","kind":"function","line":[24,112],"tokens":"cmd_b label_a title run_ab question_id write_text repo list get_repo_by_name tuple build_prompt bin_dir RuntimeError version_b bool build_index cwd_a build_codeix_cmd config setup_b setup_a version_a label_b dest get_binary_version ctx get_npm_codeix_version name chmod ABConfig shutil setup_run RunContext copy2 get_codeix_bin dev_src repos_a repos_b get_commands bin_name_a bin_name_b str next cwd_b dict prompt build_mcp_config Path bin_b clone_repo_to bin_a glob cmd_a","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run","kind":"method","line":[27,49],"parent":"run","tokens":"get_codeix_bin bin_dir shutil get_npm_codeix_version bin_b chmod ctx dev_src get_binary_version str Path version_b version_a bin_a copy2 RuntimeError write_text","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run.dev_src","kind":"variable","line":[35,35],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run.version_a","kind":"variable","line":[38,38],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run.bin_a","kind":"variable","line":[39,39],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run.version_b","kind":"variable","line":[44,44],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_run.bin_b","kind":"variable","line":[45,45],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_a","kind":"method","line":[51,61],"parent":"run","tokens":"dest get_repo_by_name repo ctx clone_repo_to str bin_dir next glob bin_a build_index repos_a","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_a.repo","kind":"variable","line":[53,53],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_a.dest","kind":"variable","line":[56,56],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_a.bin_a","kind":"variable","line":[60,60],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_b","kind":"method","line":[63,74],"parent":"run","tokens":"bin_b ctx dest bin_dir repo get_repo_by_name build_index repos_b clone_repo_to version_b str get_npm_codeix_version","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_b.repo","kind":"variable","line":[65,65],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_b.dest","kind":"variable","line":[68,68],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_b.version_b","kind":"variable","line":[72,72],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.setup_b.bin_b","kind":"variable","line":[73,73],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands","kind":"method","line":[76,100],"parent":"run","tokens":"bin_name_b build_mcp_config version_a cmd_b get_binary_version prompt build_codeix_cmd ctx version_b repos_a Path get_npm_codeix_version get_codeix_bin build_prompt cwd_a dev_src bin_name_a cwd_b cmd_a repos_b","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.dev_src","kind":"variable","line":[84,84],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.version_a","kind":"variable","line":[85,85],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.version_b","kind":"variable","line":[86,86],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.bin_name_a","kind":"variable","line":[89,89],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.bin_name_b","kind":"variable","line":[90,90],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.cwd_a","kind":"variable","line":[92,92],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.cwd_b","kind":"variable","line":[93,93],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.prompt","kind":"variable","line":[95,95],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.cmd_a","kind":"variable","line":[97,97],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.get_commands.cmd_b","kind":"variable","line":[98,98],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_quality.py","name":"run.config","kind":"variable","line":[102,111],"parent":"run","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"shutil","kind":"import","line":[3,3],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":"pathlib.Path","kind":"import","line":[4,4],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.ABConfig","kind":"import","line":[6,13],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.build_claude_cmd","kind":"import","line":[6,13],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.build_codeix_cmd","kind":"import","line":[6,13],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.build_mcp_config","kind":"import","line":[6,13],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.build_prompt","kind":"import","line":[6,13],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".ab.run","kind":"import","line":[6,13],"alias":"run_ab","visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.RunContext","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.clone_repo_to","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.build_index","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.get_binary_version","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.get_codeix_bin","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.get_claude_version","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":".common.get_repo_by_name","kind":"import","line":[14,22],"visibility":"private"}
{"file":"scripts/bench/search_value.py","name":"run","kind":"function","line":[25,108],"tokens":"version_a bin_a shutil get_commands prompt_b build_mcp_config ctx build_prompt chmod dict copy2 dev_src bin_name_a get_claude_version get_binary_version cmd_b prompt name repos_b build_codeix_cmd build_index build_claude_cmd cwd_a RunContext clone_repo_to bin_b get_repo_by_name label_a run_ab setup_run ABConfig str cmd_a tuple dest cwd_b get_codeix_bin repos_a question_id bin_dir list title repo version_b bool extra_judge_fields RuntimeError setup_b Path setup_a config label_b","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_run","kind":"method","line":[28,47],"parent":"run","tokens":"bin_a version_a get_binary_version ctx shutil bin_b get_codeix_bin RuntimeError bin_dir copy2 Path str chmod dev_src","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_run.dev_src","kind":"variable","line":[36,36],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_run.version_a","kind":"variable","line":[39,39],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_run.bin_a","kind":"variable","line":[40,40],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_run.bin_b","kind":"variable","line":[45,45],"parent":"run.setup_run","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a","kind":"method","line":[49,61],"parent":"run","tokens":"ctx bin_a version_a dest bin_dir str Path dev_src clone_repo_to get_codeix_bin get_binary_version repos_a build_index repo get_repo_by_name","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a.repo","kind":"variable","line":[51,51],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a.dest","kind":"variable","line":[54,54],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a.dev_src","kind":"variable","line":[58,58],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a.version_a","kind":"variable","line":[59,59],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_a.bin_a","kind":"variable","line":[60,60],"parent":"run.setup_a","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_b","kind":"method","line":[63,69],"parent":"run","tokens":"get_repo_by_name clone_repo_to repos_b dest repo ctx","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_b.repo","kind":"variable","line":[65,65],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.setup_b.dest","kind":"variable","line":[68,68],"parent":"run.setup_b","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands","kind":"method","line":[71,95],"parent":"run","tokens":"get_codeix_bin prompt get_claude_version get_binary_version build_prompt cmd_a repos_a prompt_b dev_src version_a build_codeix_cmd build_mcp_config build_claude_cmd cwd_a cmd_b Path version_b bin_name_a ctx repos_b cwd_b","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.dev_src","kind":"variable","line":[78,78],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.version_a","kind":"variable","line":[79,79],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.version_b","kind":"variable","line":[80,80],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.bin_name_a","kind":"variable","line":[83,83],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.cwd_a","kind":"variable","line":[85,85],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.cwd_b","kind":"variable","line":[86,86],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.prompt","kind":"variable","line":[88,88],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.cmd_a","kind":"variable","line":[90,90],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.prompt_b","kind":"variable","line":[92,92],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.get_commands.cmd_b","kind":"variable","line":[93,93],"parent":"run.get_commands","visibility":"public"}
{"file":"scripts/bench/search_value.py","name":"run.config","kind":"variable","line":[97,107],"parent":"run","visibility":"public"}
{"file":"site/templates/index.html","name":"observer","kind":"variable","line":[1249,1256],"tokens":"observer entries entry IntersectionObserver","visibility":"private"}
{"file":"site/templates/index.html","name":"header","kind":"variable","line":[1263,1263],"visibility":"private"}
{"file":"site/templates/index.html","name":"hero","kind":"variable","line":[1264,1264],"visibility":"private"}
{"file":"site/templates/index.html","name":"heroObserver","kind":"variable","line":[1265,1273],"tokens":"entries entry IntersectionObserver header","visibility":"private"}
{"file":"site/templates/spec.html","name":"links","kind":"variable","line":[471,471],"visibility":"private"}
{"file":"site/templates/spec.html","name":"sections","kind":"variable","line":[472,472],"visibility":"private"}
{"file":"site/templates/spec.html","name":"id","kind":"variable","line":[474,474],"tokens":"link","visibility":"private"}
{"file":"site/templates/spec.html","name":"el","kind":"variable","line":[475,475],"tokens":"id","visibility":"private"}
{"file":"site/templates/spec.html","name":"observer","kind":"variable","line":[481,489],"tokens":"IntersectionObserver entry match links sections entries","visibility":"private"}
{"file":"site/templates/spec.html","name":"match","kind":"variable","line":[485,485],"tokens":"sections entry","visibility":"private"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification","kind":"section","line":[6,6]}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Overview","kind":"section","line":[10,10],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Directory layout","kind":"section","line":[16,16],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/File format conventions","kind":"section","line":[30,30],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`index.json` — manifest","kind":"section","line":[38,38],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`files.jsonl` — file registry","kind":"section","line":[60,60],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`files.jsonl` — file registry/Language identifiers","kind":"section","line":[81,81],"parent":"`.codeindex` Format Specification/`files.jsonl` — file registry"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index","kind":"section","line":[91,91],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index/Symbol kinds","kind":"section","line":[118,118],"parent":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index/Nesting","kind":"section","line":[141,141],"parent":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index/Visibility","kind":"section","line":[154,154],"parent":"`.codeindex` Format Specification/`symbols.jsonl` — symbol index"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`texts.jsonl` — text content index","kind":"section","line":[174,174],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/`texts.jsonl` — text content index/Filtering","kind":"section","line":[196,196],"parent":"`.codeindex` Format Specification/`texts.jsonl` — text content index"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Hashing","kind":"section","line":[206,206],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Sorting and determinism","kind":"section","line":[214,214],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Line numbers","kind":"section","line":[228,228],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Path conventions","kind":"section","line":[232,232],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Versioning","kind":"section","line":[241,241],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Distribution","kind":"section","line":[250,250],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Distribution/Git repository (primary)","kind":"section","line":[254,254],"parent":"`.codeindex` Format Specification/Distribution"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Distribution/Published packages","kind":"section","line":[268,268],"parent":"`.codeindex` Format Specification/Distribution"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Distribution/HTTP discovery (future)","kind":"section","line":[280,280],"parent":"`.codeindex` Format Specification/Distribution"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Scope and visibility","kind":"section","line":[298,298],"parent":"`.codeindex` Format Specification"}
{"file":"spec/codeindex.md","name":"`.codeindex` Format Specification/Scope and visibility/Remote APIs (future)","kind":"section","line":[310,310],"parent":"`.codeindex` Format Specification/Scope and visibility"}
{"file":"src/cli/build.rs","name":"std::path::Path","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/cli/build.rs","name":"std::sync::mpsc::Sender","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/cli/build.rs","name":"std::sync::{Arc, Mutex}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/cli/build.rs","name":"anyhow::{Context, Result}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/cli/build.rs","name":"tracing::info","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/cli/build.rs","name":"crate::mount::{MountTable, MountedEvent}","kind":"import","line":[8,8],"visibility":"private"}
{"file":"src/cli/build.rs","name":"crate::server::db::SearchDb","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/cli/build.rs","name":"crate::watcher::handler::{flush_mount_to_disk, on_project_discovery}","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/cli/build.rs","name":"BuildResult","kind":"type_alias","line":[13,13],"visibility":"public"}
{"file":"src/cli/build.rs","name":"build_index_to_db","kind":"function","line":[30,55],"tokens":"format new_no_fts Arc SearchDb path mount_table on_project_discovery info load_from_cache db root Mutex display MountTable enable_fts","visibility":"public"}
{"file":"src/cli/build.rs","name":"build_index","kind":"function","line":[62,115],"tokens":"mount display build_index_to_db total_symbols format total_files flush_mount_to_disk root project_str db_guard total_texts files symbols texts _refs mount_table db name mt anyhow path info len","visibility":"public"}
{"file":"src/cli/build.rs","name":"run","kind":"function","line":[119,121],"tokens":"build_index path","visibility":"public"}
{"file":"src/cli/mod.rs","name":"build","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/cli/mod.rs","name":"serve","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/cli/serve.rs","name":"std::path::Path","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"std::sync::Arc","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"std::sync::mpsc","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"anyhow::{Context, Result}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"crate::cli::build::build_index_to_db","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"crate::mount::MountedEvent","kind":"import","line":[8,8],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"crate::server::mcp::start_server","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"crate::watcher::handler::{flush_mount_to_disk, run_event_loop}","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/cli/serve.rs","name":"run","kind":"function","line":[14,70],"tokens":"channel mt thread build_index_to_db run_event_loop runtime error flush_mount_to_disk rt mount_table Arc db_clone mount mpsc anyhow path display info start_server watch tokio _root clone Runtime db format mount_table_clone tracing mount_root spawn","visibility":"public"}
{"file":"src/index/format.rs","name":"serde::{Deserialize, Serialize}","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/index/format.rs","name":"IndexManifest","kind":"struct","line":[5,10],"visibility":"public"}
{"file":"src/index/format.rs","name":"FileEntry","kind":"struct","line":[14,27],"visibility":"public"}
{"file":"src/index/format.rs","name":"SymbolEntry","kind":"struct","line":[31,46],"visibility":"public"}
{"file":"src/index/format.rs","name":"TextEntry","kind":"struct","line":[50,59],"visibility":"public"}
{"file":"src/index/format.rs","name":"ReferenceEntry","kind":"struct","line":[63,78],"visibility":"public"}
{"file":"src/index/mod.rs","name":"format","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/index/mod.rs","name":"reader","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/index/mod.rs","name":"writer","kind":"module","line":[3,3],"visibility":"public"}
{"file":"src/index/reader.rs","name":"std::fs","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/index/reader.rs","name":"std::io::{BufRead, BufReader}","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/index/reader.rs","name":"std::path::Path","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/index/reader.rs","name":"anyhow::{Context, Result}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/index/reader.rs","name":"super::format::{FileEntry, IndexManifest, ReferenceEntry, SymbolEntry, TextEntry}","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/index/reader.rs","name":"IndexData","kind":"type_alias","line":[10,16],"visibility":"public"}
{"file":"src/index/reader.rs","name":"read_index","kind":"function","line":[20,38],"tokens":"path read_to_string Vec read_jsonl data symbols fs manifest files texts references serde_json from_str","visibility":"public"}
{"file":"src/index/reader.rs","name":"read_jsonl","kind":"function","line":[41,57],"tokens":"BufReader display Vec line item File path fs reader open items from_str format serde_json file","visibility":"private"}
{"file":"src/index/writer.rs","name":"std::fs","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/index/writer.rs","name":"std::io::{BufWriter, Write}","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/index/writer.rs","name":"std::path::Path","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/index/writer.rs","name":"anyhow::Result","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/index/writer.rs","name":"super::format::{FileEntry, IndexManifest, ReferenceEntry, SymbolEntry, TextEntry}","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/index/writer.rs","name":"write_index","kind":"function","line":[14,37],"tokens":"symbols serde_json index_path texts fs write create_dir_all references write_jsonl files output_dir to_string_pretty manifest json","visibility":"public"}
{"file":"src/index/writer.rs","name":"write_jsonl","kind":"function","line":[40,51],"tokens":"fs path file BufWriter items writer item serde_json create to_writer File","visibility":"private"}
{"file":"src/lib.rs","name":"cli","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/lib.rs","name":"index","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/lib.rs","name":"mount","kind":"module","line":[3,3],"visibility":"public"}
{"file":"src/lib.rs","name":"parser","kind":"module","line":[4,4],"visibility":"public"}
{"file":"src/lib.rs","name":"server","kind":"module","line":[5,5],"visibility":"public"}
{"file":"src/lib.rs","name":"utils","kind":"module","line":[6,6],"visibility":"public"}
{"file":"src/lib.rs","name":"watcher","kind":"module","line":[7,7],"visibility":"public"}
{"file":"src/lib.rs","name":"gitignore_tests","kind":"module","line":[10,36],"visibility":"private"}
{"file":"src/lib.rs","name":"ignore::gitignore::GitignoreBuilder","kind":"import","line":[11,11],"visibility":"private"}
{"file":"src/lib.rs","name":"std::path::Path","kind":"import","line":[12,12],"visibility":"private"}
{"file":"src/lib.rs","name":"test_target_ignored","kind":"function","line":[15,35],"tokens":"println is_ignore rel_path gi m2 Path m1 builder GitignoreBuilder root","visibility":"private"}
{"file":"src/main.rs","name":"std::io::IsTerminal","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/main.rs","name":"std::path::Path","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/main.rs","name":"anyhow::Result","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/main.rs","name":"clap::{Parser, Subcommand}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/main.rs","name":"Cli","kind":"struct","line":[12,15],"visibility":"private"}
{"file":"src/main.rs","name":"Commands","kind":"enum","line":[18,34],"visibility":"private"}
{"file":"src/main.rs","name":"main","kind":"function","line":[36,67],"tokens":"fmt run build stdin parse path from_default_env tracing_subscriber cli unreachable parse_from Commands codeix Cli no_watch command serve Path EnvFilter","visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::collections::{HashMap, HashSet}","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::fs::File","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::path::{Path, PathBuf}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::sync::mpsc::Sender","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"anyhow::{Context, Result}","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"fs2::FileExt","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"ignore::gitignore::{Gitignore, GitignoreBuilder}","kind":"import","line":[8,8],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"notify::event::{CreateKind, EventKind, RemoveKind}","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"notify::{Config, Event, RecommendedWatcher, RecursiveMode, Watcher}","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"walkdir::WalkDir","kind":"import","line":[11,11],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"BUILTIN_GITIGNORE","kind":"constant","line":[15,28],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"MountMode","kind":"enum","line":[32,37],"visibility":"public"}
{"file":"src/mount/mod.rs","name":"is_removal_event","kind":"function","line":[41,46],"tokens":"RemoveKind EventKind kind File Remove matches Folder","visibility":"public"}
{"file":"src/mount/mod.rs","name":"FsEvent","kind":"enum","line":[51,71],"visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountedEvent","kind":"type_alias","line":[74,74],"visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount","kind":"struct","line":[77,95],"visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount","kind":"trait_impl","line":[97,106],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.fmt","kind":"method","line":[98,105],"parent":"Mount","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount","kind":"impl","line":[108,492],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.new_ro","kind":"method","line":[110,123],"parent":"Mount","tokens":"root Vec MountMode mount ReadOnly HashSet","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.new_rw","kind":"method","line":[127,163],"parent":"Mount","tokens":"codeindex_dir mount format File ReadWrite lock_path create_dir_all MountMode root fs lock_file options Vec HashSet","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.init_gitignore","kind":"method","line":[166,182],"parent":"Mount","tokens":"root_gitignore exclude_path","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.build_gitignore","kind":"method","line":[185,205],"parent":"Mount","tokens":"file root pattern GitignoreBuilder BUILTIN_GITIGNORE format builder","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.on_fs_event","kind":"method","line":[218,233],"parent":"Mount","tokens":"kind RemoveKind File abs_path Modify EventKind Remove Folder Create CreateKind","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.on_dir_added","kind":"method","line":[235,271],"parent":"Mount","tokens":"dir_gitignore FsEvent root name abs_path","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.on_dir_removed","kind":"method","line":[273,276],"parent":"Mount","tokens":"abs_path","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.on_file_added","kind":"method","line":[278,309],"parent":"Mount","tokens":"abs_path FsEvent rel_path name","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.on_file_removed","kind":"method","line":[311,331],"parent":"Mount","tokens":"FsEvent name abs_path rel_path","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.add_gitignore","kind":"method","line":[334,341],"parent":"Mount","tokens":"gitignore_path","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.remove_watch","kind":"method","line":[344,350],"parent":"Mount","tokens":"path watcher","visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.walk","kind":"method","line":[358,416],"parent":"Mount","tokens":"CreateKind parent entry Create abs_path Folder display File tracing WalkDir path debug event EventKind root on_event kind","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.init_notify","kind":"method","line":[425,445],"parent":"Mount","tokens":"RecommendedWatcher res ReadOnly Config config MountMode mount_root watcher","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.watch_dir","kind":"method","line":[448,458],"parent":"Mount","tokens":"RecursiveMode watcher format display path NonRecursive","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.watched_count","kind":"method","line":[462,464],"parent":"Mount","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.is_ignored","kind":"method","line":[469,476],"parent":"Mount","tokens":"path gi is_dir","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.gitignore","kind":"method","line":[479,481],"parent":"Mount","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.mark_dirty","kind":"method","line":[484,486],"parent":"Mount","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount.clear_dirty","kind":"method","line":[489,491],"parent":"Mount","visibility":"public"}
{"file":"src/mount/mod.rs","name":"Mount","kind":"trait_impl","line":[494,501],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"Mount.drop","kind":"method","line":[495,500],"parent":"Mount","tokens":"lock","visibility":"private"}
{"file":"src/mount/mod.rs","name":"MountTable","kind":"struct","line":[505,509],"visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable","kind":"impl","line":[511,708],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"MountTable.new","kind":"method","line":[513,518],"parent":"MountTable","tokens":"HashMap workspace_root","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.workspace_root","kind":"method","line":[521,523],"parent":"MountTable","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.relative_project","kind":"method","line":[527,532],"parent":"MountTable","tokens":"project_root","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.project_root","kind":"method","line":[536,549],"parent":"MountTable","tokens":"abs_path relative_path canonical","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.is_mounted","kind":"method","line":[552,554],"parent":"MountTable","tokens":"path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.mount","kind":"method","line":[559,589],"parent":"MountTable","tokens":"mount tracing anyhow new_ro as_ref format Mount info new_rw display root bail","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.mount_rw","kind":"method","line":[592,605],"parent":"MountTable","tokens":"bail root format as_ref anyhow mount Mount new_rw","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.mount_ro","kind":"method","line":[608,621],"parent":"MountTable","tokens":"format root bail mount Mount as_ref anyhow new_ro","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.find_mount","kind":"method","line":[625,628],"parent":"MountTable","tokens":"path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.find_mount_canonical","kind":"method","line":[633,639],"parent":"MountTable","tokens":"root path mount","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.find_mount_mut","kind":"method","line":[643,649],"parent":"MountTable","tokens":"path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.find_mount_mut_canonical","kind":"method","line":[654,664],"parent":"MountTable","tokens":"key root path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.unmount","kind":"method","line":[667,677],"parent":"MountTable","tokens":"root as_ref anyhow bail format","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.iter","kind":"method","line":[680,682],"parent":"MountTable","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.iter_mut","kind":"method","line":[685,687],"parent":"MountTable","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.mark_dirty","kind":"method","line":[690,697],"parent":"MountTable","tokens":"mount path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"MountTable.mark_dirty_canonical","kind":"method","line":[700,707],"parent":"MountTable","tokens":"mount path","visibility":"public"}
{"file":"src/mount/mod.rs","name":"tests","kind":"module","line":[711,1001],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"super::*","kind":"import","line":[712,712],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::fs","kind":"import","line":[713,713],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"tempfile::TempDir","kind":"import","line":[714,714],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_mount_rw","kind":"function","line":[717,727],"tokens":"table MountTable dirty path mount ReadWrite MountMode TempDir exists join mode","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_mount_ro","kind":"function","line":[730,737],"tokens":"TempDir table mode mount ReadOnly MountMode MountTable dirty","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_find_mount_longest_prefix","kind":"function","line":[740,768],"tokens":"mount MountTable path file_in_sub unwrap create_dir table subdir TempDir fs root write file_in_root canonicalize","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_unmount","kind":"function","line":[771,780],"tokens":"MountTable is_some is_none find_mount table path TempDir","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_double_mount_fails","kind":"function","line":[783,789],"tokens":"TempDir mount_rw MountTable table path is_err","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_mark_dirty","kind":"function","line":[792,804],"tokens":"file TempDir MountTable mount dirty table fs write mark_dirty","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_gitignore_respected","kind":"function","line":[807,842],"tokens":"iter MountTable event table to_string ends_with fs write TempDir FsEvent files contains any path mount Vec create_dir","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_symlinks_not_followed","kind":"function","line":[845,892],"tokens":"cfg unix symlink mount Vec table MountTable filter fs contains event create_dir write FsEvent path files iter TempDir os to_string count","visibility":"private"}
{"file":"src/mount/mod.rs","name":"std::os::unix::fs::symlink","kind":"import","line":[857,857],"visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_walk_adds_watches_internally","kind":"function","line":[895,931],"tokens":"event tmp_path create_dir_all mount channel file_count fs watched_count TempDir _rx MountTable FsEvent mpsc write sync table","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_gitignore_built_on_mount","kind":"function","line":[934,956],"tokens":"is_ignored MountTable join gitignore write tmp_path mount is_some table create_dir fs TempDir","visibility":"private"}
{"file":"src/mount/mod.rs","name":"test_nested_gitignore_files","kind":"function","line":[959,1000],"tokens":"fs iter create_dir_all ends_with files FsEvent TempDir path create_dir mount to_string event table write MountTable Vec any contains","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"C_STOPWORDS","kind":"constant","line":[10,46],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"filter_c_tokens","kind":"function","line":[49,63],"tokens":"tokens tok filtered C_STOPWORDS","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract","kind":"function","line":[65,74],"tokens":"file_path texts source symbols walk_node tree root","visibility":"public"}
{"file":"src/parser/c_lang.rs","name":"walk_node","kind":"function","line":[76,147],"tokens":"kind node extract_struct_or_union extract_declaration extract_enum extract_function child source extract_typedef extract_comment file_path cursor walk_node extract_string depth extract_macro extract_include symbols MAX_DEPTH texts parent_ctx","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_function","kind":"function","line":[149,183],"tokens":"node name find_child_by_field source visibility _sig tokens node_line_range body line is_static filter_c_tokens symbols has_storage_class push_symbol extract_signature_to_brace file_path declarator extract_declarator_name extract_tokens","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_declaration","kind":"function","line":[185,273],"tokens":"node has_storage_class _is_extern node_line_range child source visibility name _sig push_symbol symbols parent_ctx find_child_by_field line node_text collapse_whitespace extract_declarator_name cursor decl file_path is_static kind","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_struct_or_union","kind":"function","line":[275,342],"tokens":"find_child_by_field kind node_text name child symbols cursor file_path field_cursor field_name texts parent_ctx extract_comment node body push_symbol source format field_line line field_child node_line_range","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_enum","kind":"function","line":[344,396],"tokens":"node_line_range name_node const_name const_line file_path child node format line parent_ctx symbols cursor name find_child_by_field source node_text body push_symbol","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_typedef","kind":"function","line":[398,419],"tokens":"file_path node node_text push_symbol child cursor name line symbols node_line_range source","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_include","kind":"function","line":[421,443],"tokens":"symbols file_path path node path_node find_child_by_field node_line_range source line node_text push_symbol","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_macro","kind":"function","line":[445,469],"tokens":"find_child_by_field name node_text node_line_range line symbols push_symbol source file_path node kind","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"extract_declarator_name","kind":"function","line":[471,500],"tokens":"source node_text child name cursor String find_child_by_field node extract_declarator_name","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"has_storage_class","kind":"function","line":[502,513],"tokens":"source cursor text child node_text node","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"tests","kind":"module","line":[516,682],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"super::*","kind":"import","line":[517,517],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[518,518],"visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"find_sym","kind":"function","line":[520,525],"tokens":"symbols name panic","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_functions","kind":"function","line":[528,545],"tokens":"parse_file _texts source add symbols find_sym _refs kind visibility as_deref helper","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_struct","kind":"function","line":[548,564],"tokens":"find_sym point parse_file symbols _refs source kind parent _texts as_deref","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_enum","kind":"function","line":[567,584],"tokens":"find_sym source ok _refs status _texts parse_file kind as_deref symbols error parent","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_typedef","kind":"function","line":[587,598],"tokens":"add _texts source find_sym _refs parse_file symbols kind","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_variables","kind":"function","line":[601,618],"tokens":"_texts visibility find_sym file_scoped parse_file _refs symbols global source as_deref max_size kind","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_includes","kind":"function","line":[621,631],"tokens":"_texts symbols _refs source parse_file kind stdio myheader","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_macros","kind":"function","line":[634,644],"tokens":"source find_sym _refs symbols parse_file kind _texts pi max","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_union","kind":"function","line":[647,660],"tokens":"data symbols kind _texts parse_file source find_sym _refs","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_comments","kind":"function","line":[663,669],"tokens":"_symbols texts any parse_file iter kind source _refs","visibility":"private"}
{"file":"src/parser/c_lang.rs","name":"test_c_function_prototype","kind":"function","line":[672,681],"tokens":"kind _texts _refs source symbols find_sym is_none add tokens parse_file","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"crate::parser::helpers::*","kind":"import","line":[8,8],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"CPP_STOPWORDS","kind":"constant","line":[12,76],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"filter_cpp_tokens","kind":"function","line":[79,93],"tokens":"tokens tok filtered CPP_STOPWORDS","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract","kind":"function","line":[95,104],"tokens":"root symbols walk_node texts file_path tree source","visibility":"public"}
{"file":"src/parser/cpp.rs","name":"walk_node","kind":"function","line":[107,215],"tokens":"node parent_ctx MAX_DEPTH texts extract_function child extract_comment source symbols extract_enum extract_namespace depth extract_using_alias extract_class walk_node file_path extract_typedef cursor extract_include extract_string access kind extract_macro extract_using extract_declaration","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_function","kind":"function","line":[217,276],"tokens":"tokens find_child_by_field source extract_tokens full_name format kind node line extract_signature_to_brace node_line_range parent_ctx is_static declarator push_symbol symbols file_path extract_declarator_name name body _sig visibility access has_storage_class filter_cpp_tokens parent","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_declaration","kind":"function","line":[278,394],"tokens":"line has_storage_class symbols kind cursor parent_ctx file_path extract_declarator_name source push_symbol child node node_text format find_child_by_field collapse_whitespace access node_line_range is_static full_name parent visibility _sig decl name","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_class","kind":"function","line":[397,477],"tokens":"default_access cursor file_path body text node_text name source walk_node texts kind specifier_kind node_line_range find_child_by_field parent node format push_symbol current_access depth symbols full_name parent_ctx child line","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_enum","kind":"function","line":[479,537],"tokens":"find_child_by_field parent name child symbols full_name parent_ctx source line file_path cursor const_name body name_node push_symbol node const_line format node_text node_line_range","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_namespace","kind":"function","line":[539,606],"tokens":"source file_path find_child_by_field body name depth node symbols child line parent node_line_range walk_node format texts push_symbol full_name node_text cursor parent_ctx","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_typedef","kind":"function","line":[608,638],"tokens":"full_name format parent_ctx name node_line_range symbols parent line file_path node_text cursor node source push_symbol child","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_using_alias","kind":"function","line":[640,670],"tokens":"name node_line_range parent_ctx find_child_by_field symbols full_name source line node parent file_path node_text push_symbol format","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_using","kind":"function","line":[672,698],"tokens":"source node_text text push_symbol symbols node_line_range file_path line node name","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_include","kind":"function","line":[700,720],"tokens":"node_text push_symbol path source file_path path_node line find_child_by_field symbols node node_line_range","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_macro","kind":"function","line":[722,746],"tokens":"source name node_text node_line_range push_symbol node symbols find_child_by_field line file_path kind","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"extract_declarator_name","kind":"function","line":[748,780],"tokens":"source node_text String name find_child_by_field node child extract_declarator_name cursor","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"has_storage_class","kind":"function","line":[782,793],"tokens":"node node_text source cursor child text","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"tests","kind":"module","line":[796,1010],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"super::*","kind":"import","line":[797,797],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[798,798],"visibility":"private"}
{"file":"src/parser/cpp.rs","name":"find_sym","kind":"function","line":[800,805],"tokens":"panic symbols name","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_functions","kind":"function","line":[808,825],"tokens":"as_deref helper symbols add source _refs _texts find_sym parse_file kind visibility","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_class","kind":"function","line":[828,857],"tokens":"find_sym _texts kind visibility get_name symbols _refs helper source as_deref person parse_file","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_struct","kind":"function","line":[860,878],"tokens":"visibility find_sym as_deref _texts hidden _refs source set_x parse_file symbols point kind","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_namespace","kind":"function","line":[881,903],"tokens":"_texts tool find_sym _refs as_deref parent kind helper symbols parse_file utils source run","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_enum","kind":"function","line":[906,927],"tokens":"symbols _texts parse_file kind source red find_sym _refs color status","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_template","kind":"function","line":[930,951],"tokens":"symbols parse_file max _refs source container add find_sym kind _texts","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_using","kind":"function","line":[954,971],"tokens":"string _texts parse_file find_sym _refs source myint kind symbols ns","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_includes","kind":"function","line":[974,984],"tokens":"parse_file symbols _refs source _texts iostream kind myheader","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_anonymous_namespace","kind":"function","line":[987,1000],"tokens":"helper ns parse_file find_sym kind symbols _texts _refs source","visibility":"private"}
{"file":"src/parser/cpp.rs","name":"test_cpp_comments","kind":"function","line":[1003,1009],"tokens":"texts parse_file _refs source any kind _symbols iter","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"CSHARP_STOPWORDS","kind":"constant","line":[10,98],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"filter_csharp_tokens","kind":"function","line":[101,115],"tokens":"tok CSHARP_STOPWORDS filtered tokens","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract","kind":"function","line":[117,126],"tokens":"root walk_node file_path texts tree source symbols","visibility":"public"}
{"file":"src/parser/csharp.rs","name":"walk_node","kind":"function","line":[128,228],"tokens":"extract_enum node extract_constructor extract_type_decl source parent_ctx extract_field extract_delegate extract_using extract_string walk_node texts depth file_path extract_namespace extract_method extract_property extract_csharp_comment cursor child MAX_DEPTH kind symbols","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_type_decl","kind":"function","line":[231,300],"tokens":"full_name line symbols child node_line_range extract_csharp_visibility walk_node type_params bases format cursor texts push_symbol _sig parent kind node_text name file_path visibility find_child_by_field tokens body filter_csharp_tokens node depth parent_ctx extract_tokens source","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_enum","kind":"function","line":[302,358],"tokens":"parent_ctx file_path name_node node_text push_symbol name node visibility line format extract_csharp_visibility parent cursor child member_name node_line_range body full_name source symbols find_child_by_field member_line","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_namespace","kind":"function","line":[360,435],"tokens":"child full_name file_path cursor find_child_by_field line parent_ctx walk_node source found_ns node_text texts node_line_range push_symbol name node format symbols depth parent body","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_method","kind":"function","line":[437,474],"tokens":"node_text source visibility extract_tokens format parent push_symbol name file_path parent_ctx filter_csharp_tokens _sig full_name body node find_child_by_field extract_signature_to_brace symbols line extract_csharp_visibility tokens node_line_range","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_constructor","kind":"function","line":[476,513],"tokens":"filter_csharp_tokens symbols file_path push_symbol body full_name name node_text line _sig parent_ctx format node_line_range extract_signature_to_brace extract_tokens node source visibility parent find_child_by_field extract_csharp_visibility tokens","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_property","kind":"function","line":[515,547],"tokens":"parent_ctx push_symbol format node source symbols extract_csharp_visibility parent full_name node_text file_path name find_child_by_field visibility line node_line_range","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_field","kind":"function","line":[549,604],"tokens":"push_symbol child cursor node decl_child source is_const file_path find_child_by_field name is_readonly parent_ctx node_line_range kind decl_cursor node_text line symbols extract_csharp_visibility has_csharp_modifier format full_name parent visibility is_static name_node","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_delegate","kind":"function","line":[606,639],"tokens":"node source node_text visibility node_line_range parent collapse_whitespace parent_ctx find_child_by_field push_symbol name _sig full_name extract_csharp_visibility line format file_path symbols","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_using","kind":"function","line":[641,689],"tokens":"cursor node node_line_range node_text source symbols push_symbol child line type_name alias name find_child_by_field file_path","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_csharp_comment","kind":"function","line":[691,739],"tokens":"kind node text raw String is_trivial_text strip_block_comment cleaned line file_path source node_text parent_ctx node_line_range texts from","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"extract_csharp_visibility","kind":"function","line":[741,766],"tokens":"text full_text node_text child node cursor source","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"has_csharp_modifier","kind":"function","line":[768,781],"tokens":"child text cursor node format node_text source modifier","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"tests","kind":"module","line":[784,1010],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"super::*","kind":"import","line":[785,785],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[786,786],"visibility":"private"}
{"file":"src/parser/csharp.rs","name":"find_sym","kind":"function","line":[788,793],"tokens":"symbols name panic","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_class","kind":"function","line":[796,831],"tokens":"person helper parse_file _texts symbols visibility kind name get_name as_deref _refs find_sym source","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_interface","kind":"function","line":[834,845],"tokens":"kind _texts visibility parse_file _refs find_sym as_deref runnable symbols source","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_struct","kind":"function","line":[848,862],"tokens":"find_sym parse_file visibility kind as_deref point _texts _refs source symbols","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_enum","kind":"function","line":[865,880],"tokens":"_texts _refs parse_file find_sym kind parent as_deref active status symbols source","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_namespace","kind":"function","line":[883,902],"tokens":"_refs symbols parent utils run helper kind source _texts find_sym parse_file as_deref","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_properties","kind":"function","line":[905,920],"tokens":"parse_file as_deref source _refs version name _texts find_sym symbols kind visibility","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_constants","kind":"function","line":[923,938],"tokens":"max symbols parse_file _refs kind visibility _texts source find_sym as_deref version","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_using","kind":"function","line":[941,958],"tokens":"system symbols kind linq parse_file _texts _refs source generic","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_delegate","kind":"function","line":[961,968],"tokens":"as_deref _refs source handler _texts parse_file symbols find_sym kind visibility","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_visibility","kind":"function","line":[971,992],"tokens":"parse_file internal symbols visibility as_deref source find_sym _refs _texts","visibility":"private"}
{"file":"src/parser/csharp.rs","name":"test_csharp_comments","kind":"function","line":[995,1009],"tokens":"_refs parse_file _symbols texts source any iter kind","visibility":"private"}
{"file":"src/parser/go.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/go.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/go.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/go.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/go.rs","name":"extract","kind":"function","line":[9,18],"tokens":"file_path tree walk_node symbols texts source root","visibility":"public"}
{"file":"src/parser/go.rs","name":"walk_node","kind":"function","line":[20,84],"tokens":"extract_go_comment MAX_DEPTH extract_string extract_package kind extract_function child depth node file_path symbols extract_type_decl texts source extract_var_const cursor extract_type_spec extract_method parent_ctx walk_node extract_imports","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_function","kind":"function","line":[86,111],"tokens":"symbols push_symbol source node_text node_line_range node body find_child_by_field go_visibility extract_tokens filter_go_tokens tokens line visibility name file_path","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_method","kind":"function","line":[113,166],"tokens":"go_visibility node node_text node_line_range visibility name recv format extract_tokens parent push_symbol symbols filter_go_tokens find_child_by_field receiver file_path source line text body full_name tokens","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_type_decl","kind":"function","line":[168,182],"tokens":"child cursor file_path extract_type_spec symbols texts node source","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_type_spec","kind":"function","line":[184,284],"tokens":"visibility cursor method_line name node_text extract_go_comment format field_name node source field_list file_path find_child_by_field field_line method_vis node_line_range go_visibility push_symbol symbols line field_name_node method_sig type_n collapse_whitespace parent_ctx type_node field_vis method_name child method_name_node texts kind","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_var_const","kind":"function","line":[286,345],"tokens":"parent_ctx extra_name line go_visibility symbols node file_path spec_child find_child_by_field spec_cursor kind source node_text visibility name cursor name_node child push_symbol node_line_range extra_line is_const extra_vis","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_imports","kind":"function","line":[347,402],"tokens":"line node_text push_symbol node cursor name_node path_node child symbols strip_string_quotes spec spec_line alias file_path list_cursor source path node_line_range find_child_by_field","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_package","kind":"function","line":[404,423],"tokens":"push_symbol cursor line name node_text symbols node node_line_range child source file_path","visibility":"private"}
{"file":"src/parser/go.rs","name":"extract_go_comment","kind":"function","line":[425,433],"tokens":"extract_comment source parent_ctx node texts file_path","visibility":"private"}
{"file":"src/parser/go.rs","name":"go_visibility","kind":"function","line":[435,441],"tokens":"name","visibility":"private"}
{"file":"src/parser/go.rs","name":"GO_STOPWORDS","kind":"constant","line":[444,483],"visibility":"private"}
{"file":"src/parser/go.rs","name":"filter_go_tokens","kind":"function","line":[486,492],"tokens":"GO_STOPWORDS tokens","visibility":"private"}
{"file":"src/parser/go.rs","name":"tests","kind":"module","line":[495,678],"visibility":"private"}
{"file":"src/parser/go.rs","name":"super::*","kind":"import","line":[496,496],"visibility":"private"}
{"file":"src/parser/go.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[497,497],"visibility":"private"}
{"file":"src/parser/go.rs","name":"find_sym","kind":"function","line":[499,504],"tokens":"symbols name panic","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_functions","kind":"function","line":[507,527],"tokens":"source _texts helper hello visibility kind as_deref find_sym _refs parse_file symbols","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_methods","kind":"function","line":[530,554],"tokens":"person parse_file _refs greet _texts find_sym as_deref visibility source symbols priv_method parent kind","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_structs","kind":"function","line":[557,576],"tokens":"kind _refs visibility find_sym as_deref _texts symbols source parse_file point","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_interfaces","kind":"function","line":[579,595],"tokens":"visibility source symbols parse_file reader find_sym kind as_deref _refs _texts len","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_variables","kind":"function","line":[598,618],"tokens":"kind parse_file visibility source symbols max as_deref global find_sym _texts _refs min","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_imports","kind":"function","line":[621,639],"tokens":"fmt alias symbols kind _texts source parse_file os as_deref _refs","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_type_alias","kind":"function","line":[642,654],"tokens":"user_id handler find_sym _texts kind symbols parse_file _refs source","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_package","kind":"function","line":[657,665],"tokens":"parse_file pkg symbols _texts source name _refs","visibility":"private"}
{"file":"src/parser/go.rs","name":"test_go_comments","kind":"function","line":[668,677],"tokens":"any kind _symbols parse_file iter _refs source texts","visibility":"private"}
{"file":"src/parser/helpers.rs","name":"std::collections::HashSet","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/helpers.rs","name":"tree_sitter::Node","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/parser/helpers.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/helpers.rs","name":"STOPWORDS","kind":"constant","line":[12,60],"visibility":"private"}
{"file":"src/parser/helpers.rs","name":"node_text","kind":"function","line":[63,67],"tokens":"end node start String source from_utf8_lossy","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"node_line_range","kind":"function","line":[70,81],"tokens":"start end node end_pos","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"find_child_by_field","kind":"function","line":[84,86],"tokens":"node field","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"is_trivial_text","kind":"function","line":[89,104],"tokens":"trimmed text","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"collapse_whitespace","kind":"function","line":[107,122],"tokens":"result with_capacity prev_ws String","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"strip_doc_comment_prefix","kind":"function","line":[125,141],"tokens":"raw rest line trimmed","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"strip_block_comment","kind":"function","line":[144,164],"tokens":"raw line trimmed","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"strip_string_quotes","kind":"function","line":[167,199],"tokens":"strip_simple_quotes raw","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"strip_simple_quotes","kind":"function","line":[201,209],"visibility":"private"}
{"file":"src/parser/helpers.rs","name":"extract_comment","kind":"function","line":[212,256],"tokens":"raw node file_path String texts line node_line_range text parent_ctx cleaned source is_trivial_text strip_block_comment strip_doc_comment_prefix kind node_text from","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"extract_string","kind":"function","line":[259,282],"tokens":"texts node_text node raw parent_ctx node_line_range file_path strip_string_quotes text is_trivial_text String line from source","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"push_symbol","kind":"function","line":[286,308],"tokens":"line String from tokens visibility kind alias parent symbols name file_path","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"extract_signature_to_brace","kind":"function","line":[312,327],"tokens":"sig semi_pos node String collapse_whitespace end from_utf8_lossy source start text brace_pos","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"extract_tokens","kind":"function","line":[336,362],"tokens":"tokens HashSet source node filtered STOPWORDS collect_identifiers","visibility":"public"}
{"file":"src/parser/helpers.rs","name":"collect_identifiers","kind":"function","line":[365,382],"tokens":"tokens collect_identifiers depth text node_text cursor child source node","visibility":"private"}
{"file":"src/parser/java.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/java.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/java.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/java.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/java.rs","name":"JAVA_STOPWORDS","kind":"constant","line":[10,59],"visibility":"private"}
{"file":"src/parser/java.rs","name":"filter_java_tokens","kind":"function","line":[62,76],"tokens":"filtered tokens tok JAVA_STOPWORDS","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract","kind":"function","line":[78,87],"tokens":"file_path symbols source root tree walk_node texts","visibility":"public"}
{"file":"src/parser/java.rs","name":"walk_node","kind":"function","line":[89,189],"tokens":"extract_method texts kind parent_ctx cursor symbols extract_java_comment source extract_constructor child file_path MAX_DEPTH node depth extract_field extract_class extract_import extract_package extract_string walk_node","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_class","kind":"function","line":[192,250],"tokens":"line _sig kind visibility format body walk_node depth node_text parent_ctx extract_tokens node find_child_by_field texts child symbols push_symbol build_class_signature name source parent extract_java_visibility file_path cursor full_name filter_java_tokens node_line_range tokens","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_method","kind":"function","line":[252,289],"tokens":"file_path parent_ctx extract_java_visibility source _sig find_child_by_field format full_name body parent filter_java_tokens node_text node name extract_signature_to_brace node_line_range line tokens extract_tokens push_symbol visibility symbols","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_constructor","kind":"function","line":[291,328],"tokens":"visibility body filter_java_tokens node_text tokens parent_ctx source _sig node_line_range extract_tokens push_symbol extract_signature_to_brace symbols file_path parent full_name line extract_java_visibility name find_child_by_field node format","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_field","kind":"function","line":[330,377],"tokens":"extract_java_visibility name node_text symbols node line file_path has_modifier is_final node_line_range parent source cursor parent_ctx push_symbol visibility find_child_by_field child kind is_static name_node full_name format","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_import","kind":"function","line":[379,400],"tokens":"node symbols node_line_range source file_path cursor node_text line push_symbol child name","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_package","kind":"function","line":[402,421],"tokens":"node_line_range child node symbols file_path push_symbol line cursor name node_text source","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_java_comment","kind":"function","line":[423,431],"tokens":"file_path parent_ctx node extract_comment source texts","visibility":"private"}
{"file":"src/parser/java.rs","name":"extract_java_visibility","kind":"function","line":[433,452],"tokens":"child text node_text source cursor node","visibility":"private"}
{"file":"src/parser/java.rs","name":"has_modifier","kind":"function","line":[454,463],"tokens":"modifier child cursor node text node_text source","visibility":"private"}
{"file":"src/parser/java.rs","name":"build_class_signature","kind":"function","line":[465,479],"tokens":"implements extends type_params node node_text find_child_by_field source format","visibility":"private"}
{"file":"src/parser/java.rs","name":"tests","kind":"module","line":[482,658],"visibility":"private"}
{"file":"src/parser/java.rs","name":"super::*","kind":"import","line":[483,483],"visibility":"private"}
{"file":"src/parser/java.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[484,484],"visibility":"private"}
{"file":"src/parser/java.rs","name":"find_sym","kind":"function","line":[486,491],"tokens":"name symbols panic","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_class","kind":"function","line":[494,529],"tokens":"symbols kind source _refs find_sym visibility get_name as_deref helper constructor _texts parse_file person name","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_interface","kind":"function","line":[532,542],"tokens":"_texts source symbols parse_file find_sym _refs kind visibility as_deref runnable","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_enum","kind":"function","line":[545,556],"tokens":"as_deref _texts status visibility find_sym parse_file kind source _refs symbols","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_fields","kind":"function","line":[559,577],"tokens":"source as_deref name symbols max_size _texts parse_file kind value visibility find_sym _refs","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_methods","kind":"function","line":[580,603],"tokens":"parse_file log as_deref source visibility add _texts symbols find_sym divide _refs kind","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_imports","kind":"function","line":[606,621],"tokens":"parse_file has_util source imports symbols _refs _texts is_empty","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_package","kind":"function","line":[624,632],"tokens":"_refs parse_file pkg source name _texts symbols","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_visibility_default","kind":"function","line":[635,646],"tokens":"_refs symbols find_sym visibility _texts parse_file as_deref source method","visibility":"private"}
{"file":"src/parser/java.rs","name":"test_java_comments","kind":"function","line":[649,657],"tokens":"parse_file kind iter _symbols _refs source texts any","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"JS_STOPWORDS","kind":"constant","line":[10,41],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"filter_js_tokens","kind":"function","line":[44,56],"tokens":"filtered tokens tok JS_STOPWORDS","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract","kind":"function","line":[58,67],"tokens":"file_path texts source walk_node symbols root tree","visibility":"public"}
{"file":"src/parser/javascript.rs","name":"walk_node","kind":"function","line":[69,145],"tokens":"kind extract_class extract_js_comment extract_function_decl file_path child symbols extract_variable_decl MAX_DEPTH depth extract_method texts node source extract_string cursor parent_ctx walk_node extract_import","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_function_decl","kind":"function","line":[147,199],"tokens":"parent source parent_ctx tokens line filter_js_tokens find_child_by_field node_line_range visibility push_symbol build_function_signature _sig node_text is_exported extract_tokens body full_name format name symbols kind file_path node","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_class","kind":"function","line":[201,267],"tokens":"node node_line_range format symbols child source texts visibility find_child_by_field full_name parent name _sig filter_js_tokens parent_ctx node_text walk_node body depth build_class_signature push_symbol line is_exported file_path tokens extract_tokens cursor","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_method","kind":"function","line":[269,359],"tokens":"name parent_ctx _sig parent file_path format is_async full_name kind String body is_setter params source is_getter tokens join find_child_by_field child extract_tokens node_line_range prefix sig_parts visibility symbols node is_static node_text line push_symbol filter_js_tokens Vec cursor","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_variable_decl","kind":"function","line":[361,448],"tokens":"child source node_line_range visibility matches name format extract_tokens line node_text cursor filter_js_tokens is_const node symbols is_exported find_child_by_field file_path name_node push_symbol parent is_func kind value_node full_name parent_ctx tokens","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_import","kind":"function","line":[450,539],"tokens":"name strip_string_quotes child raw node_text node_line_range source clause_child spec file_path find_child_by_field named_cursor alias line cursor symbols imported_name node source_module imp_name push_symbol full_name format clause_cursor","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"extract_js_comment","kind":"function","line":[541,577],"tokens":"from node_text parent_ctx String node_line_range line raw node file_path cleaned kind strip_block_comment text is_trivial_text texts source","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"build_function_signature","kind":"function","line":[579,596],"tokens":"find_child_by_field node is_async source is_generator prefix params format node_text","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"build_class_signature","kind":"function","line":[598,613],"tokens":"extends cursor node find_child_by_field node_text text source format","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"tests","kind":"module","line":[616,789],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"super::*","kind":"import","line":[617,617],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[618,618],"visibility":"private"}
{"file":"src/parser/javascript.rs","name":"find_sym","kind":"function","line":[620,625],"tokens":"name symbols panic","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_functions","kind":"function","line":[628,653],"tokens":"as_deref parse_file symbols _refs source _texts fetch generator visibility len kind hello find_sym","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_classes","kind":"function","line":[656,689],"tokens":"kind parse_file parent symbols _refs _texts visibility find_sym getter person source as_deref greet create","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_variables","kind":"function","line":[692,717],"tokens":"as_deref api async_fn parse_file find_sym debug _refs visibility kind _texts max source symbols add","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_imports","kind":"function","line":[720,742],"tokens":"react source alias _texts as_deref kind utils parse_file _refs render use_state symbols","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_visibility","kind":"function","line":[745,772],"tokens":"source parse_file visibility _texts symbols _refs as_deref internal","visibility":"private"}
{"file":"src/parser/javascript.rs","name":"test_js_comments","kind":"function","line":[775,788],"tokens":"_refs _symbols texts kind any source iter parse_file","visibility":"private"}
{"file":"src/parser/languages.rs","name":"anyhow::Result","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/parser/languages.rs","name":"tree_sitter::Language","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/parser/languages.rs","name":"get_language","kind":"function","line":[8,50],"tokens":"tree_sitter_md LANGUAGE tree_sitter_go anyhow tree_sitter_typescript tree_sitter_java tree_sitter_rust tree_sitter_ruby tree_sitter_c tree_sitter_python name LANGUAGE_TYPESCRIPT LANGUAGE_TSX tree_sitter_cpp bail tree_sitter_javascript feature tree_sitter_c_sharp cfg","visibility":"public"}
{"file":"src/parser/languages.rs","name":"detect_language","kind":"function","line":[53,73],"tokens":"extension","visibility":"public"}
{"file":"src/parser/markdown.rs","name":"anyhow::Result","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"tree_sitter::Node","kind":"import","line":[11,11],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"tree_sitter_md::MarkdownParser","kind":"import","line":[12,12],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[14,14],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"crate::parser::helpers::{node_line_range, node_text, push_symbol}","kind":"import","line":[15,15],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"parse_and_extract","kind":"function","line":[18,47],"tokens":"root heading_stack walk_blocks md_tree anyhow MarkdownParser source texts file_path block_tree symbols Vec parser","visibility":"public"}
{"file":"src/parser/markdown.rs","name":"walk_blocks","kind":"function","line":[50,76],"tokens":"child heading_stack node extract_atx_heading file_path texts walk_blocks extract_code_block symbols extract_setext_heading source cursor","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"extract_atx_heading","kind":"function","line":[79,107],"tokens":"compute_qualified_name line_range source symbols file_path qualified_name get_heading_text text heading_stack level node node_line_range push_symbol parent count_atx_level","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"extract_setext_heading","kind":"function","line":[110,138],"tokens":"level source text get_heading_text symbols heading_stack compute_qualified_name line_range push_symbol qualified_name node_line_range get_setext_level file_path node parent","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"extract_code_block","kind":"function","line":[141,192],"tokens":"node_text texts line_range name text file_path cursor raw content node_line_range source node child parent String heading_stack extract_code_content","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"extract_code_content","kind":"function","line":[196,220],"tokens":"lines end_idx line raw trimmed first content","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"get_heading_text","kind":"function","line":[226,248],"tokens":"source strip_heading_markers text node_text node child strip_optional_closing_hashes cursor raw","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"strip_optional_closing_hashes","kind":"function","line":[252,268],"tokens":"after_space trimmed text last_space_idx","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"strip_heading_markers","kind":"function","line":[271,291],"tokens":"trimmed text raw first_line after_hashes","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"count_atx_level","kind":"function","line":[294,313],"tokens":"kind text node cursor count level_char source child level node_text","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"get_setext_level","kind":"function","line":[316,338],"tokens":"trimmed node_text node child text source cursor last_line","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"compute_qualified_name","kind":"function","line":[349,376],"tokens":"qname name qualified_name parent format top_level level parent_name heading_stack","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"tests","kind":"module","line":[379,553],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"super::*","kind":"import","line":[380,380],"visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_atx_headings_basic","kind":"function","line":[383,396],"tokens":"kind symbols parse_and_extract parent to_string len source name","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_atx_headings_hierarchy","kind":"function","line":[399,429],"tokens":"symbols source parse_and_extract len name to_string parent","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_setext_headings","kind":"function","line":[432,443],"tokens":"parent parse_and_extract symbols name len kind source to_string","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_code_blocks","kind":"function","line":[446,457],"tokens":"source is_empty parent name parse_and_extract len to_string symbols texts text kind contains","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_mixed_heading_styles","kind":"function","line":[460,468],"tokens":"source symbols name len to_string parent parse_and_extract","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_heading_with_trailing_hashes","kind":"function","line":[471,480],"tokens":"symbols source parse_and_extract len name","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_heading_with_only_closing_hashes","kind":"function","line":[483,490],"tokens":"source symbols len name parse_and_extract","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_empty_heading_skipped","kind":"function","line":[493,500],"tokens":"all is_empty name symbols any parse_and_extract iter source","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_code_block_without_heading","kind":"function","line":[503,511],"tokens":"source symbols parse_and_extract is_empty kind parent texts","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_deeply_nested_headings","kind":"function","line":[514,521],"tokens":"len parse_and_extract source name parent to_string symbols","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_duplicate_heading_names","kind":"function","line":[524,536],"tokens":"len parse_and_extract symbols name source","visibility":"private"}
{"file":"src/parser/markdown.rs","name":"test_code_block_with_qualified_parent","kind":"function","line":[539,552],"tokens":"symbols texts kind to_string len parent source parse_and_extract name","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"tree_sitter::{Parser, Tree}","kind":"import","line":[15,15],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"crate::parser::helpers::{node_text, strip_string_quotes}","kind":"import","line":[17,17],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"crate::parser::languages::get_language","kind":"import","line":[18,18],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"FileMetadata","kind":"struct","line":[22,25],"visibility":"public"}
{"file":"src/parser/metadata.rs","name":"FileMetadata","kind":"impl","line":[27,35],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"FileMetadata.new","kind":"method","line":[28,30],"parent":"FileMetadata","tokens":"title description","visibility":"public"}
{"file":"src/parser/metadata.rs","name":"FileMetadata.is_empty","kind":"method","line":[32,34],"parent":"FileMetadata","visibility":"public"}
{"file":"src/parser/metadata.rs","name":"extract_file_metadata","kind":"function","line":[41,84],"tokens":"extract_c_metadata truncate_to_line extract_java_metadata cfg result extract_with_tree extract_python_metadata extract_rust_metadata extract_go_metadata extract_ruby_metadata source extract_markdown_metadata truncate_to_sentence FileMetadata feature language extract_csharp_metadata extract_js_metadata","visibility":"public"}
{"file":"src/parser/metadata.rs","name":"extract_with_tree","kind":"function","line":[87,105],"tokens":"tree lang get_language source FileMetadata parser extractor Parser language","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"truncate_to_line","kind":"function","line":[108,114],"tokens":"idx text trimmed","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"truncate_to_sentence","kind":"function","line":[117,138],"tokens":"truncate_to_line trimmed next_char next_idx text","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_markdown_metadata","kind":"function","line":[145,199],"tokens":"FileMetadata trimmed extract_yaml_frontmatter heading_text title str source line meta from_utf8 in_code_block text description","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_yaml_frontmatter","kind":"function","line":[202,232],"tokens":"value end_idx line FileMetadata title yaml_content content text description trimmed","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_python_metadata","kind":"function","line":[239,267],"tokens":"node_text text string_node root tree strip_string_quotes split_docstring FileMetadata source raw cursor child","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_rust_metadata","kind":"function","line":[274,315],"tokens":"cleaned FileMetadata doc_lines tree source root cursor node_text doc split_docstring child clean_block_comment combined content text Vec","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_js_metadata","kind":"function","line":[322,349],"tokens":"node_text root clean_jsdoc_comment tree FileMetadata split_docstring content child source text cleaned cursor","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_go_metadata","kind":"function","line":[356,393],"tokens":"cursor root child line node_text source combined content cleaned clean_block_comment FileMetadata text split_docstring doc_lines Vec tree","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_java_metadata","kind":"function","line":[400,426],"tokens":"text clean_jsdoc_comment content FileMetadata node_text child cursor source tree cleaned split_docstring root","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_c_metadata","kind":"function","line":[433,472],"tokens":"is_copyright_only tree clean_block_comment combined child doc_lines Vec source root cleaned line cursor content node_text text split_docstring FileMetadata","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_ruby_metadata","kind":"function","line":[479,505],"tokens":"tree FileMetadata doc_lines line cursor root text node_text split_docstring child source combined Vec","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_csharp_metadata","kind":"function","line":[512,544],"tokens":"tree text root cursor Vec doc doc_lines split_docstring child node_text combined extract_xml_summary FileMetadata summary source","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"extract_xml_summary","kind":"function","line":[547,567],"tokens":"start text content end cleaned","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"split_docstring","kind":"function","line":[574,605],"tokens":"title desc lines description FileMetadata trimmed text desc_lines is_decoration_line","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"is_decoration_line","kind":"function","line":[608,616],"tokens":"first_char matches line","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"clean_block_comment","kind":"function","line":[619,629],"tokens":"text trimmed line","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"clean_jsdoc_comment","kind":"function","line":[632,663],"tokens":"Vec content trimmed desc rest lines line text","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"is_copyright_only","kind":"function","line":[666,673],"tokens":"text lower","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"tests","kind":"module","line":[676,733],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"super::*","kind":"import","line":[677,677],"visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_truncate_to_sentence","kind":"function","line":[680,690],"tokens":"truncate_to_sentence","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_truncate_to_line","kind":"function","line":[693,696],"tokens":"truncate_to_line","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_split_docstring","kind":"function","line":[699,707],"tokens":"title to_string split_docstring description meta","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_clean_block_comment","kind":"function","line":[710,714],"tokens":"clean_block_comment result input","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_yaml_frontmatter","kind":"function","line":[718,723],"tokens":"description text to_string extract_yaml_frontmatter title meta","visibility":"private"}
{"file":"src/parser/metadata.rs","name":"test_markdown_heading_fallback","kind":"function","line":[727,732],"tokens":"description to_string source extract_markdown_metadata meta title","visibility":"private"}
{"file":"src/parser/mod.rs","name":"helpers","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"languages","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"metadata","kind":"module","line":[3,3],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"sfc","kind":"module","line":[4,4],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"treesitter","kind":"module","line":[5,5],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"rust_lang","kind":"module","line":[9,9],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"python","kind":"module","line":[12,12],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"javascript","kind":"module","line":[15,15],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"typescript","kind":"module","line":[18,18],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"go","kind":"module","line":[21,21],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"java","kind":"module","line":[24,24],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"c_lang","kind":"module","line":[27,27],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"cpp","kind":"module","line":[30,30],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"ruby","kind":"module","line":[33,33],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"csharp","kind":"module","line":[36,36],"visibility":"public"}
{"file":"src/parser/mod.rs","name":"markdown","kind":"module","line":[39,39],"visibility":"public"}
{"file":"src/parser/python.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/python.rs","name":"crate::index::format::{ReferenceEntry, SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/python.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/python.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/python.rs","name":"extract","kind":"function","line":[9,19],"tokens":"tree symbols texts walk_node root source file_path references","visibility":"public"}
{"file":"src/parser/python.rs","name":"walk_node","kind":"function","line":[22,118],"tokens":"source symbols extract_assignment extract_python_comment cursor walk_node extract_import extract_string file_path extract_class texts extract_import_from kind extract_function parent_ctx MAX_DEPTH references depth child extract_docstring extract_call node","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_function","kind":"function","line":[121,201],"tokens":"full_name parent_ctx child symbols node_line_range filter_python_tokens node name extract_tokens first parent line cursor extract_docstring str_node source detect_python_visibility references walk_node kind tokens body depth node_text push_symbol visibility find_child_by_field format file_path texts","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_class","kind":"function","line":[204,273],"tokens":"full_name find_child_by_field depth detect_python_visibility filter_python_tokens format walk_node push_symbol symbols body source node str_node tokens line name child extract_tokens parent texts node_text parent_ctx visibility first references cursor file_path extract_docstring node_line_range","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_import","kind":"function","line":[275,342],"tokens":"name node node_text child file_path source symbols push_symbol node_line_range alias_node line String find_child_by_field alias references name_node cursor","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_import_from","kind":"function","line":[344,460],"tokens":"source alias imported references child file_path String full_import line name_node push_symbol node format alias_node find_child_by_field module node_line_range node_text cursor symbols","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_assignment","kind":"function","line":[462,508],"tokens":"parent_ctx symbols source line visibility parent format node_text name node_line_range left file_path find_child_by_field node full_name detect_python_visibility kind push_symbol","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_call","kind":"function","line":[512,557],"tokens":"String find_child_by_field parent_ctx node_line_range file_path references func from is_builtin_call source name line node_text node","visibility":"private"}
{"file":"src/parser/python.rs","name":"is_builtin_call","kind":"function","line":[560,610],"tokens":"base name matches","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_docstring","kind":"function","line":[612,635],"tokens":"String from text texts file_path is_trivial_text parent_ctx node_text node_line_range source line raw node strip_string_quotes","visibility":"private"}
{"file":"src/parser/python.rs","name":"extract_python_comment","kind":"function","line":[637,645],"tokens":"source node parent_ctx texts extract_comment file_path","visibility":"private"}
{"file":"src/parser/python.rs","name":"detect_python_visibility","kind":"function","line":[647,655],"tokens":"name","visibility":"private"}
{"file":"src/parser/python.rs","name":"PYTHON_STOPWORDS","kind":"constant","line":[658,660],"visibility":"private"}
{"file":"src/parser/python.rs","name":"filter_python_tokens","kind":"function","line":[663,669],"tokens":"PYTHON_STOPWORDS tokens","visibility":"private"}
{"file":"src/parser/python.rs","name":"tests","kind":"module","line":[672,867],"visibility":"private"}
{"file":"src/parser/python.rs","name":"super::*","kind":"import","line":[673,673],"visibility":"private"}
{"file":"src/parser/python.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[674,674],"visibility":"private"}
{"file":"src/parser/python.rs","name":"find_sym","kind":"function","line":[676,681],"tokens":"symbols panic name","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_functions","kind":"function","line":[684,710],"tokens":"source symbols _texts parse_file kind tokens len async_fn hello _refs priv_fn find_sym visibility as_deref is_none","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_classes","kind":"function","line":[713,742],"tokens":"_refs _texts symbols as_deref parent greet person visibility kind init source priv_class find_sym parse_file","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_imports","kind":"function","line":[745,771],"tokens":"as_deref path find_sym os dict name _texts kind source refs sys any iter symbols parse_file alias","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_variables","kind":"function","line":[774,791],"tokens":"config source _refs _texts max_size find_sym kind parse_file symbols debug","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_visibility","kind":"function","line":[794,821],"tokens":"as_deref _refs visibility source find_sym parse_file symbols internal _texts special","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_docstrings","kind":"function","line":[824,836],"tokens":"source iter any _refs texts _symbols parse_file kind","visibility":"private"}
{"file":"src/parser/python.rs","name":"test_python_call_references","kind":"function","line":[839,866],"tokens":"any parse_file call_refs name caller iter refs source as_deref _symbols _texts","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"RUBY_STOPWORDS","kind":"constant","line":[10,76],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"filter_ruby_tokens","kind":"function","line":[79,93],"tokens":"filtered tok RUBY_STOPWORDS tokens","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract","kind":"function","line":[95,104],"tokens":"source symbols walk_node tree texts root file_path","visibility":"public"}
{"file":"src/parser/ruby.rs","name":"walk_node","kind":"function","line":[106,172],"tokens":"cursor extract_singleton_method child walk_node extract_method depth MAX_DEPTH symbols parent_ctx extract_call extract_string file_path extract_class source kind extract_module extract_ruby_comment node extract_assignment texts","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_method","kind":"function","line":[174,250],"tokens":"child file_path walk_node filter_ruby_tokens extract_tokens parent_ctx line parent node_text full_name body ctx node name texts tokens depth symbols visibility cursor source push_symbol _sig params kind format find_child_by_field ruby_visibility node_line_range","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_singleton_method","kind":"function","line":[252,321],"tokens":"params body depth walk_node extract_tokens format node_text file_path find_child_by_field node full_name push_symbol _sig tokens node_line_range ctx texts parent name symbols filter_ruby_tokens cursor line parent_ctx child source","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_class","kind":"function","line":[323,383],"tokens":"parent_ctx node_line_range superclass symbols body push_symbol file_path cursor node_text full_name tokens texts filter_ruby_tokens name depth source child walk_node _sig parent extract_tokens format find_child_by_field node line","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_module","kind":"function","line":[385,433],"tokens":"symbols line format node parent cursor body full_name source name node_text push_symbol file_path parent_ctx child walk_node texts depth find_child_by_field node_line_range","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_assignment","kind":"function","line":[435,514],"tokens":"format left visibility node_line_range ruby_visibility symbols node source file_path parent full_name parent_ctx find_child_by_field name line node_text push_symbol","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_call","kind":"function","line":[516,557],"tokens":"node_line_range file_path find_child_by_field source push_symbol args cursor path node_text node strip_string_quotes child line symbols method","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"extract_ruby_comment","kind":"function","line":[559,567],"tokens":"texts node extract_comment source file_path parent_ctx","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"ruby_visibility","kind":"function","line":[569,575],"tokens":"name","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"tests","kind":"module","line":[578,775],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"super::*","kind":"import","line":[579,579],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[580,580],"visibility":"private"}
{"file":"src/parser/ruby.rs","name":"find_sym","kind":"function","line":[582,587],"tokens":"symbols panic name","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_methods","kind":"function","line":[590,608],"tokens":"symbols parse_file kind hello find_sym source _texts _refs as_deref helper visibility","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_classes","kind":"function","line":[611,636],"tokens":"init kind create as_deref find_sym parent parse_file _texts source symbols person _refs","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_modules","kind":"function","line":[639,664],"tokens":"utils source parent kind _texts logger writer _refs helper parse_file as_deref find_sym symbols","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_constants","kind":"function","line":[667,682],"tokens":"_refs source _texts kind as_deref max find_sym version symbols parent parse_file","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_variables","kind":"function","line":[685,699],"tokens":"_refs parse_file kind as_deref visibility instance class_var find_sym symbols _texts source","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_require","kind":"function","line":[702,713],"tokens":"kind source parse_file json symbols config _texts _refs","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_inheritance","kind":"function","line":[716,732],"tokens":"kind _texts dog find_sym _refs source symbols parse_file bark","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_singleton_methods","kind":"function","line":[735,745],"tokens":"_texts source parse_file _refs symbols kind format find_sym","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_comments","kind":"function","line":[748,758],"tokens":"iter parse_file texts source _symbols any kind _refs","visibility":"private"}
{"file":"src/parser/ruby.rs","name":"test_ruby_visibility_markers","kind":"function","line":[761,774],"tokens":"visibility _refs symbols source internal _texts find_sym parse_file as_deref","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"crate::parser::helpers::*","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract","kind":"function","line":[9,18],"tokens":"tree source symbols texts file_path root walk_node","visibility":"public"}
{"file":"src/parser/rust_lang.rs","name":"walk_node","kind":"function","line":[20,92],"tokens":"parent_ctx walk_node symbols extract_string MAX_DEPTH extract_use extract_named_symbol extract_function depth texts file_path kind node source extract_rust_comment cursor child extract_impl","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_function","kind":"function","line":[94,137],"tokens":"body extract_visibility node_line_range tokens file_path format kind source parent_ctx node extract_tokens find_child_by_field push_symbol line full_name visibility name node_text filter_rust_tokens parent symbols","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_named_symbol","kind":"function","line":[139,166],"tokens":"file_path line name parent_ctx symbols find_child_by_field extract_visibility node_line_range node node_text source kind visibility push_symbol","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_impl","kind":"function","line":[168,243],"tokens":"trait_name walk_node extract_impl_type_name extract_named_symbol visibility extract_function node body node_text child find_child_by_field file_path node_line_range kind depth symbols texts line impl_type_name extract_visibility source push_symbol cursor","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_impl_type_name","kind":"function","line":[245,250],"tokens":"find_child_by_field node source node_text type_node","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_use","kind":"function","line":[252,259],"tokens":"node_line_range symbols find_child_by_field line visibility source extract_use_paths file_path node extract_visibility arg","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_use_paths","kind":"function","line":[261,328],"tokens":"path_node child node source line name extract_use_paths alias file_path symbols find_child_by_field node_text cursor push_symbol visibility","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_visibility","kind":"function","line":[330,343],"tokens":"cursor node text node_text source child","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"RUST_STOPWORDS","kind":"constant","line":[346,353],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"filter_rust_tokens","kind":"function","line":[356,362],"tokens":"tokens RUST_STOPWORDS","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"extract_rust_comment","kind":"function","line":[365,373],"tokens":"extract_comment file_path source parent_ctx texts node","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"tests","kind":"module","line":[376,554],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"super::*","kind":"import","line":[377,377],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[378,378],"visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"find_sym","kind":"function","line":[380,385],"tokens":"symbols name panic","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_functions","kind":"function","line":[388,408],"tokens":"source helper symbols parse_file _texts as_deref kind len visibility hello _refs find_sym","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_struct","kind":"function","line":[411,428],"tokens":"_texts len parse_file kind as_deref find_sym priv_struct _refs source visibility symbols point","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_impl","kind":"function","line":[431,457],"tokens":"parse_file find_sym kind symbols _impl_entry _refs parent _impl_sym as_deref source len visibility _texts priv_method","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_trait","kind":"function","line":[460,481],"tokens":"trait_impl source as_deref _texts symbols _refs parse_file tokens trait_sym visibility is_none","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_use","kind":"function","line":[484,500],"tokens":"source _refs hashmap kind visibility symbols as_deref _texts debug parse_file","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_enum","kind":"function","line":[503,512],"tokens":"as_deref symbols _texts kind parse_file source result visibility find_sym _refs","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_mod","kind":"function","line":[515,526],"tokens":"as_deref symbols _texts source _refs utils kind parse_file priv_mod find_sym visibility","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_const","kind":"function","line":[529,541],"tokens":"kind parse_file find_sym visibility as_deref global _texts source symbols max _refs","visibility":"private"}
{"file":"src/parser/rust_lang.rs","name":"test_rust_comments","kind":"function","line":[544,553],"tokens":"kind iter _symbols texts source _refs any parse_file","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"ScriptBlock","kind":"struct","line":[9,16],"visibility":"public"}
{"file":"src/parser/sfc.rs","name":"extract_script_blocks","kind":"function","line":[22,30],"tokens":"extract_vue_scripts extension source Vec extract_html_script_tags extract_svelte_scripts extract_astro_scripts","visibility":"public"}
{"file":"src/parser/sfc.rs","name":"extract_vue_scripts","kind":"function","line":[36,38],"tokens":"source extract_html_script_tags","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"extract_svelte_scripts","kind":"function","line":[44,46],"tokens":"extract_html_script_tags source","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"extract_astro_scripts","kind":"function","line":[52,90],"tokens":"first from_utf8_lossy text frontmatter blocks second String Vec count_newlines_in extract_html_script_tags fm_start after_first fm_end start_line source","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"extract_html_script_tags","kind":"function","line":[99,178],"tokens":"open_tag blocks default_lang text start_line content pos count_newlines_in lang search_from after_script Vec content_end content_start source from_utf8_lossy text_lower tag_close String tag_start next_char detect_script_lang","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"detect_script_lang","kind":"function","line":[184,207],"tokens":"lower after_eq default_lang pos rest open_tag","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"count_newlines_in","kind":"function","line":[210,212],"visibility":"private"}
{"file":"src/parser/sfc.rs","name":"tests","kind":"module","line":[215,319],"visibility":"private"}
{"file":"src/parser/sfc.rs","name":"super::*","kind":"import","line":[216,216],"visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_vue_basic","kind":"function","line":[219,228],"tokens":"content lang source extract_script_blocks from_utf8_lossy contains start_line len String blocks","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_vue_two_scripts","kind":"function","line":[231,239],"tokens":"lang blocks extract_script_blocks len source start_line","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_vue_no_script","kind":"function","line":[242,246],"tokens":"blocks extract_script_blocks is_empty source","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_astro_frontmatter","kind":"function","line":[249,257],"tokens":"String blocks contains extract_script_blocks start_line from_utf8_lossy source len lang content","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_svelte_basic","kind":"function","line":[260,266],"tokens":"blocks len source extract_script_blocks lang start_line","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_html_script_extraction","kind":"function","line":[269,277],"tokens":"start_line source lang content String extract_script_blocks blocks len from_utf8_lossy contains","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_html_no_script","kind":"function","line":[280,284],"tokens":"extract_script_blocks source is_empty blocks","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_html_typescript_script","kind":"function","line":[287,292],"tokens":"extract_script_blocks blocks len source lang","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_detect_lang_ts","kind":"function","line":[295,308],"tokens":"detect_script_lang","visibility":"private"}
{"file":"src/parser/sfc.rs","name":"test_detect_lang_default","kind":"function","line":[311,318],"tokens":"detect_script_lang","visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"anyhow::Result","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"tree_sitter::{Parser, Tree}","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"crate::index::format::{ReferenceEntry, SymbolEntry, TextEntry}","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"crate::parser::helpers::*","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"crate::parser::languages::get_language","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"crate::parser::sfc","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"MAX_DEPTH","kind":"constant","line":[10,10],"visibility":"public"}
{"file":"src/parser/treesitter.rs","name":"parse_file","kind":"function","line":[13,106],"tokens":"rust_lang typescript Vec ext javascript python extract_texts_generic source anyhow Parser extract parse_sfc parse_and_extract parser merge_consecutive_texts sfc_ext language markdown cpp texts get_language csharp references cfg go c_lang tree java file_path feature symbols lang ruby","visibility":"public"}
{"file":"src/parser/treesitter.rs","name":"extract_texts_generic","kind":"function","line":[112,158],"tokens":"node_line_range source tree file_path strip_string_quotes stack kind text texts vec node node_text String child cursor root_node raw children is_trivial_text","visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"merge_consecutive_texts","kind":"function","line":[165,190],"tokens":"last entry with_capacity Vec texts merged should_merge","visibility":"private"}
{"file":"src/parser/treesitter.rs","name":"parse_sfc","kind":"function","line":[198,253],"tokens":"extract_script_blocks parse_file Vec sfc all_refs block refs blocks file_path warn extension result all_texts texts source symbols offset all_symbols sym tracing txt lang","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"tree_sitter::{Node, Tree}","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"crate::index::format::{SymbolEntry, TextEntry}","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"crate::parser::helpers::*","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"crate::parser::treesitter::MAX_DEPTH","kind":"import","line":[11,11],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"TS_STOPWORDS","kind":"constant","line":[14,70],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"filter_ts_tokens","kind":"function","line":[73,85],"tokens":"TS_STOPWORDS tok tokens filtered","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract","kind":"function","line":[87,96],"tokens":"root file_path walk_node texts symbols tree source","visibility":"public"}
{"file":"src/parser/typescript.rs","name":"walk_node","kind":"function","line":[98,193],"tokens":"symbols depth cursor file_path walk_node node MAX_DEPTH extract_import extract_namespace extract_enum extract_ts_comment extract_string texts parent_ctx extract_function_decl extract_class extract_variable_decl child source extract_method kind extract_interface extract_type_alias","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_function_decl","kind":"function","line":[197,245],"tokens":"parent_ctx node file_path full_name find_child_by_field name node_text parent is_exported format tokens push_symbol _sig visibility node_line_range body filter_ts_tokens build_function_signature source symbols extract_tokens line kind","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_class","kind":"function","line":[247,307],"tokens":"line full_name parent_ctx walk_node texts _sig build_class_signature node_text file_path visibility find_child_by_field format body push_symbol node tokens symbols cursor name depth is_exported source child parent filter_ts_tokens is_abstract node_line_range extract_tokens","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_method","kind":"function","line":[309,405],"tokens":"sig_parts node_line_range is_getter Vec node_text tokens node source format params extract_tokens find_child_by_field parent child kind is_async visibility is_static is_setter access_modifier cursor _sig full_name join name String push_symbol symbols file_path filter_ts_tokens line parent_ctx prefix body return_type","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_variable_decl","kind":"function","line":[407,486],"tokens":"name extract_tokens child format line visibility filter_ts_tokens node_text node_line_range matches cursor parent full_name name_node push_symbol tokens value_node symbols source is_const is_exported parent_ctx find_child_by_field file_path node is_func kind","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_import","kind":"function","line":[488,570],"tokens":"source_module line named_cursor imp_name clause_cursor alias format child node_text file_path raw clause_child node source name strip_string_quotes symbols find_child_by_field push_symbol spec full node_line_range cursor","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_interface","kind":"function","line":[574,668],"tokens":"_sig symbols texts extract_ts_comment is_exported filter_ts_tokens parent_ctx name format node_text node_line_range find_child_by_field line extends parent body source tokens extract_tokens node file_path member_name member_kind type_params push_symbol child full_name cursor member_line visibility","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_type_alias","kind":"function","line":[670,716],"tokens":"name push_symbol type_params visibility find_child_by_field node_line_range node_text tokens _sig parent_ctx extract_tokens symbols file_path is_exported filter_ts_tokens parent source line full_name format node","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_enum","kind":"function","line":[718,754],"tokens":"source line node symbols node_line_range format node_text parent_ctx visibility full_name name find_child_by_field file_path push_symbol parent is_exported","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_namespace","kind":"function","line":[756,810],"tokens":"find_child_by_field parent name texts node_line_range line depth file_path format symbols cursor source is_exported child full_name push_symbol node node_text visibility parent_ctx body walk_node","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"extract_ts_comment","kind":"function","line":[814,849],"tokens":"String node_line_range parent_ctx text kind node strip_block_comment node_text line from raw source texts is_trivial_text file_path cleaned","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"build_function_signature","kind":"function","line":[851,873],"tokens":"type_params node_text prefix return_type params node format find_child_by_field source is_async","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"build_class_signature","kind":"function","line":[875,896],"tokens":"node_text node format is_abstract find_child_by_field extends type_params prefix source cursor","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"tests","kind":"module","line":[899,1084],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"super::*","kind":"import","line":[900,900],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[901,901],"visibility":"private"}
{"file":"src/parser/typescript.rs","name":"find_sym","kind":"function","line":[903,908],"tokens":"symbols name panic","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_functions","kind":"function","line":[911,928],"tokens":"kind find_sym fetch_fn _texts len greet symbols source _refs parse_file","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_interfaces","kind":"function","line":[931,953],"tokens":"_texts user visibility as_deref priv_iface _refs get_email source parent find_sym symbols kind parse_file","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_type_alias","kind":"function","line":[956,968],"tokens":"_refs symbols result parse_file source kind visibility as_deref id _texts find_sym","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_enum","kind":"function","line":[971,982],"tokens":"as_deref _refs source parse_file status kind find_sym visibility _texts symbols","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_classes","kind":"function","line":[985,1019],"tokens":"_refs do_work find_sym source visibility worker as_deref kind parse_file symbols _texts run base","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_namespace","kind":"function","line":[1022,1034],"tokens":"source _refs utils _texts parent symbols as_deref parse_file find_sym kind visibility helper","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_imports","kind":"function","line":[1037,1055],"tokens":"parse_file source _texts _refs symbols utils component react alias as_deref kind","visibility":"private"}
{"file":"src/parser/typescript.rs","name":"test_ts_visibility","kind":"function","line":[1058,1083],"tokens":"visibility as_deref source symbols _refs _texts parse_file","visibility":"private"}
{"file":"src/server/db.rs","name":"anyhow::{Context, Result}","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/server/db.rs","name":"rusqlite::Connection","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/server/db.rs","name":"crate::index::format::{FileEntry, ReferenceEntry, SymbolEntry, TextEntry}","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/server/db.rs","name":"SearchDb","kind":"struct","line":[8,12],"visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb","kind":"impl","line":[14,1118],"visibility":"private"}
{"file":"src/server/db.rs","name":"SearchDb.new","kind":"method","line":[16,18],"parent":"SearchDb","tokens":"new_internal","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.new_no_fts","kind":"method","line":[22,24],"parent":"SearchDb","tokens":"new_internal","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.new_internal","kind":"method","line":[27,143],"parent":"SearchDb","tokens":"open_in_memory fts_enabled conn Connection","visibility":"private"}
{"file":"src/server/db.rs","name":"SearchDb.load","kind":"method","line":[146,236],"parent":"SearchDb","tokens":"tokens lang files params path kind title text stmt file symbols visibility project description texts line hash lines references caller name alias parent rusqlite","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.search_symbols","kind":"method","line":[244,264],"parent":"SearchDb","tokens":"file query kind limit offset project file_has_glob","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.search_symbols_fts","kind":"method","line":[267,318],"parent":"SearchDb","tokens":"file format fts_parts limit Vec offset query stmt project row results vec kind rows rusqlite fts_query fts5_quote params","visibility":"private"}
{"file":"src/server/db.rs","name":"SearchDb.list_symbols","kind":"method","line":[323,404],"parent":"SearchDb","tokens":"file where_clause String stmt params_from_iter params join offset format param_refs rusqlite sql rows Box results Vec project conditions row limit query kind","visibility":"private"}
{"file":"src/server/db.rs","name":"SearchDb.search_text","kind":"method","line":[407,451],"parent":"SearchDb","tokens":"fts_parts fts5_quote row fts_query rows kind vec results project stmt query Vec format file","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.search_files","kind":"method","line":[454,501],"parent":"SearchDb","tokens":"lang stmt Vec rows results format fts_query query fts_parts vec project row fts5_quote","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_file_symbols","kind":"method","line":[504,531],"parent":"SearchDb","tokens":"rows stmt file row results Vec","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_symbol_children","kind":"method","line":[534,561],"parent":"SearchDb","tokens":"Vec rusqlite rows row parent stmt params results file","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_imports","kind":"method","line":[564,591],"parent":"SearchDb","tokens":"file Vec row rows stmt results","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_callers","kind":"method","line":[595,640],"parent":"SearchDb","tokens":"kind format stmt params params_from_iter results rows row Vec vec param_refs to_string rusqlite sql project join conditions name Box","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_callees","kind":"method","line":[644,689],"parent":"SearchDb","tokens":"params sql param_refs params_from_iter row format rows results join to_string rusqlite stmt kind conditions project vec caller Vec Box","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.search_references","kind":"method","line":[692,738],"parent":"SearchDb","tokens":"limit fts5_quote project results Vec vec offset fts_parts rusqlite format rows kind stmt row query fts_query params file","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.get_file_hash","kind":"method","line":[741,751],"parent":"SearchDb","tokens":"rusqlite row path params project rows stmt","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.remove_file","kind":"method","line":[755,777],"parent":"SearchDb","tokens":"params project path rusqlite","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.upsert_file","kind":"method","line":[782,866],"parent":"SearchDb","tokens":"symbols params hash stmt path visibility texts references line rusqlite description project caller parent tokens lang kind text name alias title file lines","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.rebuild_fts","kind":"method","line":[871,884],"parent":"SearchDb","tokens":"","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.export_all","kind":"method","line":[888,992],"parent":"SearchDb","tokens":"texts row symbols Vec stmt rows references files","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.export_for_project","kind":"method","line":[996,1104],"parent":"SearchDb","tokens":"stmt rows symbols Vec texts row files project references","visibility":"public"}
{"file":"src/server/db.rs","name":"SearchDb.list_projects","kind":"method","line":[1107,1117],"parent":"SearchDb","tokens":"rows results row Vec stmt","visibility":"public"}
{"file":"src/server/db.rs","name":"fts5_quote","kind":"function","line":[1122,1124],"tokens":"format replace","visibility":"private"}
{"file":"src/server/mcp.rs","name":"std::sync::{Arc, Mutex}","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"anyhow::Result","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"rmcp::{\n    ErrorData as McpError, ServerHandler, ServiceExt,\n    handler::server::{tool::ToolRouter, wrapper::Parameters},\n    model::{CallToolResult, Content, ServerCapabilities, ServerInfo},\n    schemars,\n    schemars::JsonSchema,\n    tool, tool_handler, tool_router,\n    transport::stdio,\n}","kind":"import","line":[4,12],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"serde::{Deserialize, Serialize}","kind":"import","line":[13,13],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"super::db::SearchDb","kind":"import","line":[15,15],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"super::snippet::SnippetExtractor","kind":"import","line":[16,16],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"crate::index::format::SymbolEntry","kind":"import","line":[17,17],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"crate::mount::MountTable","kind":"import","line":[18,18],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"crate::utils::manifest::{self, ProjectMetadata}","kind":"import","line":[19,19],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"SearchSymbolsParams","kind":"struct","line":[23,38],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"SearchFilesParams","kind":"struct","line":[41,48],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"SearchTextsParams","kind":"struct","line":[51,60],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"GetFileSymbolsParams","kind":"struct","line":[63,68],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"GetSymbolChildrenParams","kind":"struct","line":[71,78],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"GetImportsParams","kind":"struct","line":[81,84],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"GetCallersParams","kind":"struct","line":[87,94],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"GetCalleesParams","kind":"struct","line":[97,104],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"SearchReferencesParams","kind":"struct","line":[107,120],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"SymbolWithSnippet","kind":"struct","line":[124,129],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer","kind":"struct","line":[136,141],"visibility":"public"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer","kind":"impl","line":[143,187],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.new","kind":"method","line":[144,157],"parent":"CodeIndexServer","tokens":"mount_table tool_router db workspace_root SnippetExtractor","visibility":"public"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.enrich_with_snippets","kind":"method","line":[160,186],"parent":"CodeIndexServer","tokens":"snippet_lines snippet symbols symbol","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer","kind":"impl","line":[190,492],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.search_symbols","kind":"method","line":[195,225],"parent":"CodeIndexServer","tokens":"json format snippet_lines success enriched McpError limit CallToolResult serde_json vec params to_string_pretty offset internal_error Content text results db","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.search_files","kind":"method","line":[229,249],"parent":"CodeIndexServer","tokens":"McpError params vec success internal_error Content db text json CallToolResult results to_string_pretty format serde_json","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.search_texts","kind":"method","line":[255,276],"parent":"CodeIndexServer","tokens":"format internal_error results db to_string_pretty vec CallToolResult params json serde_json success text Content McpError","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_file_symbols","kind":"method","line":[282,303],"parent":"CodeIndexServer","tokens":"CallToolResult serde_json results success db snippet_lines McpError internal_error params enriched vec text Content json format to_string_pretty","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_symbol_children","kind":"method","line":[309,332],"parent":"CodeIndexServer","tokens":"json snippet_lines to_string_pretty Content internal_error results CallToolResult enriched serde_json vec text success params McpError db format","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_imports","kind":"method","line":[336,352],"parent":"CodeIndexServer","tokens":"format success vec to_string_pretty db CallToolResult McpError json Content results text internal_error serde_json params","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.list_projects","kind":"method","line":[358,406],"parent":"CodeIndexServer","tokens":"project_paths serde_json db success internal_error to_string_pretty CallToolResult project_root json Vec path extract_metadata Content text metadata results manifest name vec format mt McpError","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_callers","kind":"method","line":[412,432],"parent":"CodeIndexServer","tokens":"serde_json json params McpError text db results Content CallToolResult format vec success internal_error to_string_pretty","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_callees","kind":"method","line":[438,458],"parent":"CodeIndexServer","tokens":"internal_error results json serde_json success format vec text McpError db params CallToolResult to_string_pretty Content","visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.search_references","kind":"method","line":[464,491],"parent":"CodeIndexServer","tokens":"McpError format text vec internal_error success results to_string_pretty CallToolResult Content limit serde_json json params db offset","visibility":"private"}
{"file":"src/server/mcp.rs","name":"ProjectInfo","kind":"struct","line":[496,502],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer","kind":"trait_impl","line":[505,521],"visibility":"private"}
{"file":"src/server/mcp.rs","name":"CodeIndexServer.get_info","kind":"method","line":[506,520],"parent":"CodeIndexServer","tokens":"builder ServerCapabilities","visibility":"private"}
{"file":"src/server/mcp.rs","name":"start_server","kind":"function","line":[524,538],"tokens":"mount_table db server stdio anyhow CodeIndexServer service","visibility":"public"}
{"file":"src/server/mod.rs","name":"db","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/server/mod.rs","name":"mcp","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/server/mod.rs","name":"snippet","kind":"module","line":[3,3],"visibility":"public"}
{"file":"src/server/snippet.rs","name":"std::fs","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"std::path::PathBuf","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor","kind":"struct","line":[9,11],"visibility":"public"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor","kind":"impl","line":[13,103],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor.new","kind":"method","line":[15,17],"parent":"SnippetExtractor","tokens":"workspace_root","visibility":"public"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor.resolve_file_path","kind":"method","line":[20,26],"parent":"SnippetExtractor","tokens":"file project","visibility":"private"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor.extract_snippet","kind":"method","line":[42,97],"parent":"SnippetExtractor","tokens":"truncated non_blank_lines fs file read_to_string line_end snippet_lines project file_path lines line final_lines result end_idx range_lines limit content line_start all_lines start_idx","visibility":"public"}
{"file":"src/server/snippet.rs","name":"SnippetExtractor.file_exists","kind":"method","line":[100,102],"parent":"SnippetExtractor","tokens":"project file","visibility":"public"}
{"file":"src/server/snippet.rs","name":"tests","kind":"module","line":[106,214],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"super::*","kind":"import","line":[107,107],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"std::fs","kind":"import","line":[108,108],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"tempfile::TempDir","kind":"import","line":[109,109],"visibility":"private"}
{"file":"src/server/snippet.rs","name":"create_test_file","kind":"function","line":[111,115],"tokens":"name content write file_path dir fs","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_basic","kind":"function","line":[118,133],"tokens":"extractor TempDir SnippetExtractor create_test_file snippet to_string","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_limit_lines","kind":"function","line":[136,144],"tokens":"snippet to_string create_test_file TempDir extractor SnippetExtractor","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_skip_blank_lines","kind":"function","line":[147,155],"tokens":"snippet to_string extractor TempDir SnippetExtractor create_test_file","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_disabled","kind":"function","line":[158,166],"tokens":"extractor create_test_file SnippetExtractor snippet TempDir","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_file_not_found","kind":"function","line":[169,175],"tokens":"snippet TempDir extractor SnippetExtractor","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_extract_snippet_with_project","kind":"function","line":[178,188],"tokens":"extractor SnippetExtractor write TempDir to_string fs create_dir project_dir snippet","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_file_exists","kind":"function","line":[191,199],"tokens":"file_exists extractor SnippetExtractor TempDir create_test_file","visibility":"private"}
{"file":"src/server/snippet.rs","name":"test_file_exists_with_project","kind":"function","line":[202,213],"tokens":"file_exists fs create_dir SnippetExtractor TempDir project_dir write extractor","visibility":"private"}
{"file":"src/utils/hasher.rs","name":"std::path::Path","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/utils/hasher.rs","name":"anyhow::Result","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/utils/hasher.rs","name":"hash_file","kind":"function","line":[7,10],"tokens":"read hash_bytes path contents fs","visibility":"public"}
{"file":"src/utils/hasher.rs","name":"hash_bytes","kind":"function","line":[14,25],"tokens":"hash content bytes with_capacity blake3 String fmt Write write","visibility":"public"}
{"file":"src/utils/hasher.rs","name":"std::fmt::Write","kind":"import","line":[21,21],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"std::fs","kind":"import","line":[6,6],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"std::path::Path","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"serde::Serialize","kind":"import","line":[9,9],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"ProjectMetadata","kind":"struct","line":[13,20],"visibility":"public"}
{"file":"src/utils/manifest.rs","name":"extract_metadata","kind":"function","line":[26,104],"tokens":"try_pom_xml project_root gemspec_file name description Vec manifest_files try_gemspec try_pyproject_toml try_package_json try_cargo_toml try_go_mod","visibility":"public"}
{"file":"src/utils/manifest.rs","name":"try_package_json","kind":"function","line":[108,137],"tokens":"from from_str path read_to_string json name Value description root String fs content Bool serde_json","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"try_cargo_toml","kind":"function","line":[141,168],"tokens":"package root content path fs String name from toml from_str toml_value description read_to_string","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"try_pyproject_toml","kind":"function","line":[171,200],"tokens":"toml root from_str poetry fs content String path from project read_to_string description tool name toml_value","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"try_go_mod","kind":"function","line":[204,225],"tokens":"line root path fs content module_path read_to_string","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"try_pom_xml","kind":"function","line":[229,241],"tokens":"name root description content fs path read_to_string extract_xml_element","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"extract_xml_element","kind":"function","line":[245,259],"tokens":"open_tag content tag close_tag format start end value","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"try_gemspec","kind":"function","line":[263,281],"tokens":"read_dir fs content extract_ruby_string_assignment filename ext read_to_string description name root gemspec_file","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"extract_ruby_string_assignment","kind":"function","line":[284,304],"tokens":"extract_quoted_string field_pattern rest pos field value format line content","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"extract_quoted_string","kind":"function","line":[307,318],"tokens":"rest end","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"tests","kind":"module","line":[321,603],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"super::*","kind":"import","line":[322,322],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"tempfile::TempDir","kind":"import","line":[323,323],"visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_package_json_parsing","kind":"function","line":[326,338],"tokens":"name into description to_string write fs extract_metadata manifest_files meta TempDir contains","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_cargo_toml_parsing","kind":"function","line":[341,358],"tokens":"fs description to_string TempDir write contains extract_metadata name meta manifest_files into","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_pyproject_toml_pep621","kind":"function","line":[361,378],"tokens":"meta name to_string into contains TempDir extract_metadata fs description write manifest_files","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_pyproject_toml_poetry","kind":"function","line":[381,397],"tokens":"fs name meta description extract_metadata into write TempDir","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_go_mod_parsing","kind":"function","line":[400,412],"tokens":"contains manifest_files write extract_metadata meta fs name to_string TempDir description","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_fallback_to_directory_name","kind":"function","line":[415,424],"tokens":"name extract_metadata is_empty manifest_files TempDir meta description","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_multiple_manifests","kind":"function","line":[427,451],"tokens":"contains into name write description TempDir fs meta extract_metadata to_string manifest_files","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_first_description_wins","kind":"function","line":[454,472],"tokens":"name description extract_metadata write TempDir into fs meta","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_pom_xml_parsing","kind":"function","line":[475,496],"tokens":"contains to_string into meta write extract_metadata name TempDir description manifest_files fs","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_pom_xml_without_name","kind":"function","line":[499,518],"tokens":"write description extract_metadata to_string contains name meta TempDir manifest_files fs","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_gemspec_parsing","kind":"function","line":[521,541],"tokens":"TempDir to_string contains into write meta fs name description manifest_files extract_metadata","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_gemspec_single_quotes","kind":"function","line":[544,562],"tokens":"name write TempDir extract_metadata into to_string manifest_files meta description contains fs","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_cargo_workspace_toml","kind":"function","line":[565,584],"tokens":"write extract_metadata workspace_dir TempDir name create_dir contains description manifest_files to_string fs meta","visibility":"private"}
{"file":"src/utils/manifest.rs","name":"test_package_json_monorepo","kind":"function","line":[587,602],"tokens":"extract_metadata fs name description manifest_files to_string meta TempDir create_dir write monorepo_dir contains","visibility":"private"}
{"file":"src/utils/mod.rs","name":"hasher","kind":"module","line":[1,1],"visibility":"public"}
{"file":"src/utils/mod.rs","name":"manifest","kind":"module","line":[2,2],"visibility":"public"}
{"file":"src/watcher/handler.rs","name":"std::collections::{BTreeSet, HashMap}","kind":"import","line":[1,1],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"std::path::{Path, PathBuf}","kind":"import","line":[2,2],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"std::sync::mpsc::{Receiver, Sender}","kind":"import","line":[3,3],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"std::sync::{Arc, Mutex}","kind":"import","line":[4,4],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"std::time::{Duration, Instant}","kind":"import","line":[5,5],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"anyhow::{Context, Result}","kind":"import","line":[7,7],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"notify::event::EventKind","kind":"import","line":[8,8],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::index::format::{FileEntry, IndexManifest}","kind":"import","line":[10,10],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::index::reader::read_index","kind":"import","line":[11,11],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::index::writer::write_index","kind":"import","line":[12,12],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::mount::{is_removal_event, FsEvent, MountMode, MountTable, MountedEvent}","kind":"import","line":[13,13],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::parser::languages::detect_language","kind":"import","line":[14,14],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::parser::metadata::extract_file_metadata","kind":"import","line":[15,15],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::parser::treesitter::parse_file","kind":"import","line":[16,16],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::server::db::SearchDb","kind":"import","line":[17,17],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"crate::utils::hasher::hash_bytes","kind":"import","line":[18,18],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"DEBOUNCE_DELAY","kind":"constant","line":[20,20],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"FLUSH_DELAY","kind":"constant","line":[21,21],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"run_event_loop","kind":"function","line":[28,98],"tokens":"mount_table from_millis mount_root mt HashMap pending error ready mpsc Instant total_watched time FLUSH_DELAY anyhow sync Disconnected RecvTimeoutError DEBOUNCE_DELAY now flush_dirty_mounts warn Duration last_flush Timeout kind db tracing info path event handle_events","visibility":"public"}
{"file":"src/watcher/handler.rs","name":"on_project_discovery","kind":"function","line":[113,211],"tokens":"load_from_cache project_root idx_files db_guard read_index idx_texts idx_refs name len index_dir anyhow tracing warn canonical manifest MountMode mode_str mount info mount_table project_name mt is_read_only db walk_project idx_symbols format ReadOnly project_str","visibility":"public"}
{"file":"src/watcher/handler.rs","name":"walk_project","kind":"function","line":[219,315],"tokens":"anyhow project_str mount FsEvent Vec info path root mount_table file_count project_root on_project_discovery files event abs_path tracing process_file_change db mt db_guard warn subprojects load_from_cache display len rel_path","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"handle_events","kind":"function","line":[323,436],"tokens":"tracing warn mount_table anyhow kind mount process_file_change is_removal_event db_guard path FsEvent db on_project_discovery mt mount_root Vec canonical root event events mount_events debug len abs_path project_str","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"process_file_change","kind":"function","line":[439,523],"tokens":"content parse_file metadata lang_name hash_bytes texts fs trace ext Vec description warn file_entry db_guard file_symbols line_count detect_language read info project symbols lang references db String format count_lines rel_path title file_refs extract_file_metadata new_hash old_hash file_texts abs_path tracing from anyhow","visibility":"public"}
{"file":"src/watcher/handler.rs","name":"flush_dirty_mounts","kind":"function","line":[526,553],"tokens":"mount_table flush_mount_to_disk display mt mount db ReadWrite dirty_mounts root error MountMode anyhow tracing","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"flush_mount_to_disk","kind":"function","line":[556,625],"tokens":"symbols display String write_index db_guard debug name manifest languages BTreeSet anyhow refs tracing mount_root len lang mount_table files output_dir project_str texts db","visibility":"public"}
{"file":"src/watcher/handler.rs","name":"flush_index_to_disk","kind":"function","line":[629,670],"tokens":"symbols files write_index BTreeSet name db manifest texts output_dir root tracing refs db_guard anyhow len debug lang languages","visibility":"public"}
{"file":"src/watcher/handler.rs","name":"count_lines","kind":"function","line":[673,684],"tokens":"count content","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"tests","kind":"module","line":[687,1001],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"super::*","kind":"import","line":[688,688],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"std::fs","kind":"import","line":[689,689],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"tempfile::TempDir","kind":"import","line":[690,690],"visibility":"private"}
{"file":"src/watcher/handler.rs","name":"create_git_marker","kind":"function","line":[693,695],"tokens":"create_dir_all path fs","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"create_source_file","kind":"function","line":[698,703],"tokens":"create_dir_all content write path fs parent","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_single_project_indexing","kind":"function","line":[706,753],"tokens":"create_source_file Mutex TempDir projects db_guard MountTable create_git_marker any Arc kind on_project_discovery len mount_table db symbols SearchDb iter name root","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_subproject_discovery","kind":"function","line":[756,796],"tokens":"root create_git_marker SearchDb db TempDir Arc mount_table projects contains to_string project MountTable len symbols create_source_file subproject on_project_discovery Mutex db_guard","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_nested_subprojects","kind":"function","line":[799,851],"tokens":"on_project_discovery create_source_file db_guard Mutex project core_syms nested_syms SearchDb MountTable len root create_git_marker TempDir nested projects Arc mount_table root_syms db","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_files_not_duplicated_across_projects","kind":"function","line":[854,892],"tokens":"create_git_marker TempDir all_symbols create_source_file MountTable sub db_guard root_fn_count mount_table db sub_fn_count sub_fn root_fn project SearchDb on_project_discovery Arc Mutex root","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_mount_table_tracks_all_projects","kind":"function","line":[895,927],"tokens":"root create_source_file on_project_discovery TempDir Arc len is_mounted db MountTable Mutex mt mount_table create_git_marker SearchDb lib_a lib_b mounts","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_project_filter_in_search","kind":"function","line":[930,969],"tokens":"TempDir project SearchDb create_source_file len mount_table create_git_marker Arc root db sub_helpers on_project_discovery Mutex sub_only MountTable sub all db_guard root_helpers","visibility":"private"}
{"file":"src/watcher/handler.rs","name":"test_relative_project_paths","kind":"function","line":[972,1000],"tokens":"on_project_discovery db SearchDb TempDir db_guard mount_table projects deep MountTable root create_git_marker Arc to_string create_source_file Mutex symbols contains project","visibility":"private"}
{"file":"src/watcher/mod.rs","name":"handler","kind":"module","line":[1,1],"visibility":"public"}