[{"data":1,"prerenderedAt":511},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-TencentCloud\u002FOctop":188},[4,50,82,99,135,157,173,178,183],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30,35,40,45],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration","i-lucide-settings",{"title":26,"path":27,"stem":28,"icon":29},"Supported Formats","\u002Fgetting-started\u002Fsupported-formats","1.getting-started\u002F5.supported-formats","i-lucide-file-code",{"title":31,"path":32,"stem":33,"icon":34},"Agent Skill","\u002Fgetting-started\u002Fagent-skill","1.getting-started\u002F6.agent-skill","i-lucide-cpu",{"title":36,"path":37,"stem":38,"icon":39},"Changelog","\u002Fgetting-started\u002Fchangelog","1.getting-started\u002F7.changelog","i-lucide-scroll-text",{"title":41,"path":42,"stem":43,"icon":44},"Migrating from v4 to v5","\u002Fgetting-started\u002Fmigration","1.getting-started\u002F8.migration","i-lucide-arrow-right-left",{"title":46,"path":47,"stem":48,"icon":49},"jscpd v4 (TypeScript)","\u002Fgetting-started\u002Fv4","1.getting-started\u002F9.v4","i-simple-icons-typescript",{"title":51,"path":52,"stem":53,"children":54,"icon":6},"Guides","\u002Fguides","2.guides\u002F1.index",[55,57,62,67,72,77],{"title":51,"path":52,"stem":53,"icon":56},"i-lucide-book-open",{"title":58,"path":59,"stem":60,"icon":61},"Types of Code Clones","\u002Fguides\u002Fclone-types","2.guides\u002F2.clone-types","i-lucide-copy",{"title":63,"path":64,"stem":65,"icon":66},"How Detection Works","\u002Fguides\u002Fhow-detection-works","2.guides\u002F3.how-detection-works","i-lucide-scan-search",{"title":68,"path":69,"stem":70,"icon":71},"Duplication Trend over Git History","\u002Fguides\u002Fhistory","2.guides\u002F4.history","i-lucide-chart-no-axes-combined",{"title":73,"path":74,"stem":75,"icon":76},"Project Dashboard","\u002Fguides\u002Fdashboard","2.guides\u002F5.dashboard","i-lucide-layout-dashboard",{"title":78,"path":79,"stem":80,"icon":81},"Project Health Score","\u002Fguides\u002Fhealth","2.guides\u002F6.health","i-lucide-heart-pulse",{"title":83,"path":84,"stem":85,"children":86,"icon":6},"CI & Hooks","\u002Fci-and-hooks","3.ci-and-hooks\u002F1.index",[87,89,94],{"title":83,"path":84,"stem":85,"icon":88},"i-lucide-git-pull-request",{"title":90,"path":91,"stem":92,"icon":93},"Use jscpd in CI","\u002Fci-and-hooks\u002Fci","3.ci-and-hooks\u002F2.ci","i-lucide-github",{"title":95,"path":96,"stem":97,"icon":98},"Use jscpd in Pre-Commit Hook","\u002Fci-and-hooks\u002Fpre-commit","3.ci-and-hooks\u002F3.pre-commit","i-lucide-git-commit",{"title":100,"path":101,"stem":102,"children":103,"icon":105},"Reporters","\u002Freporters","4.reporters\u002F1.index",[104,106,110,115,120,125,130],{"title":100,"path":101,"stem":102,"icon":105},"i-lucide-file-chart-column",{"title":107,"path":108,"stem":109,"icon":29},"HTML Reporter","\u002Freporters\u002Fhtml","4.reporters\u002F2.html",{"title":111,"path":112,"stem":113,"icon":114},"JSON Reporter","\u002Freporters\u002Fjson","4.reporters\u002F3.json","i-lucide-braces",{"title":116,"path":117,"stem":118,"icon":119},"Badge Reporter","\u002Freporters\u002Fbadge","4.reporters\u002F4.badge","i-lucide-award",{"title":121,"path":122,"stem":123,"icon":124},"SARIF Reporter","\u002Freporters\u002Fsarif","4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":126,"path":127,"stem":128,"icon":129},"CodeClimate \u002F GitLab Reporter","\u002Freporters\u002Fcodeclimate","4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":131,"path":132,"stem":133,"icon":134},"OpenMetrics Reporter","\u002Freporters\u002Fopenmetrics","4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":136,"path":137,"stem":138,"children":139,"icon":6},"Benchmarks","\u002Fbenchmarks","5.benchmarks\u002F1.index",[140,142,147,152],{"title":136,"path":137,"stem":138,"icon":141},"i-lucide-gauge",{"title":143,"path":144,"stem":145,"icon":146},"Detection Speed","\u002Fbenchmarks\u002Fdetection-speed","5.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":148,"path":149,"stem":150,"icon":151},"Multi-Format Detection","\u002Fbenchmarks\u002Fcross-format","5.benchmarks\u002F3.cross-format","i-lucide-layers",{"title":153,"path":154,"stem":155,"icon":156},"AI Token Efficiency","\u002Fbenchmarks\u002Fai-token-efficiency","5.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":158,"path":159,"stem":160,"children":161,"icon":163},"API","\u002Fapi","6.api\u002F1.index",[162,164,169],{"title":158,"path":159,"stem":160,"icon":163},"i-lucide-code",{"title":165,"path":166,"stem":167,"icon":168},"Rust Crates (v5)","\u002Fapi\u002Fcore","6.api\u002F2.core","i-lucide-box",{"title":170,"path":171,"stem":172,"icon":168},"MCP Server","\u002Fapi\u002Fmcp-server","6.api\u002F4.mcp-server",{"title":174,"path":175,"stem":176,"icon":177},"Trending","\u002Ftrending","7.trending","i-lucide-trending-up",{"title":179,"path":180,"stem":181,"icon":182},"Research","\u002Fresearch","8.research","i-lucide-graduation-cap",{"title":184,"path":185,"stem":186,"icon":187},"Articles","\u002Farticles","9.articles","i-lucide-newspaper",{"name":189,"url":190,"appearances":191,"latest":217},"TencentCloud\u002FOctop","https:\u002F\u002Fgithub.com\u002FTencentCloud\u002FOctop",[192,204],{"date":193,"rank":194,"stars":195,"starsToday":196,"headSha":197,"sources":198,"lines":199,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":203,"healthGrade":203},"2026-09-18",12,3599,367,"ae65fe4e26854d2eaf751cee89341ec5d71569f0",3707,749578,1616,31299,4.18,null,{"date":205,"rank":206,"stars":207,"starsToday":208,"headSha":209,"sources":210,"lines":211,"clones":212,"duplicatedLines":213,"percentage":214,"healthScore":215,"healthGrade":216},"2026-09-19",6,4026,569,"757fd12e5dcae7f9303dbfbbf6321a6986694a8b",3789,761668,1730,32325,4.24,65.5,"C",{"date":205,"generatedAt":218,"name":189,"url":190,"description":219,"language":220,"stars":207,"starsToday":208,"defaultBranch":221,"headSha":209,"durationMs":222,"total":223,"formats":227,"topClones":297,"health":373,"complexity":409,"deadCode":463},"2026-09-19T05:26:25.682Z","A smarter, self-hosted AI assistant — multi-user, multi-agent.","Python","main",3168,{"sources":210,"lines":211,"tokens":224,"clones":212,"duplicatedLines":213,"duplicatedTokens":225,"percentage":214,"percentageTokens":226},4065607,179198,4.41,[228,235,242,249,256,263,270,277,283,290],{"format":229,"sources":230,"lines":231,"clones":232,"duplicatedLines":233,"percentage":234},"python",1031,213260,766,13717,6.43,{"format":236,"sources":237,"lines":238,"clones":239,"duplicatedLines":240,"percentage":241},"tsx",387,108196,275,3364,3.11,{"format":243,"sources":244,"lines":245,"clones":246,"duplicatedLines":247,"percentage":248},"less",116,37924,204,3025,7.98,{"format":250,"sources":251,"lines":252,"clones":253,"duplicatedLines":254,"percentage":255},"typescript",449,57392,117,2237,3.9,{"format":257,"sources":258,"lines":259,"clones":260,"duplicatedLines":261,"percentage":262},"markup",70,5523,77,558,10.1,{"format":264,"sources":265,"lines":266,"clones":267,"duplicatedLines":268,"percentage":269},"markdown",793,178922,58,1767,0.99,{"format":271,"sources":272,"lines":273,"clones":274,"duplicatedLines":275,"percentage":276},"bash",173,34602,37,2627,7.59,{"format":278,"sources":279,"lines":280,"clones":279,"duplicatedLines":281,"percentage":282},"javascript",33,7243,754,10.41,{"format":284,"sources":285,"lines":286,"clones":287,"duplicatedLines":288,"percentage":289},"sql",32,2863,31,559,19.52,{"format":291,"sources":292,"lines":293,"clones":294,"duplicatedLines":295,"percentage":296},"css",15,3093,30,426,13.77,[298,306,310,319,326,330,339,348,357,366],{"format":229,"lines":299,"tokens":300,"firstFile":301,"secondFile":304},797,3868,{"name":302,"start":303,"end":299},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",1,{"name":305,"start":303,"end":299},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"format":229,"lines":299,"tokens":300,"firstFile":307,"secondFile":308},{"name":302,"start":303,"end":299},{"name":309,"start":303,"end":299},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"format":271,"lines":311,"tokens":312,"firstFile":313,"secondFile":317},609,2992,{"name":314,"start":315,"end":316},"scripts\u002Finstall-octop.sh",88,696,{"name":318,"start":315,"end":316},"scripts\u002Finstall.sh",{"format":229,"lines":320,"tokens":321,"firstFile":322,"secondFile":324},418,1902,{"name":323,"start":303,"end":320},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"name":325,"start":303,"end":320},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"format":229,"lines":320,"tokens":321,"firstFile":327,"secondFile":328},{"name":323,"start":303,"end":320},{"name":329,"start":303,"end":320},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"format":271,"lines":331,"tokens":332,"firstFile":333,"secondFile":336},372,1494,{"name":314,"start":334,"end":335},698,1069,{"name":318,"start":337,"end":338},733,1104,{"format":229,"lines":340,"tokens":341,"firstFile":342,"secondFile":346},190,1472,{"name":343,"start":344,"end":345},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fpptx\u002Fscripts\u002Foffice\u002Fsoffice.py",27,216,{"name":347,"start":344,"end":345},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fxlsx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"format":229,"lines":349,"tokens":350,"firstFile":351,"secondFile":355},160,1331,{"name":352,"start":353,"end":354},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fdocx\u002Fscripts\u002Foffice\u002Fsoffice.py",59,218,{"name":343,"start":356,"end":345},57,{"format":271,"lines":358,"tokens":359,"firstFile":360,"secondFile":363},325,1185,{"name":314,"start":361,"end":362},747,1071,{"name":318,"start":364,"end":365},782,1107,{"format":229,"lines":367,"tokens":368,"firstFile":369,"secondFile":371},262,1080,{"name":370,"start":303,"end":367},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fdocx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"name":372,"start":303,"end":367},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Foffice-automation\u002Fskills\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"score":215,"grade":216,"size":374,"dimensions":378},{"lines":375,"files":376,"class":377},416570,2095,"L",[379,394,402],{"id":380,"source":381,"value":382,"adjusted":383,"lines":384,"halfLife":385,"formats":386,"excluded":390,"weight":303,"score":393},"duplication","jscpd",5.1,5,18840,8.5,[229,236,250,271,278,387,284,388,389],"go","powershell","perl",[257,391,392],"text","data",66.3,{"id":395,"source":381,"value":396,"adjusted":396,"lines":397,"halfLife":398,"coverage":399,"weight":400,"score":401},"dead-code",2,7166,7.5,85.7,0.857,83,{"id":403,"source":381,"value":404,"adjusted":405,"lines":406,"halfLife":407,"weight":303,"score":408},"complexity",46.2,46.1,192617,50,52.8,{"total":410,"mean":411,"files":412},61248,29.2,[413,418,423,428,433,438,443,448,453,458],{"path":414,"complexity":415,"lines":416,"bytes":417},"src\u002Foctop\u002Finfra\u002Fagents\u002Fmanager.py",649,2962,125415,{"path":419,"complexity":420,"lines":421,"bytes":422},"dashboard\u002Fsrc\u002Fpages\u002FKnowledgeBases\u002Findex.tsx",636,3455,124891,{"path":424,"complexity":425,"lines":426,"bytes":427},"dashboard\u002Fsrc\u002Fpages\u002FAgent\u002FConnectors\u002Findex.tsx",531,2340,80929,{"path":429,"complexity":430,"lines":431,"bytes":432},"dashboard\u002Fsrc\u002Fpages\u002FChat\u002Fhooks\u002FchatStore.ts",530,2253,68730,{"path":434,"complexity":435,"lines":436,"bytes":437},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Fclinical-learning-subscription\u002Fscripts\u002Fclinical_profile.py",458,2608,101485,{"path":439,"complexity":440,"lines":441,"bytes":442},"src\u002Foctop\u002Finfra\u002Fskills\u002Fskills_hub.py",412,1493,46335,{"path":444,"complexity":445,"lines":446,"bytes":447},"src\u002Foctop\u002Finfra\u002Fagents\u002Fexperts\u002Flibrary\u002Fmeituan-living-assistant\u002Fskills\u002Fmeituan-deals\u002Fscripts\u002Frun.js",344,1275,47231,{"path":449,"complexity":450,"lines":451,"bytes":452},"dashboard\u002Fsrc\u002Fpages\u002FAgent\u002FChannels\u002Fcomponents\u002FChannelDrawer.tsx",337,1890,56915,{"path":454,"complexity":455,"lines":456,"bytes":457},"dashboard\u002Fsrc\u002Fpages\u002FAgent\u002FWorkspace\u002Fcomponents\u002FWorkspaceDrawer.tsx",333,1556,51089,{"path":459,"complexity":460,"lines":461,"bytes":462},"dashboard\u002Fsrc\u002Fpages\u002FChat\u002Fhooks\u002FuseChat.ts",322,1160,36872,{"percentage":464,"findings":465,"files":466,"byCategory":467,"largest":480},2.01,150,1875,[468,471,474,477],{"category":469,"count":470},"unused-file",52,{"category":472,"count":473},"unused-export",41,{"category":475,"count":476},"unused-symbol",46,{"category":478,"count":479},"unused-import",11,[481,485,488,491,494,497,500,503,506,509],{"category":469,"path":482,"name":483,"line":303,"lines":484},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fchannel.py","",571,{"category":469,"path":486,"name":483,"line":303,"lines":487},"src\u002Foctop\u002Fcli\u002Fsupport\u002Foffline_ops.py",555,{"category":469,"path":489,"name":483,"line":303,"lines":490},"dashboard\u002Fsrc\u002Fcomponents\u002FBackendBuilder.tsx",432,{"category":469,"path":492,"name":483,"line":303,"lines":493},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fchats.py",364,{"category":469,"path":495,"name":483,"line":303,"lines":496},"src\u002Foctop\u002Fcli\u002Frepl\u002Frender.py",321,{"category":469,"path":498,"name":483,"line":303,"lines":499},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fmodels.py",244,{"category":469,"path":501,"name":483,"line":303,"lines":502},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fagent.py",237,{"category":469,"path":504,"name":483,"line":303,"lines":505},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fservice.py",214,{"category":469,"path":507,"name":483,"line":303,"lines":508},"src\u002Foctop\u002Fcli\u002Fcommands\u002Fbackup.py",188,{"category":469,"path":510,"name":483,"line":303,"lines":272},"dashboard\u002Fsrc\u002Fcomponents\u002FMarkdownCopy\u002FMarkdownCopy.tsx",1790314228178]