{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T16:00:41.719531Z","repo":{"ref":{"host":"github.com","owner":"JuliusBrussee","name":"caveman"},"default_branch":"main","clone_url":"https://github.com/JuliusBrussee/caveman.git","html_url":"https://github.com/JuliusBrussee/caveman","description":"🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.","stars":119876,"forks":6991,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":21974,"primary_language":"Go","license_spdx":"Apache-2.0","created_at":"2026-04-04T10:03:00Z","pushed_at":"2026-11-14T07:52:12Z","security_policy_url":"https://github.com/JuliusBrussee/caveman/security/policy","distribution":{"owner_created_at":"2022-04-21T20:06:45Z","owner_type":"User","release_assets":[{"name":"caveman-browser-1.3.0.zip","size":179862,"download_count":429,"release_tag":"v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.1.0/caveman-browser-1.3.0.zip"},{"name":"caveman-browser-firefox-1.3.0.zip","size":180101,"download_count":89,"release_tag":"v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.1.0/caveman-browser-firefox-1.3.0.zip"},{"name":"caveman.skill","size":4254,"download_count":1055,"release_tag":"v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.1.0/caveman.skill"},{"name":"caveman-ai-middleware-1.1.0.cdx.json","size":2307,"download_count":5,"release_tag":"middleware-ts-v1.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/middleware-ts-v1.1.0/caveman-ai-middleware-1.1.0.cdx.json"},{"name":"caveman-middleware-1.0.1.cdx.json","size":5754,"download_count":4,"release_tag":"middleware-python-v1.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/middleware-python-v1.0.1/caveman-middleware-1.0.1.cdx.json"},{"name":"caveman-blocks_darwin_amd64","size":6057456,"download_count":92,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-blocks_darwin_amd64"},{"name":"caveman-blocks_darwin_arm64","size":5704418,"download_count":1619,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-blocks_darwin_arm64"},{"name":"caveman-blocks_linux_amd64","size":5935266,"download_count":1494,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-blocks_linux_amd64"},{"name":"caveman-blocks_linux_arm64","size":5636258,"download_count":48,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-blocks_linux_arm64"},{"name":"caveman-blocks_win32_amd64","size":6166528,"download_count":2821,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-blocks_win32_amd64"},{"name":"caveman-browse_darwin_amd64","size":35697280,"download_count":107,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_darwin_amd64"},{"name":"caveman-browse_darwin_arm64","size":34835378,"download_count":2093,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_darwin_arm64"},{"name":"caveman-browse_linux_amd64","size":33021300,"download_count":4401,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_linux_amd64"},{"name":"caveman-browse_linux_arm64","size":31920282,"download_count":86,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_linux_arm64"},{"name":"caveman-browse_win32_amd64","size":34204160,"download_count":3461,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_win32_amd64"},{"name":"caveman-browse_win32_arm64","size":32776192,"download_count":21,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-browse_win32_arm64"},{"name":"caveman-engine_darwin_amd64","size":31647342,"download_count":125,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_darwin_amd64"},{"name":"caveman-engine_darwin_arm64","size":31425490,"download_count":2348,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_darwin_arm64"},{"name":"caveman-engine_linux_amd64","size":30971896,"download_count":4648,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_linux_amd64"},{"name":"caveman-engine_linux_arm64","size":30507712,"download_count":99,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_linux_arm64"},{"name":"caveman-engine_win32_amd64","size":32046080,"download_count":3547,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_win32_amd64"},{"name":"caveman-engine_win32_arm64","size":31377920,"download_count":22,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-engine_win32_arm64"},{"name":"caveman-mcp_darwin_amd64","size":27649632,"download_count":120,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_darwin_amd64"},{"name":"caveman-mcp_darwin_arm64","size":27256898,"download_count":2327,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_darwin_arm64"},{"name":"caveman-mcp_linux_amd64","size":25177942,"download_count":4642,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_linux_amd64"},{"name":"caveman-mcp_linux_arm64","size":24642906,"download_count":100,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_linux_arm64"},{"name":"caveman-mcp_win32_amd64","size":26224640,"download_count":3565,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_win32_amd64"},{"name":"caveman-mcp_win32_arm64","size":25452544,"download_count":22,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-mcp_win32_arm64"},{"name":"caveman-proxy_darwin_amd64","size":48933114,"download_count":124,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_darwin_amd64"},{"name":"caveman-proxy_darwin_arm64","size":47654626,"download_count":2457,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_darwin_arm64"},{"name":"caveman-proxy_linux_amd64","size":46534352,"download_count":4763,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_linux_amd64"},{"name":"caveman-proxy_linux_arm64","size":44885272,"download_count":109,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_linux_arm64"},{"name":"caveman-proxy_win32_amd64","size":48093184,"download_count":3904,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_win32_amd64"},{"name":"caveman-proxy_win32_arm64","size":46031360,"download_count":21,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-proxy_win32_arm64"},{"name":"caveman-shrink_darwin_amd64","size":27530224,"download_count":109,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_darwin_amd64"},{"name":"caveman-shrink_darwin_arm64","size":27165458,"download_count":2096,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_darwin_arm64"},{"name":"caveman-shrink_linux_amd64","size":25066175,"download_count":4388,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_linux_amd64"},{"name":"caveman-shrink_linux_arm64","size":24548099,"download_count":87,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_linux_arm64"},{"name":"caveman-shrink_win32_amd64","size":26108416,"download_count":3484,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_win32_amd64"},{"name":"caveman-shrink_win32_arm64","size":25349120,"download_count":20,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/caveman-shrink_win32_arm64"},{"name":"cavemem_darwin_amd64","size":27691216,"download_count":109,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_darwin_amd64"},{"name":"cavemem_darwin_arm64","size":27323682,"download_count":2097,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_darwin_arm64"},{"name":"cavemem_linux_amd64","size":25224641,"download_count":4396,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_linux_amd64"},{"name":"cavemem_linux_arm64","size":24719025,"download_count":86,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_linux_arm64"},{"name":"cavemem_win32_amd64","size":26266112,"download_count":3493,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_win32_amd64"},{"name":"cavemem_win32_arm64","size":25488896,"download_count":20,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/cavemem_win32_arm64"},{"name":"checksums.txt","size":4984,"download_count":12132,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/checksums.txt"},{"name":"checksums.txt.keysig","size":291,"download_count":11537,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/checksums.txt.keysig"},{"name":"COPYING.mingw-w64","size":2326,"download_count":17,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/COPYING.mingw-w64"},{"name":"COPYRIGHT.musl","size":6204,"download_count":439,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/COPYRIGHT.musl"},{"name":"LICENSE","size":11358,"download_count":450,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/LICENSE"},{"name":"LICENSE-MIT","size":1071,"download_count":445,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/LICENSE-MIT"},{"name":"LICENSE.caveman-blocks","size":11358,"download_count":10,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/LICENSE.caveman-blocks"},{"name":"LICENSE.zig","size":1080,"download_count":446,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/LICENSE.zig"},{"name":"LICENSING.md","size":3645,"download_count":448,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/LICENSING.md"},{"name":"modules.json","size":18237,"download_count":6378,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/modules.json"},{"name":"NOTICE","size":2285,"download_count":450,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/NOTICE"},{"name":"NOTICE.browse","size":1379,"download_count":231,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/NOTICE.browse"},{"name":"NOTICE.engine-pixel","size":2001,"download_count":665,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/NOTICE.engine-pixel"},{"name":"RELEASE","size":11,"download_count":35,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/RELEASE"},{"name":"SPLEEN_LICENSE.txt","size":1313,"download_count":664,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/SPLEEN_LICENSE.txt"},{"name":"THIRD_PARTY_GO_LICENSES.tar.gz","size":8808,"download_count":669,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/THIRD_PARTY_GO_LICENSES.tar.gz"},{"name":"UNIFONT_LICENSE.txt","size":24142,"download_count":666,"release_tag":"bin-v4.1.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/UNIFONT_LICENSE.txt"},{"name":"caveman-blocks_darwin_amd64","size":6057456,"download_count":34,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-blocks_darwin_amd64"},{"name":"caveman-blocks_darwin_arm64","size":5704418,"download_count":163,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-blocks_darwin_arm64"},{"name":"caveman-blocks_linux_amd64","size":5935266,"download_count":242,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-blocks_linux_amd64"},{"name":"caveman-blocks_linux_arm64","size":5636258,"download_count":21,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-blocks_linux_arm64"},{"name":"caveman-blocks_win32_amd64","size":6166528,"download_count":231,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-blocks_win32_amd64"},{"name":"caveman-browse_darwin_amd64","size":35560784,"download_count":26,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_darwin_amd64"},{"name":"caveman-browse_darwin_arm64","size":34710194,"download_count":307,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_darwin_arm64"},{"name":"caveman-browse_linux_amd64","size":32896284,"download_count":274,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_linux_amd64"},{"name":"caveman-browse_linux_arm64","size":31820850,"download_count":30,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_linux_arm64"},{"name":"caveman-browse_win32_amd64","size":34075648,"download_count":233,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_win32_amd64"},{"name":"caveman-browse_win32_arm64","size":32661504,"download_count":24,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-browse_win32_arm64"},{"name":"caveman-engine_darwin_amd64","size":31460786,"download_count":30,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_darwin_amd64"},{"name":"caveman-engine_darwin_arm64","size":31262274,"download_count":708,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_darwin_arm64"},{"name":"caveman-engine_linux_amd64","size":30798072,"download_count":682,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_linux_amd64"},{"name":"caveman-engine_linux_arm64","size":30346816,"download_count":109,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_linux_arm64"},{"name":"caveman-engine_win32_amd64","size":31869440,"download_count":309,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_win32_amd64"},{"name":"caveman-engine_win32_arm64","size":31215616,"download_count":25,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-engine_win32_arm64"},{"name":"caveman-mcp_darwin_amd64","size":27521280,"download_count":31,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_darwin_amd64"},{"name":"caveman-mcp_darwin_arm64","size":27148178,"download_count":691,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_darwin_arm64"},{"name":"caveman-mcp_linux_amd64","size":25051963,"download_count":665,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_linux_amd64"},{"name":"caveman-mcp_linux_arm64","size":24543887,"download_count":111,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_linux_arm64"},{"name":"caveman-mcp_win32_amd64","size":26097152,"download_count":308,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_win32_amd64"},{"name":"caveman-mcp_win32_arm64","size":25336832,"download_count":23,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-mcp_win32_arm64"},{"name":"caveman-proxy_darwin_amd64","size":48694741,"download_count":28,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_darwin_amd64"},{"name":"caveman-proxy_darwin_arm64","size":47439058,"download_count":698,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_darwin_arm64"},{"name":"caveman-proxy_linux_amd64","size":46315504,"download_count":794,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_linux_amd64"},{"name":"caveman-proxy_linux_arm64","size":44698520,"download_count":113,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_linux_arm64"},{"name":"caveman-proxy_win32_amd64","size":47872000,"download_count":316,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_win32_amd64"},{"name":"caveman-proxy_win32_arm64","size":45843968,"download_count":25,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-proxy_win32_arm64"},{"name":"caveman-shrink_darwin_amd64","size":27283072,"download_count":21,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_darwin_amd64"},{"name":"caveman-shrink_darwin_arm64","size":26932898,"download_count":304,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_darwin_arm64"},{"name":"caveman-shrink_linux_amd64","size":24827158,"download_count":287,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_linux_amd64"},{"name":"caveman-shrink_linux_arm64","size":24350618,"download_count":27,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_linux_arm64"},{"name":"caveman-shrink_win32_amd64","size":25864704,"download_count":225,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_win32_amd64"},{"name":"caveman-shrink_win32_arm64","size":25122816,"download_count":24,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/caveman-shrink_win32_arm64"},{"name":"cavemem_darwin_amd64","size":27590704,"download_count":21,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_darwin_amd64"},{"name":"cavemem_darwin_arm64","size":27201730,"download_count":269,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_darwin_arm64"},{"name":"cavemem_linux_amd64","size":25128467,"download_count":263,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_linux_amd64"},{"name":"cavemem_linux_arm64","size":24560579,"download_count":29,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_linux_arm64"},{"name":"cavemem_win32_amd64","size":26169344,"download_count":228,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_win32_amd64"},{"name":"cavemem_win32_arm64","size":25400832,"download_count":22,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/cavemem_win32_arm64"},{"name":"checksums.txt","size":4984,"download_count":1555,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/checksums.txt"},{"name":"checksums.txt.keysig","size":291,"download_count":574,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/checksums.txt.keysig"},{"name":"COPYING.mingw-w64","size":2326,"download_count":97,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/COPYING.mingw-w64"},{"name":"COPYRIGHT.musl","size":6204,"download_count":787,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/COPYRIGHT.musl"},{"name":"LICENSE","size":11358,"download_count":936,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/LICENSE"},{"name":"LICENSE-MIT","size":1071,"download_count":927,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/LICENSE-MIT"},{"name":"LICENSE.caveman-blocks","size":11358,"download_count":22,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/LICENSE.caveman-blocks"},{"name":"LICENSE.zig","size":1080,"download_count":855,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/LICENSE.zig"},{"name":"LICENSING.md","size":3645,"download_count":925,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/LICENSING.md"},{"name":"modules.json","size":18237,"download_count":541,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/modules.json"},{"name":"NOTICE","size":2285,"download_count":932,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/NOTICE"},{"name":"NOTICE.browse","size":1379,"download_count":342,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/NOTICE.browse"},{"name":"NOTICE.engine-pixel","size":2001,"download_count":1241,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/NOTICE.engine-pixel"},{"name":"RELEASE","size":11,"download_count":42,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/RELEASE"},{"name":"SPLEEN_LICENSE.txt","size":1313,"download_count":1241,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/SPLEEN_LICENSE.txt"},{"name":"THIRD_PARTY_GO_LICENSES.tar.gz","size":8808,"download_count":1248,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/THIRD_PARTY_GO_LICENSES.tar.gz"},{"name":"UNIFONT_LICENSE.txt","size":24142,"download_count":1241,"release_tag":"bin-v4.0.2","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/UNIFONT_LICENSE.txt"},{"name":"caveman-browser-1.3.0.zip","size":179862,"download_count":1344,"release_tag":"v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.1/caveman-browser-1.3.0.zip"},{"name":"caveman-browser-firefox-1.3.0.zip","size":180101,"download_count":277,"release_tag":"v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.1/caveman-browser-firefox-1.3.0.zip"},{"name":"caveman.skill","size":4410,"download_count":3293,"release_tag":"v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.1/caveman.skill"},{"name":"caveman-browser-1.3.0.zip","size":179862,"download_count":43,"release_tag":"v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.0/caveman-browser-1.3.0.zip"},{"name":"caveman-browser-firefox-1.3.0.zip","size":180101,"download_count":25,"release_tag":"v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.0/caveman-browser-firefox-1.3.0.zip"},{"name":"caveman.skill","size":4410,"download_count":71,"release_tag":"v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.0/caveman.skill"},{"name":"caveman-blocks_darwin_amd64","size":6057456,"download_count":377,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-blocks_darwin_amd64"},{"name":"caveman-blocks_darwin_arm64","size":5704418,"download_count":7674,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-blocks_darwin_arm64"},{"name":"caveman-blocks_linux_amd64","size":5935266,"download_count":5907,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-blocks_linux_amd64"},{"name":"caveman-blocks_linux_arm64","size":5636258,"download_count":247,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-blocks_linux_arm64"},{"name":"caveman-blocks_win32_amd64","size":6166528,"download_count":11789,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-blocks_win32_amd64"},{"name":"caveman-browse_darwin_amd64","size":35550000,"download_count":443,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_darwin_amd64"},{"name":"caveman-browse_darwin_arm64","size":34707570,"download_count":8802,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_darwin_arm64"},{"name":"caveman-browse_linux_amd64","size":32882851,"download_count":17080,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_linux_amd64"},{"name":"caveman-browse_linux_arm64","size":31750017,"download_count":434,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_linux_arm64"},{"name":"caveman-browse_win32_amd64","size":34059776,"download_count":13913,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_win32_amd64"},{"name":"caveman-browse_win32_arm64","size":32647680,"download_count":47,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-browse_win32_arm64"},{"name":"caveman-engine_darwin_amd64","size":31445698,"download_count":454,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_darwin_amd64"},{"name":"caveman-engine_darwin_arm64","size":31242914,"download_count":9181,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_darwin_arm64"},{"name":"caveman-engine_linux_amd64","size":30788792,"download_count":17278,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_linux_amd64"},{"name":"caveman-engine_linux_arm64","size":30337888,"download_count":451,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_linux_arm64"},{"name":"caveman-engine_win32_amd64","size":31860224,"download_count":14350,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_win32_amd64"},{"name":"caveman-engine_win32_arm64","size":31206400,"download_count":51,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-engine_win32_arm64"},{"name":"caveman-mcp_darwin_amd64","size":27502352,"download_count":450,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_darwin_amd64"},{"name":"caveman-mcp_darwin_arm64","size":27129106,"download_count":9192,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_darwin_arm64"},{"name":"caveman-mcp_linux_amd64","size":25037878,"download_count":17278,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_linux_amd64"},{"name":"caveman-mcp_linux_arm64","size":24537210,"download_count":479,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_linux_arm64"},{"name":"caveman-mcp_win32_amd64","size":26082304,"download_count":14294,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_win32_amd64"},{"name":"caveman-mcp_win32_arm64","size":25322496,"download_count":55,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-mcp_win32_arm64"},{"name":"caveman-proxy_darwin_amd64","size":48657345,"download_count":470,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_darwin_amd64"},{"name":"caveman-proxy_darwin_arm64","size":47417890,"download_count":9613,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_darwin_arm64"},{"name":"caveman-proxy_linux_amd64","size":46281520,"download_count":17643,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_linux_amd64"},{"name":"caveman-proxy_linux_arm64","size":44669080,"download_count":483,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_linux_arm64"},{"name":"caveman-proxy_win32_amd64","size":47837184,"download_count":15305,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_win32_amd64"},{"name":"caveman-proxy_win32_arm64","size":45813760,"download_count":55,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-proxy_win32_arm64"},{"name":"caveman-shrink_darwin_amd64","size":27264160,"download_count":440,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_darwin_amd64"},{"name":"caveman-shrink_darwin_arm64","size":26930338,"download_count":8850,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_darwin_arm64"},{"name":"caveman-shrink_linux_amd64","size":24811793,"download_count":17211,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_linux_amd64"},{"name":"caveman-shrink_linux_arm64","size":24343397,"download_count":429,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_linux_arm64"},{"name":"caveman-shrink_win32_amd64","size":25848320,"download_count":13930,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_win32_amd64"},{"name":"caveman-shrink_win32_arm64","size":25107456,"download_count":51,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/caveman-shrink_win32_arm64"},{"name":"cavemem_darwin_amd64","size":27575888,"download_count":447,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_darwin_amd64"},{"name":"cavemem_darwin_arm64","size":27199170,"download_count":8890,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_darwin_arm64"},{"name":"cavemem_linux_amd64","size":25109230,"download_count":17206,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_linux_amd64"},{"name":"cavemem_linux_arm64","size":24554158,"download_count":431,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_linux_arm64"},{"name":"cavemem_win32_amd64","size":26152448,"download_count":14028,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_win32_amd64"},{"name":"cavemem_win32_arm64","size":25386496,"download_count":51,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/cavemem_win32_arm64"},{"name":"checksums.txt","size":4984,"download_count":48239,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/checksums.txt"},{"name":"checksums.txt.keysig","size":291,"download_count":47311,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/checksums.txt.keysig"},{"name":"COPYING.mingw-w64","size":2326,"download_count":80,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/COPYING.mingw-w64"},{"name":"COPYRIGHT.musl","size":6204,"download_count":384,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/COPYRIGHT.musl"},{"name":"LICENSE","size":11358,"download_count":394,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/LICENSE"},{"name":"LICENSE-MIT","size":1071,"download_count":390,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/LICENSE-MIT"},{"name":"LICENSE.caveman-blocks","size":11358,"download_count":26,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/LICENSE.caveman-blocks"},{"name":"LICENSE.zig","size":1080,"download_count":429,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/LICENSE.zig"},{"name":"LICENSING.md","size":3645,"download_count":399,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/LICENSING.md"},{"name":"modules.json","size":18237,"download_count":27072,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/modules.json"},{"name":"NOTICE","size":2285,"download_count":390,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/NOTICE"},{"name":"NOTICE.browse","size":1379,"download_count":278,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/NOTICE.browse"},{"name":"NOTICE.engine-pixel","size":2001,"download_count":645,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/NOTICE.engine-pixel"},{"name":"RELEASE","size":11,"download_count":101,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/RELEASE"},{"name":"SPLEEN_LICENSE.txt","size":1313,"download_count":648,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/SPLEEN_LICENSE.txt"},{"name":"THIRD_PARTY_GO_LICENSES.tar.gz","size":8808,"download_count":662,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/THIRD_PARTY_GO_LICENSES.tar.gz"},{"name":"UNIFONT_LICENSE.txt","size":24142,"download_count":649,"release_tag":"bin-v4.0.1","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.1/UNIFONT_LICENSE.txt"},{"name":"caveman-blocks_darwin_amd64","size":6057456,"download_count":16,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-blocks_darwin_amd64"},{"name":"caveman-blocks_darwin_arm64","size":5704418,"download_count":54,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-blocks_darwin_arm64"},{"name":"caveman-blocks_linux_amd64","size":5931170,"download_count":48,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-blocks_linux_amd64"},{"name":"caveman-blocks_linux_arm64","size":5636258,"download_count":16,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-blocks_linux_arm64"},{"name":"caveman-blocks_win32_amd64","size":6163456,"download_count":54,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-blocks_win32_amd64"},{"name":"caveman-browse_darwin_amd64","size":35550000,"download_count":17,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_darwin_amd64"},{"name":"caveman-browse_darwin_arm64","size":34707570,"download_count":64,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_darwin_arm64"},{"name":"caveman-browse_linux_amd64","size":32882947,"download_count":69,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_linux_amd64"},{"name":"caveman-browse_linux_arm64","size":31750465,"download_count":14,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_linux_arm64"},{"name":"caveman-browse_win32_amd64","size":34060288,"download_count":74,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_win32_amd64"},{"name":"caveman-browse_win32_arm64","size":32646656,"download_count":14,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-browse_win32_arm64"},{"name":"caveman-engine_darwin_amd64","size":31445698,"download_count":19,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_darwin_amd64"},{"name":"caveman-engine_darwin_arm64","size":31242914,"download_count":66,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_darwin_arm64"},{"name":"caveman-engine_linux_amd64","size":30788792,"download_count":71,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_linux_amd64"},{"name":"caveman-engine_linux_arm64","size":30337888,"download_count":16,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_linux_arm64"},{"name":"caveman-engine_win32_amd64","size":31860224,"download_count":76,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_win32_amd64"},{"name":"caveman-engine_win32_arm64","size":31206400,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-engine_win32_arm64"},{"name":"caveman-mcp_darwin_amd64","size":27502352,"download_count":18,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_darwin_amd64"},{"name":"caveman-mcp_darwin_arm64","size":27129106,"download_count":64,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_darwin_arm64"},{"name":"caveman-mcp_linux_amd64","size":25037630,"download_count":71,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_linux_amd64"},{"name":"caveman-mcp_linux_arm64","size":24537082,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_linux_arm64"},{"name":"caveman-mcp_win32_amd64","size":26082304,"download_count":75,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_win32_amd64"},{"name":"caveman-mcp_win32_arm64","size":25321984,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-mcp_win32_arm64"},{"name":"caveman-proxy_darwin_amd64","size":48656973,"download_count":17,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_darwin_amd64"},{"name":"caveman-proxy_darwin_arm64","size":47401010,"download_count":64,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_darwin_arm64"},{"name":"caveman-proxy_linux_amd64","size":46278896,"download_count":72,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_linux_amd64"},{"name":"caveman-proxy_linux_arm64","size":44666552,"download_count":14,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_linux_arm64"},{"name":"caveman-proxy_win32_amd64","size":47835136,"download_count":77,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_win32_amd64"},{"name":"caveman-proxy_win32_arm64","size":45811712,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-proxy_win32_arm64"},{"name":"caveman-shrink_darwin_amd64","size":27264160,"download_count":17,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_darwin_amd64"},{"name":"caveman-shrink_darwin_arm64","size":26930338,"download_count":63,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_darwin_arm64"},{"name":"caveman-shrink_linux_amd64","size":24811881,"download_count":71,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_linux_amd64"},{"name":"caveman-shrink_linux_arm64","size":24343557,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_linux_arm64"},{"name":"caveman-shrink_win32_amd64","size":25848320,"download_count":73,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_win32_amd64"},{"name":"caveman-shrink_win32_arm64","size":25107456,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/caveman-shrink_win32_arm64"},{"name":"cavemem_darwin_amd64","size":27575888,"download_count":17,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_darwin_amd64"},{"name":"cavemem_darwin_arm64","size":27199170,"download_count":64,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_darwin_arm64"},{"name":"cavemem_linux_amd64","size":25109270,"download_count":71,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_linux_amd64"},{"name":"cavemem_linux_arm64","size":24554526,"download_count":14,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_linux_arm64"},{"name":"cavemem_win32_amd64","size":26152960,"download_count":74,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_win32_amd64"},{"name":"cavemem_win32_arm64","size":25386496,"download_count":14,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/cavemem_win32_arm64"},{"name":"checksums.txt","size":4984,"download_count":203,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/checksums.txt"},{"name":"checksums.txt.keysig","size":291,"download_count":200,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/checksums.txt.keysig"},{"name":"COPYING.mingw-w64","size":2326,"download_count":10,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/COPYING.mingw-w64"},{"name":"COPYRIGHT.musl","size":6204,"download_count":10,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/COPYRIGHT.musl"},{"name":"LICENSE","size":11358,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/LICENSE"},{"name":"LICENSE-MIT","size":1071,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/LICENSE-MIT"},{"name":"LICENSE.caveman-blocks","size":11358,"download_count":10,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/LICENSE.caveman-blocks"},{"name":"LICENSE.zig","size":1080,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/LICENSE.zig"},{"name":"LICENSING.md","size":3645,"download_count":17,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/LICENSING.md"},{"name":"modules.json","size":18237,"download_count":132,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/modules.json"},{"name":"NOTICE","size":2285,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/NOTICE"},{"name":"NOTICE.browse","size":1379,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/NOTICE.browse"},{"name":"NOTICE.engine-pixel","size":2001,"download_count":11,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/NOTICE.engine-pixel"},{"name":"RELEASE","size":11,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/RELEASE"},{"name":"SPLEEN_LICENSE.txt","size":1313,"download_count":16,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/SPLEEN_LICENSE.txt"},{"name":"THIRD_PARTY_GO_LICENSES.tar.gz","size":8808,"download_count":15,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/THIRD_PARTY_GO_LICENSES.tar.gz"},{"name":"UNIFONT_LICENSE.txt","size":24142,"download_count":19,"release_tag":"bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.0/UNIFONT_LICENSE.txt"},{"name":"caveman-browser-1.3.0.zip","size":179862,"download_count":251,"release_tag":"v3.2.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v3.2.0/caveman-browser-1.3.0.zip"},{"name":"caveman-browser-firefox-1.3.0.zip","size":180101,"download_count":71,"release_tag":"v3.2.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v3.2.0/caveman-browser-firefox-1.3.0.zip"},{"name":"caveman.skill","size":4410,"download_count":539,"release_tag":"v3.2.0","url":"https://github.com/JuliusBrussee/caveman/releases/download/v3.2.0/caveman.skill"}]}},"commit_sha":"b4ee71d557d96e3cbc14f88fa6e953a1362865f5","profile":{"lines_by_language":{"Go":192178,"JavaScript":81662,"Python":32709,"TypeScript":15166,"SQL":1516,"Shell":976,"PowerShell":925},"files_by_category":{"test":716,"source":523,"docs":223,"config":221,"binary":66,"other":59,"generated":22,"vendored":1,"oversized":1},"source_lines":150851,"test_lines":174281},"pillars":{"ai_provenance":{"score":94.9,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.9488,"suspected_share":0.0179,"estimated_share":0.9488,"ai_artifacts":30.0,"flagged_work_units":24.0,"flagged_releases":4.0,"style_index":0.282},"summary":"Explicit AI attribution on 95% of first-party code added; an estimated 95% including velocity signals."},"quality":{"score":70.9,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":43.8,"duplication":66.9,"lint":75.9,"testing":100.0,"docs":80.0,"type_safety":26.8,"process":63.3},"summary":"Code quality is adequate: test-to-source ratio 1.16, CI runs tests; 28% of function code in complex or long functions; 7% duplicated lines. Weakest area: type safety."},"security":{"score":54.5,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":48.0,"sast":68.9,"dependencies":30.6,"ci_actions":39.2,"posture":100.0,"scorecard":67.5},"summary":"Security posture is weak: 65 known vulnerabilities in 12 dependencies; 27 high-severity SAST findings; 5 high-severity workflow issues. Weakest area: dependencies."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"ok","tool_version":"scorecard v5.6.0","metrics":{"aggregate":6.6,"check:Maintained":10.0,"check:Security-Policy":10.0,"check:Code-Review":1.0,"check:Dependency-Update-Tool":10.0,"check:Dangerous-Workflow":10.0,"check:Token-Permissions":9.0,"check:Binary-Artifacts":10.0,"check:Pinned-Dependencies":6.0,"check:CII-Best-Practices":0.0,"check:Signed-Releases":0.0,"check:Fuzzing":10.0,"check:Vulnerabilities":0.0,"check:Packaging":10.0,"check:License":10.0,"check:Branch-Protection":0.0,"check:SAST":9.0,"check:CI-Tests":8.0,"check:Contributors":10.0},"findings":[],"evidence":[{"kind":"scorecard-check","description":"Scorecard Maintained: 10/10 (30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10)","ref":"Maintained","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Security-Policy: 10/10 (security policy file detected)","ref":"Security-Policy","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Code-Review: 1/10 (Found 2/16 approved changesets -- score normalized to 1)","ref":"Code-Review","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.9},{"kind":"scorecard-check","description":"Scorecard Dependency-Update-Tool: 10/10 (update tool detected)","ref":"Dependency-Update-Tool","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Dangerous-Workflow: 10/10 (no dangerous workflow patterns detected)","ref":"Dangerous-Workflow","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Token-Permissions: 9/10 (detected GitHub workflow tokens with excessive permissions)","ref":"Token-Permissions","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.1},{"kind":"scorecard-check","description":"Scorecard Binary-Artifacts: 10/10 (no binaries found in the repo)","ref":"Binary-Artifacts","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Pinned-Dependencies: 6/10 (dependency not pinned by hash detected -- score normalized to 6)","ref":"Pinned-Dependencies","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.4},{"kind":"scorecard-check","description":"Scorecard CII-Best-Practices: 0/10 (no effort to earn an OpenSSF best practices badge detected)","ref":"CII-Best-Practices","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Signed-Releases: 0/10 (Project has not signed or included provenance with any releases.)","ref":"Signed-Releases","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Fuzzing: 10/10 (project is fuzzed)","ref":"Fuzzing","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Vulnerabilities: 0/10 (57 existing vulnerabilities detected)","ref":"Vulnerabilities","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Packaging: 10/10 (packaging workflow detected)","ref":"Packaging","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard License: 10/10 (license file detected)","ref":"License","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Branch-Protection: 0/10 (branch protection not enabled on development/release branches)","ref":"Branch-Protection","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":1.0},{"kind":"scorecard-check","description":"Scorecard SAST: 9/10 (SAST tool detected but not run on all commits)","ref":"SAST","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.1},{"kind":"scorecard-check","description":"Scorecard CI-Tests: 8/10 (13 out of 15 merged PRs checked by a CI test -- score normalized to 8)","ref":"CI-Tests","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.2},{"kind":"scorecard-check","description":"Scorecard Contributors: 10/10 (project has 8 contributing companies or organizations)","ref":"Contributors","url":"https://scorecard.dev/viewer/?uri=github.com/JuliusBrussee/caveman","weight":0.0}],"data":{"date":"2026-11-13T17:15:33Z","commit":"b4ee71d557d96e3cbc14f88fa6e953a1362865f5","matches_head":true},"error":null},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":38.0,"checked":38.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":1771.0,"attributed_commits":1502.0,"attributed_commit_share":0.8481084133258047,"effective_loc":477272.0,"attributed_loc":452841.0,"attributed_loc_share":0.9488111600931963,"tools_detected":4.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 1462 attributed commits, 447,920 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"OpenAI Codex: 34 attributed commits, 3,770 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Cursor agent: 6 attributed commits, 2,459 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"GitHub Copilot coding agent: 1 attributed commits, 1 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b4ee71d557d96e3cbc14f88fa6e953a1362865f5","url":"https://github.com/JuliusBrussee/caveman/commit/b4ee71d557d96e3cbc14f88fa6e953a1362865f5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1774e1cd66767f4af683227ba2a82b1fed2b8cdc","url":"https://github.com/JuliusBrussee/caveman/commit/1774e1cd66767f4af683227ba2a82b1fed2b8cdc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: author email noreply@anthropic.com","ref":"7fe17aa7e62ae3ed45b5ab8265a5f0e00cd7fee3","url":"https://github.com/JuliusBrussee/caveman/commit/7fe17aa7e62ae3ed45b5ab8265a5f0e00cd7fee3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: committer email noreply@anthropic.com","ref":"4cfa05465a92b7546f38b67815d83edaec81e9f2","url":"https://github.com/JuliusBrussee/caveman/commit/4cfa05465a92b7546f38b67815d83edaec81e9f2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: author email noreply@anthropic.com","ref":"72152f953fa79183deac3cdb79f15a5b032fb2f2","url":"https://github.com/JuliusBrussee/caveman/commit/72152f953fa79183deac3cdb79f15a5b032fb2f2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: committer email noreply@anthropic.com","ref":"24ed1c1ff3248df1d97ed03c52a4fc75563f0663","url":"https://github.com/JuliusBrussee/caveman/commit/24ed1c1ff3248df1d97ed03c52a4fc75563f0663","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a83cc5171b6ad94084b7e408b27acda81fc70be1","url":"https://github.com/JuliusBrussee/caveman/commit/a83cc5171b6ad94084b7e408b27acda81fc70be1","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e3e8b0f23c59a2bd44494874d27fdaf745ccfa47","url":"https://github.com/JuliusBrussee/caveman/commit/e3e8b0f23c59a2bd44494874d27fdaf745ccfa47","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: on merged branch (6852cf1fb4)","ref":"d1819fc01c9269e730e08393b062330da5d49233","url":"https://github.com/JuliusBrussee/caveman/commit/d1819fc01c9269e730e08393b062330da5d49233","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: on merged branch (46d3d8802f)","ref":"4bf8898b31c93326a5e5d90999241a1c15b52ed2","url":"https://github.com/JuliusBrussee/caveman/commit/4bf8898b31c93326a5e5d90999241a1c15b52ed2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b1764608b42980ad4811efc3901c289ec4d5f719","url":"https://github.com/JuliusBrussee/caveman/commit/b1764608b42980ad4811efc3901c289ec4d5f719","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a9e74b98263d56405a83d31b0904f68d4b95b2ab","url":"https://github.com/JuliusBrussee/caveman/commit/a9e74b98263d56405a83d31b0904f68d4b95b2ab","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"81475c3fb6fecefb2953b59c4798cad6a86357a4","url":"https://github.com/JuliusBrussee/caveman/commit/81475c3fb6fecefb2953b59c4798cad6a86357a4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1bcc3925be6034349ef0d7de048cfa614a9af15a","url":"https://github.com/JuliusBrussee/caveman/commit/1bcc3925be6034349ef0d7de048cfa614a9af15a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cc88124908d0e5aa6caeefe5afb28a0f774983c3","url":"https://github.com/JuliusBrussee/caveman/commit/cc88124908d0e5aa6caeefe5afb28a0f774983c3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"3dfdbd10019eaddd8e15257cae35adf2bf436081","url":"https://github.com/JuliusBrussee/caveman/commit/3dfdbd10019eaddd8e15257cae35adf2bf436081","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a52cd7548605760692b30d72ca85a3935bddc09e","url":"https://github.com/JuliusBrussee/caveman/commit/a52cd7548605760692b30d72ca85a3935bddc09e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d679959afb10e6a1455426589da169c5c0437184","url":"https://github.com/JuliusBrussee/caveman/commit/d679959afb10e6a1455426589da169c5c0437184","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"5461ff0050602dd4681df18908e24b2ebe9edf1f","url":"https://github.com/JuliusBrussee/caveman/commit/5461ff0050602dd4681df18908e24b2ebe9edf1f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bdf80bf3e003439f71128ec92fac81fbbd265e0f","url":"https://github.com/JuliusBrussee/caveman/commit/bdf80bf3e003439f71128ec92fac81fbbd265e0f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"7c8db06ecd316e10d98340405feccef0b0e30842","url":"https://github.com/JuliusBrussee/caveman/commit/7c8db06ecd316e10d98340405feccef0b0e30842","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0b2addc88994636aafbba74d251f1040ac677623","url":"https://github.com/JuliusBrussee/caveman/commit/0b2addc88994636aafbba74d251f1040ac677623","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b8dec27076c6b80bc4403eced1cc2b5e365934b8","url":"https://github.com/JuliusBrussee/caveman/commit/b8dec27076c6b80bc4403eced1cc2b5e365934b8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b7fd2f5aea3f5f987ab3d7e37c9c127e27b644a1","url":"https://github.com/JuliusBrussee/caveman/commit/b7fd2f5aea3f5f987ab3d7e37c9c127e27b644a1","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a4050f6fc1f4ed3be2a213f48c25109c17202c9a","url":"https://github.com/JuliusBrussee/caveman/commit/a4050f6fc1f4ed3be2a213f48c25109c17202c9a","weight":0.9}],"data":{"attributed_loc_by_commit":{"af5375d6f0151b1441f638d855f6829f5e6724df":0,"05b752ea5925f06f372b50a6991ebd83a6bbbec7":0,"760e3d2b595eacc66a61037d41e0e77252c59743":0,"04af4695c62f11eec8f1a24531db0ce0553981ee":0,"73e35f5232c06b269266a05890b0a343292e96b6":0,"05369e867e39c82075b2c6169ee100215f9904d2":0,"fbfe83b3e2dafc8d851559bd03b151c53f4e7294":0,"7d86dc665dc1e71f227cec31348bab2f8f5bbf25":579,"d3124e9212d4c9cf407bfe77f1d34d7fc30c21ea":0,"d37c921f2939e454dd3735e639ec8da1c8087ae4":18,"f3c710377cd808463051c28feae6c11d53d1a892":0,"bf828cd0fab8b1b6f55d4717e7842a2b0ad86503":0,"f6ca007f491ae87d0bfac0707d62cdc60c14892e":0,"a97af687418c90394ece95d1ce05324dba7b3710":1,"8195e1a4a04ecbe8bb39e67030624d023da5b6fb":2,"e6df0d605544cf73981ea598da80216927875cb8":0,"24e6ee9ea827c0a9b5339744ae42e190b7434310":649,"ea89000141da5c4dce126f71c151ba31dc18a3f6":88,"12e78c520167dd190643f7316b9e0a1213ce724a":0,"c80f8d7fe1cf5a7536020db15b7ab8620e0c90f3":11,"8bab5c739e133b0a637b7e0fd1a732d47b414fe9":25,"6a6c144f28c3329024df2a0279b9c89f27c2d191":0,"3ed7b732b02e6eaaefb92d4bdc60f29b4d9e743e":20,"56f4047ab37be0b0d8bc72dc46a203332916cafd":15,"4c6dad829a69bb6cc481ca28b1d2528b4aff3d61":14,"f7ef823b919a7b4200142f18541f7e5b9b59fec6":5,"5ad8f6d684135b45e227e95a9c37c1d57098c7f9":252,"84cc3c14fa1e10182adaced856e003406ccd250d":0,"57a9b489a137cabd0d748b05f34fd81caf614739":474,"b24b915e0a70441447f2b938b999603252803c6c":7,"a660db02c9b004318052345c99665770847e5e4e":290,"31d804e5f28ffe7a98115ca86f00d947eb413333":3,"a9dc06779617210e52ca1c54b689520ce1634de4":0,"31fa95478d8c08a27a0685319539cbff5a9cca2c":268,"56875e883fe1a5a855f790e566f8a780efc93f09":1552,"83ec61c50982c3808ec647d5314c6e31e6938e61":93,"e031c1e440df7797cd8589cca925e667876cdfe1":40,"509935697b352b21d88001d3daff6a15f7985878":0,"3c1743ea111fb8528f880b0315c42701fc407131":0,"ed706fa09843f67173be5ff29fb1f3b06f10e904":0,"c28067e22d0333a2f0deefd1243f100337785ba3":1,"eda0a1e7c67958ff1d802297988918622256bdef":0,"b67c404e80b60e54dbe40edc658da2178f2bf03f":0,"086c43077d9aa876dd7d8d1831f393cb0acb6e7a":16,"1b2ee4128e1514a8801828459b6a3709cc692d5b":0,"5786dd56ccce5f79570cdf858fbe5e115cdd082f":0,"a2dca8194dca06b8d379b9764f3480aaec064e86":261,"8b8068d8ca0d0f0f60d5bd02c3f48b1ec183bf9b":597,"7b2bed2d0b7237ebc8f3e980258e5a8bdd821da1":497,"754795ada42dea54adf061d42a61e560caa4f9ce":23,"279310971ad7e51f1e61296022246f342b654e91":0,"63a91ecadbf4c4719a4602a5abb00883f9966034":11,"2422bbe59c7244b03b3d5f5820cc0d289eec96b6":0,"655b7d9c5431f822264b7732e9901c5578ac84cf":0,"cd4009effaa8241ccf3b0d8ebf1398fe23e5a06f":229,"6ce47d44450465fff029231b367fb71d6484ba1c":56,"46de578a7eb149ecf2790b5f2ecdd182d7e538d4":0,"f68111acc398aa18349545363e5ddffb26e0ae00":22,"f06348cbd36e16b5c142a930b87878c7868a499a":0,"e8eae0ff283bb808e50cb1a9cee9dc0129d9316e":107,"bdcba4c6ef709f1f086917cf7c5f3906254e0582":97,"22f75e3de6f131d34d06aaf5196ebf885ce5ed7a":114,"f0dd780305c0b2788f0d9c01ed7c2848bc19f3d9":691,"93d9a439b431b7788d909ae9b6a5c25ea00f000d":24,"b5e8cdaf1f0e83965dc30d88bdef4a37028e7911":55,"eb447dad2e9beeff013a34fd8dcce35a0eca9da1":0,"efd490a5fc8dd966195c974dff14896638861e10":25,"ddf212173a3479dd7a211c079f4bda76f97bf73e":78,"32f37af81a02a4b91c107b768f1365848e5bf005":1,"62e77e66ff9139092a0c15888937563a96018c6d":0,"6ebdb375c4bf007eb3ff51d2f702c13e8b684938":7,"e8139f86e39c515181ed03b116a592fef3d84e32":113,"d0ee1a8315bdbb3d1ea8f4275fdaf9c920ffcde7":23,"51e19903400044ba3643cd4e71b907fcc62a4df5":5,"5f079ab7d8241748654b8a5e70ad42ac77f99551":85,"19f7b5a0c0ae5e8a6a9aa6f0b716f9901df4270f":109,"bceaa0cf6d32f5f1b5eeefbbe0447b04db0eebef":14,"8a5ab60ef0bd5c4ab5052d3f7adb349d28485728":109,"335ab56dea99cb224822fe1ef26384cb83d2aa93":0,"d28be46e509045b6546c4ac50b7b5ed65f486666":1,"ec4f664910d9226487e7b6a2e4c6495aa6a3004a":0,"e6cce23ed6a5924db0d734eb1be2569d125befb1":2,"6919dc2c4fb068eb4586c113985b1a14326c356d":50,"a8846964b5ab10629ded5e3111ddf293810b7c15":39,"e9cb8435d69a7611fa510ed0f1780aab5629b29f":313,"e2c09c9a7e66d6bb30cadb5f955bd8a36b0e8d9a":2,"ebedb2c48290ef2293a9e9010d403febcd93f602":0,"710173f9652869c564bcf17f6c902959c140d7fa":0,"7693a046eeceb76de3474eb7bb749b35adc29141":922,"dcd51f16fe566fb7caef6cd801320d433a25a706":312,"d833f4adab48b2afe93a4f6a285d31737f4207e3":232,"6566ec23d35cfb22ad69cf4fdd52149da63701e2":0,"ed1fbb7f4cd8b810f8f611e16a846ba33872788e":364,"431ab2cf26939e9f1bebe24e2a5fbeae9cbf767f":14,"456e285d332c7fd0635dab9cdea52f307794b211":0,"cd780364a71feb67fe5620fd39ab7b0917facc79":260,"187127945e42b080c2de17a79d9f59c809fbff04":333,"8980b30c4bdfcf58ce792ed304a310d2bc74dd19":0,"7b0af42f62165a9fa5a2982b732f7a8f08bbb39e":0,"e07431f1273d385374fb1e23d1bfc45477001fb8":1,"9acc70a1c3ed044ba7bde7fb0a61a7f5e98dc569":70,"a6261ef8cc4bf6a00ab2fafc69bfb7b05eab8d3c":287,"14d4f2e21a16b573373ca24698cd6bd3db75bf52":0,"339443faaf82ad0a235d2c28208937ad0383d229":119,"4345fde24c4254cf1cc02251b6bc4ba584ab76b3":18,"51b4609b118d2947ea78594abbed4f2f30e8c5ec":152,"82864c8f4c9a5eb5551ab0cdd6da52014832e3c5":211066,"b15b567da1d22ba5904e397ff4e78df1abe50b81":46,"d143bf3566e78270073e286e3db2f4f34a05e9c4":0,"b4b26db82b178c575cd8a68aea0fad043c2ef316":0,"1df938113ca9f662ba72be03d6ed21343ec0e970":98,"a008ce357e5551952306fbd6a515035cf0967e07":0,"099327780ef69ad88c4cfc15c54314579ac367a4":2,"d4ef06be1cc2db62f0a75e1a6f233bec566e241d":91,"cdb9558cf4a81829ac3deeed577a0c06ef46b65f":60,"27d5a3981a347890211bb1bf2439e5c821a63bc9":0,"bcfc459124e3864391ec625cb1c174bd41e5a0e6":460,"54ec7326a09ac917cf4020e55cd9887f8ecf0359":1,"77257e82c11b7e1c98d3adc3bebc34f9bed1cbd1":0,"ee3199bca81d388d13ec508ccf7f7b318b905c8a":0,"09e9ed72be873b32d241ac525b3b4070aaaebafa":0,"5e3d6b8c2793244737ed2967cd6949749f9b5558":6085,"2144a1261467a3b0c2d83d5cd9755c5389d6c64e":31,"902eba3441c8340f041318eb2519618b1191796e":20,"ae405e872270acc57484693612ae038b16c8f6cd":178,"aab16077957bc0029fce2cbefc644250daa17a93":27,"e4fba86f7d22e491f4d68e50bd623a78f1bf4e3a":166,"4272ff2483af7564653b83f1b651a832b6f42384":84,"66d7d8707496b07ee4c0182c06c94838422d235f":0,"e3ccb25d21c02754fe25971f17badab7559b5ea5":20,"fdeb4fc604eac1b5278d34af42fca3056691d64c":32,"1b6b7d2f85fd151f90b3597b21ff4b00b0860f96":11,"dd8496c50771ec205d95308a965303ae427de77a":0,"9dcb2e5f6043c62b94e60ee6161e0edee66d94e1":17,"f1c92e30fb513e6109c8f56c62ca9145b1a1fde5":9,"81ccfb6f8092916c61641457b9a0dada76ccda19":8,"6c5eea66548edd858d9ed5ed80541d2e34760191":0,"5cc21d1ba3ec2e4203b5e79e70e04c259a6c4c82":9,"696ccd176c931b1910405a0bd1484899b6326c8c":18,"9e4356e717f0ec0030ee51ad169c0a41cd239d59":5,"916dab6f175ae4548c1f5abbbad5b4e36a6fba29":16,"aa749ecc59f8d8db2dba65070a427b01942af2db":4,"664268a4f8ac5de5a16824ce0e99e04bd4a539d1":3,"99a9aa2f5a45097fc3563febea7d0baf64407441":1,"fc7a3cfc9200351baf0bdd7dd3907b68617a47d5":0,"f5104c8b2d96d898418f6ba749f485215f093902":21,"783dbeafb5cc49c47aed80dc9645ad6f71ab363c":636,"e8c8233267ed9dfc89f2fb158eea90e7b8672192":1305,"216e6856465c6fdd7f8836cac52ae2148203e45d":462,"5429b5da4750a042a44e4f631ce7cf2a773b3852":731,"8fe0631dccae68f48c61ecb0b02e5b00db221903":585,"f20acbb513c5c789afd82df99b6bd075dab05628":0,"b26c0be368f85fdfd3710a3d9f392722cad33532":212,"9fedb44d27bcce055b699c8a3a6eadddb93733a6":49,"c9bda051a6d4b1fccd28bdc1b7a7d54e732e6e0d":10,"1c5619dd646cfbbd0e35c68ba0a810c223f0016d":35,"b1fc42579817ef9c0a4a2f91c3502bb1304c50d9":47,"8520914f062fed1b45d80dea8414a4c613a32280":6,"4f036ab2123bb65114e056411c21f4d10c157919":10,"b450fe878dfe0c30fca1025b407d7a5401a0e732":13,"403e3439466b91a67919a5cab83eb0a887463cc0":43,"469fbfb83ebe9a497e1c1f6b087ac803cfe8c0d9":38,"bc761b5f156fb19e387565cf86cec3d898661d0d":6,"0385ad9bbb38c1a1b4f0f5592cefe7afaf68881f":53,"e4e4989085c0df26e0ca02c35a503247ace86957":249,"12eadba275c6355dd7a4ee5467d1083dd2ae3a0f":7,"868ed463c563c06beae36a47af3f6c6c5aec5f0e":94,"ce6850dbc6b4fdb6939182c9104241ed75a309b3":242,"7a03e6ffbc846c2585fb4aa42eed254d33f3ee72":160,"ec134859ad8dfd9d5a2b19e2faf2e5bc65b44462":54,"2336b645c347bde14aa95021c78c61f42f7ce7a8":293,"94b711ce917d669d389097f41e1e45ef12d80246":14,"af42fbd9e10d4cdf7c708485944315ad1f9c3444":198,"60a644b2a36575148c1803182532df36bd0dbdfe":80,"6c95972cd4d9d0bf9e90b6ba99607bc2b7ac6748":70,"7789c2f6face05f16f4a119eebf4bbe1e615e4e4":17,"5ebc35d613f777fca9d60e5b831e7d093152b888":62,"044289b136eb37c66bf956d844d9bdad38a7cdd7":2,"6fb2fc66e7a6b8b70655420ec20f40f1e772d9d1":32,"e3761cc2c1a3e626a737384e0e7e11432296d218":58,"57ceb3db30d87927ce37ce5202f63cfb8be15079":261,"538bec6d5c32d2b9b65355a2028aa5d42f86e047":0,"9aa63945a349bef17206540650db48c30fafbdf2":4,"a42ef766cedef6160407418a359a52939b2d20b9":0,"39e550d2efc60959f8f6fdbfeb305f8263f0c0d1":17,"7d4dd245bb4c37d95e5a112863ea71d2996cebee":489,"4b1c03fd26220508dd21a35ddf6ec534c5dc7cae":15,"a1a3d167f65c6c7af110025cf938fbcc0052e218":295,"008dfba3d543e92e068332edf5ebab5c55d88e98":571,"f8b8c09be6d57c19324adae56bafe984b31ae851":1848,"3f7accda9b338c37936b27ec8c43cc0db415b5e5":541,"73163a4d61187fd3c0ad49d428195d8a93034a93":587,"b8c12268e8a6e4feaba6ea1429212ed6cca3d866":65,"819d86cf8485b17036568ffd5b19d39576e7e25c":302,"4f9e80c738533dca9de1b61017d688aa93fb0244":383,"044a153ffd40a4a4f8b788e0294ac6463db93ddd":0,"e098359d91d15cd918701b83d9e324d2d082e434":26,"c27ea41a6ac6a78e7b555e4c09bd18b332a81f37":118,"4e0f49bd3d76690f5f4232719423dc9775c935dd":0,"a7fc75c1144475d5448538f66aaba9c6050de397":414,"7061f104a8f4ab58cac250d30587457ee1c555ae":0,"b4335705d436f5110386a1c39c6d8aed5002aeeb":2,"588b35372797e020ff3b7083cc317e037b52f8b2":0,"4164e62eff00a2790f50fb00059bd5ac6f1d95d3":0,"d5c5628e2b9807c97e70adaeb7d674fac933fa5e":0,"0d2f052babfd613ec9b4186c86ec6f133cdfd4d7":1,"b5ec6351396b643a17cbbec4a6eee8b3fb9dd782":31,"6808703feb0eba99a60278d7dae434af02060a83":139,"7bb71309e8749a4f112aacd3a54b3941d8689905":0,"8909f6af8806897cbb8330c11028eee168ad7cc7":0,"456de3648329a8e64a7da8341128ed91355acf72":17,"715a7a0d622f80926f98e21f38fae293b5cb8399":0,"f436843949dcfe937543a12ea87f26d4a315c10c":1192,"1b7ff8fae926c6fe3b72ad3786b14ebc11889d52":1309,"aaaf97d77479b905c46ee74ca024c70fa41f6af8":3,"c242c75a02ae8b57adda2bf6fe9aae435bf4b7e1":1,"6f6be3db6e2ae3b9be36072a45ee39e6490f8b1d":20,"20193cc2d4670132646c8a50ec629b2f13818287":5,"fec4eaf92d419644c6550696fdda73d3f260a176":0,"8929dd7635cb3c51d0d0c289c1812bbb1450b5b0":1,"b033680447661c59e85b4d7636748b699ddba08f":55,"491812cdbeece1db16af386dbfdbc5a5fe86b0a6":10,"ece94d5656bc4c9b83957979fb87c145d8a4689f":60,"0b8348c678f629686541b8d97f5821a401807f4d":0,"602a77ef04dc5eae810295fadac0f5002d5fc900":39,"e11d0029f92de40b4cd099e09df80b17a499c9e6":819,"fdc2b6098233ddc30810097e52152b0083c07c53":33,"6e9cb59a8a11eb3dbdeea4d33417d2984fc143f4":4,"3c951b771226c56b1cc971c1bd06109ec84bf77e":17,"93cb7ca11223aec6b0aafeb7c4351db9c2e0f006":27,"6e6b8ae6337b78a08c9e4cc28d507c59ddeb9407":345,"8f0fe44049bb87b2d376257bdcfda4880137c837":21,"3e69ca54c4423a6e04255c35c5a285a2290cc3f7":1,"d8b148643f829b22b07883fbb28ffbf1d45f9a17":1,"a42f383fdf9b270696bb2dce22aaef67a29c32ac":14,"455f46240734fdfd6c566610bdb42946c3793f88":0,"8c5bd6989f8f9e030028798a9c6ac3769163198e":187,"d9faebc2b2757cfa1e692c83b7fd4c25e8b20d77":156,"7684fb1cefc650149353af1fea9fe17763f68c39":315,"41819dcba09776f4422f416e4b50c4b4c26d5e77":248,"8dffbb26023b1ef1bee17fe9553a4f4aee83df0d":0,"d6c1cd39afa490c9c6f9d5d2f62774a2d45451b4":29,"f9a039a93d249f3fcdb47a9e02544cd1ce37ba4a":4,"14b1c15f2ae59a3414b502fc873787b2297e8191":45,"3b74643f4d910f496babd4e634b1ba7168816f14":21,"17d029d9999fdf1cd262a2f2c8e1dfee1bb6a13e":36,"f73d98fc8ed7ed9734afe3fc7892c549ab79f6d6":311,"218ffd695b2c97abab94210f741aafbb591112c8":166,"18a8c091d86c3f15b74cbae007bba9af9a6cd113":0,"9ed2c398de7292148dadd7c10270a3e4f012b94e":45,"8c5fba641016b2e0734b7adbe9dca22d404454af":0,"87325d89e104d5082a0e7e4ca5538e5f95675e41":1,"695703c0d5e14f63cc3589bb401750aecbbb7a25":363,"ee2f8a8522c1ceb9ed7156db73d68203be6ab724":40,"9911e5fd0de1b77fe41a157214a4e83b92aadfa4":4,"3e62063e40dac9bc458c235c81273c60804e83c6":167,"0574b85a19ab7b2b7f42cc3b3838e20f24ab85eb":0,"b82c0ad42c2bedc1f2cd78e414dadfaffbaaeec3":4,"b36219e2b196869100df0d5c29bd57c50d9b906d":0,"6ca113dceea96df0a58aa6c150e4a57745daa620":755,"924e4e9b81932d223c9baf461fa0cacd138f06ab":207,"c63362d1c834ec5d62e8343be53835835bf2d13b":1154,"d90d109e2009d9fd4312b555fb4055fe6a4dcb26":25,"e62c3203f09a368bc398dab0254f4444fb1076ad":394,"ac32e98e58ad171c2c1cec55298cbc0e0bd19eac":795,"eee083561c0e1adb5560958137ae4714a096e031":12,"eec3bdd6bd4bc28014cdc2b2d47dce968bddcb49":87,"facb5bd4ab2530f2ca09eb846f0bb8bf1b9204e6":107,"5e17d852674bf8dfd55cfabcde66f6321fad7afb":83,"12ac8fb91e71b2c856e1ab3d8114371e6dc36723":271,"93057ec3d9355e1618bbcedd533524c5bb86756a":183,"3e9b7c8c47789295d637904637699c13815b47c2":177,"e86c06a191cce23efdaac711b457d225a052e3b5":343,"9f6398ff004db3cdc8f2242f84589a4651a8aa74":2354,"77848520dcb7a4714834ff0c2197d9c473c98ed9":362,"c31ae28f568eb098b70b0693fb08edb938a340bd":402,"6620a0577ece6b22866b84eeb26de1a7b928eb87":14,"945a21ed381790f51b5731686a80d515f529318a":1227,"d2d7f388367fa684a4ec6b9f4f1c45cea1a3d33b":265,"4cb82581dc7b248db44e4a84d2db224a5d321f20":1241,"4da0462a9b66dd45733101ccd16a5b1fe951fa96":96,"21ba0ccc70878f5893ccbf112e6adb32ab2053d4":503,"880114a42067d045b91dffe6a553f6ab2cc399ad":1,"966a49117b4dd7b4aaa130ef8b7024e6b5d326be":631,"f4803fb7a0d2312332a655b0ffc36478272314ac":271,"1af648f9aeed12dad653146e40f95d1e28588c49":147,"0f554289b667170c61461bc0ca5e1c2944ed3722":414,"7a1ea718c3235a78d32dee6c988075205e942ce6":0,"441c4cb876c2839223c8f116e7e547a95a86e1fb":1626,"a4fa33d99860a12b67f20ec7668ff168e204c6c7":876,"a6486f46ac09d6cb1cd94b848149a2ea56ec7dd9":398,"d5e977215f92e391aa51cf1e42ded602080876f2":425,"c95f25df02c3bef91d2827c15ddf73144060c7dd":848,"85b69bdbfae904eb316de71f19bc388f0cb883c4":75,"5506ba89e195c377adc2c27d9174f4227d8604ca":10,"aeea893f0db287f5445ca0ea656bc23024992291":54,"bb1cfc8b5ce53fc2c1023440b9f8c417c6976c50":0,"ca9d4205ecb77a6fb77e41dac2bf9d421866fe3e":15,"4e0ff4277d7b55e2acd1d24927b8eb27fb12f17e":0,"ad4a5decfcf8e1bdf24f70e468768eef95b4a537":179,"bf2deb568be95fd4d4bc559fba0f902b49623859":36,"223d0f7791c3c9935a6234ddcb85ee429e75f40c":80,"d60a5296cfce6db9b768724a532d1a8b78c545de":37,"ee7ec96783c49eebe4dfc96f5221f007823b793f":37,"cf245890d174992a951ab00181581e561a1c3ea6":5,"ed615c72d9710c1e694ece3d7973fb47de4f1023":15,"8ddd2c3f8c84c332d7a5e992bf6af2babbbd6e09":73,"79e8440b59a868eadbfd293a60df2ed8844acb0c":85,"b710bd8de537dfe46fc669966e0994d1cd3e4af9":218,"001140dd9a27d00b5165b8d048f28af3b39d9f5a":464,"db9580f190837180b34a3a1a511fc0ae2e32eb5d":27,"d2b319c460afbd252189ff63c62dccdf90ce5e6f":71,"ab8af98f1a7bb051449ef5046e3d72815444f4b8":36,"92d606ecae8762b7f734503d6985b625ef51ebdb":146,"7903c19557b405b37015501e377a2d22e7658fd4":40,"18ec31ccc1cf0d220b162312a1a2eebf05d7ca23":58,"c0a14191ebec6d5ee04c924edd209dfcd2871d99":81,"030b5293b8d57bef320e6f2d4c9e8272a87da089":81,"bf5363bba8a923603a994b38128c87c125b6ff2c":355,"051dde4b4452391753ab7f27d345f3c3f869de99":305,"631c375fe55680ba187a6394dc25d3890c33e05d":135,"dbace99278e756f2cb9c73b3513487c861ed5645":17,"9d4548a3f9919eab3c6fc68dc8a61a5378048544":115,"69a33c876c53e0fed1cf421ce9b3962ff411d136":23,"f191803bc193f78e233ca25c527441f3d7c3b2ea":0,"a67901f4df1a199e38097d2c42bb44e7709c1188":72,"58b74b8734ab3a87c29e0ee807e40305891f240b":9,"fa7f48ce87f7c1ab416e0ccd686cf9bcf134fe2a":72,"06ce0c00b1ce8333eb32c567df03d6af0682eed3":72,"365a3b678089e223ac66593d23e5dcee931d010b":66,"89f62d7a8ab095cba977a90cacd7e1eab9bd610f":82,"8bc01d6753146e864cc4b97ef187c4badef146cb":122,"0fe68809c867c65a4f7103c0486e01c5a6d2c6f0":2642,"e7cc556633ff59f81d5601302be8a24f27ddbbb6":921,"f44b776aabf02e4221eb222561595978d4e4373b":0,"1f0b0471e7046d24c3c08b987fb22f579701c08d":0,"51eb2046b82a48cdb2b69d7cb40e61017d15bfcb":1857,"400a577cb64cd54c6fe0f780cb55f41bb12273f4":43139,"b5f7b82524148f909abbf059b2be7da8d032a22e":0,"ee6e41e45d774553d9c1d9a228dc7b5515b3926b":135,"cde4852a9dde0565a8706354413dacdcca7a202a":5,"d1e960b42533641031957937edfae01590062c92":180,"3e9512d3fb65ad337f1dc0715b3e647b3a7d144b":109,"c41b81fa7c8dbb0311dd99149bb02e3483d657ff":205,"e4d06e1f3590dce582fdbfe9c635f7d4038a1a5f":56,"af8562f6e12119fa65d5c50de73f7945c9a60c7c":21,"dfacc41303b4bae8f846119e44a2c86dc2f39825":0,"9cf5c6dd01a38fe82ccc44519bcf457cd87fe03f":0,"e656b4ea63943adca19922f2a4ff09f3e45f3d07":0,"f346466af13424923011d1a99480ca1e2202bfcf":0,"602be3d19a8ec5b6d219bf081ee6117a35f4c8b1":168,"9dbcc58e2623673d52653658b2a2b8f16742b89f":209,"3110029377f8683533c3571cbde2ce2e160a8551":113,"56720c23d4266dc00b319699164bd80d9e0d7c83":0,"a813e361c8e75543a461cb4df93eb995f44d4f16":0,"f20772b5c31ca78db2374f7e5327f5dfe113ef5a":1,"a93e97ad87eeee64b8ca5a607594e1b82a6b2cbc":13,"17ef9485e0e341ad9eea229113ed847dd041113d":6,"57e893c2b4fa44af2b136c04beaac208ec835480":4,"570a7ad7af5b03c11c614a8f80a45f254572e538":34,"9219f5890585c6feebb5b8940233252551aea65e":1,"6b42a31e10ee4c1b8549ccde30b451ddd060023d":6,"13fa0372ec9bf7e50526e24190cb28b8c7c4a9d6":0,"cc837a7b0129174636675ddda85d7e86f424a5ea":1,"aff969189b763053807b319f19be393848739678":0,"14e58a19ffeec3ecb75294458ff0613d299a49ce":0,"a77da0ea24fe090e4ccdf6d8ee5935fb8e0544c8":0,"8b0c1d3699b8d83e87fe4605b378da20c41555e0":4,"263580065164d9dc8388ea021e4d852a3285f0fe":1,"4df4b03ba538751131d24415c59a1fad0d8c2c18":0,"f8f995187e9a1c078710f40337dfc09c30013981":138,"a71cab1e5a62c06995f790682834eaeb74b84ab2":304,"7ff8d5917c3e845a32948ade24d8eaaa98fbe11a":19,"6c8a1d052dd77830a0b7f123995ba9a74e173fbf":195,"29f63856595a989560031f6e03798c6ba60e3150":132,"ed37ab132393899c129bbeef2b9743ff3af19c68":415,"efd02e58c3fe1216b4f4d650d162bed4d2c23416":17,"bdc09d15ee111792a4a00c43597b3c593819d5f9":98,"e4ee99e37e6c9557726c852a009d47be81a352dc":179,"7bb6457daff87d7ad29ec1b245c2230f9a57bf7e":104,"ce5ec98d72b8114095aecff9814eab49b17c6f3b":137,"efebee281ed4bb43078af2d6d53e4a52af2720b6":0,"a37fa2e6a5fd560914567c59c1548663f77c3a45":68,"72a22fe8394714a729b99c5e209cdcf6b9c665f5":141,"0a288e3adc51e0ee236be7fd39ef64463d0ba897":532,"d9f53d292f20386852950bdabcc87c2d2788fd6d":68,"be717c1ca625cab0219b4611802f6b74a102fb1e":148,"015f078cced48a971c1151e54ae8b7bf859dec0d":7,"b773f74eae46a61846e5b4d908079292db12ef76":50,"d79cefc223900a6e5c587807462d7c4e240fc7cc":49,"e2eddc1542f91b278857d3d59a0822047eab207d":87,"a9866bd6512b6871937b044b1b8ba68f6bfde0cc":54,"e22ef4611bd05fc858fd17ff72f7c7f3cdcefac5":128,"30366ffba63b07e1de7847e112c7f20f233c2cfd":48,"56e364708d5040472006db52887dbc585e1b8270":338,"0d58ab58c905e81a2669bd969238609283a65376":0,"133036ce74133ae983c13f57c47755f4ad3455e6":2,"0c27d4f5c07fe6013f58c7c8b6c385e75801fcf8":32,"d3c02005caf466c0dd47ec632a84a99d4c75c9f4":60,"df1ba333a87315919339b612c25799e0606dad0f":8,"9b6c37ded0639de68f1c98f7042dacfd876d2944":0,"5403794bac6434b2a497213861c5072c0c57dddc":0,"c78f76e14d2c9a1fef735cfce5c9c4aa2b6ca1bf":118,"010a8bb577e077b692ae349512d0f4304b26eaea":326,"3df06a800bb3d5819c8e142dddb9e69ceb497012":171,"4971c00dfa488dfac4dbc4f319ca696d8a30eadd":0,"99224f76620b206cbea94e42d2237daee30f3e7a":418,"ae26f3a4775574bd49dc8bdb61c0287bbc3cd268":0,"2685004acfa0fd3cd7e83db961a1350048772159":0,"bf649cb64caf9bac0956a53743fd9698f3284c81":2,"dbc067b8de9ecf3a88516317cbc03a1f9eb7650d":50,"f1dd4bfc83b4efae44b58dc211acfb9cac276fb8":51,"36e70bb0ac9c2665aca0389e7f749e5777a3bb22":124,"8397059e2af12d706ee34d188b789b762124ceb2":70,"bdc1dbe637d6c548b1fb3f27e6e6ccc773e8e02d":0,"de59d16a41c16ead95c9994d45e2fb76fd666694":126,"61c0e4030f230674d1abe91e1c490ef56d6b7371":46,"2461c9c85eb251dc8640e85709a9f6720f8fa42f":31,"67ed352137f714d65920a1cec2f240c0979c4887":2,"1a4ae81cba11fc41366b51bc767c129e25044bba":0,"d524f5ecaf30be251a7404f0891859ff5f56f155":62,"8b057a07b35be2e13655fb8e1a6f0ec9bfa5abf5":97,"86729236d9b2ed40c8a6bd816b6d9cf86addc1c8":115,"42bd11d6e8d5ffdafb77fe555cd444af322a3097":94,"99a90158dfade8b37b5019bb7e376e3715d543eb":0,"5cc5fa04e19adac2b7e274ab66764b9e8fc94927":0,"408689f469450f8493bc5da6e0a6e5b861e44241":2,"faa4837a0c2dd485d7fb11ae0c47d6995dc962b4":92,"7fcb55cbaf6c81168769dba27468f9d2de9a6e1c":529,"e5e0dfb313c30e9164c810038e21da8058349e3b":51,"25cb475838cd80661c9550dee713404ec1e949e5":0,"60ab599b6e10245d8fd115033218486d8de0b32c":0,"47bd42531b4c818d1ea3caac0365a755e3466938":152,"95d9e72a1df4df3b8a3bdc79067957e824850e10":123,"ac64f02fc8eb93b295fa0ec8c6071271caf751b2":2124,"b83581281fdca2b46d063b6866a570b238f20c55":1285,"1cd1659b6614e66d9c3e5190a4172af55d156a10":53,"835e967f59580b982a420cec45318e58a86cb331":2787,"921eab8a80df67eae4b6b36fdf17563a42538751":60,"a2cee1eb873aeed6f38305ce4cb9f49ee2dccf8c":0,"3591b194442e8bca5e270c75a7a6d8675ab4e41f":1561,"81cc88e98534280561864263c6d41ff1879b9ce0":2699,"273b50e5b9b64152b9983c85387f3dea216fcf9f":225,"c31f92ca9aa6e1951533a0b60fdf53147e6ea451":3308,"8acd7c871c59b4f036a3b3a3728ae766d6539b5b":97,"795f4404b9e047bf20920c266266cff167595f46":81,"9da4a51f4925b5f24a6474f81572cd4099d71ec1":1680,"83341bb21f60f2a609bdcb7e6adc9729727d710b":943,"3b9d876833069fc4ae4202bceefb3063765be89a":609,"888b1c5ffd69daef717149ed1a97a5690b09cb2c":911,"9edbf7c8e858247d9cc92d3da7aa41749f05b876":2729,"75109bdb6ee090f48aa9d1dcc0d1055ecc98e9f0":9,"12fa3c94c651154b546518ebde8f4bc29a82eed2":1464,"4093f772d6bafa0c3ef3372c4ae4f1e545403cdc":259,"36ccf7d32ce272376773f2eef3ad1a8c481283b1":177,"8448ff9c168e10189109470f0ca1f0b3698a55db":34,"5885140b0a92896c63a139f7244c1d4fbeafffb5":1053,"557ae8f14b705a7df1773f80318de7a028112ed5":43,"fb621a9dd895ab96948f89e460c805d5fb766bc1":1576,"489940dba5645647b6679dd25d4ed4f27e142b71":106,"8a6b25b875b6c3245b1e3285eba1f40f77585a85":416,"43cba52d33abbbd05b26d432c6a2a84e7f8f5e71":657,"69ec8f0ef7d0b1a5f411df87263e6929f63b2b61":463,"e2dfbe8f190352986278999ebe6258354cae240c":164,"dc4f2137b5356ee3c07d5b3d2436ea4614f56333":99,"8b016a51c6f11e601db3f59e51d40f3dc7d08dbb":2,"a1e8d97bede9d6a04f792a77592f7f849768d34a":2,"0449217d7c9f92da6281a9489d40fa5cc2a494cf":0,"765abf68442d43a167a95fdcae81762fdf31514b":0,"b5d01a1130fede71508385fce688cee46617295e":36,"d82914c036980e58caea33255a1cb3d68b95aee9":1013,"2f9008f5684238db21985b73f6e1bdc20f51782e":72,"de0428e88bd11c33855c55f16ec489d0f9e0f838":25,"2783a9cc480b0e8e1d1301aea36bfe9c41c88956":2,"e6cfd50bdf3a9163d261314a54f36a53595cb63f":84,"043dc8479e36e75d219df40c7f660b4aec8c8d11":509,"c3f15c9023dd6468b75651b223c3c768fd36fd1c":633,"18f9e2514c3243350e756225b1ab9819bae01cb0":918,"e150aa35aafdc0b627687a91f7035ceab9363cd2":1162,"63af0b08f2a3f0b3b7a9d70ca3524b9c7124d896":164,"e42431038a6a2d4333c0341bd8fa906b38b927f3":76,"b68695bbf5ebb868a25d602765816e00bfd2cf8b":95,"3b5ffe32d0755d4de0c22ac225a705e7cce7efb7":63,"020c69a9dec88b5374b2fc8f7e9209779537fdf1":34,"41354fbb2a986147f3f9d20d9cb9d391a30ca516":8,"273337c09a07e338f657010a70f38f1c4679a949":0,"97a03c276db7cecef5f8ddb449bdf16ee405b24f":62,"a813ce652a6d43827d8fd9b5f7db8d6739fae065":35,"c0fc4261d279a06454832e27a9d6a79b2415e145":1,"0e2fee3ffeec75a52aab357ad54e39c339b2c3e6":1,"cba047bd2fbc5925f0cfcc5850c46e5320f98ccf":0,"4695068e2f886b50144e2ff7af106b2e99d46213":1,"b4803691e888aad6645e893f8a5518ac858e9161":3,"08383acabffc234ab7f4f9ef68b36efab6c0a959":1,"7a32af5adfa990a94e2fe2c7b33773e2067c62f1":0,"e13613fa42e57b3e0d723dc053c4f06f99008dd2":44,"200feb3b02fa0f574179ec1bf9415d7a34bbec4c":35,"36ff13517802a60854657f8f0e0208ccee631810":0,"b8d9b2eb1449d3871739c8d083adaa56ac5f840c":84,"e169511a5e4aea10d94c6b67e1fa326a51e26650":67,"acef119ed4557c9e467c9c453b321dc6203c53c6":21,"bf007d4f2998c8dee65852b1378194c5ff7d699a":12,"66e4d20af6b7071ed2ae969a496c004422c8fe74":13,"6b18d6e8fa72c05e7e6b540acd1f8932181b8bfe":21,"876b1a442a8aa83b17afa6d3ca5964fd571c401e":32,"b3acf8735a5976ae5f38e5837d4d0443542a1d6c":0,"53e0994caf611bb86d2ebcbe47aad5e9b4202cc6":106,"fabdf49f64f4acd25fd79533db61426b2b10d2a1":90,"1bc6b697f7ceae3b187d825d80df8e22402ea559":13,"9fb6375e704c23e2dba0f2e0656da2dfcd141b58":2,"088d3252b7703063e1a6e3a332c568ee87c1405c":262,"7d89dd8dc3438a98495148d02afef9cdb32f1672":0,"027446b66bab7a31d29688cb910ec80b669a5d94":0,"60bf14db28523a599424d161f40842d408664c52":79,"6f24b2a15fd5720f6df319197315ab4449d52267":63,"c25ba3f8150a3d5f5721f535d9ee16ff17b06060":33,"d3c8d671479ec3041c0ffcb845f75141e61291ab":361,"637be9812f20a8c867ef8da516908d1c374b807f":10,"976cf053a9ab56c74508110e8a1e78b9f7f739b3":28,"5f3ee9cad87f05fc22a39c3183d84b9aaddf7d92":303,"728af927a51bfbee2ddca6642d4a030668436dae":14,"8a4e71873addcf878a02de579d5b2c67c908d768":0,"be72ecb2691b454d8e78e5bb12fe8f4e0e9780cb":2,"00ab0e4be596cf267087a318563eadd2771ae674":7,"7226f277493004f3b433e83ec8e06ab665427f23":118,"c994b5c1d81d97220bf6dc37ebff485b1d92e6de":65,"78078b4b5df358e54a3ea6a8c25def3156a04123":2,"afdf6f5e10664a3244c0c7fddf1b3207a6f9f786":3,"c5cbd451701fd1a3f3ba50f8cbbe51d34ce271f3":0,"1d6e493dbc292b9e04547c630f93ed15b3ca2437":11,"f07ce45a5b07d76ad1deb4823619c21e0e05db83":15,"ee8c44ef4e156b290b78d60f33647fc1c73e35c9":4,"86efb7922ef4fa80b31b3d015ef61bf83944a613":0,"31935296f90cc690287c0a83812c7dfcac3b0ea9":93,"500144699f7abd2cd0aaaf0b470bd97ad923ed52":0,"4c7c11220067ba4496d62dbeb5329cefced6f0dc":10,"0f917e74bee660b243f43e668884ee87101984b5":92,"662ae7e7723b32fc20cd6e780e8785199cb2ebd8":53,"c05985ba6d93601c8d50a21acebe9c73e76fd13e":31,"2448d8a578b0dad886f12ae28a6d769a59ffedae":11,"0fbf6744eefa2ae9eda3ad9993157fa74daf00d4":0,"62d1c546b2b5615d50cda132fa08b7b9ed02c719":0,"43bbefc2c2c77f2efbb53f12958ef49a8ea31a12":12,"666e7222b1af6b02369bb7a780e2ff4c1a5603a8":75,"95411e3abbc26a69e5301a55b86248fc586bf4fc":421,"64a681124abb545dd0cdd8f6429c8e5c5e68693c":148,"573205d42b3012e98f1cb8c2e3278f62783fbcf1":0,"4d41b1550a4e9fa694e77239654ec435368afe46":0,"d173acbd48bd27dd621941affe01ad0553c9fc6a":0,"e8d748349bced8d4819d8c3f7fc2ec8274ea45be":5,"d6b78a571404c39d84c1454adb32704da0dfc68a":0,"d1e5432406ab1696d1a8c441cf604de2c7afa437":0,"43af3b59dab04c9e1f067823782c60528cc59280":0,"fca32f6de1c6cb4bc2c92be601002899069aaa69":0,"0cf6ec320f2096c8a91c96d93b2f65d0b7cbcc69":0,"92c295f97e2ba5f6495fc365ac6c8c84df5b5b7b":0,"f5d729488caa8f6a5b6c8086fe2cccd3e8a63f91":0,"ce97a19d241a0908fde4d45e8d80736f29f1abc3":178,"3e69937f373cc76664bba7f667d73dec3fdd7789":105,"0a04eea91d60c7742abf9f28b08501b6e1d51c65":36,"fa5841fc14ec74b18de46dc938944263e546a6c0":34,"b4de10028361008af2d0ae2947f92de4398fba5b":171,"2c21fb1d2958a69514439a83cd84b58ef16878e2":3,"3c7ed54be90f7c200927c4ce710dd4637b10545f":250,"990f545917190431f45809c7e084b612328a85f1":9,"882dfe4ae253e91d47db3de2f8d3ab106c7a5888":89,"899eb6b5390950cd02384ac45db7ccbbf13f63a4":12,"782c4b95d0136999749db3a02f7402b5ab4d6b7c":10,"c534446418828c693a9c0c4681358c762881c101":14,"30000ed480b6a2479d618325d3a6d8b4ef66400e":4,"75320604151232fd23e0e07a5a13a452bdc208f9":16,"dc80c6c0e930ee0f7c1402cd961c81344f72bedf":59,"b15ec5101df7642758ff3f90fbd9758b1bec77c0":46,"0f49cc445a8dcc992f85358434a5d5066f867646":11,"c880337105b3eff87acbae23278f45aa6f173495":8,"0d800618c0f6b4bb3a37436cc3d3aa6bd2912ba3":45,"06e60176fafe804dc74d84b5e235b747d4e21dd5":7,"ca80207ff9e6e8a2d5ba204741749bfe9990f949":166,"c0853b6617102821d886c0515cecf2e86ace333b":0,"ce16f254d6343a7dab516aa67ae8d834c0bef0f4":0,"d811269eb4863d71c5b51763c6d640855c06c0ed":5,"ffefe3aba489fa970d8fe211f3cc6312cd64be6b":3,"97131a7b1fd69b63cb2a945adab38a93bec13573":267,"ffccc1941ce22d77d16770e13ec327487370a798":156,"a441664af85f064e716744c5a42ebc5488c4bfe1":31,"22ef1a40e673fe54c68c84253773a4b9fa2c6973":0,"290aa2ff96418436728b7b05a40e67c8baf662fc":1,"f7c2cab6e7801aeb1824744c1840fcddd8c221f0":0,"904a9c2a4e326360a6ff3a261b43a854c8cb1618":28,"acfe857a2de702363da4cea3c059a3d73e5436bd":33,"79b66d313e89103a627fd29b712c42cb4c9c5052":42,"89f90aa37e69f66daa7c7eca23265e27eb5ca8a4":5,"eff993fa60610a4cf108b791d4b3b9924216fb33":28,"75ffa7605bc65931b0dfaf5efc08d064d2361c5d":0,"99fe78e3a3674b40b14ea15d245176a9b8c0c076":0,"ec24a8ccf8328f5bf687a3bf6aac393045f6c131":179,"a341eeb96a395615222540048ff53899702c686e":40,"14f753ba81c8995a3a8c99ec9af55b5cc4b04749":39,"b2a56f1845208e4296f04968a16f798a41607661":5,"68ab27b84dc978789d042568660142a19e5602d9":0,"35e2e2da4de916e7cd03378b0093a765551b4f73":37,"c8b2f90f31d6c92924cd67c5809db8fb60aac2a2":984,"613fcfd52ff3953cb66f1d3775987f6edb3baa4d":216,"f668577a4e63fdf19121e0b95e39736fb82d27c1":5,"7491c488f07963183391f70f84d7fecc5df9b978":0,"6082b7727f1f576de40fb20f85dd9b91ebfd3129":4,"ee88ecc6e0109902ab754c3dc9b0e83afc0912dc":2,"a098adfadf6f6581424ce8522c3922a20651773d":2,"c6dfedfdc66cb3c005d3b2f3b804119a3050a6fb":0,"2ec71944645878750981a2ddc38671707f31f524":89,"c97f467947c3f8ee67cde3840e35d9b9b6317889":243,"30d9c5332fde732ee5427af6c34d6b5e6399eb89":0,"d9506dbfa5b4a8cd853d62b28cfe972a353e0e1c":68,"e6a1c4a6987a7410494826bad1b8f7e1e6dab387":0,"760339ed2763d4bdba54b9afc1425d59df2fd97b":0,"c4785b5992e0958a83a5db7105d87c33d847463b":0,"b91922bb8af692b285fe6e189bf7d4d0220e0c71":153,"2b52e65f3ca141839be816d6d63831a59915f527":73,"d185083b547f2b08d221af6df169ef83be7ff51b":39,"a39768c82ac6fd351fb0cbdf77b873c418e2906b":0,"902d80258dea5c5839605f1fda881c03d38a594f":0,"4dde7356cf18e1a21dae60f0fe1f9e208d591bd0":0,"ce22455668c072ac567640b427bd2c4dafb855a1":6,"17b5bff98e86db45c17cb4dfbe5ea79a177c433f":88,"9f3e3e59c2d7546056471bb58628cb76db08db40":375,"796b738f7f23070c345e1070e59ae920a8909210":0,"0b3f39ff8fa36bb74b65cfdb7d265e79f0342ab6":0,"da68097fc5ee876f78c74ad284526a01b5f3e16d":0,"e722757c7089f1bad51894197385c4b318178f87":4,"2603de3da9f15dfff4502bdc8bc6737c65813aae":138,"ce17c9248fa0aa6bde572ed7db386e074fa8cc5e":0,"f59bef584cd7a70a215183e086e59dfbe98d1568":5,"ddf6e403b08d026a460c129ab319fab6c6956e1e":0,"e12841cf4a9fb8b95dec75ccc551a26c6cd3bc3c":2,"751174958df2b27475d6d17834c645b04af18cb7":0,"7725e69185afc82a0f3e880c168db41bb74ca4f2":1075,"24061b0629ccc598cb63676afe6c285131986900":48,"0bc3b0fec197dd9f1be1b9f0267b6bf2fbf7e5e8":50,"24dcf17b7ac4bf912171dd98dc30af21c0189aff":50,"d7795ad11c7e0ba3308d5005cf579a4eac1e4538":8,"8446baa834c1ef29172859bbd99583c5252f3b71":456,"98d357751bd675c83797a6fbb7b2eabf337f386b":15,"6269ac6fe198d44098d1be65c4eb946b625562c8":59,"0ba59df55afe9e213691f904cec927b6319cbde5":101,"9b8ce3ba4f260bef37382b2c547dee46bb059746":201,"6368358d4b48f74f0fa22d154385aea806d960d7":370,"af01f0a17338fb563d02bd1266f9fc2a2ad9189c":72,"8aecc8dd780502d8acdedab034e6fb08f6e6e7b7":0,"e5527b8b5d93d2fb886bc30c119ec77619a4e7b2":2,"9ca1d139be3d8c5b129109835e1b1545a55a1778":935,"4c55a13696437ed8a8c897b5bf8abbd7209e2ae5":0,"cb64a8ce329e35c21f52c01be8b49af3867819c5":113,"8dc792561c315889df3a97081794a7e360366ee5":24,"d24e49090920f3934625bf9fa26f6db45056b66d":59,"2923aa181393f25f9265d567dc0ba6bb1142b623":178,"950d02b51f178a56d4126f15c26feb558af53803":82,"af145dadf7b6f60fade5dcccb5470f1c7bfa821f":1105,"31d1f84876bbe29d55127b5aeb2e3e00606d469c":0,"8c3f55e64acfa602caee1e841f43bb1779eba481":368,"121e9cea4b801d74a2f599815b9dfa8ffd68fcc1":43,"e73468447605c67bc5c23a2dba2e0343425f27d3":24,"7c4b8aec8d10c957df3a9b0897f9f6bab54f598a":101,"a255d915248957c660f0219bc95c41040df3fe35":89,"297a035c649030b2c767a2ee617349cd32fe98fd":52,"7bcee954fe7224d4a54a1f9cbdfa04714044fd99":134,"247910cfba554e7f3e9c2309c52cabc27b4ccee0":43,"34bd9b56d8eba1ddb7dd607339ab6d652bd4ef6b":29,"b54d7f8b14749b4d32df7ee9a8e4ce31bc74e09c":37,"0073e11a605da287baf2f07153d2ddb54ac13e22":113,"9ad104e85912f28e5cdc7e2fc4be133834e61ea2":20,"66e2eff92e894077c277b3f4ac6f4d4af39310fc":0,"3644d40d44d52ad63ea8c2386a5f69dfd2cdd967":8,"0aa8152a767f5272af994a9015cdf649c3cc7331":25,"9e0341a14753319ee4bb391569b022f0fed7bafb":45,"ed2ba1d8a1e945e98a820ac394dd0095c04ba5b4":0,"1e18a784a930b0c139340942ca920775bc58479f":81,"7c09951d8aeba7e29676baa3fd4944c6b7c8a8d0":60,"ec1a4870d96c553d98588accea43fe7be9bc4b9e":35,"237cbd8ce1ec67078bb82e0b8701d5c531db5606":50,"a43faa97e3575fab7011d6cbc6222060b33f2875":89,"28f061356c1c9eec2f977700ea9d6d80ad064c76":0,"b2c5226e0dfa6adf059491bc62e57c78a3969aa0":35,"cccf91bb0bf545b090ac5e7930b3dd722b949b0e":6,"86f1a92e8147b89a82dc53dd215b3ebdeeb77aea":0,"8e2a5853bd2a20f791c5b8ece7c9b9b0427d5889":39,"67f7a17e459eb7625fa34daf88dc0a4ad8d4529b":176,"c13d7df4a5535fbdd1b8e6dbd2b2347ad9ba4d2a":2,"1fd48ffae4917d191ff2540199769fc1b9042745":247,"8dc555eec6329f6edfc8b1689234c8eef49dfe3f":16,"d0d1262f9002b7bfed27e35150fd4beb6978b074":23,"87a34e7de77722b7bf72dd39917adf1a56557ff8":26,"1d51731c4b34edf2ce80ad0423a601191896d6df":1341,"c1d11902a1982c3318f57f516a0a9889c63458ee":202,"b25932881b9e03593361c5760d947f36e7e31e0e":27,"74e7b784cb6b143d79806beb7a44431dbed4b61d":59,"bce662a9e42b5a04d095703a6137a8868edbec0e":112,"22c8be48ccf030ec10630783cba9b326db6cda24":14,"69af00889c396f49bd799c826a2dd575af0a32a4":119,"1ea1350dbfbffb096f4c126e4dd8ee7e86c32353":93,"d6700ae9bc66f4f27174867f6c04d0e10aede5d2":19,"94e97e860c1f34a3d8f0dcf8b3240c42869b36d8":121,"5d02291e3266d93c1ed84b1ba3c60784fc320969":38,"38cd56ae5cdd5155427d5d7d2e2a8a66d9c14682":154,"72714268e08c954c0d1172613d9331823b8b8301":305,"243dcb70d32dfcff65e00e37e33b51553de2c85d":58,"c62350eaaec9a32fa960c89bc9bdbb7438aad2aa":47,"89e0de5c2939a8d035f3aca8a371134935295c9c":7,"2e436c4187bb2aae69442c44e067ce3f9fa6266c":173,"de3fc0c13d21bc0bba927d13686b781ece010d17":0,"de4be21c1d658da45829d78b614266fd79dea73c":21,"f10088e0f5e0added6d33d12dfd2d50f3ba45918":2,"1b410f5806a44c72b55879275736ec93288f3d5f":74,"1767823174d8bb9b0732b9e4dd35bc346ca86ff5":33,"b399f25ab7bde198dc4b7f8ca6c601cc3204cf6a":0,"7aa57d42a2b8f7a7823ace8e52dd8d69483fb004":35,"b3e9578be33c6c90c98612eb4174c5454543396a":106,"b62e31b9f18556bc59959ecab81c484f41497c87":2,"1de2831739f120f69b9c5f685ea9d38da6859595":219,"2178ed6495c3c0ecd7d037e60acf3b1d0c554b97":16,"b0de440973b103b7f3fad43bc26a76a239b0d4e4":33,"f2eb6fb40e43555c42b83e36c19e3c709422db5e":21,"ed558634aacf62889043c0388e337dbe002d2683":25,"3c34af24b6d7b1159bb97b8f07d86e1d840b31a6":105,"762522123fec360759ef7a6a25afef307c0c166f":42,"4ec0d9ba82defaf0125c691cfeee47ce3a8be341":17,"9b2ea0bfd114139bbde01a3112c138cf2ebca369":11,"d716100293ef081454404ba9f56108a79a475ecb":0,"95ec0209f309aef5b68e9e57768e288d10647ec9":29,"6802db5c284d8c854d254e526db50ffbd5cac54e":213,"041b65f1fabff92c8c88e0c269f3cadc820e22e3":315,"d42bc7a11478ee86fc05f63c7a8ed5e940834eb8":69,"63278f3318e7648c583095f716de258804a7951f":210,"3908731035254c0d29ba61d3f6754f83f845c8cb":135,"696a826b243c8c03cacccff67f3dfac580d18183":20,"a1748718ea39ca86690ffc0cc47c7e14683dc09a":0,"d713f8ad148c20af2d166360dd55219dcedc072d":268,"8b41e634e3f0189efca72eb5c8a815024f65e647":4,"019ae9089fc2a7fefa7171605bd5c6e6b0371824":0,"b1ff73eb4b2d4426647157591476927da272ec4a":227,"38b9e7c81c4aeb88b1838b9f5ed99f0d3b6807d1":1,"087b4d07c316ae5caba0365f819d7e9af50260f7":10,"ca2ba98e3990273ac1a3a486fb4ef83d9a9811e5":99,"8db057c16146bd2329fd5005c42116c69585eb9a":126,"f0d1d7f8eb81ca94151dac0b8db0bf31842c9373":44,"bcf9d59530fc04d07c12430714c8d9120bac3b74":35,"cc9ba27ef2bc0033831194b8310ffa0a8d094284":37,"98b0ebe9e0ce900b212979d0c3309475536f7020":51,"750560429501807b8c93b9fbb00ab0784cad1626":97,"67038d43745d8ae2415a23f16d9f0bd7fb7e882a":66,"26536e70222d43498dbd88f7075f317388a86ae9":0,"cf57dac99ac4441053bbcdf742ff7e1fa65b78a8":14,"32304dc9da5eb7d78fb1cccd2783fe733675423c":6,"fed37c0b629b399fda593da68d0ec518e1c1cf18":39,"b6e8d4762598c18614697eaadecda2fff601a375":354,"04f934cf3655e05e61d7dca201866253be9f33f9":0,"d0b5e8052d749480d7163ec88f838bd16f101d58":16,"c9edc29f92b67feaa65e43cfd05a5e2b32ef10e5":5,"3b02617bd1d7558cd2db29344c4bac4212da8fb9":12,"bc9ad50cbadc7d21eb5dc04299c5fa0e31db4aaa":9,"4a55ff9d72259060019bcb64c2e425d38bc1be2d":0,"c51c197876ee56e9dc44af7c9872251bc4da1d98":0,"3ee035452bfc8fbce25814168636dea52aa3e823":4,"f67e3ba9aefe68a03cab7a8670c0da3db512d556":11,"1de9f90f99c42881aef40028265d9d55fb7e1027":0,"7e389af7d306fe6852e4e97ae4331e76f78360af":24,"3c0223c552f4ff9a477e00dc651a894f354abec2":140,"262d8156fdcc64891950031a1a6c200289f28f75":322,"1a70257f21332f0e364f22f225ba59a8e452bc6f":295,"847797ccf894d8ab7fe76cd56ff42e0d4eec9341":11,"1ac99aef36548e6d34b581fb68f470a03e4b8111":4,"1d9c120ed3a4a9e40a418fcef1a6f7efa2e4d0c3":282,"f0032ec4004b952bc3957337e6e3a889cde457e4":0,"31e5676c18cba0a6c8fd5185bea7a37be39274e8":27,"4d4bb44c49b996e5239d36d19ffb94b3c8c66278":31,"345c8b06eac0d41da646d95b7c80a46d54325fc4":143,"9357b03cc1a4d78db50cd6a33b64e40e2d849fd6":13,"cd57fbe2b0db60ee9bfa7ade42b1c4bc6825d7b9":171,"d1b397c1e71689c4311ef5e81e207876d15dde0b":13,"4e95de484062146f6da3d0cbdaf60877aacb59c4":0,"624cd9b680d0d95746db00ee3947d79183fbe616":6,"b00f191e42a19e0343a9bc55bea0de89f979bdf5":19,"b37698cc2e13471a3041510222673e68bd89207e":36,"b987946cf98c508a551b18c9696b3f6a62e7be14":21,"ea415c68a4f6fc5e3f0b925095442fd291e1d4d3":4,"572c17a6a8f7e9bf2b0e50a7bdbeabcaf5364aa4":0,"5c15163e7f80456d7c119cb4806aa742a7a231c3":155,"c2ac62a666e2d5c9c8ad9abfc1bf669c8a4573e1":0,"16ced92a736ddaeb35532412cbc55885a5458746":0,"02fafaad18d5126ae6e8e7ec52cc4fe56afcefcc":3,"a0fb588dae265488f73260787cbc13f75c9452e6":0,"00a4d801d9f46a6f933a07a70ca60df1d03fabfb":186,"dce8cf45a86f6f07ef0dcfbdc9600f73ac3b0034":0,"316550a7926c07963a8532e862971c62797eb186":74,"723431037e7f8b71121f65d16552d25059a75c99":25,"3fa93a3659b1d626f0b5b394b8ee40b570ea3872":49,"206210f9d453ea7bf6234b74cadd8be1946b435d":46,"fd8d2567cd307ca9edefaf963faf791dadfbbe21":58,"3ec6c5f1e6399f9c7fa5b0d70c7e174ebc3ff5e0":46,"97ab2b613b1386dd2ad65994e69639f5ca6e9292":0,"28eef773ead1441f418528ba42e4b28f19c3feec":16,"0e6a514765a4c1a43ce05561335c4dd1a1dda41d":46,"16ce93c91e22bdca7b5ac82dd9de0782dfbf5a27":0,"47738af6e46389794eace6a363f32cbcbd9a4a3a":48,"b8241cca98b5a059de7b836ecdbacc072f395e57":39,"f3d48e28bb350546417891535b3d42b17cc95e53":31,"b3236048f6522d8ec0a1f4e09940fbd64ef9537d":229,"8d9ec8d5b41a17231c89ec7018cc8e1dab113199":10,"eace11dcff02d9c8b7ea1b31773568985bbedc70":944,"00f5b37d5849f5e268dff9eb216811f3f1743abc":12,"1722e47d805343e54538a63ff74d24c62a38876f":8,"004987959582773cd4e1b99ad4ddf320095f5fdb":0,"24218666ebc051b1240823e1d72746afead8236a":4,"b843595d1763ae88a6ab83917619a88c3961c4c1":0,"b1adbe0f947265c12ffe6aff3685f4bc2d388c59":168,"5eb60b26282d49901698736428afd6f6355feb31":218,"7c2c0086d555ac4c5bc7ae5741f0e90e29081f60":86,"59f77766fa8098f15f404d87522bf3eba075679d":0,"99be14a99a32ed56b92fa6df8f9ff55aa09a85f2":15,"85817f08e101a3bb8833d60afd1b2e361fcf2f2b":365,"7df1df5deb93ed155856a8113e4c28a7f345d3d1":2,"3c1d4c4662981e4cec54c06f941740173776caa8":0,"2fe200778738485b92a0cf287ef05ddde9492374":0,"72f730f711f31e85f420ae81c9b44db8b608ad5f":0,"6eac0c3fd677cc01cddc68c92aac9761a665d083":0,"46117fb08067b1ca47739ed2cedeba798424953a":260,"06e6520ef1c489c02d03fc71fb1888ed2e7c6c01":135,"ae30abd9c559f74b81e6e531208c3892c8d5a514":150,"2eacdbe41c48660b662988de04e2516c586d4454":115,"56433b940e083eb9e7520914ce4afd477f86b5d7":0,"f0c0680f13499b44c01d2a82e6199a140e8281c1":42,"5fc5c66cb4c01d7e8becd3ac420598be827dfe26":463,"06208cc149d2a24a8f96f475525f3e946ba12b1d":35,"c3307fe3dec4c92001df7d459c178ef4dbfcfc74":20,"12ebc112eee303b23299614bc9b1e5909d174df9":0,"d4098114a3c2fda03947d51a3579ca9f001d1ed6":4,"ed94e093d9846916b8b2ca35bbf059399e52776e":104,"cb76313fcc2b2ceb542e444aab24223091d18996":77,"132336c4707a0082f76bb58355c82ebf9a9a59f1":4,"3b80b175b11d3beffd0605cac8abe606a672f5ee":0,"39c0e4232f1ade031a9de4b161ad34e7cb5ccbc9":2,"8007b73f9a7907b700c79a282282222513a9228a":57,"4d080ec3b2239b20a396f9c28610c92f6fa82e42":4,"d7468af1dd0db234d58b02c2bed06afd3fa4480c":56,"72b5c1cffce78de0aefcfe941abcb13560f3a023":0,"531e912dc5738d8e57a22f5375de7da13b77d11a":88,"82a1d3f24845e963c53dc295a45116b4ef1cf46b":0,"d6a397aae8a493161f4c00206355cbed3c4e1285":117,"78109a11eda2a7bd0b53545b7509b0f4a76a1049":307,"b847e97979bba8ed08f2f12770078808d2a08cf9":0,"dbd6bd6572a3492e1ff03d22aae682a5c13b1f12":2,"4b0d75c42c5692d5b455313dbebbc503dbc21c67":18,"38f454adc76f031ee9533075747f4b9d61efcc7e":104,"a1a8b0b05b6a3158257acf0128d46a5ab5c7c67d":36,"4d9bd648790159950d75b3a6e87e2027d7d8b907":26,"04f46f99116736d6b4a7ad9bd477a4f3ba3ebc00":49,"62b85aff1ff19adfca6fd42593581c79dcfb539e":76,"34083b1218bd75176ff2e41023da21bce893c367":83,"d327f25254a59ff5655da21df1ac64240393b246":164,"d13494fb7eec7004c94797ff4fc51905db07e70e":0,"edd0af74f5e78edaaaf16201716edb6a55282af5":0,"fae3ceb423e424b19601fdd4b2c76179f451b4bd":28,"9bf833c9ec8996df84f8e88e1b849885b02ae0e9":528,"100cf90abb1b75675d1d326b4772efe7dd2374d3":205,"7ed7cf13c73c876f0195666d20bd80ba71aee073":52,"2517e8751a578bc88521863e06e1582bd91673af":29,"03f5698d14127cf2ec4eaa5664733ffc33775e01":171,"b8f25858fd0aba0ba6e4a45dfde2ea4f7ef75747":0,"f42e0d95f04adc4475aadd29494346bec7238963":116,"0da1b9931c05cbe62e035cc7f0d96335dc8e99f4":47,"4c615b9579abba11fd8fd62ca39696fb9a16a3f8":175,"d3af843bd6f54cec91dc454539707fdfe8c041c8":87,"036ef25e23fad1e7f909c06836c377f81b59bd2d":102,"6404016a8f4b48d957125d8eb273b0d9299ed841":13,"23b07b920c9eaa208caac1d9878d4d8a3fb36891":17,"8eac689a625153dc7b23a50535da727c1eb5a568":66,"6b33719290b061c56838e87dfd87033a32ccf569":93,"2845bbc7877976eb0cc4f17ee34070dde2415f88":8,"9c8cbde461d0282666eb9f07a4ec80315e8e2eab":1,"6cbde1fc4fbe897e6c6c92e51990eac42821668b":3,"1ae6f9be7c0addbe561bd7bbdf2c6a655ef7c2f1":52,"7d76b13b00c620599a840dcc131ad43f0eeb2e6b":0,"59020bc117539fc9ed399c88f8e1b3bddafce349":0,"baf0652cb841c1258085d476b560b394229284c7":0,"57f0234899524ed8014cd448c02e76dad87f6cde":6,"31f6f49c2557a25548e092fad535e88ac41f14e5":32,"1e3e482aab2b574280067bc6d99703a2a5c2208f":1,"5a3f74910ce6753e7fc5b72a40a7d169d95e27c6":3,"c0060ba6ac52a098a8f230aa2195748d9981bee7":345,"3ad8ea1b79a36b0231c8d49a7b827c05c43bd020":0,"1deb1bca93190932adcc95ee56feb2bbfdafcc68":2,"eb52df0b5a20c9ad0a2a1491d1dc3b572ba2732d":0,"db0dd7ec5aad22fcc1014bbf2434898c1cf4e909":0,"a68284459b78e9401426988b3fb60cc99654d2f5":1629,"9da6afc8d59ea658f68b8ccd1d563e57b45953bc":27,"527266ae224fe2eed18f8d8a88128078f0104194":58,"647ade52d82439cc9297465058785b199a3de92f":462,"d86764f564c4406c317324e858c16d6c57398b7e":99,"78e80d0a2e65ae33634a750d82d07793f9101d7e":171,"ae147d76d3d0ab7e552732878039ab6c2a72d465":313,"9bcf5b2a0b6526671cc995ad8b1f22626cab12e2":6,"de8f715a229f52b2c4b7cfb718e454a997db5e76":4,"8d4677a5f1fd95687d5f373fa2a9e88b6429f7fb":591,"7efb57681ceb8b65624b7d3730a19331f913320f":1,"148dffb1f09bca8065f2db4c401fffb716535495":0,"63df93481e426069efac43fc38d65545e7fb3964":0,"c66248a0184902cfcabb09dca3c8a3ca670105aa":432,"62e109dfdeb2ec74d651690237912f9221f1b50e":115,"9adc563667887bad2db16836040b623a601a6b95":0,"29799a5b93822c01f5b756313e620519204add54":0,"e6c32ca717880e1ab2c8e508912ed8fc823d4e5e":238,"726fac7701c4d378c576d0198a1009def17acca3":0,"a733afa1b3f8cc563e85df2fb848a07b1d0a9343":286,"1823ab6ff0df33ddc1fa7ea832ec03e8abc80a6b":0,"86c5b5329fcfd388744e56c2f819a8424093d4cb":146,"cf8054e7cc6dbb42b7d22d67045c5c5ced7c3a0a":80,"f03b4b2f364a1cbe89a8eb9465509c09a524b3c5":0,"9abaa1a0ce0a0f4c2a7204a72c953b793ed11274":13,"38875f8b4a7d22cb0120ca991e52ce3a5c7d1d7b":23,"da291dfb453cfdffaa788778dfad3a0aad581b0b":809,"c60b9c1c595a057f84e192b918cc2164d6d667c8":1022,"1fa75b27e495e26727fba413001c602e02bec0f7":5339,"a4868092c367cfa669215e207450f4a43806bf43":4,"1adab84c2d997b6ce5b401c6cc7430df70c456f2":20,"07cf60cf165d66f9b0a554d33221b67ae7adf11f":305,"cfb2795940e76da934b6bd3ce27cfcbd014d6975":123,"be661326213810388f9d2d1e6201765c8ba9a418":740,"36ae6e909b42f7ada8dceb169abfd85578d8cd47":0,"e254d58cdb4ffffa29df99d78cbec0b1e43c11cb":137,"aad1225942ba2529cc01e0fcb34be1d791131e09":57,"13fdf9369f2b87b3bf1c082c3f0c3be5d1efcb7c":98,"9a2669160fdac57eacbce60e792c35183adf0012":230,"eae4993aa425aa898e9df7dc7732dee3c0e2eea6":363,"e7d256e617654d731a49bc1368c5f0240ae2f014":0,"7540dc3dcabfd28a55a7f8339849de88da6fb0f7":175,"fa62bfa5b7b217ef06de4321c80428d6cdf237e7":144,"5596e1dc7792025dafba7123bd585316fe7154a1":214,"a7fc7aea73533480c61e7b366288af06c23e74d4":6,"20a18f07c7741d7b0e36b9acacfbdc1be0c34097":98,"645612396754f9f2a1a1d465b6d92fae5705fb02":66,"e216f7ac415a0a2efb32961076281f81cb965f4f":93,"93c1c10e366b13e66c35189ebdf85e31812fd3d5":0,"2441c04b0a1bfa16210f38e377c22d4e2334d50b":0,"d87c2f08bd1e61fc6e486cf4152864b019b2ff58":103,"b2e9a2764f75ce6e428f9fafb8d795f8619d0b4a":398,"9170648308fce35749e329dae44d3994e4c033ec":44,"bbffd993648f420a66b6a2b92390e5b3f09b0241":129,"dd048e4841ade5c89e5352184a74e50b52fd29ea":365,"d637ddef1343e8524f91917860cbe8138a3729a4":231,"f8fcfc35cde2a5c633161fca77cfff48a6072bce":587,"09a4d7a89fc1aa82734a9b74f33cf4ab4b336b1c":34,"e619312fbbe5c84c7746316e6a0cb17bd37577c8":228,"0b11fd64bd116fc023dd7b23c82d79c7b6c8f69e":0,"c31dd1520cec6aed0eb508c2c541b2b7803fc076":106,"35fd7337ccdf32543acfaf13f1a598939be630d5":5032,"a04854587fee25676ed939634a50df06dfb6efa1":31,"5cd4d88d0878f923059701f628da719a39ffcb3b":79,"4e4a28110c8e7fdd9495cb9a45ab57a2b8c595df":345,"a315fd9a8657cf985b539c84a043a7d307950ca6":30,"357175127945bf505075e179ffd903e8a36420e4":160,"6348d9d7232401be26ece86fc915e7522f9ee8c3":133,"6cc9da5f2eb011ae201eb3914e480470f889ab6c":252,"a7a0c4fff538045fc3fa8c5c14eb1c0f76dc3d83":147,"2d63b338abf6d91858a8186fb0b66d5cb52b48b8":171,"35aaed3a0a7fd92e2a52b489c3554ebf4a4cd233":669,"810580aac3f7ac89df3a0df613738d50b402b6fc":141,"2fd96f8db17a2fb7e0ecf2549405ecc8b7de035b":9,"5bc85e99493e4c404bba18f583117cd4be6885ae":23,"5bf4aceb3da7e979c3eaf8f7c3e7551882ea126e":110,"836cb1cd0568aac1aa6ea22d4bcfca0b5d39a5a5":6,"e510ad3422d9d6151b80bc2ee409ec300eec5cbc":0,"df60303625c1dbfe9cc09862f40550c8b77e37bc":0,"20ab45caf3b33293e4f993aa794ad9176e9d8444":251,"81c67a5241acf4a7a166118e5bf047c42ddc8fda":3,"94febdf8c34898cb4e301acad493222a36069869":2,"f72d4479c3452685beae51854cee1fc80b1f9515":126,"18b6d95736a0ff3ff4b4169446c1c0f3154b3ae9":5,"1ba305dd750a855f3c44a26a18ef1761a156b1e2":5,"45d414002b6851554387a00583cff0e77bf0221b":59,"70d1c705266ce125358842b719e13cbd0e9bc184":1,"f052a474bc6706bba52db302729b99981cd467cd":5,"f172497564203ecf09cbe7a5edc56c5c148fef44":0,"269f3b63129a73c82e8ecf70f972ce903e0664d9":80,"7fccb15d62ad1c7b8f61efe6f18b3a9739195691":298,"3dc917e41fb0e6129603ce15823276313b9b9a32":78,"16a0f07ee36e7238d765a9f6b700b98407d6b67e":131,"2c4a07d6c8fc8a00100d067cdb619abff8f3a5ef":59,"fb94e5cb3a1235c69f32e262d05acfc607459c26":1265,"f4202771ada4442f98c1dce2708fa690a21973cf":253,"3170a62acae2c1ac188507aedf21eb3a6e56f7cc":567,"c4a33ee79c15c53e73e9875cd544ef9d6481e2b5":3,"ce68a38ef55c4a371d03631e5918b71ed79abef2":4,"04ee7f8f7eb2bb8cfe0d03db00283d84b9bc2e82":0,"02e37a5b961cc5392c7a0477a02181dd5bb54c7b":236,"538b491a0a13cf06cbc36accf75c6e275cbb7f26":0,"36c58f0eedc1cdc2f19bc51ab9568a1afb6c5f9e":0,"9d8632a29398335c96d09fa9a367af31556097e3":12,"bdb1aa4219e76581fa7d97d5a2e8ccf0b06c0b69":28,"594ad83d98ddf35a4df0f2a5e297addc2b3e6d28":9,"5504d34f417cad7688f8acc5993009a06c910a29":151,"7ad678c1c72254008ff0b1e1cec9cce6359b53e3":3,"d924ecd245617146964c507409ce36bbd7e4db1b":0,"66cbebf17c947b7092efb445258d6c93dc8d67c0":0,"18173359b7b91b07e7cfac3b6140691c2e4d5987":165,"cd197fb47985e090f45d4be770cc1adf53817c6c":230,"f72e86ea1ba89368c04b6721d99a47cca44f9da5":107,"dcaee8c1505c82c3eff521931df53a1ab75356f1":517,"c1087af99b54fa7832a7d151e48059ba3bc855c3":99,"c3141a882e6ac79557e64c65c8d66e1bc3acf7d8":44,"c86f0354a24823f3f92e3af8173e08806240eca0":1152,"154da83d8dc1d3ac8c4ecf2e5a5b1b0857accf1f":0,"a037c208eac65c77c4c24d14ac77ad76d6ee02fc":0,"f38c8395bf46b71e276a8a545c6960abfb3d9238":158,"8a0d9254ecdd6a336e8295bc5399cffbc37c71eb":12,"87131fa399b0d96d99cc2379f92f99b34cd9c9ee":367,"d07fc5aef3b8c7a679f7c0fac587f795672fe0e1":975,"4577f8905942bf053b667ea1c25cfe637d455f62":54,"22e2cc00a54d2d1d1b493158f6d0a7cb15c7241c":14,"7974e1da94a831825aeb322e4b4e18eafffb2425":0,"3cd42cca7613075dff63162deefd5a79072cc3d1":0,"34aa932af4518b0114957f1c46d4912de508ef9d":132,"74e3b2ef3a99cdedaafb01aa862414fb275d55a0":176,"4b5f38c634fe4dcb7f7b79a51205c3ac45fa0dac":27,"27aa6fdb1846a3797c8b70f8e429144f9ee569d9":0,"f20a8a587c10189fd0e32dad45669d50944bc196":258,"ff19b6ae8df5c9ef38d10a90d57ca94a69ca90eb":0,"43872dc7e43a6757adcfa6faf4daddcaaf99af6f":2,"d0ab9d7fe8b740e9bd10f1192373fe0b5fd92312":260,"3702bb936c82236055f382bbaada22cdeb3508d3":62,"c86eae232071cfb6f1380d8a6c352fe7b47d3d53":93,"d7e7acc060433dfee7e04cf68e3b5599d350f550":58,"bb7af250b8adaacaba0072c07401ebcc67ab7eaf":0,"563d6090243e64edd4a116257cd70cfc265660cb":29,"15c4cd59620afbd6045916dc64fcf734b3e73486":28,"53c724e3d73e93eafcfa5378726b74369901b9c0":36,"93f6cc5cb832aa42e48d89049bf29f47ded746a5":0,"e85bd08cd86588129a8b436475e453815f657daf":62,"daf23fd33c9659b12b7c8fcb04926ed4ccd6fb7a":0,"aab457891eb2bfb43cf32f0130d163548290ae8a":841,"96867775a76fea10bee220664b2314a948564f86":5,"36b7432ef68761a59a42e475f1d60ce75ce59772":31,"d6440dc2022bdf933bb3c15a440fb03e45b85946":34,"c66098b50ebae81994fc76dd50fccd6cace86c59":13,"44fdd44c330c30ae89ebd3850a4c738634e5899a":67,"1205fd4a02e51c7bf40d93505021d0dd5f95cd12":105,"09e4a243f0698ec066bbb1ee86e10133c9a4fda6":747,"de70f04f46a5d3fe8a68abfa0e9e3720f97025fd":0,"30b22b74ded9401f474b507b9b8af9f9e922a5b7":31,"17f77913baa972199838cee885f652285264bc27":6,"ba019aca673700714d2920dd0db6aec321623642":0,"10fd85cc6fe33f54355024ba6e1095c021fbf6c9":0,"bdb0666ba0af1b9539c6f1546f5626bc91ed4ed4":69,"64e3dfa60a627f78d6d2ead0816ee7378e5874f8":342,"3ee7cca775844693a6008d883a7315cb2ca1836f":407,"7a3b2a4e08de39c9b91dfeed753333a21e668498":109,"5a35b98d24fbb09b1890c93dfd099fbd9287e20b":269,"6ef21ea966e2f6866d661104ad8e460cef4161af":39,"3a3bc73e2b9a433e40deb8b09e1c5363fe5c4129":93,"df39a22c17f0acaff2da83894f7945334b228964":107,"3b2ca8fdd9d4cefd6bfc901aa0f42dbd6516a3bd":0,"00b260f060f61c48e44dc6e3b580a5713ddb2202":247,"e877b2a38ce1628791f5f1dd97471c4fc21a7c2b":4,"52c54332e4f3c9f2168f12a6c3603fd6e57cfa93":197,"e49b0a462f62c21101e529e88e7fc86319d43cb3":0,"9af3cc4dead05abef19339a94197ab0d54ab3d1b":45,"308c743b15fed2701970403f525c71318cd6d635":284,"33b7e82e4b1d535de578875e82fc82a1c10cf224":0,"b979859c23f64a8e065ac35406abcb7d4805ffb6":31,"f1a532518292f20ecc75909858556157e0a17ea1":5,"e31bcd08873f1787d4d839f7a6363d6f18f9ce14":47,"72b885e7c9dca821526b7ef10b287b47d2d655cf":44,"0e89987cd5b95056415da6f330f7695f2a356f4b":112,"9acf2f5e2fd2c0bc966d1d437a243d424ef39539":50,"022b85b0bd3d04d497353d8de4ce3e29c02c57e8":51,"63dd6dae0fe0e9978163280513c7c53f05f5ce84":7,"5d8f9e6c9aab7357551008009d962397fe65093e":71,"90e9864954201a6cfb53268f90d3a4f290c2a4e8":26,"81e7c7f98c5d952cf2ed3a49d212858270e31d07":82,"8373ac69fd29d1ec11cd7a0b615ad77abb9928d1":19,"4d694a4cf816d938a9abd0b7901720fdc20ad23c":12,"58cafb998ba6d960f3b1f74fb49ee5732b4ac7bd":48,"45410de32b6f92f73387cba48fcf4f2801704127":52,"18285c6fb2386b0f9429108f6f7e386ffb5328fe":9,"1c7c32bbe67dc3422a76a9f56b413c6e1bcc87ae":13,"b403b6f6f17b5f687aefbf2132bc4a5d25f9495f":78,"b98fccc3536e6ae4edcaad7af5dede3e8b00c733":24,"1be7fd80c4cfc571e2fb6ca84967dce83cc96477":48,"bfc2669f2338b401aa8ac3c1eb55d5e1be26877b":26,"5ea0ba125b451e7c2eb36b7840356a13f2034c5d":44,"65ec6220f89ea7203a5f2aa54478a32b3a55d5d7":115,"1c3803a5f4dd340ed5fe746dc52e6cb3d86754ac":150,"1046c9cb64fbe5651c345a2a332d13845493d9af":54,"2dd4d2917d32a56426f766d4c041ff3da680390d":132,"6c5a18f90a9d940b45a6db807a79d3e90da30b56":0,"5c998500658b485155dc165903933e4b75fc3365":0,"505ac30b6f295f97cba7bde0844312e66125bde7":132,"9804af950f159b005c9898e063ecf1ca3774f5fc":19,"7f0e0f750fb83db24d626df03edac254073902ee":16,"b5c0b2ee74dffcc1f4d39f7502efa0eb73a8755a":73,"7ac7fb3ac66d8aa3f023ae000f5cf1c8167a3092":29,"3f9779a21db18ff7379f80840975fd8bef2d8820":10,"ba196fb831eda100bd896008c45a2936432ff6ff":200,"7a03101b59621fcd403f9ab2290346c982b8ca2d":4,"47e72f4014123b5e49be0da1712632c9facde60a":4,"4293073aedd29cdd818eb2991a5400d551b5b720":211,"7cf86c5d9d4d7d74d6ff6835381921db4b8bdcd1":54,"52bc3961a8cc85e7166dd83a5b64e875987d6f22":25,"e1199c1d6ef5eeb857fa9349399126db786dad01":57,"b8645373761b3e9be4ceccb8814bf90b953cbb0a":31,"9883c6cc710880e158596c966e94422eb32d7387":0,"7baf5a5f8bbabe31edf9f60188ae30295a1dea8a":3,"5c0071694185d82825261424af458c3bf4de14ea":5,"816fce0048e0d2d853004a275cf47bafe9f487f2":21,"554d905833c62b7fa9d0bf30131fbbb49b3379a2":28,"9c29b5a9b6e482496ea8d59b52821b50558818ee":31,"01222eba332a38507ac3e38556ac88db1f0b45ba":28,"467902b5d90b0e4cf1e695d8bd09081096e5ba02":32,"4aaca62bcfb1b96c2f18f0fc7cd096db4274d2fe":48,"2d1177da6691897bf545ac9f4cad3efa9a87e3ca":45,"10a653d8653d9d9204d2cac387d8d8f2707fb128":40,"534e1149e7fd5ed6686d92a3dfb9941401dfc896":44,"0c33021eeb8ad7a4b25fc7571463bed4b4ac42e1":43,"e412ffd2dc6e40a9a261c8a36d1f6fd820cad598":31,"07dc4118e9fca96507911ef2f6cd09ce66ec998f":45,"be80f1b34d238b4617e56fa22c6809f486e2a826":123,"9af85cdd35573648fffa6eec10347243586c216b":52,"0beedf9916f3ea22e42d84376ca54e8ff12ac44d":157,"7047ca955f9f2d2d9676fac04ae530600a2e8654":43,"08fa7070895f9ae0fe3b7029a4dbfb9019d16493":121,"ce60684e21e6d98f19265301f6843c34ff6e6e16":5,"9e61547329ef49ac625c4742ce9aa4f54df0f917":25,"b1578d71a2e2d5e8001ecfd23c20c7caf35dce74":2,"2453e356014d301af177c9557b4e2e52a7a448ba":85,"67d1c2f0aa9e43be3d478aa8f22a23a90094cdbb":33,"b86a14b09bd7cca590159db5134cebaf8d2826db":410,"4c9dcb3e0f587b7749331efc2bc4558b11e74ae2":18,"6f2f265587bd2b5385711ee718e265bd3d7452ec":10,"710db10e1d95936c7a433e5e5ca640928ab5eb91":45,"3cb6b1287df71ee2a4ec0deed0a6b86cb739be6c":18,"29795c369673c2028eedf73a303cf29fb276000b":4,"bb62f16901e3a9f351922db9eed15cd969727b6a":13,"3d600ab2c7e883e429847bad2172c0bfd8c1aa56":66,"6b75e8df18b2cd931b6c350bcb945e08bb6c839c":51,"cc3065cdec3c89774c4b4d7769fc26afa79126a1":123,"05e5bc31e3de954964ec275a5786b1ac5cdf4df5":44,"f0247e87adec379cc204caee6e93917578a3b175":35,"6c1c6ff4970b7bfb9ddfcb85a1a9e644b62f9fad":120,"b6bfd6d26e47f280709318b95c78f9cab0006b5c":46,"22768ed722b81bd5bf0d48552800d4f735a05414":6,"782c6505f6fbb0fc5d955d9885f3c7f544a76473":28,"1138f23fb46f9aa0d7151c626ab298e304942e2c":4,"443a2822f12743311ce4a14f8ba188850b7d575f":59,"e439e3885a004bd5454795bee782d09879d6fef4":50,"89812d88a233cd10cc66276069b9036098a3f534":8,"a9f466983b370ec3854eb38faaa80eaaf775b81b":52,"9aedd48d8d5937db827c2790f5da1a2a033ef5d5":43,"6ebf9403baa1d8f5c15b865a243c15ac39b49b3d":9,"c4a2c642fe2368cecc561ec5ed73ee5e75fe37e1":117,"1834eb44d773aaa16a16fe1928ce0aa616fcf033":31,"bfff0ad8b94011a6f2a7129ce7c9b546bcdcde69":29,"0003be71c81ee5229f27d8efc0d1f2dd27c8cbb9":54,"6e461ff8f84ae7ae7ceee8a6a501c9524bc34c63":11,"6c2da5104745ddc67a2acb67a8244679f2dd797b":66,"ce375ce501d16a9dcff7f04ce6f584a8ee16b002":20,"3f0b05af6752a6129bb8fc718a8693f77580d8aa":113,"5f5b4d88d02d0ad4cbdb01544c81b0e18aab7f76":79,"71464218b65999ffc3adbeabb978f356c6583a6e":34,"f16fcfd697e678747f80903dca4e1266ab293b4a":141,"5f6762b3b4df3afe67908cd28dde709ed60f5451":22,"622feba95ac9815eb9470088b143c81d1cc888e3":329,"58b15aec28861c0b3f15610664828353f3817224":72,"a50a39648ebd490e6052a9d5db0177dab5e846b2":36,"24b5fd8a6cd030427f4b2dd0fbcb79e778904280":43,"39dbc357551a8bb8b34c8cb7628ce2c5cf463332":159,"5e91bce90917c1043311e1a0d8f2a279aa119aab":39,"16afb71ee03c687e7b20ca4d1f0e07b0042dc57d":32,"222192771d26f7c564ef5feab9c02bff87a838bf":24,"6257599fea66e3478528458181545c38186a3fb0":77,"15edc2ad5469842cc0a77c956bfcf5c7b89531f2":4,"c349b1f57bc7dcfbbf12257d2292d243746e33e4":236,"45b5d4617f8176f0a0be17ab660f10cdd7aed1d2":62,"c10a353a06eba3366dfe0372c03cb587c3429f6d":43,"a84f4e41a6faed4cb8afaf31961c769936b91278":121,"680a3f03f82e8e7d066edbd73a0dfea7e743f830":74,"33f42d718c239b521f05933c6518fc3659727c38":30,"76e0735170d2e04447d4ac45b5bf204cc9676a07":97,"94b0424ba566a5c2799070bdabdf40f54eb67aac":58,"aa2d4003da548cd3b879ab8eb5aeb27cc6b19ba9":52,"9641fc6c3e3cdb5510a504a4b6e3c8afd9b8b8ab":71,"2f4a29ed0313acb63c152d6d49181426b5b27a24":22,"a7606f3df747814286ab3feb67037ef0e2f53467":44,"ebc702ef1da12d339681824a7e0daa4be2c19008":43,"97bc8aea80f35ac109a4a659f385585097baff85":21,"1cdbc6a32525f1b39adbe73270ae8b73c688969a":1,"6f6a948822759f89d939043ad8a694a997537f1c":3,"13f6b4a97a9ed6beba21a6833818cfe46a1b8484":14,"463d02e21c4ff2e2b83e024e5b420b8e11a98236":36,"34afdae3f8eb5723d0d360b7036999a978af6504":47,"21e0c7289cf9712b51c3c5571032a476fa401471":5,"2fead3cf35d98b287b5ffc384419ab4766948691":54,"3840ea02acff18516f1fd60606f5d50c01472cf3":40,"10fb9395d15405f37253eff2416fa30e0e824fdf":21,"05eea7bd427cad0d77134c1131bbc1de25ab56a5":46,"753d7ec1189c27f4802784f4449636bf1f33a5ac":15,"262e3b6b22eef852d58e51a2f790747f883ad7cb":4,"0aad448159448d6891cdcd8a13e5dcf4adc318a5":2,"85db0deccbdaef86a909fe4f6ed19cf5def07a83":106,"efd3b59226f9d808790d34bf8550567b7cc3b23f":67,"03e12a51b761818b175d3b95494e7a533d6730e6":12,"5fec4074f66d24305765656f6cbec4070c33c049":13,"6017adb58f2fb74f6669e1167654e9af278dddf9":60,"6f26e633348193403324c4adaaa9c7dc7f7bb211":24,"eeb7bf47b513142cbf775dcd0f9e1288bdd78ecb":5,"b2cca00ba50d23f8d45e4330405d9f57392dbe8f":47,"d3ee04dfa7af47c5624869fc27edaae630d29fb0":33,"274f2adad0e397f6d121cb51d6eee2a0a9b0784b":46,"80b08fb662b05651b850811f4b9d127f925c54fa":32,"a03899720f2fca36637e9e92660d8f756065afcf":39,"cf69a502752cb9f03950d31a920fca64f74ae89f":54,"55f37ae7ebdd37b71cb6e6ad9de7ac62d8472ac0":5,"e7bf854c7a8b16b8026a36ae7ccbd761dc996667":104,"ec83fa9a00d321f633c350a92322d0529466283a":117,"2eea11a2dfa97e70c9bb0d24b98d4f1d7235fc58":11,"f753b1f4c04c6aadcf5284385ff9d9f6cd4bb78e":23,"ff916cd6b978def290c8d617fcd1dbf8afb4d1d1":27,"40ecf9edcccc8bad85553ba443ed6dd0afbb7384":18,"c720c983caaed51547d94e2b51d5698a2f293850":30,"29bfa54ae2236e1312ad5467691efdb8836d80f3":73,"9281ae03a9ac24345cf570c257ac3255b9c82f26":47,"54e48f0151b0949f0b70687bc35a3209e1cf8e41":13,"b7229972a905cb27fa434be7d46aaf2e7eac2f15":41,"de70e8487eef92d874f9d4033d174a4c0763f508":43,"5d67702a440815fe1d83bc612916376968286e90":30,"5997ef0923ed719ea5e26bf2b643b50bed318d37":40,"a15a0079a6fca22535457051e1ec33ef0b939e14":12,"c42d0a1c8fe2507286763eeea1467984811f7231":38,"af46604047209305db00c7b8905e11931e6e42d3":2,"7e17060f207493501b0c4e5856186ee1123341f3":4,"0ed7e494d61036cf4299f5a3b02084f844ca714a":10,"33d6d079c95c6b27ecff6b53fe048178ac0d3324":2,"e32f3a410f83aed25a7c7e858a33f1b2bd1c2b31":2,"971e1964414ab6cf26b7ad1ede295951c5fafac7":31,"da000bb9d92604de45ccb3e28c75eb060f5cbfc8":36,"4b45d95ce363ae02ec107824f29ebd14badc9dc3":52,"2bccdc66b49f1d3be1db850651fb891b263af66e":32,"dccf7bc23d55a76620ea584c19be3ac48c1214b4":6,"95cf772d03012651159ed135f02e16a3fae83067":2,"fbe8497df716b26cf8a984a05cd4876f6dd577f4":14,"a15bf8da80c357c051511a6ecf08b3f13e9138c5":16,"195c2552293e9df06bf33c0926fd383d97848462":3,"67f798702a3834cdb72d60696753944f818b0da9":221,"ea51eeab1d0457cc08849b4483946540292777fa":2,"81c12f3aac275aeb43bbb7e208cc87c42d126801":342,"0381ff57fe34ce29040f9f4ef1792f825ebc7c56":62,"c8cdd94931f778c9930e0aad1be1236bc2e82358":4,"c99b62cbd8c1fcc8bc93761ffdc254b1fcceb68d":0,"66318f47eaf0a13e06d83abb53fd96957e431657":0,"99b07c5f89d2be38d32259537f94f8467272542f":336,"a612d86df1c13d783296ecded744d721feb9efee":27,"d3db97d1f0d9cb4e89ef91f55fd0fe3bdebfbbfd":42,"9ce651207d1b2bb48149e1d3517a811265f946cc":42,"2281592866be6e82d710ee147d49d1126193b205":55,"ad45d6d4cf265437cbaa8b58ba32ef42a30d111b":133,"f25803d3999b6d5847a3de555a5038dbc059dbaf":553,"6fe7096a6a0ff95e83c20a9722621e6d53612d84":122,"35e29d4137641d786837ea7579397b0a89024eba":124,"5bc2ab39a26830b618270e4e65092d1fab7aad18":20,"7af8158785c7d06e7e87f8b7d819efeb427954a4":0,"5253fd43c59690c45fb56b4b63f073b7d506c3b6":0,"423c01b0cd0517b95b13e93eb25503fbaf1954b6":23,"1a24bf067cf39053d43c6989351c82a56b5c0b8b":38,"c40eebcbb9d7d82f6eeb2beb9038562082ed2735":32,"e2c1e247cf4ee50cb536646ffddc9aaae3c004b3":22,"16dab7a1c342587b6f8bed22e0dcc9ba54af1038":29,"e78a3381ef5cd5e9775f322cd8c885f257e6c709":311,"fdaccfec7c117f27a45fe30e644e1dbded374ba8":3,"2007afc9ebd9d84c6c3cf2855f9a03b43167aab7":0,"f4ddb9d5d527e4adb325902db673a4129cc1262d":28,"0ae40f07e97d62cb6888b11ee740ebefb95936d3":0,"9e8ee2297ce4d23681ab385dd73ee42beb059aaf":6,"9193c6d565149cb53b89aa74e61010252972cc06":0,"7ebb0a9b92790cfc986a872d6466aa450f9cad50":299,"1992d3e8c0507626eb6c2e071cf0b12431c928d9":191,"060461c0826452f9fe1805dd4fe3311657d8686b":0,"53d4bb161d373df3fff74e9905fc5ed82f754951":0,"c64ef8f00e831459d6475017a0e4e9a5ea2c2906":69,"be305c2d8f2f0a71bca74304d8c07fd3b3b33b57":2,"e46ef1d0af3d7d82e41808c07c418b2577b93c3e":18,"cef4e228febf8b22ba6d8f4e2fb7bd172f103216":0,"0f4643c810a47f98b62409a95785f4babec5f592":48,"7502d20dba1bb9db0e0b3b824468c8c6bfef13ca":33,"7bf366fa52ddb9ba03c7fc82bc9976b862a13fe0":14,"2a6b9a907b8c6e6255dc4210ee12a90408f69683":15,"e9e49fa62c896c45e3364e5bd9573863f085a4f1":6,"d262ab3882952a59312ff3537cd86d894523c5ab":0,"e7ecd67c64f86190fc8c0c023ebaa01872cebf11":0,"34f6c45a4a5bd880f0b421b491cce54cc40b0914":89,"2dccb029626cb4366c35629df97d3fbca2f40e93":0,"c3c21f96d2603fe3ec7ee6b57dfafb74e879d13d":0,"e5a5caa80781704f981a150b5549c7769009fb1d":289,"4e3e7a8db208034a9b529bba763f75d3aabc0978":0,"106ec346a2b9c65ed227c765311c137ab7e31586":64,"665051086fa4558dc03f001dcec8184e442fc0e1":25,"311b505904a981d55e52629d15660ddd8d8d9343":0,"15ebd61f6775f43da4cf87859e236c2f51842192":43,"f5837c46f8a38915ebc8dd1e6250598fb7482863":41,"aa06fb4681b894136b094cedcfcb89b986e3ebf8":171,"f81c5c651d0baf7b3c014fbde322a564c54c3c57":83,"5f332affb4a3665bc8daf294a166407d16017aab":34,"8e0e22be9abaaf06acac775219c2618dc3469f2e":68,"edd228e0acc4ffc110f1ff516c5bc18bd5a0a648":100,"5358414bd0edea9382d0b7551eca640031ae868a":33,"15ce5da78328d58e166008a8845d468de9997aec":44,"e6759e6e3c874aae264a9cb975836c7ec1e115c1":291,"70eec0ad92f9821a8a39d169b0dfcfe063ff862d":106,"c90e0a4c9d59589ab9d1f8570ec9d5405108ce5e":80,"14f7e8236cc3232a400aaac59eda52585b377e27":0,"0a047492e8b38aae40e07c28782e5787fa646ff9":8,"93eb7e6e8803fd31952d8baef82096fb66f6fff9":21,"dd80116879e3e0dc85c94190d4f463b8c3c80f74":6,"969dc730ef15a3a2549450127d3a6740a66abec9":26,"67c6cf22ab7ba5db3d1414ceec3a94bfb77c4124":0,"6ccf115563413c1debbf1c8825f1d3d6c7c8d1c8":0,"22c56af7ad08998b4ac35d08e11d2f5ad276672e":0,"1870cd5cae0694e7a0c64c140ccf6455e38c3ae9":0,"90c8b2d857f9194001faa5411809c555c5370b93":111,"eabc091f4e885cbe61ce81e92552e8ae723a506f":64,"9fb3b016a6eeafdd75cc2a3b67e3bda96cacb6d4":7,"6c3bf27d71907e1775309aaad535d6df4fb76d33":210,"ed18e8ef96a7fe5eaf970195a786f3765a995684":115,"f61ff14cbd850ce26c45d558c9e0e52e11a6a495":86,"7ab752a5fd14cf575918eb2645c8f0e648f991e5":59,"6de15bf832ad187be1fa1db341ce5337b2d18563":26,"6408d8cb53518c47d227173f65396868a2a5d987":4,"129be815a4170dcd3b42dc7c8dc47fb520203c74":203,"d8ede5cf0c27cc86a074c3224bcbba280a76c60e":191,"3cc8653a499bf2f501e22f5a6b65fc1633f7b017":5,"f071d816796c23f12bafc20001e6976c85c70ce9":6,"214d7df538bb7356a25e9d158d2f92480b4c8e6a":0,"253d46952cbf4cca89642b21fc0e5170c42239ff":134,"2a57275f6bc3faae48a021af7a5b8241291fbeed":35,"d2847fda6ad6ecb1ceba4133e73fd6801af6eb59":4,"cce3b4fbb9348966c04b8e00ae7b882ae2e06f46":5,"4cf28a1b6a4a00914fe389c66bd5df047e2fcd51":36,"e186906a0c41d03a638fa4cb11b105359d4d8ed9":46,"37f4b6d723d1d951fde472887a9b04ca84789e83":28,"4f7e8117332b557eb28c6808387dcb0432c51b7a":50,"f297e560baea73affe3f5f40384d00e3e5e363d8":5,"f874736cf473ea09a73f66333bf7548f55a85a0e":7,"1e645a37b4eeb1ee6606bbaced0c525bae1d3095":32,"e649529f87f003e178acd1819979b6c5e59938a0":26,"72712c70d6fa400a6e48966dc107e20e72407719":288,"e0841aa9b62bd946cddb2a63d245b7ec0051a3f6":102,"a8c3a5f203c59fa480bedbb2db62db04d374113d":138,"7fdd49b46291393e5a9232b1dd9112b9d73f97a8":0,"8e44a42ada09fdcd24d2a529d1590ee0e15841f1":0,"756ce27cf4c712df919ad45c91289df7f0a118a6":4,"5b03f662fe984217350cf7f4a648ee527044b2f3":8,"8576b819d07e651568ae8216baefb4c78a43bf03":456,"73a0717222a23c0c7834f6552fe4df69a8f31cd9":19,"072dc201708bc9c77ce59c0c4a01dfd4208b1b0a":36,"f692a3d0cb48962fd3315a981c9edde9f11d86be":0,"0ad077d057ca4a2630e642faf2b01368deabf6fc":10,"260bfc2e77ea9de9248e8989b926bc0b1d5f9c1e":0,"19cebb558bbd7fde468877deef718cc43d7424b3":0,"58bec5e1189cb5471f49c7958198c1b9100a45b7":3,"290e4a33cf9e962a94ba2b1511aa6e6e24a0b63e":35,"d55909f82895e7b280faf8f42fef3e95a7c3acc3":27,"dd00b5e374f28b7154b74a6c684f98179a95ccbc":177,"b4531dfc05a3ef0ba93b57e8bfa5f48564a4b4d6":0,"1115e8d0f52f50968489ef7a80519c7d031f0ff0":12,"97923889db2a6d939e1c140a9e57ee930f14a517":55,"c4d7e3ce1f1a8d1e70b92dfd6e1848b7f6c17120":130,"0990bd29557ead7cf9572a2b25a1584a90441349":0,"e8f81ea9ebed50aa5f0522e335179891a08e849a":29,"8c674f68e297cce85b586b3c3b88b41611f9c054":39,"7a320e5921857f9856f624c46e98402a8142bf94":90,"5e91c000e2e4480bbfb4096156fb4f32bc9ddb8a":216,"4c6cc73b80fdbe0337a17b4b6c1dd6e8de754ee2":624,"8c32cffcba5ef6eaf9275a0e40bfe658eb0c3d52":519,"daef3bbedfe7abbf2d1144c741fc1afb72cbd9be":38,"c464460bbd08a7bf88d42ab63cbf6d27812cea99":9,"dea549e3d28a93309bb38808986f8592a1557ff7":26,"163b68aac9b4e78cbbab90cf5307370d6f2be58c":34,"0b8b3f2319000beb8967e23e3f3404a4f4320b7d":8,"b0c3f0f6e55d2020eb731aef1536738b26b8d263":79,"0f261a9e71b99c636a9170b2f5606eb14337ecee":5,"28330270ffc0763b7f81166b7f4209807fb94aca":18,"47bff2f8b79bc32cd0dd42036a1731d51579b2a2":2,"afb5d18aba39a23d6ddedcd5327dcf6dbd79251c":127,"aa61ab43a2105bbaa1f42ace4f930814a134c1e7":0,"f074b8da5880e88bae793745ca59d1e8673223d0":0,"02b61c44d2767deffc04da8271a621e7797e0869":0,"c99309f75c516e2d3304e2cc7ddb13356a2ad407":0,"0c38c0ad7ad3720f2755800287027172cd465818":24,"d24d0362f0fff112db13b218e8ebaf2259c40ebc":78,"595ac88cd6ec45c26aca6a7d17095b008f30e49a":74,"72d4d58a877f54cb61d58c45ec37fdc49b3647af":0,"2c7c4a9d1ef98c374cda41806c76d5da6019e795":48,"777bb73f853b28de46acfc75d94bf5fc16aa32ea":197,"230648e76bd0e2c1f285eceaabb4af5dd4cc988c":4,"b30e90b5f4529ba46108aaa5d888342d2d61f739":96,"d143e73b3ffdf7f057e6ff97ccca71538d16f7ff":8,"f088669bdf2fa1bb9b8694465e00fc61a4f2d924":76,"28c6f59bf5b200dc3626cbfba7c60a32c4e8b9cc":57,"9ea135f1ecbfc22ae7e8ef1f0355fec459e0b8a8":1,"39c452d62b75afcf8b14006b2040ea4817c058f0":31,"ac676f0761e96046c805b643a22976c4caa38ab4":97,"97946deeff1c905dccff124ec4cee4475f2dc84f":145,"6eabbaf8a8e903ea766fbae56aed7049384606eb":146,"162ba5568a7f3bbb1eaa069b25ff222e2fcc734d":39,"f4d2befee4e71a164fbc6834aab3346df22397c1":542,"1dcd2c206702b9cf8507066f3c28e72fd22dadba":0,"d1fa0db722893991d6b93b6a813954d1b6278777":0,"e45976c7f595bbb35f5512ce4aa76b1ea7a4c1dd":0,"e84889ec1303505ba53eec864b46847a5d0c2703":76,"4bec5748fe8a5d26ea9d23038acc048a0956997c":0,"6e6d7c6a09338b52b52f6a713d48e8698c63b4c8":0,"db011f7bf562bfdd060a5e0decfbd2996d2aa732":54,"5b3f42c08afee50558ebc75a81229f8bfee7583e":301,"2cb5e6968ecd6574c5eb5c52aa4a662aa3c05aa7":0,"72945188185a77a94e77b4a037ab7aa25b35d095":92,"b227a05dd4188ccffcfb3cd881a90357add861d3":59,"ce081298c7bcb4412b58128e5837fba6ba6d6d44":114,"630dcfa4db81b2cc1db7060a83cfcb73496149e9":63,"a1e48d75172561c8427a75c15b4ba9a4766c15ac":67,"dc300d2f4b2c4790a97360d5895b8a616f97adf8":68,"9acb0f9bc057fd50460641551bc76650b49e6a3d":8,"a738a05495461c9a1f32c99ce7bb42268e628d30":15,"c20a257772baa042a60c4bcd8c028fdd2f2ee724":24,"27adf7ae56888565b79a19101f60085e5c81d1de":22,"0d25c65cfcead738d1a635c672fed823c2a2ce54":38,"31340007f1d367a5a6e1908180e347341d26cea7":284,"0c07d3147b5c82d0d0b39cc3be482e9d40bad07f":9,"f523f26186db6aee38d97ccc8bb9437ed1d32596":1,"687f25fa3e61d79839507b4e999bbe8515e51d6d":1,"d603eec3c15425332ca2d3dae14e5b518a3d5474":184,"e99abc2916a1daca32a4d80b3005850076548ec3":105,"676484ebfb851ab660ac4813e94e55cc316305b5":76,"92512e1ffb0a77af92712400be2b8b8f040f1903":120,"f70af3817cafaef0a5f1009f6f6fd988e6adefe3":36,"8d62c91689ac3e481207b70954e8da819454cec6":0,"af7d383bfb2ec25604c77ac87387bd167a1a2f64":0,"a30c02ac8174575005f1396362a872c88376013a":0,"d3ed11da919a6b52baf1ceb4e149a248cef6044c":124,"fa36ca7669769255c553864aea9c66309a37bcac":48,"7816d5d9adea4e4c67aa43ba0b1a5ff77da99f61":59,"4f4c85617447db49d4ad98778f7e89c923f65020":0,"9d4f753dc6d35c7737d0b1e4b26983378d1a60a3":0,"94f62289a5e786768d4ecd6b3f5c3f393fca777d":63,"ede7cb0a72d8471da3556b88c39c8963027c8222":54,"c4ae3e5683c156d39c6555d8c5f6ba3489736cb3":183,"69553017d1c5ebae1a6e07e5278edca9bc78afa8":5,"19e83b056e30278e87a975c52f334c2ad9a7031d":90,"8c805e5998edbcb0e93edbd39e9a09ce92bb1558":45,"fe6b12fa0a779162ca3ac65e030684ff6892cc49":0,"2d11ca7e7b477b0f1540bfc82caa47a99c490321":1,"27a7b783dcc495eaac742a4bb87a5636cf86bd8d":40,"e7bd471fc4f9b47d30100d57c505e5a1af57eb53":20,"0ad8e60af961ca88d8182561342bae06b84dd914":46,"f1886a08892e477fe9cac2e1167905434a0e0100":7,"a12ec16e84beca4720e4720963e40d4aeae73730":1,"1ce065dfd8a27f147fc01a4ba0c2d1a6fa305971":0,"d3507dd5cf3f814abd7898a65384dc2b9d3b806b":0,"a10cbc51fd4a595ed6122acae4fea1ea4463be05":0,"add17c994dd29d9868fda2e2c07677e7a27874b2":0,"af560e191a7c03a94e80afab83c92083c41d5c02":186,"d57be9eba13415d3d2bb78fd0b261a432899fb33":16,"2b9a562cfc7ad1c904ff17a043d531d20c7b4654":0,"7c5e0ef02dc6d59e88611db315a2d5523eeacd72":257,"84d2ad09b1aa1e89ae73f814b35bce25fd4b9db1":50,"d31bcea254194f51f8130263730825ea86d2e3d8":175,"65a1c5897a938fefa5b060afa409ee07e041524f":351,"400a95da8742b02c7131b60f714a46aeb80f77c7":270,"929bd0ebd6b4a4227d1e622fdc1bdf1326cadf85":30,"f1217a8ab7128947fa938b3a0865251dd14a8a17":27,"0d39ede8ce138064d71b7fab2dc9d0483cf34342":682,"15119e8565a9b3ff6719c016f5d79c921f9f7efe":448,"a4050f6fc1f4ed3be2a213f48c25109c17202c9a":152,"b7fd2f5aea3f5f987ab3d7e37c9c127e27b644a1":1027,"b8dec27076c6b80bc4403eced1cc2b5e365934b8":375,"0b2addc88994636aafbba74d251f1040ac677623":7,"7c8db06ecd316e10d98340405feccef0b0e30842":0,"bdf80bf3e003439f71128ec92fac81fbbd265e0f":1252,"5461ff0050602dd4681df18908e24b2ebe9edf1f":0,"d679959afb10e6a1455426589da169c5c0437184":0,"a52cd7548605760692b30d72ca85a3935bddc09e":147,"3dfdbd10019eaddd8e15257cae35adf2bf436081":0,"cc88124908d0e5aa6caeefe5afb28a0f774983c3":133,"1bcc3925be6034349ef0d7de048cfa614a9af15a":0,"81475c3fb6fecefb2953b59c4798cad6a86357a4":1,"a9e74b98263d56405a83d31b0904f68d4b95b2ab":0,"b1764608b42980ad4811efc3901c289ec4d5f719":4,"4bf8898b31c93326a5e5d90999241a1c15b52ed2":0,"d1819fc01c9269e730e08393b062330da5d49233":0,"e3e8b0f23c59a2bd44494874d27fdaf745ccfa47":0,"a83cc5171b6ad94084b7e408b27acda81fc70be1":0,"24ed1c1ff3248df1d97ed03c52a4fc75563f0663":27,"72152f953fa79183deac3cdb79f15a5b032fb2f2":188,"4cfa05465a92b7546f38b67815d83edaec81e9f2":129,"7fe17aa7e62ae3ed45b5ab8265a5f0e00cd7fee3":52,"1774e1cd66767f4af683227ba2a82b1fed2b8cdc":0,"b4ee71d557d96e3cbc14f88fa6e953a1362865f5":0},"tools":{"claude-code":{"name":"Claude Code","commits":1462,"loc":447920,"first_seen":1775297174,"last_seen":1794590119},"openai-codex":{"name":"OpenAI Codex","commits":34,"loc":3770,"first_seen":1785914737,"last_seen":1788039198},"cursor":{"name":"Cursor agent","commits":6,"loc":2459,"first_seen":1787040000,"last_seen":1793099128},"github-copilot":{"name":"GitHub Copilot coding agent","commits":1,"loc":1,"first_seen":1793849379,"last_seen":1793849379}},"monthly":{"2026-04":{"loc":7643,"attributed_loc":4273},"2026-05":{"loc":4554,"attributed_loc":1539},"2026-06":{"loc":2117,"attributed_loc":1642},"2026-07":{"loc":3577,"attributed_loc":2573},"2026-08":{"loc":247093,"attributed_loc":235805},"2026-09":{"loc":117926,"attributed_loc":114168},"2026-10":{"loc":86490,"attributed_loc":85215},"2026-11":{"loc":7872,"attributed_loc":7626}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":30.0,"workflow_agents":0.0,"tools_configured":3.0,"earliest_adoption":1775898903.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"browse/CLAUDE.md (claude-code configuration)","ref":"browse/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/browse/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"engine/CLAUDE.md (claude-code configuration)","ref":"engine/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/engine/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"extension/CLAUDE.md (claude-code configuration)","ref":"extension/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/extension/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"integrations/CLAUDE.md (claude-code configuration)","ref":"integrations/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/integrations/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"mcp/CLAUDE.md (claude-code configuration)","ref":"mcp/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/mcp/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"mem/CLAUDE.md (claude-code configuration)","ref":"mem/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/mem/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"packages/cli/CLAUDE.md (claude-code configuration)","ref":"packages/cli/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/cli/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/parity/CLAUDE.md (claude-code configuration)","ref":"packages/sdk/parity/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/parity/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/python/CLAUDE.md (claude-code configuration)","ref":"packages/sdk/python/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/python/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/typescript/CLAUDE.md (claude-code configuration)","ref":"packages/sdk/typescript/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/typescript/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"packages/shared/contracts/CLAUDE.md (claude-code configuration)","ref":"packages/shared/contracts/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/shared/contracts/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"proxy/CLAUDE.md (claude-code configuration)","ref":"proxy/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"shared/provider-catalog/CLAUDE.md (claude-code configuration)","ref":"shared/provider-catalog/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/shared/provider-catalog/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"shrink/CLAUDE.md (claude-code configuration)","ref":"shrink/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/shrink/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"skills/caveman-learn/CLAUDE.md (claude-code configuration)","ref":"skills/caveman-learn/CLAUDE.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/skills/caveman-learn/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"engine/AGENTS.md (generic-agent configuration)","ref":"engine/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/engine/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"extension/AGENTS.md (generic-agent configuration)","ref":"extension/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/extension/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"mcp/AGENTS.md (generic-agent configuration)","ref":"mcp/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/mcp/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"mem/AGENTS.md (generic-agent configuration)","ref":"mem/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/mem/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"packages/cli/AGENTS.md (generic-agent configuration)","ref":"packages/cli/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/cli/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/parity/AGENTS.md (generic-agent configuration)","ref":"packages/sdk/parity/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/parity/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/python/AGENTS.md (generic-agent configuration)","ref":"packages/sdk/python/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/python/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"packages/sdk/typescript/AGENTS.md (generic-agent configuration)","ref":"packages/sdk/typescript/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/typescript/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"packages/shared/contracts/AGENTS.md (generic-agent configuration)","ref":"packages/shared/contracts/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/shared/contracts/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"proxy/AGENTS.md (generic-agent configuration)","ref":"proxy/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"shared/provider-catalog/AGENTS.md (generic-agent configuration)","ref":"shared/provider-catalog/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/shared/provider-catalog/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"shrink/AGENTS.md (generic-agent configuration)","ref":"shrink/AGENTS.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/shrink/AGENTS.md","weight":0.5},{"kind":"ai-artifact","description":"GEMINI.md (gemini configuration)","ref":"GEMINI.md","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/GEMINI.md","weight":0.5}],"data":{"artifacts":[{"tool":"claude-code","path":"CLAUDE.md","added_at":1775901362},{"tool":"claude-code","path":"browse/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"engine/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"extension/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"integrations/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"mcp/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"mem/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"packages/cli/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"packages/sdk/parity/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"packages/sdk/python/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"packages/sdk/typescript/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"packages/shared/contracts/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"proxy/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"shared/provider-catalog/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"shrink/CLAUDE.md","added_at":1786452946},{"tool":"claude-code","path":"skills/caveman-learn/CLAUDE.md","added_at":1786452946},{"tool":"generic-agent","path":"AGENTS.md","added_at":1775898903},{"tool":"generic-agent","path":"engine/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"extension/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"mcp/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"mem/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"packages/cli/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"packages/sdk/parity/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"packages/sdk/python/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"packages/sdk/typescript/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"packages/shared/contracts/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"proxy/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"shared/provider-catalog/AGENTS.md","added_at":1786452946},{"tool":"generic-agent","path":"shrink/AGENTS.md","added_at":1786452946},{"tool":"gemini","path":"GEMINI.md","added_at":1775898903}],"workflows":[],"tools":["claude-code","gemini","generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"work_units":347.0,"flagged_units":24.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":216982.0,"flagged_loc":134493.0,"flagged_loc_share":0.619834825008526,"max_loc_per_hour":18623.231571109456,"median_loc_per_hour":75.64418035651869,"pr_timed_units":24.0,"excluded_import_loc":260290.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"13,895 lines of first-party code in ~0.7h (18,623 lines/hour, 37 commit session)","ref":"ed615c72d9710c1e694ece3d7973fb47de4f1023","url":"https://github.com/JuliusBrussee/caveman/commit/ed615c72d9710c1e694ece3d7973fb47de4f1023","weight":0.6},{"kind":"velocity-burst","description":"3,258 lines of first-party code in ~0.6h (5,445 lines/hour, 6 commit session)","ref":"e4d06e1f3590dce582fdbfe9c635f7d4038a1a5f","url":"https://github.com/JuliusBrussee/caveman/commit/e4d06e1f3590dce582fdbfe9c635f7d4038a1a5f","weight":0.6},{"kind":"velocity-burst","description":"7,971 lines of first-party code in ~2.0h (4,079 lines/hour, 6 commit session)","ref":"795f4404b9e047bf20920c266266cff167595f46","url":"https://github.com/JuliusBrussee/caveman/commit/795f4404b9e047bf20920c266266cff167595f46","weight":0.6},{"kind":"velocity-burst","description":"5,192 lines of first-party code in ~1.6h (3,177 lines/hour, 4 commit session)","ref":"9edbf7c8e858247d9cc92d3da7aa41749f05b876","url":"https://github.com/JuliusBrussee/caveman/commit/9edbf7c8e858247d9cc92d3da7aa41749f05b876","weight":0.6},{"kind":"velocity-burst","description":"19,752 lines of first-party code in ~8.7h (2,272 lines/hour, 48 commit session)","ref":"94febdf8c34898cb4e301acad493222a36069869","url":"https://github.com/JuliusBrussee/caveman/commit/94febdf8c34898cb4e301acad493222a36069869","weight":0.6},{"kind":"velocity-burst","description":"1,680 lines of first-party code in ~0.8h (2,149 lines/hour, 1 commit session)","ref":"9da4a51f4925b5f24a6474f81572cd4099d71ec1","url":"https://github.com/JuliusBrussee/caveman/commit/9da4a51f4925b5f24a6474f81572cd4099d71ec1","weight":0.6},{"kind":"velocity-burst","description":"2,360 lines of first-party code in ~1.3h (1,776 lines/hour, 8 commit session)","ref":"c4a33ee79c15c53e73e9875cd544ef9d6481e2b5","url":"https://github.com/JuliusBrussee/caveman/commit/c4a33ee79c15c53e73e9875cd544ef9d6481e2b5","weight":0.5326645768025079},{"kind":"velocity-burst","description":"3,894 lines of first-party code in ~2.4h (1,621 lines/hour, 15 commit session)","ref":"4070b08c962e574d08fa7cbcf39e0a0376f5142d","url":"https://github.com/JuliusBrussee/caveman/commit/4070b08c962e574d08fa7cbcf39e0a0376f5142d","weight":0.4861872832369942},{"kind":"velocity-burst","description":"17,291 lines of first-party code in ~11.2h (1,539 lines/hour, 161 commit session)","ref":"39c0e4232f1ade031a9de4b161ad34e7cb5ccbc9","url":"https://github.com/JuliusBrussee/caveman/commit/39c0e4232f1ade031a9de4b161ad34e7cb5ccbc9","weight":0.46181170709993313},{"kind":"velocity-burst","description":"6,309 lines of first-party code in ~4.3h (1,468 lines/hour, 5 commit session)","ref":"921eab8a80df67eae4b6b36fdf17563a42538751","url":"https://github.com/JuliusBrussee/caveman/commit/921eab8a80df67eae4b6b36fdf17563a42538751","weight":0.4402765572499354},{"kind":"velocity-burst","description":"5,828 lines of first-party code in ~4.0h (1,443 lines/hour, 27 commit session)","ref":"d6440dc2022bdf933bb3c15a440fb03e45b85946","url":"https://github.com/JuliusBrussee/caveman/commit/d6440dc2022bdf933bb3c15a440fb03e45b85946","weight":0.4328913342503439},{"kind":"velocity-burst","description":"2,403 lines of first-party code in ~1.8h (1,345 lines/hour, 3 commit session)","ref":"216e6856465c6fdd7f8836cac52ae2148203e45d","url":"https://github.com/JuliusBrussee/caveman/commit/216e6856465c6fdd7f8836cac52ae2148203e45d","weight":0.40336338203294997},{"kind":"velocity-burst","description":"5,152 lines of first-party code in ~4.0h (1,279 lines/hour, 12 commit session)","ref":"b4335705d436f5110386a1c39c6d8aed5002aeeb","url":"https://github.com/JuliusBrussee/caveman/commit/b4335705d436f5110386a1c39c6d8aed5002aeeb","weight":0.38384105960264897},{"kind":"velocity-burst","description":"5,571 lines of first-party code in ~5.0h (1,122 lines/hour, 21 commit session)","ref":"b1764608b42980ad4811efc3901c289ec4d5f719","url":"https://github.com/JuliusBrussee/caveman/commit/b1764608b42980ad4811efc3901c289ec4d5f719","weight":0.33655982547407276},{"kind":"velocity-burst","description":"2,603 lines of first-party code in ~2.4h (1,101 lines/hour, 27 commit session)","ref":"9c8cbde461d0282666eb9f07a4ec80315e8e2eab","url":"https://github.com/JuliusBrussee/caveman/commit/9c8cbde461d0282666eb9f07a4ec80315e8e2eab","weight":0.3301514973576042}],"data":{"flagged_loc_by_commit":{"57a9b489a137cabd0d748b05f34fd81caf614739":474,"b24b915e0a70441447f2b938b999603252803c6c":7,"a660db02c9b004318052345c99665770847e5e4e":290,"31d804e5f28ffe7a98115ca86f00d947eb413333":3,"31fa95478d8c08a27a0685319539cbff5a9cca2c":268,"56875e883fe1a5a855f790e566f8a780efc93f09":1552,"ec7ce3614ba7fd9b7c0c2dbcf5a61b680617ce5c":1234,"83ec61c50982c3808ec647d5314c6e31e6938e61":93,"e031c1e440df7797cd8589cca925e667876cdfe1":40,"8b8068d8ca0d0f0f60d5bd02c3f48b1ec183bf9b":597,"7b2bed2d0b7237ebc8f3e980258e5a8bdd821da1":497,"e843518438b2cfb404edf00db2d8e64c1d975e34":257,"754795ada42dea54adf061d42a61e560caa4f9ce":23,"783dbeafb5cc49c47aed80dc9645ad6f71ab363c":636,"e8c8233267ed9dfc89f2fb158eea90e7b8672192":1305,"216e6856465c6fdd7f8836cac52ae2148203e45d":462,"a1a3d167f65c6c7af110025cf938fbcc0052e218":295,"008dfba3d543e92e068332edf5ebab5c55d88e98":571,"f8b8c09be6d57c19324adae56bafe984b31ae851":1848,"3f7accda9b338c37936b27ec8c43cc0db415b5e5":541,"73163a4d61187fd3c0ad49d428195d8a93034a93":587,"b8c12268e8a6e4feaba6ea1429212ed6cca3d866":65,"819d86cf8485b17036568ffd5b19d39576e7e25c":302,"4f9e80c738533dca9de1b61017d688aa93fb0244":383,"e098359d91d15cd918701b83d9e324d2d082e434":26,"c27ea41a6ac6a78e7b555e4c09bd18b332a81f37":118,"a7fc75c1144475d5448538f66aaba9c6050de397":414,"b4335705d436f5110386a1c39c6d8aed5002aeeb":2,"ae7944434d2b004b9b1cfb2571442c43a1eda973":125,"5ec62c0d5d451eb24af71d903504c9874abc1a19":95,"da7f3caf2b6cd24f6a89847893b43421b8bf67b8":122,"3d5fa5be858cc48a3aef4fe8004ef57f92396742":5,"4a5e6dfcf1bb5fd2492b22b8715884cccb6dcb97":332,"e831b58b052fb7485c353ddc90cf22030679ec98":58,"b34c6d2724e7e463e1b86a512948eb1d52cd1ad7":23,"cb485a12857de3f57f654c1cd71c5689dcacb289":191,"620ece12ee5404c46579b34cbf0d68c86a6c6294":267,"fd99c98f7c0c010c47f4fe577453fca7d1b68110":771,"3813313547ca5be0323a8267c7758ad5477526b3":32,"5c2c517d92998a95da7c22aa355e28dfa19956bd":97,"522e549ee3f1e4a4fafa89553788adca73e25191":97,"9cd2703f021e0689c857fc7d86356231ae67223e":31,"20df023da37579e033cc8f93c45102c77c518797":63,"6aac0628d6c8ab20ce95517e7291bab836728f1a":174,"4bc4cec8f5906437f7798dcd5e99361ca3599915":268,"30bf2e5182c12a6c23e82eb89f8b52d8e5c25dc2":137,"35ad321ccd162e3c0f58d8a07e7cf4f266482455":91,"86fb3a6506d8c2205ef3cb5d357a1aa9fba1565e":97,"55992b71c51f7a6af11508aa5036590825c2c250":59,"bedde358a5eb5b290acbebf2cc41871c75d54e44":1750,"fb58e4acbb2e82781a2c85a63703993403eac4e3":22,"15d08edd83e0c7ec1a58c4fd27da3ef748626c84":227,"facc597029e795cb671a145a67e3c2f1ee3970a2":396,"8e3f72a4a98834b864cf71c7593156a8a67cdeb1":30,"ca51a04ed26e5514f82350756f6ff36b320faef7":214,"9377d1f062b716964ac6c5ee4737a14bebf8d555":124,"bc710402457c25e4ddc8a9099763d0298e48d31a":47,"6925711f865192e7fa47e190a0840afcfe71af38":156,"df6251dbe2be65db97e697ec166d9ac86a386751":121,"768687e8795737b9f1e8a8afada5bf9e6f579047":252,"9978a02b7e0f935ccde92c63dad5365c939394a4":18,"c52a567ac75c43b26ab44b8c10e0bfc5e02d3df8":155,"be2f788161a6c1bedfebd34788b3344916ded157":195,"4070b08c962e574d08fa7cbcf39e0a0376f5142d":187,"eec3bdd6bd4bc28014cdc2b2d47dce968bddcb49":87,"facb5bd4ab2530f2ca09eb846f0bb8bf1b9204e6":107,"5e17d852674bf8dfd55cfabcde66f6321fad7afb":83,"12ac8fb91e71b2c856e1ab3d8114371e6dc36723":271,"93057ec3d9355e1618bbcedd533524c5bb86756a":183,"3e9b7c8c47789295d637904637699c13815b47c2":177,"e86c06a191cce23efdaac711b457d225a052e3b5":343,"9f6398ff004db3cdc8f2242f84589a4651a8aa74":2354,"77848520dcb7a4714834ff0c2197d9c473c98ed9":362,"c31ae28f568eb098b70b0693fb08edb938a340bd":402,"6620a0577ece6b22866b84eeb26de1a7b928eb87":14,"945a21ed381790f51b5731686a80d515f529318a":1227,"d2d7f388367fa684a4ec6b9f4f1c45cea1a3d33b":265,"4cb82581dc7b248db44e4a84d2db224a5d321f20":1241,"4da0462a9b66dd45733101ccd16a5b1fe951fa96":96,"21ba0ccc70878f5893ccbf112e6adb32ab2053d4":503,"880114a42067d045b91dffe6a553f6ab2cc399ad":1,"966a49117b4dd7b4aaa130ef8b7024e6b5d326be":631,"f4803fb7a0d2312332a655b0ffc36478272314ac":271,"1af648f9aeed12dad653146e40f95d1e28588c49":147,"0f554289b667170c61461bc0ca5e1c2944ed3722":414,"441c4cb876c2839223c8f116e7e547a95a86e1fb":1626,"a4fa33d99860a12b67f20ec7668ff168e204c6c7":876,"a6486f46ac09d6cb1cd94b848149a2ea56ec7dd9":398,"d5e977215f92e391aa51cf1e42ded602080876f2":425,"c95f25df02c3bef91d2827c15ddf73144060c7dd":848,"85b69bdbfae904eb316de71f19bc388f0cb883c4":75,"5506ba89e195c377adc2c27d9174f4227d8604ca":10,"aeea893f0db287f5445ca0ea656bc23024992291":54,"ca9d4205ecb77a6fb77e41dac2bf9d421866fe3e":15,"ad4a5decfcf8e1bdf24f70e468768eef95b4a537":179,"bf2deb568be95fd4d4bc559fba0f902b49623859":36,"223d0f7791c3c9935a6234ddcb85ee429e75f40c":80,"d60a5296cfce6db9b768724a532d1a8b78c545de":37,"ee7ec96783c49eebe4dfc96f5221f007823b793f":37,"cf245890d174992a951ab00181581e561a1c3ea6":5,"ed615c72d9710c1e694ece3d7973fb47de4f1023":15,"e7cc556633ff59f81d5601302be8a24f27ddbbb6":921,"51eb2046b82a48cdb2b69d7cb40e61017d15bfcb":1857,"ee6e41e45d774553d9c1d9a228dc7b5515b3926b":135,"d1e960b42533641031957937edfae01590062c92":180,"3e9512d3fb65ad337f1dc0715b3e647b3a7d144b":109,"e4d06e1f3590dce582fdbfe9c635f7d4038a1a5f":56,"ac64f02fc8eb93b295fa0ec8c6071271caf751b2":2124,"b83581281fdca2b46d063b6866a570b238f20c55":1285,"1cd1659b6614e66d9c3e5190a4172af55d156a10":53,"835e967f59580b982a420cec45318e58a86cb331":2787,"921eab8a80df67eae4b6b36fdf17563a42538751":60,"3591b194442e8bca5e270c75a7a6d8675ab4e41f":1561,"81cc88e98534280561864263c6d41ff1879b9ce0":2699,"273b50e5b9b64152b9983c85387f3dea216fcf9f":225,"c31f92ca9aa6e1951533a0b60fdf53147e6ea451":3308,"8acd7c871c59b4f036a3b3a3728ae766d6539b5b":97,"795f4404b9e047bf20920c266266cff167595f46":81,"9da4a51f4925b5f24a6474f81572cd4099d71ec1":1680,"83341bb21f60f2a609bdcb7e6adc9729727d710b":943,"3b9d876833069fc4ae4202bceefb3063765be89a":609,"888b1c5ffd69daef717149ed1a97a5690b09cb2c":911,"9edbf7c8e858247d9cc92d3da7aa41749f05b876":2729,"75109bdb6ee090f48aa9d1dcc0d1055ecc98e9f0":9,"12fa3c94c651154b546518ebde8f4bc29a82eed2":1464,"4093f772d6bafa0c3ef3372c4ae4f1e545403cdc":259,"36ccf7d32ce272376773f2eef3ad1a8c481283b1":177,"fb621a9dd895ab96948f89e460c805d5fb766bc1":1576,"489940dba5645647b6679dd25d4ed4f27e142b71":106,"8a6b25b875b6c3245b1e3285eba1f40f77585a85":416,"43cba52d33abbbd05b26d432c6a2a84e7f8f5e71":657,"69ec8f0ef7d0b1a5f411df87263e6929f63b2b61":463,"e2dfbe8f190352986278999ebe6258354cae240c":164,"dc4f2137b5356ee3c07d5b3d2436ea4614f56333":99,"8b016a51c6f11e601db3f59e51d40f3dc7d08dbb":2,"043dc8479e36e75d219df40c7f660b4aec8c8d11":509,"c3f15c9023dd6468b75651b223c3c768fd36fd1c":633,"18f9e2514c3243350e756225b1ab9819bae01cb0":918,"e150aa35aafdc0b627687a91f7035ceab9363cd2":1162,"63af0b08f2a3f0b3b7a9d70ca3524b9c7124d896":164,"e42431038a6a2d4333c0341bd8fa906b38b927f3":76,"b68695bbf5ebb868a25d602765816e00bfd2cf8b":95,"3b5ffe32d0755d4de0c22ac225a705e7cce7efb7":63,"020c69a9dec88b5374b2fc8f7e9209779537fdf1":34,"41354fbb2a986147f3f9d20d9cb9d391a30ca516":8,"97a03c276db7cecef5f8ddb449bdf16ee405b24f":62,"a813ce652a6d43827d8fd9b5f7db8d6739fae065":35,"c0fc4261d279a06454832e27a9d6a79b2415e145":1,"0e2fee3ffeec75a52aab357ad54e39c339b2c3e6":1,"4695068e2f886b50144e2ff7af106b2e99d46213":1,"b4803691e888aad6645e893f8a5518ac858e9161":3,"08383acabffc234ab7f4f9ef68b36efab6c0a959":1,"e13613fa42e57b3e0d723dc053c4f06f99008dd2":44,"200feb3b02fa0f574179ec1bf9415d7a34bbec4c":35,"b8d9b2eb1449d3871739c8d083adaa56ac5f840c":84,"e169511a5e4aea10d94c6b67e1fa326a51e26650":67,"acef119ed4557c9e467c9c453b321dc6203c53c6":21,"bf007d4f2998c8dee65852b1378194c5ff7d699a":12,"66e4d20af6b7071ed2ae969a496c004422c8fe74":13,"6b18d6e8fa72c05e7e6b540acd1f8932181b8bfe":21,"876b1a442a8aa83b17afa6d3ca5964fd571c401e":32,"53e0994caf611bb86d2ebcbe47aad5e9b4202cc6":106,"fabdf49f64f4acd25fd79533db61426b2b10d2a1":90,"1bc6b697f7ceae3b187d825d80df8e22402ea559":13,"9fb6375e704c23e2dba0f2e0656da2dfcd141b58":2,"0ba59df55afe9e213691f904cec927b6319cbde5":101,"9b8ce3ba4f260bef37382b2c547dee46bb059746":201,"6368358d4b48f74f0fa22d154385aea806d960d7":370,"af01f0a17338fb563d02bd1266f9fc2a2ad9189c":72,"e5527b8b5d93d2fb886bc30c119ec77619a4e7b2":2,"9ca1d139be3d8c5b129109835e1b1545a55a1778":935,"cb64a8ce329e35c21f52c01be8b49af3867819c5":113,"8dc792561c315889df3a97081794a7e360366ee5":24,"d24e49090920f3934625bf9fa26f6db45056b66d":59,"2923aa181393f25f9265d567dc0ba6bb1142b623":178,"950d02b51f178a56d4126f15c26feb558af53803":82,"af145dadf7b6f60fade5dcccb5470f1c7bfa821f":1105,"8c3f55e64acfa602caee1e841f43bb1779eba481":368,"121e9cea4b801d74a2f599815b9dfa8ffd68fcc1":43,"e73468447605c67bc5c23a2dba2e0343425f27d3":24,"7c4b8aec8d10c957df3a9b0897f9f6bab54f598a":101,"a255d915248957c660f0219bc95c41040df3fe35":89,"297a035c649030b2c767a2ee617349cd32fe98fd":52,"7bcee954fe7224d4a54a1f9cbdfa04714044fd99":134,"247910cfba554e7f3e9c2309c52cabc27b4ccee0":43,"34bd9b56d8eba1ddb7dd607339ab6d652bd4ef6b":29,"b54d7f8b14749b4d32df7ee9a8e4ce31bc74e09c":37,"0073e11a605da287baf2f07153d2ddb54ac13e22":113,"9ad104e85912f28e5cdc7e2fc4be133834e61ea2":20,"3644d40d44d52ad63ea8c2386a5f69dfd2cdd967":8,"0aa8152a767f5272af994a9015cdf649c3cc7331":25,"9e0341a14753319ee4bb391569b022f0fed7bafb":45,"1e18a784a930b0c139340942ca920775bc58479f":81,"7c09951d8aeba7e29676baa3fd4944c6b7c8a8d0":60,"ec1a4870d96c553d98588accea43fe7be9bc4b9e":35,"237cbd8ce1ec67078bb82e0b8701d5c531db5606":50,"a43faa97e3575fab7011d6cbc6222060b33f2875":89,"b2c5226e0dfa6adf059491bc62e57c78a3969aa0":35,"cccf91bb0bf545b090ac5e7930b3dd722b949b0e":6,"8e2a5853bd2a20f791c5b8ece7c9b9b0427d5889":39,"67f7a17e459eb7625fa34daf88dc0a4ad8d4529b":176,"c13d7df4a5535fbdd1b8e6dbd2b2347ad9ba4d2a":2,"1fd48ffae4917d191ff2540199769fc1b9042745":247,"8dc555eec6329f6edfc8b1689234c8eef49dfe3f":16,"d0d1262f9002b7bfed27e35150fd4beb6978b074":23,"87a34e7de77722b7bf72dd39917adf1a56557ff8":26,"1d51731c4b34edf2ce80ad0423a601191896d6df":1341,"c1d11902a1982c3318f57f516a0a9889c63458ee":202,"b25932881b9e03593361c5760d947f36e7e31e0e":27,"74e7b784cb6b143d79806beb7a44431dbed4b61d":59,"bce662a9e42b5a04d095703a6137a8868edbec0e":112,"22c8be48ccf030ec10630783cba9b326db6cda24":14,"69af00889c396f49bd799c826a2dd575af0a32a4":119,"1ea1350dbfbffb096f4c126e4dd8ee7e86c32353":93,"d6700ae9bc66f4f27174867f6c04d0e10aede5d2":19,"94e97e860c1f34a3d8f0dcf8b3240c42869b36d8":121,"5d02291e3266d93c1ed84b1ba3c60784fc320969":38,"38cd56ae5cdd5155427d5d7d2e2a8a66d9c14682":154,"72714268e08c954c0d1172613d9331823b8b8301":305,"243dcb70d32dfcff65e00e37e33b51553de2c85d":58,"c62350eaaec9a32fa960c89bc9bdbb7438aad2aa":47,"89e0de5c2939a8d035f3aca8a371134935295c9c":7,"2e436c4187bb2aae69442c44e067ce3f9fa6266c":173,"de4be21c1d658da45829d78b614266fd79dea73c":21,"f10088e0f5e0added6d33d12dfd2d50f3ba45918":2,"1b410f5806a44c72b55879275736ec93288f3d5f":74,"1767823174d8bb9b0732b9e4dd35bc346ca86ff5":33,"7aa57d42a2b8f7a7823ace8e52dd8d69483fb004":35,"b3e9578be33c6c90c98612eb4174c5454543396a":106,"b62e31b9f18556bc59959ecab81c484f41497c87":2,"1de2831739f120f69b9c5f685ea9d38da6859595":219,"2178ed6495c3c0ecd7d037e60acf3b1d0c554b97":16,"b0de440973b103b7f3fad43bc26a76a239b0d4e4":33,"f2eb6fb40e43555c42b83e36c19e3c709422db5e":21,"ed558634aacf62889043c0388e337dbe002d2683":25,"3c34af24b6d7b1159bb97b8f07d86e1d840b31a6":105,"762522123fec360759ef7a6a25afef307c0c166f":42,"4ec0d9ba82defaf0125c691cfeee47ce3a8be341":17,"9b2ea0bfd114139bbde01a3112c138cf2ebca369":11,"95ec0209f309aef5b68e9e57768e288d10647ec9":29,"6802db5c284d8c854d254e526db50ffbd5cac54e":213,"041b65f1fabff92c8c88e0c269f3cadc820e22e3":315,"d42bc7a11478ee86fc05f63c7a8ed5e940834eb8":69,"63278f3318e7648c583095f716de258804a7951f":210,"3908731035254c0d29ba61d3f6754f83f845c8cb":135,"696a826b243c8c03cacccff67f3dfac580d18183":20,"d713f8ad148c20af2d166360dd55219dcedc072d":268,"8b41e634e3f0189efca72eb5c8a815024f65e647":4,"b1ff73eb4b2d4426647157591476927da272ec4a":227,"38b9e7c81c4aeb88b1838b9f5ed99f0d3b6807d1":1,"087b4d07c316ae5caba0365f819d7e9af50260f7":10,"ca2ba98e3990273ac1a3a486fb4ef83d9a9811e5":99,"8db057c16146bd2329fd5005c42116c69585eb9a":126,"f0d1d7f8eb81ca94151dac0b8db0bf31842c9373":44,"bcf9d59530fc04d07c12430714c8d9120bac3b74":35,"cc9ba27ef2bc0033831194b8310ffa0a8d094284":37,"98b0ebe9e0ce900b212979d0c3309475536f7020":51,"750560429501807b8c93b9fbb00ab0784cad1626":97,"67038d43745d8ae2415a23f16d9f0bd7fb7e882a":66,"cf57dac99ac4441053bbcdf742ff7e1fa65b78a8":14,"32304dc9da5eb7d78fb1cccd2783fe733675423c":6,"fed37c0b629b399fda593da68d0ec518e1c1cf18":39,"b6e8d4762598c18614697eaadecda2fff601a375":354,"d0b5e8052d749480d7163ec88f838bd16f101d58":16,"c9edc29f92b67feaa65e43cfd05a5e2b32ef10e5":5,"3b02617bd1d7558cd2db29344c4bac4212da8fb9":12,"bc9ad50cbadc7d21eb5dc04299c5fa0e31db4aaa":9,"3ee035452bfc8fbce25814168636dea52aa3e823":4,"f67e3ba9aefe68a03cab7a8670c0da3db512d556":11,"7e389af7d306fe6852e4e97ae4331e76f78360af":24,"3c0223c552f4ff9a477e00dc651a894f354abec2":140,"262d8156fdcc64891950031a1a6c200289f28f75":322,"1a70257f21332f0e364f22f225ba59a8e452bc6f":295,"847797ccf894d8ab7fe76cd56ff42e0d4eec9341":11,"1ac99aef36548e6d34b581fb68f470a03e4b8111":4,"1d9c120ed3a4a9e40a418fcef1a6f7efa2e4d0c3":282,"31e5676c18cba0a6c8fd5185bea7a37be39274e8":27,"4d4bb44c49b996e5239d36d19ffb94b3c8c66278":31,"345c8b06eac0d41da646d95b7c80a46d54325fc4":143,"9357b03cc1a4d78db50cd6a33b64e40e2d849fd6":13,"cd57fbe2b0db60ee9bfa7ade42b1c4bc6825d7b9":171,"d1b397c1e71689c4311ef5e81e207876d15dde0b":13,"624cd9b680d0d95746db00ee3947d79183fbe616":6,"b00f191e42a19e0343a9bc55bea0de89f979bdf5":19,"b37698cc2e13471a3041510222673e68bd89207e":36,"b987946cf98c508a551b18c9696b3f6a62e7be14":21,"ea415c68a4f6fc5e3f0b925095442fd291e1d4d3":4,"5c15163e7f80456d7c119cb4806aa742a7a231c3":155,"02fafaad18d5126ae6e8e7ec52cc4fe56afcefcc":3,"00a4d801d9f46a6f933a07a70ca60df1d03fabfb":186,"316550a7926c07963a8532e862971c62797eb186":74,"723431037e7f8b71121f65d16552d25059a75c99":25,"3fa93a3659b1d626f0b5b394b8ee40b570ea3872":49,"206210f9d453ea7bf6234b74cadd8be1946b435d":46,"fd8d2567cd307ca9edefaf963faf791dadfbbe21":58,"3ec6c5f1e6399f9c7fa5b0d70c7e174ebc3ff5e0":46,"28eef773ead1441f418528ba42e4b28f19c3feec":16,"0e6a514765a4c1a43ce05561335c4dd1a1dda41d":46,"47738af6e46389794eace6a363f32cbcbd9a4a3a":48,"b8241cca98b5a059de7b836ecdbacc072f395e57":39,"f3d48e28bb350546417891535b3d42b17cc95e53":31,"b3236048f6522d8ec0a1f4e09940fbd64ef9537d":229,"8d9ec8d5b41a17231c89ec7018cc8e1dab113199":10,"eace11dcff02d9c8b7ea1b31773568985bbedc70":944,"00f5b37d5849f5e268dff9eb216811f3f1743abc":12,"1722e47d805343e54538a63ff74d24c62a38876f":8,"24218666ebc051b1240823e1d72746afead8236a":4,"b1adbe0f947265c12ffe6aff3685f4bc2d388c59":168,"5eb60b26282d49901698736428afd6f6355feb31":218,"7c2c0086d555ac4c5bc7ae5741f0e90e29081f60":86,"99be14a99a32ed56b92fa6df8f9ff55aa09a85f2":15,"85817f08e101a3bb8833d60afd1b2e361fcf2f2b":365,"7df1df5deb93ed155856a8113e4c28a7f345d3d1":2,"46117fb08067b1ca47739ed2cedeba798424953a":260,"06e6520ef1c489c02d03fc71fb1888ed2e7c6c01":135,"ae30abd9c559f74b81e6e531208c3892c8d5a514":150,"2eacdbe41c48660b662988de04e2516c586d4454":115,"f0c0680f13499b44c01d2a82e6199a140e8281c1":42,"5fc5c66cb4c01d7e8becd3ac420598be827dfe26":463,"06208cc149d2a24a8f96f475525f3e946ba12b1d":35,"c3307fe3dec4c92001df7d459c178ef4dbfcfc74":20,"d4098114a3c2fda03947d51a3579ca9f001d1ed6":4,"ed94e093d9846916b8b2ca35bbf059399e52776e":104,"cb76313fcc2b2ceb542e444aab24223091d18996":77,"132336c4707a0082f76bb58355c82ebf9a9a59f1":4,"39c0e4232f1ade031a9de4b161ad34e7cb5ccbc9":2,"78109a11eda2a7bd0b53545b7509b0f4a76a1049":307,"dbd6bd6572a3492e1ff03d22aae682a5c13b1f12":2,"4b0d75c42c5692d5b455313dbebbc503dbc21c67":18,"38f454adc76f031ee9533075747f4b9d61efcc7e":104,"a1a8b0b05b6a3158257acf0128d46a5ab5c7c67d":36,"4d9bd648790159950d75b3a6e87e2027d7d8b907":26,"04f46f99116736d6b4a7ad9bd477a4f3ba3ebc00":49,"62b85aff1ff19adfca6fd42593581c79dcfb539e":76,"34083b1218bd75176ff2e41023da21bce893c367":83,"d327f25254a59ff5655da21df1ac64240393b246":164,"fae3ceb423e424b19601fdd4b2c76179f451b4bd":28,"9bf833c9ec8996df84f8e88e1b849885b02ae0e9":528,"100cf90abb1b75675d1d326b4772efe7dd2374d3":205,"7ed7cf13c73c876f0195666d20bd80ba71aee073":52,"2517e8751a578bc88521863e06e1582bd91673af":29,"03f5698d14127cf2ec4eaa5664733ffc33775e01":171,"f42e0d95f04adc4475aadd29494346bec7238963":116,"0da1b9931c05cbe62e035cc7f0d96335dc8e99f4":47,"4c615b9579abba11fd8fd62ca39696fb9a16a3f8":175,"d3af843bd6f54cec91dc454539707fdfe8c041c8":87,"036ef25e23fad1e7f909c06836c377f81b59bd2d":102,"6404016a8f4b48d957125d8eb273b0d9299ed841":13,"23b07b920c9eaa208caac1d9878d4d8a3fb36891":17,"8eac689a625153dc7b23a50535da727c1eb5a568":66,"6b33719290b061c56838e87dfd87033a32ccf569":93,"2845bbc7877976eb0cc4f17ee34070dde2415f88":8,"9c8cbde461d0282666eb9f07a4ec80315e8e2eab":1,"a68284459b78e9401426988b3fb60cc99654d2f5":1629,"9da6afc8d59ea658f68b8ccd1d563e57b45953bc":27,"527266ae224fe2eed18f8d8a88128078f0104194":58,"647ade52d82439cc9297465058785b199a3de92f":462,"d86764f564c4406c317324e858c16d6c57398b7e":99,"78e80d0a2e65ae33634a750d82d07793f9101d7e":171,"ae147d76d3d0ab7e552732878039ab6c2a72d465":313,"9bcf5b2a0b6526671cc995ad8b1f22626cab12e2":6,"de8f715a229f52b2c4b7cfb718e454a997db5e76":4,"8d4677a5f1fd95687d5f373fa2a9e88b6429f7fb":591,"7efb57681ceb8b65624b7d3730a19331f913320f":1,"c66248a0184902cfcabb09dca3c8a3ca670105aa":432,"62e109dfdeb2ec74d651690237912f9221f1b50e":115,"e6c32ca717880e1ab2c8e508912ed8fc823d4e5e":238,"a733afa1b3f8cc563e85df2fb848a07b1d0a9343":286,"86c5b5329fcfd388744e56c2f819a8424093d4cb":146,"cf8054e7cc6dbb42b7d22d67045c5c5ced7c3a0a":80,"da291dfb453cfdffaa788778dfad3a0aad581b0b":809,"c60b9c1c595a057f84e192b918cc2164d6d667c8":1022,"1fa75b27e495e26727fba413001c602e02bec0f7":5339,"a4868092c367cfa669215e207450f4a43806bf43":4,"1adab84c2d997b6ce5b401c6cc7430df70c456f2":20,"07cf60cf165d66f9b0a554d33221b67ae7adf11f":305,"cfb2795940e76da934b6bd3ce27cfcbd014d6975":123,"be661326213810388f9d2d1e6201765c8ba9a418":740,"e254d58cdb4ffffa29df99d78cbec0b1e43c11cb":137,"aad1225942ba2529cc01e0fcb34be1d791131e09":57,"13fdf9369f2b87b3bf1c082c3f0c3be5d1efcb7c":98,"9a2669160fdac57eacbce60e792c35183adf0012":230,"eae4993aa425aa898e9df7dc7732dee3c0e2eea6":363,"7540dc3dcabfd28a55a7f8339849de88da6fb0f7":175,"fa62bfa5b7b217ef06de4321c80428d6cdf237e7":144,"5596e1dc7792025dafba7123bd585316fe7154a1":214,"a7fc7aea73533480c61e7b366288af06c23e74d4":6,"20a18f07c7741d7b0e36b9acacfbdc1be0c34097":98,"645612396754f9f2a1a1d465b6d92fae5705fb02":66,"e216f7ac415a0a2efb32961076281f81cb965f4f":93,"d87c2f08bd1e61fc6e486cf4152864b019b2ff58":103,"b2e9a2764f75ce6e428f9fafb8d795f8619d0b4a":398,"9170648308fce35749e329dae44d3994e4c033ec":44,"bbffd993648f420a66b6a2b92390e5b3f09b0241":129,"dd048e4841ade5c89e5352184a74e50b52fd29ea":365,"d637ddef1343e8524f91917860cbe8138a3729a4":231,"f8fcfc35cde2a5c633161fca77cfff48a6072bce":587,"09a4d7a89fc1aa82734a9b74f33cf4ab4b336b1c":34,"e619312fbbe5c84c7746316e6a0cb17bd37577c8":228,"c31dd1520cec6aed0eb508c2c541b2b7803fc076":106,"35fd7337ccdf32543acfaf13f1a598939be630d5":5032,"a04854587fee25676ed939634a50df06dfb6efa1":31,"5cd4d88d0878f923059701f628da719a39ffcb3b":79,"4e4a28110c8e7fdd9495cb9a45ab57a2b8c595df":345,"a315fd9a8657cf985b539c84a043a7d307950ca6":30,"357175127945bf505075e179ffd903e8a36420e4":160,"6348d9d7232401be26ece86fc915e7522f9ee8c3":133,"6cc9da5f2eb011ae201eb3914e480470f889ab6c":252,"a7a0c4fff538045fc3fa8c5c14eb1c0f76dc3d83":147,"2d63b338abf6d91858a8186fb0b66d5cb52b48b8":171,"35aaed3a0a7fd92e2a52b489c3554ebf4a4cd233":669,"810580aac3f7ac89df3a0df613738d50b402b6fc":141,"2fd96f8db17a2fb7e0ecf2549405ecc8b7de035b":9,"5bc85e99493e4c404bba18f583117cd4be6885ae":23,"836cb1cd0568aac1aa6ea22d4bcfca0b5d39a5a5":6,"20ab45caf3b33293e4f993aa794ad9176e9d8444":251,"81c67a5241acf4a7a166118e5bf047c42ddc8fda":3,"94febdf8c34898cb4e301acad493222a36069869":2,"3dc917e41fb0e6129603ce15823276313b9b9a32":78,"16a0f07ee36e7238d765a9f6b700b98407d6b67e":131,"2c4a07d6c8fc8a00100d067cdb619abff8f3a5ef":59,"fb94e5cb3a1235c69f32e262d05acfc607459c26":1265,"f4202771ada4442f98c1dce2708fa690a21973cf":253,"3170a62acae2c1ac188507aedf21eb3a6e56f7cc":567,"c4a33ee79c15c53e73e9875cd544ef9d6481e2b5":3,"ce68a38ef55c4a371d03631e5918b71ed79abef2":4,"18173359b7b91b07e7cfac3b6140691c2e4d5987":165,"cd197fb47985e090f45d4be770cc1adf53817c6c":230,"f72e86ea1ba89368c04b6721d99a47cca44f9da5":107,"dcaee8c1505c82c3eff521931df53a1ab75356f1":517,"c1087af99b54fa7832a7d151e48059ba3bc855c3":99,"c3141a882e6ac79557e64c65c8d66e1bc3acf7d8":44,"c86f0354a24823f3f92e3af8173e08806240eca0":1152,"f38c8395bf46b71e276a8a545c6960abfb3d9238":158,"8a0d9254ecdd6a336e8295bc5399cffbc37c71eb":12,"87131fa399b0d96d99cc2379f92f99b34cd9c9ee":367,"d07fc5aef3b8c7a679f7c0fac587f795672fe0e1":975,"74e3b2ef3a99cdedaafb01aa862414fb275d55a0":176,"4b5f38c634fe4dcb7f7b79a51205c3ac45fa0dac":27,"f20a8a587c10189fd0e32dad45669d50944bc196":258,"43872dc7e43a6757adcfa6faf4daddcaaf99af6f":2,"d0ab9d7fe8b740e9bd10f1192373fe0b5fd92312":260,"3702bb936c82236055f382bbaada22cdeb3508d3":62,"c86eae232071cfb6f1380d8a6c352fe7b47d3d53":93,"d7e7acc060433dfee7e04cf68e3b5599d350f550":58,"563d6090243e64edd4a116257cd70cfc265660cb":29,"15c4cd59620afbd6045916dc64fcf734b3e73486":28,"53c724e3d73e93eafcfa5378726b74369901b9c0":36,"e85bd08cd86588129a8b436475e453815f657daf":62,"aab457891eb2bfb43cf32f0130d163548290ae8a":841,"96867775a76fea10bee220664b2314a948564f86":5,"36b7432ef68761a59a42e475f1d60ce75ce59772":31,"d6440dc2022bdf933bb3c15a440fb03e45b85946":34,"b979859c23f64a8e065ac35406abcb7d4805ffb6":31,"f1a532518292f20ecc75909858556157e0a17ea1":5,"e31bcd08873f1787d4d839f7a6363d6f18f9ce14":47,"72b885e7c9dca821526b7ef10b287b47d2d655cf":44,"0e89987cd5b95056415da6f330f7695f2a356f4b":112,"9acf2f5e2fd2c0bc966d1d437a243d424ef39539":50,"022b85b0bd3d04d497353d8de4ce3e29c02c57e8":51,"63dd6dae0fe0e9978163280513c7c53f05f5ce84":7,"5d8f9e6c9aab7357551008009d962397fe65093e":71,"90e9864954201a6cfb53268f90d3a4f290c2a4e8":26,"81e7c7f98c5d952cf2ed3a49d212858270e31d07":82,"8373ac69fd29d1ec11cd7a0b615ad77abb9928d1":19,"4d694a4cf816d938a9abd0b7901720fdc20ad23c":12,"58cafb998ba6d960f3b1f74fb49ee5732b4ac7bd":48,"45410de32b6f92f73387cba48fcf4f2801704127":52,"18285c6fb2386b0f9429108f6f7e386ffb5328fe":9,"1c7c32bbe67dc3422a76a9f56b413c6e1bcc87ae":13,"b403b6f6f17b5f687aefbf2132bc4a5d25f9495f":78,"b98fccc3536e6ae4edcaad7af5dede3e8b00c733":24,"1be7fd80c4cfc571e2fb6ca84967dce83cc96477":48,"bfc2669f2338b401aa8ac3c1eb55d5e1be26877b":26,"5ea0ba125b451e7c2eb36b7840356a13f2034c5d":44,"65ec6220f89ea7203a5f2aa54478a32b3a55d5d7":115,"1046c9cb64fbe5651c345a2a332d13845493d9af":54,"2dd4d2917d32a56426f766d4c041ff3da680390d":132,"505ac30b6f295f97cba7bde0844312e66125bde7":132,"9804af950f159b005c9898e063ecf1ca3774f5fc":19,"7f0e0f750fb83db24d626df03edac254073902ee":16,"b5c0b2ee74dffcc1f4d39f7502efa0eb73a8755a":73,"7ac7fb3ac66d8aa3f023ae000f5cf1c8167a3092":29,"3f9779a21db18ff7379f80840975fd8bef2d8820":10,"ba196fb831eda100bd896008c45a2936432ff6ff":200,"7a03101b59621fcd403f9ab2290346c982b8ca2d":4,"47e72f4014123b5e49be0da1712632c9facde60a":4,"4293073aedd29cdd818eb2991a5400d551b5b720":211,"7cf86c5d9d4d7d74d6ff6835381921db4b8bdcd1":54,"52bc3961a8cc85e7166dd83a5b64e875987d6f22":25,"e1199c1d6ef5eeb857fa9349399126db786dad01":57,"b8645373761b3e9be4ceccb8814bf90b953cbb0a":31,"7baf5a5f8bbabe31edf9f60188ae30295a1dea8a":3,"5c0071694185d82825261424af458c3bf4de14ea":5,"816fce0048e0d2d853004a275cf47bafe9f487f2":21,"554d905833c62b7fa9d0bf30131fbbb49b3379a2":28,"9c29b5a9b6e482496ea8d59b52821b50558818ee":31,"01222eba332a38507ac3e38556ac88db1f0b45ba":28,"467902b5d90b0e4cf1e695d8bd09081096e5ba02":32,"4aaca62bcfb1b96c2f18f0fc7cd096db4274d2fe":48,"2d1177da6691897bf545ac9f4cad3efa9a87e3ca":45,"10a653d8653d9d9204d2cac387d8d8f2707fb128":40,"534e1149e7fd5ed6686d92a3dfb9941401dfc896":44,"0c33021eeb8ad7a4b25fc7571463bed4b4ac42e1":43,"e412ffd2dc6e40a9a261c8a36d1f6fd820cad598":31,"07dc4118e9fca96507911ef2f6cd09ce66ec998f":45,"be80f1b34d238b4617e56fa22c6809f486e2a826":123,"9af85cdd35573648fffa6eec10347243586c216b":52,"0beedf9916f3ea22e42d84376ca54e8ff12ac44d":157,"7047ca955f9f2d2d9676fac04ae530600a2e8654":43,"08fa7070895f9ae0fe3b7029a4dbfb9019d16493":121,"ce60684e21e6d98f19265301f6843c34ff6e6e16":5,"9e61547329ef49ac625c4742ce9aa4f54df0f917":25,"b1578d71a2e2d5e8001ecfd23c20c7caf35dce74":2,"2453e356014d301af177c9557b4e2e52a7a448ba":85,"67d1c2f0aa9e43be3d478aa8f22a23a90094cdbb":33,"b86a14b09bd7cca590159db5134cebaf8d2826db":410,"4c9dcb3e0f587b7749331efc2bc4558b11e74ae2":18,"6f2f265587bd2b5385711ee718e265bd3d7452ec":10,"710db10e1d95936c7a433e5e5ca640928ab5eb91":45,"3cb6b1287df71ee2a4ec0deed0a6b86cb739be6c":18,"29795c369673c2028eedf73a303cf29fb276000b":4,"bb62f16901e3a9f351922db9eed15cd969727b6a":13,"3d600ab2c7e883e429847bad2172c0bfd8c1aa56":66,"6b75e8df18b2cd931b6c350bcb945e08bb6c839c":51,"cc3065cdec3c89774c4b4d7769fc26afa79126a1":123,"05e5bc31e3de954964ec275a5786b1ac5cdf4df5":44,"f0247e87adec379cc204caee6e93917578a3b175":35,"6c1c6ff4970b7bfb9ddfcb85a1a9e644b62f9fad":120,"b6bfd6d26e47f280709318b95c78f9cab0006b5c":46,"22768ed722b81bd5bf0d48552800d4f735a05414":6,"782c6505f6fbb0fc5d955d9885f3c7f544a76473":28,"1138f23fb46f9aa0d7151c626ab298e304942e2c":4,"443a2822f12743311ce4a14f8ba188850b7d575f":59,"e439e3885a004bd5454795bee782d09879d6fef4":50,"89812d88a233cd10cc66276069b9036098a3f534":8,"a9f466983b370ec3854eb38faaa80eaaf775b81b":52,"9aedd48d8d5937db827c2790f5da1a2a033ef5d5":43,"6ebf9403baa1d8f5c15b865a243c15ac39b49b3d":9,"c4a2c642fe2368cecc561ec5ed73ee5e75fe37e1":117,"1834eb44d773aaa16a16fe1928ce0aa616fcf033":31,"bfff0ad8b94011a6f2a7129ce7c9b546bcdcde69":29,"0003be71c81ee5229f27d8efc0d1f2dd27c8cbb9":54,"6e461ff8f84ae7ae7ceee8a6a501c9524bc34c63":11,"6c2da5104745ddc67a2acb67a8244679f2dd797b":66,"ce375ce501d16a9dcff7f04ce6f584a8ee16b002":20,"3f0b05af6752a6129bb8fc718a8693f77580d8aa":113,"5f5b4d88d02d0ad4cbdb01544c81b0e18aab7f76":79,"71464218b65999ffc3adbeabb978f356c6583a6e":34,"f16fcfd697e678747f80903dca4e1266ab293b4a":141,"5f6762b3b4df3afe67908cd28dde709ed60f5451":22,"622feba95ac9815eb9470088b143c81d1cc888e3":329,"58b15aec28861c0b3f15610664828353f3817224":72,"a50a39648ebd490e6052a9d5db0177dab5e846b2":36,"24b5fd8a6cd030427f4b2dd0fbcb79e778904280":43,"39dbc357551a8bb8b34c8cb7628ce2c5cf463332":159,"5e91bce90917c1043311e1a0d8f2a279aa119aab":39,"16afb71ee03c687e7b20ca4d1f0e07b0042dc57d":32,"222192771d26f7c564ef5feab9c02bff87a838bf":24,"6257599fea66e3478528458181545c38186a3fb0":77,"15edc2ad5469842cc0a77c956bfcf5c7b89531f2":4,"c349b1f57bc7dcfbbf12257d2292d243746e33e4":236,"45b5d4617f8176f0a0be17ab660f10cdd7aed1d2":62,"c10a353a06eba3366dfe0372c03cb587c3429f6d":43,"a84f4e41a6faed4cb8afaf31961c769936b91278":121,"680a3f03f82e8e7d066edbd73a0dfea7e743f830":74,"33f42d718c239b521f05933c6518fc3659727c38":30,"76e0735170d2e04447d4ac45b5bf204cc9676a07":97,"94b0424ba566a5c2799070bdabdf40f54eb67aac":58,"aa2d4003da548cd3b879ab8eb5aeb27cc6b19ba9":52,"9641fc6c3e3cdb5510a504a4b6e3c8afd9b8b8ab":71,"2f4a29ed0313acb63c152d6d49181426b5b27a24":22,"a7606f3df747814286ab3feb67037ef0e2f53467":44,"ebc702ef1da12d339681824a7e0daa4be2c19008":43,"97bc8aea80f35ac109a4a659f385585097baff85":21,"1cdbc6a32525f1b39adbe73270ae8b73c688969a":1,"6f6a948822759f89d939043ad8a694a997537f1c":3,"13f6b4a97a9ed6beba21a6833818cfe46a1b8484":14,"463d02e21c4ff2e2b83e024e5b420b8e11a98236":36,"34afdae3f8eb5723d0d360b7036999a978af6504":47,"21e0c7289cf9712b51c3c5571032a476fa401471":5,"2fead3cf35d98b287b5ffc384419ab4766948691":54,"3840ea02acff18516f1fd60606f5d50c01472cf3":40,"10fb9395d15405f37253eff2416fa30e0e824fdf":21,"05eea7bd427cad0d77134c1131bbc1de25ab56a5":46,"753d7ec1189c27f4802784f4449636bf1f33a5ac":15,"262e3b6b22eef852d58e51a2f790747f883ad7cb":4,"0aad448159448d6891cdcd8a13e5dcf4adc318a5":2,"85db0deccbdaef86a909fe4f6ed19cf5def07a83":106,"efd3b59226f9d808790d34bf8550567b7cc3b23f":67,"03e12a51b761818b175d3b95494e7a533d6730e6":12,"5fec4074f66d24305765656f6cbec4070c33c049":13,"6017adb58f2fb74f6669e1167654e9af278dddf9":60,"6f26e633348193403324c4adaaa9c7dc7f7bb211":24,"eeb7bf47b513142cbf775dcd0f9e1288bdd78ecb":5,"b2cca00ba50d23f8d45e4330405d9f57392dbe8f":47,"d3ee04dfa7af47c5624869fc27edaae630d29fb0":33,"274f2adad0e397f6d121cb51d6eee2a0a9b0784b":46,"80b08fb662b05651b850811f4b9d127f925c54fa":32,"a03899720f2fca36637e9e92660d8f756065afcf":39,"cf69a502752cb9f03950d31a920fca64f74ae89f":54,"55f37ae7ebdd37b71cb6e6ad9de7ac62d8472ac0":5,"e7bf854c7a8b16b8026a36ae7ccbd761dc996667":104,"ec83fa9a00d321f633c350a92322d0529466283a":117,"2eea11a2dfa97e70c9bb0d24b98d4f1d7235fc58":11,"f753b1f4c04c6aadcf5284385ff9d9f6cd4bb78e":23,"ff916cd6b978def290c8d617fcd1dbf8afb4d1d1":27,"40ecf9edcccc8bad85553ba443ed6dd0afbb7384":18,"c720c983caaed51547d94e2b51d5698a2f293850":30,"29bfa54ae2236e1312ad5467691efdb8836d80f3":73,"9281ae03a9ac24345cf570c257ac3255b9c82f26":47,"54e48f0151b0949f0b70687bc35a3209e1cf8e41":13,"b7229972a905cb27fa434be7d46aaf2e7eac2f15":41,"de70e8487eef92d874f9d4033d174a4c0763f508":43,"5d67702a440815fe1d83bc612916376968286e90":30,"5997ef0923ed719ea5e26bf2b643b50bed318d37":40,"a15a0079a6fca22535457051e1ec33ef0b939e14":12,"c42d0a1c8fe2507286763eeea1467984811f7231":38,"af46604047209305db00c7b8905e11931e6e42d3":2,"7e17060f207493501b0c4e5856186ee1123341f3":4,"0ed7e494d61036cf4299f5a3b02084f844ca714a":10,"33d6d079c95c6b27ecff6b53fe048178ac0d3324":2,"e32f3a410f83aed25a7c7e858a33f1b2bd1c2b31":2,"971e1964414ab6cf26b7ad1ede295951c5fafac7":31,"da000bb9d92604de45ccb3e28c75eb060f5cbfc8":36,"f1886a08892e477fe9cac2e1167905434a0e0100":7,"a12ec16e84beca4720e4720963e40d4aeae73730":1,"af560e191a7c03a94e80afab83c92083c41d5c02":186,"d57be9eba13415d3d2bb78fd0b261a432899fb33":16,"7c5e0ef02dc6d59e88611db315a2d5523eeacd72":257,"84d2ad09b1aa1e89ae73f814b35bce25fd4b9db1":50,"d31bcea254194f51f8130263730825ea86d2e3d8":175,"65a1c5897a938fefa5b060afa409ee07e041524f":351,"400a95da8742b02c7131b60f714a46aeb80f77c7":270,"929bd0ebd6b4a4227d1e622fdc1bdf1326cadf85":30,"0d39ede8ce138064d71b7fab2dc9d0483cf34342":682,"15119e8565a9b3ff6719c016f5d79c921f9f7efe":448,"a4050f6fc1f4ed3be2a213f48c25109c17202c9a":152,"b7fd2f5aea3f5f987ab3d7e37c9c127e27b644a1":1027,"b8dec27076c6b80bc4403eced1cc2b5e365934b8":375,"0b2addc88994636aafbba74d251f1040ac677623":7,"bdf80bf3e003439f71128ec92fac81fbbd265e0f":1252,"a52cd7548605760692b30d72ca85a3935bddc09e":147,"cc88124908d0e5aa6caeefe5afb28a0f774983c3":133,"81475c3fb6fecefb2953b59c4798cad6a86357a4":1,"b1764608b42980ad4811efc3901c289ec4d5f719":4},"excluded_import_commits":["400a577cb64cd54c6fe0f780cb55f41bb12273f4","5e3d6b8c2793244737ed2967cd6949749f9b5558","82864c8f4c9a5eb5551ab0cdd6da52014832e3c5"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-5","metrics":{"releases":84.0,"flagged_releases":4.0,"max_loc_per_day":29952.6},"findings":[],"evidence":[{"kind":"release-burst","description":"cli-v1.2.2 → bin-v1.1.2: 6,349 lines in 1.54 days (4,126.5 lines/day)","ref":"cli-v1.2.2...bin-v1.1.2","url":"https://github.com/JuliusBrussee/caveman/compare/cli-v1.2.2...bin-v1.1.2","weight":0.4},{"kind":"release-burst","description":"sdk-python-v1.2.0 → v3.1.0: 6,484 lines in 2.09 days (3,096.8 lines/day)","ref":"sdk-python-v1.2.0...v3.1.0","url":"https://github.com/JuliusBrussee/caveman/compare/sdk-python-v1.2.0...v3.1.0","weight":0.4},{"kind":"release-burst","description":"cli-v2.0.1 → bin-v2.1.0: 17,056 lines in 4.93 days (3,456.6 lines/day)","ref":"cli-v2.0.1...bin-v2.1.0","url":"https://github.com/JuliusBrussee/caveman/compare/cli-v2.0.1...bin-v2.1.0","weight":0.4},{"kind":"release-burst","description":"cli-v2.1.0 → bin-v4.0.0: 57,589 lines in 5.45 days (10,567.6 lines/day)","ref":"cli-v2.1.0...bin-v4.0.0","url":"https://github.com/JuliusBrussee/caveman/compare/cli-v2.1.0...bin-v4.0.0","weight":0.4}],"data":{"releases":[{"from":"v1.0.0","to":"v1.1.0","loc":276,"days":0.99,"loc_per_day":278.6,"flagged":false},{"from":"v1.1.0","to":"v1.2.0","loc":579,"days":1.04,"loc_per_day":558.2,"flagged":false},{"from":"v1.2.0","to":"v1.3.0","loc":724,"days":2.21,"loc_per_day":327.4,"flagged":false},{"from":"v1.3.0","to":"v1.3.5","loc":224,"days":0.83,"loc_per_day":268.3,"flagged":false},{"from":"v1.3.5","to":"v1.4.0","loc":1256,"days":1.63,"loc_per_day":772.2,"flagged":false},{"from":"v1.4.0","to":"v1.4.1","loc":649,"days":0.13,"loc_per_day":5096.7,"flagged":false},{"from":"v1.4.1","to":"v1.5.0","loc":99,"days":0.12,"loc_per_day":825.6,"flagged":false},{"from":"v1.5.0","to":"v1.5.1","loc":190,"days":0.25,"loc_per_day":774.2,"flagged":false},{"from":"v1.5.1","to":"v1.6.0","loc":1052,"days":3.61,"loc_per_day":291.7,"flagged":false},{"from":"v1.6.0","to":"v1.7.0","loc":3961,"days":15.48,"loc_per_day":255.8,"flagged":false},{"from":"v1.7.0","to":"v1.8.0","loc":3153,"days":9.56,"loc_per_day":329.9,"flagged":false},{"from":"v1.8.0","to":"v1.8.1","loc":23,"days":0.04,"loc_per_day":552.0,"flagged":false},{"from":"v1.8.1","to":"v1.8.2","loc":11,"days":2.24,"loc_per_day":4.9,"flagged":false},{"from":"v1.8.2","to":"v1.9.0","loc":1420,"days":30.72,"loc_per_day":46.2,"flagged":false},{"from":"v1.9.0","to":"v1.9.1","loc":2407,"days":20.92,"loc_per_day":115.0,"flagged":false},{"from":"v1.9.1","to":"v1.10.0","loc":1831,"days":30.99,"loc_per_day":59.1,"flagged":false},{"from":"v1.10.0","to":"pre-caveman-2-2026-08-11","loc":0,"days":7.29,"loc_per_day":0.0,"flagged":false},{"from":"pre-caveman-2-2026-08-11","to":"bin-v1.0.0","loc":1,"days":0.9,"loc_per_day":1.1,"flagged":false},{"from":"bin-v1.0.0","to":"v2.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.0.0","to":"cli-v1.1.0","loc":144,"days":0.74,"loc_per_day":195.8,"flagged":false},{"from":"cli-v1.1.0","to":"bin-v1.1.0","loc":4054,"days":4.41,"loc_per_day":919.6,"flagged":false},{"from":"bin-v1.1.0","to":"v2.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.1.0","to":"cli-v1.2.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.2.0","to":"cli-v1.2.1","loc":350,"days":2.08,"loc_per_day":168.2,"flagged":false},{"from":"cli-v1.2.1","to":"bin-v1.1.1","loc":178,"days":0.04,"loc_per_day":4272.0,"flagged":false},{"from":"bin-v1.1.1","to":"cli-v1.2.2","loc":63,"days":0.04,"loc_per_day":1512.0,"flagged":false},{"from":"cli-v1.2.2","to":"bin-v1.1.2","loc":6349,"days":1.54,"loc_per_day":4126.5,"flagged":true},{"from":"bin-v1.1.2","to":"cli-v1.2.3","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.2.3","to":"v2.2.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.2.0","to":"pi-v0.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"pi-v0.1.0","to":"bin-v1.1.3","loc":5160,"days":2.9,"loc_per_day":1782.3,"flagged":false},{"from":"bin-v1.1.3","to":"cli-v1.2.4","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.2.4","to":"v2.3.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.3.0","to":"v2.3.1","loc":31,"days":0.04,"loc_per_day":744.0,"flagged":false},{"from":"v2.3.1","to":"cli-v1.2.5","loc":139,"days":0.13,"loc_per_day":1083.8,"flagged":false},{"from":"cli-v1.2.5","to":"bin-v1.1.4","loc":5288,"days":6.37,"loc_per_day":830.2,"flagged":false},{"from":"bin-v1.1.4","to":"cli-v1.3.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.3.0","to":"cli-v1.3.1","loc":14,"days":0.04,"loc_per_day":336.0,"flagged":false},{"from":"cli-v1.3.1","to":"v2.4.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.4.0","to":"bin-v1.1.5","loc":8170,"days":3.66,"loc_per_day":2231.1,"flagged":false},{"from":"bin-v1.1.5","to":"cli-v1.3.2","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.3.2","to":"v2.5.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v2.5.0","to":"v2.6.0","loc":1776,"days":1.44,"loc_per_day":1232.8,"flagged":false},{"from":"v2.6.0","to":"bin-v1.1.6","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"bin-v1.1.6","to":"cli-v1.3.3","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.3.3","to":"bin-v1.1.7","loc":27039,"days":11.03,"loc_per_day":2452.0,"flagged":false},{"from":"bin-v1.1.7","to":"sdk-python-v1.1.0","loc":1,"days":0.09,"loc_per_day":10.7,"flagged":false},{"from":"sdk-python-v1.1.0","to":"sdk-ts-v1.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"sdk-ts-v1.1.0","to":"middleware-python-v0.1.0a1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-python-v0.1.0a1","to":"middleware-ts-v0.1.0-alpha.2","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-ts-v0.1.0-alpha.2","to":"pi-v0.1.1","loc":1,"days":0.04,"loc_per_day":24.0,"flagged":false},{"from":"pi-v0.1.1","to":"v2.7.0","loc":4,"days":0.04,"loc_per_day":96.0,"flagged":false},{"from":"v2.7.0","to":"cli-v1.3.4","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v1.3.4","to":"bin-v2.0.0","loc":38464,"days":15.62,"loc_per_day":2462.2,"flagged":false},{"from":"bin-v2.0.0","to":"cli-v2.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v2.0.0","to":"contracts-v2.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"contracts-v2.0.0","to":"middleware-python-v1.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-python-v1.0.0","to":"middleware-ts-v1.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-ts-v1.0.0","to":"pi-v0.2.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"pi-v0.2.0","to":"sdk-ts-v1.2.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"sdk-ts-v1.2.0","to":"v3.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v3.0.0","to":"sdk-python-v1.2.0","loc":0,"days":0.14,"loc_per_day":0.0,"flagged":false},{"from":"sdk-python-v1.2.0","to":"v3.1.0","loc":6484,"days":2.09,"loc_per_day":3096.8,"flagged":true},{"from":"v3.1.0","to":"bin-v2.0.2","loc":403,"days":0.25,"loc_per_day":1581.4,"flagged":false},{"from":"bin-v2.0.2","to":"cli-v2.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v2.0.1","to":"bin-v2.1.0","loc":17056,"days":4.93,"loc_per_day":3456.6,"flagged":true},{"from":"bin-v2.1.0","to":"middleware-ts-v1.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-ts-v1.0.1","to":"pi-v0.3.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"pi-v0.3.0","to":"v3.2.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v3.2.0","to":"cli-v2.1.0","loc":9,"days":0.04,"loc_per_day":216.0,"flagged":false},{"from":"cli-v2.1.0","to":"bin-v4.0.0","loc":57589,"days":5.45,"loc_per_day":10567.6,"flagged":true},{"from":"bin-v4.0.0","to":"cli-v4.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v4.0.0","to":"v4.0.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v4.0.0","to":"bin-v4.0.1","loc":2001,"days":0.07,"loc_per_day":29952.6,"flagged":false},{"from":"bin-v4.0.1","to":"cli-v4.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v4.0.1","to":"pi-v0.3.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"pi-v0.3.1","to":"v4.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v4.0.1","to":"bin-v4.0.2","loc":2518,"days":9.45,"loc_per_day":266.4,"flagged":false},{"from":"bin-v4.0.2","to":"bin-v4.1.0","loc":15056,"days":14.94,"loc_per_day":1008.0,"flagged":false},{"from":"bin-v4.1.0","to":"cli-v4.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"cli-v4.1.0","to":"middleware-python-v1.0.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-python-v1.0.1","to":"middleware-ts-v1.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"middleware-ts-v1.1.0","to":"pi-v0.3.2","loc":0,"days":1.03,"loc_per_day":0.0,"flagged":false},{"from":"pi-v0.3.2","to":"v4.1.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":150851.0,"index":0.282,"count:narrated_steps":6.0,"per_kloc:narrated_steps":0.04,"files:narrated_steps":4.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":73.0,"per_kloc:emoji_in_code":0.484,"files:emoji_in_code":14.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Compress (body only, frontmatter excluded)","ref":"plugins/caveman/skills/caveman-compress/scripts/compress.py:1203","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/plugins/caveman/skills/caveman-compress/scripts/compress.py#L1203","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: Validate + Retry. Each candidate is staged and validated next","ref":"plugins/caveman/skills/caveman-compress/scripts/compress.py:1264","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/plugins/caveman/skills/caveman-compress/scripts/compress.py#L1264","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // first, so this mount cannot be used as a route oracle (see Server.proxy).","ref":"proxy/internal/gateway/metadata_route.go:52","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/internal/gateway/metadata_route.go#L52","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // first, then consult the GET-only metadata allowlist.","ref":"proxy/providers/openaicompat/openaicompat.go:232","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/providers/openaicompat/openaicompat.go#L232","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: Compress (body only, frontmatter excluded)","ref":"skills/caveman-compress/scripts/compress.py:1203","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/skills/caveman-compress/scripts/compress.py#L1203","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: Validate + Retry. Each candidate is staged and validated next","ref":"skills/caveman-compress/scripts/compress.py:1264","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/skills/caveman-compress/scripts/compress.py#L1264","weight":0.0}],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":22.0,"secrets_low_confidence":0.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"packages/cli/tests/fixtures/receipts-bundle.json","line":6,"fingerprint":"packages/cli/tests/fixtures/receipts-bundle.json:generic-api-key:6"},{"rule_id":"gitleaks/private-key","severity":"low","message":"Possible private-key secret in the current tree (test/docs/example file)","path":"packages/cli/tests/proxy-fetch.runtime.mjs","line":20,"fingerprint":"packages/cli/tests/proxy-fetch.runtime.mjs:private-key:20"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"packages/sdk/parity/runtime-policy.fixtures.json","line":21,"fingerprint":"packages/sdk/parity/runtime-policy.fixtures.json:generic-api-key:21"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"proxy/internal/config/middleware_test.go","line":117,"fingerprint":"proxy/internal/config/middleware_test.go:generic-api-key:117"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"packages/sdk/parity/fixtures.json","line":456,"fingerprint":"packages/sdk/parity/fixtures.json:generic-api-key:456"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"proxy/internal/gateway/route_pool_test.go","line":653,"fingerprint":"proxy/internal/gateway/route_pool_test.go:generic-api-key:653"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"proxy/internal/config/config_test.go","line":90,"fingerprint":"proxy/internal/config/config_test.go:generic-api-key:90"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"proxy/internal/standalone/auth_token_test.go","line":17,"fingerprint":"proxy/internal/standalone/auth_token_test.go:generic-api-key:17"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"shared/platform/redact/redact_test.go","line":278,"fingerprint":"shared/platform/redact/redact_test.go:generic-api-key:278"},{"rule_id":"gitleaks/private-key","severity":"low","message":"Possible private-key secret in the current tree (test/docs/example file)","path":"shared/platform/redact/redact_test.go","line":110,"fingerprint":"shared/platform/redact/redact_test.go:private-key:110"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"shared/platform/redact/residual_test.go","line":258,"fingerprint":"shared/platform/redact/residual_test.go:generic-api-key:258"},{"rule_id":"gitleaks/github-pat","severity":"low","message":"Possible github-pat secret in the current tree (test/docs/example file)","path":"shared/platform/redact/residual_test.go","line":227,"fingerprint":"shared/platform/redact/residual_test.go:github-pat:227"},{"rule_id":"gitleaks/stripe-access-token","severity":"low","message":"Possible stripe-access-token secret in the current tree (test/docs/example file)","path":"shared/platform/redact/residual_test.go","line":351,"fingerprint":"shared/platform/redact/residual_test.go:stripe-access-token:351"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"shared/platform/redact/payload_test.go","line":665,"fingerprint":"shared/platform/redact/payload_test.go:generic-api-key:665"},{"rule_id":"gitleaks/github-pat","severity":"low","message":"Possible github-pat secret in the current tree (test/docs/example file)","path":"shared/platform/redact/payload_test.go","line":630,"fingerprint":"shared/platform/redact/payload_test.go:github-pat:630"},{"rule_id":"gitleaks/github-refresh-token","severity":"low","message":"Possible github-refresh-token secret in the current tree (test/docs/example file)","path":"shared/platform/redact/payload_test.go","line":669,"fingerprint":"shared/platform/redact/payload_test.go:github-refresh-token:669"},{"rule_id":"gitleaks/github-oauth","severity":"low","message":"Possible github-oauth secret in the current tree (test/docs/example file)","path":"shared/platform/redact/payload_test.go","line":667,"fingerprint":"shared/platform/redact/payload_test.go:github-oauth:667"},{"rule_id":"gitleaks/github-app-token","severity":"low","message":"Possible github-app-token secret in the current tree (test/docs/example file)","path":"shared/platform/redact/payload_test.go","line":668,"fingerprint":"shared/platform/redact/payload_test.go:github-app-token:668"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 1b2cd59de3); removed from the current tree but still retrievable","path":"proxy/internal/gateway/websocket_route_test.go","line":24,"fingerprint":"1b2cd59de3fbe5c7ad1b84b7e5d4635e462b6d6a:proxy/internal/gateway/websocket_route_test.go:generic-api-key:24"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 82864c8f4c); removed from the current tree but still retrievable","path":"cacheengine/cachebench/cachebench_test.go","line":129,"fingerprint":"82864c8f4c9a5eb5551ab0cdd6da52014832e3c5:cacheengine/cachebench/cachebench_test.go:generic-api-key:129"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 82864c8f4c); removed from the current tree but still retrievable","path":"shared/platform/objectstore/objectstore_test.go","line":14,"fingerprint":"82864c8f4c9a5eb5551ab0cdd6da52014832e3c5:shared/platform/objectstore/objectstore_test.go:generic-api-key:14"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 82864c8f4c); removed from the current tree but still retrievable","path":"packages/agent/tests/framework.runtime.mjs","line":1654,"fingerprint":"82864c8f4c9a5eb5551ab0cdd6da52014832e3c5:packages/agent/tests/framework.runtime.mjs:generic-api-key:1654"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":565.0,"findings_high":27.0,"findings_medium":536.0,"findings_low":2.0,"weighted_findings":158.225,"scanned_lines":148410.0,"parse_errors":3.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".blocks/release-smoke.py","line":66,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.blocks/release-smoke.py:66"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":".blocks/release-smoke.py","line":111,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:.blocks/release-smoke.py:111"},{"rule_id":"opengrep/javascript.lang.security.detect-insecure-websocket","severity":"high","message":"Insecure WebSocket Detected. WebSocket Secure (wss) should be used for all WebSocket connections. [confidence low]","path":"browse/cmd/caveman-browse/main.go","line":305,"fingerprint":"javascript.lang.security.detect-insecure-websocket:browse/cmd/caveman-browse/main.go:305"},{"rule_id":"opengrep/go.lang.security.audit.dangerous-exec-command","severity":"high","message":"Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low]","path":"browse/cmd/caveman-browse/main.go","line":342,"fingerprint":"go.lang.security.audit.dangerous-exec-command:browse/cmd/caveman-browse/main.go:342"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_repair.go","line":127,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_repair.go:127"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_repair.go","line":156,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_repair.go:156"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_repair.go","line":580,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_repair.go:580"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_sqlite.go","line":551,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_sqlite.go:551"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_sqlite.go","line":562,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_sqlite.go:562"},{"rule_id":"opengrep/go.lang.security.audit.sqli.gosql-sqli","severity":"high","message":"Detected string concatenation with a non-literal variable in a \"database/sql\" Go SQL statement. This could lead to SQL injection if the variable is user-controlled and not properly sanitized. In order to prevent SQL injection, use parameterized queries or prepared statements instead. You can use pre [confidence low]","path":"engine/ccr/store_sqlite.go","line":565,"fingerprint":"go.lang.security.audit.sqli.gosql-sqli:engine/ccr/store_sqlite.go:565"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"evals/llm_run.py","line":152,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:evals/llm_run.py:152"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args","severity":"high","message":"Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium]","path":"evals/llm_run.py","line":153,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-tainted-env-args:evals/llm_run.py:153"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"evals/llm_run.py","line":166,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:evals/llm_run.py:166"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"evals/reminder_run.py","line":107,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:evals/reminder_run.py:107"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args","severity":"high","message":"Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium]","path":"evals/reminder_run.py","line":108,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-tainted-env-args:evals/reminder_run.py:108"},{"rule_id":"opengrep/javascript.lang.security.audit.dangerous-spawn-shell","severity":"high","message":"Detected non-literal calls to child_process.spawnSync(). This could lead to a command injection vulnerability. [confidence low]","path":"installer/install.js","line":329,"fingerprint":"javascript.lang.security.audit.dangerous-spawn-shell:installer/install.js:329"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `args`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"installer/install.js","line":468,"fingerprint":"javascript.lang.security.detect-child-process:installer/install.js:468"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `cmd`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"installer/install.js","line":468,"fingerprint":"javascript.lang.security.detect-child-process:installer/install.js:468"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `opts`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"installer/install.js","line":468,"fingerprint":"javascript.lang.security.detect-child-process:installer/install.js:468"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `cmd`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"installer/install.js","line":473,"fingerprint":"javascript.lang.security.detect-child-process:installer/install.js:473"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `executable`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low]","path":"installer/install.js","line":550,"fingerprint":"javascript.lang.security.detect-child-process:installer/install.js:550"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"mem/py/cavemem.py","line":39,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:mem/py/cavemem.py:39"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"plugins/caveman/skills/caveman-compress/scripts/compress.py","line":598,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:plugins/caveman/skills/caveman-compress/scripts/compress.py:598"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"plugins/caveman/skills/caveman-compress/scripts/compress.py","line":703,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:plugins/caveman/skills/caveman-compress/scripts/compress.py:703"},{"rule_id":"opengrep/go.lang.security.audit.dangerous-exec-command","severity":"high","message":"Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low]","path":"proxy/internal/nativehook/hook.go","line":399,"fingerprint":"go.lang.security.audit.dangerous-exec-command:proxy/internal/nativehook/hook.go:399"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"skills/caveman-compress/scripts/compress.py","line":598,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:skills/caveman-compress/scripts/compress.py:598"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"skills/caveman-compress/scripts/compress.py","line":703,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:skills/caveman-compress/scripts/compress.py:703"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":".blocks/release-smoke.py","line":116,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:.blocks/release-smoke.py:116"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `file` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":".codex/codex-sessionstart.js","line":85,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:.codex/codex-sessionstart.js:85"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `file` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":".codex/codex-sessionstart.js","line":87,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:.codex/codex-sessionstart.js:87"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":".codex/codex-sessionstart.js","line":122,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:.codex/codex-sessionstart.js:122"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":".codex/codex-sessionstart.js","line":125,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:.codex/codex-sessionstart.js:125"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-redos","severity":"medium","message":"Detected the use of a regular expression `^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$` which appears to be vulnerable to a Regular expression Denial-of-Service (ReDoS). For this reason, it is recommended to review the regex and ensure it is not vulnerable to catastrophic backtracking, and [confidence low]","path":"agents/drift-report.mjs","line":59,"fingerprint":"javascript.lang.security.audit.detect-redos:agents/drift-report.mjs:59"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-redos","severity":"medium","message":"Detected the use of a regular expression `^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$` which appears to be vulnerable to a Regular expression Denial-of-Service (ReDoS). For this reason, it is recommended to review the regex and ensure it is not vulnerable to catastrophic backtracking, and [confidence low]","path":"agents/drift-report.mjs","line":119,"fingerprint":"javascript.lang.security.audit.detect-redos:agents/drift-report.mjs:119"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-redos","severity":"medium","message":"Detected the use of a regular expression `^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$` which appears to be vulnerable to a Regular expression Denial-of-Service (ReDoS). For this reason, it is recommended to review the regex and ensure it is not vulnerable to catastrophic backtracking, and [confidence low]","path":"agents/drift-report.mjs","line":126,"fingerprint":"javascript.lang.security.audit.detect-redos:agents/drift-report.mjs:126"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-redos","severity":"medium","message":"Detected the use of a regular expression `^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$` which appears to be vulnerable to a Regular expression Denial-of-Service (ReDoS). For this reason, it is recommended to review the regex and ensure it is not vulnerable to catastrophic backtracking, and [confidence low]","path":"agents/drift-report.mjs","line":131,"fingerprint":"javascript.lang.security.audit.detect-redos:agents/drift-report.mjs:131"},{"rule_id":"opengrep/go.lang.security.audit.use-of-unsafe-block","severity":"medium","message":"Using the unsafe package in Go gives you low-level memory management and many of the strengths of the C language, but also steps around the type safety of Go and can lead to buffer overflows and possible arbitrary code execution by an attacker. Only use this package if you absolutely know what you'r [confidence low]","path":"engine/ccr/sqlite_parent_security_windows.go","line":74,"fingerprint":"go.lang.security.audit.use-of-unsafe-block:engine/ccr/sqlite_parent_security_windows.go:74"},{"rule_id":"opengrep/go.lang.security.audit.database.string-formatted-query","severity":"medium","message":"String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low]","path":"engine/ccr/store_reclaim.go","line":198,"fingerprint":"go.lang.security.audit.database.string-formatted-query:engine/ccr/store_reclaim.go:198"},{"rule_id":"opengrep/go.lang.security.shared-url-struct-mutation","severity":"medium","message":"Shared URL struct may have been accidentally mutated. Ensure that this behavior is intended. [confidence low]","path":"engine/ccr/store_repair.go","line":84,"fingerprint":"go.lang.security.shared-url-struct-mutation:engine/ccr/store_repair.go:84"},{"rule_id":"opengrep/go.lang.security.audit.database.string-formatted-query","severity":"medium","message":"String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low]","path":"engine/ccr/store_repair.go","line":127,"fingerprint":"go.lang.security.audit.database.string-formatted-query:engine/ccr/store_repair.go:127"},{"rule_id":"opengrep/go.lang.security.shared-url-struct-mutation","severity":"medium","message":"Shared URL struct may have been accidentally mutated. Ensure that this behavior is intended. [confidence low]","path":"engine/ccr/store_repair.go","line":273,"fingerprint":"go.lang.security.shared-url-struct-mutation:engine/ccr/store_repair.go:273"},{"rule_id":"opengrep/go.lang.security.audit.database.string-formatted-query","severity":"medium","message":"String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low]","path":"engine/ccr/store_sqlite.go","line":551,"fingerprint":"go.lang.security.audit.database.string-formatted-query:engine/ccr/store_sqlite.go:551"},{"rule_id":"opengrep/go.lang.security.audit.database.string-formatted-query","severity":"medium","message":"String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low]","path":"engine/ccr/store_sqlite.go","line":562,"fingerprint":"go.lang.security.audit.database.string-formatted-query:engine/ccr/store_sqlite.go:562"},{"rule_id":"opengrep/go.lang.security.audit.database.string-formatted-query","severity":"medium","message":"String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulable by external data. [confidence low]","path":"engine/ccr/store_sqlite.go","line":565,"fingerprint":"go.lang.security.audit.database.string-formatted-query:engine/ccr/store_sqlite.go:565"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `name` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled [confidence low]","path":"engine/pixel/internal/atlasgen/extract-atlas.mjs","line":28,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:engine/pixel/internal/atlasgen/extract-atlas.mjs:28"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `name` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled [confidence low]","path":"engine/pixel/internal/atlasgen/extract-atlas.mjs","line":35,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:engine/pixel/internal/atlasgen/extract-atlas.mjs:35"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":82,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:82"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `needle` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controll [confidence low]","path":"installer/install.js","line":356,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:installer/install.js:356"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `needle` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controll [confidence low]","path":"installer/install.js","line":369,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:installer/install.js:369"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":375,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:375"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `needle` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controll [confidence low]","path":"installer/install.js","line":381,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:installer/install.js:381"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":393,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:393"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":395,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:395"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":395,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:395"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":405,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:405"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":407,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:407"},{"rule_id":"opengrep/javascript.lang.security.audit.unsafe-dynamic-method","severity":"medium","message":"Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low]","path":"installer/install.js","line":439,"fingerprint":"javascript.lang.security.audit.unsafe-dynamic-method:installer/install.js:439"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":439,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:439"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":493,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:493"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `configDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":494,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:494"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `settingsPath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":574,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:574"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `settingsPath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":574,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:574"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `settingsPath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":574,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:574"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":617,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:617"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":617,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:617"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":621,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:621"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":641,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:641"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":683,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:683"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":686,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:686"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `f` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":741,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:741"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":741,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:741"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":953,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:953"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1020,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1020"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1020,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1020"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1022,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1022"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1022,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1022"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1025,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1025"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1025,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1025"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1083,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1083"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1083,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1083"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1160,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1160"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1212,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1212"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1213,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1213"},{"rule_id":"opengrep/javascript.lang.security.html-in-template-string","severity":"medium","message":"This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low]","path":"installer/install.js","line":1260,"fingerprint":"javascript.lang.security.html-in-template-string:installer/install.js:1260"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1273,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1273"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1273,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1273"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1275,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1275"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1275,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1275"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1373,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1373"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `repoRoot` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1424,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1424"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1424,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1424"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1436,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1436"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1447,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1447"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1447,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1447"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1448,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1448"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1448,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1448"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1449,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1449"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1449,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1449"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1451,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1451"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1453,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1453"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1454,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1454"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1454,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1454"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1454,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1454"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1454,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1454"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1457,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1457"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1458,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1458"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1459,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1459"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1461,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1461"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1462,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1462"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1462,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1462"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1462,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1462"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1462,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1462"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1465,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1465"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1466,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1466"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1467,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1467"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1469,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1469"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1470,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1470"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1471,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1471"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1471,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1471"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1471,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1471"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1475,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1475"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1476,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1476"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `pluginDir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1477,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1477"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1477,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1477"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1541,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1541"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1542,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1542"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1543,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1543"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1544,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1544"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1590,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1590"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1591,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1591"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1591,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1591"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1594,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1594"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1594,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1594"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1595,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1595"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1595,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1595"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1597,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1597"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1597,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1597"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1599,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1599"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1599,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1599"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1606,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1606"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1609,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1609"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1609,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1609"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1622,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1622"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1623,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1623"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1626,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1626"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1635,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1635"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1654,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1654"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1820,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1820"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1821,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1821"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1822,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1822"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1827,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1827"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1829,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1829"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1837,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1837"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1842,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1842"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1852,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1852"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1853,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1853"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1857,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1857"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1858,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1858"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1898,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1898"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1906,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1906"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1906,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1906"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1922,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1922"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1922,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1922"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1923,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1923"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":1923,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:1923"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1933,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1933"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1934,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1934"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1935,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1935"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1936,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1936"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":1979,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:1979"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/install.js","line":2044,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/install.js:2044"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2048,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2048"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dest` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2114,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2114"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dest` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2117,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2117"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dest` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2118,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2118"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dest` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2134,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2134"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2145,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2145"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2301,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2301"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2340,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2340"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2343,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2343"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2351,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2351"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2675,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2675"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2679,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2679"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2686,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2686"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2691,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2691"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2693,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2693"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2696,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2696"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `ctx` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/install.js","line":2706,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/install.js:2706"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/cursor-native.js","line":32,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/cursor-native.js:32"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/cursor-native.js","line":45,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/cursor-native.js:45"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/cursor-native.js","line":87,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/cursor-native.js:87"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/cursor-native.js","line":96,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/cursor-native.js:96"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{\n  repoRoot, home = os.homedir(), node = process.execPath, withHooks = true,\n  force = false, dryRun = false, note = () => {},\n}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory  [confidence low]","path":"installer/lib/cursor-native.js","line":108,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/cursor-native.js:108"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ file, readonly }` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/cursor-native.js","line":108,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/cursor-native.js:108"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/cursor-native.js","line":108,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/cursor-native.js:108"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/cursor-native.js","line":108,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/cursor-native.js:108"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/cursor-native.js","line":109,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/cursor-native.js:109"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/host-hooks.js","line":28,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/host-hooks.js:28"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/host-hooks.js","line":28,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/host-hooks.js:28"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `source` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/host-hooks.js","line":29,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/host-hooks.js:29"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `stage` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/host-hooks.js","line":29,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/host-hooks.js:29"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/host-hooks.js","line":29,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/host-hooks.js:29"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/host-hooks.js","line":31,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/host-hooks.js:31"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/host-hooks.js","line":32,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/host-hooks.js:32"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/host-hooks.js","line":38,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/host-hooks.js:38"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":41,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:41"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":46,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:46"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":65,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:65"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":72,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:72"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":74,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:74"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":76,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":80,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:80"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":87,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:87"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":87,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:87"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":90,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:90"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `expectedStat` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":91,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:91"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":91,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:91"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `expectedStat` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":92,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:92"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":92,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:92"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `expectedStat` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":100,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:100"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":100,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:100"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":102,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:102"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":103,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:103"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":103,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:103"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `expectedStat` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":106,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:106"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":106,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:106"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":107,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:107"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":120,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:120"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":127,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:127"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":129,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:129"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `p` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/openclaw.js","line":131,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:131"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":142,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:142"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":150,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:150"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":150,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:150"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `key` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled  [confidence low]","path":"installer/lib/openclaw.js","line":184,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:installer/lib/openclaw.js:184"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":216,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:216"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":249,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:249"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":364,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:364"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":370,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:370"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":373,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:373"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":374,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:374"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":375,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:375"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":379,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:379"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":384,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:384"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":396,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:396"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":398,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:398"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":423,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:423"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":424,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:424"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, repoRoot, dryRun = false, force = false, log = noopLog(), version } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that use [confidence low]","path":"installer/lib/openclaw.js","line":425,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:425"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":433,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:433"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":434,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:434"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":436,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:436"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, dryRun = false, log = noopLog() } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file pat [confidence low]","path":"installer/lib/openclaw.js","line":440,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:440"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, dryRun = false, log = noopLog() } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file pat [confidence low]","path":"installer/lib/openclaw.js","line":445,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:445"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/openclaw.js","line":446,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/openclaw.js:446"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, dryRun = false, log = noopLog() } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file pat [confidence low]","path":"installer/lib/openclaw.js","line":477,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:477"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `{ workspace, dryRun = false, log = noopLog() } = {}` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file pat [confidence low]","path":"installer/lib/openclaw.js","line":477,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/openclaw.js:477"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":11,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:11"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":32,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:32"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":32,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:32"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":33,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:33"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":37,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:37"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":39,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:39"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":39,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:39"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `relativePath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":41,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:41"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `root` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":41,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:41"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":49,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:49"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":54,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:54"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":54,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:54"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":54,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:54"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":59,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:59"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `source` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":72,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:72"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":75,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:75"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `source` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":76,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":76,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":76,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":76,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":76,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:76"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":80,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:80"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `source` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":81,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:81"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":81,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:81"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":85,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:85"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":89,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:89"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":92,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:92"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `target` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":95,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:95"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `journalPath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":105,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:105"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `journalPath` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":111,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:111"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":141,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:141"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":142,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:142"},{"rule_id":"opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal","severity":"medium","message":"Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability,  where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low]","path":"installer/lib/owned-install.js","line":145,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:installer/lib/owned-install.js:145"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dirs` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":156,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:156"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dirs` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":156,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:156"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `backupRoot` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":167,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:167"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `backupRoot` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":170,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:170"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `backupRoot` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":173,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:173"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `relative` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low]","path":"installer/lib/owned-install.js","line":173,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:installer/lib/owned-install.js:173"}],"evidence":[],"data":{"rulesets":["go","javascript","python","typescript","bash","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":12.0,"vulnerabilities":65.0,"vulns_critical":0.0,"vulns_high":21.0,"vulns_medium":38.0,"vulns_low":6.0,"vulns_unknown":0.0,"penalty":71.0},"findings":[{"rule_id":"osv/GHSA-46jr-4wx8-v453","severity":"high","message":"@modelcontextprotocol/server@2.0.0 (npm) is affected by GHSA-46jr-4wx8-v453","path":"pnpm-lock.yaml","line":null,"fingerprint":"@modelcontextprotocol/server@2.0.0 (npm):GHSA-46jr-4wx8-v453"},{"rule_id":"osv/GHSA-f897-62hf-6gxq","severity":"high","message":"@modelcontextprotocol/server@2.0.0 (npm) is affected by GHSA-f897-62hf-6gxq","path":"pnpm-lock.yaml","line":null,"fingerprint":"@modelcontextprotocol/server@2.0.0 (npm):GHSA-f897-62hf-6gxq"},{"rule_id":"osv/GHSA-jm63-cq47-j5jp","severity":"high","message":"@modelcontextprotocol/server@2.0.0 (npm) is affected by GHSA-jm63-cq47-j5jp","path":"pnpm-lock.yaml","line":null,"fingerprint":"@modelcontextprotocol/server@2.0.0 (npm):GHSA-jm63-cq47-j5jp"},{"rule_id":"osv/GHSA-27r3-jxmh-p828","severity":"high","message":"body-parser@2.3.0 (npm) is affected by GHSA-27r3-jxmh-p828","path":"pnpm-lock.yaml","line":null,"fingerprint":"body-parser@2.3.0 (npm):GHSA-27r3-jxmh-p828"},{"rule_id":"osv/GHSA-5jgf-p345-68v8","severity":"high","message":"fast-uri@3.1.5 (npm) is affected by GHSA-5jgf-p345-68v8","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-5jgf-p345-68v8"},{"rule_id":"osv/GHSA-f65p-4m7j-42xc","severity":"high","message":"fast-uri@3.1.5 (npm) is affected by GHSA-f65p-4m7j-42xc","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-f65p-4m7j-42xc"},{"rule_id":"osv/GHSA-fph4-wmhf-6fwf","severity":"high","message":"fast-uri@3.1.5 (npm) is affected by GHSA-fph4-wmhf-6fwf","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-fph4-wmhf-6fwf"},{"rule_id":"osv/GHSA-jqff-g426-hqxp","severity":"high","message":"fast-uri@3.1.5 (npm) is affected by GHSA-jqff-g426-hqxp","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-jqff-g426-hqxp"},{"rule_id":"osv/GHSA-qw65-cvwx-89v3","severity":"high","message":"fast-uri@3.1.5 (npm) is affected by GHSA-qw65-cvwx-89v3","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-qw65-cvwx-89v3"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@3.15.1 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"pnpm-lock.yaml","line":null,"fingerprint":"js-yaml@3.15.1 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-2m5v-pch6-74hx","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-4w7w-5xrc-9h26","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-4w7w-5xrc-9h26","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-4w7w-5xrc-9h26"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-qrxm-fqhp-jwvm","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-rfgv-xxqx-mfg5","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-rfgv-xxqx-mfg5","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-rfgv-xxqx-mfg5"},{"rule_id":"osv/GHSA-w293-vg96-wgc3","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-w293-vg96-wgc3","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-w293-vg96-wgc3"},{"rule_id":"osv/GHSA-xjj6-f33q-929c","severity":"high","message":"undici@7.29.0 (npm) is affected by GHSA-xjj6-f33q-929c","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-xjj6-f33q-929c"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-2m5v-pch6-74hx","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-4w7w-5xrc-9h26","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-4w7w-5xrc-9h26","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-4w7w-5xrc-9h26"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-qrxm-fqhp-jwvm","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-xjj6-f33q-929c","severity":"high","message":"undici@8.10.2 (npm) is affected by GHSA-xjj6-f33q-929c","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-xjj6-f33q-929c"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@4.4.3 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"pnpm-lock.yaml","line":null,"fingerprint":"zod@4.4.3 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.2.6 (npm) is affected by GHSA-g3hv-75wg-m249; also in pnpm-lock.yaml","path":"packages/pi-extension/package-lock.json","line":null,"fingerprint":"minimatch@10.2.6 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-jpvv-r467-5p4w","severity":"medium","message":"@hono/node-server@2.1.0 (npm) is affected by GHSA-jpvv-r467-5p4w","path":"pnpm-lock.yaml","line":null,"fingerprint":"@hono/node-server@2.1.0 (npm):GHSA-jpvv-r467-5p4w"},{"rule_id":"osv/GHSA-qv5m-9pm6-hqp3","severity":"medium","message":"@hono/node-server@2.1.0 (npm) is affected by GHSA-qv5m-9pm6-hqp3","path":"pnpm-lock.yaml","line":null,"fingerprint":"@hono/node-server@2.1.0 (npm):GHSA-qv5m-9pm6-hqp3"},{"rule_id":"osv/GHSA-rmxm-3fg6-px4f","severity":"medium","message":"@hono/node-server@2.1.0 (npm) is affected by GHSA-rmxm-3fg6-px4f","path":"pnpm-lock.yaml","line":null,"fingerprint":"@hono/node-server@2.1.0 (npm):GHSA-rmxm-3fg6-px4f"},{"rule_id":"osv/GHSA-rvq5-wwqv-78pq","severity":"medium","message":"@modelcontextprotocol/server@2.0.0 (npm) is affected by GHSA-rvq5-wwqv-78pq","path":"pnpm-lock.yaml","line":null,"fingerprint":"@modelcontextprotocol/server@2.0.0 (npm):GHSA-rvq5-wwqv-78pq"},{"rule_id":"osv/GHSA-hrr3-gc8f-f4qj","severity":"medium","message":"fast-uri@3.1.5 (npm) is affected by GHSA-hrr3-gc8f-f4qj","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-hrr3-gc8f-f4qj"},{"rule_id":"osv/GHSA-w74x-v6f9-j3xg","severity":"medium","message":"fast-uri@3.1.5 (npm) is affected by GHSA-w74x-v6f9-j3xg","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-w74x-v6f9-j3xg"},{"rule_id":"osv/GHSA-wjr9-j795-jxcr","severity":"medium","message":"fast-uri@3.1.5 (npm) is affected by GHSA-wjr9-j795-jxcr","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-wjr9-j795-jxcr"},{"rule_id":"osv/GHSA-46wx-v44x-9hh2","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-46wx-v44x-9hh2","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-46wx-v44x-9hh2"},{"rule_id":"osv/GHSA-4h7h-rv7c-7m2v","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-4h7h-rv7c-7m2v","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-4h7h-rv7c-7m2v"},{"rule_id":"osv/GHSA-4m76-xfj5-7975","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-4m76-xfj5-7975","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-4m76-xfj5-7975"},{"rule_id":"osv/GHSA-5r4p-p66f-jhc7","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-5r4p-p66f-jhc7","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-5r4p-p66f-jhc7"},{"rule_id":"osv/GHSA-crvj-82cr-hjcx","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-crvj-82cr-hjcx","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-crvj-82cr-hjcx"},{"rule_id":"osv/GHSA-g6gw-c38x-mqfc","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-g6gw-c38x-mqfc","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-g6gw-c38x-mqfc"},{"rule_id":"osv/GHSA-gqvv-2mrq-wpjv","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-gqvv-2mrq-wpjv","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-gqvv-2mrq-wpjv"},{"rule_id":"osv/GHSA-h7mg-cq63-vhpq","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-h7mg-cq63-vhpq","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-h7mg-cq63-vhpq"},{"rule_id":"osv/GHSA-hxh3-vqpv-xpqv","severity":"medium","message":"hono@4.13.1 (npm) is affected by GHSA-hxh3-vqpv-xpqv","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-hxh3-vqpv-xpqv"},{"rule_id":"osv/GHSA-2vr4-cq9g-pvrc","severity":"medium","message":"ip-address@10.4.0 (npm) is affected by GHSA-2vr4-cq9g-pvrc","path":"pnpm-lock.yaml","line":null,"fingerprint":"ip-address@10.4.0 (npm):GHSA-2vr4-cq9g-pvrc"},{"rule_id":"osv/GHSA-h3mg-xc3c-68pw","severity":"medium","message":"ip-address@10.4.0 (npm) is affected by GHSA-h3mg-xc3c-68pw","path":"pnpm-lock.yaml","line":null,"fingerprint":"ip-address@10.4.0 (npm):GHSA-h3mg-xc3c-68pw"},{"rule_id":"osv/GHSA-j6r3-76f7-8jcv","severity":"medium","message":"ip-address@10.4.0 (npm) is affected by GHSA-j6r3-76f7-8jcv","path":"pnpm-lock.yaml","line":null,"fingerprint":"ip-address@10.4.0 (npm):GHSA-j6r3-76f7-8jcv"},{"rule_id":"osv/GHSA-rpw4-54j3-4h4q","severity":"medium","message":"ip-address@10.4.0 (npm) is affected by GHSA-rpw4-54j3-4h4q","path":"pnpm-lock.yaml","line":null,"fingerprint":"ip-address@10.4.0 (npm):GHSA-rpw4-54j3-4h4q"},{"rule_id":"osv/GHSA-rxp7-6hxx-x8q5","severity":"medium","message":"ip-address@10.4.0 (npm) is affected by GHSA-rxp7-6hxx-x8q5","path":"pnpm-lock.yaml","line":null,"fingerprint":"ip-address@10.4.0 (npm):GHSA-rxp7-6hxx-x8q5"},{"rule_id":"osv/GHSA-4mjr-xmp4-gh2g","severity":"medium","message":"qs@6.15.3 (npm) is affected by GHSA-4mjr-xmp4-gh2g","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.15.3 (npm):GHSA-4mjr-xmp4-gh2g"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.15.3 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.15.3 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-x5fp-wj9c-mxmx","severity":"medium","message":"qs@6.15.3 (npm) is affected by GHSA-x5fp-wj9c-mxmx","path":"pnpm-lock.yaml","line":null,"fingerprint":"qs@6.15.3 (npm):GHSA-x5fp-wj9c-mxmx"},{"rule_id":"osv/GHSA-2jfj-6hjv-fm6j","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-2jfj-6hjv-fm6j","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-2jfj-6hjv-fm6j"},{"rule_id":"osv/GHSA-3wwx-pv8p-q78v","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-3wwx-pv8p-q78v","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-3wwx-pv8p-q78v"},{"rule_id":"osv/GHSA-3xpg-4rpp-hhhm","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-3xpg-4rpp-hhhm","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-3xpg-4rpp-hhhm"},{"rule_id":"osv/GHSA-4qv8-2p9j-2685","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-4qv8-2p9j-2685","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-4qv8-2p9j-2685"},{"rule_id":"osv/GHSA-55wc-3pg8-jfw6","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-55wc-3pg8-jfw6","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-55wc-3pg8-jfw6"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-9fm3-97px-rjf6","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-f72v-6w45-q472","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-f72v-6w45-q472","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-f72v-6w45-q472"},{"rule_id":"osv/GHSA-pmjh-fq2x-6v4x","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-pmjh-fq2x-6v4x","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-pmjh-fq2x-6v4x"},{"rule_id":"osv/GHSA-rx4f-c7p8-82vq","severity":"medium","message":"undici@7.29.0 (npm) is affected by GHSA-rx4f-c7p8-82vq","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-rx4f-c7p8-82vq"},{"rule_id":"osv/GHSA-4qv8-2p9j-2685","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-4qv8-2p9j-2685","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-4qv8-2p9j-2685"},{"rule_id":"osv/GHSA-55wc-3pg8-jfw6","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-55wc-3pg8-jfw6","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-55wc-3pg8-jfw6"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-9fm3-97px-rjf6","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-f72v-6w45-q472","severity":"medium","message":"undici@8.10.2 (npm) is affected by GHSA-f72v-6w45-q472","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@8.10.2 (npm):GHSA-f72v-6w45-q472"},{"rule_id":"osv/GHSA-333x-w4r6-6crp","severity":"low","message":"fast-uri@3.1.5 (npm) is affected by GHSA-333x-w4r6-6crp","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-333x-w4r6-6crp"},{"rule_id":"osv/GHSA-xhq7-xmqj-769h","severity":"low","message":"fast-uri@3.1.5 (npm) is affected by GHSA-xhq7-xmqj-769h","path":"pnpm-lock.yaml","line":null,"fingerprint":"fast-uri@3.1.5 (npm):GHSA-xhq7-xmqj-769h"},{"rule_id":"osv/GHSA-3gg2-335m-rxc6","severity":"low","message":"hono@4.13.1 (npm) is affected by GHSA-3gg2-335m-rxc6","path":"pnpm-lock.yaml","line":null,"fingerprint":"hono@4.13.1 (npm):GHSA-3gg2-335m-rxc6"},{"rule_id":"osv/GHSA-2gqq-gqf2-x968","severity":"low","message":"undici@7.29.0 (npm) is affected by GHSA-2gqq-gqf2-x968","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-2gqq-gqf2-x968"},{"rule_id":"osv/GHSA-8436-99hf-9mmv","severity":"low","message":"undici@7.29.0 (npm) is affected by GHSA-8436-99hf-9mmv","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-8436-99hf-9mmv"},{"rule_id":"osv/GHSA-r53p-7pc4-xj5r","severity":"low","message":"undici@7.29.0 (npm) is affected by GHSA-r53p-7pc4-xj5r","path":"pnpm-lock.yaml","line":null,"fingerprint":"undici@7.29.0 (npm):GHSA-r53p-7pc4-xj5r"}],"evidence":[],"data":{"ecosystems":["Go","PyPI","npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":17.0,"findings":29.0,"findings_high":5.0,"findings_medium":11.0,"findings_low":13.0,"penalty":56.2},"findings":[{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release-binaries.yml","line":31,"fingerprint":"cache-poisoning:.github/workflows/release-binaries.yml:31"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release-binaries.yml","line":34,"fingerprint":"cache-poisoning:.github/workflows/release-binaries.yml:34"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release-packages.yml","line":52,"fingerprint":"cache-poisoning:.github/workflows/release-packages.yml:52"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release-packages.yml","line":186,"fingerprint":"cache-poisoning:.github/workflows/release-packages.yml:186"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release-packages.yml","line":456,"fingerprint":"cache-poisoning:.github/workflows/release-packages.yml:456"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":5,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:5"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":15,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:15"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":30,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:30"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":42,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:42"},{"rule_id":"zizmor/dependabot-cooldown","severity":"medium","message":"insufficient cooldown in Dependabot updates [confidence high]","path":".github/dependabot.yml","line":83,"fingerprint":"dependabot-cooldown:.github/dependabot.yml:83"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":24,"fingerprint":"artipacked:.github/workflows/ci.yml:24"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":99,"fingerprint":"artipacked:.github/workflows/ci.yml:99"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":173,"fingerprint":"artipacked:.github/workflows/ci.yml:173"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":223,"fingerprint":"artipacked:.github/workflows/ci.yml:223"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/profiles.yml","line":20,"fingerprint":"artipacked:.github/workflows/profiles.yml:20"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/provider-catalog.yml","line":20,"fingerprint":"artipacked:.github/workflows/provider-catalog.yml:20"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/agent-conformance.yml","line":47,"fingerprint":"adhoc-packages:.github/workflows/agent-conformance.yml:47"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/ci.yml","line":67,"fingerprint":"adhoc-packages:.github/workflows/ci.yml:67"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/middleware-canary.yml","line":40,"fingerprint":"adhoc-packages:.github/workflows/middleware-canary.yml:40"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/profiles.yml","line":36,"fingerprint":"adhoc-packages:.github/workflows/profiles.yml:36"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release-packages.yml","line":228,"fingerprint":"adhoc-packages:.github/workflows/release-packages.yml:228"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release-packages.yml","line":234,"fingerprint":"adhoc-packages:.github/workflows/release-packages.yml:234"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release-packages.yml","line":243,"fingerprint":"adhoc-packages:.github/workflows/release-packages.yml:243"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release-packages.yml","line":264,"fingerprint":"adhoc-packages:.github/workflows/release-packages.yml:264"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release-packages.yml","line":466,"fingerprint":"adhoc-packages:.github/workflows/release-packages.yml:466"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/verify-codex.yml","line":45,"fingerprint":"adhoc-packages:.github/workflows/verify-codex.yml:45"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/verify-codex.yml","line":48,"fingerprint":"adhoc-packages:.github/workflows/verify-codex.yml:48"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release-packages.yml","line":238,"fingerprint":"template-injection:.github/workflows/release-packages.yml:238"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release-packages.yml","line":265,"fingerprint":"template-injection:.github/workflows/release-packages.yml:265"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":1.0,"check:dependency_updates":1.0,"check:signed_commits":1.0,"check:lockfiles":0.0,"signed_commit_share":0.97,"unpinned_manifests":14.0},"findings":[],"evidence":[{"kind":"posture","description":"Security policy: SECURITY.md","ref":"SECURITY.md","url":null,"weight":0.0},{"kind":"posture","description":"Dependency updates: .github/dependabot.yml","ref":".github/dependabot.yml","url":null,"weight":0.0},{"kind":"posture","description":"browse/package.json has no lockfile alongside it (unpinned dependencies)","ref":"browse/package.json","url":null,"weight":0.3},{"kind":"posture","description":"mcp/package.json has no lockfile alongside it (unpinned dependencies)","ref":"mcp/package.json","url":null,"weight":0.3},{"kind":"posture","description":"mem/js/package.json has no lockfile alongside it (unpinned dependencies)","ref":"mem/js/package.json","url":null,"weight":0.3},{"kind":"posture","description":"packages/cli/package.json has no lockfile alongside it (unpinned dependencies)","ref":"packages/cli/package.json","url":null,"weight":0.3},{"kind":"posture","description":"packages/middleware/typescript/package.json has no lockfile alongside it (unpinned dependencies)","ref":"packages/middleware/typescript/package.json","url":null,"weight":0.3},{"kind":"posture","description":"packages/shared/contracts/package.json has no lockfile alongside it (unpinned dependencies)","ref":"packages/shared/contracts/package.json","url":null,"weight":0.3},{"kind":"posture","description":"packages/subagent-tax/package.json has no lockfile alongside it (unpinned dependencies)","ref":"packages/subagent-tax/package.json","url":null,"weight":0.3},{"kind":"posture","description":"shared/provider-catalog/package.json has no lockfile alongside it (unpinned dependencies)","ref":"shared/provider-catalog/package.json","url":null,"weight":0.3},{"kind":"posture","description":"shrink/package.json has no lockfile alongside it (unpinned dependencies)","ref":"shrink/package.json","url":null,"weight":0.3},{"kind":"posture","description":"skills/caveman-explore/package.json has no lockfile alongside it (unpinned dependencies)","ref":"skills/caveman-explore/package.json","url":null,"weight":0.3},{"kind":"posture","description":"skills/caveman-learn/package.json has no lockfile alongside it (unpinned dependencies)","ref":"skills/caveman-learn/package.json","url":null,"weight":0.3},{"kind":"posture","description":"src/hooks/package.json has no lockfile alongside it (unpinned dependencies)","ref":"src/hooks/package.json","url":null,"weight":0.3},{"kind":"posture","description":"src/mcp-servers/caveman-shrink/package.json has no lockfile alongside it (unpinned dependencies)","ref":"src/mcp-servers/caveman-shrink/package.json","url":null,"weight":0.3},{"kind":"posture","description":"src/plugins/opencode/package.json has no lockfile alongside it (unpinned dependencies)","ref":"src/plugins/opencode/package.json","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":1.0,"binary_assets":12.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v4.1.0 ships caveman-browser-1.3.0.zip (429 downloads)","ref":"caveman-browser-1.3.0.zip","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.1.0/caveman-browser-1.3.0.zip","weight":0.0},{"kind":"binary-release-asset","description":"release v4.1.0 ships caveman-browser-firefox-1.3.0.zip (89 downloads)","ref":"caveman-browser-firefox-1.3.0.zip","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.1.0/caveman-browser-firefox-1.3.0.zip","weight":0.0},{"kind":"binary-release-asset","description":"release bin-v4.1.0 ships THIRD_PARTY_GO_LICENSES.tar.gz (669 downloads)","ref":"THIRD_PARTY_GO_LICENSES.tar.gz","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.1.0/THIRD_PARTY_GO_LICENSES.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release bin-v4.0.2 ships THIRD_PARTY_GO_LICENSES.tar.gz (1248 downloads)","ref":"THIRD_PARTY_GO_LICENSES.tar.gz","url":"https://github.com/JuliusBrussee/caveman/releases/download/bin-v4.0.2/THIRD_PARTY_GO_LICENSES.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v4.0.1 ships caveman-browser-1.3.0.zip (1344 downloads)","ref":"caveman-browser-1.3.0.zip","url":"https://github.com/JuliusBrussee/caveman/releases/download/v4.0.1/caveman-browser-1.3.0.zip","weight":0.0}],"data":{"signals":["binary-release-assets"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":7572.0,"function_nloc":98061.0,"mean_ccn":4.94,"p90_ccn":11.0,"complex_functions":415.0,"long_functions":59.0,"many_param_functions":46.0,"risky_nloc_share":0.275},"findings":[],"evidence":[{"kind":"complex-function","description":"proxy in proxy/internal/gateway/proxy.go: complexity 266, 711 lines","ref":"proxy/internal/gateway/proxy.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/internal/gateway/proxy.go#L131","weight":1.0},{"kind":"complex-function","description":"uninstall in installer/install.js: complexity 161, 378 lines","ref":"installer/install.js","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/installer/install.js#L2236","weight":1.0},{"kind":"complex-function","description":"onboard in packages/cli/src/modules/onboard.ts: complexity 82, 147 lines","ref":"packages/cli/src/modules/onboard.ts","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/cli/src/modules/onboard.ts#L123","weight":1.0},{"kind":"complex-function","description":"leaves in packages/middleware/python/caveman_middleware/_native.py: complexity 80, 89 lines","ref":"packages/middleware/python/caveman_middleware/_native.py","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/middleware/python/caveman_middleware/_native.py#L107","weight":1.0},{"kind":"complex-function","description":"TransformAnthropic in engine/pixel/transform_anthropic.go: complexity 78, 333 lines","ref":"engine/pixel/transform_anthropic.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/engine/pixel/transform_anthropic.go#L109","weight":1.0},{"kind":"complex-function","description":"chatGPTAuto in proxy/internal/gateway/chatgpt_auto.go: complexity 77, 189 lines","ref":"proxy/internal/gateway/chatgpt_auto.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/internal/gateway/chatgpt_auto.go#L164","weight":1.0},{"kind":"complex-function","description":"BuildStatsReport in proxy/internal/store/stats.go: complexity 76, 209 lines","ref":"proxy/internal/store/stats.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/proxy/internal/store/stats.go#L206","weight":1.0},{"kind":"complex-function","description":"optimize in packages/sdk/python/caveman_cloud/middleware/runtime.py: complexity 75, 137 lines","ref":"packages/sdk/python/caveman_cloud/middleware/runtime.py","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/python/caveman_cloud/middleware/runtime.py#L435","weight":1.0},{"kind":"complex-function","description":"checkPlan in packages/sdk/typescript/src/middleware/validate.ts: complexity 74, 39 lines","ref":"packages/sdk/typescript/src/middleware/validate.ts","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/sdk/typescript/src/middleware/validate.ts#L86","weight":1.0},{"kind":"complex-function","description":"compatForRoutedModel in packages/pi-extension/src/provider-compat.ts: complexity 73, 46 lines","ref":"packages/pi-extension/src/provider-compat.ts","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/packages/pi-extension/src/provider-compat.ts#L49","weight":1.0}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":115584.0,"duplicated_lines":7730.0,"duplicated_share":0.0669,"files":523.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: .codex/codex-sessionstart.js:83 and src/hooks/caveman-activate.js:99","ref":".codex/codex-sessionstart.js","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/.codex/codex-sessionstart.js#L83","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agents/compile.mjs:19 and integrations/compile.mjs:28","ref":"agents/compile.mjs","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/agents/compile.mjs#L19","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agents/delegate/portable-process.mjs:17 and packages/subagent-tax/lib/process-tree.mjs:13","ref":"agents/delegate/portable-process.mjs","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/agents/delegate/portable-process.mjs#L17","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agents/delegate/portable-process.mjs:39 and installer/lib/portable-process.js:36","ref":"agents/delegate/portable-process.mjs","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/agents/delegate/portable-process.mjs#L39","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agents/delegate/portable-process.mjs:75 and packages/cli/src/portable-command.ts:49","ref":"agents/delegate/portable-process.mjs","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/agents/delegate/portable-process.mjs#L75","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: benchmarks/run.py:14 and evals/llm_run.py:67","ref":"benchmarks/run.py","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/benchmarks/run.py#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: browse/bin/caveman-browse.mjs:25 and mcp/bin/caveman-mcp.mjs:25","ref":"browse/bin/caveman-browse.mjs","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/browse/bin/caveman-browse.mjs#L25","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: browse/cdp.go:165 and browse/cdp.go:177","ref":"browse/cdp.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/browse/cdp.go#L165","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: browse/cmd/caveman-browse/main.go:14 and proxy/internal/runstate/runstate.go:17","ref":"browse/cmd/caveman-browse/main.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/browse/cmd/caveman-browse/main.go#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: browse/cmd/caveman-browse/main.go:108 and mcp/cmd/caveman-mcp/main.go:73","ref":"browse/cmd/caveman-browse/main.go","url":"https://github.com/JuliusBrussee/caveman/blob/b4ee71d557d96e3cbc14f88fa6e953a1362865f5/browse/cmd/caveman-browse/main.go#L108","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":175.0,"weighted_findings":163.75,"scanned_lines":148410.0,"category:best-practice":13.0,"category:correctness":141.0,"category:maintainability":21.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":".blocks/release-smoke.py","line":124,"fingerprint":"python.lang.best-practice.arbitrary-sleep:.blocks/release-smoke.py:124"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"benchmarks/run.py","line":135,"fingerprint":"python.lang.best-practice.arbitrary-sleep:benchmarks/run.py:135"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.identical-is-comparison","severity":"high","message":"Found identical comparison using is. Ensure this is what you intended.","path":"benchmarks/run.py","line":318,"fingerprint":"python.lang.correctness.common-mistakes.identical-is-comparison:benchmarks/run.py:318"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `session_for` is defined inside a function but never used","path":"packages/middleware/python/caveman_middleware/openai.py","line":171,"fingerprint":"python.lang.maintainability.useless-inner-function:packages/middleware/python/caveman_middleware/openai.py:171"},{"rule_id":"opengrep/typescript.lang.correctness.useless-ternary","severity":"high","message":"It looks like no matter how event === 'completed' is evaluated, this expression returns usage. This is probably a copy-paste error.","path":"packages/middleware/typescript/src/common.ts","line":152,"fingerprint":"typescript.lang.correctness.useless-ternary:packages/middleware/typescript/src/common.ts:152"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"plugins/caveman/skills/caveman-compress/scripts/compress.py","line":241,"fingerprint":"python.lang.best-practice.arbitrary-sleep:plugins/caveman/skills/caveman-compress/scripts/compress.py:241"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-without-flush","severity":"high","message":"Using 'prompt_file.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'prompt_file.name' is used. Use '.flush()' or close the file before using 'prompt_file.name'.","path":"plugins/caveman/skills/caveman-compress/scripts/compress.py","line":777,"fingerprint":"python.lang.correctness.tempfile.tempfile-without-flush:plugins/caveman/skills/caveman-compress/scripts/compress.py:777"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"skills/caveman-compress/scripts/compress.py","line":241,"fingerprint":"python.lang.best-practice.arbitrary-sleep:skills/caveman-compress/scripts/compress.py:241"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-without-flush","severity":"high","message":"Using 'prompt_file.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'prompt_file.name' is used. Use '.flush()' or close the file before using 'prompt_file.name'.","path":"skills/caveman-compress/scripts/compress.py","line":777,"fingerprint":"python.lang.correctness.tempfile.tempfile-without-flush:skills/caveman-compress/scripts/compress.py:777"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":".github/scripts/verify-codex-route.mjs","line":83,"fingerprint":"javascript.lang.correctness.no-replaceall:.github/scripts/verify-codex-route.mjs:83"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/render_charts.py","line":113,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/render_charts.py:113"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"benchmarks/render_charts.py","line":148,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:benchmarks/render_charts.py:148"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"browse/cmd/caveman-browse/main.go","line":122,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:browse/cmd/caveman-browse/main.go:122"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"browse/cmd/caveman-browse/main.go","line":321,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:browse/cmd/caveman-browse/main.go:321"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"browse/cmd/caveman-browse/main.go","line":454,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:browse/cmd/caveman-browse/main.go:454"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"engine/cmd/caveman-engine/main.go","line":779,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:engine/cmd/caveman-engine/main.go:779"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"evals/plot.py","line":134,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:evals/plot.py:134"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"extension/scripts/firefox-e2e.mjs","line":235,"fingerprint":"javascript.lang.correctness.no-stringify-keys:extension/scripts/firefox-e2e.mjs:235"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"installer/install.js","line":2094,"fingerprint":"javascript.lang.best-practice.lazy-load-module:installer/install.js:2094"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"installer/lib/owned-install.js","line":23,"fingerprint":"javascript.lang.correctness.no-replaceall:installer/lib/owned-install.js:23"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"mcp/cmd/caveman-mcp/main.go","line":85,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:mcp/cmd/caveman-mcp/main.go:85"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"mem/store.go","line":101,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:mem/store.go:101"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-confirm","severity":"medium","message":"found confirm() call; should this be in production code?","path":"packages/cli/src/modules/onboard.ts","line":287,"fingerprint":"javascript.lang.best-practice.javascript-confirm:packages/cli/src/modules/onboard.ts:287"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/cli/src/modules/provider-logins.ts","line":133,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/cli/src/modules/provider-logins.ts:133"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/cli/src/modules/provider-logins.ts","line":133,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/cli/src/modules/provider-logins.ts:133"},{"rule_id":"opengrep/python.lang.correctness.cannot-cache-generators","severity":"medium","message":"Generators can only be consumed once, so in most cases, caching them will cause an error when the already-consumed generator is retrieved from cache.","path":"packages/middleware/python/caveman_middleware/_httpx2.py","line":26,"fingerprint":"python.lang.correctness.cannot-cache-generators:packages/middleware/python/caveman_middleware/_httpx2.py:26"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_stream_consumed\" a function or an attribute? If it is a function, you may have meant response.is_stream_consumed() because response.is_stream_consumed is always true.","path":"packages/middleware/python/caveman_middleware/_httpx2.py","line":194,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/_httpx2.py:194"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_registered\" a function or an attribute? If it is a function, you may have meant self.is_registered() because self.is_registered is always true.","path":"packages/middleware/python/caveman_middleware/_native.py","line":291,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/_native.py:291"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_registered\" a function or an attribute? If it is a function, you may have meant self.is_registered() because self.is_registered is always true.","path":"packages/middleware/python/caveman_middleware/_native.py","line":298,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/_native.py:298"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_error\" a function or an attribute? If it is a function, you may have meant result.is_error() because result.is_error is always true.","path":"packages/middleware/python/caveman_middleware/autogen.py","line":266,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/autogen.py:266"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_litellm\" a function or an attribute? If it is a function, you may have meant delegate.is_litellm() because delegate.is_litellm is always true.","path":"packages/middleware/python/caveman_middleware/crewai.py","line":156,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/crewai.py:156"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_litellm\" a function or an attribute? If it is a function, you may have meant self.delegate.is_litellm() because self.delegate.is_litellm is always true.","path":"packages/middleware/python/caveman_middleware/crewai.py","line":331,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/crewai.py:331"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_error\" a function or an attribute? If it is a function, you may have meant result.is_error() because result.is_error is always true.","path":"packages/middleware/python/caveman_middleware/llama_index.py","line":221,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/llama_index.py:221"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_error\" a function or an attribute? If it is a function, you may have meant result.tool_output.is_error() because result.tool_output.is_error is always true.","path":"packages/middleware/python/caveman_middleware/llama_index.py","line":752,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/llama_index.py:752"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_error\" a function or an attribute? If it is a function, you may have meant result.is_error() because result.is_error is always true.","path":"packages/middleware/python/caveman_middleware/mcp.py","line":110,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:packages/middleware/python/caveman_middleware/mcp.py:110"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/google.ts","line":64,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/google.ts:64"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/google.ts","line":132,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/google.ts:132"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/langchain-model.ts","line":89,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/langchain-model.ts:89"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/langchain-model.ts","line":92,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/langchain-model.ts:92"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/langchain-model.ts","line":92,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/langchain-model.ts:92"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/langchain-model.ts","line":94,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/langchain-model.ts:94"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/mcp.ts","line":111,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/mcp.ts:111"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/mcp.ts","line":111,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/mcp.ts:111"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":75,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:75"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":75,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:75"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":76,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:76"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":77,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:77"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":78,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:78"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/middleware/typescript/src/strands.ts","line":121,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/middleware/typescript/src/strands.ts:121"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"packages/sdk/python/caveman_cloud/core.py","line":359,"fingerprint":"python.lang.maintainability.return-not-in-function:packages/sdk/python/caveman_cloud/core.py:359"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1147,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1147"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1695,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1695"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1697,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1697"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1698,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1698"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1704,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1704"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1706,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1706"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1707,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1707"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1707,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1707"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1712,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1712"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1712,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1712"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1713,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1713"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1716,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1716"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1716,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1716"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1717,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1717"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1717,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1717"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1718,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1718"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1718,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1718"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1776,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1776"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1776,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1776"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1779,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1779"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1781,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1781"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1787,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1787"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1791,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1791"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1792,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1792"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1793,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1793"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/index.ts","line":1794,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/index.ts:1794"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":510,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:510"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":510,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:510"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":511,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:511"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":511,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:511"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":511,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:511"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/sdk/typescript/src/middleware/runtime.ts","line":511,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/sdk/typescript/src/middleware/runtime.ts:511"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/shared/contracts/conformance/run.mjs","line":255,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/shared/contracts/conformance/run.mjs:255"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/shared/contracts/scripts/validate-schemas.mjs","line":82,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/shared/contracts/scripts/validate-schemas.mjs:82"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/shared/contracts/scripts/validate-schemas.mjs","line":82,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/shared/contracts/scripts/validate-schemas.mjs:82"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/shared/contracts/scripts/validate-schemas.mjs","line":201,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/shared/contracts/scripts/validate-schemas.mjs:201"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/shared/contracts/scripts/validate-schemas.mjs","line":201,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/shared/contracts/scripts/validate-schemas.mjs:201"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/subagent-tax/lib/sink.mjs","line":112,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/subagent-tax/lib/sink.mjs:112"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/subagent-tax/lib/sink.mjs","line":172,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/subagent-tax/lib/sink.mjs:172"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/subagent-tax/lib/sink.mjs","line":215,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/subagent-tax/lib/sink.mjs:215"},{"rule_id":"opengrep/javascript.lang.correctness.no-replaceall","severity":"medium","message":"The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, \"good\") instead of mystring.replaceAll(\"bad\", \"good\") (https://discourse.thre","path":"packages/subagent-tax/lib/sink.mjs","line":217,"fingerprint":"javascript.lang.correctness.no-replaceall:packages/subagent-tax/lib/sink.mjs:217"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"packages/subagent-tax/lib/sink.mjs","line":274,"fingerprint":"javascript.lang.correctness.no-stringify-keys:packages/subagent-tax/lib/sink.mjs:274"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant result.is_valid() because result.is_valid is always true.","path":"plugins/caveman/skills/caveman-compress/scripts/benchmark.py","line":34,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:plugins/caveman/skills/caveman-compress/scripts/benchmark.py:34"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant result.is_valid() because result.is_valid is always true.","path":"plugins/caveman/skills/caveman-compress/scripts/compress.py","line":1273,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:plugins/caveman/skills/caveman-compress/scripts/compress.py:1273"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant self.is_valid() because self.is_valid is always true.","path":"plugins/caveman/skills/caveman-compress/scripts/validate.py","line":45,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:plugins/caveman/skills/caveman-compress/scripts/validate.py:45"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant self.is_valid() because self.is_valid is always true.","path":"plugins/caveman/skills/caveman-compress/scripts/validate.py","line":50,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:plugins/caveman/skills/caveman-compress/scripts/validate.py:50"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant res.is_valid() because res.is_valid is always true.","path":"plugins/caveman/skills/caveman-compress/scripts/validate.py","line":430,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:plugins/caveman/skills/caveman-compress/scripts/validate.py:430"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/learn_wire.go","line":80,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/learn_wire.go:80"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/main.go","line":1079,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/main.go:1079"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/main.go","line":1188,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/main.go:1188"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/main.go","line":1217,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/main.go:1217"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/main.go","line":1349,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/main.go:1349"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/cmd/caveman-proxy/recovery_store.go","line":39,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/cmd/caveman-proxy/recovery_store.go:39"},{"rule_id":"opengrep/go.lang.best-practice.hidden-goroutine","severity":"medium","message":"Detected a hidden goroutine. Function invocations are expected to synchronous, and this function will execute asynchronously because all it does is call a goroutine. Instead, remove the internal goroutine and call the function using 'go'.","path":"proxy/internal/cloudlink/warm.go","line":54,"fingerprint":"go.lang.best-practice.hidden-goroutine:proxy/internal/cloudlink/warm.go:54"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/gateway/capture.go","line":83,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/gateway/capture.go:83"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativehook/hook.go","line":368,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativehook/hook.go:368"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/marker.go","line":31,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/marker.go:31"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/marker.go","line":34,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/marker.go:34"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/receipt.go","line":212,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/receipt.go:212"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/receipt.go","line":215,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/receipt.go:215"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/server_unix.go","line":46,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/server_unix.go:46"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/nativeruntime/server_unix.go","line":49,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/nativeruntime/server_unix.go:49"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/pool/chatgpt.go","line":348,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/pool/chatgpt.go:348"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/pool/pool.go","line":238,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/pool/pool.go:238"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/pool/pool.go","line":283,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/pool/pool.go:283"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/runstate/runstate.go","line":146,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/runstate/runstate.go:146"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/runstate/runstate.go","line":149,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/runstate/runstate.go:149"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/report.go","line":43,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/report.go:43"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/report.go","line":84,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/report.go:84"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/report.go","line":102,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/report.go:102"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/report.go","line":120,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/report.go:120"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/stats_report.go","line":25,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/stats_report.go:25"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"proxy/internal/store/trial_store.go","line":570,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:proxy/internal/store/trial_store.go:570"},{"rule_id":"opengrep/go.lang.correctness.permissions.incorrect-default-permission","severity":"medium","message":"Detected file permissions that are set to more than `0600` (user/owner can read and write). Setting file permissions to higher than `0600` is most likely unnecessary and violates the principle of least privilege. Instead, set permissions to be `0600` or less for os.Chmod, os.Mkdir, os.OpenFile, os.M","path":"shrink/shrink.go","line":91,"fingerprint":"go.lang.correctness.permissions.incorrect-default-permission:shrink/shrink.go:91"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant result.is_valid() because result.is_valid is always true.","path":"skills/caveman-compress/scripts/benchmark.py","line":34,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:skills/caveman-compress/scripts/benchmark.py:34"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant result.is_valid() because result.is_valid is always true.","path":"skills/caveman-compress/scripts/compress.py","line":1273,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:skills/caveman-compress/scripts/compress.py:1273"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant self.is_valid() because self.is_valid is always true.","path":"skills/caveman-compress/scripts/validate.py","line":45,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:skills/caveman-compress/scripts/validate.py:45"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant self.is_valid() because self.is_valid is always true.","path":"skills/caveman-compress/scripts/validate.py","line":50,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:skills/caveman-compress/scripts/validate.py:50"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_valid\" a function or an attribute? If it is a function, you may have meant res.is_valid() because res.is_valid is always true.","path":"skills/caveman-compress/scripts/validate.py","line":430,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:skills/caveman-compress/scripts/validate.py:430"},{"rule_id":"opengrep/javascript.lang.correctness.no-stringify-keys","severity":"medium","message":"JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead.","path":"skills/compile.mjs","line":287,"fingerprint":"javascript.lang.correctness.no-stringify-keys:skills/compile.mjs:287"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/hooks/caveman-activate.js","line":37,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/hooks/caveman-activate.js:37"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/hooks/caveman-activate.js","line":47,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/hooks/caveman-activate.js:47"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/hooks/caveman-host-session-start.js","line":29,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/hooks/caveman-host-session-start.js:29"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/hooks/caveman-mode-tracker.js","line":20,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/hooks/caveman-mode-tracker.js:20"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/hooks/caveman-mode-tracker.js","line":29,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/hooks/caveman-mode-tracker.js:29"},{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"src/tools/caveman-init.js","line":97,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/tools/caveman-init.js:97"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":".github/scripts/verify-codex-route.mjs","line":62,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:.github/scripts/verify-codex-route.mjs:62"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":".github/scripts/verify-codex-route.mjs","line":62,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:.github/scripts/verify-codex-route.mjs:62"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"agents/compile.mjs","line":567,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:agents/compile.mjs:567"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"agents/compile.mjs","line":567,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:agents/compile.mjs:567"},{"rule_id":"opengrep/go.lang.correctness.eqeq-is-bad","severity":"low","message":"Detected useless comparison operation `dropped == dropped` or `dropped != dropped`. This will always return 'True' or 'False' and therefore is not necessary. Instead, remove this comparison operation or use another comparison expression that is not deterministic.","path":"engine/compressors/config.go","line":99,"fingerprint":"go.lang.correctness.eqeq-is-bad:engine/compressors/config.go:99"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":147,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:147"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":147,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:147"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":216,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:216"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":216,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:216"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":226,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:226"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"extension/scripts/firefox-e2e.mjs","line":226,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:extension/scripts/firefox-e2e.mjs:226"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"installer/install.js","line":34,"fingerprint":"javascript.lang.correctness.useless-assignment:installer/install.js:34"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"installer/install.js","line":1348,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:installer/install.js:1348"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"integrations/compile.mjs","line":152,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:integrations/compile.mjs:152"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"integrations/compile.mjs","line":152,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:integrations/compile.mjs:152"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/cli/src/agent-mcp.ts","line":572,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/cli/src/agent-mcp.ts:572"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/cli/src/agent-mcp.ts","line":572,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/cli/src/agent-mcp.ts:572"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/cli/src/agent-mcp.ts","line":580,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/cli/src/agent-mcp.ts:580"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/cli/src/agent-mcp.ts","line":580,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/cli/src/agent-mcp.ts:580"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/middleware/typescript/scripts/cjs-types.mjs","line":9,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/middleware/typescript/scripts/cjs-types.mjs:9"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/middleware/typescript/scripts/cjs-types.mjs","line":9,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/middleware/typescript/scripts/cjs-types.mjs:9"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/sdk/typescript/scripts/cjs-types.mjs","line":25,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/sdk/typescript/scripts/cjs-types.mjs:25"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/sdk/typescript/scripts/cjs-types.mjs","line":25,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/sdk/typescript/scripts/cjs-types.mjs:25"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:104"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:104"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:104"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":104,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:104"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":166,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:166"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":166,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:166"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":167,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:167"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":168,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:168"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":169,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:169"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"packages/subagent-tax/lib/harnesses.mjs","line":173,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:packages/subagent-tax/lib/harnesses.mjs:173"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"scripts/probe-native-codex-recovery.mjs","line":124,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/probe-native-codex-recovery.mjs:124"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"scripts/probe-native-codex-recovery.mjs","line":124,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:scripts/probe-native-codex-recovery.mjs:124"},{"rule_id":"opengrep/javascript.lang.correctness.missing-template-string-indicator","severity":"low","message":"This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'?","path":"skills/compile.mjs","line":166,"fingerprint":"javascript.lang.correctness.missing-template-string-indicator:skills/compile.mjs:166"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"src/mcp-servers/caveman-shrink/index.js","line":29,"fingerprint":"javascript.lang.correctness.useless-assignment:src/mcp-servers/caveman-shrink/index.js:29"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"src/mcp-servers/caveman-shrink/index.js","line":30,"fingerprint":"javascript.lang.correctness.useless-assignment:src/mcp-servers/caveman-shrink/index.js:30"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"src/mcp-servers/caveman-shrink/index.js","line":31,"fingerprint":"javascript.lang.correctness.useless-assignment:src/mcp-servers/caveman-shrink/index.js:31"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":1.0,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":1.0,"check:tests_cochange":1.0,"test_lines":174281.0,"source_lines":150851.0,"test_ratio":1.1553,"ci_files":17.0,"cochange_share":0.8677,"cochange_commits":189.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/agent-conformance.yml","ref":".github/workflows/agent-conformance.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/ci.yml","ref":".github/workflows/ci.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/codeql.yml","ref":".github/workflows/codeql.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/docs-links.yml","ref":".github/workflows/docs-links.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/engine-ci.yml","ref":".github/workflows/engine-ci.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/middleware-canary.yml","ref":".github/workflows/middleware-canary.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/middleware-conformance.yml","ref":".github/workflows/middleware-conformance.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/middleware-python.yml","ref":".github/workflows/middleware-python.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/profiles.yml","ref":".github/workflows/profiles.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/provider-catalog.yml","ref":".github/workflows/provider-catalog.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (pytest, npm test, npm run test, go test, unittest)","ref":null,"url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (pyright, go vet)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["pytest","npm test","npm run test","go test","unittest"],"lint_commands":["pyright","go vet"]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":1.0,"check:changelog":0.0,"readme_lines":265.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0},{"kind":"docs","description":"CONTRIBUTING.md","ref":"CONTRIBUTING.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.4472,"check:low_escape_density":0.0,"escapes":221.0,"escapes_per_kloc":6.84},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: packages/pi-extension/tsconfig.json","ref":"packages/pi-extension/tsconfig.json","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":145193.0,"other_lines":5658.0,"files_blamed":523.0,"blame_failures":0.0,"quality:ai_findings":161.0,"quality:ai_per_kloc":1.109,"quality:other_findings":14.0,"quality:other_per_kloc":2.474,"quality:ratio":0.45,"security:ai_findings":254.0,"security:ai_per_kloc":1.749,"security:other_findings":46.0,"security:other_per_kloc":8.13,"security:ratio":0.22},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}