[{"data":1,"prerenderedAt":3558},["ShallowReactive",2],{"navigation_docs":3,"trending-day-2026-11-10":249,"page-views-\u002Ftrending\u002F2026-11-10":3555,"trending-week-null":3557},[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":318},"2026-11-10","2026-11-10T05:21:45.471Z","github-trending-daily","5.4.3",{"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":278,"codeSources":279,"codeLines":280,"codeClones":281,"codeDuplicatedLines":282,"codePercentage":283,"codeMedianPercentage":284,"codeMostDuplicated":285,"codeCleanest":288,"generatedFiles":292,"avgHealth":293,"healthiest":294,"leastHealthy":297,"languages":300},7,6655,2455767,15582053,12883,222288,1419333,9.05,9.11,8.52,6.5,{"name":267,"clones":268,"percentage":269},"anthropics\u002Fskills",166,21.26,{"name":271,"clones":272,"percentage":273},"sherlock-project\u002Fsherlock",8,0.9,{"name":275,"clones":276,"percentage":277},"google-deepmind\u002Fmujoco",6000,14.19,6,2676,1135531,3527,57762,5.09,5.12,{"name":267,"clones":286,"percentage":287},30,30.32,{"name":289,"clones":290,"percentage":291},"ZhuLinsen\u002Fdaily_stock_analysis",326,1.96,61,49.77,{"name":271,"score":295,"grade":296},76.9,"B",{"name":267,"score":298,"grade":299},33.3,"E",[301,308,313],{"language":302,"repos":303,"clones":304,"lines":305,"duplicatedLines":306,"percentage":307},"Python",5,5825,1547359,108171,6.99,{"language":309,"repos":310,"clones":276,"lines":311,"duplicatedLines":312,"percentage":277},"C++",1,715651,101583,{"language":314,"repos":310,"clones":315,"lines":316,"duplicatedLines":317,"percentage":265},"Rust",1058,192757,12534,[319,766,993,1729,2080,2673,3186],{"name":267,"url":320,"description":321,"language":302,"stars":322,"starsToday":323,"defaultBranch":324,"headSha":325,"durationMs":326,"total":327,"formats":334,"topClones":395,"code":554,"health":661,"complexity":694,"deadCode":727},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","Public repository for Agent Skills",191287,1038,"main","2c5958ecac7cee2b583967a2c4981d0f4a75c579",1611,{"sources":328,"lines":329,"tokens":330,"clones":268,"duplicatedLines":331,"duplicatedTokens":332,"percentage":269,"percentageTokens":333},410,70053,677199,14891,95546,14.11,[335,342,349,356,363,368,375,380,385,389],{"format":336,"sources":337,"lines":338,"clones":339,"duplicatedLines":340,"percentage":341},"markdown",135,31670,51,2662,8.41,{"format":343,"sources":344,"lines":345,"clones":346,"duplicatedLines":347,"percentage":348},"txt",45,6123,47,5824,95.12,{"format":350,"sources":351,"lines":352,"clones":353,"duplicatedLines":354,"percentage":355},"python",95,20897,36,5961,28.53,{"format":357,"sources":358,"lines":359,"clones":360,"duplicatedLines":361,"percentage":362},"typescript",18,2311,13,168,7.27,{"format":364,"sources":272,"lines":365,"clones":303,"duplicatedLines":366,"percentage":367},"markup",2213,46,2.08,{"format":369,"sources":370,"lines":371,"clones":372,"duplicatedLines":373,"percentage":374},"json",19,1207,3,101,8.37,{"format":376,"sources":255,"lines":377,"clones":372,"duplicatedLines":378,"percentage":379},"go",732,32,4.37,{"format":381,"sources":303,"lines":382,"clones":383,"duplicatedLines":358,"percentage":384},"php",577,2,3.12,{"format":386,"sources":303,"lines":387,"clones":383,"duplicatedLines":358,"percentage":388},"java",547,3.29,{"format":390,"sources":391,"lines":392,"clones":310,"duplicatedLines":393,"percentage":394},"javascript",4,1426,9,0.63,[396,429,460,478,492,502,512,522,532,544],{"format":343,"lines":397,"tokens":398,"copies":360,"first":399,"others":402,"excerpt":419},201,1865,{"name":400,"start":383,"end":401},"skills\u002Facademy-guide\u002FLICENSE.txt",202,[403,405,407,409,411,413,415,417],{"name":404,"start":383,"end":401},"skills\u002Falgorithmic-art\u002FLICENSE.txt",{"name":406,"start":383,"end":401},"skills\u002Fbrand-guidelines\u002FLICENSE.txt",{"name":408,"start":383,"end":401},"skills\u002Fcanvas-design\u002FLICENSE.txt",{"name":410,"start":383,"end":401},"skills\u002Fclaude-api\u002FLICENSE.txt",{"name":412,"start":383,"end":401},"skills\u002Fdiscernment-nudge\u002FLICENSE.txt",{"name":414,"start":383,"end":401},"skills\u002Finternal-comms\u002FLICENSE.txt",{"name":416,"start":383,"end":401},"skills\u002Fmcp-builder\u002FLICENSE.txt",{"name":418,"start":383,"end":401},"skills\u002Fskill-creator\u002FLICENSE.txt",{"lines":420,"total":397},[421,422,423,424,425,424,426,424,427,428],"                              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":343,"lines":430,"tokens":431,"copies":432,"first":433,"others":435,"excerpt":452},93,912,20,{"name":434,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FArsenalSC-OFL.txt",[436,438,440,442,444,446,448,450],{"name":437,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBigShoulders-OFL.txt",{"name":439,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBoldonse-OFL.txt",{"name":441,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBricolageGrotesque-OFL.txt",{"name":443,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FCrimsonPro-OFL.txt",{"name":445,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FDMMono-OFL.txt",{"name":447,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FGeistMono-OFL.txt",{"name":449,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FGloock-OFL.txt",{"name":451,"start":310,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FInstrumentSans-OFL.txt",{"lines":453,"total":430},[454,424,455,456,457,424,424,458,459,458],"Copyright 2012 The Arsenal Project Authors (andrij.design@gmail.com)","This Font Software is licensed under the SIL Open Font License, Version 1.1.","This license is copied below, and is also available with a FAQ at:","https:\u002F\u002Fopenfontlicense.org","-----------------------------------------------------------","SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007",{"format":350,"lines":461,"tokens":462,"copies":372,"first":463,"others":465,"excerpt":470},875,4068,{"name":464,"start":310,"end":461},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",[466,468],{"name":467,"start":310,"end":461},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"name":469,"start":310,"end":461},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"lines":471,"total":461},[472,473,472,424,474,475,424,476,477,424],"\"\"\"","Base validator with common validation logic for document files.","import re","from pathlib import Path","import defusedxml.minidom","from functools import lru_cache",{"format":343,"lines":479,"tokens":480,"copies":303,"first":481,"others":483},189,1759,{"name":400,"start":383,"end":482},190,[484,486,488,490],{"name":485,"start":383,"end":482},"skills\u002Fdocx\u002FLICENSE.txt",{"name":487,"start":383,"end":482},"skills\u002Fpdf\u002FLICENSE.txt",{"name":489,"start":383,"end":482},"skills\u002Fpptx\u002FLICENSE.txt",{"name":491,"start":383,"end":482},"skills\u002Fxlsx\u002FLICENSE.txt",{"format":350,"lines":493,"tokens":494,"copies":372,"first":495,"others":497},466,2005,{"name":496,"start":310,"end":493},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",[498,500],{"name":499,"start":310,"end":493},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"name":501,"start":310,"end":493},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"format":350,"lines":503,"tokens":504,"copies":372,"first":505,"others":507},441,1986,{"name":506,"start":310,"end":503},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",[508,510],{"name":509,"start":310,"end":503},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"name":511,"start":310,"end":503},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"format":350,"lines":513,"tokens":514,"copies":372,"first":515,"others":517},192,1529,{"name":516,"start":310,"end":513},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fsoffice.py",[518,520],{"name":519,"start":310,"end":513},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"name":521,"start":310,"end":513},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"format":350,"lines":523,"tokens":524,"copies":372,"first":525,"others":527},299,1470,{"name":526,"start":310,"end":523},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",[528,530],{"name":529,"start":310,"end":523},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"name":531,"start":310,"end":523},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"format":343,"lines":533,"tokens":534,"copies":391,"first":535,"others":536},91,911,{"name":434,"start":372,"end":430},[537,540,542],{"name":538,"start":391,"end":539},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FEricaOne-OFL.txt",94,{"name":541,"start":372,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FIBMPlexMono-OFL.txt",{"name":543,"start":372,"end":430},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FItaliana-OFL.txt",{"format":350,"lines":545,"tokens":546,"copies":372,"first":547,"others":549},170,1128,{"name":548,"start":310,"end":545},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",[550,552],{"name":551,"start":310,"end":545},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",{"name":553,"start":310,"end":545},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",{"sources":555,"lines":556,"tokens":557,"clones":286,"duplicatedLines":558,"duplicatedTokens":559,"percentage":287,"percentageTokens":560,"formats":561,"topClones":575,"generated":659},67,19471,116265,5903,29706,25.55,[562,568,571],{"format":350,"sources":563,"lines":564,"clones":565,"duplicatedLines":566,"percentage":567},62,17800,29,5894,33.11,{"format":390,"sources":372,"lines":569,"clones":310,"duplicatedLines":393,"percentage":570},1295,0.69,{"format":572,"sources":383,"lines":573,"clones":574,"duplicatedLines":574,"percentage":574},"bash",376,0,[576,583,594,604,609,614,619,629,639,649],{"format":350,"lines":461,"tokens":462,"copies":372,"first":577,"others":578,"excerpt":581},{"name":464,"start":310,"end":461},[579,580],{"name":467,"start":310,"end":461},{"name":469,"start":310,"end":461},{"lines":582,"total":461},[472,473,472,424,474,475,424,476,477,424],{"format":350,"lines":493,"tokens":494,"copies":372,"first":584,"others":585,"excerpt":588},{"name":496,"start":310,"end":493},[586,587],{"name":499,"start":310,"end":493},{"name":501,"start":310,"end":493},{"lines":589,"total":493},[472,590,472,424,591,474,592,593,475,424],"Validator for Word document XML files against XSD schemas.","import random","import tempfile","import zipfile",{"format":350,"lines":503,"tokens":504,"copies":372,"first":595,"others":596,"excerpt":599},{"name":506,"start":310,"end":503},[597,598],{"name":509,"start":310,"end":503},{"name":511,"start":310,"end":503},{"lines":600,"total":503},[472,601,472,424,474,475,424,602,424,603],"Validator for PowerPoint presentation XML files against XSD schemas.","from helpers import opc_target, rels_source_part, safe_extract","from .base import BaseSchemaValidator",{"format":350,"lines":513,"tokens":514,"copies":372,"first":605,"others":606},{"name":516,"start":310,"end":513},[607,608],{"name":519,"start":310,"end":513},{"name":521,"start":310,"end":513},{"format":350,"lines":523,"tokens":524,"copies":372,"first":610,"others":611},{"name":526,"start":310,"end":523},[612,613],{"name":529,"start":310,"end":523},{"name":531,"start":310,"end":523},{"format":350,"lines":545,"tokens":546,"copies":372,"first":615,"others":616},{"name":548,"start":310,"end":545},[617,618],{"name":551,"start":310,"end":545},{"name":553,"start":310,"end":545},{"format":350,"lines":620,"tokens":621,"copies":372,"first":622,"others":624},173,840,{"name":623,"start":310,"end":620},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidate.py",[625,627],{"name":626,"start":310,"end":620},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"name":628,"start":310,"end":620},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"format":350,"lines":630,"tokens":631,"copies":372,"first":632,"others":634},111,663,{"name":633,"start":310,"end":630},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",[635,637],{"name":636,"start":310,"end":630},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"name":638,"start":310,"end":630},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"format":350,"lines":640,"tokens":641,"copies":372,"first":642,"others":644},114,656,{"name":643,"start":310,"end":640},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",[645,647],{"name":646,"start":310,"end":640},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",{"name":648,"start":310,"end":640},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",{"format":350,"lines":650,"tokens":651,"copies":372,"first":652,"others":654},60,217,{"name":653,"start":310,"end":650},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",[655,657],{"name":656,"start":310,"end":650},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",{"name":658,"start":310,"end":650},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",{"files":574,"minified":574,"sample":660},[],{"score":298,"grade":299,"size":662,"dimensions":666},{"lines":663,"files":664,"class":665},19579,70,"M",[667,678,687],{"id":668,"source":669,"value":670,"adjusted":671,"lines":558,"halfLife":672,"formats":673,"excluded":674,"weight":310,"score":677},"duplication","jscpd",30.1,27.7,8.5,[350,390,572],[364,675,676],"text","data",10.5,{"id":679,"source":669,"value":680,"adjusted":681,"lines":682,"halfLife":683,"coverage":684,"weight":685,"score":686},"dead-code",1.4,1.5,267,7.5,98.5,0.985,86.7,{"id":688,"source":669,"value":689,"adjusted":690,"lines":691,"halfLife":692,"weight":310,"score":693},"complexity",68.8,64.4,13476,50,41,{"total":695,"mean":696,"files":697},4830,69,[698,703,708,711,712,713,718,722,725,726],{"path":699,"complexity":700,"lines":701,"bytes":702},"skills\u002Fclaude-api\u002Fshared\u002Fpreserved-thinking-migration\u002Fprefix_diff.py",769,1532,94008,{"path":704,"complexity":705,"lines":706,"bytes":707},"skills\u002Fclaude-api\u002Fshared\u002Fpreserved-thinking-migration\u002Fdrop_block_probe.py",432,1066,66582,{"path":464,"complexity":709,"lines":461,"bytes":710},219,33756,{"path":467,"complexity":709,"lines":461,"bytes":710},{"path":469,"complexity":709,"lines":461,"bytes":710},{"path":714,"complexity":715,"lines":716,"bytes":717},"skills\u002Fclaude-api\u002Fshared\u002Fevals\u002Freport\u002Fbuild-report-lite.mjs",218,488,27329,{"path":719,"complexity":620,"lines":720,"bytes":721},"skills\u002Fclaude-api\u002Fshared\u002Fevals\u002Freport\u002Frunner-scaffold.mjs",602,33142,{"path":496,"complexity":723,"lines":493,"bytes":724},124,17482,{"path":499,"complexity":723,"lines":493,"bytes":724},{"path":501,"complexity":723,"lines":493,"bytes":724},{"percentage":728,"findings":729,"files":730,"byCategory":731,"largest":740},1.38,11,75,[732,734,736,738],{"category":733,"count":383},"unused-file",{"category":735,"count":372},"unused-export",{"category":737,"count":372},"unused-symbol",{"category":739,"count":372},"unused-import",[741,744,746,750,753,755,756,757,760,763],{"category":733,"path":742,"name":424,"line":310,"lines":743},"skills\u002Falgorithmic-art\u002Ftemplates\u002Fgenerator_template.js",223,{"category":733,"path":745,"name":424,"line":310,"lines":729},"skills\u002Fpdf\u002Fscripts\u002Fcheck_fillable_fields.py",{"category":737,"path":747,"name":748,"line":749,"lines":278},"skills\u002Fdocx\u002Fscripts\u002Fcomment.py","_has_relationship",148,{"category":737,"path":747,"name":751,"line":752,"lines":278},"_has_content_type",156,{"category":735,"path":643,"name":754,"line":373,"lines":303},"find_shared_master_themes",{"category":735,"path":646,"name":754,"line":373,"lines":303},{"category":735,"path":648,"name":754,"line":373,"lines":303},{"category":737,"path":699,"name":758,"line":759,"lines":372},"_item_count",427,{"category":739,"path":761,"name":762,"line":255,"lines":310},"skills\u002Fskill-creator\u002Fscripts\u002Fquick_validate.py","os",{"category":739,"path":764,"name":765,"line":729,"lines":310},"skills\u002Fslack-gif-creator\u002Fcore\u002Fframe_composer.py","np",{"name":271,"url":767,"description":768,"language":302,"stars":769,"starsToday":770,"defaultBranch":771,"headSha":772,"durationMs":773,"total":774,"formats":780,"topClones":809,"code":902,"health":930,"complexity":950,"deadCode":990},"https:\u002F\u002Fgithub.com\u002Fsherlock-project\u002Fsherlock","Hunt down social media accounts by username across social networks",107565,4267,"master","c588d7c8b476df9f9c84912a05d1430fb8cdcdae",996,{"sources":346,"lines":775,"tokens":776,"clones":272,"duplicatedLines":777,"duplicatedTokens":778,"percentage":273,"percentageTokens":779},9968,40953,90,607,1.48,[781,786,791,793,795,798,800,802,805,807],{"format":782,"sources":393,"lines":783,"clones":303,"duplicatedLines":784,"percentage":785},"yaml",541,53,9.8,{"format":350,"sources":787,"lines":788,"clones":372,"duplicatedLines":789,"percentage":790},16,2168,37,1.71,{"format":369,"sources":303,"lines":792,"clones":574,"duplicatedLines":574,"percentage":574},4588,{"format":336,"sources":278,"lines":794,"clones":574,"duplicatedLines":574,"percentage":574},2397,{"format":796,"sources":310,"lines":797,"clones":574,"duplicatedLines":574,"percentage":574},"toml",68,{"format":675,"sources":372,"lines":799,"clones":574,"duplicatedLines":574,"percentage":574},64,{"format":801,"sources":383,"lines":692,"clones":574,"duplicatedLines":574,"percentage":574},"docker",{"format":803,"sources":383,"lines":804,"clones":574,"duplicatedLines":574,"percentage":574},"ini",49,{"format":572,"sources":383,"lines":806,"clones":574,"duplicatedLines":574,"percentage":574},25,{"format":808,"sources":310,"lines":358,"clones":574,"duplicatedLines":574,"percentage":574},"editorconfig",[810,835,856,872,879,886,894],{"format":782,"lines":729,"tokens":811,"copies":372,"first":812,"others":816,"excerpt":823},80,{"name":813,"start":814,"end":815},".github\u002FISSUE_TEMPLATE\u002Ffalse-negative.yml",17,27,[817,820],{"name":818,"start":358,"end":819},".github\u002FISSUE_TEMPLATE\u002Ffalse-positive.yml",28,{"name":821,"start":806,"end":822},".github\u002FISSUE_TEMPLATE\u002Fsite-request.yml",35,{"lines":824,"total":729},[825,826,827,828,829,830,831,832,833,834],"      Reddit is returning false negatives because...","  validations:","    required: false","- type: checkboxes","  id: terms","  attributes:","    label: Code of Conduct","    description: By submitting this issue, you agree to follow our [Code of Conduct](https:\u002F\u002Fgithub.com\u002Fsherlock-project\u002Fsherlock\u002Fblob\u002Fmaster\u002Fdocs\u002FCODE_OF_COND…","    options:","      - label: I agree to follow this project's Code of Conduct",{"format":350,"lines":836,"tokens":837,"copies":383,"first":838,"others":841,"excerpt":844},12,107,{"name":839,"start":563,"end":840},"tests\u002Ftest_probes.py",73,[842],{"name":839,"start":843,"end":351},84,{"lines":845,"total":836},[846,847,848,849,850,851,852,853,854,855],"def test_likely_negatives_via_message(self, sites_info, site, random_len):","    num_attempts: int = 3","    attempted_usernames: list[str] = []","    status: QueryStatus = QueryStatus.CLAIMED","    for i in range(num_attempts):","        acceptable_types = string.ascii_letters + string.digits","        random_handle = ''.join(random.choice(acceptable_types) for _ in range (random_len))","        attempted_usernames.append(random_handle)","        status = simple_query(sites_info=sites_info, site=site, username=random_handle)","        if status is QueryStatus.AVAILABLE:",{"format":782,"lines":836,"tokens":811,"copies":383,"first":857,"others":859,"excerpt":861},{"name":813,"start":391,"end":858},15,[860],{"name":818,"start":391,"end":858},{"lines":862,"total":836},[863,864,865,866,867,868,869,870,871,866],"labels: [\"false negative\"]","body:","  - type: markdown","    attributes:","      value: |","        Please include the site name in the title of your issue.","        Submit **one site per report** for faster resolution. If you have multiple sites in the same report, it often takes longer to fix.","  - type: textarea","    id: additional-info",{"format":782,"lines":729,"tokens":873,"copies":383,"first":874,"others":877},78,{"name":875,"start":292,"end":876},".github\u002FISSUE_TEMPLATE\u002Fbug-report.yml",71,[878],{"name":813,"start":814,"end":815},{"format":782,"lines":272,"tokens":880,"copies":383,"first":881,"others":882},72,{"name":875,"start":799,"end":876},[883],{"name":884,"start":814,"end":885},".github\u002FISSUE_TEMPLATE\u002Ffeature-request.yml",24,{"format":350,"lines":887,"tokens":888,"copies":383,"first":889,"others":892},10,56,{"name":890,"start":891,"end":346},"tests\u002Ftest_validate_targets.py",38,[893],{"name":890,"start":292,"end":664},{"format":350,"lines":858,"tokens":895,"copies":383,"first":896,"others":899},54,{"name":897,"start":344,"end":898},"sherlock_project\u002Fnotify.py",59,[900],{"name":897,"start":901,"end":351},81,{"sources":393,"lines":903,"tokens":904,"clones":310,"duplicatedLines":858,"duplicatedTokens":895,"percentage":905,"percentageTokens":906,"formats":907,"topClones":913,"generated":928},1745,7342,0.86,0.74,[908,911],{"format":350,"sources":272,"lines":909,"clones":310,"duplicatedLines":858,"percentage":910},1731,0.87,{"format":572,"sources":310,"lines":912,"clones":574,"duplicatedLines":574,"percentage":574},14,[914],{"format":350,"lines":858,"tokens":895,"copies":383,"first":915,"others":916,"excerpt":918},{"name":897,"start":344,"end":898},[917],{"name":897,"start":901,"end":351},{"lines":919,"total":858},[920,921,424,922,923,924,925,926,424,927],"any queries are performed.  This method will typically be","overridden by higher level classes that will inherit from it.","Keyword Arguments:","self                   -- This object.","message                -- Object that is used to give context to start","                          of query.","                          Default is None.","Return Value:",{"files":574,"minified":574,"sample":929},[],{"score":295,"grade":296,"size":931,"dimensions":934},{"lines":932,"files":370,"class":933},2232,"S",[935,941,945],{"id":668,"source":669,"value":936,"adjusted":937,"lines":789,"halfLife":672,"formats":938,"excluded":939,"weight":310,"score":940},1.7,2.5,[350,801,572],[675,676],81.4,{"id":679,"source":669,"value":574,"adjusted":681,"lines":574,"halfLife":683,"coverage":942,"weight":943,"score":944},97.5,0.975,87.2,{"id":688,"source":669,"value":946,"adjusted":947,"lines":948,"halfLife":692,"weight":310,"score":949},41.8,31.9,934,64.2,{"total":951,"mean":952,"files":953},284,14.9,[954,958,963,967,970,973,976,979,983,986],{"path":955,"complexity":956,"lines":948,"bytes":957},"sherlock_project\u002Fsherlock.py",125,34664,{"path":959,"complexity":960,"lines":961,"bytes":962},"sherlock_project\u002Fsites.py",31,258,10151,{"path":897,"complexity":964,"lines":965,"bytes":966},23,282,9141,{"path":890,"complexity":358,"lines":968,"bytes":969},99,4558,{"path":971,"complexity":814,"lines":880,"bytes":972},"devel\u002Fsummarize_site_validation.py",2637,{"path":974,"complexity":360,"lines":339,"bytes":975},"tests\u002Fconftest.py",2015,{"path":839,"complexity":360,"lines":977,"bytes":978},104,4654,{"path":980,"complexity":729,"lines":981,"bytes":982},"tests\u002Ftest_ux.py",43,1809,{"path":984,"complexity":272,"lines":891,"bytes":985},"tests\u002Fsherlock_interactives.py",1423,{"path":987,"complexity":391,"lines":988,"bytes":989},"sherlock_project\u002Fresult.py",88,3169,{"percentage":574,"findings":574,"files":814,"byCategory":991,"largest":992},[],[],{"name":275,"url":994,"description":995,"language":309,"stars":996,"starsToday":997,"defaultBranch":324,"headSha":998,"durationMs":999,"total":1000,"formats":1005,"topClones":1065,"code":1293,"health":1613,"complexity":1640,"deadCode":1692},"https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmujoco","Multi-Joint dynamics with Contact. A general purpose physics simulator.",17017,574,"a937a4f916dc586660145973b015e56e04043377",4881,{"sources":1001,"lines":311,"tokens":1002,"clones":276,"duplicatedLines":312,"duplicatedTokens":1003,"percentage":277,"percentageTokens":1004},1682,5077390,654029,12.88,[1006,1013,1019,1025,1031,1038,1044,1051,1056,1061],{"format":1007,"sources":1008,"lines":1009,"clones":1010,"duplicatedLines":1011,"percentage":1012},"cpp",311,255913,3174,31835,12.44,{"format":364,"sources":1014,"lines":1015,"clones":1016,"duplicatedLines":1017,"percentage":1018},469,89776,1201,41397,46.11,{"format":350,"sources":1020,"lines":1021,"clones":1022,"duplicatedLines":1023,"percentage":1024},252,119070,754,13619,11.44,{"format":1026,"sources":804,"lines":1027,"clones":1028,"duplicatedLines":1029,"percentage":1030},"c",81648,281,2713,3.32,{"format":1032,"sources":1033,"lines":1034,"clones":1035,"duplicatedLines":1036,"percentage":1037},"c-header",226,61604,210,6504,10.56,{"format":1039,"sources":344,"lines":1040,"clones":1041,"duplicatedLines":1042,"percentage":1043},"rest",54203,196,2229,4.11,{"format":1045,"sources":1046,"lines":1047,"clones":1048,"duplicatedLines":1049,"percentage":1050},"csharp",132,24427,115,1317,5.39,{"format":1052,"sources":555,"lines":1053,"clones":858,"duplicatedLines":1054,"percentage":1055},"cmake",7678,1277,16.63,{"format":336,"sources":1057,"lines":1058,"clones":912,"duplicatedLines":1059,"percentage":1060},42,6049,119,1.97,{"format":357,"sources":272,"lines":1062,"clones":729,"duplicatedLines":1063,"percentage":1064},3857,98,2.54,[1066,1106,1127,1153,1180,1200,1223,1234,1243,1263],{"format":364,"lines":1067,"tokens":1068,"copies":393,"first":1069,"others":1072,"excerpt":1095},171,1837,{"name":1070,"start":822,"end":1071},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F02_humanoids.xml",205,[1073,1076,1079,1083,1085,1088,1090,1092],{"name":1074,"start":891,"end":1075},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F03_humanoids.xml",208,{"name":1077,"start":693,"end":1078},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F04_humanoids.xml",211,{"name":1080,"start":1081,"end":1082},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F05_humanoids.xml",44,214,{"name":1084,"start":346,"end":651},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F06_humanoids.xml",{"name":1086,"start":692,"end":1087},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F07_humanoids.xml",220,{"name":1089,"start":784,"end":743},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F08_humanoids.xml",{"name":1091,"start":888,"end":1033},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F09_humanoids.xml",{"name":1093,"start":898,"end":1094},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F10_humanoids.xml",229,{"lines":1096,"total":1067},[1097,1098,1099,424,1100,1101,1102,1103,1104,1105],"    \u003Cgeom type=\"capsule\" condim=\"3\" friction=\".7\" solimp=\".9 .99 .003\" solref=\".015 1\" material=\"body\" contype=\"4\" conaffinity=\"3\"\u002F>","  \u003C\u002Fdefault>","\u003C\u002Fdefault>","\u003Cvisual>","  \u003Cmap force=\"0.1\" zfar=\"30\"\u002F>","  \u003Crgba haze=\"0.15 0.25 0.35 1\"\u002F>","  \u003Cquality shadowsize=\"4096\"\u002F>","  \u003Cglobal offwidth=\"800\" offheight=\"800\"\u002F>","\u003C\u002Fvisual>",{"format":364,"lines":1107,"tokens":1108,"copies":383,"first":1109,"others":1112,"excerpt":1115},802,7524,{"name":1110,"start":346,"end":1111},"model\u002Fflex\u002Fbag.xml",848,[1113],{"name":1114,"start":346,"end":1111},"model\u002Fflex\u002Fbag_hoop.xml",{"lines":1116,"total":1107},[1117,1118,1119,1120,1121,1122,1123,1124,1125,1126],"\u003Cgeom type=\"plane\" size=\"0 0 .05\" material=\"plane\"\u002F>","\u003Cflexcomp name=\"bag\" type=\"direct\" dim=\"2\" radius=\"0.002\" mass=\"0.06\" rgba=\".93 .95 .97 .45\"","          point=\"0.0899 0.0000 0.0300 0.0868 0.0233 0.0300 0.0778 0.0449 0.0300 0.0635 0.0635 0.0300 0.0449 0.0778 0.0300 0.0233 0.0868 0.0300 0.0000 0.0899 0.…","          element=\"0 1 25 0 25 24 1 2 26 1 26 25 2 3 27 2 27 26 3 4 28 3 28 27 4 5 29 4 29 28 5 6 30 5 30 29 6 7 31 6 31 30 7 8 32 7 32 31 8 9 33 8 33 32 9 10 …","  \u003Celasticity young=\"21739.5498\" poisson=\"0.4\" thickness=\"6.70820393e-4\" elastic2d=\"both\" damping=\"0.015\"\u002F>","  \u003Ccontact selfcollide=\"none\"\u002F>","\u003C\u002Fflexcomp>","\u003Cbody name=\"s0\" pos=\"0.14202 -0.05094 0.22450\">","  \u003Cinertial pos=\"0 0 0\" mass=\"0.0002\" diaginertia=\"1e-10 1e-10 1e-10\"\u002F>","  \u003Cjoint type=\"slide\" axis=\"1 0 0\"\u002F>",{"format":364,"lines":255,"tokens":1128,"copies":1129,"first":1130,"others":1131,"excerpt":1144,"excerptSecond":1150},52,126,{"name":1110,"start":895,"end":650},[1132,1134,1135,1136,1137,1138,1140,1142],{"name":1110,"start":650,"end":1133},66,{"name":1110,"start":1133,"end":880},{"name":1110,"start":880,"end":873},{"name":1110,"start":873,"end":843},{"name":1110,"start":843,"end":777},{"name":1110,"start":777,"end":1139},96,{"name":1110,"start":1139,"end":1141},102,{"name":1110,"start":1141,"end":1143},108,{"lines":1145,"total":255},[1124,1125,1126,1146,1147,1148,1149],"  \u003Cjoint type=\"slide\" axis=\"0 1 0\"\u002F>","  \u003Cjoint type=\"slide\" axis=\"0 0 1\"\u002F>","\u003C\u002Fbody>","\u003Cbody name=\"s1\" pos=\"0.14202 -0.05094 0.23550\">",{"lines":1151,"total":255},[1149,1125,1126,1146,1147,1148,1152],"\u003Cbody name=\"s2\" pos=\"0.14721 -0.03637 0.22450\">",{"format":364,"lines":1154,"tokens":1155,"copies":272,"first":1156,"others":1159},86,913,{"name":1074,"start":1157,"end":1158},200,285,[1160,1163,1166,1169,1172,1175,1177],{"name":1077,"start":1161,"end":1162},203,288,{"name":1080,"start":1164,"end":1165},206,291,{"name":1084,"start":1167,"end":1168},209,294,{"name":1086,"start":1170,"end":1171},212,297,{"name":1089,"start":1173,"end":1174},215,300,{"name":1091,"start":715,"end":1176},303,{"name":1093,"start":1178,"end":1179},221,306,{"format":364,"lines":787,"tokens":1181,"copies":895,"first":1182,"others":1184},105,{"name":1183,"start":310,"end":787},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Factuator\u002Farm21.xml",[1185,1187,1189,1190,1192,1194,1196,1198],{"name":1186,"start":310,"end":787},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Factuator\u002Farm26.xml",{"name":1188,"start":310,"end":787},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002Fhumanoid.xml",{"name":1110,"start":310,"end":787},{"name":1191,"start":310,"end":787},"model\u002Fflex\u002Fbasket.xml",{"name":1193,"start":310,"end":787},"model\u002Fflex\u002Fbelt.xml",{"name":1195,"start":310,"end":787},"model\u002Fflex\u002Fbunny.xml",{"name":1197,"start":310,"end":787},"model\u002Fflex\u002Fcable.xml",{"name":1199,"start":310,"end":787},"model\u002Fflex\u002Fcoil.xml",{"format":364,"lines":1154,"tokens":1155,"copies":255,"first":1201,"others":1204},{"name":1077,"start":1202,"end":1203},280,365,[1205,1208,1211,1214,1217,1220],{"name":1080,"start":1206,"end":1207},283,368,{"name":1084,"start":1209,"end":1210},286,371,{"name":1086,"start":1212,"end":1213},289,374,{"name":1089,"start":1215,"end":1216},292,377,{"name":1091,"start":1218,"end":1219},295,380,{"name":1093,"start":1221,"end":1222},298,383,{"format":364,"lines":1224,"tokens":1225,"copies":383,"first":1226,"others":1230},426,5043,{"name":1227,"start":1228,"end":1229},"src\u002Fxml\u002Fgenerated\u002Fdmcontrol_schema.xml",260,685,[1231],{"name":1227,"start":1232,"end":1233},684,1109,{"format":364,"lines":1235,"tokens":1236,"copies":383,"first":1237,"others":1240},1399,4822,{"name":1238,"start":358,"end":1239},"model\u002Fflex\u002Fponcho.xml",1416,[1241],{"name":1242,"start":358,"end":1239},"model\u002Fflex\u002Fponcho_edgeequality.xml",{"format":364,"lines":1154,"tokens":1155,"copies":278,"first":1244,"others":1247},{"name":1080,"start":1245,"end":1246},360,445,[1248,1251,1254,1257,1260],{"name":1084,"start":1249,"end":1250},363,448,{"name":1086,"start":1252,"end":1253},366,451,{"name":1089,"start":1255,"end":1256},369,454,{"name":1091,"start":1258,"end":1259},372,457,{"name":1093,"start":1261,"end":1262},375,460,{"format":364,"lines":729,"tokens":1264,"copies":891,"first":1265,"others":1268},113,{"name":1227,"start":1266,"end":1267},2403,2413,[1269,1272,1275,1278,1281,1284,1287,1290],{"name":1227,"start":1270,"end":1271},2508,2518,{"name":1227,"start":1273,"end":1274},2523,2533,{"name":1227,"start":1276,"end":1277},2536,2546,{"name":1227,"start":1279,"end":1280},2549,2559,{"name":1227,"start":1282,"end":1283},2562,2572,{"name":1227,"start":1285,"end":1286},2575,2585,{"name":1227,"start":1288,"end":1289},2588,2598,{"name":1227,"start":1291,"end":1292},2601,2611,{"sources":1294,"lines":1295,"tokens":1296,"clones":1297,"duplicatedLines":1298,"duplicatedTokens":1299,"percentage":1300,"percentageTokens":1301,"formats":1302,"topClones":1338,"generated":1590},654,318700,2090013,1177,14998,93320,4.71,4.47,[1303,1309,1315,1320,1324,1327,1331,1334,1337],{"format":350,"sources":1304,"lines":1305,"clones":1306,"duplicatedLines":1307,"percentage":1308},144,75620,490,7959,10.52,{"format":1007,"sources":1310,"lines":1311,"clones":1312,"duplicatedLines":1313,"percentage":1314},169,110080,329,3206,2.91,{"format":1026,"sources":1316,"lines":1317,"clones":1318,"duplicatedLines":279,"percentage":1319},48,80767,277,3.31,{"format":1032,"sources":401,"lines":1321,"clones":799,"duplicatedLines":1322,"percentage":1323},40424,888,2.2,{"format":1045,"sources":730,"lines":1325,"clones":887,"duplicatedLines":539,"percentage":1326},8565,1.1,{"format":572,"sources":272,"lines":1328,"clones":303,"duplicatedLines":1329,"percentage":1330},1734,146,8.42,{"format":1332,"sources":303,"lines":720,"clones":310,"duplicatedLines":787,"percentage":1333},"objectivec",2.66,{"format":357,"sources":383,"lines":1335,"clones":310,"duplicatedLines":360,"percentage":1336},532,2.44,{"format":390,"sources":310,"lines":573,"clones":574,"duplicatedLines":574,"percentage":574},[1339,1380,1413,1443,1472,1501,1526,1540,1566,1573],{"format":350,"lines":814,"tokens":555,"copies":344,"first":1340,"others":1344,"excerpt":1369},{"name":1341,"start":1342,"end":1343},"python\u002Fmujoco\u002Fintrospect\u002Ffunctions.py",774,790,[1345,1348,1351,1354,1357,1360,1363,1366],{"name":1341,"start":1346,"end":1347},794,810,{"name":1341,"start":1349,"end":1350},814,830,{"name":1341,"start":1352,"end":1353},834,850,{"name":1341,"start":1355,"end":1356},854,870,{"name":1341,"start":1358,"end":1359},1192,1208,{"name":1341,"start":1361,"end":1362},1212,1228,{"name":1341,"start":1364,"end":1365},1771,1787,{"name":1341,"start":1367,"end":1368},1791,1807,{"lines":1370,"total":814},[1371,1372,1373,1374,1375,1376,1377,1378,1379,1374],"name='mj_step',","return_type=ValueType(name='void'),","parameters=(","    FunctionParameterDecl(","        name='m',","        type=PointerType(","            inner_type=ValueType(name='mjModel', is_const=True),","        ),","    ),",{"format":350,"lines":787,"tokens":1381,"copies":565,"first":1382,"others":1385,"excerpt":1410},63,{"name":1341,"start":1383,"end":1384},1578,1593,[1386,1389,1392,1395,1398,1401,1404,1407],{"name":1341,"start":1387,"end":1388},2746,2761,{"name":1341,"start":1390,"end":1391},2872,2887,{"name":1341,"start":1393,"end":1394},3120,3135,{"name":1341,"start":1396,"end":1397},3152,3167,{"name":1341,"start":1399,"end":1400},3184,3199,{"name":1341,"start":1402,"end":1403},3229,3244,{"name":1341,"start":1405,"end":1406},3267,3282,{"name":1341,"start":1408,"end":1409},3335,3350,{"lines":1411,"total":787},[1372,1373,1374,1375,1376,1377,1378,1379,1374,1412],"        name='d',",{"format":350,"lines":858,"tokens":1381,"copies":1414,"first":1415,"others":1417,"excerpt":1441},26,{"name":1341,"start":1342,"end":1416},788,[1418,1420,1423,1426,1429,1432,1435,1438],{"name":1341,"start":1419,"end":1322},874,{"name":1341,"start":1421,"end":1422},902,916,{"name":1341,"start":1424,"end":1425},1232,1246,{"name":1341,"start":1427,"end":1428},1256,1270,{"name":1341,"start":1430,"end":1431},1911,1925,{"name":1341,"start":1433,"end":1434},2375,2389,{"name":1341,"start":1436,"end":1437},2411,2425,{"name":1341,"start":1439,"end":1440},2513,2527,{"lines":1442,"total":858},[1371,1372,1373,1374,1375,1376,1377,1378,1379,1374],{"format":350,"lines":912,"tokens":784,"copies":1414,"first":1444,"others":1447},{"name":1341,"start":1445,"end":1446},877,890,[1448,1451,1454,1457,1460,1463,1466,1469],{"name":1341,"start":1449,"end":1450},1235,1248,{"name":1341,"start":1452,"end":1453},1259,1272,{"name":1341,"start":1455,"end":1456},1914,1927,{"name":1341,"start":1458,"end":1459},2378,2391,{"name":1341,"start":1461,"end":1462},2414,2427,{"name":1341,"start":1464,"end":1465},2516,2529,{"name":1341,"start":1467,"end":1468},2692,2705,{"name":1341,"start":1470,"end":1471},2812,2825,{"format":350,"lines":360,"tokens":1473,"copies":964,"first":1474,"others":1476},57,{"name":1341,"start":1342,"end":1475},786,[1477,1480,1483,1486,1489,1492,1495,1498],{"name":1341,"start":1478,"end":1479},1577,1589,{"name":1341,"start":1481,"end":1482},1609,1621,{"name":1341,"start":1484,"end":1485},2745,2757,{"name":1341,"start":1487,"end":1488},3119,3131,{"name":1341,"start":1490,"end":1491},3151,3163,{"name":1341,"start":1493,"end":1494},3183,3195,{"name":1341,"start":1496,"end":1497},3228,3240,{"name":1341,"start":1499,"end":1500},3266,3278,{"format":1007,"lines":393,"tokens":730,"copies":272,"first":1502,"others":1506},{"name":1503,"start":1504,"end":1505},"src\u002Fxml\u002Fxml_native_writer.cc",3066,3074,[1507,1510,1513,1516,1519,1521,1523],{"name":1503,"start":1508,"end":1509},3075,3083,{"name":1503,"start":1511,"end":1512},3084,3092,{"name":1503,"start":1514,"end":1515},3093,3101,{"name":1503,"start":1517,"end":1518},3102,3110,{"name":1503,"start":1520,"end":1487},3111,{"name":1503,"start":1393,"end":1522},3128,{"name":1503,"start":1524,"end":1525},3129,3137,{"format":1007,"lines":1527,"tokens":1528,"copies":372,"first":1529,"others":1533},22,261,{"name":1530,"start":1531,"end":1532},"src\u002Fuser\u002Fuser_flexcomp.cc",5149,5170,[1534,1537],{"name":1530,"start":1535,"end":1536},5449,5470,{"name":1530,"start":1538,"end":1539},5740,5759,{"format":350,"lines":814,"tokens":555,"copies":272,"first":1541,"others":1544},{"name":1341,"start":1542,"end":1543},7553,7569,[1545,1548,1551,1554,1557,1560,1563],{"name":1341,"start":1546,"end":1547},7651,7667,{"name":1341,"start":1549,"end":1550},7679,7695,{"name":1341,"start":1552,"end":1553},7835,7851,{"name":1341,"start":1555,"end":1556},7967,7983,{"name":1341,"start":1558,"end":1559},8013,8029,{"name":1341,"start":1561,"end":1562},8690,8706,{"name":1341,"start":1564,"end":1565},8726,8742,{"format":1032,"lines":696,"tokens":503,"copies":383,"first":1567,"others":1570},{"name":1568,"start":1569,"end":1141},"simulate\u002Farray_safety.h",34,[1571],{"name":1572,"start":1569,"end":1141},"src\u002Fcc\u002Farray_safety.h",{"format":1026,"lines":272,"tokens":1574,"copies":303,"first":1575,"others":1579},109,{"name":1576,"start":1577,"end":1578},"src\u002Fengine\u002Fengine_collision_box.c",594,601,[1580,1583,1585,1588],{"name":1576,"start":1581,"end":1582},1069,1076,{"name":1584,"start":784,"end":292},"src\u002Fengine\u002Fengine_collision_primitive.c",{"name":1584,"start":1586,"end":1587},332,340,{"name":1584,"start":1256,"end":1589},462,{"files":1591,"minified":574,"sample":1592},58,[1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612],"doc\u002F_static\u002Fonthispage_mjwarp.js","doc\u002Fincludes\u002Freferences.h","doc\u002Fjs\u002Flinenumbers.js","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002Factuator.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002Fapi.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FcollisionAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FequalityAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FequalityConnectAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FequalityJointAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FequalityWeldAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FimageableAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FjointAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002Fkeyframe.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FmaterialAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FmeshCollisionAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FsceneAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002FsiteAPI.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002Ftendon.h","include\u002Fmujoco\u002Fexperimental\u002Fusd\u002FmjcPhysics\u002Ftokens.h","mjx\u002Fmujoco\u002Fmjx\u002Fwarp\u002Fbvh.py",{"score":1614,"grade":299,"size":1615,"dimensions":1619},34.5,{"lines":1616,"files":1617,"class":1618},558486,1059,"L",[1620,1628,1635],{"id":668,"source":669,"value":1621,"adjusted":1621,"lines":1622,"halfLife":672,"formats":1623,"excluded":1626,"weight":310,"score":1627},10.3,57603,[1007,350,1026,1032,1045,1052,357,572,1624,390,1332,1625],"latex","makefile",[364,675,676],43.2,{"id":679,"source":669,"value":1629,"adjusted":1630,"lines":1631,"halfLife":683,"coverage":1632,"weight":1633,"score":1634},31.3,30.8,38545,22.1,0.221,5.8,{"id":688,"source":669,"value":1636,"adjusted":1637,"lines":1638,"halfLife":692,"weight":310,"score":1639},64.8,64.6,361890,40.8,{"total":1641,"mean":1642,"files":1643},60558,57.2,[1644,1649,1654,1658,1663,1668,1673,1678,1682,1687],{"path":1645,"complexity":1646,"lines":1647,"bytes":1648},"src\u002Fuser\u002Fuser_objects.cc",2454,10379,326986,{"path":1650,"complexity":1651,"lines":1652,"bytes":1653},"src\u002Fuser\u002Fuser_model.cc",2097,8518,312839,{"path":1530,"complexity":1655,"lines":1656,"bytes":1657},1415,6112,226894,{"path":1659,"complexity":1660,"lines":1661,"bytes":1662},"src\u002Fengine\u002Fengine_derivative.c",975,4584,154390,{"path":1664,"complexity":1665,"lines":1666,"bytes":1667},"wasm\u002Fcodegen\u002Fgenerated\u002Fbindings.h",970,7942,259203,{"path":1669,"complexity":1670,"lines":1671,"bytes":1672},"src\u002Fengine\u002Fengine_core_util.c",961,4089,132374,{"path":1674,"complexity":1675,"lines":1676,"bytes":1677},"src\u002Fengine\u002Fengine_metric.c",833,3041,108249,{"path":1679,"complexity":1350,"lines":1680,"bytes":1681},"wasm\u002Fcodegen\u002Fgenerated\u002Fbindings.cc",6936,285784,{"path":1683,"complexity":1684,"lines":1685,"bytes":1686},"src\u002Fengine\u002Fengine_vis_visualize.c",822,4231,134653,{"path":1688,"complexity":1689,"lines":1690,"bytes":1691},"src\u002Fuser\u002Fuser_api.cc",797,3271,105047,{"percentage":1693,"findings":650,"files":1694,"byCategory":1695,"largest":1699},31.29,269,[1696,1697,1698],{"category":733,"count":692},{"category":737,"count":372},{"category":739,"count":255},[1700,1703,1706,1709,1712,1715,1718,1721,1724,1726],{"category":733,"path":1701,"name":424,"line":310,"lines":1702},"python\u002Fmujoco\u002Fintrospect\u002Fstructs.py",12841,{"category":733,"path":1704,"name":424,"line":310,"lines":1705},"mjx\u002Fmujoco\u002Fmjx\u002Fwarp\u002Fforward.py",6499,{"category":733,"path":1707,"name":424,"line":310,"lines":1708},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fio.py",1879,{"category":733,"path":1710,"name":424,"line":310,"lines":1711},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsmooth.py",1496,{"category":733,"path":1713,"name":424,"line":310,"lines":1714},"python\u002Fmujoco\u002Fintrospect\u002Fenums.py",1206,{"category":733,"path":1716,"name":424,"line":310,"lines":1717},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsupport.py",1164,{"category":733,"path":1719,"name":424,"line":310,"lines":1720},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fcollision_convex.py",1117,{"category":733,"path":1722,"name":424,"line":310,"lines":1723},"python\u002Fmujoco\u002Fbatch.py",963,{"category":733,"path":1725,"name":424,"line":310,"lines":1353},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsensor.py",{"category":733,"path":1727,"name":424,"line":310,"lines":1728},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fconstraint.py",748,{"name":1730,"url":1731,"description":1732,"language":302,"stars":1733,"starsToday":1734,"defaultBranch":324,"headSha":1735,"durationMs":1736,"total":1737,"formats":1746,"topClones":1785,"code":1894,"health":1978,"complexity":2001,"deadCode":2049},"anthropics\u002Fclaude-quickstarts","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-quickstarts","A collection of projects designed to help developers quickly get started with building deployable applications using the Claude API",20124,551,"4a4224bdf0e9cfb3332167b69c90457403813625",1338,{"sources":1738,"lines":1739,"tokens":1740,"clones":1741,"duplicatedLines":1742,"duplicatedTokens":1743,"percentage":1744,"percentageTokens":1745},642,79147,533306,142,3143,16351,3.97,3.07,[1747,1751,1757,1763,1766,1770,1773,1776,1778,1781],{"format":357,"sources":1139,"lines":1748,"clones":565,"duplicatedLines":1749,"percentage":1750},12563,604,4.81,{"format":1752,"sources":1753,"lines":1754,"clones":1527,"duplicatedLines":1755,"percentage":1756},"tsx",83,13338,491,3.68,{"format":350,"sources":1758,"lines":1759,"clones":1760,"duplicatedLines":1761,"percentage":1762},152,29256,21,444,1.52,{"format":336,"sources":430,"lines":1764,"clones":814,"duplicatedLines":1218,"percentage":1765},10643,2.77,{"format":572,"sources":664,"lines":1767,"clones":787,"duplicatedLines":1768,"percentage":1769},2682,254,9.47,{"format":369,"sources":891,"lines":1771,"clones":912,"duplicatedLines":1294,"percentage":1772},2108,31.02,{"format":390,"sources":729,"lines":1774,"clones":255,"duplicatedLines":901,"percentage":1775},1373,5.9,{"format":364,"sources":858,"lines":1777,"clones":255,"duplicatedLines":1041,"percentage":964},852,{"format":801,"sources":272,"lines":1779,"clones":303,"duplicatedLines":799,"percentage":1780},404,15.84,{"format":1782,"sources":255,"lines":1783,"clones":383,"duplicatedLines":819,"percentage":1784},"css",2072,1.35,[1786,1803,1823,1842,1849,1857,1864,1872,1879,1887],{"format":350,"lines":351,"tokens":1787,"copies":383,"first":1788,"others":1790,"excerpt":1793},619,{"name":1789,"start":310,"end":351},"managed-agents\u002Fself-hosted-sandboxes\u002Fdaytona\u002Fsandbox_runner.py",[1791],{"name":1792,"start":310,"end":351},"managed-agents\u002Fself-hosted-sandboxes\u002Fmodal\u002Fsandbox_runner.py",{"lines":1794,"total":351},[1795,424,1796,1797,1798,1799,1800,1801,1802,424],"\"\"\"Runs inside the sandbox (Modal and Daytona use the same file).","``client.beta.environments.work.worker(...).handle_item()`` is the whole runner:","it builds the per-session ``AgentToolContext`` at ``workdir`` and downloads the","agent's skills into ``{workdir}\u002Fskills\u002F\u003Cname>\u002F``, then runs a","``SessionToolRunner`` (heartbeat + reconcile + event stream + tool dispatch +","result posting) for the session, and force-stops the work item on exit. It","reads the same ``ANTHROPIC_*`` env vars ``ant beta:worker poll --on-work`` sets,","which the webhook injects when it creates the sandbox.",{"format":357,"lines":1804,"tokens":1805,"copies":383,"first":1806,"others":1809,"excerpt":1813},120,558,{"name":1807,"start":1760,"end":1808},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-containers\u002Fsrc\u002Findex.ts",140,[1810],{"name":1811,"start":370,"end":1812},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-worker\u002Fsrc\u002Findex.ts",138,{"lines":1814,"total":1804},[1815,1816,424,1817,1818,1819,1820,424,1821,1822],"  ALLOW_ENVIRONMENT_KEY_IN_SANDBOX?: string;","}","const MAX_DRAIN = 25;","\u002F\u002F Anthropic's deliveries are a few hundred bytes. Anything near this is not","\u002F\u002F one, and the cap bounds the work an unsigned caller can make us do.","const MAX_BODY_BYTES = 1024 * 1024;","\u002F\u002F These become Durable Object names and env values, so check their shape","\u002F\u002F before use even though they come from Anthropic's API.",{"format":357,"lines":1381,"tokens":1824,"copies":383,"first":1825,"others":1828,"excerpt":1831},487,{"name":1807,"start":1826,"end":1827},181,243,[1829],{"name":1811,"start":1830,"end":1173},153,{"lines":1832,"total":1381},[1833,1834,1835,1836,1837,1838,1839,1840,1841,1816],"      baseURL: env.ANTHROPIC_BASE_URL,","    });","  }","  spawned.push({ session_id: sessionId, work_id: work.id, created: !wasLive });","} catch (e) {","  \u002F\u002F Skip and keep draining. The lease lapses and the next webhook reclaims.","  const detail = errDetail(e);","  console.warn(`[webhook] FAILED work=${work.id} session=${sessionId}: ${detail}`);","  spawned.push({ session_id: sessionId, work_id: work.id, error: detail });",{"format":369,"lines":1843,"tokens":759,"copies":383,"first":1844,"others":1846},130,{"name":1845,"start":372,"end":1046},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_full.json",[1847],{"name":1848,"start":372,"end":1046},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_standard.json",{"format":357,"lines":1850,"tokens":1851,"copies":383,"first":1852,"others":1854},82,382,{"name":1853,"start":912,"end":351},"managed-agents\u002Flinear\u002Fsrc\u002Fmanaged-agents-webhook.ts",[1855],{"name":1856,"start":255,"end":988},"managed-agents\u002Fslack\u002Fsrc\u002Fmanaged-agents-webhook.ts",{"format":369,"lines":1858,"tokens":1859,"copies":383,"first":1860,"others":1861},112,367,{"name":1845,"start":372,"end":640},[1862],{"name":1863,"start":372,"end":640},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_mini.json",{"format":369,"lines":1141,"tokens":1865,"copies":383,"first":1866,"others":1869},335,{"name":1845,"start":1867,"end":1868},175,276,[1870],{"name":1848,"start":1871,"end":961},157,{"format":350,"lines":696,"tokens":1873,"copies":383,"first":1874,"others":1876},315,{"name":1875,"start":310,"end":696},"browser-use-demo\u002Fbrowser_use_demo\u002Ftools\u002Fbase.py",[1877],{"name":1878,"start":310,"end":696},"computer-use-demo\u002Fcomputer_use_demo\u002Ftools\u002Fbase.py",{"format":336,"lines":888,"tokens":1880,"copies":383,"first":1881,"others":1884},314,{"name":1882,"start":1569,"end":1883},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-containers\u002FREADME.md",89,[1885],{"name":1886,"start":806,"end":811},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-worker\u002FREADME.md",{"format":1752,"lines":797,"tokens":1028,"copies":383,"first":1888,"others":1891},{"name":1889,"start":1890,"end":1157},"customer-support-agent\u002Fcomponents\u002Fui\u002Fdropdown-menu.tsx",133,[1892],{"name":1893,"start":1812,"end":1071},"financial-data-analyst\u002Fcomponents\u002Fui\u002Fdropdown-menu.tsx",{"sources":1895,"lines":1896,"tokens":1897,"clones":811,"duplicatedLines":1898,"duplicatedTokens":1899,"percentage":1900,"percentageTokens":1901,"formats":1902,"topClones":1918,"generated":1976},330,49620,274699,1718,9392,3.46,3.42,[1903,1906,1907,1911,1915],{"format":357,"sources":533,"lines":1904,"clones":565,"duplicatedLines":1749,"percentage":1905},11728,5.15,{"format":1752,"sources":1753,"lines":1754,"clones":1527,"duplicatedLines":1755,"percentage":1756},{"format":350,"sources":1181,"lines":1908,"clones":360,"duplicatedLines":1909,"percentage":1910},21106,345,1.63,{"format":572,"sources":693,"lines":1912,"clones":393,"duplicatedLines":1913,"percentage":1914},2091,197,9.42,{"format":390,"sources":887,"lines":1916,"clones":255,"duplicatedLines":901,"percentage":1917},1357,5.97,[1919,1925,1931,1937,1941,1945,1949,1956,1963,1968],{"format":350,"lines":351,"tokens":1787,"copies":383,"first":1920,"others":1921,"excerpt":1923},{"name":1789,"start":310,"end":351},[1922],{"name":1792,"start":310,"end":351},{"lines":1924,"total":351},[1795,424,1796,1797,1798,1799,1800,1801,1802,424],{"format":357,"lines":1804,"tokens":1805,"copies":383,"first":1926,"others":1927,"excerpt":1929},{"name":1807,"start":1760,"end":1808},[1928],{"name":1811,"start":370,"end":1812},{"lines":1930,"total":1804},[1815,1816,424,1817,1818,1819,1820,424,1821,1822],{"format":357,"lines":1381,"tokens":1824,"copies":383,"first":1932,"others":1933,"excerpt":1935},{"name":1807,"start":1826,"end":1827},[1934],{"name":1811,"start":1830,"end":1173},{"lines":1936,"total":1381},[1833,1834,1835,1836,1837,1838,1839,1840,1841,1816],{"format":357,"lines":1850,"tokens":1851,"copies":383,"first":1938,"others":1939},{"name":1853,"start":912,"end":351},[1940],{"name":1856,"start":255,"end":988},{"format":350,"lines":696,"tokens":1873,"copies":383,"first":1942,"others":1943},{"name":1875,"start":310,"end":696},[1944],{"name":1878,"start":310,"end":696},{"format":1752,"lines":797,"tokens":1028,"copies":383,"first":1946,"others":1947},{"name":1889,"start":1890,"end":1157},[1948],{"name":1893,"start":1812,"end":1071},{"format":1752,"lines":981,"tokens":1950,"copies":383,"first":1951,"others":1953},236,{"name":1952,"start":272,"end":692},"customer-support-agent\u002Fcomponents\u002Fui\u002Favatar.tsx",[1954],{"name":1955,"start":272,"end":692},"financial-data-analyst\u002Fcomponents\u002Fui\u002Favatar.tsx",{"format":357,"lines":806,"tokens":1957,"copies":383,"first":1958,"others":1960},207,{"name":1959,"start":1527,"end":366},"managed-agents\u002Flinear\u002Fsrc\u002Froute-signature.ts",[1961],{"name":1962,"start":1527,"end":366},"managed-agents\u002Fslack\u002Fsrc\u002Froute-signature.ts",{"format":1752,"lines":981,"tokens":1071,"copies":383,"first":1964,"others":1966},{"name":1889,"start":797,"end":1965},110,[1967],{"name":1893,"start":840,"end":1048},{"format":357,"lines":729,"tokens":351,"copies":372,"first":1969,"others":1971},{"name":1970,"start":1414,"end":353},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Fconfirm\u002Froute.ts",[1972,1974],{"name":1973,"start":358,"end":819},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Fmessages\u002Froute.ts",{"name":1975,"start":370,"end":565},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Ftool-results\u002Froute.ts",{"files":574,"minified":574,"sample":1977},[],{"score":1979,"grade":1980,"size":1981,"dimensions":1984},54.4,"D",{"lines":1982,"files":1983,"class":665},59068,388,[1985,1991,1998],{"id":668,"source":669,"value":1986,"adjusted":1986,"lines":1987,"halfLife":672,"formats":1988,"excluded":1989,"weight":310,"score":1990},3.2,1881,[350,1752,357,572,390,801,1625],[364,675,676],77.1,{"id":679,"source":669,"value":1992,"adjusted":1993,"lines":1994,"halfLife":683,"coverage":1995,"weight":1996,"score":1997},11.4,11.1,6442,95.9,0.959,35.9,{"id":688,"source":669,"value":693,"adjusted":1999,"lines":2000,"halfLife":692,"weight":310,"score":1642},40.3,24210,{"total":2002,"mean":2003,"files":2004},9499,24.5,[2005,2010,2015,2020,2024,2029,2033,2037,2041,2045],{"path":2006,"complexity":2007,"lines":2008,"bytes":2009},"managed-agents\u002Fknowledge-wiki\u002Futilities.py",708,2979,146196,{"path":2011,"complexity":2012,"lines":2013,"bytes":2014},"browser-use-demo\u002Fbrowser_use_demo\u002Ftools\u002Fbrowser.py",191,1275,51609,{"path":2016,"complexity":2017,"lines":2018,"bytes":2019},"managed-agents\u002Fassistant-ui\u002Flib\u002Fmanaged-agents\u002Freducer.ts",165,772,33712,{"path":2021,"complexity":1046,"lines":2022,"bytes":2023},"managed-agents\u002Fself-hosted-sandboxes\u002Fopenshell-policy\u002Fsrc\u002Fagentpolicy\u002Fcli.py",679,29393,{"path":2025,"complexity":2026,"lines":2027,"bytes":2028},"browser-use-demo\u002Fbrowser_use_demo\u002Fbrowser_tool_utils\u002Fbrowser_dom_script.js",131,447,14265,{"path":2030,"complexity":1048,"lines":2031,"bytes":2032},"computer-use-best-practices\u002Fcomputer_use\u002Floop.py",566,22377,{"path":2034,"complexity":1858,"lines":2035,"bytes":2036},"managed-agents\u002Fself-hosted-sandboxes\u002Fopenshell-policy\u002Ftests\u002Ftest_stop.py",456,20786,{"path":2038,"complexity":630,"lines":2039,"bytes":2040},"computer-use-demo\u002Fcomputer_use_demo\u002Ftools\u002Fcomputer.py",635,24660,{"path":2042,"complexity":837,"lines":2043,"bytes":2044},"managed-agents\u002Fsentry-autofix\u002Fsrc\u002Ffixer.ts",461,21793,{"path":2046,"complexity":373,"lines":2047,"bytes":2048},"managed-agents\u002Fassistant-ui\u002Flib\u002Fmanaged-agents\u002Fsession-controller.ts",518,22529,{"percentage":2050,"findings":1381,"files":2051,"byCategory":2052,"largest":2057},11.38,370,[2053,2054,2055,2056],{"category":733,"count":787},{"category":735,"count":960},{"category":737,"count":372},{"category":739,"count":360},[2058,2059,2062,2063,2065,2068,2070,2073,2075,2078],{"category":733,"path":2006,"name":424,"line":310,"lines":2008},{"category":733,"path":2060,"name":424,"line":310,"lines":2061},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fimage.tsx",481,{"category":733,"path":2025,"name":424,"line":310,"lines":2027},{"category":733,"path":2064,"name":424,"line":310,"lines":1216},"managed-agents\u002Fchat-sdk\u002Fweb\u002Fapp.tsx",{"category":733,"path":2066,"name":424,"line":310,"lines":2067},"managed-agents\u002Fself-hosted-sandboxes\u002Fmodal\u002Fmodal_sandbox_webhook.py",352,{"category":733,"path":2069,"name":424,"line":310,"lines":951},"managed-agents\u002Fself-hosted-sandboxes\u002Fdaytona\u002Fdaytona_webhook.py",{"category":733,"path":2071,"name":424,"line":310,"lines":2072},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Ffile.tsx",235,{"category":733,"path":2074,"name":424,"line":310,"lines":1087},"browser-use-demo\u002Fbrowser_use_demo\u002Fbrowser_tool_utils\u002Fbrowser_form_input_script.js",{"category":733,"path":2076,"name":424,"line":310,"lines":2077},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fsources.tsx",160,{"category":733,"path":2079,"name":424,"line":310,"lines":373},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fshiki-highlighter.tsx",{"name":2081,"url":2082,"description":2083,"language":314,"stars":2084,"starsToday":1422,"defaultBranch":324,"headSha":2085,"durationMs":2086,"total":2087,"formats":2092,"topClones":2129,"code":2412,"health":2572,"complexity":2594,"deadCode":2641},"vercel-labs\u002Fagent-browser","https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser","Browser automation CLI for AI agents",48651,"e7519957b9067c541825afa21a792fbe1f483047",2024,{"sources":2088,"lines":316,"tokens":2089,"clones":315,"duplicatedLines":317,"duplicatedTokens":2090,"percentage":265,"percentageTokens":2091},435,1294790,79187,6.12,[2093,2099,2103,2107,2111,2114,2117,2121,2124,2127],{"format":2094,"sources":1059,"lines":2095,"clones":2096,"duplicatedLines":2097,"percentage":2098},"rust",144847,974,10890,7.52,{"format":357,"sources":797,"lines":2100,"clones":370,"duplicatedLines":2101,"percentage":2102},7112,359,5.05,{"format":1752,"sources":843,"lines":2104,"clones":814,"duplicatedLines":2105,"percentage":2106},13373,293,2.19,{"format":369,"sources":286,"lines":2108,"clones":814,"duplicatedLines":2109,"percentage":2110},10660,662,6.21,{"format":782,"sources":858,"lines":2112,"clones":729,"duplicatedLines":2026,"percentage":2113},1091,12.01,{"format":390,"sources":1527,"lines":2115,"clones":393,"duplicatedLines":901,"percentage":2116},4171,1.94,{"format":1782,"sources":391,"lines":2118,"clones":393,"duplicatedLines":2119,"percentage":2120},608,103,16.94,{"format":364,"sources":360,"lines":2122,"clones":310,"duplicatedLines":255,"percentage":2123},729,0.96,{"format":2125,"sources":310,"lines":1414,"clones":310,"duplicatedLines":272,"percentage":2126},"diff",30.77,{"format":336,"sources":693,"lines":2128,"clones":574,"duplicatedLines":574,"percentage":574},7793,[2130,2173,2218,2256,2283,2302,2329,2355,2363,2387],{"format":2094,"lines":836,"tokens":880,"copies":960,"first":2131,"others":2135,"excerpt":2159,"excerptSecond":2169},{"name":2132,"start":2133,"end":2134},"cli\u002Fsrc\u002Fnative\u002Fe2e_tests.rs",1997,2008,[2136,2139,2142,2145,2148,2151,2154,2156],{"name":2132,"start":2137,"end":2138},2276,2285,{"name":2132,"start":2140,"end":2141},2407,2418,{"name":2132,"start":2143,"end":2144},2751,2762,{"name":2132,"start":2146,"end":2147},2909,2920,{"name":2132,"start":2149,"end":2150},2957,2968,{"name":2132,"start":2152,"end":2153},3114,3125,{"name":2132,"start":2155,"end":989},3158,{"name":2132,"start":2157,"end":2158},3430,3441,{"lines":2160,"total":836},[2161,2162,424,2163,2164,2165,2166,2167,2168,424],"async fn e2e_screenshot() {","    let mut state = DaemonState::new();","    let resp = execute_command(","        &json!({ \"id\": \"1\", \"action\": \"launch\", \"headless\": true }),","        &mut state,","    )","    .await;","    assert_success(&resp);",{"lines":2170,"total":887},[2171,2162,2163,2164,2165,2166,2167,2168,2163,2172],"async fn e2e_select_option_label_override_names() {","        &json!({ \"id\": \"2\", \"action\": \"navigate\", \"url\": \"data:text\u002Fhtml,\u003Chtml>\u003Cbody>\u003C\u002Fbody>\u003C\u002Fhtml>\" }),",{"format":2094,"lines":393,"tokens":2174,"copies":358,"first":2175,"others":2179,"excerpt":2204,"excerptSecond":2214},77,{"name":2176,"start":2177,"end":2178},"cli\u002Fsrc\u002Fnative\u002Factions.rs",7165,7173,[2180,2183,2186,2189,2192,2195,2198,2201],{"name":2176,"start":2181,"end":2182},7225,7232,{"name":2176,"start":2184,"end":2185},7308,7316,{"name":2176,"start":2187,"end":2188},7365,7373,{"name":2176,"start":2190,"end":2191},7511,7519,{"name":2176,"start":2193,"end":2194},7531,7538,{"name":2176,"start":2196,"end":2197},7556,7564,{"name":2176,"start":2199,"end":2200},7576,7584,{"name":2176,"start":2202,"end":2203},7596,7604,{"lines":2205,"total":393},[2206,2207,2208,2209,2210,2211,2212,424,2213],"async fn handle_dblclick(cmd: &Value, state: &mut DaemonState) -> Result\u003CValue, String> {","    let mgr = state.browser.as_ref().ok_or(\"Browser not launched\")?;","    let session_id = mgr.active_session_id()?.to_string();","    let selector = cmd","        .get(\"selector\")","        .and_then(|v| v.as_str())","        .ok_or(\"Missing 'selector' parameter\")?;","    let result = interaction::dblclick(",{"lines":2215,"total":272},[2216,2207,2208,2209,2210,2211,2212,2217],"async fn handle_type(cmd: &Value, state: &mut DaemonState) -> Result\u003CValue, String> {","    let text = cmd",{"format":2094,"lines":272,"tokens":843,"copies":912,"first":2219,"others":2222,"excerpt":2247},{"name":2132,"start":2220,"end":2221},15738,15745,[2223,2226,2229,2232,2235,2238,2241,2244],{"name":2132,"start":2224,"end":2225},15860,15867,{"name":2132,"start":2227,"end":2228},15900,15907,{"name":2132,"start":2230,"end":2231},15941,15948,{"name":2132,"start":2233,"end":2234},15989,15996,{"name":2132,"start":2236,"end":2237},16037,16044,{"name":2132,"start":2239,"end":2240},16069,16076,{"name":2132,"start":2242,"end":2243},16121,16128,{"name":2132,"start":2245,"end":2246},16190,16197,{"lines":2248,"total":272},[2249,2250,2251,2252,2253,2162,2254,2255],"async fn e2e_flow_save_includes_requests_still_in_flight() {","    let fx = flow_fixture().await;","    let dir = tempfile::tempdir().unwrap();","    let guard = EnvGuard::new(&[\"AGENT_BROWSER_FLOWS_DIR\"]);","    guard.set(\"AGENT_BROWSER_FLOWS_DIR\", dir.path().to_str().unwrap());","    state.policy = None;","    state.confirm_actions = None;",{"format":2094,"lines":729,"tokens":784,"copies":1760,"first":2257,"others":2259},{"name":2132,"start":2133,"end":2258},2007,[2260,2263,2265,2268,2271,2274,2277,2280],{"name":2132,"start":2261,"end":2262},2150,2160,{"name":2132,"start":2264,"end":1313},3196,{"name":2132,"start":2266,"end":2267},3289,3299,{"name":2132,"start":2269,"end":2270},3368,3378,{"name":2132,"start":2272,"end":2273},3774,3784,{"name":2132,"start":2275,"end":2276},3842,3852,{"name":2132,"start":2278,"end":2279},5818,5828,{"name":2132,"start":2281,"end":2282},5942,5952,{"format":2094,"lines":787,"tokens":1957,"copies":278,"first":2284,"others":2286},{"name":2132,"start":999,"end":2285},4896,[2287,2290,2293,2296,2299],{"name":2132,"start":2288,"end":2289},5076,5091,{"name":2132,"start":2291,"end":2292},5159,5174,{"name":2132,"start":2294,"end":2295},5293,5308,{"name":2132,"start":2297,"end":2298},5440,5455,{"name":2132,"start":2300,"end":2301},5582,5597,{"format":2094,"lines":787,"tokens":777,"copies":887,"first":2303,"others":2305},{"name":2132,"start":2133,"end":2304},2012,[2306,2309,2311,2314,2317,2320,2323,2326],{"name":2132,"start":2307,"end":2308},2617,2632,{"name":2132,"start":2310,"end":1467},2677,{"name":2132,"start":2312,"end":2313},4519,4534,{"name":2132,"start":2315,"end":2316},6511,6526,{"name":2132,"start":2318,"end":2319},11816,11831,{"name":2132,"start":2321,"end":2322},12170,12185,{"name":2132,"start":2324,"end":2325},12848,12863,{"name":2132,"start":2327,"end":2328},12976,12991,{"format":2094,"lines":393,"tokens":1128,"copies":912,"first":2330,"others":2331},{"name":2132,"start":2133,"end":494},[2332,2335,2338,2341,2344,2346,2349,2352],{"name":2132,"start":2333,"end":2334},2545,2553,{"name":2132,"start":2336,"end":2337},2835,2843,{"name":2132,"start":2339,"end":2340},3547,3555,{"name":2132,"start":2342,"end":2343},6568,6576,{"name":2132,"start":2345,"end":1680},6928,{"name":2132,"start":2347,"end":2348},7105,7113,{"name":2132,"start":2350,"end":2351},7356,7364,{"name":2132,"start":2353,"end":2354},7415,7423,{"format":369,"lines":2356,"tokens":2357,"copies":383,"first":2358,"others":2360},182,563,{"name":2359,"start":310,"end":2356},"agent-browser.schema.json",[2361],{"name":2362,"start":310,"end":2356},"docs\u002Fpublic\u002Fschema.json",{"format":2094,"lines":887,"tokens":895,"copies":729,"first":2364,"others":2366},{"name":2132,"start":2365,"end":2262},2151,[2367,2369,2371,2373,2376,2379,2382,2384],{"name":2132,"start":2368,"end":2267},3290,{"name":2132,"start":2370,"end":2273},3775,{"name":2132,"start":2372,"end":2276},3843,{"name":2132,"start":2374,"end":2375},6143,6152,{"name":2132,"start":2377,"end":2378},6226,6234,{"name":2132,"start":2380,"end":2381},7482,7491,{"name":2132,"start":2202,"end":2383},7605,{"name":2132,"start":2385,"end":2386},10919,10927,{"format":2094,"lines":255,"tokens":2388,"copies":272,"first":2389,"others":2391},76,{"name":2176,"start":2177,"end":2390},7171,[2392,2395,2397,2400,2403,2406,2409],{"name":2176,"start":2393,"end":2394},7398,7404,{"name":2176,"start":2354,"end":2396},7429,{"name":2176,"start":2398,"end":2399},9079,9085,{"name":2176,"start":2401,"end":2402},9098,9104,{"name":2176,"start":2404,"end":2405},9117,9123,{"name":2176,"start":2407,"end":2408},9136,9142,{"name":2176,"start":2410,"end":2411},9182,9188,{"sources":2413,"lines":2414,"tokens":2415,"clones":2416,"duplicatedLines":2417,"duplicatedTokens":2418,"percentage":2419,"percentageTokens":2420,"formats":2421,"topClones":2440,"generated":2570},179,152905,1055124,966,10906,71301,7.13,6.76,[2422,2427,2431,2434,2437,2438],{"format":2094,"sources":1181,"lines":2423,"clones":2424,"duplicatedLines":2425,"percentage":2426},141071,949,10646,7.55,{"format":357,"sources":353,"lines":2428,"clones":360,"duplicatedLines":2429,"percentage":2430},5359,224,4.18,{"format":1752,"sources":1414,"lines":2432,"clones":372,"duplicatedLines":885,"percentage":2433},5190,0.46,{"format":390,"sources":255,"lines":2435,"clones":310,"duplicatedLines":836,"percentage":2436},783,1.53,{"format":572,"sources":391,"lines":290,"clones":574,"duplicatedLines":574,"percentage":574},{"format":350,"sources":310,"lines":2439,"clones":574,"duplicatedLines":574,"percentage":574},176,[2441,2456,2471,2484,2495,2503,2514,2525,2536,2546],{"format":2094,"lines":836,"tokens":880,"copies":960,"first":2442,"others":2443,"excerpt":2452,"excerptSecond":2454},{"name":2132,"start":2133,"end":2134},[2444,2445,2446,2447,2448,2449,2450,2451],{"name":2132,"start":2137,"end":2138},{"name":2132,"start":2140,"end":2141},{"name":2132,"start":2143,"end":2144},{"name":2132,"start":2146,"end":2147},{"name":2132,"start":2149,"end":2150},{"name":2132,"start":2152,"end":2153},{"name":2132,"start":2155,"end":989},{"name":2132,"start":2157,"end":2158},{"lines":2453,"total":836},[2161,2162,424,2163,2164,2165,2166,2167,2168,424],{"lines":2455,"total":887},[2171,2162,2163,2164,2165,2166,2167,2168,2163,2172],{"format":2094,"lines":393,"tokens":2174,"copies":358,"first":2457,"others":2458,"excerpt":2467,"excerptSecond":2469},{"name":2176,"start":2177,"end":2178},[2459,2460,2461,2462,2463,2464,2465,2466],{"name":2176,"start":2181,"end":2182},{"name":2176,"start":2184,"end":2185},{"name":2176,"start":2187,"end":2188},{"name":2176,"start":2190,"end":2191},{"name":2176,"start":2193,"end":2194},{"name":2176,"start":2196,"end":2197},{"name":2176,"start":2199,"end":2200},{"name":2176,"start":2202,"end":2203},{"lines":2468,"total":393},[2206,2207,2208,2209,2210,2211,2212,424,2213],{"lines":2470,"total":272},[2216,2207,2208,2209,2210,2211,2212,2217],{"format":2094,"lines":272,"tokens":843,"copies":912,"first":2472,"others":2473,"excerpt":2482},{"name":2132,"start":2220,"end":2221},[2474,2475,2476,2477,2478,2479,2480,2481],{"name":2132,"start":2224,"end":2225},{"name":2132,"start":2227,"end":2228},{"name":2132,"start":2230,"end":2231},{"name":2132,"start":2233,"end":2234},{"name":2132,"start":2236,"end":2237},{"name":2132,"start":2239,"end":2240},{"name":2132,"start":2242,"end":2243},{"name":2132,"start":2245,"end":2246},{"lines":2483,"total":272},[2249,2250,2251,2252,2253,2162,2254,2255],{"format":2094,"lines":729,"tokens":784,"copies":1760,"first":2485,"others":2486},{"name":2132,"start":2133,"end":2258},[2487,2488,2489,2490,2491,2492,2493,2494],{"name":2132,"start":2261,"end":2262},{"name":2132,"start":2264,"end":1313},{"name":2132,"start":2266,"end":2267},{"name":2132,"start":2269,"end":2270},{"name":2132,"start":2272,"end":2273},{"name":2132,"start":2275,"end":2276},{"name":2132,"start":2278,"end":2279},{"name":2132,"start":2281,"end":2282},{"format":2094,"lines":787,"tokens":1957,"copies":278,"first":2496,"others":2497},{"name":2132,"start":999,"end":2285},[2498,2499,2500,2501,2502],{"name":2132,"start":2288,"end":2289},{"name":2132,"start":2291,"end":2292},{"name":2132,"start":2294,"end":2295},{"name":2132,"start":2297,"end":2298},{"name":2132,"start":2300,"end":2301},{"format":2094,"lines":787,"tokens":777,"copies":887,"first":2504,"others":2505},{"name":2132,"start":2133,"end":2304},[2506,2507,2508,2509,2510,2511,2512,2513],{"name":2132,"start":2307,"end":2308},{"name":2132,"start":2310,"end":1467},{"name":2132,"start":2312,"end":2313},{"name":2132,"start":2315,"end":2316},{"name":2132,"start":2318,"end":2319},{"name":2132,"start":2321,"end":2322},{"name":2132,"start":2324,"end":2325},{"name":2132,"start":2327,"end":2328},{"format":2094,"lines":393,"tokens":1128,"copies":912,"first":2515,"others":2516},{"name":2132,"start":2133,"end":494},[2517,2518,2519,2520,2521,2522,2523,2524],{"name":2132,"start":2333,"end":2334},{"name":2132,"start":2336,"end":2337},{"name":2132,"start":2339,"end":2340},{"name":2132,"start":2342,"end":2343},{"name":2132,"start":2345,"end":1680},{"name":2132,"start":2347,"end":2348},{"name":2132,"start":2350,"end":2351},{"name":2132,"start":2353,"end":2354},{"format":2094,"lines":887,"tokens":895,"copies":729,"first":2526,"others":2527},{"name":2132,"start":2365,"end":2262},[2528,2529,2530,2531,2532,2533,2534,2535],{"name":2132,"start":2368,"end":2267},{"name":2132,"start":2370,"end":2273},{"name":2132,"start":2372,"end":2276},{"name":2132,"start":2374,"end":2375},{"name":2132,"start":2377,"end":2378},{"name":2132,"start":2380,"end":2381},{"name":2132,"start":2202,"end":2383},{"name":2132,"start":2385,"end":2386},{"format":2094,"lines":255,"tokens":2388,"copies":272,"first":2537,"others":2538},{"name":2176,"start":2177,"end":2390},[2539,2540,2541,2542,2543,2544,2545],{"name":2176,"start":2393,"end":2394},{"name":2176,"start":2354,"end":2396},{"name":2176,"start":2398,"end":2399},{"name":2176,"start":2401,"end":2402},{"name":2176,"start":2404,"end":2405},{"name":2176,"start":2407,"end":2408},{"name":2176,"start":2410,"end":2411},{"format":2094,"lines":272,"tokens":696,"copies":255,"first":2547,"others":2551},{"name":2548,"start":2549,"end":2550},"cli\u002Fsrc\u002Fcommands.rs",4331,4338,[2552,2555,2558,2561,2564,2567],{"name":2548,"start":2553,"end":2554},4344,4351,{"name":2548,"start":2556,"end":2557},4357,4364,{"name":2548,"start":2559,"end":2560},4370,4377,{"name":2548,"start":2562,"end":2563},4383,4390,{"name":2548,"start":2565,"end":2566},4396,4403,{"name":2548,"start":2568,"end":2569},4409,4416,{"files":574,"minified":574,"sample":2571},[],{"score":2573,"grade":1980,"size":2574,"dimensions":2576},42.4,{"lines":2575,"files":2105,"class":1618},169845,[2577,2583,2590],{"id":668,"source":669,"value":2578,"adjusted":2578,"lines":2579,"halfLife":672,"formats":2580,"excluded":2581,"weight":310,"score":2582},6.8,11605,[2094,1752,357,390,572,350],[364,675,676],57.5,{"id":679,"source":669,"value":2584,"adjusted":2585,"lines":2586,"halfLife":683,"coverage":2587,"weight":2588,"score":2589},9.2,8.8,2305,14.7,0.147,44.4,{"id":688,"source":669,"value":2591,"adjusted":2592,"lines":2593,"halfLife":692,"weight":310,"score":960},85.3,84.6,144909,{"total":2595,"mean":944,"files":2596},25537,[2597,2601,2605,2609,2614,2619,2624,2628,2632,2636],{"path":2176,"complexity":2598,"lines":2599,"bytes":2600},3453,23728,911374,{"path":2602,"complexity":2603,"lines":815,"bytes":2604},"cli\u002Fsrc\u002Fnative\u002Freact\u002FinstallHook.js",3040,182992,{"path":2548,"complexity":2606,"lines":2607,"bytes":2608},1302,7457,288151,{"path":2610,"complexity":2611,"lines":2612,"bytes":2613},"cli\u002Fsrc\u002Fmcp.rs",1126,6698,252938,{"path":2615,"complexity":2616,"lines":2617,"bytes":2618},"cli\u002Fsrc\u002Foutput.rs",1025,5557,216380,{"path":2620,"complexity":2621,"lines":2622,"bytes":2623},"cli\u002Fsrc\u002Fnative\u002Fflow\u002Fmod.rs",889,8916,327317,{"path":2132,"complexity":2625,"lines":2626,"bytes":2627},726,16849,571555,{"path":2629,"complexity":1229,"lines":2630,"bytes":2631},"cli\u002Fsrc\u002Fnative\u002Fbrowser.rs",5624,213654,{"path":2633,"complexity":1246,"lines":2634,"bytes":2635},"cli\u002Fsrc\u002Fmain.rs",3002,105901,{"path":2637,"complexity":2638,"lines":2639,"bytes":2640},"cli\u002Fsrc\u002Fnative\u002Fcdp\u002Fchrome.rs",408,3156,113680,{"percentage":2642,"findings":430,"files":2643,"byCategory":2644,"largest":2650},9.23,237,[2645,2647,2648,2649],{"category":733,"count":2646},55,{"category":735,"count":286},{"category":737,"count":310},{"category":739,"count":255},[2651,2653,2655,2658,2661,2663,2665,2667,2669,2671],{"category":733,"path":2652,"name":424,"line":310,"lines":2067},"docs\u002Fscripts\u002Fcapture-docs-baseline.mjs",{"category":733,"path":2654,"name":424,"line":310,"lines":965},"docs\u002Fsrc\u002Fcomponents\u002Fdiff-demo.tsx",{"category":733,"path":2656,"name":424,"line":310,"lines":2657},"docs\u002Fsrc\u002Fcomponents\u002Fsearch.tsx",271,{"category":733,"path":2659,"name":424,"line":310,"lines":2660},"packages\u002F@agent-browser\u002Feve\u002Fextension\u002Flib\u002Fsandbox.ts",216,{"category":733,"path":2662,"name":424,"line":310,"lines":482},"packages\u002F@agent-browser\u002Feve\u002Fextension\u002Flib\u002Fbrowser.ts",{"category":733,"path":2664,"name":424,"line":310,"lines":1154},"docs\u002Fsrc\u002Fcomponents\u002Fheader.tsx",{"category":733,"path":2666,"name":424,"line":310,"lines":901},"docs\u002Fsrc\u002Fcomponents\u002Fdocs-mobile-nav.tsx",{"category":733,"path":2668,"name":424,"line":310,"lines":876},"docs\u002Fsrc\u002Fcomponents\u002Fcopy-page-button.tsx",{"category":733,"path":2670,"name":424,"line":310,"lines":1381},"cli\u002Fsrc\u002Fnative\u002Frecording-cursor.js",{"category":733,"path":2672,"name":424,"line":310,"lines":1081},"docs\u002Fsrc\u002Fcomponents\u002Fdocs-sidebar.tsx",{"name":289,"url":2674,"description":2675,"language":302,"stars":2676,"starsToday":2677,"defaultBranch":324,"headSha":2678,"durationMs":2679,"total":2680,"formats":2689,"topClones":2728,"code":2948,"health":3083,"complexity":3105,"deadCode":3154},"https:\u002F\u002Fgithub.com\u002FZhuLinsen\u002Fdaily_stock_analysis","LLM 驱动的多市场股票智能分析系统：多源行情、实时新闻、决策看板与自动推送，支持零成本定时运行。  LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.",69131,506,"15c7cdc0ca07bd71158e268fb8596f3ae356ad9b",3638,{"sources":2681,"lines":2682,"tokens":2683,"clones":2684,"duplicatedLines":2685,"duplicatedTokens":2686,"percentage":2687,"percentageTokens":2688},1170,499864,2979136,2310,30347,168548,6.07,5.66,[2690,2695,2700,2706,2710,2713,2716,2719,2722,2725],{"format":350,"sources":2691,"lines":2692,"clones":1328,"duplicatedLines":2693,"percentage":2694},652,363045,22153,6.1,{"format":1752,"sources":545,"lines":2696,"clones":2697,"duplicatedLines":2698,"percentage":2699},63385,425,5813,9.17,{"format":357,"sources":2701,"lines":2702,"clones":2703,"duplicatedLines":2704,"percentage":2705},134,29120,39,439,1.51,{"format":369,"sources":858,"lines":2707,"clones":822,"duplicatedLines":2708,"percentage":2709},10058,1057,10.51,{"format":390,"sources":255,"lines":2711,"clones":815,"duplicatedLines":1179,"percentage":2712},4265,7.17,{"format":1782,"sources":310,"lines":2714,"clones":787,"duplicatedLines":361,"percentage":2715},2924,5.75,{"format":782,"sources":1081,"lines":2717,"clones":360,"duplicatedLines":1075,"percentage":2718},3922,5.3,{"format":336,"sources":2174,"lines":2720,"clones":272,"duplicatedLines":1753,"percentage":2721},19113,0.43,{"format":572,"sources":1414,"lines":2723,"clones":255,"duplicatedLines":555,"percentage":2724},1825,3.67,{"format":675,"sources":358,"lines":2726,"clones":372,"duplicatedLines":806,"percentage":2727},509,4.91,[2729,2748,2791,2838,2858,2868,2878,2886,2916,2935],{"format":336,"lines":729,"tokens":1851,"copies":372,"first":2730,"others":2732,"excerpt":2737},{"name":2731,"start":303,"end":858},"README.md",[2733,2735],{"name":2734,"start":303,"end":858},"docs\u002FREADME_CHT.md",{"name":2736,"start":303,"end":858},"docs\u002FREADME_EN.md",{"lines":2738,"total":729},[2739,2740,2741,2742,2743,2744,2745,424,2746,2747],"[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FZhuLinsen\u002Fdaily_stock_analysis?style=social)](https:\u002F\u002Fgithub.com\u002FZhuLinsen\u002Fdaily_stock_analysis\u002Fstargazers)","[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2608.26990-b31b1b.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2608.26990)","[![CI](https:\u002F\u002Fgithub.com\u002FZhuLinsen\u002Fdaily_stock_analysis\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FZhuLinsen\u002Fdaily_stock_analysis\u002Factions\u002Fworkflo…","[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)","[![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)","[![GitHub Actions](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub%20Actions-Ready-2088FF?logo=github-actions&logoColor=white)](https:\u002F\u002Fgithub.com\u002Ffeatures\u002Factions)","[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker-Ready-2496ED?logo=docker&logoColor=white)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fzhulinsen\u002Fdaily_stock_analysis)","\u003Cp align=\"center\">","  \u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Ftrendshift\u002Frepositories\u002F18527\u002Fdaily?language=Python\" alt=\"#1 Python Repository Of The Day | Trendshift\" width=\"250\"…",{"format":350,"lines":272,"tokens":563,"copies":836,"first":2749,"others":2753,"excerpt":2777,"excerptSecond":2787},{"name":2750,"start":2751,"end":2752},"tests\u002Ftest_portfolio_pr2.py",342,349,[2754,2756,2758,2761,2764,2767,2771,2774],{"name":2750,"start":2047,"end":2755},525,{"name":2750,"start":2757,"end":1734},544,{"name":2750,"start":2759,"end":2760},581,588,{"name":2750,"start":2762,"end":2763},648,655,{"name":2750,"start":2765,"end":2766},674,681,{"name":2768,"start":2769,"end":2770},"tests\u002Ftest_portfolio_service.py",422,430,{"name":2768,"start":2772,"end":2773},764,771,{"name":2768,"start":2775,"end":2776},863,871,{"lines":2778,"total":272},[2779,2780,2781,2782,2783,2784,2785,2786],"def test_risk_threshold_boundary(self) -> None:","    account = self.service.create_account(name=\"Main\", broker=\"Demo\", market=\"cn\", base_currency=\"CNY\")","    aid = account[\"id\"]","    self.service.record_cash_ledger(","        account_id=aid,","        event_date=date(2026, 1, 1),","        direction=\"in\",","        amount=20000,",{"lines":2788,"total":272},[2789,2780,2781,2782,2783,2784,2785,2790],"def test_sector_concentration_cn_board_mapping(self, _mock_fetch) -> None:","        amount=10000.0,",{"format":350,"lines":887,"tokens":339,"copies":912,"first":2792,"others":2796,"excerpt":2821,"excerptSecond":2833},{"name":2793,"start":2794,"end":2795},"tests\u002Ftest_notification.py",1063,1072,[2797,2800,2803,2806,2809,2812,2815,2818],{"name":2793,"start":2798,"end":2799},1099,1110,{"name":2793,"start":2801,"end":2802},1133,1144,{"name":2793,"start":2804,"end":2805},1321,1330,{"name":2793,"start":2807,"end":2808},1393,1402,{"name":2793,"start":2810,"end":2811},1411,1420,{"name":2793,"start":2813,"end":2814},1566,1575,{"name":2793,"start":2816,"end":2817},1596,1607,{"name":2793,"start":2819,"end":2820},1715,1726,{"lines":2822,"total":887},[2823,2824,2825,2826,2827,2828,2829,2830,2831,2832],"def test_generate_brief_report_shows_model_by_default(self, mock_get_config: mock.MagicMock):","    mock_get_config.return_value = _make_config(report_renderer_enabled=False)","    service = NotificationService()","    result = AnalysisResult(","        code=\"600519\",","        name=\"贵州茅台\",","        sentiment_score=72,","        trend_prediction=\"看多\",","        operation_advice=\"持有\",","        analysis_summary=\"稳健\",",{"lines":2834,"total":836},[2835,2836,2837,2824,2825,2826,2827,2828,2829,2830],"def test_generate_dashboard_report_shows_phase_decision_in_default_renderer(","    self, mock_get_config: mock.MagicMock","):",{"format":350,"lines":787,"tokens":664,"copies":887,"first":2839,"others":2841},{"name":2840,"start":286,"end":344},"tests\u002Ftest_agent_memory_decision_review.py",[2842,2844,2846,2848,2850,2852,2854,2856],{"name":2843,"start":815,"end":1057},"tests\u002Ftest_decision_signal_extractor.py",{"name":2845,"start":1760,"end":353},"tests\u002Ftest_decision_signal_outcome_service.py",{"name":2847,"start":1527,"end":789},"tests\u002Ftest_decision_signal_repo.py",{"name":2849,"start":693,"end":888},"tests\u002Ftest_decision_signal_review_memory.py",{"name":2851,"start":346,"end":563},"tests\u002Ftest_decision_signal_service.py",{"name":2853,"start":1569,"end":804},"tests\u002Ftest_skill_opinion_outcome_stats.py",{"name":2855,"start":822,"end":692},"tests\u002Ftest_skill_opinion_outcomes.py",{"name":2857,"start":789,"end":1128},"tests\u002Ftest_skill_opinion_samples.py",{"format":350,"lines":2859,"tokens":1578,"copies":383,"first":2860,"others":2864},97,{"name":2861,"start":2862,"end":2863},"data_provider\u002Fakshare_fetcher.py",2090,2186,[2865],{"name":2866,"start":2708,"end":2867},"data_provider\u002Fefinance_fetcher.py",1152,{"format":350,"lines":539,"tokens":2869,"copies":383,"first":2870,"others":2873},568,{"name":2861,"start":2871,"end":2872},2092,2185,[2874],{"name":2875,"start":2876,"end":2877},"data_provider\u002Ftushare_fetcher.py",957,1050,{"format":350,"lines":430,"tokens":2879,"copies":383,"first":2880,"others":2882},560,{"name":2881,"start":840,"end":2017},"src\u002Fagent\u002Fexecutor.py",[2883],{"name":2881,"start":2884,"end":2885},232,324,{"format":350,"lines":272,"tokens":2887,"copies":393,"first":2888,"others":2892},65,{"name":2889,"start":2890,"end":2891},"tests\u002Ftest_system_config_api.py",914,921,[2893,2897,2900,2903,2905,2908,2910,2913],{"name":2894,"start":2895,"end":2896},"tests\u002Ftest_system_config_service.py",2463,2470,{"name":2894,"start":2898,"end":2899},2477,2484,{"name":2894,"start":2901,"end":2902},2498,2505,{"name":2894,"start":1274,"end":2904},2540,{"name":2894,"start":2906,"end":2907},2547,2554,{"name":2894,"start":1508,"end":2909},3082,{"name":2894,"start":2911,"end":2912},3150,3157,{"name":2894,"start":2914,"end":2915},3165,3172,{"format":390,"lines":278,"tokens":843,"copies":255,"first":2917,"others":2919},{"name":2918,"start":1261,"end":1219},"apps\u002Fdsa-desktop\u002Ftests\u002Fmain.test.js",[2920,2923,2925,2927,2930,2932],{"name":2918,"start":2921,"end":2922},389,394,{"name":2918,"start":2924,"end":2638},403,{"name":2918,"start":2926,"end":2769},417,{"name":2918,"start":2928,"end":2929},431,436,{"name":2918,"start":2027,"end":2931},452,{"name":2918,"start":2933,"end":2934},467,472,{"format":350,"lines":1414,"tokens":2936,"copies":391,"first":2937,"others":2941},139,{"name":2938,"start":2939,"end":2940},"tests\u002Ftest_agent_pipeline.py",1694,1719,[2942,2944,2947],{"name":2938,"start":504,"end":2943},2011,{"name":2938,"start":2945,"end":2946},2134,2159,{"name":2938,"start":1458,"end":1266},{"sources":2949,"lines":2950,"tokens":2951,"clones":290,"duplicatedLines":2952,"duplicatedTokens":2953,"percentage":291,"percentageTokens":2954,"formats":2955,"topClones":2974,"generated":3081},539,240958,1328047,4712,27211,2.05,[2956,2960,2963,2966,2969,2971],{"format":350,"sources":1587,"lines":2957,"clones":2958,"duplicatedLines":2566,"percentage":2959},191106,296,2.3,{"format":1752,"sources":1141,"lines":2961,"clones":358,"duplicatedLines":2439,"percentage":2962},31659,0.56,{"format":357,"sources":1850,"lines":2964,"clones":729,"duplicatedLines":956,"percentage":2965},14176,0.88,{"format":390,"sources":303,"lines":2967,"clones":310,"duplicatedLines":272,"percentage":2968},2433,0.33,{"format":572,"sources":278,"lines":2970,"clones":574,"duplicatedLines":574,"percentage":574},1074,{"format":2972,"sources":391,"lines":2973,"clones":574,"duplicatedLines":574,"percentage":574},"powershell",510,[2975,2994,3001,3014,3026,3035,3045,3055,3063,3073],{"format":350,"lines":2859,"tokens":1578,"copies":383,"first":2976,"others":2977,"excerpt":2979,"excerptSecond":2989},{"name":2861,"start":2862,"end":2863},[2978],{"name":2866,"start":2708,"end":2867},{"lines":2980,"total":2859},[2981,2982,2983,424,2984,424,2985,2986,2987,2988],"            \"api=ak.stock_zh_a_spot action=failed error=%s\",","            e,","        )","    return None","def _calc_market_stats(","    self,","    df: pd.DataFrame,","    ) -> Optional[Dict[str, Any]]:",{"lines":2990,"total":1139},[2991,2982,2983,2992,424,2985,2986,2987,2988,2993],"            \"api=ef.stock.get_realtime_quotes action=failed error=%s\",","        return None","    \"\"\"从行情 DataFrame 计算涨跌统计。\"\"\"",{"format":350,"lines":539,"tokens":2869,"copies":383,"first":2995,"others":2996,"excerpt":2998},{"name":2861,"start":2871,"end":2872},[2997],{"name":2875,"start":2876,"end":2877},{"lines":2999,"total":539},[2983,424,2984,424,2985,2986,2987,2988,2993,3000],"    import numpy as np",{"format":350,"lines":430,"tokens":2879,"copies":383,"first":3002,"others":3003,"excerpt":3005},{"name":2881,"start":840,"end":2017},[3004],{"name":2881,"start":2884,"end":2885},{"lines":3006,"total":430},[3007,424,3008,424,3009,3010,3011,424,3012,3013],"{market_guidelines}","## 工作流程（必须严格按阶段顺序执行，每阶段等工具结果返回后再进入下一阶段）","**第一阶段 · 行情与K线**（首先执行）","- `get_realtime_quote` 获取实时行情","- `get_daily_history` 获取历史K线","**第二阶段 · 技术与筹码**（等第一阶段结果返回后执行）","- `analyze_trend` 获取技术指标",{"format":350,"lines":358,"tokens":3015,"copies":372,"first":3016,"others":3018},186,{"name":2881,"start":1075,"end":3017},225,[3019,3023],{"name":3020,"start":3021,"end":3022},"src\u002Fanalyzer.py",2131,2148,{"name":3020,"start":3024,"end":3025},2317,2334,{"format":350,"lines":981,"tokens":1865,"copies":383,"first":3027,"others":3031},{"name":3028,"start":3029,"end":3030},"src\u002Fservices\u002Fscreening\u002Fdaily.py",400,442,[3032],{"name":3033,"start":3034,"end":709},"src\u002Fservices\u002Fscreening\u002Fsnapshot.py",177,{"format":350,"lines":898,"tokens":3036,"copies":383,"first":3037,"others":3040},278,{"name":3038,"start":3039,"end":1239},"src\u002Fnotification.py",1358,[3041],{"name":3042,"start":3043,"end":3044},"src\u002Fservices\u002Fhistory_service.py",1171,1230,{"format":350,"lines":1128,"tokens":3046,"copies":383,"first":3047,"others":3051},262,{"name":3048,"start":3049,"end":3050},"data_provider\u002Fbase.py",2049,2100,[3052],{"name":3048,"start":3053,"end":3054},2128,2181,{"format":350,"lines":692,"tokens":3056,"copies":383,"first":3057,"others":3060},255,{"name":3058,"start":461,"end":3059},"src\u002Frepositories\u002Fportfolio_repo.py",924,[3061],{"name":3058,"start":3062,"end":1233},1060,{"format":350,"lines":432,"tokens":3064,"copies":383,"first":3065,"others":3069},230,{"name":3066,"start":3067,"end":3068},"src\u002Fservices\u002Fscreening\u002Ffilter.py",228,247,[3070],{"name":3066,"start":3071,"end":3072},328,347,{"format":350,"lines":696,"tokens":2429,"copies":383,"first":3074,"others":3077},{"name":3020,"start":3075,"end":3076},1969,2037,[3078],{"name":3020,"start":3079,"end":3080},2157,2225,{"files":574,"minified":574,"sample":3082},[],{"score":3084,"grade":3085,"size":3086,"dimensions":3088},58.3,"C",{"lines":3087,"files":1665,"class":1618},461421,[3089,3096,3101],{"id":668,"source":669,"value":3090,"adjusted":3090,"lines":3091,"halfLife":672,"formats":3092,"excluded":3094,"weight":310,"score":3095},6.2,28711,[350,1752,357,390,572,2972,3093,801],"nsis",[364,675,676],60.3,{"id":679,"source":669,"value":680,"adjusted":680,"lines":3097,"halfLife":683,"coverage":3098,"weight":3099,"score":3100},6435,99.6,0.996,87.8,{"id":688,"source":669,"value":876,"adjusted":3102,"lines":3103,"halfLife":692,"weight":310,"score":3104},70.8,327670,37.5,{"total":3106,"mean":3107,"files":3108},64752,66.8,[3109,3114,3119,3123,3127,3131,3134,3139,3144,3149],{"path":3110,"complexity":3111,"lines":3112,"bytes":3113},"src\u002Fservices\u002Fscreening_service.py",1384,4384,175732,{"path":3115,"complexity":3116,"lines":3117,"bytes":3118},"src\u002Fservices\u002Fsystem_config_service.py",1282,5680,244429,{"path":3020,"complexity":3120,"lines":3121,"bytes":3122},1134,5770,253714,{"path":3048,"complexity":3124,"lines":3125,"bytes":3126},1046,5016,219118,{"path":3128,"complexity":2891,"lines":3129,"bytes":3130},"src\u002Fsearch_service.py",4961,194390,{"path":3132,"complexity":534,"lines":2560,"bytes":3133},"src\u002Fcore\u002Fpipeline.py",199619,{"path":3135,"complexity":3136,"lines":3137,"bytes":3138},"src\u002Fconfig.py",824,3934,180188,{"path":3140,"complexity":3141,"lines":3142,"bytes":3143},"src\u002Fshare_image.py",696,2172,105912,{"path":3145,"complexity":3146,"lines":3147,"bytes":3148},"apps\u002Fdsa-web\u002Fsrc\u002Fcomponents\u002Fsettings\u002FLLMChannelEditor.tsx",688,2673,104011,{"path":3150,"complexity":3151,"lines":3152,"bytes":3153},"src\u002Fagent\u002Fweb_intent_resolver.py",687,2176,109560,{"percentage":680,"findings":3155,"files":3156,"byCategory":3157,"largest":3163},128,977,[3158,3159,3160,3161],{"category":733,"count":887},{"category":735,"count":1414},{"category":737,"count":1128},{"category":739,"count":3162},40,[3164,3165,3168,3170,3172,3174,3176,3178,3180,3184],{"category":733,"path":3150,"name":424,"line":310,"lines":3152},{"category":733,"path":3166,"name":424,"line":310,"lines":3167},"src\u002Fagent\u002Fweb_intent_types.py",994,{"category":733,"path":3169,"name":424,"line":310,"lines":1107},"src\u002Fagent\u002Fweb_intent_tokenizer.py",{"category":733,"path":3171,"name":424,"line":310,"lines":1253},"src\u002Fagent\u002Ftool_surface.py",{"category":733,"path":3173,"name":424,"line":310,"lines":1216},"bot\u002Fplatforms\u002Fdiscord.py",{"category":733,"path":3175,"name":424,"line":310,"lines":3036},"src\u002Fnotification_capabilities.py",{"category":733,"path":3177,"name":424,"line":310,"lines":3017},"bot\u002Fhandler.py",{"category":733,"path":3179,"name":424,"line":310,"lines":337},"src\u002Fservices\u002Fanalyzer_service.py",{"category":735,"path":3181,"name":3182,"line":3183,"lines":1858},"src\u002Fformatters.py","chunk_markdown_preserving_blocks",361,{"category":733,"path":3185,"name":424,"line":310,"lines":555},"apps\u002Fdsa-desktop\u002Fpreload.js",{"name":3187,"url":3188,"description":3189,"language":302,"stars":3190,"starsToday":960,"defaultBranch":771,"headSha":3191,"durationMs":3192,"total":3193,"formats":3201,"topClones":3236,"code":3336,"health":3448,"complexity":3468,"deadCode":3517},"homeassistant-ai\u002Fha-mcp","https:\u002F\u002Fgithub.com\u002Fhomeassistant-ai\u002Fha-mcp","Configure and automate Home Assistant with Claude, ChatGPT, and other AI assistants.",6124,"ceb8bed203b1af9f7f70280d60b32f040802e215",5591,{"sources":3194,"lines":3195,"tokens":3196,"clones":1400,"duplicatedLines":3197,"duplicatedTokens":3198,"percentage":3199,"percentageTokens":3200},2269,888327,4979279,59700,405065,6.72,8.14,[3202,3207,3212,3216,3220,3224,3227,3228,3231,3233],{"format":350,"sources":3203,"lines":3204,"clones":3205,"duplicatedLines":3206,"percentage":2715},1840,779432,2874,44820,{"format":782,"sources":749,"lines":3208,"clones":3209,"duplicatedLines":3210,"percentage":3211},23689,204,6019,25.41,{"format":3213,"sources":836,"lines":3214,"clones":789,"duplicatedLines":2704,"percentage":3215},"html",2933,14.97,{"format":336,"sources":2388,"lines":3217,"clones":378,"duplicatedLines":3218,"percentage":3219},27747,7312,26.35,{"format":390,"sources":344,"lines":3221,"clones":286,"duplicatedLines":3222,"percentage":3223},16347,423,2.59,{"format":369,"sources":1591,"lines":3225,"clones":303,"duplicatedLines":2704,"percentage":3226},28398,1.55,{"format":1782,"sources":255,"lines":2940,"clones":391,"duplicatedLines":1057,"percentage":1336},{"format":357,"sources":729,"lines":3229,"clones":391,"duplicatedLines":378,"percentage":3230},414,7.73,{"format":801,"sources":278,"lines":1209,"clones":372,"duplicatedLines":650,"percentage":3232},20.98,{"format":572,"sources":960,"lines":3234,"clones":383,"duplicatedLines":836,"percentage":3235},1466,0.82,[3237,3252,3270,3286,3295,3303,3311,3318,3323,3331],{"format":336,"lines":3238,"tokens":3239,"copies":383,"first":3240,"others":3242,"excerpt":3245},6608,88409,{"name":3241,"start":310,"end":3238},"CHANGELOG.md",[3243],{"name":3244,"start":310,"end":3238},"homeassistant-addon\u002FCHANGELOG.md",{"lines":3246,"total":3238},[3247,424,3248,424,424,3249,424,3250,424,3251],"# CHANGELOG","\u003C!-- version list -->","## v9.1.2 (2026-11-08)","### Fixed","- **hacs**: Keep HA-MCP on one store listing and repair installs that got two",{"format":350,"lines":3253,"tokens":3254,"copies":383,"first":3255,"others":3257,"excerpt":3260},714,4040,{"name":3256,"start":310,"end":3253},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth_indirect.py",[3258],{"name":3259,"start":310,"end":3253},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth_indirect.py",{"lines":3261,"total":3253},[3262,424,3263,3264,3265,3266,424,3267,3268,3269],"\"\"\"ha_auth-mode OAuth indirection in front of Home Assistant core.","The proxy-owned authorize and token routes keep client endpoint caches stable","while Home Assistant core remains the authorization server. This module also","validates cross-origin Client ID Metadata Documents before translating their","client identities into the same-origin form accepted by core.","MIRROR: this module is the near-verbatim twin of","``custom_components\u002Fha_mcp_tools\u002Foauth_ha_auth.py``. Keep behavioural changes","on the two sides in step. This pair has exactly TWO intended deltas. The",{"format":336,"lines":1067,"tokens":3271,"copies":383,"first":3272,"others":3274,"excerpt":3277},3118,{"name":3273,"start":1760,"end":2012},"homeassistant-addon-webhook-proxy-dev\u002FDOCS.md",[3275],{"name":3276,"start":432,"end":482},"homeassistant-addon-webhook-proxy\u002FDOCS.md",{"lines":3278,"total":1067},[3279,3280,424,3281,424,3282,3283,3284,424,3285],"Assistant notification). Stop the stable app first; the notification clears","automatically on the next clean start.","## Prerequisites","- **Home Assistant MCP Server** app must be installed and running (stable or dev channel)","- For Nabu Casa auto-detection: active Nabu Casa subscription with remote UI enabled","- For other setups: a working reverse proxy pointing at your HA instance","## Setup",{"format":350,"lines":3183,"tokens":3287,"copies":383,"first":3288,"others":3292},2058,{"name":3289,"start":3290,"end":3291},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth.py",396,756,[3293],{"name":3294,"start":3290,"end":3291},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth.py",{"format":350,"lines":3296,"tokens":3297,"copies":383,"first":3298,"others":3300},333,2050,{"name":3299,"start":1694,"end":1578},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth_autoapprove.py",[3301],{"name":3302,"start":1694,"end":1578},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth_autoapprove.py",{"format":350,"lines":3290,"tokens":3304,"copies":383,"first":3305,"others":3308},2010,{"name":3306,"start":1895,"end":3307},"homeassistant-addon-webhook-proxy-dev\u002Fstart.py",725,[3309],{"name":3310,"start":1895,"end":3307},"homeassistant-addon-webhook-proxy\u002Fstart.py",{"format":364,"lines":730,"tokens":3312,"copies":383,"first":3313,"others":3315},1789,{"name":3314,"start":310,"end":730},"site\u002Fpublic\u002Ffavicon.svg",[3316],{"name":3317,"start":310,"end":730},"site\u002Fpublic\u002Ficon.svg",{"format":350,"lines":682,"tokens":3319,"copies":383,"first":3320,"others":3321},1724,{"name":3299,"start":310,"end":682},[3322],{"name":3302,"start":310,"end":682},{"format":350,"lines":3324,"tokens":3325,"copies":383,"first":3326,"others":3329},241,1671,{"name":3289,"start":3327,"end":3328},901,1141,[3330],{"name":3294,"start":3327,"end":3328},{"format":350,"lines":290,"tokens":3332,"copies":383,"first":3333,"others":3334},1590,{"name":3289,"start":876,"end":3290},[3335],{"name":3294,"start":876,"end":3290},{"sources":3337,"lines":3338,"tokens":3339,"clones":3340,"duplicatedLines":3341,"duplicatedTokens":3342,"percentage":3343,"percentageTokens":3344,"formats":3345,"topClones":3364,"generated":3443},907,353877,1906674,948,19525,118680,5.52,6.22,[3346,3351,3352,3355,3356,3358,3361,3363],{"format":350,"sources":1352,"lines":3347,"clones":3348,"duplicatedLines":3349,"percentage":3350},335132,892,18762,5.6,{"format":3213,"sources":836,"lines":3214,"clones":789,"duplicatedLines":2704,"percentage":3215},{"format":390,"sources":815,"lines":3353,"clones":836,"duplicatedLines":961,"percentage":3354},10431,2.47,{"format":357,"sources":729,"lines":3229,"clones":391,"duplicatedLines":378,"percentage":3230},{"format":1782,"sources":303,"lines":1318,"clones":372,"duplicatedLines":1569,"percentage":3357},12.27,{"format":3359,"sources":836,"lines":3360,"clones":574,"duplicatedLines":574,"percentage":574},"astro",3917,{"format":572,"sources":303,"lines":3362,"clones":574,"duplicatedLines":574,"percentage":574},603,{"format":2972,"sources":310,"lines":545,"clones":574,"duplicatedLines":574,"percentage":574},[3365,3371,3387,3402,3406,3410,3414,3418,3428,3437],{"format":350,"lines":3253,"tokens":3254,"copies":383,"first":3366,"others":3367,"excerpt":3369},{"name":3256,"start":310,"end":3253},[3368],{"name":3259,"start":310,"end":3253},{"lines":3370,"total":3253},[3262,424,3263,3264,3265,3266,424,3267,3268,3269],{"format":350,"lines":3183,"tokens":3287,"copies":383,"first":3372,"others":3373,"excerpt":3375},{"name":3289,"start":3290,"end":3291},[3374],{"name":3294,"start":3290,"end":3291},{"lines":3376,"total":3183},[3377,3378,3379,3380,3381,3382,3383,3384,3385,3386],"HEARTBEAT_FILE = Path(\"\u002Fconfig\u002F.mcp_proxy_dev_heartbeat\")","_HEARTBEAT_MAX_AGE = 90.0  # three missed 30-second touches","# Only the NEGATIVE verdict is cached (#2218 review): a clean shutdown deletes","# the heartbeat file but cannot clear a cache in the integration process, so a","# cached True would keep the surface serving after the stop. A fresh stat per","# request while alive is microseconds in the executor; the cache exists so an","# anonymous flood against a STOPPED install does not stat per request.","#","# The lease MUST stay shorter than start.py's `_probe_oauth_active` delay","# (2 s between 3 attempts): that probe drives a DESTRUCTIVE path — it tears",{"format":350,"lines":3296,"tokens":3297,"copies":383,"first":3388,"others":3389,"excerpt":3391},{"name":3299,"start":1694,"end":1578},[3390],{"name":3302,"start":1694,"end":1578},{"lines":3392,"total":3296},[3393,3394,3395,424,3396,3397,3398,3399,3400,3401],"def __init__(self, hass: HomeAssistant) -> None:","    \"\"\"Bind the view to the HA instance; liveness is resolved per request.\"\"\"","    self._hass = hass","async def get(self, request: web.Request) -> web.Response:","    \"\"\"Dispatch an authorization request to the currently active mode.\"\"\"","    if not await _addon_alive(self._hass):","        return _json_not_found()","    data = _domain_data(self._hass)","    if data is None:",{"format":350,"lines":3290,"tokens":3304,"copies":383,"first":3403,"others":3404},{"name":3306,"start":1895,"end":3307},[3405],{"name":3310,"start":1895,"end":3307},{"format":350,"lines":682,"tokens":3319,"copies":383,"first":3407,"others":3408},{"name":3299,"start":310,"end":682},[3409],{"name":3302,"start":310,"end":682},{"format":350,"lines":3324,"tokens":3325,"copies":383,"first":3411,"others":3412},{"name":3289,"start":3327,"end":3328},[3413],{"name":3294,"start":3327,"end":3328},{"format":350,"lines":290,"tokens":3332,"copies":383,"first":3415,"others":3416},{"name":3289,"start":876,"end":3290},[3417],{"name":3294,"start":876,"end":3290},{"format":350,"lines":3419,"tokens":3420,"copies":372,"first":3421,"others":3423},127,770,{"name":3422,"start":310,"end":3419},"custom_components\u002Fha_mcp_tools\u002Freadonly_webhook.py",[3424,3426],{"name":3425,"start":310,"end":3419},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Freadonly_webhook.py",{"name":3427,"start":310,"end":3419},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Freadonly_webhook.py",{"format":350,"lines":1165,"tokens":3429,"copies":383,"first":3430,"others":3434},1365,{"name":3431,"start":3432,"end":3433},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002F__init__.py",856,1146,[3435],{"name":3436,"start":3432,"end":3433},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002F__init__.py",{"format":350,"lines":401,"tokens":3438,"copies":383,"first":3439,"others":3441},1288,{"name":3299,"start":3362,"end":3440},804,[3442],{"name":3302,"start":3362,"end":3440},{"files":372,"minified":574,"sample":3444},[3445,3446,3447],"src\u002Fha_mcp\u002F_vendor\u002Fmcp_types\u002F_v2025_11_25\u002F__init__.py","src\u002Fha_mcp\u002F_vendor\u002Fmcp_types\u002F_v2026_07_28\u002F__init__.py","src\u002Fha_mcp\u002Fsettings_ui\u002Fsettings_js\u002F05_feature_flags.js",{"score":3449,"grade":1980,"size":3450,"dimensions":3453},48.6,{"lines":3451,"files":3452,"class":1618},800353,1900,[3454,3459,3463],{"id":668,"source":669,"value":3455,"adjusted":3455,"lines":3456,"halfLife":672,"formats":3457,"excluded":3458,"weight":310,"score":1381},5.7,45335,[350,390,3359,572,801,357,2972],[364,675,676],{"id":679,"source":669,"value":2584,"adjusted":2584,"lines":3460,"halfLife":683,"coverage":3461,"weight":310,"score":3462},73731,100,42.7,{"id":688,"source":669,"value":3464,"adjusted":3465,"lines":3466,"halfLife":692,"weight":310,"score":3467},61.6,61.5,493179,42.6,{"total":3469,"mean":3470,"files":3471},81339,42.8,[3472,3477,3482,3487,3491,3496,3500,3505,3510,3514],{"path":3473,"complexity":3474,"lines":3475,"bytes":3476},"src\u002Fha_mcp\u002Fbackup_manager.py",625,3567,150437,{"path":3478,"complexity":3479,"lines":3480,"bytes":3481},"tests\u002Faddon\u002Ftest_webhook_proxy.py",570,7197,316784,{"path":3483,"complexity":3484,"lines":3485,"bytes":3486},"src\u002Fha_mcp\u002Ftools\u002Ftools_addons.py",504,4038,158555,{"path":3488,"complexity":716,"lines":3489,"bytes":3490},"custom_components\u002Fha_mcp_tools\u002F__init__.py",3564,144724,{"path":3492,"complexity":3493,"lines":3494,"bytes":3495},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_dashboards.py",415,3755,157087,{"path":3497,"complexity":1851,"lines":3498,"bytes":3499},"tests\u002Fsrc\u002Funit\u002Ftest_tools_addons.py",6904,266973,{"path":3501,"complexity":3502,"lines":3503,"bytes":3504},"tests\u002Finitial_test_state\u002Fcustom_components\u002Fhacs\u002Frepositories\u002Fbase.py",337,1453,54662,{"path":3506,"complexity":3507,"lines":3508,"bytes":3509},"src\u002Fha_mcp\u002F_vendor\u002Ffastmcp\u002Fserver\u002Fserver.py",317,2595,108208,{"path":3511,"complexity":1179,"lines":3512,"bytes":3513},"src\u002Fha_mcp\u002Fclient\u002Frest_client.py",2556,113374,{"path":3515,"complexity":1215,"lines":2339,"bytes":3516},"tests\u002Fsrc\u002Funit\u002Ftest_backup_manager.py",145860,{"percentage":3518,"findings":3519,"files":2258,"byCategory":3520,"largest":3525},9.22,309,[3521,3522,3523,3524],{"category":733,"count":361},{"category":735,"count":378},{"category":737,"count":1139},{"category":739,"count":360},[3526,3529,3532,3535,3538,3541,3543,3546,3549,3552],{"category":733,"path":3527,"name":424,"line":310,"lines":3528},"src\u002Fha_mcp\u002Ftools\u002Ftools_entities.py",2158,{"category":733,"path":3530,"name":424,"line":310,"lines":3531},"src\u002Fha_mcp\u002Ftools\u002Ftools_system.py",1933,{"category":733,"path":3533,"name":424,"line":310,"lines":3534},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_automations.py",1668,{"category":733,"path":3536,"name":424,"line":310,"lines":3537},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_scenes.py",1456,{"category":733,"path":3539,"name":424,"line":310,"lines":3540},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_scripts.py",1154,{"category":733,"path":3542,"name":424,"line":310,"lines":1720},"src\u002Fha_mcp\u002Ftools\u002Ftools_registry.py",{"category":733,"path":3544,"name":424,"line":310,"lines":3545},"src\u002Fha_mcp\u002F_vendor\u002Fwebsockets\u002Fsync\u002Fclient.py",1116,{"category":733,"path":3547,"name":424,"line":310,"lines":3548},"src\u002Fha_mcp\u002Ftools\u002Ftools_history.py",1100,{"category":733,"path":3550,"name":424,"line":310,"lines":3551},"src\u002Fha_mcp\u002Ftools\u002Ftools_updates.py",1083,{"category":733,"path":3553,"name":424,"line":310,"lines":3554},"src\u002Fha_mcp\u002Ftools\u002Ftools_hacs.py",999,{"\u002Ftrending\u002F2026-11-10":3556},{"views":383,"visits":383},null,1794379853106]