[{"data":1,"prerenderedAt":792},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-Tencent\u002FLoopForge":249,"page-views-\u002Ftrending\u002FTencent\u002FLoopForge":789},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"Tencent\u002FLoopForge","https:\u002F\u002Fgithub.com\u002FTencent\u002FLoopForge",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-11-15",9,985,33,"dd56585276d8ecb6e0d6865f55e255194d75f85a",2480,483465,2092,50491,10.44,6.82,857,35.2,"E",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":348,"code":491,"health":663,"complexity":699,"deadCode":743},"2026-11-15T05:21:58.194Z","Self-hosted workflows for coding-agent delivery. Orchestrate CodeBuddy, Codex and Claude Code with scripts and human approval gates. Includes Local workflows for coding assistants.","Go","main",3384,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},6188846,438766,7.09,[279,286,293,300,306,313,320,327,334,341],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"go",1335,276038,1389,12091,4.38,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"markdown",255,21556,196,9595,44.51,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"python",141,36893,101,15814,42.86,{"format":301,"sources":255,"lines":302,"clones":303,"duplicatedLines":304,"percentage":305},"txt",3518,98,1837,52.22,{"format":307,"sources":308,"lines":309,"clones":310,"duplicatedLines":311,"percentage":312},"javascript",326,63324,70,2323,3.67,{"format":314,"sources":315,"lines":316,"clones":317,"duplicatedLines":318,"percentage":319},"css",76,29588,67,1612,5.45,{"format":321,"sources":322,"lines":323,"clones":324,"duplicatedLines":325,"percentage":326},"markup",62,11310,54,4701,41.56,{"format":328,"sources":329,"lines":330,"clones":331,"duplicatedLines":332,"percentage":333},"jsx",57,19341,36,335,1.73,{"format":335,"sources":336,"lines":337,"clones":338,"duplicatedLines":339,"percentage":340},"bash",66,4194,21,703,16.76,{"format":342,"sources":343,"lines":344,"clones":345,"duplicatedLines":346,"percentage":347},"json",47,3535,20,819,23.17,[349,373,394,415,425,436,446,458,471,481],{"format":321,"lines":350,"tokens":351,"first":352,"others":355,"copies":360,"excerpt":361,"kind":321},1086,18394,{"name":353,"start":354,"end":350},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fdashboard\u002Findex.html",1,[356,358],{"name":357,"start":354,"end":350},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fdashboard\u002Findex.html",{"name":359,"start":354,"end":350},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fdashboard\u002Findex.html",3,{"lines":362,"total":350},[363,364,365,366,367,368,369,370,371,372],"\u003C!doctype html>","\u003Chtml lang=\"zh-CN\">","\u003Chead>","\u003Cmeta charset=\"utf-8\">","\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">","\u003Ctitle>Agent Observability\u003C\u002Ftitle>","\u003Cstyle>",":root{","  --surface-page:#f9f9f7; --surface-card:#fcfcfb; --surface-sunken:#f2f1ec;","  --text-primary:#0b0b0b; --text-secondary:#52514e; --text-muted:#898781;",{"format":314,"lines":374,"tokens":375,"first":376,"others":378,"copies":381,"excerpt":382,"kind":393},903,29731,{"name":377,"start":354,"end":374},"chatbot\u002Fsrc\u002Fharness-icons.css",[379],{"name":380,"start":354,"end":374},"web\u002Fapp\u002Fharness-icons.css",2,{"lines":383,"total":374},[384,385,386,387,386,388,389,390,391,392],"\u002F*!","MIT License","","Copyright (c) 2026 cocofhu","Permission is hereby granted, free of charge, to any person obtaining a copy","of this software and associated documentation files (the \"Software\"), to deal","in the Software without restriction, including without limitation the rights","to use, copy, modify, merge, publish, distribute, sublicense, and\u002For sell","copies of the Software, and to permit persons to whom the Software is","styles",{"format":307,"lines":395,"tokens":396,"first":397,"others":401,"copies":381,"excerpt":406,"kind":414},401,15121,{"name":398,"start":399,"end":400},"web\u002Fmonaco\u002Fvs\u002Fassets\u002Fhtml.worker-D1SL3iM8.js",74,474,[402],{"name":403,"start":404,"end":405},"web\u002Fmonaco\u002Fvs\u002Flanguage\u002Fhtml\u002Fhtml.worker.js",43,443,{"lines":407,"total":395},[408,386,409,386,410,386,411,386,412,413],"`.indexOf(t.charAt(e))!==-1}function Lo(t,e){return\"     \".indexOf(t.charAt(e))!==-1}var Co;(()=>{var t={470:r=>{function s(o){if(typeof o!=\"string\")throw new …","This metadata name is associated with the value contained by the [\\`content\\`](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fmeta#attr-content) att…","*   \\`application-name\\` which defines the name of the application running in the web page.","    **Note:**","    *   Browsers may use this to identify the application. It is different from the [\\`\u003Ctitle>\\`](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Ftit…","    *   Simple web pages shouldn't define an application-name.","code",{"format":294,"lines":416,"tokens":417,"first":418,"others":420,"copies":360,"kind":414},1008,7038,{"name":419,"start":354,"end":416},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcollector.py",[421,423],{"name":422,"start":354,"end":416},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcollector.py",{"name":424,"start":354,"end":416},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcollector.py",{"format":294,"lines":426,"tokens":427,"first":428,"others":430,"copies":360,"kind":435},632,5387,{"name":429,"start":354,"end":426},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Ftests\u002Ftest_build_dashboard_data.py",[431,433],{"name":432,"start":354,"end":426},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Ftests\u002Ftest_build_dashboard_data.py",{"name":434,"start":354,"end":426},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Ftests\u002Ftest_build_dashboard_data.py","tests",{"format":294,"lines":437,"tokens":438,"first":439,"others":441,"copies":360,"kind":414},629,5215,{"name":440,"start":354,"end":437},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fbuild_dashboard_data.py",[442,444],{"name":443,"start":354,"end":437},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fbuild_dashboard_data.py",{"name":445,"start":354,"end":437},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fbuild_dashboard_data.py",{"format":321,"lines":447,"tokens":448,"first":449,"others":453,"copies":381,"kind":321},1169,8518,{"name":450,"start":451,"end":452},"web\u002Fvscode-web\u002Fout\u002Fvs\u002Fworkbench\u002Fcontrib\u002Fwebview\u002Fbrowser\u002Fpre\u002Findex-no-csp.html",109,1277,[454],{"name":455,"start":456,"end":457},"web\u002Fvscode-web\u002Fout\u002Fvs\u002Fworkbench\u002Fcontrib\u002Fwebview\u002Fbrowser\u002Fpre\u002Findex.html",116,1284,{"format":321,"lines":459,"tokens":460,"first":461,"others":463,"copies":470,"kind":321},214,2742,{"name":462,"start":354,"end":459},"local\u002F.claude\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fframe-template.html",[464,466,468],{"name":465,"start":354,"end":459},"local\u002F.codebuddy\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fframe-template.html",{"name":467,"start":354,"end":459},"local\u002F.codex\u002Fskills\u002Fsuperpowers\u002Fbrainstorming\u002Fscripts\u002Fframe-template.html",{"name":469,"start":354,"end":459},"local\u002F.cursor\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fframe-template.html",4,{"format":294,"lines":472,"tokens":473,"first":474,"others":476,"copies":360,"kind":414},597,3751,{"name":475,"start":354,"end":472},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fagent_identity.py",[477,479],{"name":478,"start":354,"end":472},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fagent_identity.py",{"name":480,"start":354,"end":472},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fagent_identity.py",{"format":294,"lines":482,"tokens":483,"first":484,"others":486,"copies":360,"kind":414},496,3577,{"name":485,"start":354,"end":482},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fscanner.py",[487,489],{"name":488,"start":354,"end":482},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fscanner.py",{"name":490,"start":354,"end":482},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fscanner.py",{"sources":265,"lines":492,"tokens":493,"clones":494,"duplicatedLines":495,"duplicatedTokens":496,"percentage":264,"percentageTokens":497,"formats":498,"topClones":537,"generated":641},223752,2758813,354,15258,103531,3.75,[499,505,510,515,521,527,533],{"format":280,"sources":500,"lines":501,"clones":502,"duplicatedLines":503,"percentage":504},500,133218,206,2025,1.52,{"format":294,"sources":506,"lines":507,"clones":336,"duplicatedLines":508,"percentage":509},91,25450,10683,41.98,{"format":307,"sources":511,"lines":512,"clones":329,"duplicatedLines":513,"percentage":514},183,45606,1835,4.02,{"format":328,"sources":516,"lines":517,"clones":518,"duplicatedLines":519,"percentage":520},34,14022,11,96,0.68,{"format":335,"sources":522,"lines":523,"clones":524,"duplicatedLines":525,"percentage":526},39,3574,10,578,16.17,{"format":528,"sources":529,"lines":530,"clones":360,"duplicatedLines":531,"percentage":532},"tsx",5,1636,31,1.89,{"format":534,"sources":529,"lines":535,"clones":354,"duplicatedLines":524,"percentage":536},"typescript",246,4.07,[538,553,568,580,585,595,604,614,622,631],{"format":294,"lines":416,"tokens":417,"first":539,"others":540,"copies":360,"excerpt":543,"kind":414},{"name":419,"start":354,"end":416},[541,542],{"name":422,"start":354,"end":416},{"name":424,"start":354,"end":416},{"lines":544,"total":416},[545,386,546,547,548,549,550,551,386,552],"\"\"\"通用采集层。","这一层负责最基础的观测数据采集：","- 维护 Pre\u002FPostToolUse 的配对关系，计算工具耗时","- 解析 transcript 增量，提取 usage \u002F model \u002F tool 记录","- 把 skill\u002Frule 命中情况写入 session state","\"\"\"","from __future__ import annotations","import json",{"format":294,"lines":437,"tokens":438,"first":554,"others":555,"copies":360,"excerpt":558,"kind":414},{"name":440,"start":354,"end":437},[556,557],{"name":443,"start":354,"end":437},{"name":445,"start":354,"end":437},{"lines":559,"total":437},[560,561,562,386,563,564,565,566,386,567],"#!\u002Fusr\u002Fbin\u002Fenv python3","\"\"\"把 `logs\u002Fmetrics.ndjson` + `artifacts\u002F*\u002Fworkflow-state.json` + `.state.json` +","`hooks\u002Flogs\u002Fauto-dispatch.log` 聚合成看板需要的一份 `dashboard-data.json` 快照。","这是本地看板的数据源，不是 hook 链路的一部分——hook 只管往 metrics.ndjson 追加事件，","这个脚本单独、按需运行（比如每次想看一眼看板之前手动跑一次，或者配合文件监听器）。","复用 core.devflow 的 stage_snapshot 做 workflow-state.json 的 schema 归一化，","不在这里重新实现一遍 Classic\u002FPortable 的字段差异。","用法：",{"format":294,"lines":472,"tokens":473,"first":569,"others":570,"copies":360,"excerpt":573,"kind":414},{"name":475,"start":354,"end":472},[571,572],{"name":478,"start":354,"end":472},{"name":480,"start":354,"end":472},{"lines":574,"total":472},[575,386,576,577,578,579,550,551,386,552],"\"\"\"Agent 身份解析层。","这一层负责统一解析“当前是谁在工作、又把任务派给了谁”：","- 从 tool 调用参数里提取 agent 线索","- 从 team inbox \u002F mailbox 中补偿推断 agent 身份","- 把解析结果写回 session state，供后续日志归因复用",{"format":294,"lines":482,"tokens":483,"first":581,"others":582,"copies":360,"kind":414},{"name":485,"start":354,"end":482},[583,584],{"name":488,"start":354,"end":482},{"name":490,"start":354,"end":482},{"format":294,"lines":586,"tokens":587,"first":588,"others":590,"copies":360,"kind":414},583,3548,{"name":589,"start":354,"end":586},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fstate.py",[591,593],{"name":592,"start":354,"end":586},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fstate.py",{"name":594,"start":354,"end":586},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fstate.py",{"format":294,"lines":525,"tokens":596,"first":597,"others":599,"copies":360,"kind":414},3389,{"name":598,"start":354,"end":525},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Femitter.py",[600,602],{"name":601,"start":354,"end":525},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Femitter.py",{"name":603,"start":354,"end":525},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Femitter.py",{"format":294,"lines":605,"tokens":606,"first":607,"others":609,"copies":360,"kind":414},498,3007,{"name":608,"start":354,"end":605},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fruntime.py",[610,612],{"name":611,"start":354,"end":605},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fruntime.py",{"name":613,"start":354,"end":605},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fruntime.py",{"format":294,"lines":400,"tokens":259,"first":615,"others":617,"copies":360,"kind":414},{"name":616,"start":354,"end":400},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcls_sink.py",[618,620],{"name":619,"start":354,"end":400},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcls_sink.py",{"name":621,"start":354,"end":400},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fcls_sink.py",{"format":307,"lines":494,"tokens":623,"first":624,"others":626,"copies":360,"kind":414},2359,{"name":625,"start":354,"end":494},"local\u002F.claude\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fserver.cjs",[627,629],{"name":628,"start":354,"end":494},"local\u002F.codebuddy\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fserver.cjs",{"name":630,"start":354,"end":494},"local\u002F.cursor\u002Fskills\u002Fbrainstorming\u002Fscripts\u002Fserver.cjs",{"format":294,"lines":632,"tokens":633,"first":634,"others":636,"copies":360,"kind":414},234,1834,{"name":635,"start":354,"end":632},"local\u002F.claude\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fdevflow.py",[637,639],{"name":638,"start":354,"end":632},"local\u002F.codebuddy\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fdevflow.py",{"name":640,"start":354,"end":632},"local\u002F.cursor\u002Fskills\u002Fagent-observability\u002Fscripts\u002Fcore\u002Fdevflow.py",{"files":642,"minified":642,"sample":643},44,[644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,403,659,660,661,662],"web\u002Fi18n-en.js","web\u002Fmonaco\u002Fvs\u002Fabap-D-t0cyap.js","web\u002Fmonaco\u002Fvs\u002Fbasic-languages\u002Fmonaco.contribution.js","web\u002Fmonaco\u002Fvs\u002Fclojure-Y2auQMzK.js","web\u002Fmonaco\u002Fvs\u002Fcpp-CkKPQIni.js","web\u002Fmonaco\u002Fvs\u002Fecl-30fUercY.js","web\u002Fmonaco\u002Fvs\u002Feditor-KLE6jdfb.js","web\u002Fmonaco\u002Fvs\u002FeditorWorkerHost-fVE1cjcC.js","web\u002Fmonaco\u002Fvs\u002Felixir-xjPaIfzF.js","web\u002Fmonaco\u002Fvs\u002Fhandlebars-CZi4pHCH.js","web\u002Fmonaco\u002Fvs\u002Findex-049xrXrp.js","web\u002Fmonaco\u002Fvs\u002Findex-CBVt3dzv.js","web\u002Fmonaco\u002Fvs\u002FjsonMode-DLUiMUrI.js","web\u002Fmonaco\u002Fvs\u002Fjulia-BwzEvaQw.js","web\u002Fmonaco\u002Fvs\u002Flanguage\u002Fcss\u002Fcss.worker.js","web\u002Fmonaco\u002Fvs\u002Flanguage\u002Fjson\u002Fjson.worker.js","web\u002Fmonaco\u002Fvs\u002Flanguage\u002Ftypescript\u002Fts.worker.js","web\u002Fmonaco\u002Fvs\u002FlspLanguageFeatures-BIkJOWLw.js","web\u002Fmonaco\u002Fvs\u002Fmain-DsK8pnKg.js",{"score":266,"grade":267,"size":664,"dimensions":668},{"lines":665,"files":666,"class":667},405590,1942,"L",[669,683,692],{"id":670,"source":671,"value":672,"adjusted":672,"lines":673,"halfLife":674,"formats":675,"excluded":679,"weight":354,"score":682},"duplication","jscpd",7.7,31194,8.5,[280,307,294,328,335,534,528,676,677,678],"sql","docker","makefile",[321,680,681],"text","data",53.5,{"id":684,"source":671,"value":685,"adjusted":686,"lines":687,"halfLife":688,"coverage":689,"weight":690,"score":691},"dead-code",29.1,28.7,36463,7.5,30.8,0.308,7,{"id":693,"source":671,"value":694,"adjusted":695,"lines":696,"halfLife":697,"weight":354,"score":698},"complexity",70.1,69.8,284203,50,38,{"total":700,"mean":701,"files":702},152013,78.3,[703,706,710,714,718,723,727,730,733,738],{"path":398,"complexity":704,"lines":400,"bytes":705},5289,714118,{"path":707,"complexity":708,"lines":322,"bytes":709},"web\u002Fmonaco\u002Fvs\u002Fassets\u002Fjson.worker-CoJx_OPf.js",4309,404061,{"path":711,"complexity":712,"lines":343,"bytes":713},"web\u002Fvscode-web\u002Fout\u002Fvs\u002Fbase\u002Fworker\u002FworkerMain.js",3852,399615,{"path":651,"complexity":715,"lines":716,"bytes":717},3463,35,358287,{"path":719,"complexity":720,"lines":721,"bytes":722},"web\u002Fmonaco\u002Fvs\u002Fassets\u002Feditor.worker-lj3bdIIn.js",2756,30,272787,{"path":724,"complexity":725,"lines":721,"bytes":726},"web\u002Fmonaco\u002Fvs\u002Fassets\u002FeditorWebWorkerMain-CA_vMoUU.js",2752,272368,{"path":658,"complexity":728,"lines":336,"bytes":729},2534,746384,{"path":403,"complexity":731,"lines":405,"bytes":732},1624,407712,{"path":734,"complexity":735,"lines":736,"bytes":737},"web\u002Fvscode-web\u002Fextensions\u002Fmarkdown-math\u002Fnotebook-out\u002Fkatex.js",1606,270,277333,{"path":739,"complexity":740,"lines":741,"bytes":742},"web\u002Fvscode-web\u002Fextensions\u002Fmarkdown-language-features\u002Fnotebook-out\u002Findex.js",1597,168,130124,{"percentage":744,"findings":745,"files":746,"byCategory":747,"largest":758},29.15,205,688,[748,751,753,756],{"category":749,"count":750},"unused-file",161,{"category":752,"count":381},"unused-export",{"category":754,"count":755},"unused-symbol",6,{"category":757,"count":331},"unused-import",[759,762,765,768,771,774,777,780,783,786],{"category":749,"path":760,"name":386,"line":354,"lines":761},"web\u002Fapp\u002Fworkbench.js",2040,{"category":749,"path":763,"name":386,"line":354,"lines":764},"web\u002Fapp\u002Fobservability.js",1651,{"category":749,"path":766,"name":386,"line":354,"lines":767},"web\u002Fapp\u002Fruns.js",1493,{"category":749,"path":769,"name":386,"line":354,"lines":770},"web\u002Fmonaco\u002Fvs\u002Floader.js",1368,{"category":749,"path":772,"name":386,"line":354,"lines":773},"web\u002Fapp\u002Fharness-motion.js",1308,{"category":749,"path":775,"name":386,"line":354,"lines":776},"web\u002Fapp\u002Fflows.js",1214,{"category":749,"path":778,"name":386,"line":354,"lines":779},"web\u002Fapp\u002Fcomposer.js",1143,{"category":749,"path":781,"name":386,"line":354,"lines":782},"web\u002Forchestrate.js",1034,{"category":749,"path":784,"name":386,"line":354,"lines":785},"web\u002Fapp\u002Fissue-drawer.js",990,{"category":749,"path":787,"name":386,"line":354,"lines":788},"web\u002Fapp\u002Fissues.js",955,{"\u002Ftrending\u002FTencent\u002FLoopForge":790},{"views":791,"visits":791},0,1794720264393]