[{"data":1,"prerenderedAt":2397},["ShallowReactive",2],{"navigation_docs":3,"trending-day-2026-10-16":249,"page-views-\u002Ftrending\u002F2026-10-16":2394,"trending-week-null":2396},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"date":250,"generatedAt":251,"source":252,"jscpdVersion":253,"summary":254,"repos":317},"2026-10-16","2026-10-16T05:28:44.455Z","github-trending-daily","5.4.1",{"repos":255,"sources":256,"lines":257,"tokens":258,"clones":259,"duplicatedLines":260,"duplicatedTokens":261,"percentage":262,"percentageTokens":263,"avgPercentage":264,"medianPercentage":265,"mostDuplicated":266,"cleanest":270,"mostClones":274,"codeRepos":255,"codeSources":278,"codeLines":279,"codeClones":280,"codeDuplicatedLines":281,"codePercentage":282,"codeMedianPercentage":283,"codeMostDuplicated":284,"codeCleanest":287,"generatedFiles":290,"avgHealth":291,"healthiest":292,"leastHealthy":295,"languages":298},4,7828,2362605,16910278,19644,308812,2642290,13.07,15.63,7.71,7.33,{"name":267,"clones":268,"percentage":269},"xerj-org\u002Fxerj",6781,15.18,{"name":271,"clones":272,"percentage":273},"LibreSpark\u002FLibreTV",24,1.02,{"name":275,"clones":276,"percentage":277},"morluto\u002Frea",12705,12.71,2673,872219,2057,26883,3.08,2.13,{"name":267,"clones":285,"percentage":286},1404,4.7,{"name":271,"clones":288,"percentage":289},16,0.93,6,58.65,{"name":271,"score":293,"grade":294},75.9,"B",{"name":267,"score":296,"grade":297},40.2,"D",[299,306,311],{"language":300,"repos":301,"clones":302,"lines":303,"duplicatedLines":304,"percentage":305},"TypeScript",2,12729,1280579,160223,12.51,{"language":307,"repos":308,"clones":268,"lines":309,"duplicatedLines":310,"percentage":269},"Rust",1,964097,146303,{"language":312,"repos":308,"clones":313,"lines":314,"duplicatedLines":315,"percentage":316},"Python",134,117929,2286,1.94,[318,1101,1518,2105],{"name":275,"url":319,"description":320,"language":300,"stars":321,"starsToday":322,"defaultBranch":323,"headSha":324,"durationMs":325,"total":326,"formats":333,"topClones":399,"code":731,"health":968,"complexity":1004,"deadCode":1058},"https:\u002F\u002Fgithub.com\u002Fmorluto\u002Frea","Reverse engineer anything with agents, from app behavior down to native binaries.",275796,32314,"main","2c7583599b9ac1c847bd77b1940930fd8d4594c7",7522,{"sources":327,"lines":328,"tokens":329,"clones":276,"duplicatedLines":330,"duplicatedTokens":331,"percentage":277,"percentageTokens":332},3986,1258334,7321523,159996,1103728,15.08,[334,341,348,355,362,369,376,381,387,393],{"format":335,"sources":336,"lines":337,"clones":338,"duplicatedLines":339,"percentage":340},"gettext",19,311427,8711,104200,33.46,{"format":342,"sources":343,"lines":344,"clones":345,"duplicatedLines":346,"percentage":347},"typescript",3003,731552,2540,28109,3.84,{"format":349,"sources":350,"lines":351,"clones":352,"duplicatedLines":353,"percentage":354},"txt",37,19022,519,10795,56.75,{"format":356,"sources":357,"lines":358,"clones":359,"duplicatedLines":360,"percentage":361},"json",42,27538,342,8590,31.19,{"format":363,"sources":364,"lines":365,"clones":366,"duplicatedLines":367,"percentage":368},"javascript",408,82209,252,3087,3.76,{"format":370,"sources":371,"lines":372,"clones":373,"duplicatedLines":374,"percentage":375},"markup",32,14708,194,3704,25.18,{"format":377,"sources":357,"lines":374,"clones":378,"duplicatedLines":379,"percentage":380},"yaml",57,635,17.14,{"format":382,"sources":383,"lines":384,"clones":350,"duplicatedLines":385,"percentage":386},"markdown",170,37463,402,1.07,{"format":388,"sources":389,"lines":390,"clones":336,"duplicatedLines":391,"percentage":392},"python",55,13636,200,1.47,{"format":394,"sources":395,"lines":396,"clones":336,"duplicatedLines":397,"percentage":398},"bash",95,1856,152,8.19,[400,447,496,541,564,594,625,655,687,714],{"format":335,"lines":401,"tokens":402,"copies":403,"first":404,"others":408,"excerpt":433,"excerptSecond":444},9,90,321,{"name":405,"start":406,"end":407},"website\u002Flocales\u002Far\u002Fmessages.po",2090,2098,[409,412,415,418,421,424,427,430],{"name":405,"start":410,"end":411},2564,2572,{"name":405,"start":413,"end":414},2904,2912,{"name":405,"start":416,"end":417},3308,3316,{"name":405,"start":419,"end":420},4005,4013,{"name":405,"start":422,"end":423},4604,4612,{"name":405,"start":425,"end":426},5173,5181,{"name":405,"start":428,"end":429},5515,5523,{"name":405,"start":431,"end":432},5677,5685,{"lines":434,"total":401},[435,436,437,438,439,440,441,442,443],"#. {ph0}: \u003Cspan class=\"terminal-dots\" aria-hidden=\"true\" >","#. {ph1}: \u003Ci>","#. {ph2}: \u003C\u002Fi>","#. {ph3}: \u003Ci>","#. {ph4}: \u003C\u002Fi>","#. {ph5}: \u003Ci>","#. {ph6}: \u003C\u002Fi>","#. {ph7}: \u003C\u002Fspan >","#: website\u002Fpublic\u002Fexamples\u002Fdino-lab\u002Findex.html:421",{"lines":445,"total":401},[435,436,437,438,439,440,441,442,446],"#: website\u002Fpublic\u002Ffaq\u002Findex.html:415",{"format":335,"lines":448,"tokens":449,"copies":450,"first":451,"others":454,"excerpt":487},352,1323,18,{"name":405,"start":452,"end":453},15966,16317,[455,459,463,467,471,475,479,483],{"name":456,"start":457,"end":458},"website\u002Flocales\u002Fde\u002Fmessages.po",16648,16999,{"name":460,"start":461,"end":462},"website\u002Flocales\u002Fes\u002Fmessages.po",16518,16869,{"name":464,"start":465,"end":466},"website\u002Flocales\u002Ffa\u002Fmessages.po",16137,16488,{"name":468,"start":469,"end":470},"website\u002Flocales\u002Ffr\u002Fmessages.po",16582,16933,{"name":472,"start":473,"end":474},"website\u002Flocales\u002Fid\u002Fmessages.po",16392,16743,{"name":476,"start":477,"end":478},"website\u002Flocales\u002Fit\u002Fmessages.po",16465,16816,{"name":480,"start":481,"end":482},"website\u002Flocales\u002Fja\u002Fmessages.po",15186,15537,{"name":484,"start":485,"end":486},"website\u002Flocales\u002Fko\u002Fmessages.po",15220,15571,{"lines":488,"total":448},[489,490,491,492,493,494,495,489,490,491],"#, python-brace-format","#~ msgctxt \"shared\"","#~ msgid \"\"","#~ \"{ph0}Showcases{ph1} {ph2}Blog{ph3} {ph4}Get started{ph5} {ph6}Guides{ph7} \"","#~ \"{ph8}FAQ{ph9}\"","#~ msgstr \"\"","",{"format":335,"lines":497,"tokens":498,"copies":499,"first":500,"others":503,"excerpt":528,"excerptSecond":537},7,80,161,{"name":405,"start":501,"end":502},6275,6281,[504,507,510,513,516,519,522,525],{"name":405,"start":505,"end":506},6293,6299,{"name":405,"start":508,"end":509},6311,6317,{"name":405,"start":511,"end":512},7022,7028,{"name":405,"start":514,"end":515},7039,7045,{"name":405,"start":517,"end":518},7056,7062,{"name":405,"start":520,"end":521},9336,9342,{"name":405,"start":523,"end":524},9352,9358,{"name":405,"start":526,"end":527},9369,9375,{"lines":529,"total":497},[530,531,532,533,534,535,536],"#. {ph0}: \u003Cspan class=\"flow-label\">","#. {ph1}: \u003C\u002Fspan >","#. {ph2}: \u003Cstrong class=\"flow-node\" >","#. {ph3}: \u003C\u002Fstrong >","#. {ph4}: \u003Cspan class=\"flow-note\" >","#. {ph5}: \u003C\u002Fspan >","#: website\u002Fpublic\u002Fshowcase\u002Faegis\u002Findex.html:219",{"lines":538,"total":497},[530,531,539,533,534,535,540],"#. {ph2}: \u003Cstrong class=\"flow-node\">","#: website\u002Fpublic\u002Fshowcase\u002Faegis\u002Findex.html:228",{"format":335,"lines":350,"tokens":542,"copies":336,"first":543,"others":546},557,{"name":405,"start":544,"end":545},104,140,[547,550,554,555,558,559,560,561],{"name":456,"start":548,"end":549},105,141,{"name":551,"start":552,"end":553},"website\u002Flocales\u002Fel\u002Fmessages.po",307,343,{"name":460,"start":548,"end":549},{"name":464,"start":556,"end":557},103,139,{"name":468,"start":548,"end":549},{"name":472,"start":548,"end":549},{"name":476,"start":544,"end":545},{"name":480,"start":562,"end":563},101,137,{"format":335,"lines":565,"tokens":542,"copies":336,"first":566,"others":569},36,{"name":405,"start":567,"end":568},14731,14766,[570,573,576,579,582,585,588,591],{"name":456,"start":571,"end":572},15355,15390,{"name":551,"start":574,"end":575},15309,15344,{"name":460,"start":577,"end":578},15238,15273,{"name":464,"start":580,"end":581},14885,14920,{"name":468,"start":583,"end":584},15286,15321,{"name":472,"start":586,"end":587},15119,15154,{"name":476,"start":589,"end":590},15183,15218,{"name":480,"start":592,"end":593},14017,14052,{"format":349,"lines":595,"tokens":596,"copies":597,"first":598,"others":601},14,191,50,{"name":599,"start":600,"end":450},"licenses\u002FMIT-template.txt",5,[602,605,608,611,613,616,619,622],{"name":603,"start":290,"end":604},"licenses\u002FNode-22.19.0-LICENSE.txt",22,{"name":603,"start":606,"end":607},60,76,{"name":603,"start":609,"end":610},114,118,{"name":603,"start":557,"end":612},155,{"name":603,"start":614,"end":615},808,824,{"name":603,"start":617,"end":618},969,986,{"name":603,"start":620,"end":621},993,997,{"name":603,"start":623,"end":624},1034,1050,{"format":335,"lines":497,"tokens":498,"copies":626,"first":627,"others":630},110,{"name":405,"start":628,"end":629},3899,3905,[631,634,637,640,643,646,649,652],{"name":405,"start":632,"end":633},3915,3921,{"name":405,"start":635,"end":636},5042,5048,{"name":405,"start":638,"end":639},5806,5812,{"name":405,"start":641,"end":642},5822,5828,{"name":405,"start":644,"end":645},5839,5845,{"name":405,"start":647,"end":648},6025,6031,{"name":456,"start":650,"end":651},4082,4088,{"name":456,"start":653,"end":654},5251,5257,{"format":335,"lines":656,"tokens":657,"copies":595,"first":658,"others":661},38,530,{"name":405,"start":659,"end":660},3220,3257,[662,665,668,671,674,677,680,683],{"name":456,"start":663,"end":664},3357,3394,{"name":551,"start":666,"end":667},5156,5193,{"name":464,"start":669,"end":670},3240,3277,{"name":468,"start":672,"end":673},3339,3376,{"name":476,"start":675,"end":676},3324,3361,{"name":480,"start":678,"end":679},3062,3099,{"name":484,"start":681,"end":682},3061,3098,{"name":684,"start":685,"end":686},"website\u002Flocales\u002Fru\u002Fmessages.po",3323,3360,{"format":370,"lines":688,"tokens":689,"copies":450,"first":690,"others":694},75,392,{"name":691,"start":692,"end":693},"website\u002Fpublic\u002Fblog\u002Findex.html",123,197,[695,698,700,703,706,708,710,712],{"name":696,"start":692,"end":697},"website\u002Fpublic\u002Fblog\u002Freverse-engineering-models\u002Findex.html",198,{"name":699,"start":692,"end":697},"website\u002Fpublic\u002Fblog\u002Ftouhou-reconstruction\u002Findex.html",{"name":701,"start":702,"end":697},"website\u002Fpublic\u002Fcontributors\u002Findex.html",124,{"name":704,"start":702,"end":705},"website\u002Fpublic\u002Fexamples\u002Fdino-lab\u002Findex.html",199,{"name":707,"start":692,"end":693},"website\u002Fpublic\u002Ffaq\u002Findex.html",{"name":709,"start":692,"end":697},"website\u002Fpublic\u002Ffirst-investigation\u002Findex.html",{"name":711,"start":692,"end":693},"website\u002Fpublic\u002Fget-started\u002Findex.html",{"name":713,"start":692,"end":697},"website\u002Fpublic\u002Fguides\u002Fbrowser\u002Findex.html",{"format":349,"lines":715,"tokens":716,"copies":255,"first":717,"others":721},224,2076,{"name":718,"start":719,"end":720},"licenses\u002Fnpm-runtime-notices.txt",902,1125,[722,725,728],{"name":718,"start":723,"end":724},1128,1351,{"name":718,"start":726,"end":727},1354,1577,{"name":718,"start":729,"end":730},4228,4451,{"sources":732,"lines":733,"tokens":734,"clones":735,"duplicatedLines":736,"duplicatedTokens":737,"percentage":738,"percentageTokens":739,"formats":740,"topClones":783,"generated":965},1877,416543,2343247,580,7049,41714,1.69,1.78,[741,747,753,758,764,768,773,777,780],{"format":342,"sources":742,"lines":743,"clones":744,"duplicatedLines":745,"percentage":746},1474,322648,330,4023,1.25,{"format":363,"sources":748,"lines":749,"clones":750,"duplicatedLines":751,"percentage":752},338,74870,232,2844,3.8,{"format":388,"sources":754,"lines":755,"clones":756,"duplicatedLines":702,"percentage":757},30,9357,10,1.33,{"format":759,"sources":760,"lines":761,"clones":255,"duplicatedLines":762,"percentage":763},"cpp",3,1485,27,1.82,{"format":765,"sources":595,"lines":509,"clones":760,"duplicatedLines":766,"percentage":767},"java",23,0.36,{"format":769,"sources":255,"lines":770,"clones":308,"duplicatedLines":771,"percentage":772},"swift",572,8,1.4,{"format":394,"sources":774,"lines":775,"clones":776,"duplicatedLines":776,"percentage":776},12,977,0,{"format":778,"sources":308,"lines":779,"clones":776,"duplicatedLines":776,"percentage":776},"perl",168,{"format":781,"sources":308,"lines":782,"clones":776,"duplicatedLines":776,"percentage":776},"cpp-header",149,[784,819,846,871,889,905,921,936,945,956],{"format":342,"lines":450,"tokens":785,"copies":290,"first":786,"others":789,"excerpt":808},89,{"name":787,"start":788,"end":688},"src\u002Fapplication\u002FbinaryDiagnostics\u002FBinaryLayoutService.ts",58,[790,794,797,801,805],{"name":791,"start":792,"end":793},"src\u002Fapplication\u002Felectron\u002FElectronFuseService.ts",34,51,{"name":795,"start":796,"end":378},"src\u002Fapplication\u002Fevm\u002FEvmInterfaceService.ts",40,{"name":798,"start":799,"end":800},"src\u002Fapplication\u002Fgo\u002FGoBinaryService.ts",49,66,{"name":802,"start":803,"end":804},"src\u002Fapplication\u002Frust\u002FRustBinaryService.ts",46,63,{"name":806,"start":688,"end":807},"src\u002Fapplication\u002Fsqlite\u002FSqliteDatabaseService.ts",92,{"lines":809,"total":450},[810,811,812,813,814,815,816,817,812,818],"const input = inspectBinaryLayoutInputSchema.safeParse(rawInput);","if (!input.success)","  return err(","    analysisInputErrorFromIssues(OPERATION, input.error.issues, rawInput, {","      cause: input.error,","    }),","  );","if (!isAbsolute(input.data.path))","    new AnalysisInputError(OPERATION, undefined, [",{"format":363,"lines":371,"tokens":820,"copies":760,"first":821,"others":825,"excerpt":834},214,{"name":822,"start":823,"end":824},"scripts\u002Fverify-claude-client.mjs",208,239,[826,830],{"name":827,"start":828,"end":829},"scripts\u002Fverify-copilot-client.mjs",173,204,{"name":831,"start":832,"end":833},"scripts\u002Fverify-gemini-client.mjs",305,336,{"lines":835,"total":371},[836,837,838,839,840,841,842,843,844,845],");","if (observed) {","  const evidence = toolContract(","    \"analyze_javascript_application\",","  ).outputSchema.parse(observed);","  assert.equal(evidence.subject.local_path, target);","  const shape = evidence.normalized_result.graph.nodes","    .flatMap((n) => n.observations)","    .map((o) => o.properties)","    .find(",{"format":363,"lines":847,"tokens":848,"copies":760,"first":849,"others":852,"excerpt":860},25,205,{"name":822,"start":850,"end":851},266,290,[853,856],{"name":827,"start":854,"end":855},278,303,{"name":857,"start":858,"end":859},"scripts\u002Fverify-opencode-client.mjs",259,282,{"lines":861,"total":847},[862,863,864,865,866,867,816,868,869,870],"  [\"doctor\", \"--client\", \"claude_code\", \"--skill\"],","]) {","  const result = await exec(","    process.execPath,","    [join(runtimeRoot, \"scripts\u002Frea.mjs\"), ...args, \"--json\"],","    { env: environment, cwd: workspace, timeout: 60_000 },","  await writeFile(","    join(lab, `${args[0]}${args.includes(\"--dry-run\") ? \"-plan\" : \"\"}.json`),","    result.stdout,",{"format":342,"lines":872,"tokens":873,"copies":600,"first":874,"others":877},13,73,{"name":791,"start":875,"end":876},41,53,[878,881,884,886],{"name":795,"start":879,"end":880},47,59,{"name":798,"start":882,"end":883},56,68,{"name":802,"start":876,"end":885},65,{"name":806,"start":887,"end":888},82,94,{"format":342,"lines":872,"tokens":890,"copies":290,"first":891,"others":893},52,{"name":892,"start":450,"end":754},"src\u002Fserver\u002FregisterCaptureTools.ts",[894,896,898,901,903],{"name":895,"start":450,"end":754},"src\u002Fserver\u002FregisterGoTools.ts",{"name":897,"start":450,"end":754},"src\u002Fserver\u002FregisterPeResourcesTool.ts",{"name":899,"start":336,"end":900},"src\u002Fserver\u002FregisterRecordedCrashTools.ts",31,{"name":902,"start":450,"end":754},"src\u002Fserver\u002FregisterRustTools.ts",{"name":904,"start":450,"end":754},"src\u002Fserver\u002FregisterSqliteTools.ts",{"format":342,"lines":906,"tokens":907,"copies":600,"first":908,"others":911},15,61,{"name":909,"start":910,"end":900},"src\u002Fserver\u002FregisterApplicationTools\u002FcompareExportShapes.ts",17,[912,914,916,919],{"name":913,"start":910,"end":900},"src\u002Fserver\u002FregisterApplicationTools\u002FcompareSourceToBundle.ts",{"name":915,"start":872,"end":762},"src\u002Fserver\u002FregisterApplicationTools\u002Fcoverage.ts",{"name":917,"start":918,"end":792},"src\u002Fserver\u002FregisterApplicationTools\u002FobligationLedger.ts",20,{"name":920,"start":288,"end":754},"src\u002Fserver\u002FregisterApplicationTools\u002FtraceSemantics.ts",{"format":363,"lines":450,"tokens":922,"copies":760,"first":923,"others":927},119,{"name":924,"start":925,"end":926},"scripts\u002Fverify-commandcode-client.mjs",374,391,[928,932],{"name":929,"start":930,"end":931},"scripts\u002Fverify-grok-client.mjs",443,460,{"name":933,"start":934,"end":935},"scripts\u002Fverify-omp-client.mjs",345,362,{"format":388,"lines":918,"tokens":937,"copies":760,"first":938,"others":940},115,{"name":939,"start":760,"end":604},"bridge\u002Fpwndbg\u002Flaunch.py",[941,943],{"name":942,"start":760,"end":604},"bridge\u002Fpwntools\u002Flayout.py",{"name":944,"start":760,"end":604},"bridge\u002Fpwntools\u002Frecorded_crash.py",{"format":363,"lines":371,"tokens":946,"copies":301,"first":947,"others":951},223,{"name":948,"start":949,"end":950},"scripts\u002Fverify-real-ghidra-mips.mjs",458,489,[952],{"name":953,"start":954,"end":955},"scripts\u002Fverify-real-ghidra-ppc.mjs",158,189,{"format":363,"lines":957,"tokens":958,"copies":301,"first":959,"others":961},33,222,{"name":827,"start":960,"end":829},172,[962],{"name":857,"start":963,"end":964},164,196,{"files":308,"minified":776,"sample":966},[967],"src\u002FgeneratedPackageMetadata.ts",{"score":969,"grade":970,"size":971,"dimensions":975},67,"C",{"lines":972,"files":973,"class":974},840303,3549,"L",[976,992,999],{"id":977,"source":978,"value":979,"adjusted":979,"lines":980,"halfLife":981,"formats":982,"excluded":988,"weight":308,"score":991},"duplication","jscpd",3.7,31510,8.5,[342,363,388,765,759,769,394,983,778,781,984,985,986,987],"c","objectivec","csharp","linker-script","solidity",[370,989,990],"text","data",73.7,{"id":993,"source":978,"value":301,"adjusted":301,"lines":994,"halfLife":995,"coverage":996,"weight":997,"score":998},"dead-code",16359,7.5,98.5,0.985,83.3,{"id":1000,"source":978,"value":1001,"adjusted":1001,"lines":1002,"halfLife":597,"weight":308,"score":1003},"complexity",51.4,432157,49.1,{"total":1005,"mean":1006,"files":1007},119192,33.6,[1008,1013,1018,1023,1028,1033,1038,1043,1048,1053],{"path":1009,"complexity":1010,"lines":1011,"bytes":1012},"bridge\u002Fghidra\u002FReaGhidraBridge.java",1162,4892,241110,{"path":1014,"complexity":1015,"lines":1016,"bytes":1017},"src\u002Fdomain\u002Fjavascript\u002FjavascriptSemanticAnalysis.ts",473,1775,60882,{"path":1019,"complexity":1020,"lines":1021,"bytes":1022},"src\u002Fgdb\u002FGdbSessionManager.ts",463,2240,79996,{"path":1024,"complexity":1025,"lines":1026,"bytes":1027},"src\u002Fapplication\u002Fjavascript\u002FJavaScriptArtifactPathResolution.ts",457,1827,68623,{"path":1029,"complexity":1030,"lines":1031,"bytes":1032},"src\u002Fghidra\u002FGhidraProvider.behavior.test.ts",454,2945,101987,{"path":1034,"complexity":1035,"lines":1036,"bytes":1037},"tests\u002Fboundary\u002Fproviders\u002FGdbSessionManagerCoverage.test.ts",453,3009,103433,{"path":1039,"complexity":1040,"lines":1041,"bytes":1042},"src\u002Fadb\u002FAdbProvider.ts",438,3346,107884,{"path":1044,"complexity":1045,"lines":1046,"bytes":1047},"src\u002Fapplication\u002FClientConfigurationDocument.ts",428,1522,50291,{"path":1049,"complexity":1050,"lines":1051,"bytes":1052},"src\u002Fdomain\u002Fjavascript\u002FjavascriptSymbolicBindings.ts",412,1434,49451,{"path":1054,"complexity":1055,"lines":1056,"bytes":1057},"src\u002Fdomain\u002Fjavascript\u002FjavascriptSemanticMemberMutations.ts",401,1455,53182,{"percentage":1059,"findings":702,"files":1060,"byCategory":1061,"largest":1070},1.98,3535,[1062,1064,1066,1068],{"category":1063,"count":969},"unused-file",{"category":1065,"count":288},"unused-export",{"category":1067,"count":288},"unused-symbol",{"category":1069,"count":847},"unused-import",[1071,1074,1077,1080,1083,1086,1089,1092,1095,1098],{"category":1063,"path":1072,"name":495,"line":308,"lines":1073},"src\u002Fdotnet\u002FManagedPe.fixture.ts",1467,{"category":1063,"path":1075,"name":495,"line":308,"lines":1076},"experiments\u002Fanalysis-efficiency\u002Fmeasure.mjs",1268,{"category":1063,"path":1078,"name":495,"line":308,"lines":1079},"src\u002Fevaluation\u002FAgentEvaluationFixtures.ts",566,{"category":1063,"path":1081,"name":495,"line":308,"lines":1082},"src\u002FmcpDoctor.ts",543,{"category":1063,"path":1084,"name":495,"line":308,"lines":1085},"src\u002Fevaluation\u002FKnownAnswerEvaluation.ts",520,{"category":1063,"path":1087,"name":495,"line":308,"lines":1088},"experiments\u002Fanalysis-efficiency\u002Fverify-evm-lifecycle.mjs",504,{"category":1063,"path":1090,"name":495,"line":308,"lines":1091},"src\u002Fcontracts\u002FreconstructionReadinessExample.ts",450,{"category":1063,"path":1093,"name":495,"line":308,"lines":1094},"src\u002Fdomain\u002FreconstructionReadinessJourneyFindings.ts",404,{"category":1063,"path":1096,"name":495,"line":308,"lines":1097},"src\u002Fdomain\u002FconformanceTrustGate.ts",399,{"category":1063,"path":1099,"name":495,"line":308,"lines":1100},"experiments\u002Fanalysis-efficiency\u002Fjavascript-facts-agent.mjs",395,{"name":1102,"url":1103,"description":1104,"language":312,"stars":1105,"starsToday":552,"defaultBranch":323,"headSha":1106,"durationMs":1107,"total":1108,"formats":1112,"topClones":1150,"code":1263,"health":1418,"complexity":1440,"deadCode":1490},"anthropics\u002Fclaude-plugins-official","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-official","Official, Anthropic-managed directory of high quality Claude Code Plugins.",39365,"ea10b213686c90bb1984b2016937310e05336cf3",1336,{"sources":1109,"lines":314,"tokens":1110,"clones":313,"duplicatedLines":315,"duplicatedTokens":1111,"percentage":316,"percentageTokens":738},655,918022,15514,[1113,1118,1124,1129,1131,1135,1139,1142,1146,1148],{"format":342,"sources":389,"lines":1114,"clones":1115,"duplicatedLines":1116,"percentage":1117},13796,45,701,5.08,{"format":382,"sources":1119,"lines":1120,"clones":1121,"duplicatedLines":1122,"percentage":1123},236,44069,39,651,1.48,{"format":388,"sources":1125,"lines":1126,"clones":792,"duplicatedLines":1127,"percentage":1128},91,33241,420,1.26,{"format":370,"sources":756,"lines":1130,"clones":771,"duplicatedLines":885,"percentage":739},3658,{"format":363,"sources":450,"lines":1132,"clones":255,"duplicatedLines":1133,"percentage":1134},5088,177,3.48,{"format":356,"sources":357,"lines":1136,"clones":301,"duplicatedLines":1137,"percentage":1138},8521,86,1.01,{"format":989,"sources":969,"lines":1140,"clones":308,"duplicatedLines":756,"percentage":1141},1689,0.59,{"format":349,"sources":301,"lines":1143,"clones":308,"duplicatedLines":1144,"percentage":1145},379,176,46.44,{"format":394,"sources":876,"lines":1147,"clones":776,"duplicatedLines":776,"percentage":776},4160,{"format":377,"sources":873,"lines":1149,"clones":776,"duplicatedLines":776,"percentage":776},2075,[1151,1167,1185,1198,1210,1218,1231,1240,1249,1258],{"format":349,"lines":1144,"tokens":1152,"copies":301,"first":1153,"others":1155,"excerpt":1158},1663,{"name":1154,"start":301,"end":1133},"plugins\u002Ffrontend-design\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt",[1156],{"name":1157,"start":301,"end":1133},"plugins\u002Fskill-creator\u002Fskills\u002Fskill-creator\u002FLICENSE.txt",{"lines":1159,"total":1144},[1160,1161,1162,495,1163,495,1164,495,1165,1166],"                              Apache License","                        Version 2.0, January 2004","                     http:\u002F\u002Fwww.apache.org\u002Flicenses\u002F","TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION","1. Definitions.","   \"License\" shall mean the terms and conditions for use, reproduction,","   and distribution as defined by Sections 1 through 9 of this document.",{"format":382,"lines":1168,"tokens":1169,"copies":301,"first":1170,"others":1173,"excerpt":1176},120,1149,{"name":1171,"start":401,"end":1172},"plugins\u002Fplugin-dev\u002Fskills\u002Fskill-development\u002FSKILL.md:markdown",128,[1174],{"name":1175,"start":401,"end":1172},"plugins\u002Fplugin-dev\u002Fskills\u002Fskill-development\u002Freferences\u002Fskill-creator-original.md:markdown",{"lines":1177,"total":1168},[1178,495,1179,495,1180,1181,1182,1183,495,1184],"This skill provides guidance for creating effective skills for Claude Code plugins.","## About Skills","Skills are modular, self-contained packages that extend Claude's capabilities by providing","specialized knowledge, workflows, and tools. Think of them as \"onboarding guides\" for specific","domains or tasks—they transform Claude from a general-purpose agent into a specialized agent","equipped with procedural knowledge that no model can fully possess.","### What Skills Provide",{"format":382,"lines":497,"tokens":1186,"copies":301,"first":1187,"others":1189,"excerpt":1192},585,{"name":1188,"start":401,"end":906},"plugins\u002Fmath-proof\u002Fagents\u002Fmath-proof-worker-deep.md:markdown",[1190],{"name":1191,"start":401,"end":906},"plugins\u002Fmath-proof\u002Fagents\u002Fmath-proof-worker.md:markdown",{"lines":1193,"total":497},[1194,495,1195,495,1196,495,1197],"You will be given one mathematical task: the path of a query file, the problem statement it concerns (given in full in the message that assigns you the task; t…","After reasoning, write your answer. This task runs as a conversation that can span many messages, each with a bounded output allowance that also covers your pr…","You have no web access and no code execution; this is a pure reasoning task. Results you cite from the literature are cited from memory — say so, and state the…","When the task is resolved, or you have taken it as far as you can, make sure the answer file holds your complete final answer: precise statements with proofs, …",{"format":382,"lines":918,"tokens":1199,"copies":760,"first":1200,"others":1203},229,{"name":1201,"start":1202,"end":804},"plugins\u002Fcode-modernization\u002Fagents\u002Farchitecture-critic.md:markdown",44,[1204,1206],{"name":1205,"start":378,"end":607},"plugins\u002Fcode-modernization\u002Fagents\u002Fbusiness-rules-extractor.md:markdown",{"name":1207,"start":1208,"end":1209},"plugins\u002Fcode-modernization\u002Fagents\u002Fsecurity-auditor.md:markdown",81,100,{"format":382,"lines":803,"tokens":1091,"copies":301,"first":1211,"others":1213},{"name":1212,"start":497,"end":890},"plugins\u002Fcode-simplifier\u002Fagents\u002Fcode-simplifier.md:markdown",[1214],{"name":1215,"start":1216,"end":1217},"plugins\u002Fpr-review-toolkit\u002Fagents\u002Fcode-simplifier.md:markdown",43,88,{"format":382,"lines":847,"tokens":1219,"copies":760,"first":1220,"others":1224},187,{"name":1221,"start":1222,"end":1223},"external_plugins\u002Fdiscord\u002Fskills\u002Faccess\u002FSKILL.md:markdown",74,98,[1225,1227],{"name":1226,"start":1208,"end":548},"external_plugins\u002Fimessage\u002Fskills\u002Faccess\u002FSKILL.md:markdown",{"name":1228,"start":1229,"end":1230},"external_plugins\u002Ftelegram\u002Fskills\u002Faccess\u002FSKILL.md:markdown",84,108,{"format":382,"lines":497,"tokens":1232,"copies":301,"first":1233,"others":1235},280,{"name":1234,"start":1137,"end":807},"plugins\u002Fclaude-security\u002Fskills\u002Fclaude-security\u002Fjobs\u002Fscan-changes.md:markdown",[1236],{"name":1237,"start":1238,"end":1239},"plugins\u002Fclaude-security\u002Fskills\u002Fclaude-security\u002Fjobs\u002Fscan-codebase.md:markdown",64,70,{"format":382,"lines":595,"tokens":1241,"copies":301,"first":1242,"others":1245},247,{"name":1234,"start":1243,"end":1244},133,146,[1246],{"name":1237,"start":1247,"end":1248},113,126,{"format":342,"lines":350,"tokens":1250,"copies":301,"first":1251,"others":1254},230,{"name":1252,"start":1243,"end":1253},"external_plugins\u002Fdiscord\u002Fserver.ts",169,[1255],{"name":1256,"start":1257,"end":1144},"external_plugins\u002Ftelegram\u002Fserver.ts",138,{"format":382,"lines":604,"tokens":1250,"copies":301,"first":1259,"others":1260},{"name":1205,"start":389,"end":607},[1261],{"name":1262,"start":799,"end":1239},"plugins\u002Fcode-modernization\u002Fagents\u002Flegacy-analyst.md:markdown",{"sources":1264,"lines":1265,"tokens":1266,"clones":378,"duplicatedLines":1267,"duplicatedTokens":1268,"percentage":1269,"percentageTokens":1270,"formats":1271,"topClones":1290,"generated":1416},121,42522,299520,1087,4800,2.56,1.6,[1272,1276,1280,1284,1286,1289],{"format":342,"sources":754,"lines":1273,"clones":792,"duplicatedLines":1274,"percentage":1275},9927,611,6.15,{"format":388,"sources":389,"lines":1277,"clones":336,"duplicatedLines":1278,"percentage":1279},24044,299,1.24,{"format":363,"sources":1281,"lines":1282,"clones":255,"duplicatedLines":1133,"percentage":1283},11,4875,3.63,{"format":394,"sources":604,"lines":1285,"clones":776,"duplicatedLines":776,"percentage":776},2501,{"format":1287,"sources":301,"lines":1288,"clones":776,"duplicatedLines":776,"percentage":776},"tsx",1007,{"format":778,"sources":308,"lines":779,"clones":776,"duplicatedLines":776,"percentage":776},[1291,1311,1335,1358,1366,1374,1384,1395,1401,1409],{"format":342,"lines":350,"tokens":1250,"copies":301,"first":1292,"others":1293,"excerpt":1295,"excerptSecond":1306},{"name":1252,"start":1243,"end":1253},[1294],{"name":1256,"start":1257,"end":1144},{"lines":1296,"total":350},[1297,495,1298,1299,1300,1301,1302,1303,1304,1305],"const MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024","\u002F\u002F reply's files param takes any path. .env is ~60 bytes and ships as an","\u002F\u002F upload. Claude can already Read+paste file contents, so this isn't a new","\u002F\u002F exfil channel for arbitrary paths — but the server's own state is the one","\u002F\u002F thing Claude has no reason to ever send.","function assertSendable(f: string): void {","  let real, stateReal: string","  try {","    real = realpathSync(f)",{"lines":1307,"total":1121},[1308,495,1309,1310,1300,1301,1302,1303,1304,1305],"const MAX_ATTACHMENT_BYTES = 50 * 1024 * 1024","\u002F\u002F reply's files param takes any path. .env is ~60 bytes and ships as a","\u002F\u002F document. Claude can already Read+paste file contents, so this isn't a new",{"format":342,"lines":754,"tokens":1312,"copies":301,"first":1313,"others":1315,"excerpt":1319,"excerptSecond":1328},186,{"name":1252,"start":1314,"end":689},363,[1316],{"name":1256,"start":1317,"end":1318},357,385,{"lines":1320,"total":754},[1321,1322,1323,495,1324,495,1325,1326,1327,495],"    })()","  }","}","if (!STATIC) setInterval(checkApprovals, 5000).unref()","\u002F\u002F Discord caps messages at 2000 chars (hard limit — larger sends reject).","\u002F\u002F Split long replies, preferring paragraph boundaries when chunkMode is","\u002F\u002F 'newline'.",{"lines":1329,"total":1334},[1330,1322,1323,495,1324,495,1331,1332,495,1333],"    )","\u002F\u002F Telegram caps messages at 4096 chars. Split long replies, preferring","\u002F\u002F paragraph boundaries when chunkMode is 'newline'.","function chunk(text: string, limit: number, mode: 'length' | 'newline'): string[] {",29,{"format":342,"lines":918,"tokens":779,"copies":301,"first":1336,"others":1338,"excerpt":1343,"excerptSecond":1354},{"name":1252,"start":1337,"end":689},373,[1339],{"name":1340,"start":1341,"end":1342},"external_plugins\u002Fimessage\u002Fserver.ts",480,497,{"lines":1344,"total":918},[1333,1345,1346,1347,1348,1349,1350,1351,1352,1353],"  if (text.length \u003C= limit) return [text]","  const out: string[] = []","  let rest = text","  while (rest.length > limit) {","    let cut = limit","    if (mode === 'newline') {","      \u002F\u002F Prefer the last double-newline (paragraph), then single newline,","      \u002F\u002F then space. Fall back to hard cut.","      const para = rest.lastIndexOf('\\n\\n', limit)",{"lines":1355,"total":450},[1333,1345,1346,1347,1348,1349,1350,1353,1356,1357],"      const line = rest.lastIndexOf('\\n', limit)","      const space = rest.lastIndexOf(' ', limit)",{"format":342,"lines":762,"tokens":1359,"copies":301,"first":1360,"others":1363},165,{"name":1252,"start":1361,"end":1362},192,218,[1364],{"name":1256,"start":823,"end":1365},234,{"format":342,"lines":604,"tokens":1359,"copies":301,"first":1367,"others":1370},{"name":1252,"start":1368,"end":1369},246,267,[1371],{"name":1256,"start":1372,"end":1373},248,269,{"format":342,"lines":1375,"tokens":1376,"copies":301,"first":1377,"others":1380},28,145,{"name":1252,"start":1378,"end":1379},464,491,[1381],{"name":1256,"start":1382,"end":1383},415,442,{"format":388,"lines":774,"tokens":1385,"copies":301,"first":1386,"others":1390},129,{"name":1387,"start":1388,"end":1389},"plugins\u002Fsecurity-guidance\u002Fhooks\u002Fllm.py",1859,1870,[1391],{"name":1392,"start":1393,"end":1394},"plugins\u002Fsecurity-guidance\u002Fhooks\u002Freview_api.py",306,323,{"format":342,"lines":875,"tokens":1396,"copies":301,"first":1397,"others":1399},127,{"name":1252,"start":807,"end":1398},132,[1400],{"name":1256,"start":1223,"end":563},{"format":342,"lines":762,"tokens":1402,"copies":301,"first":1403,"others":1406},122,{"name":1340,"start":1404,"end":1405},717,743,[1407],{"name":1256,"start":379,"end":1408},661,{"format":342,"lines":1410,"tokens":1168,"copies":301,"first":1411,"others":1414},26,{"name":1252,"start":1412,"end":1413},706,731,[1415],{"name":1340,"start":1404,"end":1405},{"files":776,"minified":776,"sample":1417},[],{"score":1419,"grade":297,"size":1420,"dimensions":1423},51.5,{"lines":1421,"files":1359,"class":1422},55195,"M",[1424,1430,1435],{"id":977,"source":978,"value":1425,"adjusted":1425,"lines":1426,"halfLife":981,"formats":1427,"excluded":1428,"weight":308,"score":1429},2.3,1264,[388,342,363,394,1287,778],[370,989,990],82.7,{"id":993,"source":978,"value":1431,"adjusted":771,"lines":1432,"halfLife":995,"coverage":395,"weight":1433,"score":1434},8.2,4294,0.95,47.7,{"id":1000,"source":978,"value":1436,"adjusted":1437,"lines":1438,"halfLife":597,"weight":308,"score":1439},79,77,43610,34.4,{"total":1441,"mean":1442,"files":1443},13239,80.2,[1444,1449,1454,1459,1463,1468,1473,1478,1482,1486],{"path":1445,"complexity":1446,"lines":1447,"bytes":1448},"plugins\u002Fclaude-security\u002Fworkflows\u002Fscan.js",609,156,60537,{"path":1450,"complexity":1451,"lines":1452,"bytes":1453},"plugins\u002Fcode-modernization\u002Fscripts\u002Fproof_pack.py",606,1020,73244,{"path":1455,"complexity":1456,"lines":1457,"bytes":1458},"plugins\u002Fcode-modernization\u002Fscripts\u002Fbuild_report.py",474,725,45739,{"path":1460,"complexity":931,"lines":1461,"bytes":1462},"plugins\u002Fsecurity-guidance\u002Fhooks\u002Fsecurity_reminder_hook.py",2692,129648,{"path":1464,"complexity":1465,"lines":1466,"bytes":1467},"plugins\u002Fcode-modernization\u002Fscripts\u002Fbaseline_diff.py",406,809,44527,{"path":1469,"complexity":1470,"lines":1471,"bytes":1472},"plugins\u002Fcode-modernization\u002Fhooks\u002Fregister.ts",393,1298,42850,{"path":1474,"complexity":1475,"lines":1476,"bytes":1477},"plugins\u002Fcode-modernization\u002Fscripts\u002Ftests\u002Ftest_proof_tools.py",369,1993,135116,{"path":1387,"complexity":1479,"lines":1480,"bytes":1481},315,2164,132554,{"path":1483,"complexity":1484,"lines":742,"bytes":1485},"plugins\u002Freceipts\u002Fskills\u002Freceipts\u002Fscripts\u002Fmine-transcripts.mjs",304,66303,{"path":1487,"complexity":855,"lines":1488,"bytes":1489},"plugins\u002Fclaude-security\u002Fscripts\u002Fpatch_artifacts.py",1283,52407,{"percentage":398,"findings":887,"files":1376,"byCategory":1491,"largest":1494},[1492,1493],{"category":1063,"count":774},{"category":1069,"count":1239},[1495,1496,1499,1502,1505,1507,1510,1513,1514,1516],{"category":1063,"path":1469,"name":495,"line":308,"lines":1471},{"category":1063,"path":1497,"name":495,"line":308,"lines":1498},"plugins\u002Fcode-modernization\u002Fworkflows\u002Fextract-rules.js",865,{"category":1063,"path":1500,"name":495,"line":308,"lines":1501},"plugins\u002Fcode-modernization\u002Fworkflows\u002Fuplift-migrate.js",425,{"category":1063,"path":1503,"name":495,"line":308,"lines":1504},"plugins\u002Fcode-modernization\u002Fworkflows\u002Fharden-scan.js",296,{"category":1063,"path":1506,"name":495,"line":308,"lines":750},"plugins\u002Fcode-modernization\u002Fworkflows\u002Fuplift-deltas.js",{"category":1063,"path":1508,"name":495,"line":308,"lines":1509},"plugins\u002Freceipts\u002Fassets\u002Fmake-sample.mjs",183,{"category":1063,"path":1511,"name":495,"line":308,"lines":1512},"plugins\u002Fcode-modernization\u002Fhooks\u002Fstate.ts",182,{"category":1063,"path":1445,"name":495,"line":308,"lines":1447},{"category":1063,"path":1515,"name":495,"line":308,"lines":626},"plugins\u002Fcode-modernization\u002Fworkflows\u002Fportfolio-assess.js",{"category":1063,"path":1517,"name":495,"line":308,"lines":556},"plugins\u002Fcode-modernization\u002Fworkflows\u002Freimagine-scaffold.js",{"name":267,"url":1519,"description":1520,"language":307,"stars":1521,"starsToday":1522,"defaultBranch":323,"headSha":1523,"durationMs":1524,"total":1525,"formats":1530,"topClones":1587,"code":1801,"health":1998,"complexity":2023,"deadCode":2074},"https:\u002F\u002Fgithub.com\u002Fxerj-org\u002Fxerj","XERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command indexes code, docs, logs and PDFs for search, RAG, security audits and agent memory, using 40x fewer tokens than grep. Elasticsearch compatible, so existing clients just work.",5902,715,"45565571ec2a381c0faf0ddd631b32c44c48e028",5907,{"sources":1526,"lines":309,"tokens":1527,"clones":268,"duplicatedLines":310,"duplicatedTokens":1528,"percentage":269,"percentageTokens":1529},3046,8531221,1521435,17.83,[1531,1537,1544,1550,1556,1562,1567,1572,1578,1582],{"format":370,"sources":1532,"lines":1533,"clones":1534,"duplicatedLines":1535,"percentage":1536},202,86377,2553,60364,69.88,{"format":1538,"sources":1539,"lines":1540,"clones":1541,"duplicatedLines":1542,"percentage":1543},"rust",551,431625,2178,23623,5.47,{"format":377,"sources":1545,"lines":1546,"clones":1547,"duplicatedLines":1548,"percentage":1549},325,59913,595,12360,20.63,{"format":1551,"sources":792,"lines":1552,"clones":1553,"duplicatedLines":1554,"percentage":1555},"log",9522,320,6140,64.48,{"format":382,"sources":1557,"lines":1558,"clones":1559,"duplicatedLines":1560,"percentage":1561},702,131703,292,13404,10.18,{"format":363,"sources":1447,"lines":1563,"clones":1564,"duplicatedLines":1565,"percentage":1566},48787,287,8096,16.59,{"format":356,"sources":1373,"lines":1568,"clones":1569,"duplicatedLines":1570,"percentage":1571},108868,219,14663,13.47,{"format":989,"sources":1573,"lines":1574,"clones":1575,"duplicatedLines":1576,"percentage":1577},216,10528,125,3797,36.07,{"format":388,"sources":1219,"lines":1579,"clones":607,"duplicatedLines":1580,"percentage":1581},37552,1297,3.45,{"format":1583,"sources":497,"lines":1584,"clones":969,"duplicatedLines":1585,"percentage":1586},"css",7310,1978,27.06,[1588,1632,1666,1686,1697,1711,1731,1753,1777,1793],{"format":370,"lines":498,"tokens":1589,"copies":847,"first":1590,"others":1593,"excerpt":1622},2353,{"name":1591,"start":689,"end":1592},"landing\u002Fdocs\u002Faggregations.html",471,[1594,1598,1602,1605,1608,1611,1614,1618],{"name":1595,"start":1596,"end":1597},"landing\u002Fdocs\u002Fanalyzers.html",318,397,{"name":1599,"start":1600,"end":1601},"landing\u002Fdocs\u002Fapi-es-compat.html",421,500,{"name":1603,"start":1597,"end":1604},"landing\u002Fdocs\u002Fcli.html",476,{"name":1606,"start":926,"end":1607},"landing\u002Fdocs\u002Fclustering.html",470,{"name":1609,"start":1610,"end":1055},"landing\u002Fdocs\u002Fcompression.html",322,{"name":1612,"start":1040,"end":1613},"landing\u002Fdocs\u002Fcorpus-hub.html",517,{"name":1615,"start":1616,"end":1617},"landing\u002Fdocs\u002Fenv.html",430,509,{"name":1619,"start":1620,"end":1621},"landing\u002Fdocs\u002Fingest.html",324,403,{"lines":1623,"total":498},[1624,1625,495,1626,495,1627,1628,1629,1630,1631],"  \u003Cspan>\u003Ca href=\"\u002F\">HOME\u003C\u002Fa> · \u003Ca href=\"\u002Fproduct\">PRODUCT\u003C\u002Fa> · \u003Ca href=\"\u002Fbrand\">BRAND\u003C\u002Fa> · \u003Ca href=\"\u002Fplayground\">DASHBOARDS\u003C\u002Fa> &middot; \u003Ca href=\"\u002Fllms.txt\">…","\u003C\u002Ffooter>","\u003Cscript type=\"application\u002Fjson\" id=\"docs-index\">[{\"title\":\"Corpus Hub\",\"slug\":\"\u002Fdocs\u002Fcorpus-hub\",\"kicker\":\"CORPUS HUB\",\"snip\":\"Registry of corpora for agents —…","\u003Cscript>","  \u002F\u002F IIFE — js-auth navigates between decrypted pages in the same","  \u002F\u002F JS realm, so const bindings must be lexically scoped.","  (function () {","    const root = document.documentElement;",{"format":370,"lines":957,"tokens":1633,"copies":1634,"first":1635,"others":1637,"excerpt":1654},675,83,{"name":1636,"start":702,"end":1447},"landing\u002Fanswers\u002Fagent-memory-without-postgres-qdrant.html",[1638,1640,1642,1644,1646,1648,1650,1652],{"name":1639,"start":702,"end":1447},"landing\u002Fanswers\u002Faudit-php-codebase-with-an-index.html",{"name":1641,"start":702,"end":1447},"landing\u002Fanswers\u002Fautoindex-dataset-refused-by-server.html",{"name":1643,"start":702,"end":1447},"landing\u002Fanswers\u002Fautoindex-exit-codes.html",{"name":1645,"start":702,"end":1447},"landing\u002Fanswers\u002Fautoindex-says-extract-the-archive-first.html",{"name":1647,"start":702,"end":1447},"landing\u002Fanswers\u002Fautoindex-server-back-pressure-429.html",{"name":1649,"start":702,"end":1447},"landing\u002Fanswers\u002Fcatalog-files-with-autoindex-map.html",{"name":1651,"start":702,"end":1447},"landing\u002Fanswers\u002Fcheap-low-volume-log-search.html",{"name":1653,"start":702,"end":1447},"landing\u002Fanswers\u002Fcheck-codebase-index-is-complete.html",{"lines":1655,"total":957},[1656,1657,1658,1659,1660,1661,1662,1663,1664,1665],"\u003Ca href=\"\u002Fcase-studies\">CASE STUDIES\u003C\u002Fa>","\u003Ca href=\"\u002Fbenchmarks\u002F\">BENCHMARKS\u003C\u002Fa>","\u003Cspan class=\"spacer\">\u003C\u002Fspan>","\u003Ca href=\"\u002Ffor-agents\">FOR AGENTS\u003C\u002Fa>","\u003Ca href=\"\u002Fdocs\u002F\" class=\"active\">DOCS\u003C\u002Fa>","\u003Ca href=\"\u002Fdocs\u002Frecipes\u002F\">RECIPES\u003C\u002Fa>","\u003Ca href=\"\u002Fplayground\">DASHBOARDS\u003C\u002Fa>","\u003Ca href=\"https:\u002F\u002Fhub.xerj.org\" rel=\"external\">HUB\u003C\u002Fa>","\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fxerj-org\u002Fxerj\" rel=\"external\">GITHUB\u003C\u002Fa>","\u003Ca href=\"https:\u002F\u002Fx.com\u002Fxerj_org\" rel=\"external\" title=\"XERJ on X\" style=\"display:inline-flex;align-items:center\">\u003Csvg width=\"15\" height=\"15\" viewBox=\"0 0 24 24…",{"format":356,"lines":1667,"tokens":1668,"copies":301,"first":1669,"others":1671,"excerpt":1674},8893,35383,{"name":1670,"start":308,"end":1667},"benchmarks\u002Fdecide-model\u002Fpinned\u002Ftokenizer.json",[1672],{"name":1673,"start":308,"end":1667},"benchmarks\u002Fdecide-model\u002Fpublished\u002Fxerj-decide-v1\u002Ftokenizer.json",{"lines":1675,"total":1667},[1676,1677,1678,1679,1680,1681,1682,1683,1684,1685],"{","  \"version\": \"1.0\",","  \"truncation\": {","    \"direction\": \"Right\",","    \"max_length\": 512,","    \"strategy\": \"LongestFirst\",","    \"stride\": 0","  },","  \"padding\": null,","  \"added_tokens\": [",{"format":370,"lines":906,"tokens":1687,"copies":301,"first":1688,"others":1692},33689,{"name":1689,"start":1690,"end":1691},"landing\u002Fproduct.html",228,242,[1693],{"name":1694,"start":1695,"end":1696},"landing\u002Fuse-cases\u002Fai-search-retrieval.html",153,167,{"format":370,"lines":1257,"tokens":1698,"copies":760,"first":1699,"others":1703},16579,{"name":1700,"start":1701,"end":1702},"landing\u002Fdocs\u002Fbackup-restore.html",298,435,[1704,1707],{"name":1705,"start":1706,"end":1617},"landing\u002Fdocs\u002Fconfig.html",372,{"name":1708,"start":1709,"end":1710},"landing\u002Fdocs\u002Findex.html",368,505,{"format":370,"lines":1125,"tokens":1712,"copies":756,"first":1713,"others":1714},3090,{"name":1636,"start":1447,"end":1368},[1715,1717,1719,1721,1723,1725,1727,1729],{"name":1716,"start":1447,"end":1368},"landing\u002Fanswers\u002Fcode-search-mcp-for-claude-code.html",{"name":1718,"start":1447,"end":1368},"landing\u002Fanswers\u002Fcoding-agent-memory-across-sessions.html",{"name":1720,"start":1447,"end":1368},"landing\u002Fanswers\u002Fevidence-for-agent-memory-links.html",{"name":1722,"start":1447,"end":1368},"landing\u002Fanswers\u002Fgive-chatgpt-claude-local-file-access.html",{"name":1724,"start":1447,"end":1368},"landing\u002Fanswers\u002Fknowledge-graphs-for-agent-memory.html",{"name":1726,"start":1447,"end":1368},"landing\u002Fanswers\u002Fmcp-api-search-or-vector-search.html",{"name":1728,"start":1447,"end":1368},"landing\u002Fanswers\u002Fprivate-agent-memory-namespaces.html",{"name":1730,"start":1447,"end":1368},"landing\u002Fanswers\u002Fset-mcp-memory-storage-path.html",{"format":370,"lines":1732,"tokens":1733,"copies":792,"first":1734,"others":1736},62,681,{"name":1636,"start":1394,"end":1735},384,[1737,1739,1742,1743,1745,1748,1749,1750],{"name":1639,"start":1314,"end":1738},424,{"name":1641,"start":1740,"end":1741},349,410,{"name":1643,"start":1470,"end":1030},{"name":1645,"start":1744,"end":1475},308,{"name":1647,"start":1746,"end":1747},353,414,{"name":1649,"start":1740,"end":1741},{"name":1651,"start":359,"end":1621},{"name":1751,"start":1752,"end":385},"landing\u002Fanswers\u002Fclassify-text-from-labelled-history-without-llm.html",341,{"format":370,"lines":804,"tokens":1754,"copies":754,"first":1755,"others":1758},680,{"name":1756,"start":1600,"end":1757},"landing\u002Fdocs\u002Fagents\u002Fendpoints.html",483,[1759,1761,1763,1764,1767,1770,1772,1775],{"name":1591,"start":1760,"end":1100},334,{"name":1595,"start":1762,"end":403},260,{"name":1599,"start":1314,"end":1738},{"name":1603,"start":1765,"end":1766},339,400,{"name":1606,"start":1768,"end":1769},333,394,{"name":1609,"start":1771,"end":1545},264,{"name":1612,"start":1773,"end":1774},380,441,{"name":1615,"start":1706,"end":1776},433,{"format":370,"lines":957,"tokens":1778,"copies":1253,"first":1779,"others":1781},111,{"name":1780,"start":1375,"end":606},"landing\u002F404.html",[1782,1784,1787,1788,1789,1790,1791,1792],{"name":1783,"start":1248,"end":954},"landing\u002Fagent-search\u002Findex.html",{"name":1785,"start":1121,"end":1786},"landing\u002Faise-demo.html",71,{"name":1636,"start":1334,"end":907},{"name":1639,"start":1334,"end":907},{"name":1641,"start":1334,"end":907},{"name":1643,"start":1334,"end":907},{"name":1645,"start":1334,"end":907},{"name":1647,"start":1334,"end":907},{"format":370,"lines":1257,"tokens":1794,"copies":301,"first":1795,"others":1798},17893,{"name":1796,"start":402,"end":1797},"landing\u002Fanswers\u002Findex.html",227,[1799],{"name":1800,"start":402,"end":1797},"landing\u002Fcompare\u002Findex.html",{"sources":1802,"lines":1803,"tokens":1804,"clones":285,"duplicatedLines":1805,"duplicatedTokens":1806,"percentage":286,"percentageTokens":1807,"formats":1808,"topClones":1831,"generated":1991},570,395537,2449534,18584,143055,5.84,[1809,1815,1820,1825,1828,1829],{"format":1538,"sources":1810,"lines":1811,"clones":1812,"duplicatedLines":1813,"percentage":1814},317,336731,1257,12372,3.67,{"format":363,"sources":548,"lines":1816,"clones":1817,"duplicatedLines":1818,"percentage":1819},28796,106,5843,20.29,{"format":388,"sources":1821,"lines":1822,"clones":371,"duplicatedLines":1823,"percentage":1824},96,22879,273,1.19,{"format":394,"sources":597,"lines":1826,"clones":401,"duplicatedLines":1821,"percentage":1827},6805,1.41,{"format":778,"sources":308,"lines":779,"clones":776,"duplicatedLines":776,"percentage":776},{"format":1830,"sources":308,"lines":954,"clones":776,"duplicatedLines":776,"percentage":776},"powershell",[1832,1850,1869,1892,1899,1927,1935,1944,1953,1983],{"format":363,"lines":359,"tokens":1833,"copies":301,"first":1834,"others":1837,"excerpt":1840},3050,{"name":1835,"start":756,"end":1836},"landing\u002Fplayground\u002Fsrc\u002Fux\u002Fcharts-ai.js",351,[1838],{"name":1839,"start":756,"end":1836},"xerj-ux\u002Fsrc\u002Fux\u002Fcharts-ai.js",{"lines":1841,"total":359},[1842,495,1843,1844,1845,1846,1847,495,1848,1849],"import { esc, fmt } from '.\u002Ftext.js';","const minMax = (xs) => {","  let mn = Infinity, mx = -Infinity;","  for (const x of xs) { if (x \u003C mn) mn = x; if (x > mx) mx = x; }","  return [mn === Infinity ? 0 : mn, mx === -Infinity ? 0 : mx];","};","\u002F\u002F Andrew's monotone chain — O(n log n) convex hull.","function convexHull(points) {",{"format":363,"lines":553,"tokens":1851,"copies":301,"first":1852,"others":1855,"excerpt":1858},2597,{"name":1853,"start":595,"end":1854},"landing\u002Fplayground\u002Fsrc\u002Fux\u002Fchart-types.js",356,[1856],{"name":1857,"start":595,"end":1854},"xerj-ux\u002Fsrc\u002Fux\u002Fchart-types.js",{"lines":1859,"total":553},[1860,1861,1862,1863,1864,1865,495,1866,1867,1868],"import { Num, fmt }               from '.\u002Ftext.js';","import { Spark, Series, Dist, Heatmap, Multiples } from '.\u002Fcharts.js';","import { VBar, Hist, Gauge, Scatter, Stacked, Treemap } from '.\u002Fcharts-ext.js';","import { EmbedSpace, Ribbon3D, ChordArcs, ParallelCoords, AttentionMap, FlowBand } from '.\u002Fcharts-ai.js';","import { Table, Markdown }        from '.\u002Ftables.js';","import { TopN, Events }           from '.\u002Flayout.js';","\u002F\u002F ---------- demo data (deterministic) ---------------------","const demoSeries = Array.from({ length: 48 }, (_, i) =>","  50 + Math.sin(i \u002F 5.5) * 22 + Math.cos(i \u002F 3.2) * 9 + ((i * 37) % 7)",{"format":363,"lines":1870,"tokens":1871,"copies":301,"first":1872,"others":1876,"excerpt":1881},332,2317,{"name":1873,"start":1874,"end":1875},"landing\u002Fplayground\u002Fsrc\u002Fapp.js",748,1079,[1877],{"name":1878,"start":1879,"end":1880},"xerj-ux\u002Fsrc\u002Fapp.js",1583,1914,{"lines":1882,"total":1870},[1883,1884,1885,1886,1887,1888,1889,1890,1322,1891],"const secA = e.target.closest('[data-section]');","if (secA) {","  e.preventDefault();","  const sid = secA.getAttribute('data-section');","  if (sid === 'dashboards') {","    location.hash = '#\u002Fdashboards';","  } else {","    location.hash = '#\u002F' + sid;","  return;",{"format":363,"lines":955,"tokens":396,"copies":301,"first":1893,"others":1896},{"name":1894,"start":1532,"end":1895},"landing\u002Fplayground\u002Fsrc\u002Fdata\u002Fmock.js",390,[1897],{"name":1898,"start":1532,"end":1895},"xerj-ux\u002Fsrc\u002Fdata\u002Fmock.js",{"format":1538,"lines":756,"tokens":1900,"copies":336,"first":1901,"others":1905},99,{"name":1902,"start":1903,"end":1904},"engine\u002Fcrates\u002Fxerj-autoindex\u002Fsrc\u002Ffailure_resume_http_tests.rs",1150,1159,[1906,1909,1912,1914,1916,1919,1922,1924],{"name":1902,"start":1907,"end":1908},1215,1224,{"name":1902,"start":1910,"end":1911},1235,1244,{"name":1902,"start":1913,"end":1471},1289,{"name":1902,"start":1915,"end":724},1342,{"name":1902,"start":1917,"end":1918},1371,1380,{"name":1902,"start":1920,"end":1921},1416,1425,{"name":1902,"start":727,"end":1923},1586,{"name":1902,"start":1925,"end":1926},1603,1612,{"format":363,"lines":1928,"tokens":1929,"copies":301,"first":1930,"others":1932},179,1751,{"name":1894,"start":1895,"end":1931},568,[1933],{"name":1898,"start":1895,"end":1934},581,{"format":363,"lines":848,"tokens":1936,"copies":301,"first":1937,"others":1940},1616,{"name":1873,"start":1938,"end":1939},1108,1312,[1941],{"name":1878,"start":1942,"end":1943},1949,2153,{"format":363,"lines":1945,"tokens":1946,"copies":301,"first":1947,"others":1950},143,1561,{"name":1894,"start":1948,"end":1949},755,897,[1951],{"name":1898,"start":1934,"end":1952},723,{"format":1538,"lines":497,"tokens":607,"copies":918,"first":1954,"others":1958},{"name":1955,"start":1956,"end":1957},"engine\u002Fcrates\u002Fxerj-autoindex\u002Fsrc\u002Fincremental_reconcile_http_tests.rs",1261,1267,[1959,1962,1965,1968,1971,1974,1977,1980],{"name":1955,"start":1960,"end":1961},1318,1324,{"name":1955,"start":1963,"end":1964},1346,1352,{"name":1955,"start":1966,"end":1967},1384,1390,{"name":1955,"start":1969,"end":1970},1473,1479,{"name":1955,"start":1972,"end":1973},1529,1535,{"name":1955,"start":1975,"end":1976},1685,1691,{"name":1955,"start":1978,"end":1979},1731,1737,{"name":1955,"start":1981,"end":1982},1996,2002,{"format":363,"lines":1984,"tokens":1985,"copies":301,"first":1986,"others":1988},171,1414,{"name":1873,"start":1217,"end":1987},258,[1989],{"name":1878,"start":1398,"end":1990},302,{"files":600,"minified":308,"sample":1992},[1993,1994,1995,1996,1997],".github\u002Fscripts\u002Fprev_tag.sh","engine\u002Fcrates\u002Fxerj-engine\u002Fsrc\u002Fsecret_hash.rs","landing\u002Fchart-data.js","landing\u002Fplayground\u002Fsrc\u002Fdata\u002Ffeedback-citations.js","xerj-ux\u002Fsrc\u002Fdata\u002Ffeedback-citations.js",{"score":296,"grade":297,"size":1999,"dimensions":2002},{"lines":2000,"files":2001,"class":974},528796,967,[2003,2012,2019],{"id":977,"source":978,"value":2004,"adjusted":2004,"lines":2005,"halfLife":981,"formats":2006,"excluded":2010,"weight":308,"score":2011},6.3,33109,[1538,363,388,394,765,778,1830,983,2007,2008,2009],"php","sql","c-header",[370,989,990],60.1,{"id":993,"source":978,"value":2013,"adjusted":2014,"lines":2015,"halfLife":995,"coverage":2016,"weight":2017,"score":2018},28.7,28.1,24728,16.3,0.163,7.4,{"id":1000,"source":978,"value":2020,"adjusted":688,"lines":2021,"halfLife":597,"weight":308,"score":2022},75.2,397624,35.4,{"total":2024,"mean":2025,"files":2026},67501,69.8,[2027,2032,2037,2042,2047,2052,2057,2061,2065,2070],{"path":2028,"complexity":2029,"lines":2030,"bytes":2031},"engine\u002Fcrates\u002Fxerj-engine\u002Fsrc\u002Faggs.rs",2821,15730,650416,{"path":2033,"complexity":2034,"lines":2035,"bytes":2036},"landing\u002Fplayground\u002Fapp.bundle.js",1501,6355,244713,{"path":2038,"complexity":2039,"lines":2040,"bytes":2041},"engine\u002Fcrates\u002Fxerj-engine\u002Fsrc\u002Ffast_aggs.rs",1262,6724,291740,{"path":2043,"complexity":2044,"lines":2045,"bytes":2046},"engine\u002Fcrates\u002Fxerj-query\u002Fsrc\u002Fparser.rs",1202,6818,259864,{"path":2048,"complexity":2049,"lines":2050,"bytes":2051},"engine\u002Fcrates\u002Fxerj-autoindex\u002Fsrc\u002Flib.rs",1184,12170,538853,{"path":2053,"complexity":2054,"lines":2055,"bytes":2056},"engine\u002Fcrates\u002Fxerj-storage\u002Fsrc\u002Findex_store.rs",845,7963,357144,{"path":1878,"complexity":2058,"lines":2059,"bytes":2060},729,2188,88523,{"path":2062,"complexity":1457,"lines":2063,"bytes":2064},"engine\u002Fcrates\u002Fxerj-storage\u002Fsrc\u002Fstored_codec.rs",5198,214250,{"path":2066,"complexity":2067,"lines":2068,"bytes":2069},"engine\u002Fcrates\u002Fxerj-engine\u002Fsrc\u002Fpainless.rs",696,3994,168617,{"path":2071,"complexity":1633,"lines":2072,"bytes":2073},"engine\u002Fcrates\u002Fxerj-engine\u002Fsrc\u002Fmemtable.rs",6552,295072,{"percentage":2075,"findings":1125,"files":553,"byCategory":2076,"largest":2081},28.69,[2077,2079,2080],{"category":1063,"count":2078},72,{"category":1067,"count":308},{"category":1069,"count":450},[2082,2083,2084,2086,2088,2091,2094,2097,2099,2102],{"category":1063,"path":2033,"name":495,"line":308,"lines":2035},{"category":1063,"path":1878,"name":495,"line":308,"lines":2059},{"category":1063,"path":1873,"name":495,"line":308,"lines":2085},1322,{"category":1063,"path":1894,"name":495,"line":308,"lines":2087},1045,{"category":1063,"path":2089,"name":495,"line":308,"lines":2090},"xerj-ux\u002Fshare\u002Fshare.js",820,{"category":1063,"path":2092,"name":495,"line":308,"lines":2093},"demo\u002Fusecases\u002Fdoc-index\u002Fcompare.mjs",772,{"category":1063,"path":2095,"name":495,"line":308,"lines":2096},"landing\u002Fcharts.js",529,{"category":1063,"path":2098,"name":495,"line":308,"lines":1035},"docs\u002Fdesign\u002Fsecond_brain_graph_wf.js",{"category":1063,"path":2100,"name":495,"line":308,"lines":2101},"docs\u002Fdesign\u002Fsecond_brain_finish_wf.js",418,{"category":1063,"path":2103,"name":495,"line":308,"lines":2104},"demo\u002Fusecases\u002Fdoc-index\u002Fgrep-baseline.mjs",387,{"name":271,"url":2106,"description":2107,"language":300,"stars":2108,"starsToday":2109,"defaultBranch":323,"headSha":2110,"durationMs":2111,"total":2112,"formats":2117,"topClones":2133,"code":2239,"health":2317,"complexity":2338,"deadCode":2376},"https:\u002F\u002Fgithub.com\u002FLibreSpark\u002FLibreTV","一分钟搭建影视站，支持Docker等部署方式",18227,978,"a24ad336a3f7c8a16ca93d1f1198e08ac6b7e943",1025,{"sources":549,"lines":2113,"tokens":2114,"clones":272,"duplicatedLines":1797,"duplicatedTokens":2115,"percentage":273,"percentageTokens":2116},22245,139512,1613,1.16,[2118,2121,2123,2125,2127,2129,2130,2131,2132],{"format":342,"sources":785,"lines":2119,"clones":774,"duplicatedLines":556,"percentage":2120},12122,0.85,{"format":1287,"sources":957,"lines":2122,"clones":771,"duplicatedLines":402,"percentage":386},8410,{"format":377,"sources":760,"lines":934,"clones":760,"duplicatedLines":1375,"percentage":2124},8.12,{"format":1583,"sources":308,"lines":1447,"clones":308,"duplicatedLines":290,"percentage":2126},3.85,{"format":394,"sources":756,"lines":2128,"clones":776,"duplicatedLines":776,"percentage":776},710,{"format":382,"sources":308,"lines":1368,"clones":776,"duplicatedLines":776,"percentage":776},{"format":778,"sources":308,"lines":779,"clones":776,"duplicatedLines":776,"percentage":776},{"format":356,"sources":301,"lines":1732,"clones":776,"duplicatedLines":776,"percentage":776},{"format":363,"sources":308,"lines":1410,"clones":776,"duplicatedLines":776,"percentage":776},[2134,2159,2175,2199,2205,2213,2220,2226,2230,2235],{"format":342,"lines":906,"tokens":2135,"copies":760,"first":2136,"others":2139,"excerpt":2144,"excerptSecond":2155},78,{"name":2137,"start":2138,"end":1900},"src\u002Flib\u002Fm3u8.ts",85,[2140,2142],{"name":2137,"start":1253,"end":2141},178,{"name":2137,"start":2143,"end":850},257,{"lines":2145,"total":906},[2146,2147,2148,2149,2150,2151,2152,2153,495,2154],"export function stripLeadAdGroup(m3u8Content: string): string {","  if (!m3u8Content) return '';","  const lines = m3u8Content.split('\\n');","  const isDisc = (l: string) => l.trim() === '#EXT-X-DISCONTINUITY';","  const isSegment = (l: string) => {","    const t = l.trim();","    return t !== '' && !t.startsWith('#');","  };","  \u002F\u002F 多分组封装（采集站把流按固定块切分、每个衔接处都打 DISCONTINUITY）不是广告。",{"lines":2156,"total":756},[2157,2147,2148,2149,2150,2151,2152,2153,495,2158],"function stripMarkedAdGroups(m3u8Content: string): string {","  const drop = new Array\u003Cboolean>(lines.length).fill(false);",{"format":1287,"lines":336,"tokens":626,"copies":301,"first":2160,"others":2162,"excerpt":2164},{"name":2161,"start":1168,"end":1257},"src\u002Fcomponents\u002Fdouban-section.tsx",[2163],{"name":2161,"start":1359,"end":1509},{"lines":2165,"total":336},[2166,2167,2168,2169,495,2170,2171,2172,2173,2174],"      {name}","    \u003C\u002FChipButton>","  ))}","\u003C\u002Fdiv>","{query.isError ? (","  \u003Cp className=\"text-center text-sm text-faint py-8\">推荐内容加载失败，可稍后重试或在设置中关闭\u003C\u002Fp>",") : query.isLoading ? (","  \u003CGridSkeleton \u002F>",") : (",{"format":342,"lines":756,"tokens":2176,"copies":301,"first":2177,"others":2181,"excerpt":2185,"excerptSecond":2196},107,{"name":2178,"start":2179,"end":2180},"src\u002Flib\u002Fm3u8-downloader.ts",231,240,[2182],{"name":2178,"start":2183,"end":2184},244,253,{"lines":2186,"total":756},[2187,2188,2189,2190,2191,2192,2193,2194,1322,2195],"for (let i = 1; i \u003C= total; i++) {","  if (signal.aborted) return;","  await pause.waitIfPaused();","  const resp = await cache.match(new Request(chunkKey(i)));","  if (!resp) throw new Error(`分片 ${i} 缓存丢失，请重试`);","  let data = await resp.arrayBuffer();","  if (aesKey && parsed.aesConf) {","    data = await decryptSegment(data, aesKey, parsed.aesConf.iv, parsed.mediaSequence, i - 1);","  await transmuxer.pushAndTransmux(new Uint8Array(data));",{"lines":2197,"total":756},[2187,2188,2189,2190,2191,2192,2193,2194,1322,2198],"  await target.write(new Uint8Array(data));",{"format":1583,"lines":290,"tokens":556,"copies":301,"first":2200,"others":2203},{"name":2201,"start":754,"end":2202},"src\u002Fapp\u002Fglobals.css",35,[2204],{"name":2201,"start":907,"end":800},{"format":342,"lines":290,"tokens":793,"copies":760,"first":2206,"others":2208},{"name":2207,"start":401,"end":595},"src\u002Flib\u002Fenv-live-sources.ts",[2209,2211],{"name":2210,"start":401,"end":595},"src\u002Flib\u002Fenv-sources.ts",{"name":2212,"start":872,"end":450},"src\u002Flib\u002Fenv-subscriptions.ts",{"format":1287,"lines":595,"tokens":1208,"copies":301,"first":2214,"others":2217},{"name":2215,"start":2216,"end":960},"src\u002Fcomponents\u002Flive-source-manager.tsx",159,[2218],{"name":2219,"start":403,"end":1760},"src\u002Fcomponents\u002Fsource-manager.tsx",{"format":342,"lines":401,"tokens":1437,"copies":301,"first":2221,"others":2223},{"name":2222,"start":308,"end":401},"src\u002Flib\u002Fstore.test.ts",[2224],{"name":2225,"start":308,"end":401},"src\u002Flib\u002Fsubscription-sync.test.ts",{"format":342,"lines":401,"tokens":1222,"copies":301,"first":2227,"others":2228},{"name":2207,"start":450,"end":1410},[2229],{"name":2210,"start":450,"end":1410},{"format":377,"lines":1281,"tokens":883,"copies":301,"first":2231,"others":2233},{"name":2232,"start":969,"end":1437},".github\u002Fworkflows\u002Fdocker-publish.yml",[2234],{"name":2232,"start":1385,"end":557},{"format":1287,"lines":1281,"tokens":883,"copies":301,"first":2236,"others":2237},{"name":2161,"start":1229,"end":888},[2238],{"name":2161,"start":1172,"end":1257},{"sources":548,"lines":2240,"tokens":2241,"clones":288,"duplicatedLines":2242,"duplicatedTokens":2243,"percentage":289,"percentageTokens":386,"formats":2244,"topClones":2253,"generated":2315},17617,102118,163,1097,[2245,2246,2249,2251,2252],{"format":1287,"sources":957,"lines":2122,"clones":771,"duplicatedLines":402,"percentage":386},{"format":342,"sources":907,"lines":2247,"clones":771,"duplicatedLines":873,"percentage":2248},8319,0.88,{"format":394,"sources":401,"lines":2250,"clones":776,"duplicatedLines":776,"percentage":776},694,{"format":778,"sources":308,"lines":779,"clones":776,"duplicatedLines":776,"percentage":776},{"format":363,"sources":308,"lines":1410,"clones":776,"duplicatedLines":776,"percentage":776},[2254,2263,2269,2277,2282,2286,2290,2294,2302,2307],{"format":342,"lines":906,"tokens":2135,"copies":760,"first":2255,"others":2256,"excerpt":2259,"excerptSecond":2261},{"name":2137,"start":2138,"end":1900},[2257,2258],{"name":2137,"start":1253,"end":2141},{"name":2137,"start":2143,"end":850},{"lines":2260,"total":906},[2146,2147,2148,2149,2150,2151,2152,2153,495,2154],{"lines":2262,"total":756},[2157,2147,2148,2149,2150,2151,2152,2153,495,2158],{"format":1287,"lines":336,"tokens":626,"copies":301,"first":2264,"others":2265,"excerpt":2267},{"name":2161,"start":1168,"end":1257},[2266],{"name":2161,"start":1359,"end":1509},{"lines":2268,"total":336},[2166,2167,2168,2169,495,2170,2171,2172,2173,2174],{"format":342,"lines":756,"tokens":2176,"copies":301,"first":2270,"others":2271,"excerpt":2273,"excerptSecond":2275},{"name":2178,"start":2179,"end":2180},[2272],{"name":2178,"start":2183,"end":2184},{"lines":2274,"total":756},[2187,2188,2189,2190,2191,2192,2193,2194,1322,2195],{"lines":2276,"total":756},[2187,2188,2189,2190,2191,2192,2193,2194,1322,2198],{"format":342,"lines":290,"tokens":793,"copies":760,"first":2278,"others":2279},{"name":2207,"start":401,"end":595},[2280,2281],{"name":2210,"start":401,"end":595},{"name":2212,"start":872,"end":450},{"format":1287,"lines":595,"tokens":1208,"copies":301,"first":2283,"others":2284},{"name":2215,"start":2216,"end":960},[2285],{"name":2219,"start":403,"end":1760},{"format":342,"lines":401,"tokens":1222,"copies":301,"first":2287,"others":2288},{"name":2207,"start":450,"end":1410},[2289],{"name":2210,"start":450,"end":1410},{"format":1287,"lines":1281,"tokens":883,"copies":301,"first":2291,"others":2292},{"name":2161,"start":1229,"end":888},[2293],{"name":2161,"start":1172,"end":1257},{"format":1287,"lines":290,"tokens":969,"copies":301,"first":2295,"others":2298},{"name":2219,"start":2296,"end":2297},801,806,[2299],{"name":2219,"start":2300,"end":2301},847,852,{"format":1287,"lines":497,"tokens":907,"copies":301,"first":2303,"others":2304},{"name":2215,"start":918,"end":1410},[2305],{"name":2219,"start":2306,"end":1569},213,{"format":1287,"lines":756,"tokens":606,"copies":301,"first":2308,"others":2311},{"name":2309,"start":2310,"end":1447},"src\u002Fcomponents\u002Fdetail-modal.tsx",147,[2312],{"name":2313,"start":373,"end":2314},"src\u002Fcomponents\u002Fswitch-source.tsx",201,{"files":776,"minified":776,"sample":2316},[],{"score":293,"grade":294,"size":2318,"dimensions":2320},{"lines":2319,"files":1243,"class":1422},21420,[2321,2328,2333],{"id":977,"source":978,"value":2322,"adjusted":2323,"lines":2324,"halfLife":981,"formats":2325,"excluded":2326,"weight":308,"score":2327},0.9,1.1,193,[342,1287,394,778,363],[370,989,990],91.2,{"id":993,"source":978,"value":2329,"adjusted":2330,"lines":957,"halfLife":995,"coverage":1821,"weight":2331,"score":2332},0.2,0.4,0.96,96.2,{"id":1000,"source":978,"value":2334,"adjusted":2335,"lines":2336,"halfLife":597,"weight":308,"score":2337},52.1,49.4,11152,50.4,{"total":2339,"mean":2340,"files":2341},4534,34.1,[2342,2345,2349,2353,2357,2361,2364,2368,2371,2373],{"path":2219,"complexity":851,"lines":2343,"bytes":2344},1271,48663,{"path":2346,"complexity":824,"lines":2347,"bytes":2348},"src\u002Flib\u002Fstore.ts",872,38654,{"path":2350,"complexity":1447,"lines":2351,"bytes":2352},"src\u002Fcomponents\u002Flive-channel-list.tsx",594,23898,{"path":2354,"complexity":1168,"lines":2355,"bytes":2356},"src\u002Fcomponents\u002Fplayer-shell.tsx",528,22460,{"path":2358,"complexity":922,"lines":2359,"bytes":2360},"src\u002Fapp\u002Fapi\u002Flive\u002Fprobe\u002Froute.ts",591,22088,{"path":2362,"complexity":609,"lines":1597,"bytes":2363},"src\u002Flib\u002Ftvbox-parser.ts",13861,{"path":2365,"complexity":1247,"lines":2366,"bytes":2367},"src\u002Fapp\u002Flive\u002Fpage.tsx",468,20612,{"path":2137,"complexity":626,"lines":2369,"bytes":2370},309,13216,{"path":2372,"complexity":548,"lines":385,"bytes":584},"src\u002Fapp\u002Fwatch\u002Fpage.tsx",{"path":2374,"complexity":1209,"lines":1616,"bytes":2375},"src\u002Fcomponents\u002Flive-player.tsx",16328,{"percentage":2377,"findings":255,"files":702,"byCategory":2378,"largest":2380},0.16,[2379],{"category":1065,"count":255},[2381,2384,2387,2391],{"category":1065,"path":2382,"name":2383,"line":1223,"lines":1281},"src\u002Flib\u002Fvideo-cache.ts","hasCachedSegment",{"category":1065,"path":2382,"name":2385,"line":2386,"lines":1281},"deleteEpisodeCache",262,{"category":1065,"path":2388,"name":2389,"line":2390,"lines":290},"src\u002Flib\u002Ffetch-utils.ts","fetchUpstreamJson",116,{"category":1065,"path":2392,"name":2393,"line":1369,"lines":600},"src\u002Flib\u002Fclient-api.ts","SearchFailure",{"\u002Ftrending\u002F2026-10-16":2395},{"views":600,"visits":600},null,1792421138416]