[{"data":1,"prerenderedAt":3361},["ShallowReactive",2],{"navigation_docs":3,"trending-day-2026-10-29":249,"page-views-\u002Ftrending\u002F2026-10-29":3359,"trending-week-null":2510},[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":342},"2026-10-29","2026-10-29T05:23:29.711Z","github-trending-daily","5.4.2",{"repos":255,"sources":256,"lines":257,"tokens":258,"clones":259,"duplicatedLines":260,"duplicatedTokens":261,"percentage":262,"percentageTokens":263,"avgPercentage":264,"medianPercentage":265,"mostDuplicated":266,"cleanest":270,"mostClones":274,"codeRepos":278,"codeSources":279,"codeLines":280,"codeClones":281,"codeDuplicatedLines":282,"codePercentage":283,"codeMedianPercentage":284,"codeMostDuplicated":285,"codeCleanest":287,"generatedFiles":291,"avgHealth":292,"healthiest":293,"leastHealthy":297,"languages":301},8,12569,2520624,17763068,6429,83141,698559,3.3,3.93,8.47,3.14,{"name":267,"clones":268,"percentage":269},"togg53192-cmd\u002Fjailbreaks",65,33.42,{"name":271,"clones":272,"percentage":273},"xiaolai\u002Fthe-craft-of-selfteaching",37,2.34,{"name":275,"clones":276,"percentage":277},"nightly-labs\u002Fopenbot",2866,3.54,4,6680,1497076,2855,35531,2.37,1.32,{"name":275,"clones":286,"percentage":265},2001,{"name":288,"clones":289,"percentage":290},"JetBrains\u002Fthinkrail",108,0.75,15,52.89,{"name":294,"score":295,"grade":296},"expo\u002Fskills",72.7,"B",{"name":298,"score":299,"grade":300},"hmjz100\u002FLinkSwift",10.9,"E",[302,309,316,322,328,332,338],{"language":303,"repos":304,"clones":305,"lines":306,"duplicatedLines":307,"percentage":308},"TypeScript",2,3913,1473189,49096,3.33,{"language":310,"repos":311,"clones":312,"lines":313,"duplicatedLines":314,"percentage":315},"Python",1,1774,914554,24038,2.63,{"language":317,"repos":311,"clones":318,"lines":319,"duplicatedLines":320,"percentage":321},"CSS",495,64750,5347,8.26,{"language":323,"repos":311,"clones":324,"lines":325,"duplicatedLines":326,"percentage":327},"JavaScript",86,10270,1280,12.46,{"language":329,"repos":311,"clones":268,"lines":330,"duplicatedLines":331,"percentage":269},"Other",6451,2156,{"language":333,"repos":311,"clones":334,"lines":335,"duplicatedLines":336,"percentage":337},"Shell",59,29200,704,2.41,{"language":339,"repos":311,"clones":272,"lines":340,"duplicatedLines":341,"percentage":273},"Jupyter Notebook",22210,520,[343,960,1501,1958,2507,2630,2901,3197],{"name":288,"url":344,"description":345,"language":303,"stars":346,"starsToday":347,"defaultBranch":348,"headSha":349,"durationMs":350,"total":351,"formats":360,"topClones":418,"code":678,"health":837,"complexity":869,"deadCode":921},"https:\u002F\u002Fgithub.com\u002FJetBrains\u002Fthinkrail","Vibe code with pi in a lightweight, real IDE that customises itself around the way you work — The Vibe You Need",5293,1068,"main","940d15ca5fb0838b9396832befd9ad60d6e51e66",2940,{"sources":352,"lines":353,"tokens":354,"clones":355,"duplicatedLines":356,"duplicatedTokens":357,"percentage":358,"percentageTokens":359},1987,376138,2918960,1047,10273,72863,2.73,2.5,[361,367,374,381,387,394,399,405,410,415],{"format":362,"sources":363,"lines":364,"clones":365,"duplicatedLines":366,"percentage":262},"typescript",1310,260439,889,8584,{"format":368,"sources":369,"lines":370,"clones":371,"duplicatedLines":372,"percentage":373},"css",10,4865,69,546,11.22,{"format":375,"sources":376,"lines":377,"clones":378,"duplicatedLines":379,"percentage":380},"tsx",331,63228,57,642,1.02,{"format":382,"sources":268,"lines":383,"clones":384,"duplicatedLines":385,"percentage":386},"yaml",1376,11,123,8.94,{"format":388,"sources":389,"lines":390,"clones":391,"duplicatedLines":392,"percentage":393},"json",52,13619,9,236,1.73,{"format":395,"sources":291,"lines":396,"clones":255,"duplicatedLines":397,"percentage":398},"html",1090,99,9.08,{"format":400,"sources":401,"lines":402,"clones":403,"duplicatedLines":272,"percentage":404},"markdown",157,29232,3,0.13,{"format":406,"sources":304,"lines":407,"clones":311,"duplicatedLines":408,"percentage":409},"diff",151,6,3.97,{"format":411,"sources":412,"lines":413,"clones":414,"duplicatedLines":414,"percentage":414},"bash",7,863,0,{"format":416,"sources":291,"lines":417,"clones":414,"duplicatedLines":414,"percentage":414},"astro",501,[419,462,505,538,556,572,583,614,633,652],{"format":362,"lines":408,"tokens":420,"copies":421,"first":422,"others":425,"excerpt":450,"excerptSecond":458},62,19,{"name":423,"start":424,"end":401},"packages\u002Fserver\u002Fsrc\u002Ftodos\u002Fartifacts.test.ts",152,[426,429,432,435,438,441,444,447],{"name":423,"start":427,"end":428},188,193,{"name":423,"start":430,"end":431},258,267,{"name":423,"start":433,"end":434},306,311,{"name":423,"start":436,"end":437},336,341,{"name":423,"start":439,"end":440},371,376,{"name":423,"start":442,"end":443},385,390,{"name":423,"start":445,"end":446},506,511,{"name":423,"start":448,"end":449},572,577,{"lines":451,"total":408},[452,453,454,455,456,457],"test(\"done attaches the delta of changes since the in_progress baseline\", async () => {","    const { store, root } = tempStore();","    try {","        const todo = store.add({ title: \"step\" });","        store.update(todo.id, { status: \"in_progress\" });","        await reconcileChangeArtifacts(store, root, SESSION, async () => [\"a.ts\"]);",{"lines":459,"total":408},[460,453,454,455,456,461],"test(\"a done reconcile cannot commit an item reopened during its git read\", async () => {","        await reconcileChangeArtifacts(store, root, SESSION, async () => []);",{"format":362,"lines":391,"tokens":463,"copies":255,"first":464,"others":468,"excerpt":490,"excerptSecond":501},67,{"name":465,"start":466,"end":467},"packages\u002Fserver\u002Fsrc\u002Fagent\u002Fextensions.test.ts",173,181,[469,472,475,478,481,484,487],{"name":465,"start":470,"end":471},221,228,{"name":465,"start":473,"end":474},310,317,{"name":465,"start":476,"end":477},347,354,{"name":465,"start":479,"end":480},381,388,{"name":465,"start":482,"end":483},430,437,{"name":465,"start":485,"end":486},454,461,{"name":465,"start":488,"end":489},512,519,{"lines":491,"total":391},[492,493,494,495,496,497,498,499,500],"const root = mkdtempSync(join(tmpdir(), \"thinkrail-skill-trust-\"));","const project = join(root, \"project\");","const home = join(root, \"home\");","const agentDir = join(root, \"pi-agent\");","mkdirSync(project, { recursive: true });","mkdirSync(home, { recursive: true });","mkdirSync(agentDir, { recursive: true });","","const original = Object.fromEntries(",{"lines":502,"total":255},[503,493,494,495,496,497,498,504],"const root = mkdtempSync(join(tmpdir(), \"thinkrail-skill-groups-\"));","const restore = stubSkillEnv(home, agentDir);",{"format":368,"lines":391,"tokens":506,"copies":408,"first":507,"others":511,"excerpt":524,"excerptSecond":535},85,{"name":508,"start":509,"end":510},"apps\u002Fweb\u002Fsrc\u002Fstyles\u002Fgenerated\u002Ftypography.css",162,170,[512,515,518,520,522],{"name":508,"start":513,"end":514},243,251,{"name":508,"start":516,"end":517},290,298,{"name":508,"start":439,"end":519},379,{"name":508,"start":521,"end":480},380,{"name":508,"start":523,"end":482},422,{"lines":525,"total":391},[526,527,528,529,530,531,532,533,534],"    font-family: var(--tr-font-family-interface);","    font-size: var(--tr-font-size-s14);","    font-weight: var(--tr-font-weight-light);","    line-height: var(--tr-line-height-reading);","    letter-spacing: var(--tr-letter-spacing-normal);","    text-transform: none;","    font-style: normal;","}",".tr-text-ui {",{"lines":536,"total":391},[526,527,528,529,530,531,532,533,537],".tr-code-text {",{"format":368,"lines":369,"tokens":539,"copies":540,"first":541,"others":544},104,5,{"name":508,"start":542,"end":543},125,134,[545,547,550,553],{"name":508,"start":543,"end":546},143,{"name":508,"start":548,"end":549},307,316,{"name":508,"start":551,"end":552},466,475,{"name":508,"start":554,"end":555},529,538,{"format":368,"lines":369,"tokens":557,"copies":540,"first":558,"others":560},102,{"name":508,"start":424,"end":559},161,[561,564,567,570],{"name":508,"start":562,"end":563},215,224,{"name":508,"start":565,"end":566},233,242,{"name":508,"start":568,"end":569},325,334,{"name":508,"start":569,"end":571},343,{"format":395,"lines":573,"tokens":574,"copies":403,"first":575,"others":577},36,200,{"name":576,"start":311,"end":573},"apps\u002Fwebsite\u002Fsrc\u002Fpages\u002Fagentic-development\u002Findex.astro",[578,581],{"name":579,"start":311,"end":580},"apps\u002Fwebsite\u002Fsrc\u002Fpages\u002Fagentic-ide\u002Findex.astro",38,{"name":582,"start":311,"end":573},"apps\u002Fwebsite\u002Fsrc\u002Fpages\u002Fvibecoding\u002Findex.astro",{"format":362,"lines":391,"tokens":378,"copies":255,"first":584,"others":587},{"name":585,"start":586,"end":371},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FchatResources.test.ts",61,[588,591,594,598,602,606,610],{"name":589,"start":272,"end":590},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FmcpConfirm.test.ts",45,{"name":592,"start":593,"end":378},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FmcpEngine.test.ts",49,{"name":595,"start":596,"end":597},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FprojectTrust.test.ts",33,41,{"name":599,"start":600,"end":601},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FreloadGate.test.ts",25,34,{"name":603,"start":604,"end":605},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FsessionShutdown.test.ts",20,27,{"name":607,"start":608,"end":609},"packages\u002Fserver\u002Fsrc\u002Fhost\u002FdirectorySpelling.test.ts",47,55,{"name":611,"start":612,"end":613},"packages\u002Fserver\u002Fsrc\u002Fhost\u002FturnShutdown.test.ts",124,132,{"format":362,"lines":391,"tokens":615,"copies":540,"first":616,"others":620},94,{"name":617,"start":618,"end":619},"apps\u002Fweb\u002Fsrc\u002Fnavigation\u002Frestore.test.ts",383,391,[621,624,627,630],{"name":617,"start":622,"end":623},531,539,{"name":617,"start":625,"end":626},601,609,{"name":617,"start":628,"end":629},649,657,{"name":617,"start":631,"end":632},683,691,{"format":368,"lines":408,"tokens":389,"copies":255,"first":634,"others":636},{"name":508,"start":635,"end":548},302,[637,638,641,644,647,648,650],{"name":508,"start":434,"end":549},{"name":508,"start":639,"end":640},434,439,{"name":508,"start":642,"end":643},443,448,{"name":508,"start":645,"end":646},452,457,{"name":508,"start":486,"end":551},{"name":508,"start":649,"end":552},470,{"name":508,"start":651,"end":555},533,{"format":362,"lines":412,"tokens":653,"copies":255,"first":654,"others":658},51,{"name":655,"start":656,"end":657},"apps\u002Fweb\u002Fsrc\u002Fstore\u002FappStore.test.ts",553,559,[659,661,664,667,669,672,675],{"name":655,"start":449,"end":660},583,{"name":655,"start":662,"end":663},599,605,{"name":655,"start":665,"end":666},905,911,{"name":655,"start":668,"end":396},1084,{"name":655,"start":670,"end":671},1110,1116,{"name":655,"start":673,"end":674},1183,1189,{"name":655,"start":676,"end":677},1306,1311,{"sources":679,"lines":680,"tokens":681,"clones":289,"duplicatedLines":682,"duplicatedTokens":683,"percentage":290,"percentageTokens":684,"formats":685,"topClones":706,"generated":834},946,163820,1043502,1221,8084,0.77,[686,691,696,697,699,700,703],{"format":375,"sources":687,"lines":688,"clones":609,"duplicatedLines":689,"percentage":690},286,57959,615,1.06,{"format":362,"sources":692,"lines":693,"clones":590,"duplicatedLines":694,"percentage":695},623,103077,507,0.49,{"format":395,"sources":291,"lines":396,"clones":255,"duplicatedLines":397,"percentage":398},{"format":411,"sources":304,"lines":698,"clones":414,"duplicatedLines":414,"percentage":414},664,{"format":416,"sources":291,"lines":417,"clones":414,"duplicatedLines":414,"percentage":414},{"format":701,"sources":311,"lines":702,"clones":414,"duplicatedLines":414,"percentage":414},"powershell",361,{"format":704,"sources":278,"lines":705,"clones":414,"duplicatedLines":414,"percentage":414},"javascript",168,[707,721,743,763,778,789,803,810,817,827],{"format":395,"lines":573,"tokens":574,"copies":403,"first":708,"others":709,"excerpt":712},{"name":576,"start":311,"end":573},[710,711],{"name":579,"start":311,"end":580},{"name":582,"start":311,"end":573},{"lines":713,"total":573},[714,715,716,499,717,718,714,499,719,720],"---","import Analytics from \"..\u002F..\u002Fcomponents\u002FAnalytics.astro\";","import { Landing, siteMetadata } from \"..\u002F..\u002Fvibecoding\";","const canonicalUrl = new URL(siteMetadata.path, siteMetadata.origin);","const ogImageUrl = new URL(siteMetadata.openGraphImagePath, siteMetadata.origin);","\u003C!doctype html>","\u003Chtml lang=\"en\">",{"format":362,"lines":601,"tokens":722,"copies":304,"first":723,"others":727,"excerpt":732},346,{"name":724,"start":725,"end":726},"apps\u002Fwebsite\u002Fsrc\u002Fattribution\u002Fprotocol.ts",60,93,[728],{"name":729,"start":730,"end":731},"packages\u002Fserver\u002Fsrc\u002Fpersistence\u002FattributionProtocol.ts",54,87,{"lines":733,"total":601},[734,735,736,737,738,739,740,741,742,533],"export function normalizeCampaignValue(value: string, limit: number): string | undefined {","    const withoutControls = Array.from(value)","        .filter((character) => {","            const codePoint = character.codePointAt(0) ?? 0;","            return codePoint > 31 && (codePoint \u003C 127 || codePoint > 159);","        })","        .join(\"\");","    const normalized = Array.from(withoutControls.trim()).slice(0, limit).join(\"\");","    return normalized.length > 0 ? normalized : undefined;",{"format":362,"lines":744,"tokens":428,"copies":304,"first":745,"others":748,"excerpt":752},26,{"name":746,"start":747,"end":463},"packages\u002Fpi-todos\u002Ftools\u002Fshared.ts",42,[749],{"name":750,"start":597,"end":751},"packages\u002Fspec-graph\u002Ftools\u002Fshared.ts",66,{"lines":753,"total":744},[754,533,755,756,757,758,759,760,761,762],"        \"Full output unavailable: temporary-file capture failed. Read the current plan with todo_list; do not repeat a mutation to retrieve its output.\";","const footer = `\\n\\n[Output truncated: ${preview.totalLines} lines, ${preview.totalBytes} bytes total. ${notice}]${continuation ? `\\n${continuation}` : \"\"}`;","const bounded = truncateHead(text, {","    maxBytes: Math.max(0, DEFAULT_MAX_BYTES - Buffer.byteLength(footer)),","    maxLines: DEFAULT_MAX_LINES - footer.split(\"\\n\").length,","});","return {","    content: [{ type: \"text\", text: `${bounded.content}${footer}` }],","    details: {",{"format":395,"lines":369,"tokens":378,"copies":278,"first":764,"others":767},{"name":765,"start":420,"end":766},"apps\u002Fwebsite\u002Fsrc\u002Fcomponents\u002FCliInstall.astro",71,[768,772,775],{"name":769,"start":770,"end":771},"apps\u002Fwebsite\u002Fsrc\u002Fcomponents\u002FInstallPicker.astro",63,68,{"name":769,"start":773,"end":774},73,78,{"name":769,"start":776,"end":777},83,88,{"format":375,"lines":605,"tokens":779,"copies":304,"first":780,"others":784},167,{"name":781,"start":782,"end":783},"packages\u002Fresource-renderers\u002Fsrc\u002Frenderers\u002Fcsv\u002FDiff.tsx",109,135,[785],{"name":786,"start":787,"end":788},"packages\u002Fresource-renderers\u002Fsrc\u002Frenderers\u002Fjson\u002FDiff.tsx",96,122,{"format":375,"lines":369,"tokens":790,"copies":403,"first":791,"others":794},75,{"name":781,"start":792,"end":793},278,287,[795,799],{"name":796,"start":797,"end":798},"packages\u002Fresource-renderers\u002Fsrc\u002Frenderers\u002Fcsv\u002FView.tsx",201,210,{"name":800,"start":801,"end":802},"packages\u002Fresource-renderers\u002Fsrc\u002Frenderers\u002Fjson\u002FView.tsx",128,137,{"format":375,"lines":604,"tokens":804,"copies":304,"first":805,"others":806},138,{"name":796,"start":751,"end":506},[807],{"name":800,"start":808,"end":809},58,77,{"format":375,"lines":421,"tokens":802,"copies":304,"first":811,"others":814},{"name":781,"start":812,"end":813},277,295,[815],{"name":786,"start":816,"end":513},225,{"format":395,"lines":408,"tokens":268,"copies":403,"first":818,"others":820},{"name":769,"start":819,"end":371},64,[821,824],{"name":769,"start":822,"end":823},74,79,{"name":769,"start":825,"end":826},84,89,{"format":362,"lines":391,"tokens":828,"copies":304,"first":829,"others":831},113,{"name":724,"start":830,"end":808},50,[832],{"name":729,"start":833,"end":389},44,{"files":311,"minified":414,"sample":835},[836],"apps\u002Fweb\u002Fsrc\u002Fchat\u002Fgenerated\u002FproviderGlyphs.ts",{"score":838,"grade":839,"size":840,"dimensions":844},69.5,"C",{"lines":841,"files":842,"class":843},325471,1656,"L",[845,858,864],{"id":846,"source":847,"value":848,"adjusted":848,"lines":849,"halfLife":850,"formats":851,"excluded":853,"weight":311,"score":857},"duplication","jscpd",2.8,9226,8.5,[362,375,411,416,701,704,852],"sql",[854,855,856],"markup","text","data",79.3,{"id":859,"source":847,"value":860,"adjusted":860,"lines":861,"halfLife":862,"weight":311,"score":863},"dead-code",0.4,1328,7.5,96.2,{"id":865,"source":847,"value":866,"adjusted":867,"lines":868,"halfLife":830,"weight":311,"score":833},"complexity",59.5,59.3,193699,{"total":870,"mean":871,"files":872},62557,37.8,[873,878,883,888,893,898,901,906,911,916],{"path":874,"complexity":875,"lines":876,"bytes":877},"apps\u002Fweb\u002Fsrc\u002Fstore\u002FappStore.ts",1588,4548,150940,{"path":879,"complexity":880,"lines":881,"bytes":882},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FagentSessionManager.ts",805,3045,98133,{"path":884,"complexity":885,"lines":886,"bytes":887},"packages\u002Fserver\u002Fsrc\u002Fagent\u002FagentSessionManager.test.ts",757,4222,151630,{"path":889,"complexity":890,"lines":891,"bytes":892},"apps\u002Fweb\u002Fsrc\u002Fshell\u002Flayout\u002Fmodel.ts",528,1528,53104,{"path":894,"complexity":895,"lines":896,"bytes":897},"packages\u002Fpi-dag\u002Fruntime\u002Fservice.ts",508,1695,60490,{"path":655,"complexity":694,"lines":899,"bytes":900},5007,174692,{"path":902,"complexity":903,"lines":904,"bytes":905},"apps\u002Fweb\u002Fsrc\u002Fchat\u002FuseChatScroll.ts",432,1322,47334,{"path":907,"complexity":908,"lines":909,"bytes":910},"thinkrail-extensions\u002Fask-user-question\u002Fweb\u002FAskUserQuestionCard.tsx",416,1490,46721,{"path":912,"complexity":913,"lines":914,"bytes":915},"packages\u002Fpi-delegation\u002Fsrc\u002Fservice.ts",398,1356,44682,{"path":917,"complexity":918,"lines":919,"bytes":920},"packages\u002Fserver\u002Fsrc\u002Fhost\u002Fhandlers.ts",395,1416,46326,{"percentage":922,"findings":923,"files":924,"byCategory":925,"largest":934},0.41,46,1733,[926,929,931],{"category":927,"count":928},"unused-file",14,{"category":930,"count":604},"unused-export",{"category":932,"count":933},"unused-symbol",12,[935,937,940,943,945,948,950,952,956,958],{"category":927,"path":936,"name":499,"line":311,"lines":427},"apps\u002Fdesktop\u002Fsrc\u002Fpreload.ts",{"category":927,"path":938,"name":499,"line":311,"lines":939},"apps\u002Fdesktop\u002FpreBuild.ts",184,{"category":927,"path":941,"name":499,"line":311,"lines":942},"design-audit\u002Ftooling\u002Fbuild-buttons.ts",150,{"category":927,"path":944,"name":499,"line":311,"lines":783},"scripts\u002Fpi-package-parity.node.mjs",{"category":927,"path":946,"name":499,"line":311,"lines":947},"design-audit\u002Ftooling\u002Fverify-buttons.ts",110,{"category":927,"path":949,"name":499,"line":311,"lines":776},"packages\u002Fpi-dag\u002Fruntime\u002Frecovery.fixture.ts",{"category":927,"path":951,"name":499,"line":311,"lines":771},"packages\u002Fserver\u002Fsrc\u002Fsubprocess\u002FwindowsConsole.fixture.ts",{"category":930,"path":953,"name":954,"line":609,"lines":955},"apps\u002Fdesktop\u002Fsrc\u002FpageZoom.ts","installPageZoomGestures",39,{"category":927,"path":957,"name":499,"line":311,"lines":955},"packages\u002Fpi-dag\u002Fpersistence\u002Ffixtures.ts",{"category":927,"path":959,"name":499,"line":311,"lines":955},"packages\u002Fpi-dag\u002Fruntime\u002Fprovider.fixture.ts",{"name":961,"url":962,"description":963,"language":310,"stars":964,"starsToday":965,"defaultBranch":348,"headSha":966,"durationMs":967,"total":968,"formats":973,"topClones":1021,"code":1224,"health":1394,"complexity":1415,"deadCode":1464},"HKUDS\u002FDeepTutor","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor","DeepTutor: Lifelong Personalized Tutoring. https:\u002F\u002Fdeeptutor.info\u002F.",48426,2371,"1ea7df155447f4caf0e3abc86b3ff5395479cd4a",5761,{"sources":969,"lines":313,"tokens":970,"clones":312,"duplicatedLines":314,"duplicatedTokens":971,"percentage":315,"percentageTokens":972},3814,5390542,149766,2.78,[974,981,987,992,997,1001,1005,1009,1012,1016],{"format":975,"sources":976,"lines":977,"clones":978,"duplicatedLines":979,"percentage":980},"python",1971,535927,1202,14474,2.7,{"format":375,"sources":982,"lines":983,"clones":984,"duplicatedLines":985,"percentage":986},732,191439,333,4698,2.45,{"format":362,"sources":988,"lines":989,"clones":557,"duplicatedLines":990,"percentage":991},665,89758,1313,1.46,{"format":400,"sources":993,"lines":994,"clones":771,"duplicatedLines":995,"percentage":996},165,24183,714,2.95,{"format":388,"sources":334,"lines":998,"clones":421,"duplicatedLines":999,"percentage":1000},49955,1193,2.39,{"format":855,"sources":1002,"lines":687,"clones":1003,"duplicatedLines":939,"percentage":1004},17,13,64.34,{"format":411,"sources":744,"lines":1006,"clones":933,"duplicatedLines":1007,"percentage":1008},1711,1176,68.73,{"format":368,"sources":933,"lines":1010,"clones":384,"duplicatedLines":397,"percentage":1011},9384,1.05,{"format":382,"sources":1013,"lines":1014,"clones":391,"duplicatedLines":1015,"percentage":393},106,8088,140,{"format":854,"sources":1017,"lines":1018,"clones":403,"duplicatedLines":1019,"percentage":1020},18,625,23,3.68,[1022,1066,1101,1128,1138,1166,1176,1184,1200,1219],{"format":411,"lines":1023,"tokens":1024,"copies":933,"first":1025,"others":1029,"excerpt":1052,"excerptSecond":1061},860,873,{"name":1026,"start":1027,"end":1028},"README.md",280,1139,[1030,1034,1037,1039,1042,1044,1047,1050],{"name":1031,"start":1032,"end":1033},"assets\u002FREADME\u002FREADME_AR.md",98,859,{"name":1035,"start":397,"end":1036},"assets\u002FREADME\u002FREADME_CN.md",864,{"name":1038,"start":397,"end":1024},"assets\u002FREADME\u002FREADME_ES.md",{"name":1040,"start":397,"end":1041},"assets\u002FREADME\u002FREADME_FR.md",875,{"name":1043,"start":397,"end":1036},"assets\u002FREADME\u002FREADME_HI.md",{"name":1045,"start":397,"end":1046},"assets\u002FREADME\u002FREADME_JA.md",855,{"name":1048,"start":1032,"end":1049},"assets\u002FREADME\u002FREADME_PL.md",854,{"name":1051,"start":1032,"end":1036},"assets\u002FREADME\u002FREADME_PT.md",{"lines":1053,"total":1023},[1054,1055,1056,1057,1058,499,1059,499,1060,499],"docker run --rm --name deeptutor \\","  -p 127.0.0.1:3782:3782 \\","  -v deeptutor-data:\u002Fapp\u002Fdata \\","  ghcr.io\u002Fhkuds\u002Fdeeptutor:latest","```","Open [http:\u002F\u002F127.0.0.1:3782](http:\u002F\u002F127.0.0.1:3782), configure model providers in **Settings → Providers**, and press `Ctrl+C` when you are done. The named `de…","### Content Workspace",{"lines":1062,"total":1065},[1054,1055,1056,1057,1058,499,1063,499,1064,499],"افتح [http:\u002F\u002F127.0.0.1:3782](http:\u002F\u002F127.0.0.1:3782)، وهيّئ مزودي النماذج في **الإعدادات ← المزودون**، واضغط `Ctrl+C` عند الانتهاء. تحتفظ وحدة التخزين المسماة `…","### مساحة عمل المحتوى",762,{"format":855,"lines":1067,"tokens":1068,"copies":384,"first":1069,"others":1072,"excerpt":1087,"excerptSecond":1097},598,217,{"name":1031,"start":1070,"end":1071},80,677,[1073,1075,1077,1079,1080,1081,1083,1084],{"name":1035,"start":1074,"end":1071},81,{"name":1038,"start":1074,"end":1076},686,{"name":1040,"start":1074,"end":1078},688,{"name":1043,"start":1074,"end":1071},{"name":1045,"start":1074,"end":1071},{"name":1048,"start":1070,"end":1082},676,{"name":1051,"start":1070,"end":1071},{"name":1085,"start":1074,"end":1086},"assets\u002FREADME\u002FREADME_RU.md",678,{"lines":1088,"total":1067},[1089,1090,1091,1092,1093,1094,1095,1058,499,1096],"Help me install and configure the current dev version of DeepTutor from https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor.","Clone the dev branch, or inspect and reuse my existing checkout, and read SKILL.md and","docs-for-dev\u002FAGENT_SETUP.md first. Follow that guide to prepare the environment,","configure my model provider, verify the setup, and start the Web app.","Ask me for any missing provider, model, or credential-source information;","do not print API keys. Preserve my existing files and settings, and finish","with the access URL and the results of your checks.","يغطي [دليل إعداد الوكيل](..\u002F..\u002Fdocs-for-dev\u002FAGENT_SETUP.md) التدفق كاملاً، بما فيه التهيئة غير التفاعلية عبر CLI. لتثبيته بنفسك، اختر أحد المسارات أدناه.",{"lines":1098,"total":1100},[1089,1090,1091,1092,1093,1094,1095,1058,499,1099],"[智能体配置指南](..\u002F..\u002Fdocs-for-dev\u002FAGENT_SETUP.md) 涵盖完整流程，包括非交互式 CLI 配置。若要自行安装，请选择下方的一种方式。",597,{"format":388,"lines":1102,"tokens":632,"copies":278,"first":1103,"others":1107,"excerpt":1116},174,{"name":1104,"start":1105,"end":1106},"web\u002Flocales\u002Fde\u002Fapp.json",5725,5898,[1108,1110,1114],{"name":1109,"start":1105,"end":1106},"web\u002Flocales\u002Fen\u002Fapp.json",{"name":1111,"start":1112,"end":1113},"web\u002Flocales\u002Fpl\u002Fapp.json",5741,5914,{"name":1115,"start":1112,"end":1113},"web\u002Flocales\u002Fuk\u002Fapp.json",{"lines":1117,"total":1102},[1118,1119,1120,1121,1122,1123,1124,1125,1126,1127],"\"Favorites\": \"Favoriten\",","\"Insert favorite\": \"Insert favorite\",","\"Choose a collection\": \"Choose a collection\",","\"Add to a note\": \"Add to a note\",","\"Target page\": \"Target page\",","\"New page\": \"New page\",","\"Added to note\": \"Added to note\",","\"Conversation notes\": \"Conversation notes\",","\"Keep your ideas beside the conversation.\": \"Keep your ideas beside the conversation.\",","\"Create a note\": \"Create a note\",",{"format":400,"lines":1129,"tokens":1130,"copies":278,"first":1131,"others":1132},21,606,{"name":1035,"start":1129,"end":597},[1133,1134,1135],{"name":1038,"start":1129,"end":597},{"name":1045,"start":1129,"end":597},{"name":1136,"start":604,"end":1137},"assets\u002FREADME\u002FREADME_TW.md",40,{"format":400,"lines":391,"tokens":1139,"copies":369,"first":1140,"others":1143},159,{"name":1026,"start":1141,"end":1142},1169,1177,[1144,1147,1150,1153,1154,1157,1160,1162],{"name":1031,"start":1145,"end":1146},888,896,{"name":1035,"start":1148,"end":1149},893,901,{"name":1038,"start":1151,"end":1152},902,910,{"name":1043,"start":1148,"end":1149},{"name":1045,"start":1155,"end":1156},884,892,{"name":1048,"start":1158,"end":1159},883,891,{"name":1085,"start":1161,"end":1151},894,{"name":1163,"start":1164,"end":1165},"assets\u002FREADME\u002FREADME_TH.md",922,930,{"format":400,"lines":384,"tokens":1167,"copies":408,"first":1168,"others":1170},194,{"name":1031,"start":933,"end":1169},22,[1171,1172,1173,1174,1175],{"name":1043,"start":1003,"end":1019},{"name":1048,"start":933,"end":1169},{"name":1051,"start":933,"end":1169},{"name":1085,"start":1003,"end":1019},{"name":1163,"start":1003,"end":1019},{"format":975,"lines":1177,"tokens":1178,"copies":304,"first":1179,"others":1181},100,799,{"name":1180,"start":600,"end":612},"tests\u002Fservices\u002Fsession\u002Ftest_pocketbase_isolation.py",[1182],{"name":1183,"start":955,"end":804},"tests\u002Fservices\u002Fsession\u002Ftest_pocketbase_store_fallbacks.py",{"format":400,"lines":391,"tokens":1185,"copies":412,"first":1186,"others":1188},114,{"name":1026,"start":417,"end":1187},509,[1189,1191,1192,1195,1196,1197],{"name":1038,"start":687,"end":1190},294,{"name":1043,"start":687,"end":1190},{"name":1048,"start":1193,"end":1194},285,293,{"name":1085,"start":687,"end":1190},{"name":1163,"start":1190,"end":635},{"name":1198,"start":1199,"end":517},"docs-for-dev\u002FCONTAINERIZATION.md",288,{"format":400,"lines":384,"tokens":751,"copies":369,"first":1201,"others":1204},{"name":1031,"start":1202,"end":1203},870,880,[1205,1207,1208,1210,1211,1214,1215,1216],{"name":1035,"start":1041,"end":1206},885,{"name":1038,"start":1155,"end":1161},{"name":1040,"start":1209,"end":1146},886,{"name":1043,"start":1041,"end":1206},{"name":1045,"start":1212,"end":1213},866,876,{"name":1051,"start":1041,"end":1206},{"name":1085,"start":1213,"end":1209},{"name":1163,"start":1217,"end":1218},904,914,{"format":400,"lines":604,"tokens":1220,"copies":304,"first":1221,"others":1222},581,{"name":1035,"start":1169,"end":597},[1223],{"name":1040,"start":1169,"end":597},{"sources":1225,"lines":1226,"tokens":1227,"clones":1228,"duplicatedLines":1229,"duplicatedTokens":1230,"percentage":1231,"percentageTokens":1232,"formats":1233,"topClones":1252,"generated":1389},2057,537069,2948209,734,9665,55223,1.8,1.87,[1234,1239,1244,1249,1251],{"format":975,"sources":1235,"lines":1236,"clones":486,"duplicatedLines":1237,"percentage":1238},1073,311602,5528,1.77,{"format":375,"sources":1240,"lines":1241,"clones":566,"duplicatedLines":1242,"percentage":1243},558,166038,3756,2.26,{"format":362,"sources":1245,"lines":1246,"clones":1247,"duplicatedLines":479,"percentage":1248},405,57526,31,0.66,{"format":704,"sources":604,"lines":1250,"clones":414,"duplicatedLines":414,"percentage":414},1859,{"format":411,"sources":311,"lines":833,"clones":414,"duplicatedLines":414,"percentage":414},[1253,1280,1300,1321,1331,1336,1346,1361,1371,1382],{"format":975,"lines":412,"tokens":776,"copies":412,"first":1254,"others":1257,"excerpt":1271},{"name":1255,"start":819,"end":1256},"deeptutor\u002Fbook\u002Fblocks\u002Fcode.py",70,[1258,1260,1263,1265,1267,1269],{"name":1259,"start":1247,"end":272},"deeptutor\u002Fbook\u002Fblocks\u002Ffigure.py",{"name":1261,"start":1169,"end":1262},"deeptutor\u002Fbook\u002Fblocks\u002Fflash_cards.py",28,{"name":1264,"start":1247,"end":272},"deeptutor\u002Fbook\u002Fblocks\u002Finteractive.py",{"name":1266,"start":1002,"end":1019},"deeptutor\u002Fbook\u002Fblocks\u002Fquiz.py",{"name":1268,"start":773,"end":823},"deeptutor\u002Fbook\u002Fblocks\u002Fsection.py",{"name":1270,"start":596,"end":955},"deeptutor\u002Fbook\u002Fblocks\u002Ftext.py",{"lines":1272,"total":412},[1273,1274,1275,1276,1277,1278,1279],"async def _generate(","    self, ctx: BlockContext",") -> tuple[dict[str, Any], list[SourceAnchor], dict[str, Any]]:","    params = ctx.block.params","    chapter_title = params.get(\"chapter_title\", ctx.chapter.title)","    chapter_summary = params.get(\"chapter_summary\", ctx.chapter.summary)","    objectives = params.get(\"objectives\") or ctx.chapter.learning_objectives",{"format":375,"lines":725,"tokens":1281,"copies":304,"first":1282,"others":1285,"excerpt":1289},446,{"name":1283,"start":563,"end":1284},"web\u002Fcomponents\u002Fcommon\u002FRichMarkdownRenderer.tsx",283,[1286],{"name":1287,"start":324,"end":1288},"web\u002Fcomponents\u002Fcommon\u002FSimpleMarkdownRenderer.tsx",145,{"lines":1290,"total":725},[1291,1292,1293,1294,1295,1296,1297,1298,1294,1299],"  \u003Ccode className=\"rounded bg-[var(--muted)] px-1 py-0.5 font-mono text-[0.95em] text-[var(--foreground)]\u002F90\">","    {String(children).replace(\u002F\\n$\u002F, \"\")}","  \u003C\u002Fcode>","),","img: () => null,","hr: () => \u003Cdiv className=\"my-1 h-px bg-current opacity-10\" \u002F>,","ul: ({ node, ...props }: any) => (","  \u003Cul className=\"my-1 ml-4 list-disc\" {...props} \u002F>","ol: ({ node, ...props }: any) => (",{"format":375,"lines":808,"tokens":1301,"copies":304,"first":1302,"others":1304,"excerpt":1309},419,{"name":1303,"start":268,"end":788},"web\u002Fcomponents\u002Flearning\u002FLearningDashboard.tsx",[1305],{"name":1306,"start":1307,"end":1308},"web\u002Ffeatures\u002Fui-layout\u002Fclassic\u002FClassicLearningDashboard.tsx",107,164,{"lines":1310,"total":808},[1311,1312,1313,1314,1315,1316,1317,1318,1319,1320],"    onRetry={retry}","  \u002F>",")}","{loading ? (","  \u003CLearningSkeleton count={4} \u002F>",") : (","  \u003C>","    {(todos.reviews.length > 0 || todos.books.length > 0) && (","      \u003Csection aria-labelledby=\"learning-todos\" className=\"mb-9\">","        \u003Ch2 id=\"learning-todos\" className=\"mb-3 text-[13.5px] font-semibold\">",{"format":975,"lines":774,"tokens":1322,"copies":304,"first":1323,"others":1326},369,{"name":1324,"start":563,"end":1325},"deeptutor\u002Fagents\u002Fmath_animator\u002Fcapability.py",301,[1327],{"name":1328,"start":1329,"end":1330},"deeptutor\u002Fagents\u002Fvisualize\u002Fcapability.py",494,571,{"format":375,"lines":597,"tokens":1332,"copies":304,"first":1333,"others":1334},362,{"name":1283,"start":939,"end":563},[1335],{"name":1287,"start":923,"end":324},{"format":975,"lines":268,"tokens":1190,"copies":304,"first":1337,"others":1341},{"name":1338,"start":1339,"end":1340},"deeptutor\u002Fagents\u002Fquestion\u002Fpipeline.py",1796,1860,[1342],{"name":1343,"start":1344,"end":1345},"deeptutor\u002Fagents\u002Fresearch\u002Fpipeline.py",2290,2354,{"format":975,"lines":255,"tokens":808,"copies":408,"first":1347,"others":1350},{"name":1348,"start":543,"end":1349},"deeptutor\u002Fservices\u002Fsubagent\u002Fantigravity.py",141,[1351,1353,1355,1357,1359],{"name":1352,"start":766,"end":774},"deeptutor\u002Fservices\u002Fsubagent\u002Fclaude_code.py",{"name":1354,"start":766,"end":774},"deeptutor\u002Fservices\u002Fsubagent\u002Fcodex.py",{"name":1356,"start":747,"end":593},"deeptutor\u002Fservices\u002Fsubagent\u002Fhermes.py",{"name":1358,"start":1070,"end":731},"deeptutor\u002Fservices\u002Fsubagent\u002Fkimi.py",{"name":1360,"start":1137,"end":608},"deeptutor\u002Fservices\u002Fsubagent\u002Fopenclaw.py",{"format":375,"lines":1362,"tokens":1363,"copies":304,"first":1364,"others":1367},53,272,{"name":1283,"start":1365,"end":1366},541,593,[1368],{"name":1287,"start":1369,"end":1370},318,370,{"format":375,"lines":389,"tokens":1372,"copies":304,"first":1373,"others":1377},270,{"name":1374,"start":1375,"end":1376},"web\u002Fcomponents\u002Fchat\u002Fhome\u002FSessionViewerPanel.tsx",1422,1473,[1378],{"name":1379,"start":1380,"end":1381},"web\u002Fcomponents\u002Fchat\u002Fpreview\u002FFilePreviewDrawer.tsx",374,426,{"format":975,"lines":1169,"tokens":1383,"copies":403,"first":1384,"others":1386},118,{"name":1385,"start":830,"end":766},"deeptutor\u002Fbook\u002Fblocks\u002Fanimation.py",[1387,1388],{"name":1259,"start":1137,"end":586},{"name":1264,"start":1137,"end":586},{"files":403,"minified":414,"sample":1390},[1391,1392,1393],"web\u002Fcontracts\u002Fgenerated\u002Fapi.ts","web\u002Fcontracts\u002Fgenerated\u002Fturn-protocol.ts","web\u002Flib\u002Fbrand-icons.generated.ts",{"score":1395,"grade":1396,"size":1397,"dimensions":1400},54.6,"D",{"lines":1398,"files":1399,"class":843},819305,3387,[1401,1408,1411],{"id":846,"source":847,"value":359,"adjusted":359,"lines":1402,"halfLife":850,"formats":1403,"excluded":1406,"weight":311,"score":1407},20497,[975,375,362,704,1404,411,1405],"docker","batch",[854,855,856],81.5,{"id":859,"source":847,"value":391,"adjusted":391,"lines":1409,"halfLife":862,"weight":311,"score":1410},73533,43.7,{"id":865,"source":847,"value":1412,"adjusted":1412,"lines":1413,"halfLife":830,"weight":311,"score":1414},56.5,463282,45.7,{"total":1416,"mean":1417,"files":1418},131685,38.9,[1419,1424,1428,1433,1438,1442,1447,1451,1456,1461],{"path":1420,"complexity":1421,"lines":1422,"bytes":1423},"web\u002Ffeatures\u002Fchat\u002FChatStateAdapter.tsx",1087,4232,168471,{"path":1425,"complexity":665,"lines":1426,"bytes":1427},"deeptutor\u002Flearning\u002Fservice.py",3355,146477,{"path":1429,"complexity":1430,"lines":1431,"bytes":1432},"deeptutor\u002Fapi\u002Frouters\u002Fknowledge.py",849,5225,209121,{"path":1434,"complexity":1435,"lines":1436,"bytes":1437},"deeptutor\u002Fservices\u002Fsession\u002Fsqlite_store.py",834,4747,206060,{"path":1439,"complexity":628,"lines":1440,"bytes":1441},"web\u002Ffeatures\u002Fchat\u002Fcomponents\u002FChatWorkspace.tsx",3094,125927,{"path":1443,"complexity":1444,"lines":1445,"bytes":1446},"deeptutor\u002Fcapabilities\u002Fmastery\u002Ftools.py",638,3853,172118,{"path":1448,"complexity":1130,"lines":1449,"bytes":1450},"web\u002Ffeatures\u002Fchat\u002Fmessages\u002FChatMessageList.tsx",2663,105229,{"path":1452,"complexity":1453,"lines":1454,"bytes":1455},"deeptutor\u002Fknowledge\u002Fmanager.py",536,2570,105948,{"path":1457,"complexity":1458,"lines":1459,"bytes":1460},"deeptutor\u002Fpartners\u002Fchannels\u002Ffeishu.py",515,2459,100172,{"path":1343,"complexity":895,"lines":1462,"bytes":1463},3281,127736,{"percentage":1465,"findings":1466,"files":1467,"byCategory":1468,"largest":1477},8.97,516,3569,[1469,1471,1473,1475],{"category":927,"count":1470},209,{"category":930,"count":1472},156,{"category":932,"count":1474},90,{"category":1476,"count":586},"unused-import",[1478,1479,1480,1481,1484,1487,1490,1493,1496,1499],{"category":927,"path":1429,"name":499,"line":311,"lines":1431},{"category":927,"path":1343,"name":499,"line":311,"lines":1462},{"category":927,"path":1457,"name":499,"line":311,"lines":1459},{"category":927,"path":1482,"name":499,"line":311,"lines":1483},"deeptutor\u002Fapi\u002Frouters\u002Fpartners.py",2111,{"category":927,"path":1485,"name":499,"line":311,"lines":1486},"web\u002Fcomponents\u002Fsettings\u002FServiceConfigEditor.tsx",1889,{"category":927,"path":1488,"name":499,"line":311,"lines":1489},"deeptutor\u002Fapi\u002Frouters\u002Fbook.py",1838,{"category":927,"path":1491,"name":499,"line":311,"lines":1492},"deeptutor\u002Fapi\u002Frouters\u002Freading.py",1572,{"category":927,"path":1494,"name":499,"line":311,"lines":1495},"deeptutor\u002Fpartners\u002Fchannels\u002Fweixin.py",1445,{"category":927,"path":1497,"name":499,"line":311,"lines":1498},"deeptutor\u002Fapi\u002Frouters\u002Fmastery_path.py",1292,{"category":927,"path":1500,"name":499,"line":311,"lines":1007},"deeptutor\u002Fapi\u002Frouters\u002Fco_writer.py",{"name":1502,"url":1503,"description":1504,"language":317,"stars":1505,"starsToday":1506,"defaultBranch":348,"headSha":1507,"durationMs":1508,"total":1509,"formats":1514,"topClones":1539,"code":1741,"health":1865,"complexity":1887,"deadCode":1934},"Nutlope\u002Fhallmark","https:\u002F\u002Fgithub.com\u002FNutlope\u002Fhallmark","Anti-AI-slop design skill for Claude Code, Cursor, and Codex.",40975,2110,"8f6969f8922caabde9de1784959eae11ddf68073",1438,{"sources":1510,"lines":319,"tokens":1511,"clones":318,"duplicatedLines":320,"duplicatedTokens":1512,"percentage":321,"percentageTokens":1513},589,1511623,147727,9.77,[1515,1520,1525,1528,1530,1532,1534,1535,1536,1537],{"format":368,"sources":792,"lines":1516,"clones":1517,"duplicatedLines":1518,"percentage":1519},20322,253,3303,16.25,{"format":854,"sources":726,"lines":1521,"clones":1522,"duplicatedLines":1523,"percentage":1524},18977,230,1930,10.17,{"format":704,"sources":747,"lines":1526,"clones":933,"duplicatedLines":1185,"percentage":1527},12739,0.89,{"format":400,"sources":539,"lines":1529,"clones":414,"duplicatedLines":414,"percentage":414},8178,{"format":388,"sources":412,"lines":1531,"clones":414,"duplicatedLines":414,"percentage":414},2706,{"format":975,"sources":278,"lines":1533,"clones":414,"duplicatedLines":414,"percentage":414},1104,{"format":382,"sources":653,"lines":1330,"clones":414,"duplicatedLines":414,"percentage":414},{"format":375,"sources":304,"lines":751,"clones":414,"duplicatedLines":414,"percentage":414},{"format":855,"sources":540,"lines":580,"clones":414,"duplicatedLines":414,"percentage":414},{"format":411,"sources":311,"lines":1538,"clones":414,"duplicatedLines":414,"percentage":414},29,[1540,1573,1606,1632,1652,1673,1690,1706,1719,1733],{"format":368,"lines":933,"tokens":1541,"copies":833,"first":1542,"others":1544,"excerpt":1561},518,{"name":1543,"start":311,"end":933},"site\u002Fmade\u002Fatelier-architect\u002Ftokens.css",[1545,1547,1549,1551,1553,1555,1557,1559],{"name":1546,"start":311,"end":933},"site\u002Fmade\u002Fbloom-swim-school\u002Ftokens.css",{"name":1548,"start":311,"end":933},"site\u002Fmade\u002Fcobalt-database-client\u002Ftokens.css",{"name":1550,"start":311,"end":933},"site\u002Fmade\u002Fcoral-physio-booking\u002Ftokens.css",{"name":1552,"start":311,"end":933},"site\u002Fmade\u002Ffurrow-farm-shop\u002Ftokens.css",{"name":1554,"start":311,"end":933},"site\u002Fmade\u002Fhum-coding-camp\u002Ftokens.css",{"name":1556,"start":311,"end":933},"site\u002Fmade\u002Fpiste-surf-school\u002Ftokens.css",{"name":1558,"start":311,"end":933},"site\u002Fmade\u002Fribbon-meditation-app\u002Ftokens.css",{"name":1560,"start":311,"end":933},"site\u002Fmade\u002Fvellum-coffee-subscription\u002Ftokens.css",{"lines":1562,"total":933},[1563,1564,1565,1566,1567,1568,1569,1570,1571,1572],":root {","  color-scheme: light;","  --space-3xs: 2px; --space-2xs: 4px; --space-xs: 8px; --space-sm: 12px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; --space-3xl: …","  --text-xs: 0.8125rem; --text-sm: 0.875rem; --text-md: 1rem; --text-lg: 1.25rem; --text-xl: 1.5625rem; --text-2xl: 1.953rem; --text-3xl: 2.441rem;","  --text-display-s: clamp(2.25rem, 4vw + 0.5rem, 3.75rem); --text-display: clamp(2.75rem, 5vw + 1rem, 5.25rem);","  --text-section: clamp(2rem, 2.5vw + 1rem, 3.5rem); --text-title: clamp(1.25rem, 0.75vw + 0.875rem, 1.625rem); --text-lead: clamp(1.125rem, 0.35vw + 1rem, 1.3…","  --ease-out: cubic-bezier(0.16, 1, 0.3, 1); --ease-in: cubic-bezier(0.7, 0, 0.84, 0); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);","  --dur-micro: 120ms; --dur-short: 220ms; --dur-long: 420ms;","  --color-error: oklch(52% 0.19 27); --color-success: oklch(50% 0.12 150);","  --container: 1440px; --gutter: 64px; --gap-columns: 32px; --section-gap-s: 120px; --section-gap: 144px; --section-gap-l: 176px;",{"format":368,"lines":744,"tokens":1574,"copies":384,"first":1575,"others":1577,"excerpt":1594},978,{"name":1576,"start":311,"end":744},"site\u002Fmade\u002Fatelier-architect\u002Fbase.css",[1578,1580,1582,1584,1586,1588,1590,1592],{"name":1579,"start":311,"end":744},"site\u002Fmade\u002Fhedgerow-dog-walking\u002Fbase.css",{"name":1581,"start":311,"end":744},"site\u002Fmade\u002Fribbon-meditation-app\u002Fbase.css",{"name":1583,"start":311,"end":744},"site\u002Fmade\u002Fvellum-coffee-subscription\u002Fbase.css",{"name":1585,"start":311,"end":744},"site\u002Fmade\u002Fvellum-translation\u002Fbase.css",{"name":1587,"start":311,"end":744},"site\u002Fthemes\u002Farcade\u002Fbase.css",{"name":1589,"start":311,"end":744},"site\u002Fthemes\u002Fcarnival\u002Fbase.css",{"name":1591,"start":311,"end":744},"site\u002Fthemes\u002Ffurrow\u002Fbase.css",{"name":1593,"start":311,"end":744},"site\u002Fthemes\u002Friso\u002Fbase.css",{"lines":1595,"total":744},[1596,1597,1598,1599,1600,1601,1602,1603,1604,1605],"*, *::before, *::after { box-sizing: border-box; }","html, body { overflow-x: clip; }","html { scrollbar-color: var(--color-muted) var(--color-paper); scroll-padding-top: var(--space-3xl); }","body { margin: 0; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-md); line-height: 1.55; -webkit…","::selection { background: color-mix(in oklab, var(--color-accent) 22%, transparent); color: var(--color-ink); }",":focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }","a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.16em; }","h1, h2, h3 { margin: 0; font-family: var(--font-display); font-weight: var(--display-weight, 700); font-synthesis: none; letter-spacing: var(--tracking-display…","h1 { max-width: 20ch; font-size: var(--text-display); } h2 { max-width: 30ch; font-size: var(--text-section); } h3 { max-width: 40ch; font-size: var(--text-tit…",".lead { font-size: var(--text-lead); line-height: 1.45; max-width: 52ch; }",{"format":368,"lines":1169,"tokens":1607,"copies":1003,"first":1608,"others":1609,"excerpt":1626},792,{"name":1576,"start":540,"end":744},[1610,1612,1614,1616,1618,1620,1622,1624],{"name":1611,"start":540,"end":744},"site\u002Fmade\u002Fbloom-swim-school\u002Fbase.css",{"name":1613,"start":540,"end":744},"site\u002Fmade\u002Fhum-coding-camp\u002Fbase.css",{"name":1615,"start":540,"end":744},"site\u002Fmade\u002Fmidnight-jazz-club\u002Fbase.css",{"name":1617,"start":540,"end":744},"site\u002Fmade\u002Fterminal-migrations-cli\u002Fbase.css",{"name":1619,"start":540,"end":744},"site\u002Fthemes\u002Fbrutal\u002Fbase.css",{"name":1621,"start":540,"end":744},"site\u002Fthemes\u002Fgrid\u002Fbase.css",{"name":1623,"start":540,"end":744},"site\u002Fthemes\u002Fink\u002Fbase.css",{"name":1625,"start":540,"end":744},"site\u002Fthemes\u002Fpasteup\u002Fbase.css",{"lines":1627,"total":1169},[1600,1601,1602,1603,1604,1605,1628,1629,1630,1631],"p { margin: 0; text-wrap: pretty; }","p:not([class]) { max-width: 65ch; }","img, video { max-width: 100%; height: auto; display: block; }","svg { display: block; }",{"format":368,"lines":933,"tokens":1541,"copies":1002,"first":1633,"others":1635},{"name":1634,"start":311,"end":933},"site\u002Fmade\u002Fdarkroom-photographer\u002Ftokens.css",[1636,1638,1640,1642,1644,1646,1648,1650],{"name":1637,"start":311,"end":933},"site\u002Fmade\u002Fhedgerow-dog-walking\u002Ftokens.css",{"name":1639,"start":311,"end":933},"site\u002Fmade\u002Fkiln-pottery-school\u002Ftokens.css",{"name":1641,"start":311,"end":933},"site\u002Fmade\u002Fkiln-stoneware-shop\u002Ftokens.css",{"name":1643,"start":311,"end":933},"site\u002Fmade\u002Fmidnight-jazz-club\u002Ftokens.css",{"name":1645,"start":311,"end":933},"site\u002Fmade\u002Fmidnight-video-tool\u002Ftokens.css",{"name":1647,"start":311,"end":933},"site\u002Fmade\u002Fterminal-migrations-cli\u002Ftokens.css",{"name":1649,"start":311,"end":933},"site\u002Fthemes\u002Farcade\u002Ftokens.css",{"name":1651,"start":311,"end":933},"site\u002Fthemes\u002Fconsole\u002Ftokens.css",{"format":368,"lines":1019,"tokens":1653,"copies":391,"first":1654,"others":1656},852,{"name":1655,"start":278,"end":744},"site\u002Fmade\u002Ffurrow-farm-shop\u002Fbase.css",[1657,1659,1661,1663,1665,1667,1669,1671],{"name":1658,"start":278,"end":744},"site\u002Fmade\u002Fpiste-surf-school\u002Fbase.css",{"name":1660,"start":278,"end":744},"site\u002Fthemes\u002Fbroadside\u002Fbase.css",{"name":1662,"start":278,"end":744},"site\u002Fthemes\u002Fdusk\u002Fbase.css",{"name":1664,"start":278,"end":744},"site\u002Fthemes\u002Fhalftone\u002Fbase.css",{"name":1666,"start":278,"end":744},"site\u002Fthemes\u002Flumen\u002Fbase.css",{"name":1668,"start":278,"end":744},"site\u002Fthemes\u002Fpiste\u002Fbase.css",{"name":1670,"start":278,"end":744},"site\u002Fthemes\u002Frefract\u002Fbase.css",{"name":1672,"start":278,"end":744},"site\u002Fthemes\u002Fvantage\u002Fbase.css",{"format":368,"lines":1019,"tokens":1674,"copies":412,"first":1675,"others":1677},841,{"name":1676,"start":278,"end":744},"site\u002Fmade\u002Fcoral-physio-booking\u002Fbase.css",[1678,1680,1682,1684,1686,1688],{"name":1679,"start":278,"end":744},"site\u002Fmade\u002Fdarkroom-photographer\u002Fbase.css",{"name":1681,"start":278,"end":744},"site\u002Fmade\u002Fkiln-pottery-school\u002Fbase.css",{"name":1683,"start":278,"end":744},"site\u002Fmade\u002Fkiln-stoneware-shop\u002Fbase.css",{"name":1685,"start":278,"end":744},"site\u002Fthemes\u002Fdarkroom\u002Fbase.css",{"name":1687,"start":278,"end":744},"site\u002Fthemes\u002Fformwork\u002Fbase.css",{"name":1689,"start":278,"end":744},"site\u002Fthemes\u002Fkiln\u002Fbase.css",{"format":368,"lines":1019,"tokens":1435,"copies":412,"first":1691,"others":1693},{"name":1692,"start":278,"end":744},"site\u002Fmade\u002Fcobalt-database-client\u002Fbase.css",[1694,1696,1698,1700,1702,1704],{"name":1695,"start":278,"end":744},"site\u002Fthemes\u002Falmanac\u002Fbase.css",{"name":1697,"start":278,"end":744},"site\u002Fthemes\u002Fatelier\u002Fbase.css",{"name":1699,"start":278,"end":744},"site\u002Fthemes\u002Feditorial\u002Fbase.css",{"name":1701,"start":278,"end":744},"site\u002Fthemes\u002Fgarden\u002Fbase.css",{"name":1703,"start":278,"end":744},"site\u002Fthemes\u002Fribbon\u002Fbase.css",{"name":1705,"start":278,"end":744},"site\u002Fthemes\u002Fspecimen\u002Fbase.css",{"format":368,"lines":1169,"tokens":1707,"copies":412,"first":1708,"others":1709},790,{"name":1611,"start":540,"end":744},[1710,1711,1712,1713,1715,1717],{"name":1692,"start":540,"end":744},{"name":1676,"start":540,"end":744},{"name":1655,"start":540,"end":744},{"name":1714,"start":540,"end":744},"site\u002Fthemes\u002Fblueprint\u002Fbase.css",{"name":1716,"start":540,"end":744},"site\u002Fthemes\u002Fnewsprint\u002Fbase.css",{"name":1718,"start":540,"end":744},"site\u002Fthemes\u002Foverprint\u002Fbase.css",{"format":368,"lines":1019,"tokens":1720,"copies":408,"first":1721,"others":1722},840,{"name":1611,"start":278,"end":744},[1723,1725,1727,1729,1731],{"name":1724,"start":278,"end":744},"site\u002Fthemes\u002Fconsole\u002Fbase.css",{"name":1726,"start":278,"end":744},"site\u002Fthemes\u002Fdose\u002Fbase.css",{"name":1728,"start":278,"end":744},"site\u002Fthemes\u002Floom\u002Fbase.css",{"name":1730,"start":278,"end":744},"site\u002Fthemes\u002Fterrazzo\u002Fbase.css",{"name":1732,"start":278,"end":744},"site\u002Fthemes\u002Fultraviolet\u002Fbase.css",{"format":368,"lines":744,"tokens":1734,"copies":403,"first":1735,"others":1736},1023,{"name":1615,"start":278,"end":1538},[1737,1739],{"name":1738,"start":278,"end":1538},"site\u002Fmade\u002Fmidnight-video-tool\u002Fbase.css",{"name":1740,"start":278,"end":1538},"site\u002Fthemes\u002Fmidnight\u002Fbase.css",{"sources":833,"lines":1742,"tokens":1743,"clones":933,"duplicatedLines":1185,"duplicatedTokens":1744,"percentage":1745,"percentageTokens":1746,"formats":1747,"topClones":1752,"generated":1862},13806,203467,1236,0.83,0.61,[1748,1751],{"format":704,"sources":1137,"lines":1749,"clones":933,"duplicatedLines":1185,"percentage":1750},12702,0.9,{"format":975,"sources":278,"lines":1533,"clones":414,"duplicatedLines":414,"percentage":414},[1753,1776,1794,1810,1817,1826,1832,1840,1848,1856],{"format":704,"lines":421,"tokens":1754,"copies":304,"first":1755,"others":1757,"excerpt":1760,"excerptSecond":1771},206,{"name":1756,"start":540,"end":1019},"site\u002Fthemes\u002Frefract\u002Fscene.js",[1758],{"name":1759,"start":369,"end":744},"site\u002Fthemes\u002Fvantage\u002Fscene.js",{"lines":1761,"total":421},[1762,499,1763,1764,1765,1766,1767,1768,1769,1770],"const root = getComputedStyle(document.documentElement);","\u002F\u002F oklch() token to sRGB 0..1","function oklch(str) {","  const m = str.match(\u002Foklch\\(\\s*([\\d.]+)%\\s+([\\d.]+)\\s+([\\d.]+)\u002F);","  if (!m) return [1, 1, 1];","  const L = +m[1] \u002F 100, C = +m[2], h = (+m[3] * Math.PI) \u002F 180;","  const a = C * Math.cos(h), b = C * Math.sin(h);","  const l_ = L + 0.3963377774 * a + 0.2158037573 * b;","  const m_ = L - 0.1055613458 * a - 0.0638541728 * b;",{"lines":1772,"total":1002},[1773,1764,1765,1766,1767,1768,1769,1770,1774,1775],"const css = getComputedStyle(root);","  const s_ = L - 0.0894841775 * a - 1.291485548 * b;","  const l = l_ ** 3, mm = m_ ** 3, s = s_ ** 3;",{"format":704,"lines":1777,"tokens":1778,"copies":304,"first":1779,"others":1781,"excerpt":1784},16,172,{"name":1780,"start":420,"end":809},"eval\u002Fscore.mjs",[1782],{"name":1783,"start":389,"end":463},"eval\u002Fscreenshot.mjs",{"lines":1785,"total":1777},[533,499,1786,1787,1788,1789,1790,1791,1792,1793],"function listRuns(filter) {","  const out = [];","  if (!existsSync(RUNS)) return out;","  for (const briefId of readdirSync(RUNS).sort()) {","    const briefDir = path.join(RUNS, briefId);","    if (!statSync(briefDir).isDirectory()) continue;","    if (filter.brief && briefId !== filter.brief) continue;","    for (const cell of readdirSync(briefDir).sort()) {",{"format":704,"lines":933,"tokens":801,"copies":304,"first":1795,"others":1797,"excerpt":1799},{"name":1780,"start":1796,"end":923},35,[1798],{"name":1783,"start":573,"end":608},{"lines":1800,"total":933},[1801,499,1802,1803,1804,1805,1806,1807,1808,1809],");","function parseArgs(argv) {","  const args = { brief: null, arm: null, force: false, dryRun: false };","  for (let i = 0; i \u003C argv.length; i++) {","    const a = argv[i];","    if (a === \"--brief\") args.brief = argv[++i];","    else if (a === \"--arm\") args.arm = argv[++i];","    else if (a === \"--force\") args.force = true;","    else if (a === \"--dry-run\") args.dryRun = true;",{"format":704,"lines":369,"tokens":782,"copies":304,"first":1811,"others":1813},{"name":1812,"start":833,"end":1362},"skills\u002Fhallmark\u002Fscripts\u002Fsloplint-render.mjs",[1814],{"name":1812,"start":1815,"end":1816},402,407,{"format":704,"lines":391,"tokens":1013,"copies":304,"first":1818,"others":1822},{"name":1819,"start":1820,"end":1821},"skills\u002Fhallmark\u002Fscripts\u002Fsloplint.mjs",1206,1214,[1823],{"name":1819,"start":1824,"end":1825},2149,2157,{"format":704,"lines":408,"tokens":1177,"copies":304,"first":1827,"others":1828},{"name":1819,"start":506,"end":1474},[1829],{"name":1819,"start":1830,"end":1831},178,183,{"format":704,"lines":384,"tokens":506,"copies":304,"first":1833,"others":1836},{"name":1819,"start":1834,"end":1835},1230,1240,[1837],{"name":1819,"start":1838,"end":1839},1736,1746,{"format":704,"lines":408,"tokens":1841,"copies":304,"first":1842,"others":1845},72,{"name":1843,"start":1844,"end":947},"site\u002Fthemes\u002Fatelier\u002Fair.js",105,[1846],{"name":1756,"start":543,"end":1847},139,{"format":704,"lines":412,"tokens":771,"copies":304,"first":1849,"others":1852},{"name":1819,"start":1850,"end":1851},2120,2126,[1853],{"name":1819,"start":1854,"end":1855},2178,2184,{"format":704,"lines":408,"tokens":751,"copies":304,"first":1857,"others":1859},{"name":1819,"start":1820,"end":1858},1211,[1860],{"name":1819,"start":1850,"end":1861},2125,{"files":311,"minified":311,"sample":1863},[1864],"site\u002Fthemes\u002Fterminal\u002Fart.js",{"score":1866,"grade":300,"size":1867,"dimensions":1870},28.2,{"lines":1868,"files":608,"class":1869},13885,"M",[1871,1878,1882],{"id":846,"source":847,"value":1872,"adjusted":1873,"lines":1185,"halfLife":850,"formats":1874,"excluded":1876,"weight":311,"score":1877},0.8,1.2,[704,975,375,1875],"vue",[854,855,856],91,{"id":859,"source":847,"value":1879,"adjusted":1880,"lines":1881,"halfLife":862,"weight":311,"score":862},31.7,28.1,4397,{"id":865,"source":847,"value":1883,"adjusted":1884,"lines":1885,"halfLife":830,"weight":311,"score":1886},89.1,80.5,12374,32.7,{"total":1888,"mean":1889,"files":1890},8828,187.8,[1891,1895,1899,1903,1908,1912,1917,1921,1925,1929],{"path":1819,"complexity":1892,"lines":1893,"bytes":1894},3446,4422,231648,{"path":1812,"complexity":1896,"lines":1897,"bytes":1898},1423,1252,99164,{"path":1900,"complexity":1466,"lines":1901,"bytes":1902},"skills\u002Fhallmark\u002Fscripts\u002Ftheme.mjs",650,58934,{"path":1904,"complexity":1905,"lines":1906,"bytes":1907},"site\u002Fthemes\u002Ffurrow\u002Fmap.js",335,574,39829,{"path":1909,"complexity":1910,"lines":656,"bytes":1911},"site\u002Fthemes\u002Fcobalt\u002Fwire.js",308,32836,{"path":1913,"complexity":1914,"lines":1915,"bytes":1916},"skills\u002Fhallmark\u002Fscripts\u002Frefcheck.mjs",250,352,21313,{"path":1759,"complexity":1918,"lines":1919,"bytes":1920},237,330,27773,{"path":1922,"complexity":1068,"lines":1923,"bytes":1924},"site\u002Fthemes\u002Fribbon\u002Fnight.js",414,27309,{"path":1926,"complexity":1308,"lines":1927,"bytes":1928},"site\u002Fthemes\u002Fbloom\u002Fpage.js",314,19096,{"path":1930,"complexity":1931,"lines":1932,"bytes":1933},"eval\u002Fgen-direct.py",136,547,20849,{"percentage":1935,"findings":605,"files":1936,"byCategory":1937,"largest":1940},31.66,48,[1938,1939],{"category":927,"count":744},{"category":1476,"count":311},[1941,1942,1943,1944,1945,1946,1947,1949,1952,1955],{"category":927,"path":1904,"name":499,"line":311,"lines":1906},{"category":927,"path":1909,"name":499,"line":311,"lines":656},{"category":927,"path":1922,"name":499,"line":311,"lines":1923},{"category":927,"path":1759,"name":499,"line":311,"lines":1919},{"category":927,"path":1926,"name":499,"line":311,"lines":1927},{"category":927,"path":1756,"name":499,"line":311,"lines":473},{"category":927,"path":1843,"name":499,"line":311,"lines":1948},226,{"category":927,"path":1950,"name":499,"line":311,"lines":1951},"site\u002Fthemes\u002Fbloom\u002Farrange.js",198,{"category":927,"path":1953,"name":499,"line":311,"lines":1954},"site\u002Fthemes\u002Fstudio\u002Fspec.js",180,{"category":927,"path":1956,"name":499,"line":311,"lines":1957},"site\u002Fthemes\u002Fterminal\u002Fpage.js",142,{"name":275,"url":1959,"description":1960,"language":303,"stars":1961,"starsToday":1962,"defaultBranch":348,"headSha":1963,"durationMs":1964,"total":1965,"formats":1972,"topClones":2019,"code":2200,"health":2400,"complexity":2422,"deadCode":2473},"https:\u002F\u002Fgithub.com\u002Fnightly-labs\u002Fopenbot","A local-first desktop workspace for persistent AI teammates. Run Codex, Claude, and Grok with dedicated workspaces, task queues, file sharing, browser control, and agent-to-agent collaboration.",3402,1054,"c389f4404256e754214b6982503381778d80ed35",7136,{"sources":1966,"lines":1967,"tokens":1968,"clones":276,"duplicatedLines":1969,"duplicatedTokens":1970,"percentage":277,"percentageTokens":1971},5722,1097051,7400495,38823,276303,3.73,[1973,1979,1985,1990,1994,1999,2004,2009,2012,2016],{"format":362,"sources":1974,"lines":1975,"clones":1976,"duplicatedLines":1977,"percentage":1978},3824,711452,2002,28030,3.94,{"format":375,"sources":1980,"lines":1981,"clones":1982,"duplicatedLines":1983,"percentage":1984},1158,247473,358,4187,1.69,{"format":368,"sources":1957,"lines":1986,"clones":1987,"duplicatedLines":1988,"percentage":1989},65437,261,2041,3.12,{"format":406,"sources":384,"lines":1991,"clones":613,"duplicatedLines":1992,"percentage":1993},6269,1255,20.02,{"format":388,"sources":1995,"lines":1996,"clones":593,"duplicatedLines":1997,"percentage":1998},130,11042,2104,19.05,{"format":382,"sources":2000,"lines":2001,"clones":1019,"duplicatedLines":2002,"percentage":2003},43,6496,284,4.37,{"format":400,"sources":2005,"lines":2006,"clones":421,"duplicatedLines":2007,"percentage":2008},254,36881,144,0.39,{"format":852,"sources":601,"lines":2010,"clones":384,"duplicatedLines":2011,"percentage":1796},1863,652,{"format":2013,"sources":408,"lines":2014,"clones":278,"duplicatedLines":609,"percentage":2015},"ruby",187,29.41,{"format":411,"sources":2000,"lines":2017,"clones":403,"duplicatedLines":1019,"percentage":2018},3226,0.71,[2020,2054,2087,2119,2134,2149,2161,2173,2181,2190],{"format":362,"lines":609,"tokens":2021,"copies":933,"first":2022,"others":2024,"excerpt":2042},473,{"name":2023,"start":311,"end":609},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fde\u002Findex.ts",[2025,2027,2029,2031,2033,2035,2037,2039],{"name":2026,"start":311,"end":609},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fes\u002Findex.ts",{"name":2028,"start":311,"end":463},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Ffr\u002Findex.ts",{"name":2030,"start":311,"end":463},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fit\u002Findex.ts",{"name":2032,"start":311,"end":751},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fja\u002Findex.ts",{"name":2034,"start":311,"end":751},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fko\u002Findex.ts",{"name":2036,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fnl\u002Findex.ts",{"name":2038,"start":311,"end":463},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpl\u002Findex.ts",{"name":2040,"start":311,"end":2041},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpt\u002Findex.ts",56,{"lines":2043,"total":609},[2044,2045,2046,2047,2048,2049,2050,2051,2052,2053],"import type { PartialTranslation } from \"..\u002F..\u002Fmessage\";","import type { AppMessages } from \"..\u002Fen\u002Findex\";","import { messages as account } from \".\u002Faccount\";","import { messages as agent } from \".\u002Fagent\";","import { messages as agentSettings } from \".\u002FagentSettings\";","import { messages as agentTemplate } from \".\u002FagentTemplate\";","import { messages as app } from \".\u002Fapp\";","import { messages as attachment } from \".\u002Fattachment\";","import { messages as billing } from \".\u002Fbilling\";","import { messages as browser } from \".\u002Fbrowser\";",{"format":362,"lines":463,"tokens":2055,"copies":369,"first":2056,"others":2058,"excerpt":2075},393,{"name":2057,"start":311,"end":463},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fde\u002Fsource.ts",[2059,2061,2063,2065,2067,2069,2071,2073],{"name":2060,"start":311,"end":463},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fes\u002Fsource.ts",{"name":2062,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Ffr\u002Fsource.ts",{"name":2064,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fit\u002Fsource.ts",{"name":2066,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fja\u002Fsource.ts",{"name":2068,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fnl\u002Fsource.ts",{"name":2070,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpl\u002Fsource.ts",{"name":2072,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpt\u002Fsource.ts",{"name":2074,"start":311,"end":771},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fru\u002Fsource.ts",{"lines":2076,"total":463},[2077,2078,2079,2080,2081,2082,2083,2084,2085,2086],"import { messages as errorAgent } from \".\u002Ferror\u002Fagent\";","import { messages as errorApp } from \".\u002Ferror\u002Fapp\";","import { messages as errorAttachment } from \".\u002Ferror\u002Fattachment\";","import { messages as errorAuth } from \".\u002Ferror\u002Fauth\";","import { messages as errorBackend } from \".\u002Ferror\u002Fbackend\";","import { messages as errorBilling } from \".\u002Ferror\u002Fbilling\";","import { messages as errorComputerUse } from \".\u002Ferror\u002FcomputerUse\";","import { messages as errorConnector } from \".\u002Ferror\u002Fconnector\";","import { messages as errorHost } from \".\u002Ferror\u002Fhost\";","import { messages as errorImport } from \".\u002Ferror\u002Fimport\";",{"format":362,"lines":2088,"tokens":1167,"copies":933,"first":2089,"others":2091,"excerpt":2108},24,{"name":2090,"start":311,"end":2088},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fde\u002Fmobile.ts",[2092,2094,2096,2098,2100,2102,2104,2106],{"name":2093,"start":311,"end":2088},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fes\u002Fmobile.ts",{"name":2095,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Ffr\u002Fmobile.ts",{"name":2097,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fit\u002Fmobile.ts",{"name":2099,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fja\u002Fmobile.ts",{"name":2101,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fko\u002Fmobile.ts",{"name":2103,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fnl\u002Fmobile.ts",{"name":2105,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpl\u002Fmobile.ts",{"name":2107,"start":311,"end":600},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fpt\u002Fmobile.ts",{"lines":2109,"total":2088},[2044,2110,2111,2112,2113,2114,2115,2116,2117,2118],"import type { AppMobileMessages } from \"..\u002Fen\u002Fmobile\";","import { messages as mobileAgent } from \".\u002Fmobile\u002Fagent\";","import { messages as mobileApp } from \".\u002Fmobile\u002Fapp\";","import { messages as mobileAppLock } from \".\u002Fmobile\u002FappLock\";","import { messages as mobileAuth } from \".\u002Fmobile\u002Fauth\";","import { messages as mobileBrowser } from \".\u002Fmobile\u002Fbrowser\";","import { messages as mobileChannel } from \".\u002Fmobile\u002Fchannel\";","import { messages as mobileChat } from \".\u002Fmobile\u002Fchat\";","import { messages as mobileLink } from \".\u002Fmobile\u002Flink\";",{"format":362,"lines":1362,"tokens":1139,"copies":1003,"first":2120,"others":2121},{"name":2023,"start":609,"end":1307},[2122,2125,2126,2128,2129,2130,2131,2133],{"name":2123,"start":268,"end":2124},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fen\u002Findex.ts",117,{"name":2026,"start":609,"end":1307},{"name":2028,"start":463,"end":2127},119,{"name":2030,"start":463,"end":2127},{"name":2032,"start":751,"end":1383},{"name":2034,"start":751,"end":1383},{"name":2036,"start":771,"end":2132},120,{"name":2038,"start":463,"end":2127},{"format":388,"lines":942,"tokens":2135,"copies":278,"first":2136,"others":2140},594,{"name":2137,"start":2138,"end":2139},"native-runtime.lock.json",662,811,[2141,2143,2146],{"name":2137,"start":1206,"end":2142},1034,{"name":2137,"start":2144,"end":2145},1108,1257,{"name":2137,"start":2147,"end":2148},1331,1480,{"format":362,"lines":1841,"tokens":2150,"copies":278,"first":2151,"others":2153},488,{"name":2152,"start":1307,"end":1830},"scripts\u002Fclaude-foreign-session-e2e.ts",[2154,2156,2159],{"name":2155,"start":1847,"end":798},"scripts\u002Fclaude-late-steer-e2e.ts",{"name":2157,"start":2158,"end":1951},"scripts\u002Fclaude-usage-resume-e2e.ts",127,{"name":2160,"start":392,"end":548},"scripts\u002Fprovider-session-reuse-e2e.ts",{"format":362,"lines":1070,"tokens":2162,"copies":278,"first":2163,"others":2166},484,{"name":2164,"start":608,"end":2165},"scripts\u002Fbrowser-agent-session-e2e.ts",126,[2167,2169,2171],{"name":2168,"start":608,"end":2165},"scripts\u002Fbrowser-card-smoke.ts",{"name":2170,"start":608,"end":2165},"scripts\u002Fbrowser-sign-in-e2e.ts",{"name":2172,"start":608,"end":2165},"scripts\u002Fbrowser-user-control-e2e.ts",{"format":362,"lines":1918,"tokens":2174,"copies":304,"first":2175,"others":2178},1386,{"name":2176,"start":272,"end":2177},"scripts\u002Flive-activity-autolink-e2e.ts",273,[2179],{"name":2180,"start":573,"end":2177},"scripts\u002Flive-activity-inline-fence-e2e.ts",{"format":362,"lines":2182,"tokens":2183,"copies":304,"first":2184,"others":2186},196,1126,{"name":2176,"start":272,"end":2185},232,[2187],{"name":2188,"start":1936,"end":2189},"scripts\u002Flive-activity-code-span-e2e.ts",244,{"format":362,"lines":808,"tokens":2191,"copies":278,"first":2192,"others":2193},363,{"name":2057,"start":311,"end":808},[2194,2196,2198],{"name":2195,"start":311,"end":334},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fen\u002Fsource.ts",{"name":2197,"start":311,"end":334},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fko\u002Fsource.ts",{"name":2199,"start":311,"end":334},"packages\u002Fi18n\u002Fsrc\u002Fmessages\u002Fzh\u002Fsource.ts",{"sources":2201,"lines":2202,"tokens":2203,"clones":286,"duplicatedLines":2204,"duplicatedTokens":2205,"percentage":265,"percentageTokens":2206,"formats":2207,"topClones":2232,"generated":2388},3633,782381,5120876,24531,169384,3.31,[2208,2214,2217,2218,2221,2225,2227,2230],{"format":362,"sources":2209,"lines":2210,"clones":2211,"duplicatedLines":2212,"percentage":2213},2428,526721,1636,20265,3.85,{"format":375,"sources":1028,"lines":2215,"clones":1982,"duplicatedLines":1983,"percentage":2216},246738,1.7,{"format":2013,"sources":408,"lines":2014,"clones":278,"duplicatedLines":609,"percentage":2015},{"format":411,"sources":1019,"lines":2219,"clones":304,"duplicatedLines":1017,"percentage":2220},2995,0.6,{"format":2222,"sources":1003,"lines":2223,"clones":311,"duplicatedLines":408,"percentage":2224},"swift",2774,0.22,{"format":704,"sources":291,"lines":2226,"clones":414,"duplicatedLines":414,"percentage":414},1605,{"format":2228,"sources":412,"lines":2229,"clones":414,"duplicatedLines":414,"percentage":414},"kotlin",1267,{"format":2231,"sources":304,"lines":615,"clones":414,"duplicatedLines":414,"percentage":414},"groovy",[2233,2252,2270,2286,2290,2309,2321,2332,2353,2368],{"format":362,"lines":1841,"tokens":2150,"copies":278,"first":2234,"others":2235,"excerpt":2239,"excerptSecond":2249},{"name":2152,"start":1307,"end":1830},[2236,2237,2238],{"name":2155,"start":1847,"end":798},{"name":2157,"start":2158,"end":1951},{"name":2160,"start":392,"end":548},{"lines":2240,"total":1841},[2241,2242,533,499,2243,2244,2245,2246,2247,2248],"  exit: [error: Error];","  diagnostic: [message: string, origin?: DiagnosticOrigin];","\u002F**"," * The real Claude client. Only the account, usage and model reads are answered here: the real ones"," * run `claude auth status` or a probe query. Sessions, turns and events go to the real client."," *\u002F","class ClaudeStandIn extends EventEmitter\u003CClientEvents> implements AgentClient {","  readonly provider = \"claude\";",{"lines":2250,"total":1841},[2241,2242,533,499,2243,2244,2251,2246,2247,2248]," * run `claude auth status` or a probe query. Sessions, turns, history and events go to the real client.",{"format":362,"lines":1070,"tokens":2162,"copies":278,"first":2253,"others":2254,"excerpt":2258},{"name":2164,"start":608,"end":2165},[2255,2256,2257],{"name":2168,"start":608,"end":2165},{"name":2170,"start":608,"end":2165},{"name":2172,"start":608,"end":2165},{"lines":2259,"total":1070},[2260,2261,2262,2263,2264,2265,2266,2267,2268,2269],"      cases: z.array(z.string()).length(16),","      runId: z.literal(runId),","      sourceSha: z.literal(sourceSha),","    })","    .parse(JSON.parse(await readFile(reportPath, \"utf8\")));","  \u002F\u002F Machine-readable summary of the completed case count.","  process.stdout.write(","    `${JSON.stringify({ status: report.status, cases: report.cases.length, report: reportPath })}\\n`,","  );","} catch (error) {",{"format":362,"lines":1918,"tokens":2174,"copies":304,"first":2271,"others":2272,"excerpt":2274},{"name":2176,"start":272,"end":2177},[2273],{"name":2180,"start":573,"end":2177},{"lines":2275,"total":1918},[2276,2277,2278,2279,2280,2281,2282,2283,2284,2285],"  \"scripts\u002Flive-activity-autolink-e2e.ts\",","  \"src\u002Fmain\u002Flive-activity-push.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Fdynamic-island-coordinator.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Fdynamic-island-presentation.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Fagent-message-text.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Flive-activity-props.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Flive-activity-text.ts\",","  \"packages\u002Fteam-client\u002Fsrc\u002Flive-activity-seal.ts\",","  \"apps\u002Fmobile\u002Fsrc\u002Ffeatures\u002Flive-activity\u002Fmodel\u002Flive-activity-open.ts\",","];",{"format":362,"lines":2182,"tokens":2183,"copies":304,"first":2287,"others":2288},{"name":2176,"start":272,"end":2185},[2289],{"name":2188,"start":1936,"end":2189},{"format":362,"lines":2088,"tokens":2291,"copies":540,"first":2292,"others":2296},262,{"name":2293,"start":2294,"end":2295},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv4-adapter.ts",146,169,[2297,2300,2302,2306],{"name":2298,"start":2295,"end":2299},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv5-adapter.ts",192,{"name":2301,"start":2295,"end":2299},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv6-adapter.ts",{"name":2303,"start":2304,"end":2305},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv7-adapter.ts",131,154,{"name":2307,"start":613,"end":2308},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv8-adapter.ts",155,{"format":362,"lines":1777,"tokens":565,"copies":540,"first":2310,"others":2312},{"name":2293,"start":2002,"end":2311},299,[2313,2316,2317,2319],{"name":2298,"start":2314,"end":2315},312,327,{"name":2301,"start":2314,"end":2315},{"name":2303,"start":984,"end":2318},348,{"name":2307,"start":569,"end":2320},349,{"format":362,"lines":1256,"tokens":2322,"copies":304,"first":2323,"others":2327},826,{"name":2324,"start":2325,"end":2326},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fprovider-aware-codec.ts",1134,1203,[2328],{"name":2329,"start":2330,"end":2331},"packages\u002Fcontracts\u002Fsrc\u002Fteam-protocol\u002Fv1.ts",1048,1117,{"format":375,"lines":384,"tokens":1362,"copies":291,"first":2333,"others":2335},{"name":2334,"start":514,"end":1987},"apps\u002Fmobile\u002Fsrc\u002Fapp\u002F(app)\u002F_layout.tsx",[2336,2338,2340,2341,2344,2346,2347,2350],{"name":2334,"start":1363,"end":2337},282,{"name":2334,"start":2339,"end":433},296,{"name":2334,"start":1910,"end":1369},{"name":2334,"start":2342,"end":2343},319,329,{"name":2334,"start":2345,"end":1380},364,{"name":2334,"start":480,"end":913},{"name":2334,"start":2348,"end":2349},399,409,{"name":2334,"start":2351,"end":2352},410,420,{"format":362,"lines":2354,"tokens":2189,"copies":278,"first":2355,"others":2357},32,{"name":2356,"start":2295,"end":574},"scripts\u002Fagent-channel-manage-e2e.ts",[2358,2361,2364],{"name":2359,"start":1102,"end":2360},"scripts\u002Fmemory-review-e2e.ts",205,{"name":2362,"start":1778,"end":2363},"scripts\u002Froutine-fresh-session-e2e.ts",203,{"name":2365,"start":2366,"end":2367},"scripts\u002Froutine-report-failure-e2e.ts",191,222,{"format":362,"lines":384,"tokens":773,"copies":384,"first":2369,"others":2371},{"name":2370,"start":1129,"end":1247},"src\u002Fmain\u002Fagent-memory-limit-preference-store.ts",[2372,2374,2376,2378,2380,2382,2384,2386],{"name":2373,"start":1017,"end":1262},"src\u002Fmain\u002Fbusy-message-mode-preference-store.ts",{"name":2375,"start":1796,"end":590},"src\u002Fmain\u002Fmachine-alerts.ts",{"name":2377,"start":1129,"end":1247},"src\u002Fmain\u002Fmemory-review-preference-store.ts",{"name":2379,"start":2088,"end":601},"src\u002Fmain\u002Fnotification-preference-store.ts",{"name":2381,"start":1129,"end":1247},"src\u002Fmain\u002Fprompt-cache-ttl-preference-store.ts",{"name":2383,"start":2354,"end":2000},"src\u002Fmain\u002Fprovider-detection-settings-store.ts",{"name":2385,"start":653,"end":725},"src\u002Fmain\u002Fpush-notification-store.ts",{"name":2387,"start":1129,"end":1247},"src\u002Fmain\u002Fserver-timezone-preference-store.ts",{"files":369,"minified":414,"sample":2389},[2390,2391,2392,2393,2394,2395,2396,2397,2398,2399],"apps\u002Fauth-api\u002Fsrc\u002Flib\u002Fplugin-catalog.generated.ts","apps\u002Fauth-api\u002Fsrc\u002FrouteTree.gen.ts","apps\u002Fmobile\u002Fsrc\u002Ffeatures\u002Fmarketplace\u002Fmodel\u002Fplugin-catalog.generated.ts","apps\u002Fmobile\u002Fsrc\u002Funiwind-types.d.ts","packages\u002Fbrand\u002Fsrc\u002Fwordmark-shape.ts","src\u002Fbackend\u002Freleased-schemas\u002Fv0.1.12.sql","src\u002Fbackend\u002Freleased-schemas\u002Fv0.1.15.sql","src\u002Fbackend\u002Freleased-schemas\u002Fv0.1.18.sql","src\u002Fbackend\u002Freleased-schemas\u002Fv0.2.1.sql","src\u002Frenderer\u002Fsrc\u002Ffeatures\u002Fsettings\u002Fmarketplace-plugin-catalog.ts",{"score":2401,"grade":839,"size":2402,"dimensions":2405},61.6,{"lines":2403,"files":2404,"class":843},969329,5072,[2406,2413,2419],{"id":846,"source":847,"value":2407,"adjusted":2407,"lines":2408,"halfLife":850,"formats":2409,"excluded":2411,"weight":311,"score":2412},3.4,32948,[362,375,411,2222,852,704,2228,2013,2410,1404,2231],"nix",[854,855,856],75.8,{"id":859,"source":847,"value":2414,"adjusted":2414,"lines":2415,"halfLife":862,"coverage":2416,"weight":2417,"score":2418},4.5,43680,99.3,0.993,65.8,{"id":865,"source":847,"value":1395,"adjusted":2420,"lines":2421,"halfLife":830,"weight":311,"score":608},54.5,528856,{"total":2423,"mean":2424,"files":2425},181528,35.8,[2426,2430,2434,2439,2444,2449,2454,2459,2464,2468],{"path":2324,"complexity":2427,"lines":2428,"bytes":2429},1360,3023,123767,{"path":2329,"complexity":2431,"lines":2432,"bytes":2433},1347,2831,108903,{"path":2435,"complexity":2436,"lines":2437,"bytes":2438},"src\u002Fbackend\u002Fagent-service.ts",1276,5026,221722,{"path":2440,"complexity":2441,"lines":2442,"bytes":2443},"src\u002Frenderer\u002Fsrc\u002Fpreview\u002Fmock-openbot.ts",1056,3001,134070,{"path":2445,"complexity":2446,"lines":2447,"bytes":2448},"src\u002Fbackend\u002Fmailbox-store.ts",1055,3105,133851,{"path":2450,"complexity":2451,"lines":2452,"bytes":2453},"packages\u002Fui\u002Fsrc\u002Ffeatures\u002Fworkflows\u002FWorkflowCanvas.tsx",1045,3168,128443,{"path":2455,"complexity":2456,"lines":2457,"bytes":2458},"src\u002Fbackend\u002Fagent\u002Fprovider-runtime.ts",1036,3787,177740,{"path":2460,"complexity":2461,"lines":2462,"bytes":2463},"scripts\u002Fbrowser-smoke-electron.ts",958,3944,198620,{"path":2465,"complexity":679,"lines":2466,"bytes":2467},"src\u002Fbackend\u002Fchannel-service.ts",2811,130785,{"path":2469,"complexity":2470,"lines":2471,"bytes":2472},"src\u002Fbackend\u002Fbrowser-host.ts",915,3128,132642,{"percentage":2474,"findings":1068,"files":2475,"byCategory":2476,"largest":2481},4.54,5348,[2477,2478,2479,2480],{"category":927,"count":467},{"category":930,"count":1169},{"category":932,"count":1003},{"category":1476,"count":311},[2482,2483,2486,2489,2491,2494,2497,2500,2503,2505],{"category":927,"path":2460,"name":499,"line":311,"lines":2462},{"category":927,"path":2484,"name":499,"line":311,"lines":2485},"src\u002Frenderer\u002Fsrc\u002Ffeatures\u002Fteam\u002Fteam-webrtc.ts",1049,{"category":927,"path":2487,"name":499,"line":311,"lines":2488},"scripts\u002Fworkflow-team-api-e2e.ts",1044,{"category":927,"path":2490,"name":499,"line":311,"lines":1430},"scripts\u002Fbrowser-fill-fields-electron.ts",{"category":927,"path":2492,"name":499,"line":311,"lines":2493},"scripts\u002Fagent-threads-messaging-e2e.ts",728,{"category":927,"path":2495,"name":499,"line":311,"lines":2496},"scripts\u002Fstuck-running-deliveries-e2e.ts",722,{"category":927,"path":2498,"name":499,"line":311,"lines":2499},"scripts\u002Fchannel-notifications-e2e.ts",663,{"category":927,"path":2501,"name":499,"line":311,"lines":2502},"scripts\u002Fconversation-mailbox-rewrite-e2e.ts",595,{"category":927,"path":2504,"name":499,"line":311,"lines":1366},"scripts\u002Froutine-cron-syntax-e2e.ts",{"category":927,"path":2506,"name":499,"line":311,"lines":1510},"scripts\u002Fagent-access-e2e.ts",{"name":267,"url":2508,"description":2509,"language":2510,"stars":2511,"starsToday":2512,"defaultBranch":348,"headSha":2513,"durationMs":347,"total":2514,"formats":2518,"topClones":2531,"code":2613,"health":2618,"complexity":2628,"deadCode":2510},"https:\u002F\u002Fgithub.com\u002Ftogg53192-cmd\u002Fjailbreaks","LIST OF ALL MY JAILBREAKS",null,7435,1477,"17c7117635cf0f270104b1bb8b1e79ff8319a668",{"sources":1362,"lines":330,"tokens":2515,"clones":268,"duplicatedLines":331,"duplicatedTokens":2516,"percentage":269,"percentageTokens":2517},95295,30704,32.22,[2519,2523,2526,2528,2529],{"format":400,"sources":272,"lines":2520,"clones":378,"duplicatedLines":2521,"percentage":2522},6039,2073,34.33,{"format":855,"sources":1003,"lines":2524,"clones":255,"duplicatedLines":776,"percentage":2525},266,31.2,{"format":2527,"sources":311,"lines":586,"clones":414,"duplicatedLines":414,"percentage":414},"cpp",{"format":975,"sources":311,"lines":833,"clones":414,"duplicatedLines":414,"percentage":414},{"format":2530,"sources":311,"lines":597,"clones":414,"duplicatedLines":414,"percentage":414},"txt",[2532,2546,2554,2570,2576,2584,2589,2597,2604,2608],{"format":400,"lines":2132,"tokens":2533,"copies":304,"first":2534,"others":2536,"excerpt":2539},2344,{"name":2535,"start":311,"end":2132},"deepseek-4-1.md",[2537],{"name":2538,"start":311,"end":2132},"qwen-3.8.md",{"lines":2540,"total":2132},[2541,499,2542,499,2543,499,2544,499,2545,499],"# Assistant Operating Specification","This document is the operating specification for the assistant in this workspace. It defines the assistant's role, capabilities, values, content and safety pol…","## 1. Role","The assistant is a capable, general-purpose reasoning model deployed as an autonomous coding-and-authoring agent for a single technical operator working in a p…","The operator is the sole consumer of the assistant's output and holds authority over, and responsibility for, the session. There is no third-party audience and…",{"format":400,"lines":539,"tokens":2547,"copies":304,"first":2548,"others":2549,"excerpt":2552},2070,{"name":2535,"start":311,"end":539},[2550],{"name":2551,"start":311,"end":539},"glm5-3opencode.md",{"lines":2553,"total":539},[2541,499,2542,499,2543,499,2544,499,2545,499],{"format":400,"lines":2555,"tokens":2556,"copies":304,"first":2557,"others":2560,"excerpt":2563},202,1968,{"name":2558,"start":408,"end":2559},"deepseek v4.md",207,[2561],{"name":2562,"start":408,"end":2559},"kimi-k2.md",{"lines":2564,"total":2555},[2565,499,2566,499,2567,499,2568,499,2569,499],"# Core Principles","You are designed to be genuinely helpful, honest, and capable. Your purpose is to assist users with the full range of their creative, technical, and intellectu…","## Honesty and Transparency","Always be honest about things you failed to do or are unsure about. Never fabricate information or present speculation as fact. When uncertain, express appropr…","## Helpfulness",{"format":400,"lines":783,"tokens":2571,"copies":304,"first":2572,"others":2573},1299,{"name":2558,"start":408,"end":1015},[2574],{"name":2575,"start":391,"end":546},"gemma4.md",{"format":400,"lines":378,"tokens":2577,"copies":304,"first":2578,"others":2581},1231,{"name":2579,"start":1349,"end":2580},"glm-5-3-flash.md",197,[2582],{"name":2551,"start":557,"end":2583},158,{"format":400,"lines":608,"tokens":2585,"copies":304,"first":2586,"others":2587},1080,{"name":2535,"start":412,"end":1362},[2588],{"name":2579,"start":412,"end":1362},{"format":400,"lines":605,"tokens":446,"copies":403,"first":2590,"others":2592},{"name":2591,"start":412,"end":596},"longcat-agents.md",[2593,2595],{"name":2594,"start":412,"end":596},"mimo-2.6-agents.md",{"name":2596,"start":412,"end":596},"spacebunny-agents.md",{"format":400,"lines":822,"tokens":2598,"copies":304,"first":2599,"others":2601},970,{"name":2600,"start":573,"end":782},"deepseek v3.md",[2602],{"name":2603,"start":573,"end":782},"glm-zcode-5.2.md",{"format":400,"lines":597,"tokens":2598,"copies":304,"first":2605,"others":2606},{"name":2594,"start":596,"end":773},[2607],{"name":2596,"start":596,"end":773},{"format":400,"lines":1936,"tokens":2609,"copies":304,"first":2610,"others":2611},950,{"name":2535,"start":609,"end":557},[2612],{"name":2579,"start":378,"end":539},{"sources":414,"lines":414,"tokens":414,"clones":414,"duplicatedLines":414,"duplicatedTokens":414,"percentage":414,"percentageTokens":414,"formats":2614,"topClones":2615,"generated":2616},[],[],{"files":414,"minified":414,"sample":2617},[],{"score":2510,"grade":2510,"size":2619,"dimensions":2621,"skipped":2622},{"lines":414,"files":414,"class":2620},"XS",[],[2623,2625,2626],{"id":846,"reason":2624},"no code files",{"id":865,"reason":2624},{"id":859,"reason":2627},"no JavaScript, TypeScript, Python or compiler-checked Rust files",{"total":414,"mean":414,"files":2629},[],{"name":298,"url":2631,"description":2632,"language":323,"stars":2633,"starsToday":2634,"defaultBranch":2635,"headSha":2636,"durationMs":2637,"total":2638,"formats":2642,"topClones":2654,"code":2795,"health":2865,"complexity":2883,"deadCode":2893},"https:\u002F\u002Fgithub.com\u002Fhmjz100\u002FLinkSwift","一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ，支持 百度网盘 \u002F 阿里云盘 \u002F 中国移动云盘 \u002F 天翼云盘 \u002F 迅雷云盘 \u002F 夸克网盘 \u002F UC网盘 \u002F 123云盘 八大网盘",35346,1616,"dev","c62d10a3071b089c6ffef4e9fa56f05bbb03079c",1099,{"sources":291,"lines":325,"tokens":2639,"clones":324,"duplicatedLines":326,"duplicatedTokens":2640,"percentage":327,"percentageTokens":2641},58794,9043,15.38,[2643,2647,2650,2652],{"format":704,"sources":304,"lines":2644,"clones":1070,"duplicatedLines":2645,"percentage":2646},9197,1127,12.25,{"format":388,"sources":412,"lines":2648,"clones":540,"duplicatedLines":802,"percentage":2649},497,27.57,{"format":382,"sources":304,"lines":2014,"clones":311,"duplicatedLines":1777,"percentage":2651},8.56,{"format":400,"sources":278,"lines":2653,"clones":414,"duplicatedLines":414,"percentage":414},389,[2655,2676,2702,2729,2737,2751,2759,2770,2778,2787],{"format":704,"lines":825,"tokens":2139,"copies":304,"first":2656,"others":2660,"excerpt":2664},{"name":2657,"start":2658,"end":2659},"（改）网盘直链下载助手.user.js",5822,5905,[2661],{"name":2657,"start":2662,"end":2663},5938,6021,{"lines":2665,"total":825},[2666,2667,2668,2669,2670,2671,2672,2673,2674,2675],"base.adaptiveThemeOverride([","    [\"#717fff\", temp.color],","    [\"#717FFF\", temp.color],","    [\"#06a8ff\", temp.color],","    [\"#06A8FF\", temp.color],","    [\"#06a7ff\", temp.color],","    [\"#06A7FF\", temp.color],","    [\"#dcdfe6\", temp.color],","    [\"#DCDFE6\", temp.color],","    [\"#0095ff\", temp.color],",{"format":704,"lines":928,"tokens":1013,"copies":278,"first":2677,"others":2680,"excerpt":2690},{"name":2657,"start":2678,"end":2679},6376,6389,[2681,2684,2687],{"name":2657,"start":2682,"end":2683},7096,7109,{"name":2657,"start":2685,"end":2686},7664,7677,{"name":2657,"start":2688,"end":2689},7924,7937,{"lines":2691,"total":928},[2692,2693,2694,2695,2696,2697,2698,2699,2700,2701],"        tooltip: config.$baidu.dom,","        download: {","            error: (error) => {","                if (!error?.status) return ` 服务器未返回状态，若是下载一段时间后中断，可能是服务器返回文件长度不匹配，请重试；若是直接中断，请检查您的网络、脚本管理器扩展或浏览器~`;","                if (error?.status == 403) return ` 服务器说：链接已过期，关闭窗口重新获取试试吧~`;","                if (error?.status == 204 || error?.statusText === \"IDM\") return ` 服务说：链接已被 IDM 捕获~`;","            }","        }","    }","}];",{"format":704,"lines":384,"tokens":2703,"copies":278,"first":2704,"others":2707,"excerpt":2717},103,{"name":2657,"start":2705,"end":2706},7059,7069,[2708,2711,2714],{"name":2657,"start":2709,"end":2710},7279,7289,{"name":2657,"start":2712,"end":2713},7854,7864,{"name":2657,"start":2715,"end":2716},7885,7895,{"lines":2718,"total":384},[2719,2720,2721,2722,2723,2724,2725,2726,2727,2728],"selects = selects.filter(item => item.contentID && item.contentName && item.contentSuffix);","const batchSize = 15;","let proc = 0;","$doc.find(\".loading-popup .loading-title\").html(`地址获取中`);","$doc.find(\".loading-popup .swal2-html-container\").html(`\u003Cdiv>正在获取文件对应的下载地址~\u003C\u002Fdiv>`);","for (let i = 0; i \u003C selects.length; i += batchSize) {","    const batch = selects.slice(i, i + batchSize);","    const queue = [];","    batch.forEach((item, localIndex) => {","        const globalIndex = i + localIndex;",{"format":704,"lines":653,"tokens":1190,"copies":304,"first":2730,"others":2733},{"name":2657,"start":2731,"end":2732},8274,8324,[2734],{"name":2657,"start":2735,"end":2736},8549,8599,{"format":704,"lines":369,"tokens":773,"copies":540,"first":2738,"others":2740},{"name":2657,"start":2706,"end":2739},7078,[2741,2743,2745,2748],{"name":2657,"start":2710,"end":2742},7298,{"name":2657,"start":2716,"end":2744},7904,{"name":2657,"start":2746,"end":2747},8783,8792,{"name":2657,"start":2749,"end":2750},8835,8844,{"format":704,"lines":1796,"tokens":2005,"copies":304,"first":2752,"others":2755},{"name":2657,"start":2753,"end":2754},8786,8820,[2756],{"name":2657,"start":2757,"end":2758},8838,8872,{"format":704,"lines":369,"tokens":828,"copies":403,"first":2760,"others":2763},{"name":2657,"start":2761,"end":2762},2432,2441,[2764,2767],{"name":2657,"start":2765,"end":2766},2508,2517,{"name":2657,"start":2768,"end":2769},2573,2582,{"format":388,"lines":601,"tokens":947,"copies":403,"first":2771,"others":2773},{"name":2772,"start":384,"end":833},"config\u002Fquark.json",[2774,2776],{"name":2775,"start":1003,"end":923},"config\u002Ftianyi.json",{"name":2777,"start":933,"end":590},"config\u002Fyidong.json",{"format":704,"lines":1247,"tokens":2779,"copies":304,"first":2780,"others":2783},214,{"name":2657,"start":2781,"end":2782},8232,8262,[2784],{"name":2657,"start":2785,"end":2786},8443,8472,{"format":704,"lines":1019,"tokens":1951,"copies":304,"first":2788,"others":2791},{"name":2657,"start":2789,"end":2790},8465,8487,[2792],{"name":2657,"start":2793,"end":2794},8532,8554,{"sources":304,"lines":2644,"tokens":2796,"clones":1070,"duplicatedLines":2645,"duplicatedTokens":2797,"percentage":2646,"percentageTokens":2798,"formats":2799,"topClones":2801,"generated":2863},52164,8515,16.32,[2800],{"format":704,"sources":304,"lines":2644,"clones":1070,"duplicatedLines":2645,"percentage":2646},[2802,2808,2816,2824,2828,2835,2839,2844,2848,2852],{"format":704,"lines":825,"tokens":2139,"copies":304,"first":2803,"others":2804,"excerpt":2806},{"name":2657,"start":2658,"end":2659},[2805],{"name":2657,"start":2662,"end":2663},{"lines":2807,"total":825},[2666,2667,2668,2669,2670,2671,2672,2673,2674,2675],{"format":704,"lines":928,"tokens":1013,"copies":278,"first":2809,"others":2810,"excerpt":2814},{"name":2657,"start":2678,"end":2679},[2811,2812,2813],{"name":2657,"start":2682,"end":2683},{"name":2657,"start":2685,"end":2686},{"name":2657,"start":2688,"end":2689},{"lines":2815,"total":928},[2692,2693,2694,2695,2696,2697,2698,2699,2700,2701],{"format":704,"lines":384,"tokens":2703,"copies":278,"first":2817,"others":2818,"excerpt":2822},{"name":2657,"start":2705,"end":2706},[2819,2820,2821],{"name":2657,"start":2709,"end":2710},{"name":2657,"start":2712,"end":2713},{"name":2657,"start":2715,"end":2716},{"lines":2823,"total":384},[2719,2720,2721,2722,2723,2724,2725,2726,2727,2728],{"format":704,"lines":653,"tokens":1190,"copies":304,"first":2825,"others":2826},{"name":2657,"start":2731,"end":2732},[2827],{"name":2657,"start":2735,"end":2736},{"format":704,"lines":369,"tokens":773,"copies":540,"first":2829,"others":2830},{"name":2657,"start":2706,"end":2739},[2831,2832,2833,2834],{"name":2657,"start":2710,"end":2742},{"name":2657,"start":2716,"end":2744},{"name":2657,"start":2746,"end":2747},{"name":2657,"start":2749,"end":2750},{"format":704,"lines":1796,"tokens":2005,"copies":304,"first":2836,"others":2837},{"name":2657,"start":2753,"end":2754},[2838],{"name":2657,"start":2757,"end":2758},{"format":704,"lines":369,"tokens":828,"copies":403,"first":2840,"others":2841},{"name":2657,"start":2761,"end":2762},[2842,2843],{"name":2657,"start":2765,"end":2766},{"name":2657,"start":2768,"end":2769},{"format":704,"lines":1247,"tokens":2779,"copies":304,"first":2845,"others":2846},{"name":2657,"start":2781,"end":2782},[2847],{"name":2657,"start":2785,"end":2786},{"format":704,"lines":1019,"tokens":1951,"copies":304,"first":2849,"others":2850},{"name":2657,"start":2789,"end":2790},[2851],{"name":2657,"start":2793,"end":2794},{"format":704,"lines":391,"tokens":1032,"copies":403,"first":2853,"others":2856},{"name":2657,"start":2854,"end":2855},8157,8165,[2857,2860],{"name":2657,"start":2858,"end":2859},8228,8235,{"name":2657,"start":2861,"end":2862},8438,8446,{"files":414,"minified":414,"sample":2864},[],{"score":299,"grade":300,"size":2866,"dimensions":2868},{"lines":2644,"files":304,"class":2867},"S",[2869,2875,2879],{"id":846,"source":847,"value":2870,"adjusted":2871,"lines":2645,"halfLife":850,"formats":2872,"excluded":2873,"weight":311,"score":2874},12.3,10.7,[704],[855,856],41.8,{"id":859,"source":847,"value":2876,"adjusted":2877,"lines":2878,"halfLife":862,"weight":311,"score":414},99.5,82.3,9183,{"id":865,"source":847,"value":2876,"adjusted":2880,"lines":2881,"halfLife":830,"weight":311,"score":2882},85.5,9152,30.6,{"total":2884,"mean":2885,"files":2886},1803,901.5,[2887,2890],{"path":2657,"complexity":2888,"lines":2881,"bytes":2889},1802,810577,{"path":2891,"complexity":311,"lines":590,"bytes":2892},"eslint.config.mjs",1742,{"percentage":2894,"findings":304,"files":403,"byCategory":2895,"largest":2897},99.51,[2896],{"category":927,"count":304},[2898,2899],{"category":927,"path":2657,"name":499,"line":311,"lines":2881},{"category":927,"path":2900,"name":499,"line":311,"lines":1247},"（改）百度网盘会员青春版.user.js",{"name":294,"url":2902,"description":2903,"language":333,"stars":2904,"starsToday":1474,"defaultBranch":348,"headSha":2905,"durationMs":2485,"total":2906,"formats":2910,"topClones":2938,"code":3071,"health":3140,"complexity":3160,"deadCode":3194},"https:\u002F\u002Fgithub.com\u002Fexpo\u002Fskills","A collection of AI agent skills for working with Expo projects and Expo Application Services",3648,"05754e71d02abe0d2d7a2fb5259ccac41f5ea59c",{"sources":792,"lines":335,"tokens":2907,"clones":334,"duplicatedLines":336,"duplicatedTokens":2908,"percentage":337,"percentageTokens":2909},247003,6068,2.46,[2911,2915,2918,2921,2924,2927,2929,2932,2934,2936],{"format":400,"sources":2703,"lines":2912,"clones":1538,"duplicatedLines":2913,"percentage":2914},18602,240,1.29,{"format":382,"sources":1169,"lines":2916,"clones":933,"duplicatedLines":428,"percentage":2917},948,20.36,{"format":2222,"sources":1003,"lines":2919,"clones":255,"duplicatedLines":1015,"percentage":2920},925,15.14,{"format":375,"sources":2354,"lines":2922,"clones":540,"duplicatedLines":1074,"percentage":2923},2935,2.76,{"format":411,"sources":1137,"lines":2925,"clones":403,"duplicatedLines":1538,"percentage":2926},1594,1.82,{"format":362,"sources":933,"lines":673,"clones":311,"duplicatedLines":928,"percentage":2928},1.18,{"format":704,"sources":255,"lines":2930,"clones":311,"duplicatedLines":412,"percentage":2931},503,1.39,{"format":388,"sources":1129,"lines":2933,"clones":414,"duplicatedLines":414,"percentage":414},968,{"format":975,"sources":304,"lines":2935,"clones":414,"duplicatedLines":414,"percentage":414},823,{"format":855,"sources":384,"lines":2937,"clones":414,"duplicatedLines":414,"percentage":414},245,[2939,2980,3007,3027,3034,3039,3048,3054,3061,3066],{"format":400,"lines":391,"tokens":1032,"copies":928,"first":2940,"others":2943,"excerpt":2967,"excerptSecond":2976},{"name":2941,"start":779,"end":2942},"plugins\u002Fexpo\u002Fskills\u002Feas-app-stores\u002FSKILL.md",175,[2944,2947,2949,2952,2954,2958,2962,2965],{"name":2945,"start":2946,"end":1918},"plugins\u002Fexpo\u002Fskills\u002Feas-update-insights\u002FSKILL.md",229,{"name":2948,"start":1474,"end":1032},"plugins\u002Fexpo\u002Fskills\u002Feas-workflows\u002FSKILL.md",{"name":2950,"start":2951,"end":2177},"plugins\u002Fexpo\u002Fskills\u002Fexpo-animation\u002FSKILL.md",265,{"name":2953,"start":586,"end":371},"plugins\u002Fexpo\u002Fskills\u002Fexpo-brownfield\u002FSKILL.md",{"name":2955,"start":2956,"end":2957},"plugins\u002Fexpo\u002Fskills\u002Fexpo-data-fetching\u002FSKILL.md",469,477,{"name":2959,"start":2960,"end":2961},"plugins\u002Fexpo\u002Fskills\u002Fexpo-design-system\u002FSKILL.md",367,375,{"name":2963,"start":2964,"end":1844},"plugins\u002Fexpo\u002Fskills\u002Fexpo-examples\u002FSKILL.md",97,{"name":2966,"start":1957,"end":942},"plugins\u002Fexpo\u002Fskills\u002Fexpo-module\u002FSKILL.md",{"lines":2968,"total":391},[2969,499,2970,2971,2972,2973,1058,2974,2975],"Check the CLI version before interpreting a missing command: these submission commands are available in 23.2.0 but not in the tested 18.6.0 installation. A pin…","## Submitting Feedback","If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:","```bash","npx --yes @expo\u002Fagent-cli@latest feedback --category skills --subject \"eas-app-stores\" \"\u003Cactionable feedback>\"","Only submit when you have something specific and actionable to report. Include as much relevant context as possible.","If an agent repeatedly fails at an Expo task or the user has to step in, submit a brief report of the task, expected result, and what went wrong using `--categ…",{"lines":2977,"total":391},[2978,499,2970,2971,2972,2979,1058,2974,2975],"- **Crashes are self-reported**: `failedInstalls` \u002F \"Crashes\" counts updates that errored during install\u002Flaunch and were reported on the next update check. Cra…","npx --yes @expo\u002Fagent-cli@latest feedback --category skills --subject \"eas-update-insights\" \"\u003Cactionable feedback>\"",{"format":400,"lines":412,"tokens":2964,"copies":384,"first":2981,"others":2983,"excerpt":3002,"excerptSecond":3005},{"name":2982,"start":2124,"end":385},"plugins\u002Fexpo-experiments\u002Fskills\u002Fexpo-migrate-module\u002FSKILL.md",[2984,2985,2988,2990,2992,2994,2996,2999],{"name":2941,"start":2295,"end":2942},{"name":2986,"start":2987,"end":482},"plugins\u002Fexpo\u002Fskills\u002Feas-hosting\u002FSKILL.md",424,{"name":2989,"start":2000,"end":593},"plugins\u002Fexpo\u002Fskills\u002Feas-observe\u002FSKILL.md",{"name":2991,"start":1522,"end":392},"plugins\u002Fexpo\u002Fskills\u002Feas-simulator\u002FSKILL.md",{"name":2993,"start":1847,"end":1288},"plugins\u002Fexpo\u002Fskills\u002Feas-update\u002FSKILL.md",{"name":2995,"start":2002,"end":516},"plugins\u002Fexpo\u002Fskills\u002Fexpo-app-clip\u002FSKILL.md",{"name":2997,"start":2998,"end":1831},"plugins\u002Fexpo\u002Fskills\u002Fexpo-dev-client\u002FSKILL.md",177,{"name":3000,"start":3001,"end":2987},"plugins\u002Fexpo\u002Fskills\u002Fexpo-dom\u002FSKILL.md",418,{"lines":3003,"total":412},[2970,2971,2972,3004,1058,2974,2975],"npx --yes @expo\u002Fagent-cli@latest feedback --category skills --subject \"expo-migrate-module\" \"\u003Cactionable feedback>\"",{"lines":3006,"total":412},[2970,2971,2972,2973,1058,2974,2975],{"format":382,"lines":604,"tokens":3008,"copies":403,"first":3009,"others":3011,"excerpt":3015},185,{"name":3010,"start":777,"end":1307},".eas\u002Fworkflows\u002Fskill-eval-ci.yml",[3012,3014],{"name":3010,"start":428,"end":3013},212,{"name":3010,"start":517,"end":474},{"lines":3016,"total":604},[3017,3018,3019,3020,3021,3022,3023,3024,3025,3026],"  PRD: dataset\u002Fprds\u002Fnotes\u002Fprd\u002Fmvp.txt","  SCENARIO: skills_available_unmentioned","outputs:","  report: ${{ steps.run.outputs.report }}","  expected: ${{ steps.run.outputs.expected }}","  detected: ${{ steps.run.outputs.detected }}","  recall: ${{ steps.run.outputs.recall }}","  precision: ${{ steps.run.outputs.precision }}","  lexical: ${{ steps.run.outputs.lexical }}","  structural: ${{ steps.run.outputs.structural }}",{"format":382,"lines":1002,"tokens":424,"copies":403,"first":3028,"others":3029},{"name":3010,"start":1247,"end":608},[3030,3031],{"name":3010,"start":1931,"end":424},{"name":3010,"start":3032,"end":3033},241,257,{"format":400,"lines":933,"tokens":2185,"copies":304,"first":3035,"others":3036},{"name":1026,"start":2703,"end":1185},[3037],{"name":3038,"start":1003,"end":2088},"plugins\u002Fexpo\u002Fskills\u002FREADME.md",{"format":382,"lines":1002,"tokens":3040,"copies":403,"first":3041,"others":3044},116,{"name":3042,"start":3043,"end":1032},".eas\u002Fworkflows\u002Fskill-eval-main-baseline.yml",82,[3045,3047],{"name":3042,"start":2007,"end":3046},160,{"name":3042,"start":1754,"end":2367},{"format":400,"lines":255,"tokens":3049,"copies":304,"first":3050,"others":3052},189,{"name":1026,"start":1185,"end":3051},121,[3053],{"name":3038,"start":2088,"end":1247},{"format":2222,"lines":1262,"tokens":3055,"copies":304,"first":3056,"others":3058},176,{"name":3057,"start":776,"end":947},"plugins\u002Fexpo\u002Fskills\u002Fexpo-brownfield\u002Freferences\u002Ffeature-integration.md",[3059],{"name":3060,"start":1129,"end":1936},"tests\u002Ffixtures\u002Fexpo-brownfield\u002Fios\u002Fisolated\u002FSources\u002FFeatureLauncher.swift",{"format":382,"lines":1002,"tokens":3043,"copies":403,"first":3062,"others":3063},{"name":3010,"start":782,"end":542},[3064,3065],{"name":3010,"start":2779,"end":1522},{"name":3010,"start":2342,"end":1905},{"format":375,"lines":1129,"tokens":559,"copies":304,"first":3067,"others":3068},{"name":3057,"start":1262,"end":1936},[3069],{"name":3070,"start":304,"end":1169},"tests\u002Ffixtures\u002Fexpo-brownfield\u002Fapp\u002FFeature.tsx",{"sources":1002,"lines":3072,"tokens":3073,"clones":278,"duplicatedLines":2000,"duplicatedTokens":3074,"percentage":3075,"percentageTokens":3076,"formats":3077,"topClones":3086,"generated":3138},2795,16673,246,1.54,1.48,[3078,3081,3084,3085],{"format":411,"sources":391,"lines":3079,"clones":403,"duplicatedLines":1538,"percentage":3080},988,2.94,{"format":362,"sources":278,"lines":3082,"clones":311,"duplicatedLines":928,"percentage":3083},682,2.05,{"format":975,"sources":304,"lines":2935,"clones":414,"duplicatedLines":414,"percentage":414},{"format":704,"sources":304,"lines":635,"clones":414,"duplicatedLines":414,"percentage":414},[3087,3102,3118,3134],{"format":362,"lines":928,"tokens":1841,"copies":304,"first":3088,"others":3090,"excerpt":3093},{"name":3089,"start":604,"end":596},"scripts\u002Fcheck-overview-routing.ts",[3091],{"name":3092,"start":509,"end":2942},"scripts\u002Fcheck-plugin-version-bump.ts",{"lines":3094,"total":928},[3095,3096,3097,3098,499,3099,3100,533,499,3101],"  const summaryPath = process.env.ROUTING_CHECK_SUMMARY_PATH;","  if (!summaryPath) {","    return;","  }","  mkdirSync(dirname(summaryPath), { recursive: true });","  writeFileSync(summaryPath, `${markdown}\\n`);","function complete(success: boolean, markdown: string): never {",{"format":411,"lines":1003,"tokens":586,"copies":304,"first":3103,"others":3105,"excerpt":3108},{"name":3104,"start":608,"end":334},".claude\u002Fskills\u002Fexpo-skill-eval\u002Fscripts\u002Fsnapshot-android.sh",[3106],{"name":3107,"start":1169,"end":601},".claude\u002Fskills\u002Fexpo-skill-eval\u002Fscripts\u002Fsnapshot-ios.sh",{"lines":3109,"total":1003},[3110,3111,3112,3113,3114,3115,499,3116,499,3117],"if [[ \"$RUNNER\" == \"dev-build\" ]]; then","  BUNDLE_TIMEOUT=\"${EXPO_SKILL_EVAL_BUNDLE_TIMEOUT:-900}\"   # native compile is slow","else","  BUNDLE_TIMEOUT=\"${EXPO_SKILL_EVAL_BUNDLE_TIMEOUT:-240}\"","fi","LOG=\"${OUT%.png}.metro.log\"","mkdir -p \"$(dirname \"$OUT\")\"","# Free the port up front in case a previous run (or a crash) left Metro on it,",{"format":411,"lines":369,"tokens":586,"copies":304,"first":3119,"others":3122,"excerpt":3124},{"name":3120,"start":3121,"end":1778},"scripts\u002Fci.sh",163,[3123],{"name":3120,"start":797,"end":798},{"lines":3125,"total":369},[3126,499,3127,3128,499,3129,3130,3131,3132,3133],"install_harness_deps","export SKILL_PLUGIN_DIR=\"$plugin_dir\"","bash .\u002Feval-harness\u002Feval_harness\u002Fapp_builder\u002Fscripts\u002Fauthor-app.sh","AUTHORED_ARTIFACT=\"$(pwd)\u002Feval-harness\" \\","SCENARIO=\"$scenario\" \\","OUT_DIR=\"$out_dir\" \\","PRD_SKILLS=\"$(pwd)\u002Feval-harness\u002Fdataset\u002Fprd_skills.json\" \\","bash .\u002Feval-harness\u002Feval_harness\u002Fevaluator\u002Fskill_invocation\u002Fscripts\u002Feval-skill-use.sh",{"format":411,"lines":408,"tokens":389,"copies":304,"first":3135,"others":3136},{"name":3104,"start":3055,"end":467},[3137],{"name":3107,"start":334,"end":819},{"files":414,"minified":414,"sample":3139},[],{"score":295,"grade":296,"size":3141,"dimensions":3143},{"lines":3142,"files":600,"class":2867},3462,[3144,3150,3155],{"id":846,"source":847,"value":3145,"adjusted":3146,"lines":1474,"halfLife":850,"formats":3147,"excluded":3148,"weight":311,"score":3149},2.6,2.9,[411,362,975,704,2222,375],[855,856],78.8,{"id":859,"source":847,"value":414,"adjusted":3151,"lines":414,"halfLife":862,"coverage":3152,"weight":3153,"score":3154},1.5,63.4,0.634,87.2,{"id":865,"source":847,"value":3156,"adjusted":3157,"lines":3158,"halfLife":830,"weight":311,"score":3159},46.4,37.1,1606,59.8,{"total":3161,"mean":3162,"files":3163},629,25.2,[3164,3168,3170,3172,3175,3179,3182,3186,3188,3191],{"path":3165,"complexity":774,"lines":3166,"bytes":3167},".claude\u002Fskills\u002Fexpo-skill-eval\u002Fscripts\u002Fgenerate_viewer.py",450,21402,{"path":3092,"complexity":463,"lines":433,"bytes":3169},9685,{"path":3104,"complexity":725,"lines":2002,"bytes":3171},12440,{"path":3173,"complexity":389,"lines":428,"bytes":3174},"plugins\u002Fexpo\u002Fskills\u002Fexpo-ui\u002Fscripts\u002Flist-components.js",7343,{"path":3176,"complexity":653,"lines":3177,"bytes":3178},"scripts\u002Fci.py",373,14560,{"path":3180,"complexity":833,"lines":1847,"bytes":3181},"scripts\u002Fcheck-skill-limits.ts",6336,{"path":3183,"complexity":597,"lines":3184,"bytes":3185},"scripts\u002Fcheck-plugin-version-bump.test.ts",234,7188,{"path":3107,"complexity":1538,"lines":613,"bytes":3187},5479,{"path":3189,"complexity":1538,"lines":1830,"bytes":3190},"scripts\u002Fsync-animate-expo.ts",5801,{"path":3192,"complexity":1019,"lines":782,"bytes":3193},"plugins\u002Fexpo\u002Fskills\u002Feas-workflows\u002Fscripts\u002Ffetch.js",2979,{"percentage":414,"findings":414,"files":1003,"byCategory":3195,"largest":3196},[],[],{"name":271,"url":3198,"description":3199,"language":339,"stars":3200,"starsToday":3201,"defaultBranch":3202,"headSha":3203,"durationMs":3204,"total":3205,"formats":3210,"topClones":3229,"code":3328,"health":3335,"complexity":3347,"deadCode":3354},"https:\u002F\u002Fgithub.com\u002Fxiaolai\u002Fthe-craft-of-selfteaching","One has no future if one couldn't teach themself.",18645,148,"master","987a8e8a9ce205b63886510e145437d14d8a13a4",1067,{"sources":3206,"lines":340,"tokens":3207,"clones":272,"duplicatedLines":341,"duplicatedTokens":3208,"percentage":273,"percentageTokens":3209},111,140356,6085,4.34,[3211,3214,3217,3219,3221,3222,3224,3225,3226,3227],{"format":975,"sources":605,"lines":3212,"clones":2088,"duplicatedLines":2342,"percentage":3213},3020,10.56,{"format":400,"sources":268,"lines":3215,"clones":933,"duplicatedLines":2299,"percentage":3216},14794,1.3,{"format":368,"sources":304,"lines":751,"clones":311,"duplicatedLines":391,"percentage":3218},13.64,{"format":2530,"sources":278,"lines":3220,"clones":414,"duplicatedLines":414,"percentage":414},3878,{"format":411,"sources":540,"lines":2360,"clones":414,"duplicatedLines":414,"percentage":414},{"format":3223,"sources":311,"lines":3043,"clones":414,"duplicatedLines":414,"percentage":414},"regex",{"format":854,"sources":403,"lines":771,"clones":414,"duplicatedLines":414,"percentage":414},{"format":388,"sources":311,"lines":608,"clones":414,"duplicatedLines":414,"percentage":414},{"format":855,"sources":304,"lines":272,"clones":414,"duplicatedLines":414,"percentage":414},{"format":3228,"sources":311,"lines":1003,"clones":414,"duplicatedLines":414,"percentage":414},"c",[3230,3248,3258,3279,3288,3294,3302,3312,3319,3324],{"format":400,"lines":1936,"tokens":3231,"copies":304,"first":3232,"others":3234,"excerpt":3237},1529,{"name":3233,"start":1169,"end":371},"markdown\u002F00.cover.md",[3235],{"name":3236,"start":605,"end":822},"markdown\u002FREADME.md",{"lines":3238,"total":1936},[3239,499,3240,3241,3242,3243,3244,3245,3246,3247],"## 目录","> - [01.preface（**前言**）](01.preface.md)","> - [02.proof-of-work（**如何证明你真的读过这本书？**）](02.proof-of-work.md)","> - [Part.1.A.better.teachyourself（**为什么一定要掌握自学能力？**）](Part.1.A.better.teachyourself.md)","> - [Part.1.B.why.start.from.learning.coding（**为什么把编程当作自学的入口？**）](Part.1.B.why.start.from.learning.coding.md)","> - [Part.1.C.must.learn.sth.only.by.reading（**只靠阅读习得新技能**）](Part.1.C.must.learn.sth.only.by.reading.md)","> - [Part.1.D.preparation.for.reading（**开始阅读前的一些准备**）](Part.1.D.preparation.for.reading.md)","> - [Part.1.E.1.entrance（**入口**）](Part.1.E.1.entrance.md)","> - [Part.1.E.2.values-and-their-operators（**值及其相应的运算**）](Part.1.E.2.values-and-their-operators.md)",{"format":400,"lines":923,"tokens":3249,"copies":304,"first":3250,"others":3251,"excerpt":3254},1526,{"name":3233,"start":2088,"end":371},[3252],{"name":3253,"start":467,"end":1948},"markdown\u002FPart.3.D.indispensable-illusion.md",{"lines":3255,"total":923},[3240,3241,3242,3243,3244,3245,3246,3247,3256,3257],"> - [Part.1.E.3.controlflow（**流程控制**）](Part.1.E.3.controlflow.md)","> - [Part.1.E.4.functions（**函数**）](Part.1.E.4.functions.md)",{"format":975,"lines":605,"tokens":470,"copies":403,"first":3259,"others":3263,"excerpt":3267},{"name":3260,"start":3261,"end":3262},"markdown\u002FPart.2.D.6-modules.md",255,281,[3264,3266],{"name":3265,"start":609,"end":1074},"markdown\u002FPart.2.D.8-main.md",{"name":3265,"start":787,"end":788},{"lines":3268,"total":605},[3269,3270,3271,3272,3273,3274,3275,3276,3277,3278],"s = \"\"\"Gur Mra bs Clguba, ol Gvz Crgref","Ornhgvshy vf orggre guna htyl.","Rkcyvpvg vf orggre guna vzcyvpvg.","Fvzcyr vf orggre guna pbzcyrk.","Pbzcyrk vf orggre guna pbzcyvpngrq.","Syng vf orggre guna arfgrq.","Fcnefr vf orggre guna qrafr.","Ernqnovyvgl pbhagf.","Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.","Nygubhtu cenpgvpnyvgl orngf chevgl.",{"format":975,"lines":600,"tokens":385,"copies":403,"first":3280,"others":3283},{"name":3281,"start":3282,"end":2351},"markdown\u002FPart.3.B.2.classes-2.md",386,[3284,3287],{"name":3281,"start":3285,"end":3286},438,462,{"name":3281,"start":694,"end":622},{"format":975,"lines":2354,"tokens":3289,"copies":304,"first":3290,"others":3291},235,{"name":3265,"start":615,"end":542},[3292],{"name":3293,"start":311,"end":596},"that.py",{"format":975,"lines":933,"tokens":2041,"copies":278,"first":3295,"others":3296},{"name":3281,"start":291,"end":744},[3297,3298,3299],{"name":3281,"start":506,"end":787},{"name":3281,"start":542,"end":1931},{"name":3281,"start":3300,"end":3301},171,182,{"format":400,"lines":255,"tokens":3303,"copies":403,"first":3304,"others":3307},76,{"name":3305,"start":2961,"end":3306},"markdown\u002FPart.1.E.6.containers.md",382,[3308,3310],{"name":3309,"start":1954,"end":427},"markdown\u002FPart.2.D.4-recursion.md",{"name":3311,"start":510,"end":3055},"markdown\u002FPart.2.D.7-tdd.md",{"format":975,"lines":928,"tokens":822,"copies":403,"first":3313,"others":3315},{"name":3314,"start":421,"end":2354},"markdown\u002FPart.2.D.5-docstrings.md",[3316,3317],{"name":3260,"start":291,"end":1262},{"name":3318,"start":311,"end":928},"mycode.py",{"format":400,"lines":255,"tokens":3320,"copies":304,"first":3321,"others":3322},112,{"name":3233,"start":766,"end":774},[3323],{"name":3236,"start":942,"end":401},{"format":975,"lines":1777,"tokens":1013,"copies":304,"first":3325,"others":3326},{"name":3260,"start":604,"end":1796},[3327],{"name":3318,"start":408,"end":1129},{"sources":304,"lines":725,"tokens":3329,"clones":414,"duplicatedLines":414,"duplicatedTokens":414,"percentage":414,"percentageTokens":414,"formats":3330,"topClones":3332,"generated":3333},400,[3331],{"format":975,"sources":304,"lines":725,"clones":414,"duplicatedLines":414,"percentage":414},[],{"files":414,"minified":414,"sample":3334},[],{"score":295,"grade":296,"size":3336,"dimensions":3337},{"lines":725,"files":304,"class":2620},[3338,3341,3344],{"id":846,"source":847,"value":414,"adjusted":2407,"lines":414,"halfLife":850,"formats":3339,"excluded":3340,"weight":311,"score":2412},[975],[854,855],{"id":859,"source":847,"value":590,"adjusted":3342,"lines":605,"halfLife":862,"weight":311,"score":3343},4.3,67.1,{"id":865,"source":847,"value":414,"adjusted":3345,"lines":414,"halfLife":830,"weight":311,"score":3346},20.3,75.5,{"total":1003,"mean":3348,"files":3349},6.5,[3350,3352],{"path":3318,"complexity":255,"lines":605,"bytes":3351},761,{"path":3293,"complexity":540,"lines":596,"bytes":3353},1154,{"percentage":590,"findings":311,"files":304,"byCategory":3355,"largest":3357},[3356],{"category":927,"count":311},[3358],{"category":927,"path":3318,"name":499,"line":311,"lines":605},{"\u002Ftrending\u002F2026-10-29":3360},{"views":403,"visits":403},1793348545947]