[{"data":1,"prerenderedAt":4407},["ShallowReactive",2],{"navigation_docs":3,"trending-day-2026-11-11":249,"page-views-\u002Ftrending\u002F2026-11-11":4404,"trending-week-null":4406},[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":334},"2026-11-11","2026-11-11T05:21:30.833Z","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":272,"codeSources":278,"codeLines":279,"codeClones":280,"codeDuplicatedLines":281,"codePercentage":282,"codeMedianPercentage":283,"codeMostDuplicated":284,"codeCleanest":287,"generatedFiles":290,"avgHealth":291,"healthiest":292,"leastHealthy":295,"languages":298},9,14572,3521664,22936933,22327,345292,2274571,9.8,9.92,8.64,6.52,{"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},"ranxianglei\u002Fbillion-context",8437,16.04,4588,1392465,4277,67679,4.86,4.74,{"name":267,"clones":285,"percentage":286},30,30.32,{"name":275,"clones":288,"percentage":289},462,2.73,72,52.47,{"name":271,"score":293,"grade":294},76.9,"B",{"name":267,"score":296,"grade":297},33.3,"E",[299,306,311,317,323,328],{"language":300,"repos":301,"clones":302,"lines":303,"duplicatedLines":304,"percentage":305},"Python",4,3504,1051970,77683,7.38,{"language":307,"repos":308,"clones":276,"lines":309,"duplicatedLines":310,"percentage":277},"TypeScript",1,644916,103440,{"language":312,"repos":308,"clones":313,"lines":314,"duplicatedLines":315,"percentage":316},"C++",6000,715939,101582,14.19,{"language":318,"repos":308,"clones":319,"lines":320,"duplicatedLines":321,"percentage":322},"Ruby",3254,887618,49209,5.54,{"language":324,"repos":308,"clones":325,"lines":326,"duplicatedLines":327,"percentage":265},"Rust",1068,194032,12642,{"language":329,"repos":308,"clones":330,"lines":331,"duplicatedLines":332,"percentage":333},"JavaScript",64,27189,736,2.71,[335,783,1146,1515,2225,2777,3155,3736,3917],{"name":267,"url":336,"description":337,"language":300,"stars":338,"starsToday":339,"defaultBranch":340,"headSha":341,"durationMs":342,"total":343,"formats":350,"topClones":411,"code":570,"health":677,"complexity":710,"deadCode":743},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","Public repository for Agent Skills",192539,1679,"main","2c5958ecac7cee2b583967a2c4981d0f4a75c579",1302,{"sources":344,"lines":345,"tokens":346,"clones":268,"duplicatedLines":347,"duplicatedTokens":348,"percentage":269,"percentageTokens":349},410,70053,677199,14891,95546,14.11,[351,358,365,372,379,385,392,398,403,407],{"format":352,"sources":353,"lines":354,"clones":355,"duplicatedLines":356,"percentage":357},"markdown",135,31670,51,2662,8.41,{"format":359,"sources":360,"lines":361,"clones":362,"duplicatedLines":363,"percentage":364},"txt",45,6123,47,5824,95.12,{"format":366,"sources":367,"lines":368,"clones":369,"duplicatedLines":370,"percentage":371},"python",95,20897,36,5961,28.53,{"format":373,"sources":374,"lines":375,"clones":376,"duplicatedLines":377,"percentage":378},"typescript",18,2311,13,168,7.27,{"format":380,"sources":272,"lines":381,"clones":382,"duplicatedLines":383,"percentage":384},"markup",2213,5,46,2.08,{"format":386,"sources":387,"lines":388,"clones":389,"duplicatedLines":390,"percentage":391},"json",19,1207,3,101,8.37,{"format":393,"sources":394,"lines":395,"clones":389,"duplicatedLines":396,"percentage":397},"go",7,732,32,4.37,{"format":399,"sources":382,"lines":400,"clones":401,"duplicatedLines":374,"percentage":402},"php",577,2,3.12,{"format":404,"sources":382,"lines":405,"clones":401,"duplicatedLines":374,"percentage":406},"java",547,3.29,{"format":408,"sources":301,"lines":409,"clones":308,"duplicatedLines":255,"percentage":410},"javascript",1426,0.63,[412,445,476,494,508,518,528,538,548,560],{"format":359,"lines":413,"tokens":414,"copies":376,"first":415,"others":418,"excerpt":435},201,1865,{"name":416,"start":401,"end":417},"skills\u002Facademy-guide\u002FLICENSE.txt",202,[419,421,423,425,427,429,431,433],{"name":420,"start":401,"end":417},"skills\u002Falgorithmic-art\u002FLICENSE.txt",{"name":422,"start":401,"end":417},"skills\u002Fbrand-guidelines\u002FLICENSE.txt",{"name":424,"start":401,"end":417},"skills\u002Fcanvas-design\u002FLICENSE.txt",{"name":426,"start":401,"end":417},"skills\u002Fclaude-api\u002FLICENSE.txt",{"name":428,"start":401,"end":417},"skills\u002Fdiscernment-nudge\u002FLICENSE.txt",{"name":430,"start":401,"end":417},"skills\u002Finternal-comms\u002FLICENSE.txt",{"name":432,"start":401,"end":417},"skills\u002Fmcp-builder\u002FLICENSE.txt",{"name":434,"start":401,"end":417},"skills\u002Fskill-creator\u002FLICENSE.txt",{"lines":436,"total":413},[437,438,439,440,441,440,442,440,443,444],"                              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":359,"lines":446,"tokens":447,"copies":448,"first":449,"others":451,"excerpt":468},93,912,20,{"name":450,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FArsenalSC-OFL.txt",[452,454,456,458,460,462,464,466],{"name":453,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBigShoulders-OFL.txt",{"name":455,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBoldonse-OFL.txt",{"name":457,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FBricolageGrotesque-OFL.txt",{"name":459,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FCrimsonPro-OFL.txt",{"name":461,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FDMMono-OFL.txt",{"name":463,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FGeistMono-OFL.txt",{"name":465,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FGloock-OFL.txt",{"name":467,"start":308,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FInstrumentSans-OFL.txt",{"lines":469,"total":446},[470,440,471,472,473,440,440,474,475,474],"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":366,"lines":477,"tokens":478,"copies":389,"first":479,"others":481,"excerpt":486},875,4068,{"name":480,"start":308,"end":477},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",[482,484],{"name":483,"start":308,"end":477},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"name":485,"start":308,"end":477},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"lines":487,"total":477},[488,489,488,440,490,491,440,492,493,440],"\"\"\"","Base validator with common validation logic for document files.","import re","from pathlib import Path","import defusedxml.minidom","from functools import lru_cache",{"format":359,"lines":495,"tokens":496,"copies":382,"first":497,"others":499},189,1759,{"name":416,"start":401,"end":498},190,[500,502,504,506],{"name":501,"start":401,"end":498},"skills\u002Fdocx\u002FLICENSE.txt",{"name":503,"start":401,"end":498},"skills\u002Fpdf\u002FLICENSE.txt",{"name":505,"start":401,"end":498},"skills\u002Fpptx\u002FLICENSE.txt",{"name":507,"start":401,"end":498},"skills\u002Fxlsx\u002FLICENSE.txt",{"format":366,"lines":509,"tokens":510,"copies":389,"first":511,"others":513},466,2005,{"name":512,"start":308,"end":509},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",[514,516],{"name":515,"start":308,"end":509},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"name":517,"start":308,"end":509},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"format":366,"lines":519,"tokens":520,"copies":389,"first":521,"others":523},441,1986,{"name":522,"start":308,"end":519},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",[524,526],{"name":525,"start":308,"end":519},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"name":527,"start":308,"end":519},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"format":366,"lines":529,"tokens":530,"copies":389,"first":531,"others":533},192,1529,{"name":532,"start":308,"end":529},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fsoffice.py",[534,536],{"name":535,"start":308,"end":529},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"name":537,"start":308,"end":529},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"format":366,"lines":539,"tokens":540,"copies":389,"first":541,"others":543},299,1470,{"name":542,"start":308,"end":539},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",[544,546],{"name":545,"start":308,"end":539},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"name":547,"start":308,"end":539},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"format":359,"lines":549,"tokens":550,"copies":301,"first":551,"others":552},91,911,{"name":450,"start":389,"end":446},[553,556,558],{"name":554,"start":301,"end":555},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FEricaOne-OFL.txt",94,{"name":557,"start":389,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FIBMPlexMono-OFL.txt",{"name":559,"start":389,"end":446},"skills\u002Fcanvas-design\u002Fcanvas-fonts\u002FItaliana-OFL.txt",{"format":366,"lines":561,"tokens":562,"copies":389,"first":563,"others":565},170,1128,{"name":564,"start":308,"end":561},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",[566,568],{"name":567,"start":308,"end":561},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",{"name":569,"start":308,"end":561},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_chart.py",{"sources":571,"lines":572,"tokens":573,"clones":285,"duplicatedLines":574,"duplicatedTokens":575,"percentage":286,"percentageTokens":576,"formats":577,"topClones":591,"generated":675},67,19471,116265,5903,29706,25.55,[578,584,587],{"format":366,"sources":579,"lines":580,"clones":581,"duplicatedLines":582,"percentage":583},62,17800,29,5894,33.11,{"format":408,"sources":389,"lines":585,"clones":308,"duplicatedLines":255,"percentage":586},1295,0.69,{"format":588,"sources":401,"lines":589,"clones":590,"duplicatedLines":590,"percentage":590},"bash",376,0,[592,599,610,620,625,630,635,645,655,665],{"format":366,"lines":477,"tokens":478,"copies":389,"first":593,"others":594,"excerpt":597},{"name":480,"start":308,"end":477},[595,596],{"name":483,"start":308,"end":477},{"name":485,"start":308,"end":477},{"lines":598,"total":477},[488,489,488,440,490,491,440,492,493,440],{"format":366,"lines":509,"tokens":510,"copies":389,"first":600,"others":601,"excerpt":604},{"name":512,"start":308,"end":509},[602,603],{"name":515,"start":308,"end":509},{"name":517,"start":308,"end":509},{"lines":605,"total":509},[488,606,488,440,607,490,608,609,491,440],"Validator for Word document XML files against XSD schemas.","import random","import tempfile","import zipfile",{"format":366,"lines":519,"tokens":520,"copies":389,"first":611,"others":612,"excerpt":615},{"name":522,"start":308,"end":519},[613,614],{"name":525,"start":308,"end":519},{"name":527,"start":308,"end":519},{"lines":616,"total":519},[488,617,488,440,490,491,440,618,440,619],"Validator for PowerPoint presentation XML files against XSD schemas.","from helpers import opc_target, rels_source_part, safe_extract","from .base import BaseSchemaValidator",{"format":366,"lines":529,"tokens":530,"copies":389,"first":621,"others":622},{"name":532,"start":308,"end":529},[623,624],{"name":535,"start":308,"end":529},{"name":537,"start":308,"end":529},{"format":366,"lines":539,"tokens":540,"copies":389,"first":626,"others":627},{"name":542,"start":308,"end":539},[628,629],{"name":545,"start":308,"end":539},{"name":547,"start":308,"end":539},{"format":366,"lines":561,"tokens":562,"copies":389,"first":631,"others":632},{"name":564,"start":308,"end":561},[633,634],{"name":567,"start":308,"end":561},{"name":569,"start":308,"end":561},{"format":366,"lines":636,"tokens":637,"copies":389,"first":638,"others":640},173,840,{"name":639,"start":308,"end":636},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidate.py",[641,643],{"name":642,"start":308,"end":636},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"name":644,"start":308,"end":636},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"format":366,"lines":646,"tokens":647,"copies":389,"first":648,"others":650},111,663,{"name":649,"start":308,"end":646},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",[651,653],{"name":652,"start":308,"end":646},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"name":654,"start":308,"end":646},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"format":366,"lines":656,"tokens":657,"copies":389,"first":658,"others":660},114,656,{"name":659,"start":308,"end":656},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",[661,663],{"name":662,"start":308,"end":656},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",{"name":664,"start":308,"end":656},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_theme.py",{"format":366,"lines":666,"tokens":667,"copies":389,"first":668,"others":670},60,217,{"name":669,"start":308,"end":666},"skills\u002Fdocx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",[671,673],{"name":672,"start":308,"end":666},"skills\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",{"name":674,"start":308,"end":666},"skills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fpptx_slide.py",{"files":590,"minified":590,"sample":676},[],{"score":296,"grade":297,"size":678,"dimensions":682},{"lines":679,"files":680,"class":681},19579,70,"M",[683,694,703],{"id":684,"source":685,"value":686,"adjusted":687,"lines":574,"halfLife":688,"formats":689,"excluded":690,"weight":308,"score":693},"duplication","jscpd",30.1,27.7,8.5,[366,408,588],[380,691,692],"text","data",10.5,{"id":695,"source":685,"value":696,"adjusted":697,"lines":698,"halfLife":699,"coverage":700,"weight":701,"score":702},"dead-code",1.4,1.5,267,7.5,98.5,0.985,86.7,{"id":704,"source":685,"value":705,"adjusted":706,"lines":707,"halfLife":708,"weight":308,"score":709},"complexity",68.8,64.4,13476,50,41,{"total":711,"mean":712,"files":713},4830,69,[714,719,724,727,728,729,734,738,741,742],{"path":715,"complexity":716,"lines":717,"bytes":718},"skills\u002Fclaude-api\u002Fshared\u002Fpreserved-thinking-migration\u002Fprefix_diff.py",769,1532,94008,{"path":720,"complexity":721,"lines":722,"bytes":723},"skills\u002Fclaude-api\u002Fshared\u002Fpreserved-thinking-migration\u002Fdrop_block_probe.py",432,1066,66582,{"path":480,"complexity":725,"lines":477,"bytes":726},219,33756,{"path":483,"complexity":725,"lines":477,"bytes":726},{"path":485,"complexity":725,"lines":477,"bytes":726},{"path":730,"complexity":731,"lines":732,"bytes":733},"skills\u002Fclaude-api\u002Fshared\u002Fevals\u002Freport\u002Fbuild-report-lite.mjs",218,488,27329,{"path":735,"complexity":636,"lines":736,"bytes":737},"skills\u002Fclaude-api\u002Fshared\u002Fevals\u002Freport\u002Frunner-scaffold.mjs",602,33142,{"path":512,"complexity":739,"lines":509,"bytes":740},124,17482,{"path":515,"complexity":739,"lines":509,"bytes":740},{"path":517,"complexity":739,"lines":509,"bytes":740},{"percentage":744,"findings":745,"files":746,"byCategory":747,"largest":756},1.38,11,75,[748,750,752,754],{"category":749,"count":401},"unused-file",{"category":751,"count":389},"unused-export",{"category":753,"count":389},"unused-symbol",{"category":755,"count":389},"unused-import",[757,760,762,767,770,772,773,774,777,780],{"category":749,"path":758,"name":440,"line":308,"lines":759},"skills\u002Falgorithmic-art\u002Ftemplates\u002Fgenerator_template.js",223,{"category":749,"path":761,"name":440,"line":308,"lines":745},"skills\u002Fpdf\u002Fscripts\u002Fcheck_fillable_fields.py",{"category":753,"path":763,"name":764,"line":765,"lines":766},"skills\u002Fdocx\u002Fscripts\u002Fcomment.py","_has_relationship",148,6,{"category":753,"path":763,"name":768,"line":769,"lines":766},"_has_content_type",156,{"category":751,"path":659,"name":771,"line":390,"lines":382},"find_shared_master_themes",{"category":751,"path":662,"name":771,"line":390,"lines":382},{"category":751,"path":664,"name":771,"line":390,"lines":382},{"category":753,"path":715,"name":775,"line":776,"lines":389},"_item_count",427,{"category":755,"path":778,"name":779,"line":394,"lines":308},"skills\u002Fskill-creator\u002Fscripts\u002Fquick_validate.py","os",{"category":755,"path":781,"name":782,"line":745,"lines":308},"skills\u002Fslack-gif-creator\u002Fcore\u002Fframe_composer.py","np",{"name":784,"url":785,"description":786,"language":329,"stars":787,"starsToday":788,"defaultBranch":340,"headSha":789,"durationMs":790,"total":791,"formats":796,"topClones":839,"code":947,"health":1076,"complexity":1100,"deadCode":1143},"addyosmani\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002Faddyosmani\u002Fagent-skills","Production-grade engineering skills for AI coding agents.",115306,465,"301b02b12bff98e4688e6984af6556802322bbde",1133,{"sources":792,"lines":331,"tokens":793,"clones":330,"duplicatedLines":332,"duplicatedTokens":794,"percentage":333,"percentageTokens":795},327,230742,6438,2.79,[797,803,809,814,819,823,826,829,834,836],{"format":408,"sources":798,"lines":799,"clones":800,"duplicatedLines":801,"percentage":802},38,5857,28,265,4.52,{"format":804,"sources":374,"lines":805,"clones":806,"duplicatedLines":807,"percentage":808},"toml",542,15,257,47.42,{"format":588,"sources":810,"lines":811,"clones":394,"duplicatedLines":812,"percentage":813},21,1895,76,4.01,{"format":815,"sources":394,"lines":816,"clones":766,"duplicatedLines":817,"percentage":818},"diff",137,53,38.69,{"format":352,"sources":820,"lines":821,"clones":301,"duplicatedLines":396,"percentage":822},113,14523,0.22,{"format":366,"sources":272,"lines":824,"clones":401,"duplicatedLines":798,"percentage":825},188,20.21,{"format":373,"sources":376,"lines":827,"clones":308,"duplicatedLines":394,"percentage":828},672,1.04,{"format":830,"sources":831,"lines":832,"clones":308,"duplicatedLines":272,"percentage":833},"yaml",33,492,1.63,{"format":386,"sources":831,"lines":835,"clones":590,"duplicatedLines":590,"percentage":590},1585,{"format":691,"sources":837,"lines":838,"clones":590,"duplicatedLines":590,"percentage":590},34,1001,[840,856,874,889,898,903,911,924,931,939],{"format":804,"lines":841,"tokens":842,"copies":401,"first":843,"others":845,"excerpt":848},43,743,{"name":844,"start":308,"end":841},".gemini\u002Fcommands\u002Fbuild.toml",[846],{"name":847,"start":308,"end":841},"commands\u002Fbuild.toml",{"lines":849,"total":841},[850,440,851,852,440,853,440,854,855,440],"description = \"Implement tasks incrementally — build, test, verify, commit. Add \\\"auto\\\" to run the whole plan in one approved pass.\"","prompt = \"\"\"","Invoke the incremental-implementation skill alongside test-driven-development.","## Modes","- `\u002Fbuild` — implement the next pending task, then stop (careful, one slice at a time).","- `\u002Fbuild auto` — generate the plan if needed, get a single approval, then implement every task without stopping between them.",{"format":804,"lines":383,"tokens":857,"copies":401,"first":858,"others":861,"excerpt":864},429,{"name":859,"start":860,"end":290},".gemini\u002Fcommands\u002Fship.toml",27,[862],{"name":863,"start":860,"end":290},"commands\u002Fship.toml",{"lines":865,"total":383},[866,440,867,440,868,869,870,871,872,873],"## Phase B — Merge in main context","Once all three reports are back, the main agent (not a sub-persona) synthesizes them:","1. **Code Quality** — Aggregate Critical\u002FRequired findings from `code-reviewer` and any failing tests, lint, or build output. Resolve duplicates between review…","2. **Security** — Promote any Critical\u002FHigh `security-auditor` findings to launch blockers. Cross-reference with `code-reviewer`'s security axis.","3. **Performance** — Pull from `code-reviewer`'s performance axis; cross-check Core Web Vitals if applicable.","4. **Accessibility** — Verify keyboard nav, screen reader support, contrast (not covered by the three personas — handle directly here, or invoke the accessibil…","5. **Infrastructure** — Env vars, migrations, monitoring, feature flags. Verify directly.","6. **Documentation** — README, ADRs, changelog. Verify directly.",{"format":804,"lines":875,"tokens":876,"copies":401,"first":877,"others":879,"excerpt":882},24,421,{"name":878,"start":308,"end":875},".gemini\u002Fcommands\u002Fconstraints.toml",[880],{"name":881,"start":308,"end":875},"commands\u002Fconstraints.toml",{"lines":883,"total":875},[884,440,851,885,440,886,440,887,440,888],"description = \"Define and enforce this project's quality bar — interview, sane defaults, CONSTRAINTS.md\"","Invoke the constraint-driven-development skill.","$ARGUMENTS","Default behaviour with no arguments: set up constraints for this repository.","1. **Detect first.** Read package.json \u002F pyproject.toml \u002F go.mod, the test runner, existing lint configs, current coverage output, CI workflows, and the agent …",{"format":815,"lines":745,"tokens":890,"copies":389,"first":891,"others":893},119,{"name":892,"start":745,"end":810},"evals\u002Fplugin\u002Fcode-review-stays-quiet-on-commit-message\u002Fprompt.md",[894,896],{"name":895,"start":745,"end":810},"evals\u002Fplugin\u002Fgitflow-stays-quiet-on-what-broke\u002Fprompt.md",{"name":897,"start":745,"end":810},"evals\u002Fplugin\u002Ftdd-stays-quiet-on-debug\u002Fprompt.md",{"format":804,"lines":255,"tokens":759,"copies":401,"first":899,"others":901},{"name":859,"start":900,"end":374},10,[902],{"name":863,"start":900,"end":374},{"format":804,"lines":904,"tokens":905,"copies":401,"first":906,"others":908},16,165,{"name":907,"start":308,"end":904},".gemini\u002Fcommands\u002Freview.toml",[909],{"name":910,"start":308,"end":904},"commands\u002Freview.toml",{"format":588,"lines":912,"tokens":913,"copies":389,"first":914,"others":917},12,79,{"name":915,"start":807,"end":916},"hooks\u002Fsimplify-ignore-test.sh",268,[918,921],{"name":915,"start":919,"end":920},301,312,{"name":915,"start":922,"end":923},341,352,{"format":804,"lines":374,"tokens":925,"copies":401,"first":926,"others":928},146,{"name":927,"start":308,"end":374},".gemini\u002Fcommands\u002Fplanning.toml",[929],{"name":930,"start":308,"end":374},"commands\u002Fplanning.toml",{"format":804,"lines":932,"tokens":933,"copies":401,"first":934,"others":936},17,142,{"name":935,"start":308,"end":932},".gemini\u002Fcommands\u002Fspec.toml",[937],{"name":938,"start":308,"end":932},"commands\u002Fspec.toml",{"format":804,"lines":806,"tokens":940,"copies":401,"first":941,"others":944},131,{"name":942,"start":272,"end":943},".gemini\u002Fcommands\u002Fcode-simplify.toml",22,[945],{"name":946,"start":272,"end":943},"commands\u002Fcode-simplify.toml",{"sources":948,"lines":949,"tokens":950,"clones":951,"duplicatedLines":922,"duplicatedTokens":952,"percentage":953,"percentageTokens":954,"formats":955,"topClones":960,"generated":1074},25,7131,42662,35,2317,4.78,5.43,[956,958],{"format":408,"sources":374,"lines":957,"clones":800,"duplicatedLines":801,"percentage":282},5448,{"format":588,"sources":394,"lines":959,"clones":394,"duplicatedLines":812,"percentage":802},1683,[961,977,999,1016,1025,1037,1046,1053,1061,1065],{"format":588,"lines":912,"tokens":913,"copies":389,"first":962,"others":963,"excerpt":966},{"name":915,"start":807,"end":916},[964,965],{"name":915,"start":919,"end":920},{"name":915,"start":922,"end":923},{"lines":967,"total":912},[968,969,970,971,972,973,974,975,976,440],"  rm -rf \"$PROJ\"","  mkdir -p \"$PROJ\u002F.claude\"","  TARGET=\"$PROJ\u002Fapp.js\"","  cat > \"$TARGET\" \u003C\u003C'EOF'","const editable = 1;","\u002F* simplify-ignore-start: perf-critical *\u002F","const protectedValue = 42;","\u002F* simplify-ignore-end *\u002F","EOF",{"format":408,"lines":900,"tokens":978,"copies":389,"first":979,"others":981,"excerpt":986,"excerptSecond":996},65,{"name":980,"start":389,"end":912},"scripts\u002Fvalidate-artifact-paths-test.js",[982,984],{"name":983,"start":389,"end":912},"scripts\u002Fvalidate-commands-test.js",{"name":985,"start":389,"end":912},"scripts\u002Fvalidate-reference-links-test.js",{"lines":987,"total":900},[988,440,989,990,991,992,993,994,440,995],"'use strict';","const assert = require('node:assert\u002Fstrict');","const fs = require('node:fs');","const os = require('node:os');","const path = require('node:path');","const { spawnSync } = require('node:child_process');","const { afterEach, test } = require('node:test');","const VALIDATOR = path.join(__dirname, 'validate-artifact-paths.js');",{"lines":997,"total":900},[988,440,989,990,991,992,993,994,440,998],"const VALIDATOR = path.join(__dirname, 'validate-commands.js');",{"format":588,"lines":376,"tokens":1000,"copies":401,"first":1001,"others":1003,"excerpt":1006},118,{"name":1002,"start":904,"end":800},"hooks\u002Fsdd-cache-post.sh",[1004],{"name":1005,"start":810,"end":831},"hooks\u002Fsdd-cache-pre.sh",{"lines":1007,"total":376},[1008,1009,1010,440,1011,440,1012,1013,1014,1015],"command -v jq   >\u002Fdev\u002Fnull 2>&1 || exit 0","command -v curl >\u002Fdev\u002Fnull 2>&1 || exit 0","command -v shasum >\u002Fdev\u002Fnull 2>&1 || command -v sha256sum >\u002Fdev\u002Fnull 2>&1 || exit 0","if [ -t 0 ]; then INPUT=\"{}\"; else INPUT=$(cat); fi","# Debug logging: active when SDD_CACHE_DEBUG=1 is set, or when a sentinel","# file exists at .claude\u002Fsdd-cache\u002F.debug. Toggle with `touch` \u002F `rm`.","dbg() {","  local dir=\"${CLAUDE_PROJECT_DIR:-$PWD}\u002F.claude\u002Fsdd-cache\"",{"format":408,"lines":376,"tokens":1017,"copies":389,"first":1018,"others":1020},58,{"name":980,"start":1019,"end":841},31,[1021,1024],{"name":983,"start":1022,"end":1023},54,66,{"name":985,"start":831,"end":360},{"format":408,"lines":394,"tokens":1022,"copies":389,"first":1026,"others":1030},{"name":1027,"start":1028,"end":1029},"scripts\u002Frun-evals-test.js",503,509,[1031,1034],{"name":1027,"start":1032,"end":1033},528,534,{"name":1027,"start":1035,"end":1036},1009,1013,{"format":408,"lines":1038,"tokens":390,"copies":401,"first":1039,"others":1042},14,{"name":1027,"start":1040,"end":1041},673,686,[1043],{"name":1027,"start":1044,"end":1045},696,709,{"format":408,"lines":900,"tokens":1047,"copies":401,"first":1048,"others":1050},86,{"name":1027,"start":1040,"end":1049},682,[1051],{"name":1027,"start":842,"end":1052},752,{"format":588,"lines":394,"tokens":1054,"copies":401,"first":1055,"others":1057},85,{"name":915,"start":932,"end":1056},23,[1058],{"name":1059,"start":708,"end":1060},"hooks\u002Fsimplify-ignore.sh",56,{"format":408,"lines":912,"tokens":746,"copies":401,"first":1062,"others":1063},{"name":983,"start":875,"end":951},[1064],{"name":985,"start":810,"end":396},{"format":408,"lines":272,"tokens":1066,"copies":401,"first":1067,"others":1070},74,{"name":1027,"start":1068,"end":1069},487,494,[1071],{"name":1027,"start":1072,"end":1073},537,544,{"files":590,"minified":590,"sample":1075},[],{"score":1077,"grade":1078,"size":1079,"dimensions":1083},68.9,"C",{"lines":1080,"files":1081,"class":1082},7541,48,"S",[1084,1091,1095],{"id":684,"source":685,"value":382,"adjusted":1085,"lines":1086,"halfLife":688,"formats":1087,"excluded":1089,"weight":308,"score":1090},4.7,379,[408,588,366,1088],"tsx",[380,691,692],68.1,{"id":695,"source":685,"value":590,"adjusted":1092,"lines":590,"halfLife":699,"coverage":1093,"weight":1094,"score":446},0.8,78.1,0.781,{"id":704,"source":685,"value":1096,"adjusted":1097,"lines":1098,"halfLife":708,"weight":308,"score":1099},48.8,42.9,3678,55.1,{"total":1101,"mean":1102,"files":1103},1170,24.4,[1104,1109,1112,1117,1121,1124,1127,1132,1136,1140],{"path":1105,"complexity":1106,"lines":1107,"bytes":1108},"scripts\u002Frun-evals.js",241,750,30888,{"path":1059,"complexity":656,"lines":1110,"bytes":1111},464,19828,{"path":1113,"complexity":1114,"lines":1115,"bytes":1116},"scripts\u002Flib\u002Fskill-lint.js",96,639,27198,{"path":1118,"complexity":367,"lines":1119,"bytes":1120},"scripts\u002Flib\u002Fskill-lint-test.js",762,30180,{"path":1027,"complexity":549,"lines":1122,"bytes":1123},1063,45559,{"path":915,"complexity":841,"lines":1125,"bytes":1126},652,26190,{"path":1128,"complexity":1129,"lines":1130,"bytes":1131},"scripts\u002Ffloor-guard-reference-test.js",42,323,12781,{"path":1133,"complexity":709,"lines":1134,"bytes":1135},"scripts\u002Fvalidate-commands.js",212,8307,{"path":1137,"complexity":369,"lines":1138,"bytes":1139},"scripts\u002Flib\u002Fexecution-status.js",44,2061,{"path":1141,"complexity":951,"lines":495,"bytes":1142},"scripts\u002Fvalidate-reference-links.js",7804,{"percentage":590,"findings":590,"files":383,"byCategory":1144,"largest":1145},[],[],{"name":1147,"url":1148,"description":1149,"language":300,"stars":1150,"starsToday":1151,"defaultBranch":340,"headSha":1152,"durationMs":1153,"total":1154,"formats":1162,"topClones":1204,"code":1323,"health":1410,"complexity":1435,"deadCode":1482},"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",20596,531,"4a4224bdf0e9cfb3332167b69c90457403813625",1249,{"sources":1155,"lines":1156,"tokens":1157,"clones":933,"duplicatedLines":1158,"duplicatedTokens":1159,"percentage":1160,"percentageTokens":1161},642,79147,533306,3143,16351,3.97,3.07,[1163,1167,1172,1177,1181,1185,1189,1193,1196,1200],{"format":373,"sources":1114,"lines":1164,"clones":581,"duplicatedLines":1165,"percentage":1166},12563,604,4.81,{"format":1088,"sources":1168,"lines":1169,"clones":943,"duplicatedLines":1170,"percentage":1171},83,13338,491,3.68,{"format":366,"sources":1173,"lines":1174,"clones":810,"duplicatedLines":1175,"percentage":1176},152,29256,444,1.52,{"format":352,"sources":446,"lines":1178,"clones":932,"duplicatedLines":1179,"percentage":1180},10643,295,2.77,{"format":588,"sources":680,"lines":1182,"clones":904,"duplicatedLines":1183,"percentage":1184},2682,254,9.47,{"format":386,"sources":798,"lines":1186,"clones":1038,"duplicatedLines":1187,"percentage":1188},2108,654,31.02,{"format":408,"sources":745,"lines":1190,"clones":394,"duplicatedLines":1191,"percentage":1192},1373,81,5.9,{"format":380,"sources":806,"lines":1194,"clones":394,"duplicatedLines":1195,"percentage":1056},852,196,{"format":1197,"sources":272,"lines":1198,"clones":382,"duplicatedLines":330,"percentage":1199},"docker",404,15.84,{"format":1201,"sources":394,"lines":1202,"clones":401,"duplicatedLines":800,"percentage":1203},"css",2072,1.35,[1205,1222,1242,1262,1270,1279,1286,1296,1303,1312],{"format":366,"lines":367,"tokens":1206,"copies":401,"first":1207,"others":1209,"excerpt":1212},619,{"name":1208,"start":308,"end":367},"managed-agents\u002Fself-hosted-sandboxes\u002Fdaytona\u002Fsandbox_runner.py",[1210],{"name":1211,"start":308,"end":367},"managed-agents\u002Fself-hosted-sandboxes\u002Fmodal\u002Fsandbox_runner.py",{"lines":1213,"total":367},[1214,440,1215,1216,1217,1218,1219,1220,1221,440],"\"\"\"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":373,"lines":1223,"tokens":1224,"copies":401,"first":1225,"others":1228,"excerpt":1232},120,558,{"name":1226,"start":810,"end":1227},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-containers\u002Fsrc\u002Findex.ts",140,[1229],{"name":1230,"start":387,"end":1231},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-worker\u002Fsrc\u002Findex.ts",138,{"lines":1233,"total":1223},[1234,1235,440,1236,1237,1238,1239,440,1240,1241],"  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":373,"lines":1243,"tokens":1068,"copies":401,"first":1244,"others":1247,"excerpt":1251},63,{"name":1226,"start":1245,"end":1246},181,243,[1248],{"name":1230,"start":1249,"end":1250},153,215,{"lines":1252,"total":1243},[1253,1254,1255,1256,1257,1258,1259,1260,1261,1235],"      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":386,"lines":1263,"tokens":776,"copies":401,"first":1264,"others":1267},130,{"name":1265,"start":389,"end":1266},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_full.json",132,[1268],{"name":1269,"start":389,"end":1266},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_standard.json",{"format":373,"lines":1271,"tokens":1272,"copies":401,"first":1273,"others":1275},82,382,{"name":1274,"start":1038,"end":367},"managed-agents\u002Flinear\u002Fsrc\u002Fmanaged-agents-webhook.ts",[1276],{"name":1277,"start":394,"end":1278},"managed-agents\u002Fslack\u002Fsrc\u002Fmanaged-agents-webhook.ts",88,{"format":386,"lines":1280,"tokens":1281,"copies":401,"first":1282,"others":1283},112,367,{"name":1265,"start":389,"end":656},[1284],{"name":1285,"start":389,"end":656},"managed-agents\u002Fknowledge-wiki\u002Fmanifest_mini.json",{"format":386,"lines":1287,"tokens":1288,"copies":401,"first":1289,"others":1292},102,335,{"name":1265,"start":1290,"end":1291},175,276,[1293],{"name":1269,"start":1294,"end":1295},157,258,{"format":366,"lines":712,"tokens":1297,"copies":401,"first":1298,"others":1300},315,{"name":1299,"start":308,"end":712},"browser-use-demo\u002Fbrowser_use_demo\u002Ftools\u002Fbase.py",[1301],{"name":1302,"start":308,"end":712},"computer-use-demo\u002Fcomputer_use_demo\u002Ftools\u002Fbase.py",{"format":352,"lines":1060,"tokens":1304,"copies":401,"first":1305,"others":1308},314,{"name":1306,"start":837,"end":1307},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-containers\u002FREADME.md",89,[1309],{"name":1310,"start":948,"end":1311},"managed-agents\u002Fself-hosted-sandboxes\u002Fcloudflare-worker\u002FREADME.md",80,{"format":1088,"lines":1313,"tokens":1314,"copies":401,"first":1315,"others":1319},68,281,{"name":1316,"start":1317,"end":1318},"customer-support-agent\u002Fcomponents\u002Fui\u002Fdropdown-menu.tsx",133,200,[1320],{"name":1321,"start":1231,"end":1322},"financial-data-analyst\u002Fcomponents\u002Fui\u002Fdropdown-menu.tsx",205,{"sources":1324,"lines":1325,"tokens":1326,"clones":1311,"duplicatedLines":1327,"duplicatedTokens":1328,"percentage":1329,"percentageTokens":1330,"formats":1331,"topClones":1347,"generated":1408},330,49620,274699,1718,9392,3.46,3.42,[1332,1335,1336,1340,1344],{"format":373,"sources":549,"lines":1333,"clones":581,"duplicatedLines":1165,"percentage":1334},11728,5.15,{"format":1088,"sources":1168,"lines":1169,"clones":943,"duplicatedLines":1170,"percentage":1171},{"format":366,"sources":1337,"lines":1338,"clones":376,"duplicatedLines":1339,"percentage":833},105,21106,345,{"format":588,"sources":709,"lines":1341,"clones":255,"duplicatedLines":1342,"percentage":1343},2091,197,9.42,{"format":408,"sources":900,"lines":1345,"clones":394,"duplicatedLines":1191,"percentage":1346},1357,5.97,[1348,1354,1360,1366,1370,1374,1378,1385,1392,1399],{"format":366,"lines":367,"tokens":1206,"copies":401,"first":1349,"others":1350,"excerpt":1352},{"name":1208,"start":308,"end":367},[1351],{"name":1211,"start":308,"end":367},{"lines":1353,"total":367},[1214,440,1215,1216,1217,1218,1219,1220,1221,440],{"format":373,"lines":1223,"tokens":1224,"copies":401,"first":1355,"others":1356,"excerpt":1358},{"name":1226,"start":810,"end":1227},[1357],{"name":1230,"start":387,"end":1231},{"lines":1359,"total":1223},[1234,1235,440,1236,1237,1238,1239,440,1240,1241],{"format":373,"lines":1243,"tokens":1068,"copies":401,"first":1361,"others":1362,"excerpt":1364},{"name":1226,"start":1245,"end":1246},[1363],{"name":1230,"start":1249,"end":1250},{"lines":1365,"total":1243},[1253,1254,1255,1256,1257,1258,1259,1260,1261,1235],{"format":373,"lines":1271,"tokens":1272,"copies":401,"first":1367,"others":1368},{"name":1274,"start":1038,"end":367},[1369],{"name":1277,"start":394,"end":1278},{"format":366,"lines":712,"tokens":1297,"copies":401,"first":1371,"others":1372},{"name":1299,"start":308,"end":712},[1373],{"name":1302,"start":308,"end":712},{"format":1088,"lines":1313,"tokens":1314,"copies":401,"first":1375,"others":1376},{"name":1316,"start":1317,"end":1318},[1377],{"name":1321,"start":1231,"end":1322},{"format":1088,"lines":841,"tokens":1379,"copies":401,"first":1380,"others":1382},236,{"name":1381,"start":272,"end":708},"customer-support-agent\u002Fcomponents\u002Fui\u002Favatar.tsx",[1383],{"name":1384,"start":272,"end":708},"financial-data-analyst\u002Fcomponents\u002Fui\u002Favatar.tsx",{"format":373,"lines":948,"tokens":1386,"copies":401,"first":1387,"others":1389},207,{"name":1388,"start":943,"end":383},"managed-agents\u002Flinear\u002Fsrc\u002Froute-signature.ts",[1390],{"name":1391,"start":943,"end":383},"managed-agents\u002Fslack\u002Fsrc\u002Froute-signature.ts",{"format":1088,"lines":841,"tokens":1322,"copies":401,"first":1393,"others":1395},{"name":1316,"start":1313,"end":1394},110,[1396],{"name":1321,"start":1397,"end":1398},73,115,{"format":373,"lines":745,"tokens":367,"copies":389,"first":1400,"others":1403},{"name":1401,"start":1402,"end":369},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Fconfirm\u002Froute.ts",26,[1404,1406],{"name":1405,"start":374,"end":800},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Fmessages\u002Froute.ts",{"name":1407,"start":387,"end":581},"managed-agents\u002Fassistant-ui\u002Fapp\u002Fapi\u002Fsessions\u002F[id]\u002Ftool-results\u002Froute.ts",{"files":590,"minified":590,"sample":1409},[],{"score":1411,"grade":1412,"size":1413,"dimensions":1416},54.4,"D",{"lines":1414,"files":1415,"class":681},59068,388,[1417,1424,1431],{"id":684,"source":685,"value":1418,"adjusted":1418,"lines":1419,"halfLife":688,"formats":1420,"excluded":1422,"weight":308,"score":1423},3.2,1881,[366,1088,373,588,408,1197,1421],"makefile",[380,691,692],77.1,{"id":695,"source":685,"value":1425,"adjusted":1426,"lines":1427,"halfLife":699,"coverage":1428,"weight":1429,"score":1430},11.4,11.1,6442,95.9,0.959,35.9,{"id":704,"source":685,"value":709,"adjusted":1432,"lines":1433,"halfLife":708,"weight":308,"score":1434},40.3,24210,57.2,{"total":1436,"mean":1437,"files":1438},9499,24.5,[1439,1444,1449,1453,1457,1461,1465,1469,1473,1478],{"path":1440,"complexity":1441,"lines":1442,"bytes":1443},"managed-agents\u002Fknowledge-wiki\u002Futilities.py",708,2979,146196,{"path":1445,"complexity":1446,"lines":1447,"bytes":1448},"browser-use-demo\u002Fbrowser_use_demo\u002Ftools\u002Fbrowser.py",191,1275,51609,{"path":1450,"complexity":905,"lines":1451,"bytes":1452},"managed-agents\u002Fassistant-ui\u002Flib\u002Fmanaged-agents\u002Freducer.ts",772,33712,{"path":1454,"complexity":1266,"lines":1455,"bytes":1456},"managed-agents\u002Fself-hosted-sandboxes\u002Fopenshell-policy\u002Fsrc\u002Fagentpolicy\u002Fcli.py",679,29393,{"path":1458,"complexity":940,"lines":1459,"bytes":1460},"browser-use-demo\u002Fbrowser_use_demo\u002Fbrowser_tool_utils\u002Fbrowser_dom_script.js",447,14265,{"path":1462,"complexity":1398,"lines":1463,"bytes":1464},"computer-use-best-practices\u002Fcomputer_use\u002Floop.py",566,22377,{"path":1466,"complexity":1280,"lines":1467,"bytes":1468},"managed-agents\u002Fself-hosted-sandboxes\u002Fopenshell-policy\u002Ftests\u002Ftest_stop.py",456,20786,{"path":1470,"complexity":646,"lines":1471,"bytes":1472},"computer-use-demo\u002Fcomputer_use_demo\u002Ftools\u002Fcomputer.py",635,24660,{"path":1474,"complexity":1475,"lines":1476,"bytes":1477},"managed-agents\u002Fsentry-autofix\u002Fsrc\u002Ffixer.ts",107,461,21793,{"path":1479,"complexity":390,"lines":1480,"bytes":1481},"managed-agents\u002Fassistant-ui\u002Flib\u002Fmanaged-agents\u002Fsession-controller.ts",518,22529,{"percentage":1483,"findings":1243,"files":1484,"byCategory":1485,"largest":1490},11.38,370,[1486,1487,1488,1489],{"category":749,"count":904},{"category":751,"count":1019},{"category":753,"count":389},{"category":755,"count":376},[1491,1492,1495,1496,1499,1501,1504,1507,1510,1513],{"category":749,"path":1440,"name":440,"line":308,"lines":1442},{"category":749,"path":1493,"name":440,"line":308,"lines":1494},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fimage.tsx",481,{"category":749,"path":1458,"name":440,"line":308,"lines":1459},{"category":749,"path":1497,"name":440,"line":308,"lines":1498},"managed-agents\u002Fchat-sdk\u002Fweb\u002Fapp.tsx",377,{"category":749,"path":1500,"name":440,"line":308,"lines":923},"managed-agents\u002Fself-hosted-sandboxes\u002Fmodal\u002Fmodal_sandbox_webhook.py",{"category":749,"path":1502,"name":440,"line":308,"lines":1503},"managed-agents\u002Fself-hosted-sandboxes\u002Fdaytona\u002Fdaytona_webhook.py",284,{"category":749,"path":1505,"name":440,"line":308,"lines":1506},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Ffile.tsx",235,{"category":749,"path":1508,"name":440,"line":308,"lines":1509},"browser-use-demo\u002Fbrowser_use_demo\u002Fbrowser_tool_utils\u002Fbrowser_form_input_script.js",220,{"category":749,"path":1511,"name":440,"line":308,"lines":1512},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fsources.tsx",160,{"category":749,"path":1514,"name":440,"line":308,"lines":390},"managed-agents\u002Fassistant-ui\u002Fcomponents\u002Fassistant-ui\u002Fshiki-highlighter.tsx",{"name":1516,"url":1517,"description":1518,"language":312,"stars":1519,"starsToday":1467,"defaultBranch":340,"headSha":1520,"durationMs":1521,"total":1522,"formats":1526,"topClones":1581,"code":1799,"health":2111,"complexity":2137,"deadCode":2188},"google-deepmind\u002Fmujoco","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fmujoco","Multi-Joint dynamics with Contact. A general purpose physics simulator.",17455,"01ca66c92fb03f0e56bda9f4d34f100f1fb21ca0",4624,{"sources":959,"lines":314,"tokens":1523,"clones":313,"duplicatedLines":315,"duplicatedTokens":1524,"percentage":316,"percentageTokens":1525},5079610,654020,12.88,[1527,1534,1540,1546,1552,1559,1564,1569,1574,1577],{"format":1528,"sources":1529,"lines":1530,"clones":1531,"duplicatedLines":1532,"percentage":1533},"cpp",311,256140,3174,31835,12.43,{"format":380,"sources":1535,"lines":1536,"clones":1537,"duplicatedLines":1538,"percentage":1539},469,89776,1201,41397,46.11,{"format":366,"sources":1541,"lines":1542,"clones":1543,"duplicatedLines":1544,"percentage":1545},253,119118,754,13618,11.43,{"format":1547,"sources":1548,"lines":1549,"clones":1314,"duplicatedLines":1550,"percentage":1551},"c",49,81648,2713,3.32,{"format":1553,"sources":1554,"lines":1555,"clones":1556,"duplicatedLines":1557,"percentage":1558},"c-header",226,61610,210,6504,10.56,{"format":1560,"sources":360,"lines":1561,"clones":1195,"duplicatedLines":1562,"percentage":1563},"rest",54212,2229,4.11,{"format":1565,"sources":1266,"lines":1566,"clones":1398,"duplicatedLines":1567,"percentage":1568},"csharp",24427,1317,5.39,{"format":1570,"sources":571,"lines":1571,"clones":806,"duplicatedLines":1572,"percentage":1573},"cmake",7675,1277,16.64,{"format":352,"sources":1129,"lines":1575,"clones":1038,"duplicatedLines":890,"percentage":1576},6049,1.97,{"format":373,"sources":272,"lines":1578,"clones":745,"duplicatedLines":1579,"percentage":1580},3857,98,2.54,[1582,1620,1641,1667,1690,1709,1730,1741,1750,1770],{"format":380,"lines":1583,"tokens":1584,"copies":255,"first":1585,"others":1587,"excerpt":1609},171,1837,{"name":1586,"start":951,"end":1322},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F02_humanoids.xml",[1588,1591,1594,1597,1599,1601,1603,1605],{"name":1589,"start":798,"end":1590},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F03_humanoids.xml",208,{"name":1592,"start":709,"end":1593},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F04_humanoids.xml",211,{"name":1595,"start":1138,"end":1596},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F05_humanoids.xml",214,{"name":1598,"start":362,"end":667},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F06_humanoids.xml",{"name":1600,"start":708,"end":1509},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F07_humanoids.xml",{"name":1602,"start":817,"end":759},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F08_humanoids.xml",{"name":1604,"start":1060,"end":1554},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F09_humanoids.xml",{"name":1606,"start":1607,"end":1608},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002F10_humanoids.xml",59,229,{"lines":1610,"total":1583},[1611,1612,1613,440,1614,1615,1616,1617,1618,1619],"    \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":380,"lines":1621,"tokens":1622,"copies":401,"first":1623,"others":1626,"excerpt":1629},802,7524,{"name":1624,"start":362,"end":1625},"model\u002Fflex\u002Fbag.xml",848,[1627],{"name":1628,"start":362,"end":1625},"model\u002Fflex\u002Fbag_hoop.xml",{"lines":1630,"total":1621},[1631,1632,1633,1634,1635,1636,1637,1638,1639,1640],"\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":380,"lines":394,"tokens":1642,"copies":1643,"first":1644,"others":1645,"excerpt":1658,"excerptSecond":1664},52,126,{"name":1624,"start":1022,"end":666},[1646,1647,1648,1650,1652,1654,1655,1656],{"name":1624,"start":666,"end":1023},{"name":1624,"start":1023,"end":290},{"name":1624,"start":290,"end":1649},78,{"name":1624,"start":1649,"end":1651},84,{"name":1624,"start":1651,"end":1653},90,{"name":1624,"start":1653,"end":1114},{"name":1624,"start":1114,"end":1287},{"name":1624,"start":1287,"end":1657},108,{"lines":1659,"total":394},[1638,1639,1640,1660,1661,1662,1663],"  \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":1665,"total":394},[1663,1639,1640,1660,1661,1662,1666],"\u003Cbody name=\"s2\" pos=\"0.14721 -0.03637 0.22450\">",{"format":380,"lines":1047,"tokens":1668,"copies":272,"first":1669,"others":1671},913,{"name":1589,"start":1318,"end":1670},285,[1672,1675,1678,1681,1683,1685,1687],{"name":1592,"start":1673,"end":1674},203,288,{"name":1595,"start":1676,"end":1677},206,291,{"name":1598,"start":1679,"end":1680},209,294,{"name":1600,"start":1134,"end":1682},297,{"name":1602,"start":1250,"end":1684},300,{"name":1604,"start":731,"end":1686},303,{"name":1606,"start":1688,"end":1689},221,306,{"format":380,"lines":904,"tokens":1337,"copies":1022,"first":1691,"others":1693},{"name":1692,"start":308,"end":904},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Factuator\u002Farm21.xml",[1694,1696,1698,1699,1701,1703,1705,1707],{"name":1695,"start":308,"end":904},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Factuator\u002Farm26.xml",{"name":1697,"start":308,"end":904},"mjx\u002Fmujoco\u002Fmjx\u002Ftest_data\u002Fhumanoid\u002Fhumanoid.xml",{"name":1624,"start":308,"end":904},{"name":1700,"start":308,"end":904},"model\u002Fflex\u002Fbasket.xml",{"name":1702,"start":308,"end":904},"model\u002Fflex\u002Fbelt.xml",{"name":1704,"start":308,"end":904},"model\u002Fflex\u002Fbunny.xml",{"name":1706,"start":308,"end":904},"model\u002Fflex\u002Fcable.xml",{"name":1708,"start":308,"end":904},"model\u002Fflex\u002Fcoil.xml",{"format":380,"lines":1047,"tokens":1668,"copies":394,"first":1710,"others":1713},{"name":1592,"start":1711,"end":1712},280,365,[1714,1717,1720,1723,1725,1727],{"name":1595,"start":1715,"end":1716},283,368,{"name":1598,"start":1718,"end":1719},286,371,{"name":1600,"start":1721,"end":1722},289,374,{"name":1602,"start":1724,"end":1498},292,{"name":1604,"start":1179,"end":1726},380,{"name":1606,"start":1728,"end":1729},298,383,{"format":380,"lines":1731,"tokens":1732,"copies":401,"first":1733,"others":1737},426,5043,{"name":1734,"start":1735,"end":1736},"src\u002Fxml\u002Fgenerated\u002Fdmcontrol_schema.xml",260,685,[1738],{"name":1734,"start":1739,"end":1740},684,1109,{"format":380,"lines":1742,"tokens":1743,"copies":401,"first":1744,"others":1747},1399,4822,{"name":1745,"start":374,"end":1746},"model\u002Fflex\u002Fponcho.xml",1416,[1748],{"name":1749,"start":374,"end":1746},"model\u002Fflex\u002Fponcho_edgeequality.xml",{"format":380,"lines":1047,"tokens":1668,"copies":766,"first":1751,"others":1754},{"name":1595,"start":1752,"end":1753},360,445,[1755,1758,1761,1764,1767],{"name":1598,"start":1756,"end":1757},363,448,{"name":1600,"start":1759,"end":1760},366,451,{"name":1602,"start":1762,"end":1763},369,454,{"name":1604,"start":1765,"end":1766},372,457,{"name":1606,"start":1768,"end":1769},375,460,{"format":380,"lines":745,"tokens":820,"copies":798,"first":1771,"others":1774},{"name":1734,"start":1772,"end":1773},2403,2413,[1775,1778,1781,1784,1787,1790,1793,1796],{"name":1734,"start":1776,"end":1777},2508,2518,{"name":1734,"start":1779,"end":1780},2523,2533,{"name":1734,"start":1782,"end":1783},2536,2546,{"name":1734,"start":1785,"end":1786},2549,2559,{"name":1734,"start":1788,"end":1789},2562,2572,{"name":1734,"start":1791,"end":1792},2575,2585,{"name":1734,"start":1794,"end":1795},2588,2598,{"name":1734,"start":1797,"end":1798},2601,2611,{"sources":1800,"lines":1801,"tokens":1802,"clones":1803,"duplicatedLines":1804,"duplicatedTokens":1805,"percentage":1085,"percentageTokens":1806,"formats":1807,"topClones":1841,"generated":2089},655,318980,2092156,1177,14997,93311,4.46,[1808,1814,1820,1825,1829,1832,1834,1837,1840],{"format":366,"sources":1809,"lines":1810,"clones":1811,"duplicatedLines":1812,"percentage":1813},145,75668,490,7958,10.52,{"format":1528,"sources":1815,"lines":1816,"clones":1817,"duplicatedLines":1818,"percentage":1819},169,110307,329,3206,2.91,{"format":1547,"sources":1081,"lines":1821,"clones":1822,"duplicatedLines":1823,"percentage":1824},80767,277,2676,3.31,{"format":1553,"sources":417,"lines":1826,"clones":330,"duplicatedLines":1827,"percentage":1828},40428,888,2.2,{"format":1565,"sources":746,"lines":1830,"clones":900,"duplicatedLines":555,"percentage":1831},8565,1.1,{"format":588,"sources":272,"lines":1833,"clones":382,"duplicatedLines":925,"percentage":357},1735,{"format":1835,"sources":382,"lines":736,"clones":308,"duplicatedLines":904,"percentage":1836},"objectivec",2.66,{"format":373,"sources":401,"lines":1838,"clones":308,"duplicatedLines":376,"percentage":1839},532,2.44,{"format":408,"sources":308,"lines":589,"clones":590,"duplicatedLines":590,"percentage":590},[1842,1883,1915,1944,1973,2002,2027,2040,2066,2072],{"format":366,"lines":932,"tokens":571,"copies":360,"first":1843,"others":1847,"excerpt":1872},{"name":1844,"start":1845,"end":1846},"python\u002Fmujoco\u002Fintrospect\u002Ffunctions.py",774,790,[1848,1851,1854,1857,1860,1863,1866,1869],{"name":1844,"start":1849,"end":1850},794,810,{"name":1844,"start":1852,"end":1853},814,830,{"name":1844,"start":1855,"end":1856},834,850,{"name":1844,"start":1858,"end":1859},854,870,{"name":1844,"start":1861,"end":1862},1192,1208,{"name":1844,"start":1864,"end":1865},1212,1228,{"name":1844,"start":1867,"end":1868},1771,1787,{"name":1844,"start":1870,"end":1871},1791,1807,{"lines":1873,"total":932},[1874,1875,1876,1877,1878,1879,1880,1881,1882,1877],"name='mj_step',","return_type=ValueType(name='void'),","parameters=(","    FunctionParameterDecl(","        name='m',","        type=PointerType(","            inner_type=ValueType(name='mjModel', is_const=True),","        ),","    ),",{"format":366,"lines":904,"tokens":1243,"copies":581,"first":1884,"others":1887,"excerpt":1912},{"name":1844,"start":1885,"end":1886},1578,1593,[1888,1891,1894,1897,1900,1903,1906,1909],{"name":1844,"start":1889,"end":1890},2746,2761,{"name":1844,"start":1892,"end":1893},2872,2887,{"name":1844,"start":1895,"end":1896},3120,3135,{"name":1844,"start":1898,"end":1899},3152,3167,{"name":1844,"start":1901,"end":1902},3184,3199,{"name":1844,"start":1904,"end":1905},3229,3244,{"name":1844,"start":1907,"end":1908},3267,3282,{"name":1844,"start":1910,"end":1911},3335,3350,{"lines":1913,"total":904},[1875,1876,1877,1878,1879,1880,1881,1882,1877,1914],"        name='d',",{"format":366,"lines":806,"tokens":1243,"copies":1402,"first":1916,"others":1918,"excerpt":1942},{"name":1844,"start":1845,"end":1917},788,[1919,1921,1924,1927,1930,1933,1936,1939],{"name":1844,"start":1920,"end":1827},874,{"name":1844,"start":1922,"end":1923},902,916,{"name":1844,"start":1925,"end":1926},1232,1246,{"name":1844,"start":1928,"end":1929},1256,1270,{"name":1844,"start":1931,"end":1932},1911,1925,{"name":1844,"start":1934,"end":1935},2375,2389,{"name":1844,"start":1937,"end":1938},2411,2425,{"name":1844,"start":1940,"end":1941},2513,2527,{"lines":1943,"total":806},[1874,1875,1876,1877,1878,1879,1880,1881,1882,1877],{"format":366,"lines":1038,"tokens":817,"copies":1402,"first":1945,"others":1948},{"name":1844,"start":1946,"end":1947},877,890,[1949,1952,1955,1958,1961,1964,1967,1970],{"name":1844,"start":1950,"end":1951},1235,1248,{"name":1844,"start":1953,"end":1954},1259,1272,{"name":1844,"start":1956,"end":1957},1914,1927,{"name":1844,"start":1959,"end":1960},2378,2391,{"name":1844,"start":1962,"end":1963},2414,2427,{"name":1844,"start":1965,"end":1966},2516,2529,{"name":1844,"start":1968,"end":1969},2692,2705,{"name":1844,"start":1971,"end":1972},2812,2825,{"format":366,"lines":376,"tokens":1974,"copies":1056,"first":1975,"others":1977},57,{"name":1844,"start":1845,"end":1976},786,[1978,1981,1984,1987,1990,1993,1996,1999],{"name":1844,"start":1979,"end":1980},1577,1589,{"name":1844,"start":1982,"end":1983},1609,1621,{"name":1844,"start":1985,"end":1986},2745,2757,{"name":1844,"start":1988,"end":1989},3119,3131,{"name":1844,"start":1991,"end":1992},3151,3163,{"name":1844,"start":1994,"end":1995},3183,3195,{"name":1844,"start":1997,"end":1998},3228,3240,{"name":1844,"start":2000,"end":2001},3266,3278,{"format":1528,"lines":255,"tokens":746,"copies":272,"first":2003,"others":2007},{"name":2004,"start":2005,"end":2006},"src\u002Fxml\u002Fxml_native_writer.cc",3066,3074,[2008,2011,2014,2017,2020,2022,2024],{"name":2004,"start":2009,"end":2010},3075,3083,{"name":2004,"start":2012,"end":2013},3084,3092,{"name":2004,"start":2015,"end":2016},3093,3101,{"name":2004,"start":2018,"end":2019},3102,3110,{"name":2004,"start":2021,"end":1988},3111,{"name":2004,"start":1895,"end":2023},3128,{"name":2004,"start":2025,"end":2026},3129,3137,{"format":1528,"lines":943,"tokens":2028,"copies":389,"first":2029,"others":2033},261,{"name":2030,"start":2031,"end":2032},"src\u002Fuser\u002Fuser_flexcomp.cc",5149,5170,[2034,2037],{"name":2030,"start":2035,"end":2036},5449,5470,{"name":2030,"start":2038,"end":2039},5740,5759,{"format":366,"lines":932,"tokens":571,"copies":272,"first":2041,"others":2044},{"name":1844,"start":2042,"end":2043},7553,7569,[2045,2048,2051,2054,2057,2060,2063],{"name":1844,"start":2046,"end":2047},7651,7667,{"name":1844,"start":2049,"end":2050},7679,7695,{"name":1844,"start":2052,"end":2053},7835,7851,{"name":1844,"start":2055,"end":2056},7967,7983,{"name":1844,"start":2058,"end":2059},8013,8029,{"name":1844,"start":2061,"end":2062},8690,8706,{"name":1844,"start":2064,"end":2065},8726,8742,{"format":1553,"lines":712,"tokens":519,"copies":401,"first":2067,"others":2069},{"name":2068,"start":837,"end":1287},"simulate\u002Farray_safety.h",[2070],{"name":2071,"start":837,"end":1287},"src\u002Fcc\u002Farray_safety.h",{"format":1547,"lines":272,"tokens":2073,"copies":382,"first":2074,"others":2078},109,{"name":2075,"start":2076,"end":2077},"src\u002Fengine\u002Fengine_collision_box.c",594,601,[2079,2082,2085,2088],{"name":2075,"start":2080,"end":2081},1069,1076,{"name":2083,"start":817,"end":2084},"src\u002Fengine\u002Fengine_collision_primitive.c",61,{"name":2083,"start":2086,"end":2087},332,340,{"name":2083,"start":1763,"end":288},{"files":1017,"minified":590,"sample":2090},[2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110],"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":2112,"grade":297,"size":2113,"dimensions":2117},34.5,{"lines":2114,"files":2115,"class":2116},558765,1060,"L",[2118,2125,2132],{"id":684,"source":685,"value":2119,"adjusted":2119,"lines":2120,"halfLife":688,"formats":2121,"excluded":2123,"weight":308,"score":2124},10.3,57602,[1528,366,1547,1553,1565,1570,373,588,2122,408,1835,1421],"latex",[380,691,692],43.2,{"id":695,"source":685,"value":2126,"adjusted":2127,"lines":2128,"halfLife":699,"coverage":2129,"weight":2130,"score":2131},31.3,30.8,38545,22.1,0.221,5.8,{"id":704,"source":685,"value":2133,"adjusted":2134,"lines":2135,"halfLife":708,"weight":308,"score":2136},64.8,64.6,362111,40.8,{"total":2138,"mean":1434,"files":2139},60612,[2140,2145,2150,2154,2159,2164,2169,2174,2178,2183],{"path":2141,"complexity":2142,"lines":2143,"bytes":2144},"src\u002Fuser\u002Fuser_objects.cc",2454,10379,326986,{"path":2146,"complexity":2147,"lines":2148,"bytes":2149},"src\u002Fuser\u002Fuser_model.cc",2097,8518,312839,{"path":2030,"complexity":2151,"lines":2152,"bytes":2153},1415,6112,226894,{"path":2155,"complexity":2156,"lines":2157,"bytes":2158},"src\u002Fengine\u002Fengine_derivative.c",975,4584,154390,{"path":2160,"complexity":2161,"lines":2162,"bytes":2163},"wasm\u002Fcodegen\u002Fgenerated\u002Fbindings.h",970,7942,259203,{"path":2165,"complexity":2166,"lines":2167,"bytes":2168},"src\u002Fengine\u002Fengine_core_util.c",961,4089,132374,{"path":2170,"complexity":2171,"lines":2172,"bytes":2173},"src\u002Fengine\u002Fengine_metric.c",833,3041,108249,{"path":2175,"complexity":1853,"lines":2176,"bytes":2177},"wasm\u002Fcodegen\u002Fgenerated\u002Fbindings.cc",6936,285784,{"path":2179,"complexity":2180,"lines":2181,"bytes":2182},"src\u002Fengine\u002Fengine_vis_visualize.c",822,4231,134653,{"path":2184,"complexity":2185,"lines":2186,"bytes":2187},"src\u002Fuser\u002Fuser_api.cc",797,3271,105047,{"percentage":2189,"findings":666,"files":2190,"byCategory":2191,"largest":2195},31.28,270,[2192,2193,2194],{"category":749,"count":708},{"category":753,"count":389},{"category":755,"count":394},[2196,2199,2202,2205,2208,2211,2214,2217,2220,2222],{"category":749,"path":2197,"name":440,"line":308,"lines":2198},"python\u002Fmujoco\u002Fintrospect\u002Fstructs.py",12841,{"category":749,"path":2200,"name":440,"line":308,"lines":2201},"mjx\u002Fmujoco\u002Fmjx\u002Fwarp\u002Fforward.py",6499,{"category":749,"path":2203,"name":440,"line":308,"lines":2204},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fio.py",1879,{"category":749,"path":2206,"name":440,"line":308,"lines":2207},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsmooth.py",1496,{"category":749,"path":2209,"name":440,"line":308,"lines":2210},"python\u002Fmujoco\u002Fintrospect\u002Fenums.py",1206,{"category":749,"path":2212,"name":440,"line":308,"lines":2213},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsupport.py",1164,{"category":749,"path":2215,"name":440,"line":308,"lines":2216},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fcollision_convex.py",1117,{"category":749,"path":2218,"name":440,"line":308,"lines":2219},"python\u002Fmujoco\u002Fbatch.py",963,{"category":749,"path":2221,"name":440,"line":308,"lines":1856},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fsensor.py",{"category":749,"path":2223,"name":440,"line":308,"lines":2224},"mjx\u002Fmujoco\u002Fmjx\u002F_src\u002Fconstraint.py",748,{"name":2226,"url":2227,"description":2228,"language":318,"stars":2229,"starsToday":2230,"defaultBranch":340,"headSha":2231,"durationMs":2232,"total":2233,"formats":2238,"topClones":2285,"code":2471,"health":2677,"complexity":2697,"deadCode":2750},"we-promise\u002Fsure","https:\u002F\u002Fgithub.com\u002Fwe-promise\u002Fsure","The personal finance app for everyone (by everyone)",12170,159,"264bbf7cb71da65448ab74e4a650a1540dd0d3c4",5053,{"sources":2234,"lines":320,"tokens":2235,"clones":319,"duplicatedLines":321,"duplicatedTokens":2236,"percentage":322,"percentageTokens":2237},6549,4760558,259671,5.45,[2239,2245,2252,2258,2264,2268,2272,2276,2279,2282],{"format":2240,"sources":2241,"lines":2242,"clones":2243,"duplicatedLines":2244,"percentage":1806},"ruby",2927,513214,1823,22894,{"format":2246,"sources":2247,"lines":2248,"clones":2249,"duplicatedLines":2250,"percentage":2251},"erb",815,49190,662,6967,14.16,{"format":830,"sources":2253,"lines":2254,"clones":2255,"duplicatedLines":2256,"percentage":2257},2268,239639,620,16941,7.07,{"format":2259,"sources":2260,"lines":2261,"clones":680,"duplicatedLines":2262,"percentage":2263},"dart",154,36710,872,2.38,{"format":408,"sources":377,"lines":2265,"clones":369,"duplicatedLines":2266,"percentage":2267},21843,980,4.49,{"format":380,"sources":709,"lines":2269,"clones":285,"duplicatedLines":2270,"percentage":2271},1294,415,32.07,{"format":352,"sources":680,"lines":2273,"clones":255,"duplicatedLines":2274,"percentage":2275},16178,87,0.54,{"format":386,"sources":387,"lines":2277,"clones":401,"duplicatedLines":1129,"percentage":2278},2125,1.98,{"format":588,"sources":932,"lines":2280,"clones":308,"duplicatedLines":401,"percentage":2281},1832,0.11,{"format":1201,"sources":912,"lines":2283,"clones":308,"duplicatedLines":255,"percentage":2284},1827,0.49,[2286,2305,2345,2377,2387,2403,2416,2437,2457,2464],{"format":408,"lines":2287,"tokens":2288,"copies":401,"first":2289,"others":2293,"excerpt":2297},255,1493,{"name":2290,"start":2291,"end":2292},"app\u002Fjavascript\u002Fcontrollers\u002Fpreview_sankey_chart_controller.js",364,618,[2294],{"name":2295,"start":1686,"end":2296},"app\u002Fjavascript\u002Fcontrollers\u002Fsankey_chart_controller.js",557,{"lines":2298,"total":2287},[2299,1235,440,2300,2301,2302,440,2303,2304,440],"  return `${this.gradientPrefix}-link-gradient-${link.source.index}-${link.target.index}-${index}`;","#colorWithOpacity(nodeColor, opacity = 0.1) {","  const defaultColor = this.constructor.DEFAULT_COLOR;","  let colorStr = nodeColor || defaultColor;","  \u002F\u002F Map CSS variables to hex values for d3 color manipulation","  colorStr = this.constructor.CSS_VAR_MAP[colorStr] || colorStr;",{"format":2240,"lines":255,"tokens":1017,"copies":948,"first":2306,"others":2308,"excerpt":2325,"excerptSecond":2336},{"name":2307,"start":382,"end":376},"spec\u002Frequests\u002Fapi\u002Fv1\u002Faccount_statements_spec.rb",[2309,2311,2313,2315,2317,2319,2321,2323],{"name":2310,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Faccounts_spec.rb",{"name":2312,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fbalance_sheet_spec.rb",{"name":2314,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fbalances_spec.rb",{"name":2316,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fbudget_categories_spec.rb",{"name":2318,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fbudgets_spec.rb",{"name":2320,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fcash_flow_spec.rb",{"name":2322,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fcategories_spec.rb",{"name":2324,"start":382,"end":387},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fchats_spec.rb",{"lines":2326,"total":255},[2327,2328,2329,2330,2331,2332,2333,2334,2335],"RSpec.describe 'API V1 Account Statements', type: :request do","  let(:family) do","    Family.create!(name: 'API Family', currency: 'USD', locale: 'en', date_format: '%m-%d-%Y')","  end","  let(:user) do","    family.users.create!(","      email: 'api-user@example.com',","      password: 'password123',","      password_confirmation: 'password123',",{"lines":2337,"total":806},[2338,2328,2339,2340,2341,2342,2343,2344,2330,440],"RSpec.describe 'API V1 Accounts', type: :request do","    Family.create!(","      name: 'API Family',","      currency: 'USD',","      locale: 'en',","      date_format: '%m-%d-%Y'","    )",{"format":2240,"lines":745,"tokens":1266,"copies":900,"first":2346,"others":2349,"excerpt":2366},{"name":2347,"start":2348,"end":1231},"test\u002Fmodels\u002Fkraken_item\u002Fimporter_test.rb",128,[2350,2352,2354,2355,2358,2360,2362,2364],{"name":2347,"start":1249,"end":2351},163,{"name":2347,"start":2353,"end":498},180,{"name":2347,"start":1593,"end":1688},{"name":2347,"start":2356,"end":2357},239,249,{"name":2347,"start":2359,"end":1130},313,{"name":2347,"start":589,"end":2361},386,{"name":2347,"start":1198,"end":2363},414,{"name":2347,"start":721,"end":2365},442,{"lines":2367,"total":745},[2368,2369,2370,2371,2372,2373,2374,2375,2371,2376],"@provider.stubs(:get_asset_info).returns(asset_metadata)","@provider.stubs(:get_extended_balance).returns(","  \"ZUSD\" => { \"balance\" => \"50.0\", \"credit\" => \"0\", \"credit_used\" => \"0\", \"hold_trade\" => \"0\" }",")","@provider.stubs(:get_earn_allocations).returns(","  \"items\" => [","    { \"native_asset\" => \"XXBT\", \"amount_allocated\" => { \"total\" => { \"native\" => \"2.0\" } } }","  ]","@provider.stubs(:get_ticker).with(\"XBTUSD\").returns(\"XXBTZUSD\" => { \"c\" => [ \"50000.00\" ] })",{"format":830,"lines":1317,"tokens":2378,"copies":389,"first":2379,"others":2382},524,{"name":2380,"start":401,"end":2381},"config\u002Flocales\u002Fdefaults\u002Fes-AR.yml",134,[2383,2385],{"name":2384,"start":401,"end":2381},"config\u002Flocales\u002Fdefaults\u002Fes-CR.yml",{"name":2386,"start":401,"end":2381},"config\u002Flocales\u002Fdefaults\u002Fes-NI.yml",{"format":2240,"lines":581,"tokens":367,"copies":912,"first":2388,"others":2389},{"name":2310,"start":766,"end":837},[2390,2391,2392,2393,2395,2397,2399,2401],{"name":2312,"start":766,"end":837},{"name":2320,"start":766,"end":837},{"name":2322,"start":766,"end":837},{"name":2394,"start":766,"end":837},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fholdings_spec.rb",{"name":2396,"start":766,"end":837},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fmerchants_spec.rb",{"name":2398,"start":766,"end":837},"spec\u002Frequests\u002Fapi\u002Fv1\u002Frecurring_transactions_spec.rb",{"name":2400,"start":766,"end":837},"spec\u002Frequests\u002Fapi\u002Fv1\u002Ftags_spec.rb",{"name":2402,"start":766,"end":837},"spec\u002Frequests\u002Fapi\u002Fv1\u002Ftrades_spec.rb",{"format":2240,"lines":394,"tokens":2084,"copies":904,"first":2404,"others":2405},{"name":2310,"start":1271,"end":1278},[2406,2407,2408,2409,2410,2411,2413,2414],{"name":2314,"start":1397,"end":913},{"name":2316,"start":712,"end":746},{"name":2318,"start":2084,"end":571},{"name":2322,"start":330,"end":680},{"name":2394,"start":712,"end":746},{"name":2412,"start":1307,"end":367},"spec\u002Frequests\u002Fapi\u002Fv1\u002Fimports_spec.rb",{"name":2398,"start":1649,"end":1651},{"name":2415,"start":812,"end":1271},"spec\u002Frequests\u002Fapi\u002Fv1\u002Frejected_transfers_spec.rb",{"format":2246,"lines":766,"tokens":1060,"copies":932,"first":2417,"others":2419},{"name":2418,"start":831,"end":798},"app\u002Fviews\u002Fakahu_items\u002F_akahu_item.html.erb",[2420,2422,2425,2427,2429,2431,2433,2435],{"name":2421,"start":1138,"end":1548},"app\u002Fviews\u002Fbrex_items\u002F_brex_item.html.erb",{"name":2423,"start":837,"end":2424},"app\u002Fviews\u002Ffio_items\u002F_fio_item.html.erb",39,{"name":2426,"start":837,"end":2424},"app\u002Fviews\u002Fibkr_items\u002F_ibkr_item.html.erb",{"name":2428,"start":837,"end":2424},"app\u002Fviews\u002Findexa_capital_items\u002F_indexa_capital_item.html.erb",{"name":2430,"start":831,"end":798},"app\u002Fviews\u002Flunchflow_items\u002F_lunchflow_item.html.erb",{"name":2432,"start":831,"end":798},"app\u002Fviews\u002Fmercury_items\u002F_mercury_item.html.erb",{"name":2434,"start":831,"end":798},"app\u002Fviews\u002Fmonobank_items\u002F_monobank_item.html.erb",{"name":2436,"start":860,"end":396},"app\u002Fviews\u002Fquestrade_items\u002F_questrade_item.html.erb",{"format":2246,"lines":394,"tokens":1022,"copies":932,"first":2438,"others":2440},{"name":2439,"start":308,"end":394},"app\u002Fviews\u002Fakahu_items\u002Fselect_accounts.html.erb",[2441,2443,2445,2447,2449,2451,2453,2455],{"name":2442,"start":401,"end":394},"app\u002Fviews\u002Fbrex_items\u002F_api_error.html.erb",{"name":2444,"start":308,"end":766},"app\u002Fviews\u002Fbrex_items\u002F_setup_required.html.erb",{"name":2446,"start":308,"end":394},"app\u002Fviews\u002Fbrex_items\u002Fselect_accounts.html.erb",{"name":2448,"start":401,"end":394},"app\u002Fviews\u002Flunchflow_items\u002F_api_error.html.erb",{"name":2450,"start":308,"end":766},"app\u002Fviews\u002Flunchflow_items\u002F_setup_required.html.erb",{"name":2452,"start":308,"end":394},"app\u002Fviews\u002Flunchflow_items\u002Fselect_accounts.html.erb",{"name":2454,"start":308,"end":766},"app\u002Fviews\u002Fmercury_items\u002F_setup_required.html.erb",{"name":2456,"start":308,"end":394},"app\u002Fviews\u002Fmercury_items\u002Fselect_accounts.html.erb",{"format":830,"lines":1250,"tokens":1852,"copies":401,"first":2458,"others":2461},{"name":2459,"start":401,"end":2460},"config\u002Flocales\u002Fdefaults\u002Fel-CY.yml",216,[2462],{"name":2463,"start":401,"end":2460},"config\u002Flocales\u002Fdefaults\u002Fel.yml",{"format":830,"lines":1250,"tokens":2465,"copies":401,"first":2466,"others":2468},795,{"name":2467,"start":401,"end":2460},"config\u002Flocales\u002Fdefaults\u002Fen-AU.yml",[2469],{"name":2470,"start":401,"end":2460},"config\u002Flocales\u002Fdefaults\u002Fen-NZ.yml",{"sources":2472,"lines":2473,"tokens":2474,"clones":2475,"duplicatedLines":2476,"duplicatedTokens":2477,"percentage":2478,"percentageTokens":2479,"formats":2480,"topClones":2506,"generated":2666},1957,276511,1288420,567,8355,43595,3.02,3.38,[2481,2486,2490,2495,2498,2500,2501,2504],{"format":2240,"sources":2482,"lines":2483,"clones":2484,"duplicatedLines":2485,"percentage":2478},1669,224053,478,6763,{"format":2259,"sources":1657,"lines":2487,"clones":1022,"duplicatedLines":2488,"percentage":2489},29574,646,2.18,{"format":408,"sources":2491,"lines":2492,"clones":951,"duplicatedLines":2493,"percentage":2494},155,19768,946,4.79,{"format":2496,"sources":912,"lines":2497,"clones":590,"duplicatedLines":590,"percentage":590},"rust",1364,{"format":588,"sources":382,"lines":2499,"clones":590,"duplicatedLines":590,"percentage":590},1243,{"format":373,"sources":382,"lines":1762,"clones":590,"duplicatedLines":590,"percentage":590},{"format":2502,"sources":401,"lines":2503,"clones":590,"duplicatedLines":590,"percentage":590},"groovy",127,{"format":2505,"sources":308,"lines":376,"clones":590,"duplicatedLines":590,"percentage":590},"swift",[2507,2513,2532,2563,2573,2584,2604,2616,2627,2647],{"format":408,"lines":2287,"tokens":2288,"copies":401,"first":2508,"others":2509,"excerpt":2511},{"name":2290,"start":2291,"end":2292},[2510],{"name":2295,"start":1686,"end":2296},{"lines":2512,"total":2287},[2299,1235,440,2300,2301,2302,440,2303,2304,440],{"format":2240,"lines":1017,"tokens":2514,"copies":389,"first":2515,"others":2517,"excerpt":2523},355,{"name":2516,"start":1307,"end":925},"app\u002Fmodels\u002Ffio_item\u002Fsyncer.rb",[2518,2521],{"name":2519,"start":1651,"end":2520},"app\u002Fmodels\u002Fmonobank_item\u002Fsyncer.rb",141,{"name":2522,"start":1651,"end":2520},"app\u002Fmodels\u002Fup_item\u002Fsyncer.rb",{"lines":2524,"total":1017},[2525,2526,2527,440,2528,440,2529,2530,2531,440],"def perform_post_sync","  # no-op","end","private","  # Raise a SyncError if a single result hash indicates failure.","  def raise_if_failed_result!(result, stage:)","    return unless failed_result?(result)",{"format":2240,"lines":376,"tokens":2533,"copies":376,"first":2534,"others":2536,"excerpt":2553},55,{"name":2535,"start":900,"end":943},"app\u002Fmodels\u002Fbinance_item\u002Funlinking.rb",[2537,2539,2541,2543,2545,2547,2549,2551],{"name":2538,"start":806,"end":860},"app\u002Fmodels\u002Fcoinbase_item\u002Funlinking.rb",{"name":2540,"start":904,"end":800},"app\u002Fmodels\u002Fcoinstats_item\u002Funlinking.rb",{"name":2542,"start":806,"end":860},"app\u002Fmodels\u002Ffio_item\u002Funlinking.rb",{"name":2544,"start":900,"end":943},"app\u002Fmodels\u002Fibkr_item\u002Funlinking.rb",{"name":2546,"start":806,"end":860},"app\u002Fmodels\u002Findexa_capital_item\u002Funlinking.rb",{"name":2548,"start":806,"end":860},"app\u002Fmodels\u002Fmercury_item\u002Funlinking.rb",{"name":2550,"start":806,"end":860},"app\u002Fmodels\u002Fquestrade_item\u002Funlinking.rb",{"name":2552,"start":806,"end":860},"app\u002Fmodels\u002Fredbark_item\u002Funlinking.rb",{"lines":2554,"total":376},[2555,2556,2557,2558,2559,2560,1235,2561,440,2562],"links = AccountProvider.where(provider_type: BinanceAccount.name, provider_id: provider_account.id).to_a","link_ids = links.map(&:id)","result = {","  provider_account_id: provider_account.id,","  name: provider_account.name,","  provider_link_ids: link_ids","results \u003C\u003C result","next if dry_run",{"format":2240,"lines":948,"tokens":1114,"copies":766,"first":2564,"others":2565},{"name":2538,"start":806,"end":2424},[2566,2568,2569,2570,2571],{"name":2540,"start":904,"end":2567},40,{"name":2542,"start":806,"end":2424},{"name":2546,"start":806,"end":2424},{"name":2548,"start":806,"end":2424},{"name":2572,"start":806,"end":2424},"app\u002Fmodels\u002Fsnaptrade_item\u002Funlinking.rb",{"format":408,"lines":2574,"tokens":2575,"copies":401,"first":2576,"others":2580},77,477,{"name":2577,"start":2578,"end":2579},"app\u002Fjavascript\u002Fcontrollers\u002Fmerchant_select_controller.js",274,350,[2581],{"name":2582,"start":1484,"end":2583},"app\u002Fjavascript\u002Fcontrollers\u002Ftag_select_controller.js",446,{"format":2240,"lines":766,"tokens":1607,"copies":255,"first":2585,"others":2587},{"name":2586,"start":948,"end":285},"app\u002Fmodels\u002Fakahu_account.rb",[2588,2590,2592,2594,2596,2598,2600,2602],{"name":2589,"start":376,"end":374},"app\u002Fmodels\u002Fcoinbase_account.rb",{"name":2591,"start":1402,"end":1019},"app\u002Fmodels\u002Ffio_account.rb",{"name":2593,"start":1038,"end":387},"app\u002Fmodels\u002Fibkr_account.rb",{"name":2595,"start":900,"end":806},"app\u002Fmodels\u002Findexa_capital_account.rb",{"name":2597,"start":837,"end":2424},"app\u002Fmodels\u002Fmonobank_account.rb",{"name":2599,"start":806,"end":448},"app\u002Fmodels\u002Fsharesight_account.rb",{"name":2601,"start":376,"end":374},"app\u002Fmodels\u002Ftruelayer_account.rb",{"name":2603,"start":810,"end":1402},"app\u002Fmodels\u002Fup_account.rb",{"format":2240,"lines":948,"tokens":1657,"copies":382,"first":2605,"others":2607},{"name":2606,"start":301,"end":800},"db\u002Fmigrate\u002F20251126094446_create_enable_banking_items_and_accounts.rb",[2608,2610,2612,2614],{"name":2609,"start":301,"end":800},"db\u002Fmigrate\u002F20251221060111_create_coinstats_items_and_accounts.rb",{"name":2611,"start":301,"end":800},"db\u002Fmigrate\u002F20260109220800_create_sophtron_items_and_accounts.rb",{"name":2613,"start":301,"end":800},"db\u002Fmigrate\u002F20260121101345_create_mercury_items_and_accounts.rb",{"name":2615,"start":766,"end":285},"db\u002Fmigrate\u002F20260205110328_create_indexa_capital_items_and_accounts.rb",{"format":2240,"lines":2567,"tokens":1593,"copies":389,"first":2617,"others":2620},{"name":2618,"start":2514,"end":2619},"app\u002Fcontrollers\u002Ffio_items_controller.rb",394,[2621,2624],{"name":2622,"start":1752,"end":2623},"app\u002Fcontrollers\u002Fmonobank_items_controller.rb",399,{"name":2625,"start":1765,"end":2626},"app\u002Fcontrollers\u002Fup_items_controller.rb",411,{"format":2240,"lines":948,"tokens":1243,"copies":394,"first":2628,"others":2631},{"name":2629,"start":1311,"end":2630},"app\u002Fmodels\u002Fprovider\u002Fcoinbase_adapter.rb",104,[2632,2635,2638,2640,2643,2645],{"name":2633,"start":812,"end":2634},"app\u002Fmodels\u002Fprovider\u002Findexa_capital_adapter.rb",100,{"name":2636,"start":1271,"end":2637},"app\u002Fmodels\u002Fprovider\u002Flunchflow_adapter.rb",106,{"name":2639,"start":2630,"end":2348},"app\u002Fmodels\u002Fprovider\u002Fmercury_adapter.rb",{"name":2641,"start":913,"end":2642},"app\u002Fmodels\u002Fprovider\u002Fquestrade_adapter.rb",103,{"name":2644,"start":1066,"end":1579},"app\u002Fmodels\u002Fprovider\u002Fredbark_adapter.rb",{"name":2646,"start":1649,"end":1287},"app\u002Fmodels\u002Fprovider\u002Fsnaptrade_adapter.rb",{"format":2240,"lines":376,"tokens":1974,"copies":394,"first":2648,"others":2650},{"name":2649,"start":1066,"end":1047},"app\u002Fmodels\u002Fbrex_item.rb",[2651,2653,2655,2659,2662,2664],{"name":2652,"start":2574,"end":1307},"app\u002Fmodels\u002Fcoinbase_item.rb",{"name":2654,"start":746,"end":2274},"app\u002Fmodels\u002Fcoinstats_item.rb",{"name":2656,"start":2657,"end":2658},"app\u002Fmodels\u002Fenable_banking_item.rb",244,256,{"name":2660,"start":1311,"end":2661},"app\u002Fmodels\u002Findexa_capital_item.rb",92,{"name":2663,"start":746,"end":2274},"app\u002Fmodels\u002Fmercury_item.rb",{"name":2665,"start":367,"end":1475},"app\u002Fmodels\u002Fwise_item.rb",{"files":255,"minified":590,"sample":2667},[2668,2669,2670,2671,2672,2673,2674,2675,2676],"app\u002Fmodels\u002Ftransaction\u002Fgrouper\u002Fby_merchant_or_name.rb","bin\u002Ftokens.mjs","db\u002Fmigrate\u002F20251102143510_remove_duplicate_account_providers_index.rb","db\u002Fschema.rb","mobile\u002Fandroid\u002Fapp\u002Fsrc\u002Fmain\u002Fjava\u002Fio\u002Fflutter\u002Fplugins\u002FGeneratedPluginRegistrant.java","mobile\u002Fios\u002FRunner\u002FGeneratedPluginRegistrant.h","mobile\u002Fios\u002FRunner\u002FGeneratedPluginRegistrant.m","mobile\u002Flib\u002Ftheme\u002Fsure_tokens.dart","spec\u002Fspec_helper.rb",{"score":2678,"grade":1078,"size":2679,"dimensions":2682,"skipped":2694},66.5,{"lines":2680,"files":2681,"class":2116},574862,3276,[2683,2689],{"id":684,"source":685,"value":2684,"adjusted":2684,"lines":2685,"halfLife":688,"formats":2686,"excluded":2687,"weight":308,"score":2688},4.3,24738,[2240,2259,408,2496,588,373,2502,1197,1835,404,1553,2505],[380,691,692],70.4,{"id":704,"source":685,"value":2690,"adjusted":2691,"lines":2692,"halfLife":708,"weight":308,"score":2693},33.6,33.5,192951,62.8,[2695],{"id":695,"reason":2696},"the languages dead code reads are under 5% of the code",{"total":2698,"mean":2699,"files":2700},77142,23.5,[2701,2706,2711,2715,2720,2725,2730,2735,2740,2745],{"path":2702,"complexity":2703,"lines":2704,"bytes":2705},"app\u002Fmodels\u002Fwise_item\u002Fimporter.rb",866,2037,97127,{"path":2707,"complexity":2708,"lines":2709,"bytes":2710},"app\u002Fmodels\u002Ffamily\u002Fdata_importer.rb",578,1781,68470,{"path":2712,"complexity":1073,"lines":2713,"bytes":2714},"app\u002Fmodels\u002Fprovider\u002Ftrade_republic_client.rb",1866,76943,{"path":2716,"complexity":2717,"lines":2718,"bytes":2719},"app\u002Fmodels\u002Fsimplefin_item\u002Fimporter.rb",473,1556,68808,{"path":2721,"complexity":2722,"lines":2723,"bytes":2724},"app\u002Fmodels\u002Fgoal.rb",434,1492,66402,{"path":2726,"complexity":2727,"lines":2728,"bytes":2729},"app\u002Fmodels\u002Ftrade_republic_account\u002Factivities_processor.rb",424,1064,44611,{"path":2731,"complexity":2732,"lines":2733,"bytes":2734},"app\u002Fcontrollers\u002Fsophtron_items_controller.rb",420,1222,44448,{"path":2736,"complexity":2737,"lines":2738,"bytes":2739},"app\u002Fmodels\u002Fuser.rb",398,1058,37586,{"path":2741,"complexity":2742,"lines":2743,"bytes":2744},"app\u002Fmodels\u002Fenable_banking_item\u002Fimporter.rb",348,1175,55255,{"path":2746,"complexity":2747,"lines":2748,"bytes":2749},"app\u002Fmodels\u002Faccount\u002Fprovider_import_adapter.rb",342,1233,59378,{"percentage":2751,"findings":1227,"files":1245,"byCategory":2752,"largest":2756},74.58,[2753,2755],{"category":749,"count":2754},139,{"category":751,"count":308},[2757,2758,2760,2762,2764,2766,2769,2770,2772,2775],{"category":749,"path":2290,"name":440,"line":308,"lines":1107},{"category":749,"path":2295,"name":440,"line":308,"lines":2759},698,{"category":749,"path":2761,"name":440,"line":308,"lines":2249},"app\u002Fjavascript\u002Fcontrollers\u002Fgoal_projection_chart_controller.js",{"category":749,"path":2763,"name":440,"line":308,"lines":1800},"app\u002Fjavascript\u002Fcontrollers\u002Floan_payoff_chart_controller.js",{"category":749,"path":2582,"name":440,"line":308,"lines":2765},485,{"category":749,"path":2767,"name":440,"line":308,"lines":2768},"app\u002Fjavascript\u002Fcontrollers\u002Fselect_controller.js",413,{"category":749,"path":2577,"name":440,"line":308,"lines":1726},{"category":749,"path":2771,"name":440,"line":308,"lines":1765},"app\u002Fjavascript\u002Fcontrollers\u002Fcategory_select_controller.js",{"category":749,"path":2773,"name":440,"line":308,"lines":2774},"app\u002Fjavascript\u002Fcontrollers\u002Fdonut_chart_controller.js",351,{"category":749,"path":2776,"name":440,"line":308,"lines":1324},"app\u002Fjavascript\u002Fcontrollers\u002Fspending_chart_controller.js",{"name":2778,"url":2779,"description":2780,"language":300,"stars":2781,"starsToday":1846,"defaultBranch":2782,"headSha":2783,"durationMs":2784,"total":2785,"formats":2794,"topClones":2831,"code":2934,"health":3047,"complexity":3067,"deadCode":3116},"homeassistant-ai\u002Fha-mcp","https:\u002F\u002Fgithub.com\u002Fhomeassistant-ai\u002Fha-mcp","Configure and automate Home Assistant with Claude, ChatGPT, and other AI assistants.",6793,"master","26194d22013a2082ea8044ea506432ab5ea07d61",6012,{"sources":2786,"lines":2787,"tokens":2788,"clones":2789,"duplicatedLines":2790,"duplicatedTokens":2791,"percentage":2792,"percentageTokens":2793},2296,892802,5001137,3188,59559,404338,6.67,8.08,[2795,2801,2805,2811,2815,2819,2822,2824,2826,2828],{"format":366,"sources":2796,"lines":2797,"clones":2798,"duplicatedLines":2799,"percentage":2800},1860,782546,2861,44643,5.7,{"format":830,"sources":1249,"lines":2802,"clones":1676,"duplicatedLines":2803,"percentage":2804},24396,6055,24.82,{"format":2806,"sources":912,"lines":2807,"clones":2808,"duplicatedLines":2809,"percentage":2810},"html",2933,37,439,14.97,{"format":352,"sources":812,"lines":2812,"clones":396,"duplicatedLines":2813,"percentage":2814},27822,7312,26.28,{"format":408,"sources":360,"lines":2816,"clones":285,"duplicatedLines":2817,"percentage":2818},16347,423,2.59,{"format":386,"sources":1017,"lines":2820,"clones":382,"duplicatedLines":2809,"percentage":2821},28352,1.55,{"format":1201,"sources":394,"lines":2823,"clones":301,"duplicatedLines":1129,"percentage":1839},1719,{"format":373,"sources":745,"lines":2363,"clones":301,"duplicatedLines":396,"percentage":2825},7.73,{"format":1197,"sources":766,"lines":1718,"clones":389,"duplicatedLines":666,"percentage":2827},20.98,{"format":588,"sources":1019,"lines":2829,"clones":401,"duplicatedLines":912,"percentage":2830},1468,0.82,[2832,2847,2865,2881,2891,2900,2908,2915,2920,2927],{"format":352,"lines":2833,"tokens":2834,"copies":401,"first":2835,"others":2837,"excerpt":2840},6608,88409,{"name":2836,"start":308,"end":2833},"CHANGELOG.md",[2838],{"name":2839,"start":308,"end":2833},"homeassistant-addon\u002FCHANGELOG.md",{"lines":2841,"total":2833},[2842,440,2843,440,440,2844,440,2845,440,2846],"# 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":366,"lines":2848,"tokens":2849,"copies":401,"first":2850,"others":2852,"excerpt":2855},714,4040,{"name":2851,"start":308,"end":2848},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth_indirect.py",[2853],{"name":2854,"start":308,"end":2848},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth_indirect.py",{"lines":2856,"total":2848},[2857,440,2858,2859,2860,2861,440,2862,2863,2864],"\"\"\"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":352,"lines":1583,"tokens":2866,"copies":401,"first":2867,"others":2869,"excerpt":2872},3118,{"name":2868,"start":810,"end":1446},"homeassistant-addon-webhook-proxy-dev\u002FDOCS.md",[2870],{"name":2871,"start":448,"end":498},"homeassistant-addon-webhook-proxy\u002FDOCS.md",{"lines":2873,"total":1583},[2874,2875,440,2876,440,2877,2878,2879,440,2880],"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":366,"lines":2882,"tokens":2883,"copies":401,"first":2884,"others":2888},361,2058,{"name":2885,"start":2886,"end":2887},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth.py",396,756,[2889],{"name":2890,"start":2886,"end":2887},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth.py",{"format":366,"lines":2892,"tokens":2893,"copies":401,"first":2894,"others":2897},333,2050,{"name":2895,"start":2896,"end":2077},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Foauth_autoapprove.py",269,[2898],{"name":2899,"start":2896,"end":2077},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Foauth_autoapprove.py",{"format":366,"lines":2886,"tokens":2901,"copies":401,"first":2902,"others":2905},2010,{"name":2903,"start":1324,"end":2904},"homeassistant-addon-webhook-proxy-dev\u002Fstart.py",725,[2906],{"name":2907,"start":1324,"end":2904},"homeassistant-addon-webhook-proxy\u002Fstart.py",{"format":380,"lines":746,"tokens":2909,"copies":401,"first":2910,"others":2912},1789,{"name":2911,"start":308,"end":746},"site\u002Fpublic\u002Ffavicon.svg",[2913],{"name":2914,"start":308,"end":746},"site\u002Fpublic\u002Ficon.svg",{"format":366,"lines":698,"tokens":2916,"copies":401,"first":2917,"others":2918},1724,{"name":2895,"start":308,"end":698},[2919],{"name":2899,"start":308,"end":698},{"format":366,"lines":1106,"tokens":2921,"copies":401,"first":2922,"others":2925},1671,{"name":2885,"start":2923,"end":2924},901,1141,[2926],{"name":2890,"start":2923,"end":2924},{"format":366,"lines":2928,"tokens":2929,"copies":401,"first":2930,"others":2932},326,1590,{"name":2885,"start":2931,"end":2886},71,[2933],{"name":2890,"start":2931,"end":2886},{"sources":2935,"lines":2936,"tokens":2937,"clones":2938,"duplicatedLines":2939,"duplicatedTokens":2940,"percentage":2941,"percentageTokens":2942,"formats":2943,"topClones":2964,"generated":3042},909,354755,1912114,952,19589,119045,5.52,6.23,[2944,2950,2951,2954,2955,2957,2960,2962],{"format":366,"sources":2945,"lines":2946,"clones":2947,"duplicatedLines":2948,"percentage":2949},836,336010,896,18826,5.6,{"format":2806,"sources":912,"lines":2807,"clones":2808,"duplicatedLines":2809,"percentage":2810},{"format":408,"sources":860,"lines":2952,"clones":912,"duplicatedLines":1295,"percentage":2953},10431,2.47,{"format":373,"sources":745,"lines":2363,"clones":301,"duplicatedLines":396,"percentage":2825},{"format":1201,"sources":382,"lines":1822,"clones":389,"duplicatedLines":837,"percentage":2956},12.27,{"format":2958,"sources":912,"lines":2959,"clones":590,"duplicatedLines":590,"percentage":590},"astro",3917,{"format":588,"sources":382,"lines":2961,"clones":590,"duplicatedLines":590,"percentage":590},603,{"format":2963,"sources":308,"lines":561,"clones":590,"duplicatedLines":590,"percentage":590},"powershell",[2965,2971,2987,3002,3006,3010,3014,3018,3027,3036],{"format":366,"lines":2848,"tokens":2849,"copies":401,"first":2966,"others":2967,"excerpt":2969},{"name":2851,"start":308,"end":2848},[2968],{"name":2854,"start":308,"end":2848},{"lines":2970,"total":2848},[2857,440,2858,2859,2860,2861,440,2862,2863,2864],{"format":366,"lines":2882,"tokens":2883,"copies":401,"first":2972,"others":2973,"excerpt":2975},{"name":2885,"start":2886,"end":2887},[2974],{"name":2890,"start":2886,"end":2887},{"lines":2976,"total":2882},[2977,2978,2979,2980,2981,2982,2983,2984,2985,2986],"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":366,"lines":2892,"tokens":2893,"copies":401,"first":2988,"others":2989,"excerpt":2991},{"name":2895,"start":2896,"end":2077},[2990],{"name":2899,"start":2896,"end":2077},{"lines":2992,"total":2892},[2993,2994,2995,440,2996,2997,2998,2999,3000,3001],"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":366,"lines":2886,"tokens":2901,"copies":401,"first":3003,"others":3004},{"name":2903,"start":1324,"end":2904},[3005],{"name":2907,"start":1324,"end":2904},{"format":366,"lines":698,"tokens":2916,"copies":401,"first":3007,"others":3008},{"name":2895,"start":308,"end":698},[3009],{"name":2899,"start":308,"end":698},{"format":366,"lines":1106,"tokens":2921,"copies":401,"first":3011,"others":3012},{"name":2885,"start":2923,"end":2924},[3013],{"name":2890,"start":2923,"end":2924},{"format":366,"lines":2928,"tokens":2929,"copies":401,"first":3015,"others":3016},{"name":2885,"start":2931,"end":2886},[3017],{"name":2890,"start":2931,"end":2886},{"format":366,"lines":2503,"tokens":3019,"copies":389,"first":3020,"others":3022},770,{"name":3021,"start":308,"end":2503},"custom_components\u002Fha_mcp_tools\u002Freadonly_webhook.py",[3023,3025],{"name":3024,"start":308,"end":2503},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002Freadonly_webhook.py",{"name":3026,"start":308,"end":2503},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002Freadonly_webhook.py",{"format":366,"lines":1677,"tokens":3028,"copies":401,"first":3029,"others":3033},1365,{"name":3030,"start":3031,"end":3032},"homeassistant-addon-webhook-proxy-dev\u002Fmcp_proxy_dev\u002F__init__.py",856,1146,[3034],{"name":3035,"start":3031,"end":3032},"homeassistant-addon-webhook-proxy\u002Fmcp_proxy\u002F__init__.py",{"format":366,"lines":417,"tokens":3037,"copies":401,"first":3038,"others":3040},1288,{"name":2895,"start":2961,"end":3039},804,[3041],{"name":2899,"start":2961,"end":3039},{"files":389,"minified":590,"sample":3043},[3044,3045,3046],"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":3048,"grade":1412,"size":3049,"dimensions":3052},48.7,{"lines":3050,"files":3051,"class":2116},803467,1920,[3053,3058,3062],{"id":684,"source":685,"value":2949,"adjusted":2949,"lines":3054,"halfLife":688,"formats":3055,"excluded":3056,"weight":308,"score":3057},45158,[366,408,2958,588,1197,373,2963],[380,691,692],63.3,{"id":695,"source":685,"value":3059,"adjusted":3059,"lines":3060,"halfLife":699,"coverage":2634,"weight":308,"score":3061},9.2,73846,42.8,{"id":704,"source":685,"value":3063,"adjusted":3064,"lines":3065,"halfLife":708,"weight":308,"score":3066},61.5,61.4,494245,42.7,{"total":3068,"mean":3069,"files":3070},81665,42.5,[3071,3076,3081,3086,3090,3094,3098,3103,3108,3112],{"path":3072,"complexity":3073,"lines":3074,"bytes":3075},"src\u002Fha_mcp\u002Fbackup_manager.py",625,3567,150437,{"path":3077,"complexity":3078,"lines":3079,"bytes":3080},"tests\u002Faddon\u002Ftest_webhook_proxy.py",570,7197,316784,{"path":3082,"complexity":3083,"lines":3084,"bytes":3085},"src\u002Fha_mcp\u002Ftools\u002Ftools_addons.py",504,4038,158555,{"path":3087,"complexity":732,"lines":3088,"bytes":3089},"custom_components\u002Fha_mcp_tools\u002F__init__.py",3564,144724,{"path":3091,"complexity":2270,"lines":3092,"bytes":3093},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_dashboards.py",3755,157087,{"path":3095,"complexity":1272,"lines":3096,"bytes":3097},"tests\u002Fsrc\u002Funit\u002Ftest_tools_addons.py",6904,266973,{"path":3099,"complexity":3100,"lines":3101,"bytes":3102},"tests\u002Finitial_test_state\u002Fcustom_components\u002Fhacs\u002Frepositories\u002Fbase.py",337,1453,54662,{"path":3104,"complexity":3105,"lines":3106,"bytes":3107},"src\u002Fha_mcp\u002F_vendor\u002Ffastmcp\u002Fserver\u002Fserver.py",317,2595,108208,{"path":3109,"complexity":1689,"lines":3110,"bytes":3111},"src\u002Fha_mcp\u002Fclient\u002Frest_client.py",2556,113374,{"path":3113,"complexity":1724,"lines":3114,"bytes":3115},"tests\u002Fsrc\u002Funit\u002Ftest_backup_manager.py",3547,145860,{"percentage":3117,"findings":3118,"files":3119,"byCategory":3120,"largest":3125},9.19,309,2028,[3121,3122,3123,3124],{"category":749,"count":377},{"category":751,"count":396},{"category":753,"count":1114},{"category":755,"count":376},[3126,3129,3132,3135,3138,3141,3143,3146,3149,3152],{"category":749,"path":3127,"name":440,"line":308,"lines":3128},"src\u002Fha_mcp\u002Ftools\u002Ftools_entities.py",2158,{"category":749,"path":3130,"name":440,"line":308,"lines":3131},"src\u002Fha_mcp\u002Ftools\u002Ftools_system.py",1933,{"category":749,"path":3133,"name":440,"line":308,"lines":3134},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_automations.py",1668,{"category":749,"path":3136,"name":440,"line":308,"lines":3137},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_scenes.py",1456,{"category":749,"path":3139,"name":440,"line":308,"lines":3140},"src\u002Fha_mcp\u002Ftools\u002Ftools_config_scripts.py",1154,{"category":749,"path":3142,"name":440,"line":308,"lines":2216},"src\u002Fha_mcp\u002Ftools\u002Ftools_registry.py",{"category":749,"path":3144,"name":440,"line":308,"lines":3145},"src\u002Fha_mcp\u002F_vendor\u002Fwebsockets\u002Fsync\u002Fclient.py",1116,{"category":749,"path":3147,"name":440,"line":308,"lines":3148},"src\u002Fha_mcp\u002Ftools\u002Ftools_history.py",1100,{"category":749,"path":3150,"name":440,"line":308,"lines":3151},"src\u002Fha_mcp\u002Ftools\u002Ftools_updates.py",1083,{"category":749,"path":3153,"name":440,"line":308,"lines":3154},"src\u002Fha_mcp\u002Ftools\u002Ftools_hacs.py",999,{"name":3156,"url":3157,"description":3158,"language":324,"stars":3159,"starsToday":3160,"defaultBranch":340,"headSha":3161,"durationMs":3162,"total":3163,"formats":3167,"topClones":3199,"code":3479,"health":3637,"complexity":3659,"deadCode":3706},"vercel-labs\u002Fagent-browser","https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser","Browser automation CLI for AI agents",49386,780,"f07edccd3022328b6ab1c74af76fd2162c7ff369",2036,{"sources":1753,"lines":326,"tokens":3164,"clones":325,"duplicatedLines":327,"duplicatedTokens":3165,"percentage":265,"percentageTokens":3166},1302614,80212,6.16,[3168,3173,3177,3180,3183,3186,3189,3192,3195,3197],{"format":2496,"sources":890,"lines":3169,"clones":3170,"duplicatedLines":3171,"percentage":3172},145309,983,10985,7.56,{"format":373,"sources":1313,"lines":3174,"clones":387,"duplicatedLines":3175,"percentage":3176},7112,359,5.05,{"format":386,"sources":2808,"lines":3178,"clones":932,"duplicatedLines":2249,"percentage":3179},10878,6.09,{"format":1088,"sources":1651,"lines":3181,"clones":904,"duplicatedLines":1503,"percentage":3182},13381,2.12,{"format":830,"sources":806,"lines":3184,"clones":376,"duplicatedLines":2491,"percentage":3185},1137,13.63,{"format":408,"sources":948,"lines":3187,"clones":255,"duplicatedLines":913,"percentage":3188},4712,1.68,{"format":1201,"sources":301,"lines":3190,"clones":255,"duplicatedLines":2642,"percentage":3191},608,16.94,{"format":380,"sources":376,"lines":3193,"clones":308,"duplicatedLines":394,"percentage":3194},729,0.96,{"format":815,"sources":308,"lines":1402,"clones":308,"duplicatedLines":272,"percentage":3196},30.77,{"format":352,"sources":709,"lines":3198,"clones":590,"duplicatedLines":590,"percentage":590},7793,[3200,3243,3287,3325,3352,3372,3398,3423,3431,3455],{"format":2496,"lines":912,"tokens":290,"copies":1019,"first":3201,"others":3205,"excerpt":3230,"excerptSecond":3239},{"name":3202,"start":3203,"end":3204},"cli\u002Fsrc\u002Fnative\u002Fe2e_tests.rs",1997,2008,[3206,3209,3212,3215,3218,3221,3224,3227],{"name":3202,"start":3207,"end":3208},2276,2285,{"name":3202,"start":3210,"end":3211},2407,2418,{"name":3202,"start":3213,"end":3214},2751,2762,{"name":3202,"start":3216,"end":3217},2909,2920,{"name":3202,"start":3219,"end":3220},2957,2968,{"name":3202,"start":3222,"end":3223},3114,3125,{"name":3202,"start":3225,"end":3226},3158,3169,{"name":3202,"start":3228,"end":3229},3430,3441,{"lines":3231,"total":912},[3232,3233,440,3234,3235,3236,2344,3237,3238,440],"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":3240,"total":900},[3241,3233,3234,3235,3236,2344,3237,3238,3234,3242],"async fn e2e_select_option_label_override_names() {","        &json!({ \"id\": \"2\", \"action\": \"navigate\", \"url\": \"data:text\u002Fhtml,\u003Chtml>\u003Cbody>\u003C\u002Fbody>\u003C\u002Fhtml>\" }),",{"format":2496,"lines":255,"tokens":2574,"copies":374,"first":3244,"others":3248,"excerpt":3273,"excerptSecond":3283},{"name":3245,"start":3246,"end":3247},"cli\u002Fsrc\u002Fnative\u002Factions.rs",7165,7173,[3249,3252,3255,3258,3261,3264,3267,3270],{"name":3245,"start":3250,"end":3251},7225,7232,{"name":3245,"start":3253,"end":3254},7308,7316,{"name":3245,"start":3256,"end":3257},7365,7373,{"name":3245,"start":3259,"end":3260},7511,7519,{"name":3245,"start":3262,"end":3263},7531,7538,{"name":3245,"start":3265,"end":3266},7556,7564,{"name":3245,"start":3268,"end":3269},7576,7584,{"name":3245,"start":3271,"end":3272},7596,7604,{"lines":3274,"total":255},[3275,3276,3277,3278,3279,3280,3281,440,3282],"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":3284,"total":272},[3285,3276,3277,3278,3279,3280,3281,3286],"async fn handle_type(cmd: &Value, state: &mut DaemonState) -> Result\u003CValue, String> {","    let text = cmd",{"format":2496,"lines":272,"tokens":1651,"copies":1038,"first":3288,"others":3291,"excerpt":3316},{"name":3202,"start":3289,"end":3290},15738,15745,[3292,3295,3298,3301,3304,3307,3310,3313],{"name":3202,"start":3293,"end":3294},15860,15867,{"name":3202,"start":3296,"end":3297},15900,15907,{"name":3202,"start":3299,"end":3300},15941,15948,{"name":3202,"start":3302,"end":3303},15989,15996,{"name":3202,"start":3305,"end":3306},16037,16044,{"name":3202,"start":3308,"end":3309},16069,16076,{"name":3202,"start":3311,"end":3312},16121,16128,{"name":3202,"start":3314,"end":3315},16190,16197,{"lines":3317,"total":272},[3318,3319,3320,3321,3322,3233,3323,3324],"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":2496,"lines":745,"tokens":817,"copies":810,"first":3326,"others":3328},{"name":3202,"start":3203,"end":3327},2007,[3329,3332,3334,3337,3340,3343,3346,3349],{"name":3202,"start":3330,"end":3331},2150,2160,{"name":3202,"start":3333,"end":1818},3196,{"name":3202,"start":3335,"end":3336},3289,3299,{"name":3202,"start":3338,"end":3339},3368,3378,{"name":3202,"start":3341,"end":3342},3774,3784,{"name":3202,"start":3344,"end":3345},3842,3852,{"name":3202,"start":3347,"end":3348},5818,5828,{"name":3202,"start":3350,"end":3351},5942,5952,{"format":2496,"lines":904,"tokens":1386,"copies":766,"first":3353,"others":3356},{"name":3202,"start":3354,"end":3355},4881,4896,[3357,3360,3363,3366,3369],{"name":3202,"start":3358,"end":3359},5076,5091,{"name":3202,"start":3361,"end":3362},5159,5174,{"name":3202,"start":3364,"end":3365},5293,5308,{"name":3202,"start":3367,"end":3368},5440,5455,{"name":3202,"start":3370,"end":3371},5582,5597,{"format":2496,"lines":904,"tokens":1653,"copies":900,"first":3373,"others":3375},{"name":3202,"start":3203,"end":3374},2012,[3376,3379,3381,3384,3387,3390,3392,3395],{"name":3202,"start":3377,"end":3378},2617,2632,{"name":3202,"start":3380,"end":1968},2677,{"name":3202,"start":3382,"end":3383},4519,4534,{"name":3202,"start":3385,"end":3386},6511,6526,{"name":3202,"start":3388,"end":3389},11816,11831,{"name":3202,"start":2229,"end":3391},12185,{"name":3202,"start":3393,"end":3394},12848,12863,{"name":3202,"start":3396,"end":3397},12976,12991,{"format":2496,"lines":255,"tokens":1642,"copies":1038,"first":3399,"others":3400},{"name":3202,"start":3203,"end":510},[3401,3404,3407,3409,3412,3414,3417,3420],{"name":3202,"start":3402,"end":3403},2545,2553,{"name":3202,"start":3405,"end":3406},2835,2843,{"name":3202,"start":3114,"end":3408},3555,{"name":3202,"start":3410,"end":3411},6568,6576,{"name":3202,"start":3413,"end":2176},6928,{"name":3202,"start":3415,"end":3416},7105,7113,{"name":3202,"start":3418,"end":3419},7356,7364,{"name":3202,"start":3421,"end":3422},7415,7423,{"format":386,"lines":3424,"tokens":3425,"copies":401,"first":3426,"others":3428},182,563,{"name":3427,"start":308,"end":3424},"agent-browser.schema.json",[3429],{"name":3430,"start":308,"end":3424},"docs\u002Fpublic\u002Fschema.json",{"format":2496,"lines":900,"tokens":1022,"copies":745,"first":3432,"others":3434},{"name":3202,"start":3433,"end":3331},2151,[3435,3437,3439,3441,3444,3447,3450,3452],{"name":3202,"start":3436,"end":3336},3290,{"name":3202,"start":3438,"end":3342},3775,{"name":3202,"start":3440,"end":3345},3843,{"name":3202,"start":3442,"end":3443},6143,6152,{"name":3202,"start":3445,"end":3446},6226,6234,{"name":3202,"start":3448,"end":3449},7482,7491,{"name":3202,"start":3271,"end":3451},7605,{"name":3202,"start":3453,"end":3454},10919,10927,{"format":2496,"lines":394,"tokens":812,"copies":272,"first":3456,"others":3458},{"name":3245,"start":3246,"end":3457},7171,[3459,3462,3464,3467,3470,3473,3476],{"name":3245,"start":3460,"end":3461},7398,7404,{"name":3245,"start":3422,"end":3463},7429,{"name":3245,"start":3465,"end":3466},9079,9085,{"name":3245,"start":3468,"end":3469},9098,9104,{"name":3245,"start":3471,"end":3472},9117,9123,{"name":3245,"start":3474,"end":3475},9136,9142,{"name":3245,"start":3477,"end":3478},9182,9188,{"sources":3424,"lines":3480,"tokens":3481,"clones":3482,"duplicatedLines":3483,"duplicatedTokens":3484,"percentage":3485,"percentageTokens":3486,"formats":3487,"topClones":3505,"generated":3635},153757,1060508,974,10989,72149,7.15,6.8,[3488,3493,3497,3500,3502,3503],{"format":2496,"sources":1337,"lines":3489,"clones":3490,"duplicatedLines":3491,"percentage":3492},141533,958,10741,7.59,{"format":373,"sources":369,"lines":3494,"clones":376,"duplicatedLines":3495,"percentage":3496},5359,224,4.18,{"format":1088,"sources":1402,"lines":3498,"clones":389,"duplicatedLines":875,"percentage":3499},5190,0.46,{"format":408,"sources":900,"lines":3501,"clones":590,"duplicatedLines":590,"percentage":590},1173,{"format":588,"sources":301,"lines":2928,"clones":590,"duplicatedLines":590,"percentage":590},{"format":366,"sources":308,"lines":3504,"clones":590,"duplicatedLines":590,"percentage":590},176,[3506,3521,3536,3549,3560,3568,3579,3590,3601,3611],{"format":2496,"lines":912,"tokens":290,"copies":1019,"first":3507,"others":3508,"excerpt":3517,"excerptSecond":3519},{"name":3202,"start":3203,"end":3204},[3509,3510,3511,3512,3513,3514,3515,3516],{"name":3202,"start":3207,"end":3208},{"name":3202,"start":3210,"end":3211},{"name":3202,"start":3213,"end":3214},{"name":3202,"start":3216,"end":3217},{"name":3202,"start":3219,"end":3220},{"name":3202,"start":3222,"end":3223},{"name":3202,"start":3225,"end":3226},{"name":3202,"start":3228,"end":3229},{"lines":3518,"total":912},[3232,3233,440,3234,3235,3236,2344,3237,3238,440],{"lines":3520,"total":900},[3241,3233,3234,3235,3236,2344,3237,3238,3234,3242],{"format":2496,"lines":255,"tokens":2574,"copies":374,"first":3522,"others":3523,"excerpt":3532,"excerptSecond":3534},{"name":3245,"start":3246,"end":3247},[3524,3525,3526,3527,3528,3529,3530,3531],{"name":3245,"start":3250,"end":3251},{"name":3245,"start":3253,"end":3254},{"name":3245,"start":3256,"end":3257},{"name":3245,"start":3259,"end":3260},{"name":3245,"start":3262,"end":3263},{"name":3245,"start":3265,"end":3266},{"name":3245,"start":3268,"end":3269},{"name":3245,"start":3271,"end":3272},{"lines":3533,"total":255},[3275,3276,3277,3278,3279,3280,3281,440,3282],{"lines":3535,"total":272},[3285,3276,3277,3278,3279,3280,3281,3286],{"format":2496,"lines":272,"tokens":1651,"copies":1038,"first":3537,"others":3538,"excerpt":3547},{"name":3202,"start":3289,"end":3290},[3539,3540,3541,3542,3543,3544,3545,3546],{"name":3202,"start":3293,"end":3294},{"name":3202,"start":3296,"end":3297},{"name":3202,"start":3299,"end":3300},{"name":3202,"start":3302,"end":3303},{"name":3202,"start":3305,"end":3306},{"name":3202,"start":3308,"end":3309},{"name":3202,"start":3311,"end":3312},{"name":3202,"start":3314,"end":3315},{"lines":3548,"total":272},[3318,3319,3320,3321,3322,3233,3323,3324],{"format":2496,"lines":745,"tokens":817,"copies":810,"first":3550,"others":3551},{"name":3202,"start":3203,"end":3327},[3552,3553,3554,3555,3556,3557,3558,3559],{"name":3202,"start":3330,"end":3331},{"name":3202,"start":3333,"end":1818},{"name":3202,"start":3335,"end":3336},{"name":3202,"start":3338,"end":3339},{"name":3202,"start":3341,"end":3342},{"name":3202,"start":3344,"end":3345},{"name":3202,"start":3347,"end":3348},{"name":3202,"start":3350,"end":3351},{"format":2496,"lines":904,"tokens":1386,"copies":766,"first":3561,"others":3562},{"name":3202,"start":3354,"end":3355},[3563,3564,3565,3566,3567],{"name":3202,"start":3358,"end":3359},{"name":3202,"start":3361,"end":3362},{"name":3202,"start":3364,"end":3365},{"name":3202,"start":3367,"end":3368},{"name":3202,"start":3370,"end":3371},{"format":2496,"lines":904,"tokens":1653,"copies":900,"first":3569,"others":3570},{"name":3202,"start":3203,"end":3374},[3571,3572,3573,3574,3575,3576,3577,3578],{"name":3202,"start":3377,"end":3378},{"name":3202,"start":3380,"end":1968},{"name":3202,"start":3382,"end":3383},{"name":3202,"start":3385,"end":3386},{"name":3202,"start":3388,"end":3389},{"name":3202,"start":2229,"end":3391},{"name":3202,"start":3393,"end":3394},{"name":3202,"start":3396,"end":3397},{"format":2496,"lines":255,"tokens":1642,"copies":1038,"first":3580,"others":3581},{"name":3202,"start":3203,"end":510},[3582,3583,3584,3585,3586,3587,3588,3589],{"name":3202,"start":3402,"end":3403},{"name":3202,"start":3405,"end":3406},{"name":3202,"start":3114,"end":3408},{"name":3202,"start":3410,"end":3411},{"name":3202,"start":3413,"end":2176},{"name":3202,"start":3415,"end":3416},{"name":3202,"start":3418,"end":3419},{"name":3202,"start":3421,"end":3422},{"format":2496,"lines":900,"tokens":1022,"copies":745,"first":3591,"others":3592},{"name":3202,"start":3433,"end":3331},[3593,3594,3595,3596,3597,3598,3599,3600],{"name":3202,"start":3436,"end":3336},{"name":3202,"start":3438,"end":3342},{"name":3202,"start":3440,"end":3345},{"name":3202,"start":3442,"end":3443},{"name":3202,"start":3445,"end":3446},{"name":3202,"start":3448,"end":3449},{"name":3202,"start":3271,"end":3451},{"name":3202,"start":3453,"end":3454},{"format":2496,"lines":394,"tokens":812,"copies":272,"first":3602,"others":3603},{"name":3245,"start":3246,"end":3457},[3604,3605,3606,3607,3608,3609,3610],{"name":3245,"start":3460,"end":3461},{"name":3245,"start":3422,"end":3463},{"name":3245,"start":3465,"end":3466},{"name":3245,"start":3468,"end":3469},{"name":3245,"start":3471,"end":3472},{"name":3245,"start":3474,"end":3475},{"name":3245,"start":3477,"end":3478},{"format":2496,"lines":272,"tokens":712,"copies":394,"first":3612,"others":3616},{"name":3613,"start":3614,"end":3615},"cli\u002Fsrc\u002Fcommands.rs",4331,4338,[3617,3620,3623,3626,3629,3632],{"name":3613,"start":3618,"end":3619},4344,4351,{"name":3613,"start":3621,"end":3622},4357,4364,{"name":3613,"start":3624,"end":3625},4370,4377,{"name":3613,"start":3627,"end":3628},4383,4390,{"name":3613,"start":3630,"end":3631},4396,4403,{"name":3613,"start":3633,"end":3634},4409,4416,{"files":590,"minified":590,"sample":3636},[],{"score":3638,"grade":1412,"size":3639,"dimensions":3642},42.4,{"lines":3640,"files":3641,"class":2116},170856,296,[3643,3648,3654],{"id":684,"source":685,"value":3486,"adjusted":3486,"lines":3644,"halfLife":688,"formats":3645,"excluded":3646,"weight":308,"score":3647},11689,[2496,1088,373,408,588,366],[380,691,692],57.4,{"id":695,"source":685,"value":3649,"adjusted":3650,"lines":3651,"halfLife":699,"coverage":3652,"weight":3653,"score":360},9.1,8.6,2314,14.9,0.149,{"id":704,"source":685,"value":3655,"adjusted":3656,"lines":3657,"halfLife":708,"weight":308,"score":3658},85.1,84.3,145358,31.1,{"total":3660,"mean":3661,"files":3662},25695,86.8,[3663,3667,3671,3674,3679,3684,3689,3693,3697,3701],{"path":3245,"complexity":3664,"lines":3665,"bytes":3666},3453,23728,911378,{"path":3668,"complexity":3669,"lines":860,"bytes":3670},"cli\u002Fsrc\u002Fnative\u002Freact\u002FinstallHook.js",3040,182992,{"path":3613,"complexity":342,"lines":3672,"bytes":3673},7457,288151,{"path":3675,"complexity":3676,"lines":3677,"bytes":3678},"cli\u002Fsrc\u002Fmcp.rs",1126,6698,252938,{"path":3680,"complexity":3681,"lines":3682,"bytes":3683},"cli\u002Fsrc\u002Foutput.rs",1025,5557,216380,{"path":3685,"complexity":3686,"lines":3687,"bytes":3688},"cli\u002Fsrc\u002Fnative\u002Fflow\u002Fmod.rs",889,8916,327317,{"path":3202,"complexity":3690,"lines":3691,"bytes":3692},726,16849,571555,{"path":3694,"complexity":1736,"lines":3695,"bytes":3696},"cli\u002Fsrc\u002Fnative\u002Fbrowser.rs",5624,213654,{"path":3698,"complexity":1753,"lines":3699,"bytes":3700},"cli\u002Fsrc\u002Fmain.rs",3002,105901,{"path":3702,"complexity":3703,"lines":3704,"bytes":3705},"cli\u002Fsrc\u002Fnative\u002Fcdp\u002Fchrome.rs",408,3156,113680,{"percentage":3707,"findings":555,"files":3708,"byCategory":3709,"largest":3714},9.06,240,[3710,3711,3712,3713],{"category":749,"count":2533},{"category":751,"count":285},{"category":753,"count":308},{"category":755,"count":272},[3715,3717,3720,3722,3724,3726,3728,3730,3732,3734],{"category":749,"path":3716,"name":440,"line":308,"lines":923},"docs\u002Fscripts\u002Fcapture-docs-baseline.mjs",{"category":749,"path":3718,"name":440,"line":308,"lines":3719},"docs\u002Fsrc\u002Fcomponents\u002Fdiff-demo.tsx",282,{"category":749,"path":3721,"name":440,"line":308,"lines":1822},"docs\u002Fsrc\u002Fcomponents\u002Fsearch.tsx",{"category":749,"path":3723,"name":440,"line":308,"lines":2460},"packages\u002F@agent-browser\u002Feve\u002Fextension\u002Flib\u002Fsandbox.ts",{"category":749,"path":3725,"name":440,"line":308,"lines":498},"packages\u002F@agent-browser\u002Feve\u002Fextension\u002Flib\u002Fbrowser.ts",{"category":749,"path":3727,"name":440,"line":308,"lines":1047},"docs\u002Fsrc\u002Fcomponents\u002Fheader.tsx",{"category":749,"path":3729,"name":440,"line":308,"lines":1271},"docs\u002Fsrc\u002Fcomponents\u002Fdocs-mobile-nav.tsx",{"category":749,"path":3731,"name":440,"line":308,"lines":2931},"docs\u002Fsrc\u002Fcomponents\u002Fcopy-page-button.tsx",{"category":749,"path":3733,"name":440,"line":308,"lines":1243},"cli\u002Fsrc\u002Fnative\u002Frecording-cursor.js",{"category":749,"path":3735,"name":440,"line":308,"lines":360},"docs\u002Fsrc\u002Fcomponents\u002Fdocs-sidebar.tsx",{"name":271,"url":3737,"description":3738,"language":300,"stars":3739,"starsToday":3740,"defaultBranch":2782,"headSha":3741,"durationMs":3742,"total":3743,"formats":3748,"topClones":3765,"code":3838,"health":3865,"complexity":3884,"deadCode":3914},"https:\u002F\u002Fgithub.com\u002Fsherlock-project\u002Fsherlock","Hunt down social media accounts by username across social networks",109297,2393,"c588d7c8b476df9f9c84912a05d1430fb8cdcdae",1132,{"sources":362,"lines":3744,"tokens":3745,"clones":272,"duplicatedLines":1653,"duplicatedTokens":3746,"percentage":273,"percentageTokens":3747},9968,40953,607,1.48,[3749,3751,3754,3755,3757,3758,3759,3760,3762,3763],{"format":830,"sources":255,"lines":3750,"clones":382,"duplicatedLines":817,"percentage":262},541,{"format":366,"sources":904,"lines":3752,"clones":389,"duplicatedLines":2808,"percentage":3753},2168,1.71,{"format":386,"sources":382,"lines":278,"clones":590,"duplicatedLines":590,"percentage":590},{"format":352,"sources":766,"lines":3756,"clones":590,"duplicatedLines":590,"percentage":590},2397,{"format":804,"sources":308,"lines":1313,"clones":590,"duplicatedLines":590,"percentage":590},{"format":691,"sources":389,"lines":330,"clones":590,"duplicatedLines":590,"percentage":590},{"format":1197,"sources":401,"lines":708,"clones":590,"duplicatedLines":590,"percentage":590},{"format":3761,"sources":401,"lines":1548,"clones":590,"duplicatedLines":590,"percentage":590},"ini",{"format":588,"sources":401,"lines":948,"clones":590,"duplicatedLines":590,"percentage":590},{"format":3764,"sources":308,"lines":374,"clones":590,"duplicatedLines":590,"percentage":590},"editorconfig",[3766,3786,3803,3818,3823,3828,3833],{"format":830,"lines":745,"tokens":1311,"copies":389,"first":3767,"others":3769,"excerpt":3774},{"name":3768,"start":932,"end":860},".github\u002FISSUE_TEMPLATE\u002Ffalse-negative.yml",[3770,3772],{"name":3771,"start":374,"end":800},".github\u002FISSUE_TEMPLATE\u002Ffalse-positive.yml",{"name":3773,"start":948,"end":951},".github\u002FISSUE_TEMPLATE\u002Fsite-request.yml",{"lines":3775,"total":745},[3776,3777,3778,3779,3780,3781,3782,3783,3784,3785],"      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":366,"lines":912,"tokens":1475,"copies":401,"first":3787,"others":3789,"excerpt":3791},{"name":3788,"start":579,"end":1397},"tests\u002Ftest_probes.py",[3790],{"name":3788,"start":1651,"end":367},{"lines":3792,"total":912},[3793,3794,3795,3796,3797,3798,3799,3800,3801,3802],"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":830,"lines":912,"tokens":1311,"copies":401,"first":3804,"others":3805,"excerpt":3807},{"name":3768,"start":301,"end":806},[3806],{"name":3771,"start":301,"end":806},{"lines":3808,"total":912},[3809,3810,3811,3812,3813,3814,3815,3816,3817,3812],"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":830,"lines":745,"tokens":1649,"copies":401,"first":3819,"others":3821},{"name":3820,"start":2084,"end":2931},".github\u002FISSUE_TEMPLATE\u002Fbug-report.yml",[3822],{"name":3768,"start":932,"end":860},{"format":830,"lines":272,"tokens":290,"copies":401,"first":3824,"others":3825},{"name":3820,"start":330,"end":2931},[3826],{"name":3827,"start":932,"end":875},".github\u002FISSUE_TEMPLATE\u002Ffeature-request.yml",{"format":366,"lines":900,"tokens":1060,"copies":401,"first":3829,"others":3831},{"name":3830,"start":798,"end":362},"tests\u002Ftest_validate_targets.py",[3832],{"name":3830,"start":2084,"end":680},{"format":366,"lines":806,"tokens":1022,"copies":401,"first":3834,"others":3836},{"name":3835,"start":360,"end":1607},"sherlock_project\u002Fnotify.py",[3837],{"name":3835,"start":1191,"end":367},{"sources":255,"lines":3839,"tokens":3840,"clones":308,"duplicatedLines":806,"duplicatedTokens":1022,"percentage":3841,"percentageTokens":3842,"formats":3843,"topClones":3848,"generated":3863},1745,7342,0.86,0.74,[3844,3847],{"format":366,"sources":272,"lines":3845,"clones":308,"duplicatedLines":806,"percentage":3846},1731,0.87,{"format":588,"sources":308,"lines":1038,"clones":590,"duplicatedLines":590,"percentage":590},[3849],{"format":366,"lines":806,"tokens":1022,"copies":401,"first":3850,"others":3851,"excerpt":3853},{"name":3835,"start":360,"end":1607},[3852],{"name":3835,"start":1191,"end":367},{"lines":3854,"total":806},[3855,3856,440,3857,3858,3859,3860,3861,440,3862],"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":590,"minified":590,"sample":3864},[],{"score":293,"grade":294,"size":3866,"dimensions":3868},{"lines":3867,"files":387,"class":1082},2232,[3869,3875,3879],{"id":684,"source":685,"value":3870,"adjusted":3871,"lines":2808,"halfLife":688,"formats":3872,"excluded":3873,"weight":308,"score":3874},1.7,2.5,[366,1197,588],[691,692],81.4,{"id":695,"source":685,"value":590,"adjusted":697,"lines":590,"halfLife":699,"coverage":3876,"weight":3877,"score":3878},97.5,0.975,87.2,{"id":704,"source":685,"value":3880,"adjusted":3881,"lines":3882,"halfLife":708,"weight":308,"score":3883},41.8,31.9,934,64.2,{"total":1503,"mean":3652,"files":3885},[3886,3890,3893,3895,3898,3901,3904,3906,3909,3912],{"path":3887,"complexity":3888,"lines":3882,"bytes":3889},"sherlock_project\u002Fsherlock.py",125,34664,{"path":3891,"complexity":1019,"lines":1295,"bytes":3892},"sherlock_project\u002Fsites.py",10151,{"path":3835,"complexity":1056,"lines":3719,"bytes":3894},9141,{"path":3830,"complexity":374,"lines":3896,"bytes":3897},99,4558,{"path":3899,"complexity":932,"lines":290,"bytes":3900},"devel\u002Fsummarize_site_validation.py",2637,{"path":3902,"complexity":376,"lines":355,"bytes":3903},"tests\u002Fconftest.py",2015,{"path":3788,"complexity":376,"lines":2630,"bytes":3905},4654,{"path":3907,"complexity":745,"lines":841,"bytes":3908},"tests\u002Ftest_ux.py",1809,{"path":3910,"complexity":272,"lines":798,"bytes":3911},"tests\u002Fsherlock_interactives.py",1423,{"path":3913,"complexity":301,"lines":1278,"bytes":3226},"sherlock_project\u002Fresult.py",{"percentage":590,"findings":590,"files":932,"byCategory":3915,"largest":3916},[],[],{"name":275,"url":3918,"description":3919,"language":307,"stars":3920,"starsToday":1768,"defaultBranch":2782,"headSha":3921,"durationMs":3633,"total":3922,"formats":3927,"topClones":3960,"code":4150,"health":4303,"complexity":4324,"deadCode":4373},"https:\u002F\u002Fgithub.com\u002Franxianglei\u002Fbillion-context","A context-compression plugin for month-long single sessions (billions of tokens) ,small context windows (a 100K context is enough) and token savings (5x fewer tokens) .上下文压缩插件，月级长会话会话， 兼顾小窗口(100k上下文足矣)省token(省5倍token) . billion-context is all you need",6464,"e3220adc0f5412af83163666ca70a6afa05e3247",{"sources":3923,"lines":309,"tokens":3924,"clones":276,"duplicatedLines":310,"duplicatedTokens":3925,"percentage":277,"percentageTokens":3926},2173,5310814,757388,14.26,[3928,3934,3937,3941,3945,3949,3953,3955,3957,3959],{"format":373,"sources":3929,"lines":3930,"clones":3931,"duplicatedLines":3932,"percentage":3933},1814,592390,8240,98442,16.62,{"format":386,"sources":951,"lines":3935,"clones":1653,"duplicatedLines":3220,"percentage":3936},7261,40.88,{"format":830,"sources":1129,"lines":3938,"clones":709,"duplicatedLines":3939,"percentage":3940},7827,779,9.95,{"format":408,"sources":2567,"lines":3942,"clones":948,"duplicatedLines":3943,"percentage":3944},8610,307,3.57,{"format":380,"sources":285,"lines":3946,"clones":387,"duplicatedLines":3947,"percentage":3948},1661,278,16.74,{"format":352,"sources":3950,"lines":3951,"clones":806,"duplicatedLines":1110,"percentage":3952},178,23791,1.95,{"format":359,"sources":301,"lines":1246,"clones":301,"duplicatedLines":820,"percentage":3954},46.5,{"format":588,"sources":376,"lines":2579,"clones":389,"duplicatedLines":1307,"percentage":3956},25.43,{"format":366,"sources":401,"lines":3958,"clones":590,"duplicatedLines":590,"percentage":590},2165,{"format":1201,"sources":308,"lines":1314,"clones":590,"duplicatedLines":590,"percentage":590},[3961,3993,4028,4051,4071,4080,4091,4110,4118,4127],{"format":373,"lines":912,"tokens":1000,"copies":948,"first":3962,"others":3964,"excerpt":3981},{"name":3963,"start":255,"end":448},"tests\u002Facp-status-estimator.test.ts",[3965,3967,3969,3971,3973,3975,3977,3979],{"name":3966,"start":1313,"end":913},"tests\u002Fanthropic-round2-thinking-hold.test.ts",{"name":3968,"start":810,"end":396},"tests\u002Fcompress-credit.test.ts",{"name":3970,"start":948,"end":369},"tests\u002Fcompress-fingerprint-refold.test.ts",{"name":3972,"start":943,"end":831},"tests\u002Fcompress-observability.test.ts",{"name":3974,"start":387,"end":285},"tests\u002Fcompress-reject-reasons.test.ts",{"name":3976,"start":800,"end":2424},"tests\u002Fcompress-span-hint.test.ts",{"name":3978,"start":943,"end":831},"tests\u002Fcompress-success-tail.test.ts",{"name":3980,"start":948,"end":369},"tests\u002Ffix-1124-compress-receipt.test.ts",{"lines":3982,"total":912},[3983,3984,3985,3986,3987,3988,3989,3990,3991,3992],"id: `test-${Math.random().toString(36).slice(2)}`,","meta: {},","stats: { requests: 0, tokensSaved: 0, inputTokens: 0, cachedTokens: 0, outputTokens: 0, cacheSamples: 0, lastInputTokens: 0, compressCreditTokens: 0, contextTo…","metadata: {},","state: createInitialState(),","createdAt: Date.now(),","lastSeen: Date.now(),","blockContents: new Map(),","inFlight: 0,","persisted: false,",{"format":373,"lines":900,"tokens":355,"copies":817,"first":3994,"others":3996,"excerpt":4016},{"name":3995,"start":816,"end":925},"tests\u002Fcompaction-trigger-finality.test.ts",[3997,4000,4002,4005,4006,4010,4011,4013],{"name":3998,"start":3999,"end":3504},"tests\u002Fe2e-issue3450-stated-counts.test.ts",167,{"name":3998,"start":4001,"end":2287},246,{"name":4003,"start":353,"end":4004},"tests\u002Fe2e-issue3900-overflow-teaches.test.ts",144,{"name":4003,"start":2353,"end":495},{"name":4007,"start":4008,"end":4009},"tests\u002Fe2e-overflow-selfheal.test.ts",185,194,{"name":4007,"start":2028,"end":2190},{"name":4007,"start":2087,"end":4012},349,{"name":4014,"start":3703,"end":4015},"tests\u002Fe2e\u002Fe2e-image-billing.test.ts",417,{"lines":4017,"total":900},[4018,4019,4020,4021,4022,4023,4024,4025,4026,4027],"        assert.ok(bodies[bodies.length - 1].includes(\"Context limit reached\"), \"nudge still injected on a normal request\");","    } finally {","        proxy.close();","        proxy.closeIdleConnections?.();","        await once(proxy, \"close\");","        upstream.close();","        upstream.closeIdleConnections?.();","        await once(upstream, \"close\");","    }","});",{"format":352,"lines":1815,"tokens":4029,"copies":401,"first":4030,"others":4034,"excerpt":4039},2501,{"name":4031,"start":4032,"end":4033},"docs\u002Fconfiguration.md",1903,2071,[4035],{"name":4036,"start":4037,"end":4038},"docs\u002Fconfiguration.zh-CN.md",1880,2048,{"lines":4040,"total":1815},[4041,4042,4043,4044,4045,4046,4047,4048,4049,4050],"| Env var | Config key | Default |","|---------|------------|--------|","| `` | `pi.commands` | [\"acp\", \"acp-cache\"] |","| `ACP_AUTO_RESTART_ON_UPDATE` | `autoRestartOnUpdate` | false |","| `ACP_AUTO_UPDATE` | `autoUpdate` | true |","| `ACP_COMPRESS_NUDGE` | `compress.injectNudge` | true |","| `ACP_COMPRESS_PROTOCOL` | `diagnostics.compressProtocol` | \"tools\" |","| `ACP_COMPRESS_TOOL` | `compress.injectTool` | true |","| `ACP_COUNT_TOKENS_PASSTHROUGH` | `diagnostics.countTokensPassthrough` | false |","| `ACP_DEBUG` | `debug` | false |",{"format":830,"lines":837,"tokens":801,"copies":900,"first":4052,"others":4054},{"name":4053,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-codex-persona.yml",[4055,4057,4059,4061,4063,4065,4067,4069],{"name":4056,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-dsh-native.yml",{"name":4058,"start":396,"end":978},".github\u002Fworkflows\u002Fci-e2e-dsh.yml",{"name":4060,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-fake.yml",{"name":4062,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-native-opencode.yml",{"name":4064,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-native.yml",{"name":4066,"start":448,"end":817},".github\u002Fworkflows\u002Fci-e2e-pi-ws.yml",{"name":4068,"start":360,"end":1649},".github\u002Fworkflows\u002Fci-e2e.yml",{"name":4070,"start":285,"end":1243},".github\u002Fworkflows\u002Fci-image.yml",{"format":359,"lines":1081,"tokens":4072,"copies":389,"first":4073,"others":4075},1114,{"name":4074,"start":308,"end":1081},"kernel\u002Ftests\u002Ffixtures\u002Fprompt-function-default.txt",[4076,4078],{"name":4077,"start":308,"end":1081},"kernel\u002Ftests\u002Ffixtures\u002Fprompt-hybrid-default.txt",{"name":4079,"start":308,"end":1081},"kernel\u002Ftests\u002Ffixtures\u002Fprompt-text-default.txt",{"format":373,"lines":367,"tokens":4081,"copies":301,"first":4082,"others":4084},740,{"name":4083,"start":837,"end":2348},"tests\u002Fissue2419-dsh-skill-catalog.test.ts",[4085,4087,4089],{"name":4086,"start":708,"end":4004},"tests\u002Fissue2446-dsh-mcp-catalog.test.ts",{"name":4088,"start":2567,"end":2381},"tests\u002Fissue2447-dsh-workspace-instructions.test.ts",{"name":4090,"start":362,"end":2520},"tests\u002Fissue2481-dsh-runtime-context.test.ts",{"format":373,"lines":376,"tokens":1397,"copies":1019,"first":4092,"others":4094},{"name":4093,"start":308,"end":376},"tests\u002Fclaude-bridge-e2e.test.ts",[4095,4097,4098,4100,4102,4104,4106,4108],{"name":4096,"start":308,"end":376},"tests\u002Fcodex-compact-e2e.test.ts",{"name":3995,"start":308,"end":376},{"name":4099,"start":308,"end":376},"tests\u002Ffix-488-multimodal.test.ts",{"name":4101,"start":308,"end":376},"tests\u002Ffork-nudge-trigger.test.ts",{"name":4103,"start":308,"end":376},"tests\u002Fissue1492-stale-estimate-view.test.ts",{"name":4105,"start":308,"end":951},"tests\u002Fissue1839-ghost-denominator.test.ts",{"name":4107,"start":308,"end":376},"tests\u002Fissue1841-preflight-futility.test.ts",{"name":4109,"start":308,"end":376},"tests\u002Fissue1843-learned-image-cost.test.ts",{"format":373,"lines":1394,"tokens":4111,"copies":401,"first":4112,"others":4114},1780,{"name":4113,"start":667,"end":2928},"tests\u002Fgolden-storage-drive.ts",[4115],{"name":4116,"start":1593,"end":4117},"tests\u002Fidentity-proof.test.ts",316,{"format":352,"lines":709,"tokens":4119,"copies":389,"first":4120,"others":4122},860,{"name":4121,"start":394,"end":362},"README.ja.md",[4123,4125],{"name":4124,"start":394,"end":362},"README.md",{"name":4126,"start":394,"end":362},"README.zh-CN.md",{"format":373,"lines":745,"tokens":355,"copies":837,"first":4128,"others":4129},{"name":3998,"start":377,"end":3950},[4130,4132,4134,4137,4140,4143,4145,4148],{"name":4003,"start":4131,"end":925},136,{"name":4007,"start":4133,"end":1195},186,{"name":4007,"start":4135,"end":4136},262,272,{"name":4014,"start":4138,"end":4139},409,419,{"name":4141,"start":4142,"end":1757},"tests\u002Ffake-completion.test.ts",438,{"name":4144,"start":3888,"end":353},"tests\u002Ffallback-window-floor.test.ts",{"name":4146,"start":1379,"end":4147},"tests\u002Ffix-1001-history-rewrite.test.ts",250,{"name":4149,"start":1324,"end":2087},"tests\u002Fissue1933-preflight-calibration.test.ts",{"sources":4151,"lines":4152,"tokens":4153,"clones":288,"duplicatedLines":4154,"duplicatedTokens":4155,"percentage":289,"percentageTokens":4156,"formats":4157,"topClones":4167,"generated":4299},463,212240,1248364,5787,40453,3.24,[4158,4161,4164,4165,4166],{"format":373,"sources":2727,"lines":4159,"clones":1760,"duplicatedLines":4160,"percentage":795},202099,5636,{"format":408,"sources":837,"lines":4162,"clones":745,"duplicatedLines":4163,"percentage":3952},7726,151,{"format":366,"sources":401,"lines":3958,"clones":590,"duplicatedLines":590,"percentage":590},{"format":2963,"sources":401,"lines":667,"clones":590,"duplicatedLines":590,"percentage":590},{"format":588,"sources":308,"lines":831,"clones":590,"duplicatedLines":590,"percentage":590},[4168,4189,4210,4236,4242,4257,4267,4277,4285,4292],{"format":373,"lines":1023,"tokens":4169,"copies":401,"first":4170,"others":4172,"excerpt":4177},579,{"name":4171,"start":417,"end":698},"src\u002Fserver\u002Fprepare-google.ts",[4173],{"name":4174,"start":4175,"end":4176},"src\u002Fserver\u002Fprepare-openai.ts",321,393,{"lines":4178,"total":1023},[4179,4180,4181,4182,4183,4184,4185,4186,4187,4188],"const turn = core.processTurn({ messages: renderMsgs, state: session.state, config: loopConfig, tokenCount, tokenCountSource, renderTags: renderStrategy, conte…","session.state = turn.state;","adoptContentStore(session, turn.contentStore);","\u002F\u002F #4528: split the kernel pass from its post-processing scan passes so","\u002F\u002F each is a bounded synchronous stretch rather than one long block.","await yieldToEventLoop();","\u002F\u002F The fold from last turn's compress has now materialized in state —","\u002F\u002F future usage reports are post-fold reality, drop the credit.","session.stats.compressCreditTokens = 0;","if (foldCoveredBefore !== null && !isTitleGen && msgs.length >= REWRITE_MIN_INCOMING_TOTAL) {",{"format":373,"lines":666,"tokens":1032,"copies":401,"first":4190,"others":4193,"excerpt":4195,"excerptSecond":4206},{"name":4191,"start":1765,"end":4192},"src\u002Fserver\u002Fprepare-anthropic.ts",431,[4194],{"name":4171,"start":1593,"end":698},{"lines":4196,"total":666},[4197,4198,4199,1235,4200,4201,4202,4203,4204,4205],"if (foldCoveredBefore !== null && msgs.length >= REWRITE_MIN_INCOMING_TOTAL) {","    const gap = foldCoverage(foldCoveredBefore, msgs.map((m) => m.id));","    if (gap) log(\"warn\", `[${sessionId}] [acp-drift] fold coverage mismatch: ${gap.matched}\u002F${gap.expected} covered message id(s) present in resent history — $…","storeEffectiveAbsorb(session, loopConfig);","storeEffectiveRules(session, config);","turn.messages = applyAbsorbView(turn.messages, session.state, loopConfig, tokenCount);","turn.messages = attachSubagentSessions(turn.messages, session);","\u002F\u002F Drop sub-viability fragments before any consumer sees them: a tiny","\u002F\u002F range in the list makes batched compress attempts fail atomically",{"lines":4207,"total":1974},[4188,4198,4199,1235,4200,4201,4202,4203,4208,4209],"\u002F\u002F #3204: also drop DEAD-ref-bracketing spans at this single point so","\u002F\u002F every downstream consumer (decision prompt + directive, prose nudge,",{"format":373,"lines":255,"tokens":2574,"copies":382,"first":4211,"others":4215,"excerpt":4224,"excerptSecond":4232},{"name":4212,"start":4213,"end":4214},"src\u002Fserver\u002Fadmin.ts",816,824,[4216,4219,4221,4223],{"name":4212,"start":4217,"end":4218},851,859,{"name":4212,"start":4220,"end":2262},864,{"name":4212,"start":477,"end":4222},883,{"name":4212,"start":1827,"end":1922},{"lines":4225,"total":255},[4226,4227,4228,4229,4230,4227,4026,1235,4231],"        handlePluginRegister(body.toString(\"utf8\"), res);","        return;","    } catch (err) {","        res.writeHead(err instanceof BodyTooLargeError ? 413 : 400, { \"content-type\": \"application\u002Fjson\" });","        res.end(JSON.stringify({ ok: false, error: String(err) }));","if (req.method === \"POST\" && req.url === \"\u002F__bili\u002Fagent-providers\") {",{"lines":4233,"total":255},[4234,4227,4228,4229,4230,4227,4026,1235,4235],"        handlePluginRuntimeInfo(body.toString(\"utf8\"), res);","if (req.method === \"POST\" && req.url === \"\u002F__bili\u002Fplugin\u002Fattribution\") {",{"format":373,"lines":285,"tokens":1684,"copies":401,"first":4237,"others":4239},{"name":4191,"start":4238,"end":1535},440,[4240],{"name":4174,"start":4241,"end":721},403,{"format":373,"lines":800,"tokens":4243,"copies":389,"first":4244,"others":4248},150,{"name":4245,"start":4246,"end":4247},"src\u002Fagent\u002Fomp-native.ts",354,381,[4249,4253],{"name":4250,"start":4251,"end":4252},"src\u002Fagent\u002Fopencode-native.ts",402,430,{"name":4254,"start":4255,"end":4256},"src\u002Fagent\u002Fpi-native.ts",252,279,{"format":373,"lines":798,"tokens":539,"copies":401,"first":4258,"others":4262},{"name":4259,"start":4260,"end":4261},"src\u002Fstorage\u002Fmysql.ts",1835,1872,[4263],{"name":4264,"start":4265,"end":4266},"src\u002Fstorage\u002Fstore.ts",2118,2155,{"format":373,"lines":943,"tokens":4268,"copies":401,"first":4269,"others":4273},293,{"name":4270,"start":4271,"end":4272},"src\u002Fclient-config.ts",2156,2177,[4274],{"name":4270,"start":4275,"end":4276},2187,2208,{"format":373,"lines":1038,"tokens":2381,"copies":389,"first":4278,"others":4280},{"name":4279,"start":3504,"end":495},"src\u002Fhost-plugin-notice.ts",[4281,4283],{"name":4282,"start":290,"end":2274},"src\u002Fnotice-store.ts",{"name":4284,"start":841,"end":1060},"src\u002Fpck-notice.ts",{"format":373,"lines":2567,"tokens":698,"copies":401,"first":4286,"others":4288},{"name":4287,"start":810,"end":666},"src\u002Floop\u002Fadapter-anthropic.ts",[4289],{"name":4290,"start":4291,"end":731},"src\u002Floop\u002Fadapter-responses.ts",179,{"format":373,"lines":798,"tokens":4293,"copies":401,"first":4294,"others":4296},266,{"name":4295,"start":709,"end":1649},"src\u002Fkimi\u002Fnative.ts",[4297],{"name":4298,"start":2533,"end":2661},"src\u002Fzcode\u002Fnative.ts",{"files":401,"minified":590,"sample":4300},[4301,4302],"src\u002Fweb\u002Ffavicon.ts","src\u002Fzcode\u002Fjson-edit.ts",{"score":4304,"grade":1412,"size":4305,"dimensions":4308},46.6,{"lines":4306,"files":4307,"class":2116},603180,1855,[4309,4316,4320],{"id":684,"source":685,"value":4310,"adjusted":4311,"lines":4312,"halfLife":688,"formats":4313,"excluded":4314,"weight":308,"score":4315},16.4,16.3,98737,[373,408,366,2963,588,1197],[380,691,692],26.4,{"id":695,"source":685,"value":4317,"adjusted":4317,"lines":4318,"halfLife":699,"weight":308,"score":4319},1.2,7257,89.4,{"id":704,"source":685,"value":4321,"adjusted":4322,"lines":4323,"halfLife":708,"weight":308,"score":3061},61.3,61.2,369764,{"total":4325,"mean":2084,"files":4326},113195,[4327,4332,4337,4342,4347,4352,4357,4361,4366,4370],{"path":4328,"complexity":4329,"lines":4330,"bytes":4331},"src\u002Flauncher.ts",1987,7786,419374,{"path":4333,"complexity":4334,"lines":4335,"bytes":4336},"src\u002Fplugin.ts",1935,5241,319988,{"path":4338,"complexity":4339,"lines":4340,"bytes":4341},"verif\u002Fsymbolic.ts",1779,3581,193597,{"path":4343,"complexity":4344,"lines":4345,"bytes":4346},"tests\u002Flauncher.test.ts",1535,8598,422494,{"path":4348,"complexity":4349,"lines":4350,"bytes":4351},"src\u002Fserver.ts",1028,4826,312024,{"path":4353,"complexity":4354,"lines":4355,"bytes":4356},"src\u002Fpersist.ts",1008,4469,255768,{"path":4358,"complexity":2161,"lines":4359,"bytes":4360},"src\u002Fpreflight.ts",3264,211927,{"path":4362,"complexity":4363,"lines":4364,"bytes":4365},"src\u002Fplugin-install.ts",949,2702,141804,{"path":4367,"complexity":4368,"lines":3339,"bytes":4369},"src\u002Fserver\u002Fhandle.ts",914,251124,{"path":4371,"complexity":1827,"lines":3408,"bytes":4372},"src\u002Fconfig.ts",211415,{"percentage":4317,"findings":1272,"files":4374,"byCategory":4375,"largest":4381},1869,[4376,4377,4378,4379],{"category":749,"count":932},{"category":751,"count":875},{"category":753,"count":1023},{"category":755,"count":4380},275,[4382,4383,4386,4388,4391,4393,4396,4398,4400,4402],{"category":749,"path":4338,"name":440,"line":308,"lines":4340},{"category":749,"path":4384,"name":440,"line":308,"lines":4385},"verif\u002Fsubset-guard.ts",584,{"category":749,"path":4387,"name":440,"line":308,"lines":3750},"verif\u002Fterms.ts",{"category":749,"path":4389,"name":440,"line":308,"lines":4390},"scripts\u002Fupdate-storage-corpus.ts",472,{"category":749,"path":4392,"name":440,"line":308,"lines":4291},"src\u002Fpersona-anchor.ts",{"category":749,"path":4394,"name":440,"line":308,"lines":4395},"verif\u002Fsolve.ts",174,{"category":749,"path":4397,"name":440,"line":308,"lines":1280},"kernel\u002Fsrc\u002Fsearch\u002Falgorithms\u002Fsemantic.ts",{"category":749,"path":4399,"name":440,"line":308,"lines":367},"verif\u002Fexceptions.ts",{"category":749,"path":4401,"name":440,"line":308,"lines":1047},"scripts\u002Fcheck-dist-external-zod.mjs",{"category":749,"path":4403,"name":440,"line":308,"lines":1047},"verif\u002Fdrivers\u002Fresponses-ingress-driver.ts",{"\u002Ftrending\u002F2026-11-11":4405},{"views":389,"visits":389},null,1794624610879]