[{"data":1,"prerenderedAt":803},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-openai\u002Fcodex-security":249,"page-views-\u002Ftrending\u002Fopenai\u002Fcodex-security":801},[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":280},"openai\u002Fcodex-security","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex-security",[253,268],{"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-12",7,11883,52,"2911786f243f08fd61ad854f5c527e7b0c404ccc",1529,608712,1024,11218,1.84,0.55,566,60,"C",{"date":269,"rank":270,"stars":271,"starsToday":272,"headSha":273,"sources":274,"lines":275,"clones":276,"duplicatedLines":277,"percentage":278,"codePercentage":264,"codeSources":279,"healthScore":266,"healthGrade":267},"2026-11-13",2,12594,643,"4822a9cbc4c4976b6f81ba5afd50787af923ba91",1534,609788,1028,11271,1.85,567,{"date":269,"generatedAt":281,"name":250,"url":251,"description":282,"language":283,"stars":271,"starsToday":272,"defaultBranch":284,"headSha":273,"durationMs":285,"total":286,"formats":290,"topClones":354,"code":535,"health":673,"complexity":706,"deadCode":759},"2026-11-13T05:21:16.043Z","OpenAI's Codex Security CLI and TypeScript SDK for finding, validating, and fixing security vulnerabilities. npm: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@openai\u002Fcodex-security","TypeScript","main",3199,{"sources":274,"lines":275,"tokens":287,"clones":276,"duplicatedLines":277,"duplicatedTokens":288,"percentage":278,"percentageTokens":289},3844931,73417,1.91,[291,298,305,312,319,326,332,339,346,351],{"format":292,"sources":293,"lines":294,"clones":295,"duplicatedLines":296,"percentage":297},"typescript",895,447256,799,8597,1.92,{"format":299,"sources":300,"lines":301,"clones":302,"duplicatedLines":303,"percentage":304},"python",158,102601,180,1704,1.66,{"format":306,"sources":307,"lines":308,"clones":309,"duplicatedLines":310,"percentage":311},"yaml",74,7628,15,230,3.02,{"format":313,"sources":314,"lines":315,"clones":316,"duplicatedLines":317,"percentage":318},"json",61,9591,11,442,4.61,{"format":320,"sources":321,"lines":322,"clones":323,"duplicatedLines":324,"percentage":325},"markup",3,962,9,170,17.67,{"format":327,"sources":328,"lines":329,"clones":255,"duplicatedLines":330,"percentage":331},"javascript",105,16983,57,0.34,{"format":333,"sources":334,"lines":335,"clones":336,"duplicatedLines":337,"percentage":338},"markdown",141,17739,6,54,0.3,{"format":340,"sources":341,"lines":342,"clones":343,"duplicatedLines":344,"percentage":345},"txt",4,86,1,17,19.77,{"format":347,"sources":348,"lines":349,"clones":350,"duplicatedLines":350,"percentage":350},"rust",8,2745,0,{"format":352,"sources":266,"lines":353,"clones":350,"duplicatedLines":350,"percentage":350},"bash",1866,[355,377,397,442,451,463,492,501,510,520],{"format":292,"lines":356,"tokens":357,"first":358,"others":361,"copies":270,"excerpt":364,"kind":376},434,1971,{"name":359,"start":321,"end":360},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fmodels.ts",436,[362],{"name":363,"start":321,"end":360},"sdk\u002Ftypescript\u002Fsrc\u002Fmodels.ts",{"lines":365,"total":356},[366,367,368,369,370,371,372,373,374,375],"export interface ScanManifest {","  documentType: \"codex-security.scan-manifest\";","  schemaVersion: \"1.0\";","  scan: {","    id: string;","    producer: {","      name: string;","      version: string;","      [k: string]: unknown;","    };","code",{"format":313,"lines":378,"tokens":295,"first":379,"others":381,"copies":270,"excerpt":384,"kind":396},226,{"name":380,"start":343,"end":378},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fdeep-scan\u002Fproject-config.schema.json",[382],{"name":383,"start":343,"end":378},"sdk\u002Ftypescript\u002Fschemas\u002Fproject-config.schema.json",{"lines":385,"total":378},[386,387,388,389,390,391,392,393,394,395],"{","  \"$schema\": \"http:\u002F\u002Fjson-schema.org\u002Fdraft-07\u002Fschema#\",","  \"type\": \"object\",","  \"properties\": {","    \"$schema\": {","      \"description\": \"Editor schema URI or relative path. The CLI does not fetch or select a validator from this value.\",","      \"type\": \"string\",","      \"minLength\": 1","    },","    \"auth\": {","data",{"format":292,"lines":398,"tokens":266,"first":399,"others":403,"copies":428,"excerpt":429,"kind":441},10,{"name":400,"start":401,"end":402},"sdk\u002Ftypescript\u002Ftests-ts\u002Fapi.test.ts",5945,5954,[404,407,410,413,416,419,422,425],{"name":400,"start":405,"end":406},6253,6262,{"name":400,"start":408,"end":409},6351,6360,{"name":400,"start":411,"end":412},6693,6702,{"name":400,"start":414,"end":415},6797,6806,{"name":400,"start":417,"end":418},7222,7231,{"name":400,"start":420,"end":421},7330,7339,{"name":400,"start":423,"end":424},7444,7453,{"name":400,"start":426,"end":427},8695,8704,12,{"lines":430,"total":398},[431,432,433,434,435,436,437,438,439,440],"      pollAllowed.resolve();","    }","    return { events: completedEvents(\"thread-1\", events()) };","  }),","});","\u002F\u002F The fake stream has no process handle to keep the unref'ed poll alive.","const keepAlive = setInterval(() => {}, 1_000);","try {","  await client.run(repository, {","    onProgress: (update) => updates.push(update),","tests",{"format":306,"lines":342,"tokens":272,"first":443,"others":447,"copies":270,"kind":450},{"name":444,"start":445,"end":446},"github-action\u002FREADME.md",301,386,[448],{"name":449,"start":343,"end":342},"github-action\u002Fexamples\u002Fpull-request.yml","docs",{"format":320,"lines":452,"tokens":453,"first":454,"others":458,"copies":270,"kind":320},34,580,{"name":455,"start":456,"end":457},"plugins\u002Fcodex-security\u002Fskills\u002Fthreat-model-visualize\u002Fassets\u002Fcontext-reference-overview.svg",163,196,[459],{"name":460,"start":461,"end":462},"plugins\u002Fcodex-security\u002Fskills\u002Fthreat-model-visualize\u002Fassets\u002Fcontext-reference-path.svg",247,280,{"format":292,"lines":398,"tokens":314,"first":464,"others":467,"copies":398,"kind":441},{"name":400,"start":465,"end":466},7332,7341,[468,471,474,477,480,483,486,489],{"name":400,"start":469,"end":470},7446,7455,{"name":400,"start":472,"end":473},7583,7592,{"name":400,"start":475,"end":476},7875,7884,{"name":400,"start":478,"end":479},8027,8035,{"name":400,"start":481,"end":482},8697,8706,{"name":400,"start":484,"end":485},8896,8905,{"name":400,"start":487,"end":488},9029,9038,{"name":400,"start":490,"end":491},13211,13220,{"format":292,"lines":493,"tokens":494,"first":495,"others":497,"copies":270,"kind":376},110,522,{"name":496,"start":343,"end":493},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fcontract-values.ts",[498],{"name":499,"start":270,"end":500},"sdk\u002Ftypescript\u002Fsrc\u002Fcontract-values.ts",111,{"format":320,"lines":502,"tokens":494,"first":503,"others":506,"copies":270,"kind":320},18,{"name":455,"start":504,"end":505},197,214,[507],{"name":460,"start":508,"end":509},281,298,{"format":320,"lines":511,"tokens":512,"first":513,"others":516,"copies":270,"kind":320},22,417,{"name":455,"start":514,"end":515},215,236,[517],{"name":460,"start":518,"end":519},299,320,{"format":292,"lines":316,"tokens":521,"first":522,"others":525,"copies":348,"kind":441},53,{"name":400,"start":523,"end":524},5091,5101,[526,527,528,529,530,531,532],{"name":400,"start":465,"end":466},{"name":400,"start":469,"end":470},{"name":400,"start":472,"end":473},{"name":400,"start":475,"end":476},{"name":400,"start":478,"end":479},{"name":400,"start":481,"end":482},{"name":400,"start":533,"end":534},13526,13534,{"sources":279,"lines":536,"tokens":537,"clones":538,"duplicatedLines":539,"duplicatedTokens":540,"percentage":264,"percentageTokens":541,"formats":542,"topClones":565,"generated":671},186555,1091114,44,1023,5501,0.5,[543,549,553,556,558,560,563],{"format":292,"sources":544,"lines":545,"clones":546,"duplicatedLines":547,"percentage":548},430,138497,27,874,0.63,{"format":299,"sources":521,"lines":550,"clones":551,"duplicatedLines":552,"percentage":331},34188,13,115,{"format":327,"sources":330,"lines":554,"clones":341,"duplicatedLines":452,"percentage":555},9847,0.35,{"format":347,"sources":255,"lines":557,"clones":350,"duplicatedLines":350,"percentage":350},2194,{"format":352,"sources":502,"lines":559,"clones":350,"duplicatedLines":350,"percentage":350},1054,{"format":561,"sources":343,"lines":562,"clones":350,"duplicatedLines":350,"percentage":350},"tsx",768,{"format":564,"sources":343,"lines":255,"clones":350,"duplicatedLines":350,"percentage":350},"powershell",[566,572,588,606,615,624,633,642,652,661],{"format":292,"lines":356,"tokens":357,"first":567,"others":568,"copies":270,"excerpt":570,"kind":376},{"name":359,"start":321,"end":360},[569],{"name":363,"start":321,"end":360},{"lines":571,"total":356},[366,367,368,369,370,371,372,373,374,375],{"format":292,"lines":493,"tokens":494,"first":573,"others":574,"copies":270,"excerpt":576,"kind":376},{"name":496,"start":343,"end":493},[575],{"name":499,"start":270,"end":500},{"lines":577,"total":493},[578,579,580,581,582,583,584,585,586,587],"import { hash } from \"node:crypto\";","import { isAbsolute, posix } from \"node:path\";","import type { Finding } from \".\u002Fmodels.js\";","import { isWindowsUnsafePathComponent } from \".\u002Fwindows-path.js\";","","export class SealedContractError extends Error {","  constructor(message: string, options?: ErrorOptions) {","    super(message, options);","    this.name = new.target.name;","  }",{"format":292,"lines":337,"tokens":589,"first":590,"others":592,"copies":270,"excerpt":596,"kind":376},268,{"name":591,"start":343,"end":337},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fwindows-path.ts",[593],{"name":594,"start":270,"end":595},"sdk\u002Ftypescript\u002Fsrc\u002Fwindows-path.ts",55,{"lines":597,"total":337},[598,582,599,600,582,601,602,603,604,605],"import { parse, toNamespacedPath } from \"node:path\";","\u002F\u002F SQLite's default win32 VFS allows MAX_PATH * 4 UTF-8 bytes, including room for \"-journal\".","const SQLITE_WINDOWS_MAX_FILENAME_BYTES = 260 * 4 - 8;","export function sqliteFilename(path: string): string {","  \u002F\u002F Ordinary paths also preserve Win32 handling of device names and trailing spaces or dots.","  if (","    process.platform !== \"win32\" ||","    path.length + 8 \u003C 260 ||",{"format":292,"lines":607,"tokens":608,"first":609,"others":611,"copies":270,"kind":376},47,232,{"name":610,"start":343,"end":607},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fexecutable-path.ts",[612],{"name":613,"start":270,"end":614},"sdk\u002Ftypescript\u002Fsrc\u002Fexecutable-path.ts",48,{"format":292,"lines":616,"tokens":617,"first":618,"others":620,"copies":270,"kind":376},24,184,{"name":619,"start":343,"end":616},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fworkbench-arguments.ts",[621],{"name":622,"start":270,"end":623},"sdk\u002Ftypescript\u002Fsrc\u002Fworkbench-arguments.ts",25,{"format":292,"lines":428,"tokens":330,"first":625,"others":627,"copies":321,"kind":376},{"name":359,"start":505,"end":626},225,[628,630],{"name":359,"start":378,"end":629},237,{"name":359,"start":631,"end":632},238,249,{"format":292,"lines":546,"tokens":634,"first":635,"others":638,"copies":270,"kind":376},109,{"name":636,"start":270,"end":637},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fdeep-scan-settings.ts",28,[639],{"name":640,"start":428,"end":641},"sdk\u002Ftypescript\u002Fsrc\u002Fdeep-scan-defaults.ts",38,{"format":299,"lines":323,"tokens":643,"first":644,"others":648,"copies":270,"kind":376},75,{"name":645,"start":646,"end":647},"plugins\u002Fcodex-security\u002Fscripts\u002Fworkbench_db.py",1991,1999,[649],{"name":645,"start":650,"end":651},2079,2087,{"format":299,"lines":348,"tokens":643,"first":653,"others":657,"copies":270,"kind":376},{"name":654,"start":655,"end":656},"plugins\u002Fcodex-security\u002Fscripts\u002Fworkbench_scan_history.py",789,796,[658],{"name":654,"start":659,"end":660},969,976,{"format":292,"lines":348,"tokens":662,"first":663,"others":667,"copies":270,"kind":376},71,{"name":664,"start":665,"end":666},"evals\u002Ftriage-finding\u002Fscripts\u002Ftest-triage-provider.mts",1197,1204,[668],{"name":664,"start":669,"end":670},1419,1426,{"files":350,"minified":350,"sample":672},[],{"score":266,"grade":267,"size":674,"dimensions":678},{"lines":675,"files":676,"class":677},571147,1176,"L",[679,691,699],{"id":680,"source":681,"value":682,"adjusted":682,"lines":683,"halfLife":684,"formats":685,"excluded":688,"weight":343,"score":690},"duplication","jscpd",1.8,10358,8.5,[292,299,327,347,352,561,564,686,687],"docker","batch",[320,689,396],"text",86.2,{"id":692,"source":681,"value":693,"adjusted":693,"lines":694,"halfLife":695,"coverage":696,"weight":697,"score":698},"dead-code",3.3,18941,7.5,99.3,0.993,73.5,{"id":700,"source":681,"value":701,"adjusted":702,"lines":703,"halfLife":704,"weight":343,"score":705},"complexity",77.7,77.5,443506,50,34.2,{"total":707,"mean":708,"files":709},80434,68.4,[710,715,719,724,729,734,739,744,749,754],{"path":711,"complexity":712,"lines":713,"bytes":714},"sdk\u002Ftypescript\u002Fsrc\u002Fcli.ts",2811,13714,493239,{"path":400,"complexity":716,"lines":717,"bytes":718},2627,19751,716110,{"path":720,"complexity":721,"lines":722,"bytes":723},"sdk\u002Ftypescript\u002Fsrc\u002Fapi.ts",1470,7847,279132,{"path":725,"complexity":726,"lines":727,"bytes":728},"plugins\u002Fcodex-security\u002Fscripts\u002Fworkbench\u002Fretained_coverage.py",1287,3193,148411,{"path":730,"complexity":731,"lines":732,"bytes":733},"sdk\u002Ftypescript\u002Fsrc\u002Fcost.ts",1235,4159,148628,{"path":735,"complexity":736,"lines":737,"bytes":738},"sdk\u002Ftypescript\u002Fsrc\u002Fruntime.ts",1064,4826,158509,{"path":740,"complexity":741,"lines":742,"bytes":743},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fartifact-scan-draft.ts",1048,3524,118549,{"path":745,"complexity":746,"lines":747,"bytes":748},"plugins\u002Fcodex-security\u002Fscripts\u002Ffinalize_scan_contract.py",949,3471,147094,{"path":750,"complexity":751,"lines":752,"bytes":753},"sdk\u002Ftypescript\u002Ftests-ts\u002Fexternal-findings-publish.test.ts",805,9281,327460,{"path":755,"complexity":756,"lines":757,"bytes":758},"sdk\u002Ftypescript\u002Ftests-ts\u002Fcost.test.ts",696,7504,244915,{"percentage":760,"findings":514,"files":761,"byCategory":762,"largest":771},3.34,1178,[763,765,768],{"category":764,"count":500},"unused-file",{"category":766,"count":767},"unused-export",65,{"category":769,"count":770},"unused-symbol",39,[772,775,778,781,783,786,789,792,795,798],{"category":764,"path":773,"name":582,"line":343,"lines":774},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fsealed-contract.ts",1151,{"category":764,"path":776,"name":582,"line":343,"lines":777},"plugins\u002Fcodex-security\u002Fnative\u002Fproof-process-windows.mts",1056,{"category":764,"path":779,"name":582,"line":343,"lines":780},"evals\u002Fsecret-discovery\u002Ftest_discovery.mts",1013,{"category":764,"path":782,"name":582,"line":343,"lines":562},"sdk\u002Ftypescript\u002Fsrc\u002Fpatch-tui.tsx",{"category":764,"path":784,"name":582,"line":343,"lines":785},"evals\u002Fsecret-discovery\u002Ftest_runtime.mts",758,{"category":764,"path":787,"name":582,"line":343,"lines":788},"evals\u002Fstandard-time-budget\u002Ftest_grading.mts",553,{"category":764,"path":790,"name":582,"line":343,"lines":791},"plugins\u002Fcodex-security\u002Fnative\u002Fproof-windows.mts",440,{"category":764,"path":793,"name":582,"line":343,"lines":794},"plugins\u002Fcodex-security\u002Fmcp-app\u002Fsrc\u002Fworkbench\u002Flocal-dedupe.ts",391,{"category":764,"path":796,"name":582,"line":343,"lines":797},"plugins\u002Fcodex-security\u002Fnative\u002Fproof-windows-wide.mts",379,{"category":764,"path":799,"name":582,"line":343,"lines":800},"evals\u002Fsecret-discovery\u002Fharness.mts",373,{"\u002Ftrending\u002Fopenai\u002Fcodex-security":802},{"views":350,"visits":350},1794624618448]