Tencent/LoopForge
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.
The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
Most complex files
- web/monaco/vs/assets/html.worker-D1SL3iM8.js5289 cx
- web/monaco/vs/assets/json.worker-CoJx_OPf.js4309 cx
- web/vscode-web/out/vs/base/worker/workerMain.js3852 cx
- web/monaco/vs/editorWorkerHost-fVE1cjcC.js3463 cx
- web/monaco/vs/assets/editor.worker-lj3bdIIn.js2756 cx
- web/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js2752 cx
- web/monaco/vs/language/css/css.worker.js2534 cx
- web/monaco/vs/language/html/html.worker.js1624 cx
- web/vscode-web/extensions/markdown-math/notebook-out/katex.js1606 cx
- web/vscode-web/extensions/markdown-language-features/notebook-out/index.js1597 cx
Dead code 29.15% unused · 205 findings
- web/app/workbench.jsunused-file
- web/app/observability.jsunused-file
- web/app/runs.jsunused-file
- web/monaco/vs/loader.jsunused-file
- web/app/harness-motion.jsunused-file
- web/app/flows.jsunused-file
- web/app/composer.jsunused-file
- web/orchestrate.jsunused-file
- web/app/issue-drawer.jsunused-file
- web/app/issues.jsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 44 generated files: web/i18n-en.js, web/monaco/vs/abap-D-t0cyap.js, web/monaco/vs/basic-languages/monaco.contribution.js, web/monaco/vs/clojure-Y2auQMzK.js, web/monaco/vs/cpp-CkKPQIni.js, web/monaco/vs/ecl-30fUercY.js, web/monaco/vs/editor-KLE6jdfb.js, web/monaco/vs/editorWorkerHost-fVE1cjcC.js, web/monaco/vs/elixir-xjPaIfzF.js, web/monaco/vs/handlebars-CZi4pHCH.js, web/monaco/vs/index-049xrXrp.js, web/monaco/vs/index-CBVt3dzv.js, web/monaco/vs/jsonMode-DLUiMUrI.js, web/monaco/vs/julia-BwzEvaQw.js, web/monaco/vs/language/css/css.worker.js, web/monaco/vs/language/html/html.worker.js, web/monaco/vs/language/json/json.worker.js, web/monaco/vs/language/typescript/ts.worker.js, web/monaco/vs/lspLanguageFeatures-BIkJOWLw.js, web/monaco/vs/main-DsK8pnKg.js and 24 more.
Largest clones in the code
- 1008 lines in 3 placespython7,038 tokenslocal/.claude/skills/agent-observability/scripts/core/collector.py:1–1008local/.codebuddy/skills/agent-observability/scripts/core/collector.py:1–1008local/.cursor/skills/agent-observability/scripts/core/collector.py:1–1008
1"""通用采集层。 2 3这一层负责最基础的观测数据采集: 4- 维护 Pre/PostToolUse 的配对关系,计算工具耗时 5- 解析 transcript 增量,提取 usage / model / tool 记录 6- 把 skill/rule 命中情况写入 session state 7""" 8from __future__ import annotations 9 10import jsonFirst 10 of 1008 lines.
- 629 lines in 3 placespython5,215 tokenslocal/.claude/skills/agent-observability/scripts/build_dashboard_data.py:1–629local/.codebuddy/skills/agent-observability/scripts/build_dashboard_data.py:1–629local/.cursor/skills/agent-observability/scripts/build_dashboard_data.py:1–629
1#!/usr/bin/env python3 2"""把 `logs/metrics.ndjson` + `artifacts/*/workflow-state.json` + `.state.json` + 3`hooks/logs/auto-dispatch.log` 聚合成看板需要的一份 `dashboard-data.json` 快照。 4 5这是本地看板的数据源,不是 hook 链路的一部分——hook 只管往 metrics.ndjson 追加事件, 6这个脚本单独、按需运行(比如每次想看一眼看板之前手动跑一次,或者配合文件监听器)。 7复用 core.devflow 的 stage_snapshot 做 workflow-state.json 的 schema 归一化, 8不在这里重新实现一遍 Classic/Portable 的字段差异。 9 10用法:First 10 of 629 lines.
- 597 lines in 3 placespython3,751 tokenslocal/.claude/skills/agent-observability/scripts/core/agent_identity.py:1–597local/.codebuddy/skills/agent-observability/scripts/core/agent_identity.py:1–597local/.cursor/skills/agent-observability/scripts/core/agent_identity.py:1–597
1"""Agent 身份解析层。 2 3这一层负责统一解析“当前是谁在工作、又把任务派给了谁”: 4- 从 tool 调用参数里提取 agent 线索 5- 从 team inbox / mailbox 中补偿推断 agent 身份 6- 把解析结果写回 session state,供后续日志归因复用 7""" 8from __future__ import annotations 9 10import jsonFirst 10 of 597 lines.
7 more
- 496 lines in 3 placespython3,577 tokens
- 583 lines in 3 placespython3,548 tokens
- 578 lines in 3 placespython3,389 tokens
- 498 lines in 3 placespython3,007 tokens
- 474 lines in 3 placespython2,480 tokens
- 354 lines in 3 placesjavascript2,359 tokens
- 234 lines in 3 placespython1,834 tokens
Largest clones over all files, tests and data included
- 1086 lines in 3 placesmarkupmarkup18,394 tokenslocal/.claude/skills/agent-observability/scripts/dashboard/index.html:1–1086local/.codebuddy/skills/agent-observability/scripts/dashboard/index.html:1–1086local/.cursor/skills/agent-observability/scripts/dashboard/index.html:1–1086
1<!doctype html> 2<html lang="zh-CN"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6<title>Agent Observability</title> 7<style> 8:root{ 9 --surface-page:#f9f9f7; --surface-card:#fcfcfb; --surface-sunken:#f2f1ec; 10 --text-primary:#0b0b0b; --text-secondary:#52514e; --text-muted:#898781;First 10 of 1086 lines.
- 903 lines in 2 placescssstyles29,731 tokens
1/*! 2MIT License 3 4Copyright (c) 2026 cocofhu 5 6Permission is hereby granted, free of charge, to any person obtaining a copy 7of this software and associated documentation files (the "Software"), to deal 8in the Software without restriction, including without limitation the rights 9to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10copies of the Software, and to permit persons to whom the Software isFirst 10 of 903 lines.
- 401 lines in 2 placesjavascript15,121 tokensweb/monaco/vs/assets/html.worker-D1SL3iM8.js:74–474web/monaco/vs/language/html/html.worker.js:43–443
74`.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 … 75 76This metadata name is associated with the value contained by the [\`content\`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) att… 77 78* \`application-name\` which defines the name of the application running in the web page. 79 80 **Note:** 81 82 * Browsers may use this to identify the application. It is different from the [\`<title>\`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tit… 83 * Simple web pages shouldn't define an application-name.First 10 of 401 lines.
- 1008 lines in 3 placespython7,038 tokens
- 632 lines in 3 placespythontests5,387 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| go | 500 | 133,218 | 206 | 2,025 | 1.52% |
| python | 91 | 25,450 | 66 | 10,683 | 41.98% |
| javascript | 183 | 45,606 | 57 | 1,835 | 4.02% |
| jsx | 34 | 14,022 | 11 | 96 | 0.68% |
| bash | 39 | 3,574 | 10 | 578 | 16.17% |
| tsx | 5 | 1,636 | 3 | 31 | 1.89% |
| typescript | 5 | 246 | 1 | 10 | 4.07% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| go | 1,335 | 276,038 | 1,389 | 12,091 | 4.38% |
| markdown | 255 | 21,556 | 196 | 9,595 | 44.51% |
| python | 141 | 36,893 | 101 | 15,814 | 42.86% |
| txt | 9 | 3,518 | 98 | 1,837 | 52.22% |
| javascript | 326 | 63,324 | 70 | 2,323 | 3.67% |
| css | 76 | 29,588 | 67 | 1,612 | 5.45% |
| markup | 62 | 11,310 | 54 | 4,701 | 41.56% |
| jsx | 57 | 19,341 | 36 | 335 | 1.73% |
| bash | 66 | 4,194 | 21 | 703 | 16.76% |
| json | 47 | 3,535 | 20 | 819 | 23.17% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Nov 15, 2026 | #9 | 985 (+33) | 2,480 | 483,465 | 2,092 | 10.44% | 6.82% | E 35.2 | dd56585 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.