[{"data":1,"prerenderedAt":841},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-google-gemini\u002Fgemini-cli":249,"page-views-\u002Ftrending\u002Fgoogle-gemini\u002Fgemini-cli":839},[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",{"name":250,"url":251,"appearances":252,"latest":268},"google-gemini\u002Fgemini-cli","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-cli",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-10-25",6,108192,44,"cd1b45c2db0a5ea7b7fc3b67c1ba5879601d6005",2730,787054,5809,88008,11.18,2.97,1248,37.3,"E",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":347,"code":494,"health":715,"complexity":748,"deadCode":801},"2026-10-25T05:27:36.791Z","An open-source AI agent that brings the power of Gemini directly into your terminal.","TypeScript","main",3764,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},4036398,494984,12.26,[279,286,293,300,307,314,321,328,335,341],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"typescript",1732,579315,4162,62587,10.8,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"tsx",419,125329,1282,17914,14.29,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"markup",106,6582,183,2593,39.4,{"format":301,"sources":302,"lines":303,"clones":304,"duplicatedLines":305,"percentage":306},"txt",3,2408,84,1832,76.08,{"format":308,"sources":309,"lines":310,"clones":311,"duplicatedLines":312,"percentage":313},"javascript",75,13273,36,664,5,{"format":315,"sources":316,"lines":317,"clones":318,"duplicatedLines":319,"percentage":320},"yaml",73,9042,23,448,4.95,{"format":322,"sources":323,"lines":324,"clones":325,"duplicatedLines":326,"percentage":327},"json",54,9991,17,1647,16.48,{"format":329,"sources":330,"lines":331,"clones":332,"duplicatedLines":333,"percentage":334},"markdown",154,31120,15,244,0.78,{"format":336,"sources":337,"lines":338,"clones":302,"duplicatedLines":339,"percentage":340},"python",41,5836,45,0.77,{"format":342,"sources":343,"lines":344,"clones":302,"duplicatedLines":345,"percentage":346},"bash",29,1606,27,1.68,[348,375,419,443,450,458,467,476,483,489],{"format":294,"lines":349,"tokens":350,"first":351,"others":354,"copies":361,"excerpt":362,"kind":374},143,3668,{"name":352,"start":302,"end":353},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Initial-Rendering-should-render-settings-list-with-visual-indicators.snap.svg",145,[355,357,359],{"name":356,"start":302,"end":353},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-default-state-correctly.snap.svg",{"name":358,"start":302,"end":353},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-file-filtering-settings-configured-correctly.snap.svg",{"name":360,"start":302,"end":353},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-tools-and-security-settings-correctly.snap.svg",4,{"lines":363,"total":349},[364,365,366,367,368,369,370,371,372,373],"  text { font-family: Consolas, \"Courier New\", monospace; font-size: 14px; dominant-baseline: text-before-edge; white-space: pre; }","\u003C\u002Fstyle>","\u003Crect width=\"920\" height=\"751\" fill=\"#000000\" \u002F>","\u003Cg transform=\"translate(10, 10)\">","  \u003Ctext x=\"0\" y=\"2\" fill=\"#878787\" textLength=\"900\" lengthAdjust=\"spacingAndGlyphs\">╭──────────────────────────────────────────────────────────────────────────…","  \u003Ctext x=\"0\" y=\"19\" fill=\"#878787\" textLength=\"9\" lengthAdjust=\"spacingAndGlyphs\">│\u003C\u002Ftext>","  \u003Ctext x=\"891\" y=\"19\" fill=\"#878787\" textLength=\"9\" lengthAdjust=\"spacingAndGlyphs\">│\u003C\u002Ftext>","  \u003Ctext x=\"0\" y=\"36\" fill=\"#878787\" textLength=\"9\" lengthAdjust=\"spacingAndGlyphs\">│\u003C\u002Ftext>","  \u003Ctext x=\"27\" y=\"36\" fill=\"#ffffff\" textLength=\"99\" lengthAdjust=\"spacingAndGlyphs\" font-weight=\"bold\">&gt; Settings \u003C\u002Ftext>","  \u003Ctext x=\"891\" y=\"36\" fill=\"#878787\" textLength=\"9\" lengthAdjust=\"spacingAndGlyphs\">│\u003C\u002Ftext>","tests",{"format":301,"lines":376,"tokens":377,"first":378,"others":382,"copies":332,"excerpt":407,"kind":418},20,251,{"name":379,"start":380,"end":381},"packages\u002Fvscode-ide-companion\u002FNOTICES.txt",11,30,[383,386,389,392,395,398,401,404],{"name":379,"start":384,"end":385},38,58,{"name":379,"start":387,"end":388},94,112,{"name":379,"start":390,"end":391},273,292,{"name":379,"start":393,"end":394},482,502,{"name":379,"start":396,"end":397},768,787,{"name":379,"start":399,"end":400},797,816,{"name":379,"start":402,"end":403},947,968,{"name":379,"start":405,"end":406},1095,1114,{"lines":408,"total":376},[409,410,411,412,413,414,415,416,417,415],"Permission is hereby granted, free of charge, to any person obtaining a copy","of this software and associated documentation files (the \"Software\"), to deal","in the Software without restriction, including without limitation the rights","to use, copy, modify, merge, publish, distribute, sublicense, and\u002For sell","copies of the Software, and to permit persons to whom the Software is","furnished to do so, subject to the following conditions:","","The above copyright notice and this permission notice shall be included in all","copies or substantial portions of the Software.","docs",{"format":280,"lines":420,"tokens":421,"first":422,"others":426,"copies":431,"excerpt":432,"kind":374},573,2723,{"name":423,"start":424,"end":425},"packages\u002Fcli\u002Fsrc\u002FnonInteractiveCli.test.ts",1488,2060,[427],{"name":428,"start":429,"end":430},"packages\u002Fcli\u002Fsrc\u002FnonInteractiveCliAgentSession.test.ts",1454,2026,2,{"lines":433,"total":420},[434,415,435,436,437,438,439,440,441,442],"});","it('should throw FatalInputError if a command requires confirmation', async () => {","  const mockCommand = {","    name: 'confirm',","    description: 'a command that needs confirmation',","    action: vi.fn().mockResolvedValue({","      type: 'confirm_shell_commands',","      commands: ['rm -rf \u002F'],","    }),",{"format":294,"lines":444,"tokens":445,"first":446,"others":447,"copies":431,"kind":374},105,2552,{"name":352,"start":337,"end":353},[448],{"name":449,"start":337,"end":353},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-accessibility-settings-enabled-correctly.snap.svg",{"format":294,"lines":451,"tokens":452,"first":453,"others":454,"copies":302,"kind":374},39,1115,{"name":352,"start":302,"end":337},[455,456],{"name":449,"start":302,"end":337},{"name":457,"start":302,"end":337},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-various-boolean-settings-enabled-correctly.snap.svg",{"format":294,"lines":459,"tokens":460,"first":461,"others":462,"copies":302,"kind":374},37,1069,{"name":352,"start":302,"end":451},[463,465],{"name":464,"start":302,"end":451},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-all-boolean-settings-disabled-correctly.snap.svg",{"name":466,"start":302,"end":451},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FSettingsDialog-SettingsDialog-Snapshot-Tests-should-render-mixed-boolean-and-number-settings-correctly.snap.svg",{"format":294,"lines":468,"tokens":469,"first":470,"others":473,"copies":431,"kind":374},87,2126,{"name":471,"start":313,"end":472},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FFooterConfigDialog--FooterConfigDialog-highlights-the-active-item-in-the-preview.snap.svg",91,[474],{"name":475,"start":313,"end":472},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002F__snapshots__\u002FFooterConfigDialog--FooterConfigDialog-updates-the-preview-when-Show-footer-labels-is-toggled-off.snap.svg",{"format":294,"lines":477,"tokens":478,"first":479,"others":481,"copies":431,"kind":374},86,2117,{"name":466,"start":480,"end":353},60,[482],{"name":457,"start":480,"end":353},{"format":294,"lines":304,"tokens":484,"first":485,"others":487,"copies":431,"kind":374},2053,{"name":464,"start":486,"end":353},62,[488],{"name":466,"start":486,"end":353},{"format":294,"lines":304,"tokens":490,"first":491,"others":492,"copies":431,"kind":374},2052,{"name":352,"start":486,"end":353},[493],{"name":464,"start":486,"end":353},{"sources":265,"lines":495,"tokens":496,"clones":497,"duplicatedLines":498,"duplicatedTokens":499,"percentage":264,"percentageTokens":500,"formats":501,"topClones":529,"generated":713},311591,1327033,525,9243,41582,3.13,[502,508,513,519,522,525],{"format":280,"sources":503,"lines":504,"clones":505,"duplicatedLines":506,"percentage":507},940,246959,457,8198,3.32,{"format":287,"sources":509,"lines":510,"clones":480,"duplicatedLines":511,"percentage":512},203,47192,925,1.96,{"format":308,"sources":514,"lines":515,"clones":516,"duplicatedLines":517,"percentage":518},65,11573,8,120,1.04,{"format":336,"sources":343,"lines":520,"clones":521,"duplicatedLines":521,"percentage":521},4225,0,{"format":342,"sources":523,"lines":524,"clones":521,"duplicatedLines":521,"percentage":521},10,1074,{"format":526,"sources":527,"lines":528,"clones":521,"duplicatedLines":521,"percentage":521},"csharp",1,568,[530,586,622,643,654,664,673,684,694,702],{"format":280,"lines":531,"tokens":385,"first":532,"others":536,"copies":561,"excerpt":562,"excerptSecond":572,"kind":585},13,{"name":533,"start":534,"end":535},"packages\u002Fcore\u002Fsrc\u002Ftelemetry\u002Floggers.ts",127,139,[537,540,543,546,549,552,555,558],{"name":533,"start":538,"end":539},186,197,{"name":533,"start":541,"end":542},201,212,{"name":533,"start":544,"end":545},248,259,{"name":533,"start":547,"end":548},352,363,{"name":533,"start":550,"end":551},382,393,{"name":533,"start":553,"end":554},397,408,{"name":533,"start":556,"end":557},417,428,{"name":533,"start":559,"end":560},432,443,21,{"lines":563,"total":531},[564,565,566,415,567,568,569,570,571,434],"ClearcutLogger.getInstance(config)?.logNewPromptEvent(event);","bufferTelemetryEvent(() => {","  const logger = logs.getLogger(SERVICE_NAME);","  const logRecord: LogRecord = {","    body: event.toLogBody(),","    attributes: event.toOpenTelemetryAttributes(config),","  };","  logger.emit(logRecord);",{"lines":573,"total":584},[574,575,576,577,578,579,580,581,582,583],"  ClearcutLogger.getInstance(config)?.logToolOutputTruncatedEvent(event);","  bufferTelemetryEvent(() => {","    const logger = logs.getLogger(SERVICE_NAME);","    const logRecord: LogRecord = {","      body: event.toLogBody(),","      attributes: event.toOpenTelemetryAttributes(config),","    };","    logger.emit(logRecord);","  });","}",12,"code",{"format":280,"lines":587,"tokens":588,"first":589,"others":591,"copies":616,"excerpt":617,"excerptSecond":619,"kind":585},9,52,{"name":533,"start":534,"end":590},135,[592,595,598,601,604,607,610,613],{"name":533,"start":593,"end":594},148,155,{"name":533,"start":596,"end":597},216,223,{"name":533,"start":599,"end":600},496,503,{"name":533,"start":602,"end":603},512,519,{"name":533,"start":605,"end":606},531,538,{"name":533,"start":608,"end":609},547,554,{"name":533,"start":611,"end":612},563,570,{"name":533,"start":614,"end":615},579,586,16,{"lines":618,"total":587},[564,565,566,415,567,568,569,570,571],{"lines":620,"total":516},[621,565,566,567,568,569,570,571],"ClearcutLogger.getInstance(config)?.logToolCallEvent(event);",{"format":280,"lines":623,"tokens":624,"first":625,"others":629,"copies":431,"excerpt":633,"kind":585},149,693,{"name":626,"start":627,"end":628},"packages\u002Fcli\u002Fsrc\u002FnonInteractiveCli.ts",88,236,[630],{"name":631,"start":627,"end":632},"packages\u002Fcli\u002Fsrc\u002FnonInteractiveCliAgentSession.ts",234,{"lines":634,"total":623},[635,636,637,638,639,640,641,642,582,415],"return promptIdContext.run(prompt_id, async () => {","  const consolePatcher = new ConsolePatcher({","    stderr: true,","    interactive: false,","    debugMode: config.getDebugMode(),","    onNewMessage: (msg) => {","      coreEvents.emitConsoleLog(msg.type, msg.content);","    },",{"format":280,"lines":644,"tokens":645,"first":646,"others":649,"copies":431,"kind":585},169,498,{"name":647,"start":297,"end":648},"packages\u002Fcore\u002Fsrc\u002Ftools\u002Fdefinitions\u002Fmodel-family-sets\u002Fdefault-legacy.ts",351,[650],{"name":651,"start":652,"end":653},"packages\u002Fcore\u002Fsrc\u002Ftools\u002Fdefinitions\u002Fmodel-family-sets\u002Fgemini-3.ts",190,358,{"format":280,"lines":655,"tokens":656,"first":657,"others":660,"copies":431,"kind":585},200,383,{"name":647,"start":658,"end":659},438,637,[661],{"name":651,"start":662,"end":663},421,620,{"format":280,"lines":665,"tokens":666,"first":667,"others":669,"copies":431,"kind":585},99,368,{"name":626,"start":628,"end":668},334,[670],{"name":631,"start":671,"end":672},235,328,{"format":280,"lines":674,"tokens":675,"first":676,"others":680,"copies":431,"kind":585},66,329,{"name":677,"start":678,"end":679},"packages\u002Ftest-utils\u002Fsrc\u002Ftest-rig.ts",742,807,[681],{"name":677,"start":682,"end":683},913,973,{"format":280,"lines":685,"tokens":686,"first":687,"others":690,"copies":431,"kind":585},93,286,{"name":647,"start":688,"end":689},638,730,[691],{"name":651,"start":692,"end":693},621,713,{"format":280,"lines":459,"tokens":671,"first":695,"others":698,"copies":431,"kind":585},{"name":696,"start":632,"end":697},"evals\u002Fsubagents.eval.ts",270,[699],{"name":696,"start":700,"end":701},285,321,{"format":280,"lines":703,"tokens":704,"first":705,"others":709,"copies":431,"kind":585},48,229,{"name":706,"start":707,"end":708},"packages\u002Fcore\u002Fsrc\u002Fsandbox\u002Futils\u002FcommandSafety.ts",384,431,[710],{"name":706,"start":711,"end":712},505,553,{"files":521,"minified":521,"sample":714},[],{"score":266,"grade":267,"size":716,"dimensions":720},{"lines":717,"files":718,"class":719},725090,2270,"L",[721,734,742],{"id":722,"source":723,"value":724,"adjusted":724,"lines":725,"halfLife":726,"formats":727,"excluded":730,"weight":527,"score":733},"duplication","jscpd",11.2,81174,8.5,[280,287,308,336,342,526,728,729],"docker","makefile",[294,731,732],"text","data",40.2,{"id":735,"source":723,"value":736,"adjusted":736,"lines":737,"halfLife":738,"coverage":739,"weight":740,"score":741},"dead-code",13.5,97636,7.5,99.9,0.999,28.8,{"id":743,"source":723,"value":385,"adjusted":744,"lines":745,"halfLife":746,"weight":527,"score":747},"complexity",57.9,420357,50,44.8,{"total":749,"mean":750,"files":751},82356,36.3,[752,757,762,767,771,776,781,786,791,796],{"path":753,"complexity":754,"lines":755,"bytes":756},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002Fshared\u002Ftext-buffer.ts",811,4285,131887,{"path":758,"complexity":759,"lines":760,"bytes":761},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fhooks\u002FuseGeminiStream.test.tsx",733,5287,162204,{"path":763,"complexity":764,"lines":765,"bytes":766},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002FInputPrompt.test.tsx",673,5567,165936,{"path":768,"complexity":420,"lines":769,"bytes":770},"packages\u002Fcli\u002Fsrc\u002Fui\u002FAppContainer.test.tsx",4279,138460,{"path":772,"complexity":773,"lines":774,"bytes":775},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002Fshared\u002Ftext-buffer.test.ts",541,3624,123544,{"path":777,"complexity":778,"lines":779,"bytes":780},"packages\u002Fcore\u002Fsrc\u002Fcore\u002FgeminiChat.test.ts",530,6031,192060,{"path":782,"complexity":783,"lines":784,"bytes":785},"packages\u002Fcli\u002Fsrc\u002Fui\u002FAppContainer.tsx",523,3195,98012,{"path":787,"complexity":788,"lines":789,"bytes":790},"packages\u002Fcore\u002Fsrc\u002Fconfig\u002Fconfig.ts",477,4261,135234,{"path":792,"complexity":793,"lines":794,"bytes":795},"packages\u002Fcli\u002Fsrc\u002Fconfig\u002Fsettings.test.ts",423,4529,155479,{"path":797,"complexity":798,"lines":799,"bytes":800},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fhooks\u002FuseGeminiStream.ts",422,2466,81972,{"percentage":802,"findings":420,"files":803,"byCategory":804,"largest":813},13.48,2313,[805,807,810],{"category":806,"count":394},"unused-file",{"category":808,"count":809},"unused-export",46,{"category":811,"count":812},"unused-symbol",25,[814,815,816,819,822,825,828,831,834,837],{"category":806,"path":782,"name":415,"line":527,"lines":784},{"category":806,"path":797,"name":415,"line":527,"lines":799},{"category":806,"path":817,"name":415,"line":527,"lines":818},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002FInputPrompt.tsx",1939,{"category":806,"path":820,"name":415,"line":527,"lines":821},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fhooks\u002Fvim.ts",1536,{"category":806,"path":823,"name":415,"line":527,"lines":824},"packages\u002Fcli\u002Fsrc\u002Facp\u002FacpSession.ts",1529,{"category":806,"path":826,"name":415,"line":527,"lines":827},"packages\u002Fcli\u002Fsrc\u002Futils\u002Fsandbox.ts",1509,{"category":806,"path":829,"name":415,"line":527,"lines":830},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002FInboxDialog.tsx",1446,{"category":806,"path":832,"name":415,"line":527,"lines":833},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002FAskUserDialog.tsx",1302,{"category":806,"path":835,"name":415,"line":527,"lines":836},"packages\u002Fcli\u002Fsrc\u002Fconfig\u002Fconfig.ts",1195,{"category":806,"path":838,"name":415,"line":527,"lines":452},"packages\u002Fcli\u002Fsrc\u002Fui\u002Fcomponents\u002Fmessages\u002FToolConfirmationMessage.tsx",{"\u002Ftrending\u002Fgoogle-gemini\u002Fgemini-cli":840},{"views":521,"visits":521},1792911672810]