{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-14T00:10:56.105472Z","repo":{"ref":{"host":"github.com","owner":"kaitranntt","name":"ccs"},"default_branch":"main","clone_url":"https://github.com/kaitranntt/ccs.git","html_url":"https://github.com/kaitranntt/ccs","description":"Switch between Claude accounts, Gemini, Copilot, OpenRouter (300+ models) via CLIProxyAPI OAuth proxy. Visual dashboard, remote proxy support, WebSearch fallback. Zero-config to production-ready.","stars":2900,"forks":278,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":45663,"primary_language":"TypeScript","license_spdx":"MIT","created_at":"2025-11-01T21:01:53Z","pushed_at":"2026-11-04T20:10:10Z","security_policy_url":"https://github.com/kaitranntt/ccs/security/policy","distribution":{"owner_created_at":"2020-02-20T00:18:23Z","owner_type":"User","release_assets":[]}},"commit_sha":"cd2e02288675cbb9fcda620b44ec84d7d4a94919","profile":{"lines_by_language":{"TypeScript":407879,"JavaScript":31629,"Swift":7483,"Shell":4791,"PowerShell":2783},"files_by_category":{"source":1273,"test":669,"config":73,"binary":65,"other":54,"docs":47},"source_lines":276070,"test_lines":178495},"pillars":{"ai_provenance":{"score":6.8,"confidence":0.95,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.0685,"suspected_share":0.4864,"estimated_share":0.0685,"ai_artifacts":7.0,"flagged_work_units":106.0,"flagged_releases":0.0},"summary":"Explicit AI attribution on 7% of first-party code added; an estimated 7% including velocity signals."},"quality":{"score":69.7,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":44.5,"duplication":63.6,"lint":78.8,"testing":70.0,"docs":100.0,"type_safety":100.0,"process":null},"summary":"Code quality is adequate: test-to-source ratio 0.65, no CI test run detected; 27% of function code in complex or long functions; 8% duplicated lines. Weakest area: complexity."},"security":{"score":34.1,"confidence":0.85,"coverage":1.0,"label":"poor","breakdown":{"secrets":62.7,"sast":54.7,"dependencies":0.2,"ci_actions":0.0,"posture":40.0,"scorecard":null},"summary":"Security posture is poor: 207 known vulnerabilities in 52 dependencies; 59 high-severity SAST findings; 68 high-severity workflow issues. Weakest area: ci actions."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":115.0,"checked":115.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":4018.0,"attributed_commits":263.0,"attributed_commit_share":0.06545545047287207,"effective_loc":651900.0,"attributed_loc":44632.0,"attributed_loc_share":0.0684644884184691,"tools_detected":4.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"OpenAI Codex: 150 attributed commits, 10,529 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Claude Code: 111 attributed commits, 34,087 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Cursor agent: 1 attributed commits, 15 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: message 'claude.ai/code'","ref":"2f5de185f0302bc7ad81e1c0513a18ec738f9a5f","url":"https://github.com/kaitranntt/ccs/commit/2f5de185f0302bc7ad81e1c0513a18ec738f9a5f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: message 'claude.ai/code'","ref":"132fb49406cea8c8415b79c07b196b495dd84a3f","url":"https://github.com/kaitranntt/ccs/commit/132fb49406cea8c8415b79c07b196b495dd84a3f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: on merged branch (43b7885351)","ref":"717ab103c7f78709915e55b58b3331d7d54526c3","url":"https://github.com/kaitranntt/ccs/commit/717ab103c7f78709915e55b58b3331d7d54526c3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6d7bccb333f43b2473c5e1348215e2f429313732","url":"https://github.com/kaitranntt/ccs/commit/6d7bccb333f43b2473c5e1348215e2f429313732","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0f70bb925e0ff21fdf6c71ed0bd841e059d56bb6","url":"https://github.com/kaitranntt/ccs/commit/0f70bb925e0ff21fdf6c71ed0bd841e059d56bb6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"102c389574a8f5af391c110c3a61225ddf67e6a2","url":"https://github.com/kaitranntt/ccs/commit/102c389574a8f5af391c110c3a61225ddf67e6a2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d9033e49a412e05b5aec20a1e5feddbf3b1db09c","url":"https://github.com/kaitranntt/ccs/commit/d9033e49a412e05b5aec20a1e5feddbf3b1db09c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"8bdd4fa49a7151482eacce28d614234a371edc68","url":"https://github.com/kaitranntt/ccs/commit/8bdd4fa49a7151482eacce28d614234a371edc68","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c7274d430b7c17e5fec93dc7d583b6405d817d1b","url":"https://github.com/kaitranntt/ccs/commit/c7274d430b7c17e5fec93dc7d583b6405d817d1b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: message 'claude.ai/code'","ref":"2b780ceae3bcc5a4cbaf809601e6d50fef1ae15b","url":"https://github.com/kaitranntt/ccs/commit/2b780ceae3bcc5a4cbaf809601e6d50fef1ae15b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"fe3447f4871c4b53c2bf0f2f9e9cba9d057002bf","url":"https://github.com/kaitranntt/ccs/commit/fe3447f4871c4b53c2bf0f2f9e9cba9d057002bf","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ea7906b97580533c158e09ff8777f7c66d248ac6","url":"https://github.com/kaitranntt/ccs/commit/ea7906b97580533c158e09ff8777f7c66d248ac6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c30e9ca6179d584174622dce971b05e664ad98f7","url":"https://github.com/kaitranntt/ccs/commit/c30e9ca6179d584174622dce971b05e664ad98f7","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d27b53f235fa16c6d5404b96fc183db4bfc9c1e3","url":"https://github.com/kaitranntt/ccs/commit/d27b53f235fa16c6d5404b96fc183db4bfc9c1e3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"833473c5f61f2df4e6408783a38f18d903384917","url":"https://github.com/kaitranntt/ccs/commit/833473c5f61f2df4e6408783a38f18d903384917","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"34608ce291fa7d763c8a949b88cd79c8074385df","url":"https://github.com/kaitranntt/ccs/commit/34608ce291fa7d763c8a949b88cd79c8074385df","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a5a5b742e4255051b160001985c4c545e85b0cf8","url":"https://github.com/kaitranntt/ccs/commit/a5a5b742e4255051b160001985c4c545e85b0cf8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: on merged branch (16abf18075)","ref":"348d2302985b91eb4beedd397c517eb5ccaefcf6","url":"https://github.com/kaitranntt/ccs/commit/348d2302985b91eb4beedd397c517eb5ccaefcf6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: on merged branch (16abf18075)","ref":"0a80dddb9cf24ea37dd733fa67a58649cb31ebef","url":"https://github.com/kaitranntt/ccs/commit/0a80dddb9cf24ea37dd733fa67a58649cb31ebef","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bb2596e296caa20a69c897ba472b7ada9eac2eda","url":"https://github.com/kaitranntt/ccs/commit/bb2596e296caa20a69c897ba472b7ada9eac2eda","weight":0.9},{"kind":"attributed-commit","description":"OpenAI Codex: PR branch 'codex/propose-fix-for-macos-symlink-bypass'","ref":"1ee7cac5552313018bf14100a3393b90b31dbcfd","url":"https://github.com/kaitranntt/ccs/commit/1ee7cac5552313018bf14100a3393b90b31dbcfd","weight":0.9},{"kind":"attributed-commit","description":"OpenAI Codex: PR branch 'codex/propose-fix-for-default-profile-vulnerability'","ref":"343899f6c1529cbeb6e0a518a61908fd3171f20f","url":"https://github.com/kaitranntt/ccs/commit/343899f6c1529cbeb6e0a518a61908fd3171f20f","weight":0.9},{"kind":"attributed-commit","description":"OpenAI Codex: PR branch 'codex/fix-unbounded-profile-quota-refresh'","ref":"0f9a87619c84efd268b8b717b54fc7cd3a7e8a45","url":"https://github.com/kaitranntt/ccs/commit/0f9a87619c84efd268b8b717b54fc7cd3a7e8a45","weight":0.9},{"kind":"attributed-commit","description":"OpenAI Codex: PR branch 'codex/fix-ccs-bar-shim-security-vulnerability'","ref":"3621f8dcb1454cc9c6d25669cdd46f227282fbe7","url":"https://github.com/kaitranntt/ccs/commit/3621f8dcb1454cc9c6d25669cdd46f227282fbe7","weight":0.9},{"kind":"attributed-commit","description":"OpenAI Codex: PR branch 'codex/fix-agy-websearch-vulnerability'","ref":"05685d1c21bab786a20e5cdccceb326b12a0e091","url":"https://github.com/kaitranntt/ccs/commit/05685d1c21bab786a20e5cdccceb326b12a0e091","weight":0.9}],"data":{"attributed_loc_by_commit":{"e9eb215d1fe7be169b152fbb3d935fe17fe5e865":1176,"f40e9647ec1dee25086c92698df3b7fafc89658c":2926,"4df5a7d357dc029a004b962fafc6d0da0e6079c4":3123,"bdcdd6acc4068a63c006fff411e5d21a64c62f31":8,"e770200cb463d5e41d0d050dae5058d2a909959b":3,"e2e432837ef9d1d144dc3a163233175374c7545f":9,"e97311cd3b00e825fa82dbf4ee059c257248979e":23,"7ea4448abff5a79de768c10ae761a503c39254ff":55,"e148373c6276f3a499f9b04d2bdba8356f52ec4e":4,"0f82b0cb0608300c0ed9c2cc74fbea7f2673c433":80,"d1a0ebee61b8987df85c328d359967e46d1e5226":6,"91e7b9f93787e5b2d45bffdaed75e75c151281e4":4,"4cd9bec9e1b88ebd6b83c6faf9c01399865c639b":34,"709976e897dfd71dbfb13dc1cfb2189076262db0":30,"b3ef76a07b4f1e6d9852e851abff059bb7049a91":881,"a00cf3691ef551f24dcac149c4473d9fdcf28043":54,"9e9cbd48585200c890fe6bb83539fe3a99b25cdc":1660,"e7e95e69700ed4c94c89d88bdf7d674a55053961":6,"c3bfa34703a501b502508dbf41cff75d2cd84dbe":34,"e055890e16fa6d79411faae5f04794807db39c87":133,"b735234beb6c9559c2798ab48d8b876cf5e6c495":14,"bd3be23355f48269d5ce74dbf2b5aaf0eda8cf22":31,"c9604be5e1089c38d10047f65ab531a25ea14fc5":0,"ef2c8bba12e9ab164fa5b4be4c8fbb60617a20a1":13,"dc6977d32e5511b24f6a403f609507e9cd19af19":5,"bd343f3f028bf1c5b0648a7566291fa4b94a09c3":10,"3c534f48cb60448875c02bc0a8444277ca7c89eb":15,"e3dbc6763436e97b6ae2ec6687174fb6c6904dc7":143,"498b66d9cceaf34a36e81403fa15b73093eda2c9":395,"fedb4d4cde4c9027f95364e66daa77b700a5c470":273,"9c0dd3489629014f2fa716a7854ac7dc39a7bb56":0,"881b061dfec497d7120b15d2045cf8e1a8f04bcc":100,"6471cc55d72deeebcbca70d54983b90ae32c999a":281,"27409b789b29a1d008f621f55aab7eed9861d6d4":65,"eb8149e8fa476f279583136be7286dbaf1ac4361":3627,"74f028168dfa4d5c8478679465bb527a7a5f8b7f":400,"cf2375e169d808964a9c80077a657712630e6d35":1279,"e92a2c11bfedd8c4d18cf591baa15e9236aacb68":860,"ff0e7085b815e290d61cff39d8099e61df6a793b":529,"e0b58ee1621df9aa7fddc9b0fcdaef12ee865a0c":0,"68b56839db7914887db6a535e5b0ebb9c2beb8a4":60,"491e9db51ebef504ac8580b0002df31888b9ce8d":244,"a93e0b649447610bce3034c92b6e857c7f8d1e8b":636,"23eccb24f3efa285f6eb3894c0d58a3b0f15c987":24,"1fbb53c4b1355d91b0031f6e5afdec5ec184c14b":188,"f133deb5399367cdadd2901fbb29032d39bb5d36":89,"447b5c8bc1b311530bf533fa836218ae40f991e0":149,"a5ef77a3d8928440d927c84d207477993cae3d6a":0,"ef06564b6063e3837706fd8eae4e6d3f315f7f7d":2,"cb415b41275bdade0570ef6c46fcb10004b6485b":467,"bd073acf4736c337ee9d1d6ff616c27f124ca292":192,"126c30ac1af20b3ac6088b17e773ab5a43711f16":164,"26aa8f4c20f4b60390387b40625ee5e5fa130bf6":0,"492ee5b083520ac3d8e86d1cf26a677a940e5850":1267,"844b5f6c428e2d2db3e301c805790689c4020661":1220,"40c718c584428a9dee61a15e172157935a7ad39f":220,"17a343405629178c1a082132069102b0d8f28e9c":728,"5288387151e150b37990e6098d75c957c6d7e0ac":107,"b477a75d0e110d4611babefcc34aee4a77be5aeb":0,"9d21e83d46da314d78189cbb483c0689b090738e":591,"2099145e2cf0dd530cb144fb296c8e7e66e848c4":0,"77855035f4d0f6cbd37209b25b11c6cc5360b4cd":539,"c708bde817bc11ab87065e514078b2d2f725db9b":0,"4af967559cd985b0829bbb197edcae1bb264bdc0":415,"26baa019e3c54a0cad6cafab7a6002e04e6b0dbe":0,"0038b063ac2eb98255d09e0755096d94bca70813":374,"78f3879e19adfc90464fb2aca00a218b5efe55d5":0,"101396f728dea649e1cb7e0d02e2a9ac8e66729a":316,"d0e6087126fdd9b5a0915229a2c6fd5395e9495c":0,"2f167d8445e294cadb6be8e1190a0d33188f0b22":450,"3c791a467fba9605da341b10bacda460564d9759":0,"1833ed3ad612c290226208e6557eacb282bfd6b2":302,"f6ef59ef96fdce0571e1b6dd0580a5499615fd52":0,"acdb93e1a8733c1c9eac803b04785a8113b1ea26":0,"d8954e9453cb6d9d92f84eeb27db79e839d1e9ce":4,"63082d4aed903d83e09dc3ac85f630367fe7a32b":6,"4cf826efa24dff5b173881452219e92a4f341381":3,"4c46d6c5aede763d51b7bfb4cc025f601d0a8a48":717,"785f439e9bef7166d5ddc70ae518eb31d59ddfc5":26,"2c82c813428db8e36963e57699834d43eff58cad":1,"0e602932f21230111dd5f6b663e7634b7df2dffa":1,"11b12f146d65c32ef6b837b3daddc453d8bca11e":305,"509bd5dbef008e1e0b5cf129744887cee99b9726":34,"3862411bb7ac61fb52a13e53db95ae3b99d49c4b":155,"eb4bbfddf3d3439b716b2c0e69d864087de2fc79":381,"bd588a271df8be95149d6e87eb302139cb2b4cb9":24,"e7174d63bb2ed8b2cf9f013aa69ad178ebbcee4f":2,"f09cdfcf2ba0b14ffd20f69a1c0923343f245a39":308,"d61469edcbdd162d9fce04b0aefe6c0506568974":64,"2273757c837254edd2277c785530835d6db2a977":143,"9c5d4976c51696a86251c507902ea03e4d78a8b0":212,"a840793a9b091b911afc7aa6ee91666a1c258366":160,"349db830dfbc1f91b44f287a2aa40426756338a9":316,"40300c286ec9f40e89cb2b040a416cba04680930":106,"35b6210cd2ef3b79d317cd76926b55a126084b1d":333,"14cbe8fb671c8247adeeeedeba02044e85c2865a":14,"2115742cafa9497e5a2eaa1564b5b3d0dad7a3ae":21,"ece43fc30e735c385098cd20350cb7b4bf9568f9":133,"db175b6807c72f902b358591e609a53764424d5d":52,"857dac8751a759483a03e05247d711e3992dddb1":117,"b7ba3c743f3335a84b8476b151763be55688c15e":46,"100308a3cfb05673c65c4703f8d183cccfdf5d97":153,"fa31bea6722afa35e0fcce3f20522c0586b6313e":192,"24478135dc255f49ab10a89c00bbb5f6830dcfb2":231,"2f50fe393dfb0ce2cf2d27588948e5e93e4b3a88":121,"a86486497b9cc75970c266929fbcd7a274bc1b18":63,"538b6444ff5cdf5109ab15ccc202baec27bff916":90,"9a2a1dde31662051d7b0d7b686cc5b6a56af2156":192,"8051f1614b7dfa3b90eddc0c93eaa14af0138cd0":229,"a526eb469aea22b7fe47baa4d2b9663ca9c1a876":43,"dea4de45fd4d06f3f2c79d2fedcef18caa8fb045":1,"85e76742fe322ec5205c66a42c500dd768c90d28":0,"9a8430f68beef326bf43aa3686952875a0e818fa":0,"c5308ded3b08493036cfc279b04432576f76094e":0,"d82cc13afc68603befee85f8c886d06722fc44d3":2,"4973f7a00f8d3d6e30efb0b59e3ed961216c26c7":3,"b52c0627ca7fa72365161b655cfaa12ba4f2fbc6":184,"29eebff7c50c7287630339358989b4a095b95ebb":33,"f0ec82005446d51434816e5d64b74e3d0c0ea602":5,"fd561b59bc4b1bd46419848a1babc388d31d5321":20,"af7aa0c2dda834237a3aa79661cd62d096c32876":3,"66966f35276556551db52f38af46b5a5f8634c03":22,"b71fe5dd6ec975ac13ea1f33bd00d51df8ac80dc":32,"469c9ffde44ca7bba8c9e33365d92b9a819cdec7":24,"825efb8b109e88c4f778259176cf2485406eb8ed":1,"58df9999db44727695cbc0631f646623eb7e7fb5":0,"3b94ec853d090317211a33abb5cf4f56542ef664":0,"9cd9b796caa953e146077d8402971db7a63a2c8f":65,"ab379e9e1387d73f2672d92c5438f6421c94f4f5":20,"aef331d8efde63f9d9393f3d3a0d0adc16918dcb":0,"d9616447f9c3117fd4882357373c8d820774e3a7":0,"9357f4df26d8ce8a07db9d52d3d5b9c307206d56":8,"0bd2e577b21401f586fb9cbee18de3baa2cfc817":38,"21764d5b90c8db06f5c52a1747e2e41f65da478b":69,"2ec23c6c3a277c9e901cbee588683f4ca7662837":30,"e658e838f906bebebde8484df6f492bcda737abe":7,"2188cdc9907cf0934f074a9503501edd68f708e8":13,"8b3ba5532e07af52f89cf012be63eafe2046e7b8":13,"c322829f44f8bf4edd43fe4d8fc97560b6fe180a":59,"4e7894a3daa5105d2b9c32d456748b1e485d78b7":44,"37fdf90e304507a3fc4e3e0066bb1856a05e74bc":3,"e6f764c79b94209bcbeaabfd8ee94ae364f821e1":18,"6c0f7ac39c17b99bd4259eb4eca35792aea31dff":18,"03a30119d99753e52f4726f2f0a2078118690f3e":82,"cba1414b7e5c038741f0e4a401280d0999afdf61":0,"b0a754179ca7bc0c0d4b70ef119fca1eef827dfc":49,"781c84b04b184cbb57853fa2d0cc892e45c980f2":4,"210ab761e2cbfcaf8d1e75757a517889479c6335":74,"0db9705d7509302f13816607ca055b9c387111b3":14,"90d5ca2cbb07e46364d05e3558f177355ceed975":16,"55cd78bce47f219d03c7b8b7a43963f5eae182b0":4,"7ccea955ad1fcef8b880fafccac2b1a04cad564e":0,"e59ee6df7974964056f48759a3e68d130c580c0a":0,"f985cec3ff5de166592a06cfb9ee376436b10c1e":10,"4cf840ea0adeaee8370753f1bb20fb3c3cbd849f":40,"b35a23a6e4a1d59ae3d1a3fb754d3a31db1e5855":34,"fec84417a61b6cf9a3a2a65a564eaf55e294388e":18,"88fbac3a324e409a26bcbe7cf44810b94ef134e2":31,"8114ff016e5c29c869692a9812b3187f2842ccae":109,"c630ce878ea4ad22d0bfa07d71dd352392db728a":40,"2b59e040c4481d29809798b273ba3cd57915a4b6":133,"457412277b1311decb660620ecdd0cdd78a90e1c":105,"6bba193cdd742a56f3d495a3de5d478df636f444":65,"9a7b26eab745f5099d57685c9a14845a4adb985e":52,"920fba7e1333ff53b7826981bf61b238091dbcf6":44,"5807328cb58e6a60637a797b046afa06262043bf":115,"4f2dd70b8c77d878c01fb3da9e0fae305cff2cf3":21,"dd62027d3f4e11274e4ada2872d942a20c4ef0ea":116,"5776e9c3b1ac584eebcd01c6332196acc6ff7aa4":33,"901bad2ec7faab8d5725a65c96a1de8cb9945b3d":25,"5da63347367564104b2cc514c94d1f1fc1519996":102,"54f3b6860a8e81b11c705bf0cbe05eeb8728e668":21,"88421026c64b0dc86c183f6d71b38ec9e5d89920":9,"4ce6669e26ba4c55e8ca3bc3a9590e128eee2f30":42,"480f3ba46949b4d44b1a36fa5a6dcc2699a311d5":54,"65adab5bec2814a2f7deb681067892def77b03ad":279,"e09e930c38ef17dfecf000804504ab6ed4f38367":170,"6671423d79d7841cc2414caee252fbc67b426189":15,"062e77e55f05b821ff8c6c2b0380a57b5d8594f2":16,"6ecca9b16fbd77cd3fe130cdd131fa90af68ae32":70,"216fae7d577423e6fa13c49efe836df23dbb8af4":58,"92252189b1c2b70b71c104a9ce87d6b2fe293a7d":59,"1f7ed656b2b99ed8c25909bf6a66c1dde744855e":16,"f9dec01cfdc976442eddb60bd092abadf443d1b4":87,"27e16944808cf43210d4505993c9846fdd7309e4":16,"04dc97aaa4690433e1ee0409cf3edc225eaab02c":25,"70601e6364fd1fd0e4cce2fec922ebf33f5ca61f":37,"c0cd44ecaa0546b9ca9f2ce55840c539c8bba676":51,"2a3bc6807fc354ed2a55a386d5012a7536aa765e":17,"f44b651cd6752053e175301c8c8f911b1be882fc":38,"1f1cc056ef038f491d588e56f2f81f7c0a9acfd1":76,"14da76abae511f020bfa67d9b2b57342ebdc27fa":38,"9eb0201b794d2c231416865e28b991c93982db43":106,"c0f5413523c8ae0f7cff25ea4de97c4427c5f989":83,"0ca3e4b35a356e0bbeabb3cb8b996f6eb71d70f7":9,"b3a8ced8feee587db1e3a5587b08fc0340dd140e":9,"89475e39100ed67889943272bedf4e8494c4c06b":9,"8261901b89a4baa351a802417ed3a1a83a75e62b":9,"f592260049a6e7345a3457d990fa952e8fb09ff3":54,"a0870aa40455ae0d1475041d533e909629e9d906":41,"ad47d0f478bb5bf150f524b9ae271e2766c2bb12":9,"f93cb36da68495015428123d4407a9337740aeee":183,"79379a25fe258025705088691f01f690040b053c":9,"bcc68992fad7786a54ffadff5283e343a5e73084":115,"298c89f2c30712daaf782082903fcb7d93a0ab5e":85,"f74561fe9b48c478c002daec39b8797f1dd0ede6":8,"db44845857b62352058b07900de6c04c36c5ba27":74,"d2848d39317950b36ac7038fcf22cb8e953787f9":148,"473aa082f66a843edcea0d7ab9e9f94a2b585b67":40,"ab6c59ba354361d011e3004b9706a5ebe05ebf76":122,"10aff10a67fbe7f4a9835aca8e394e3b62ae2a0c":106,"74dd2f38ccc1adcb4c7cd7fb825f14121b0d96b2":56,"b85a3de26e45ffcfcd4db0f3216a41326a05f285":43,"e3566ed7650b6930fd5515527831c4a3f0924cbb":47,"c776e184344132ad9b5bf6d7fcca88d8251e9414":25,"8bd289bfae3e60c460ad4442d5ef46da51d43d14":78,"50f136a1f0223fd4c39789ffdd273c30b1ad6b06":8,"ba7a2abb799515447c30c99b75ef43b9362793ea":19,"06e83091bec3cf4dff344019d02f836fdb7d2c13":77,"361328c788e13fa471a1f6ced5c44411a131d503":51,"c0409862d2ab89682dae0987f872db745d798763":319,"84ff4d57a4a03ce3dfe105fab3b25c95bc45c0e5":33,"f25a1015ed35df91ed6f145e29eaa111da6b8727":245,"99ed8090b152974dacf1219e94e36246664bd302":450,"66251c52786704088298098ad1562d5611195c43":1,"70a5f68a22e528cb22913e1aa3c62a4d53f63103":0,"e37a87c3a250c5f08793b119d7c0d41e1227bbcd":41,"23b2c3d6afd3170920bc00435f5013b7464e2795":0,"58a90d3633ddac8a932ef71833f9c53723dda7d5":0,"3f1dce30bc1a9743e3baab2cc479e32762d68cb5":28,"4283c4665c7812a7eda343b31f6ff3359f8294b8":165,"bb7c3a4037db6ff14a9511e6638b039437d7d68b":22,"2f1453e39785889ba82cb4183dd0a31f32349f45":53,"396e01ab6fbaddf74949a1777dc34a0ebbdc9677":178,"0527e276b12033a3718e1330120d020e9843188a":248,"f2843ad2ce8f929e46a75ca8692d8f3bb9c0034c":49,"138ead0e1ef36f96f7c7b3c515aaa308f27e389c":38,"0180b624539eda3e34155b4ef3adc169282d3c6a":133,"05685d1c21bab786a20e5cdccceb326b12a0e091":13,"3621f8dcb1454cc9c6d25669cdd46f227282fbe7":78,"0f9a87619c84efd268b8b717b54fc7cd3a7e8a45":168,"343899f6c1529cbeb6e0a518a61908fd3171f20f":124,"1ee7cac5552313018bf14100a3393b90b31dbcfd":117,"bb2596e296caa20a69c897ba472b7ada9eac2eda":2808,"0a80dddb9cf24ea37dd733fa67a58649cb31ebef":47,"348d2302985b91eb4beedd397c517eb5ccaefcf6":0,"a5a5b742e4255051b160001985c4c545e85b0cf8":393,"34608ce291fa7d763c8a949b88cd79c8074385df":345,"833473c5f61f2df4e6408783a38f18d903384917":155,"d27b53f235fa16c6d5404b96fc183db4bfc9c1e3":82,"c30e9ca6179d584174622dce971b05e664ad98f7":95,"ea7906b97580533c158e09ff8777f7c66d248ac6":75,"fe3447f4871c4b53c2bf0f2f9e9cba9d057002bf":130,"2b780ceae3bcc5a4cbaf809601e6d50fef1ae15b":179,"c7274d430b7c17e5fec93dc7d583b6405d817d1b":145,"8bdd4fa49a7151482eacce28d614234a371edc68":58,"d9033e49a412e05b5aec20a1e5feddbf3b1db09c":1,"102c389574a8f5af391c110c3a61225ddf67e6a2":151,"0f70bb925e0ff21fdf6c71ed0bd841e059d56bb6":12,"6d7bccb333f43b2473c5e1348215e2f429313732":0,"717ab103c7f78709915e55b58b3331d7d54526c3":8,"132fb49406cea8c8415b79c07b196b495dd84a3f":81,"2f5de185f0302bc7ad81e1c0513a18ec738f9a5f":445},"tools":{"claude-code":{"name":"Claude Code","commits":111,"loc":34087,"first_seen":1762133265,"last_seen":1793182298},"cursor":{"name":"Cursor agent","commits":1,"loc":15,"first_seen":1769539522,"last_seen":1769539522},"github-copilot":{"name":"GitHub Copilot coding agent","commits":1,"loc":1,"first_seen":1777275401,"last_seen":1777275401},"openai-codex":{"name":"OpenAI Codex","commits":150,"loc":10529,"first_seen":1778590653,"last_seen":1782883608}},"monthly":{"2025-11":{"loc":49588,"attributed_loc":7407},"2025-12":{"loc":121393,"attributed_loc":44},"2026-01":{"loc":33573,"attributed_loc":2886},"2026-02":{"loc":84166,"attributed_loc":538},"2026-03":{"loc":82922,"attributed_loc":654},"2026-04":{"loc":134011,"attributed_loc":16262},"2026-05":{"loc":54507,"attributed_loc":8141},"2026-06":{"loc":54170,"attributed_loc":2990},"2026-07":{"loc":13204,"attributed_loc":3355},"2026-08":{"loc":8934,"attributed_loc":1275},"2026-09":{"loc":2972,"attributed_loc":179},"2026-10":{"loc":5391,"attributed_loc":901},"2026-11":{"loc":7069,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":7.0,"workflow_agents":0.0,"tools_configured":2.0,"earliest_adoption":1762133265.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":".claude/commands/ccs.md (claude-code configuration)","ref":".claude/commands/ccs.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.claude/commands/ccs.md","weight":0.5},{"kind":"ai-artifact","description":".claude/commands/ccs/continue.md (claude-code configuration)","ref":".claude/commands/ccs/continue.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.claude/commands/ccs/continue.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/ccs-delegation/CLAUDE.md.template (claude-code configuration)","ref":".claude/skills/ccs-delegation/CLAUDE.md.template","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.claude/skills/ccs-delegation/CLAUDE.md.template","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/ccs-delegation/SKILL.md (claude-code configuration)","ref":".claude/skills/ccs-delegation/SKILL.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.claude/skills/ccs-delegation/SKILL.md","weight":0.5},{"kind":"ai-artifact","description":".claude/skills/ccs-delegation/references/troubleshooting.md (claude-code configuration)","ref":".claude/skills/ccs-delegation/references/troubleshooting.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.claude/skills/ccs-delegation/references/troubleshooting.md","weight":0.5},{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/CLAUDE.md","weight":0.5},{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"claude-code","path":".claude/commands/ccs.md","added_at":1762133265},{"tool":"claude-code","path":".claude/commands/ccs/continue.md","added_at":1763775104},{"tool":"claude-code","path":".claude/skills/ccs-delegation/CLAUDE.md.template","added_at":1763516294},{"tool":"claude-code","path":".claude/skills/ccs-delegation/SKILL.md","added_at":1762133265},{"tool":"claude-code","path":".claude/skills/ccs-delegation/references/troubleshooting.md","added_at":1763292715},{"tool":"claude-code","path":"CLAUDE.md","added_at":1762147790},{"tool":"generic-agent","path":"AGENTS.md","added_at":1770939601}],"workflows":[],"tools":["claude-code","generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":982.0,"flagged_units":106.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":636433.0,"flagged_loc":334443.0,"flagged_loc_share":0.5254960066495609,"max_loc_per_hour":5538.746690203001,"median_loc_per_hour":214.07176472902034,"pr_timed_units":216.0,"excluded_import_loc":15467.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"10,459 lines of first-party code in ~1.9h (5,539 lines/hour, 11 commit session)","ref":"b49b7d17b20e6f470e0315ad777f61e0f266b246","url":"https://github.com/kaitranntt/ccs/commit/b49b7d17b20e6f470e0315ad777f61e0f266b246","weight":0.6},{"kind":"velocity-burst","description":"3,978 lines of first-party code in ~0.8h (4,976 lines/hour, 6 commit session)","ref":"50c427d339f008e628c05b3f150843425174b425","url":"https://github.com/kaitranntt/ccs/commit/50c427d339f008e628c05b3f150843425174b425","weight":0.6},{"kind":"velocity-burst","description":"1,931 lines of first-party code in ~0.5h (3,862 lines/hour, 31 commit session)","ref":"f44b651cd6752053e175301c8c8f911b1be882fc","url":"https://github.com/kaitranntt/ccs/commit/f44b651cd6752053e175301c8c8f911b1be882fc","weight":0.6},{"kind":"velocity-burst","description":"11,216 lines of first-party code in ~3.3h (3,411 lines/hour, 7 commit session)","ref":"508123166774ecbcb76101bbd4aa6209f693b607","url":"https://github.com/kaitranntt/ccs/commit/508123166774ecbcb76101bbd4aa6209f693b607","weight":0.6},{"kind":"velocity-burst","description":"1,660 lines of first-party code in ~0.5h (3,320 lines/hour, 1 commit session)","ref":"9e9cbd48585200c890fe6bb83539fe3a99b25cdc","url":"https://github.com/kaitranntt/ccs/commit/9e9cbd48585200c890fe6bb83539fe3a99b25cdc","weight":0.6},{"kind":"velocity-burst","description":"11,328 lines of first-party code in ~3.7h (3,045 lines/hour, 11 commit session)","ref":"c70ba89b43a177907592d6dd62ef35cf39e691e0","url":"https://github.com/kaitranntt/ccs/commit/c70ba89b43a177907592d6dd62ef35cf39e691e0","weight":0.6},{"kind":"velocity-burst","description":"2,763 lines of first-party code in ~1.1h (2,599 lines/hour, 1 commit session)","ref":"8ad7653a2e4015e19c37bddbaddc44cc5cd348fd","url":"https://github.com/kaitranntt/ccs/commit/8ad7653a2e4015e19c37bddbaddc44cc5cd348fd","weight":0.6},{"kind":"velocity-burst","description":"2,250 lines of first-party code in ~0.9h (2,427 lines/hour, 1 commit session)","ref":"49b4065186bc223af1b589395808e962b3cf6bb3","url":"https://github.com/kaitranntt/ccs/commit/49b4065186bc223af1b589395808e962b3cf6bb3","weight":0.6},{"kind":"velocity-burst","description":"3,049 lines of first-party code in ~1.3h (2,413 lines/hour, 3 commit session)","ref":"6b53df0147989dac42a76ca53039fc7a714d495c","url":"https://github.com/kaitranntt/ccs/commit/6b53df0147989dac42a76ca53039fc7a714d495c","weight":0.6},{"kind":"velocity-burst","description":"2,797 lines of first-party code in ~1.2h (2,311 lines/hour, 3 commit session)","ref":"6d1c8957212cd0a7412ca0e6a888ce70c9adbdfb","url":"https://github.com/kaitranntt/ccs/commit/6d1c8957212cd0a7412ca0e6a888ce70c9adbdfb","weight":0.6},{"kind":"velocity-burst","description":"3,175 lines of first-party code in ~1.4h (2,304 lines/hour, 6 commit session)","ref":"7e4f08004c00771ee624a09c045f920a5e105358","url":"https://github.com/kaitranntt/ccs/commit/7e4f08004c00771ee624a09c045f920a5e105358","weight":0.6},{"kind":"velocity-burst","description":"2,471 lines of first-party code in ~1.1h (2,291 lines/hour, 3 commit session)","ref":"6724ea52c2cb41ca3d71e663fafce00e040b5425","url":"https://github.com/kaitranntt/ccs/commit/6724ea52c2cb41ca3d71e663fafce00e040b5425","weight":0.6},{"kind":"velocity-burst","description":"11,468 lines of first-party code in ~5.3h (2,159 lines/hour, 7 commit session)","ref":"0139333146c2452e5812eb5e8f16d56d9cc2a19e","url":"https://github.com/kaitranntt/ccs/commit/0139333146c2452e5812eb5e8f16d56d9cc2a19e","weight":0.6},{"kind":"velocity-burst","description":"3,763 lines of first-party code in ~1.8h (2,138 lines/hour, 5 commit session)","ref":"8c5da9f9e878196356e33a799b921b67e3396252","url":"https://github.com/kaitranntt/ccs/commit/8c5da9f9e878196356e33a799b921b67e3396252","weight":0.6},{"kind":"velocity-burst","description":"1,957 lines of first-party code in ~1.0h (2,050 lines/hour, 2 commit session)","ref":"83dab7fea7ed906da93ea4946fb41c1cec829547","url":"https://github.com/kaitranntt/ccs/commit/83dab7fea7ed906da93ea4946fb41c1cec829547","weight":0.6}],"data":{"flagged_loc_by_commit":{"4110e1bfcba12b23c66fc664a8bc71e08ff6daf4":1001,"c17e3e8e3b2fe9b7a2110d25ece9d3695ddc37dd":331,"0a7aa6cb87c126144fa69143f91b0c9a0c953315":1,"f066faca43a117a67ed083a2d71f43de37690863":2,"80a5200cae0b6d77ddce0ea01b0ca620dd157cab":54,"64925d57ca69a839b7066a0e761f6f7f31b65205":153,"101225461f88029a966fe32f578cd361a2270b7b":153,"7aa01eb5f7956eb4a749e399fa6c97d0d3f3576c":234,"66e93fcae1c270ade195b3a2bd55177d45468aea":2957,"b51acb80c54f2e787e27f675b1caf34b992d27fb":388,"03a86160bbb33c544fbe38e4e04d460b269314e3":230,"1b5d3e4825dd59bb0e6a91a03b8e96a5e47d984c":19,"b5bc8d207ca139f4c63b20b15054cce841b03f0e":2,"45f80fd80788166b79995005eef1cbc159404082":1,"657f99bfe8e2a5ca2deabbb0feb81b48b1f6d9c5":1865,"80f9cc644eb6054de5cdf19c56e24dc82112e7f8":1252,"5fae92ac07f6753065ea954caa297fec6cad72b8":3203,"77d026869e30f3b624e8b606620b9fad267ef46b":6349,"ea6695f4a903a8d5a6537eda01f975e6c494eefc":975,"3cb52e6917e9461f91c025cf9b85f5f225998362":1968,"26e279decf846adaea2f9a0c19b04741f504c975":968,"1c3c4aade013d623675fd0278bbb7cc4ea4c817c":28,"49150dc24f3718b885b0f026daac0108deb879e9":278,"0139333146c2452e5812eb5e8f16d56d9cc2a19e":902,"5f71eba6f6b26b34744afe4a19be8d411da8a315":2112,"6e49e0e7e157abd4a38c98553dbe3c16473b57d9":738,"f3ed359050ce66d96c0109cf60c242bfd092114d":239,"6f42a6527b1bf02cbf29ec23525c9f27af6f0c98":172,"57016f3f765f207915161514e1827b18c0b03d5c":269,"6a6f2a24638cdaeec7868e9742da066c0d8cdc6b":2011,"56502ab6a8deae4d7cafe76de46b5cc156398f85":1492,"59758024c92005016087264ed5caa0738cbcb1b2":3529,"707af2f01a67264f7722afcd53ac3f6246aefc89":857,"1b163050f795f1a7a75be203895f1addd6d21f8e":32,"8aae0db7da9e691e9a35d222d6828d6e658c49c4":1140,"4ff6f085122c20209e73fcbda457175fb47958de":536,"49b4065186bc223af1b589395808e962b3cf6bb3":2250,"d81a5e6266731f203c3de1100362fb0822156a39":1504,"824c3baecfb7795f848909240b95bfeb9e6c1b87":179,"b621b8e47bc63f2939b45a243173ce6b414a3ec2":2569,"1dbd7229a569604ecacec4a67f51b5732643c5a3":171,"0d70708658efb4b7e431f95d69c742a28d254ca6":93,"05a6199d839c26ebff6278448825174466fc6518":5,"c09cc35352e6b0a1a0c3596f911908a7d8c8b902":15,"0aa913164211b6cd0ad65b3b546e49edaa0bcc30":2,"790ac3c862c81539a048db5b3f67ed8d86a86cfb":18,"f83051be40514a2084ceb06007eea37b31dd3062":143,"2b1a3b48799eae30b5d0493e5af65edab204f4d8":442,"83570050ef9b68746405df8588e400faa2007c0a":1358,"8c9d669ccec6d2c56c37f4421e5ca6d4c95703e3":348,"46ee1df0836fac4bb6b4b75413846163ced2fc6f":210,"f8648be6d9a9e6e94624fe700dfd9bcd1e2dbc5b":2341,"92b7065e10618285988b4a539b503f54e5cf4baf":2701,"b97c3bfda4ad47787fbce53617a7ee5d5267c2bf":1040,"127e0e60437f47cd445c1ce9ddf03415d51a06c7":37,"349d81a1b0b38a55ad4f245ec88552e5b1ba4359":1,"b87aeaeb01800b11640b14fafa36412d82d0f522":84,"3b8a85c9ef1d4a227b8ea77f9c892ba547e92eed":697,"e5a1f60bb6f97dba5ccd021087941ddf733292d5":41,"d25db1fce10ea9c37b949a8c3c39115f357812d8":279,"c84db38f6a16598955334fc02e0ccbe50187655f":164,"6b04532f419622f9bfcd99d9e499445310f850d8":608,"2145e62ddd18986a1e5f15001e79b80ec21fd80d":21,"d21908ab63aca6e96f14f6e0c78eb882de1177b9":16,"a3e2153498ac8a1a9b84319f6b0835fa8f085b3d":101,"2e77646d607676fee1297948878cd4ba1939c58f":18,"882792a4fbdd48b81840b4bb3f093831fe60de76":57,"7886259c363914224b6717ff4d4a74104141d696":869,"6bd1f420d994e799125f338940689e969e524991":53,"a7450bdffeb9679a02608cb76686e006afa6455f":172,"81463eda65750515e368090347eac78d5d325d49":93,"589cd2c2b7607b1092f6ee1ce4bf044269ba05e5":197,"85cfbde5fd95850a28e962be01fc8655a69e8b1c":26,"770c17e71c7acb6b55f0fdf130d6f0fcc55b4a5d":153,"63bdc3ae3990472d91c190bd29ee95c5181e4d12":6,"5b3d56548a8dfb2e6bb22e14b13f0fb038f2d1fb":451,"ecdad1d6d0c21f47547573f666d68bb6d1164437":515,"9a8eea82c52e4ab6de261ccf566058e1d5d4a77d":54,"fee241d00be4a573e04011dd84712f90ed2d4a1f":47,"f813ad06f61ad6146698d82c4aed4b3a8e90dc5d":73,"170dcdc44f825bb64bedd7eb53fff6127ca94bce":8,"386574715470b8ff10e8d0ffae9231e001810e99":31,"1ef625ee863c517a5fbba21f16cf991bb77be7d7":7,"6b9396fbc6d464bc3e3d6d3bb639e70fe5306074":19,"47836329580711bc551ebc52e20136a38bf15320":94,"5f0fde9a612e7ec1ea13dd5fc807d033bf215fb8":12,"98c21efb5a3b7a39b27fda958691837545235f2d":73,"7653caba710f847ff4c25fcc5b68f1b0381dd2d2":162,"a66abba174eb77555b4443f3e930be30264da7e4":714,"87c2acc416c35b15377e4bce2ee45bc6d20d761a":193,"a9788d02eae1725e0acc18aa64d83dbd7a974a9b":21,"671a9e76fb1dc4b58099e82d94f63fd346b52146":2,"3a7cb0c4e8792c56a50a09a628316c2adb1c4e93":6,"2c6dfe746b19dcbc43492dc8a03870b18a0b03f6":15,"ec6face8db78e9c5cad4f91dcfd39e08665e1415":31,"60c01c7e60f850a28cb995e92aad21dbb09a1acf":22,"f9b89dee12acdec5bf2b53e04eb60708bfee8340":45,"da5dc31ec4e94d98c17aa750f23e079145ac040c":8,"8a0ad5308262ba14fb0fe23ff8a87f3c5ecaa139":119,"5d343260c7307c2d7ac8da92eb5f94c7f764d08c":1091,"248d970cba8671b7c20dc99f8d1a70e4fe113605":1,"2adc272f278b1d80d160ad4d6e1f35e3b61cb156":27,"c9ad0b077934ae8418d4e97b9b02a09044ff898b":107,"96762a9f6ee096570b2fe6136a4431e6ce1d1a47":86,"d43079b72414d7b841a35a934ea39a91527f4172":37,"45207b4e7f92c09d7464dd5c954718254ddfd43a":199,"0f590c80d689c39cea7c94937ed398941dddb533":334,"eff2e2d29f3f227c05103c252823fb9e040b6e49":103,"197174441f6eeca5e3c98e88af43d91ee081f734":19,"68a93f0500f396ebcc65cc133c1a444ae5a0f220":553,"30d564cda66a54c2ac12788559624cb0736cdeb3":364,"f4a50d006c1f6bd284fe743f9a322540763e1848":46,"bd1ff2f059d01d4371b2230d4902bc5ab210055e":239,"8decdfb515075b772970de7c85b34c31baf93754":97,"9a9ef98542bb766087b711fc39e928e347ad9b86":590,"196422cee1f7410d385581f2a28df3faa87d68e3":19,"eeb6913d96fe1a9a0d8721627a07c7f772b67b88":2,"8d8d4c248ad890413d5c4e7e72f9f2a16305f74f":103,"903bc10fea11694474f772356f301b8e4b37298e":10,"96f17e3afba93288b041f6c2883753692b4e9ca1":640,"2d2cd3eca21a49af04ca0b1c1d549e62b6ff5cc9":208,"4036c42687c0e5124825998350431f17ce617442":139,"a12c3d800aedbfd232651cd69c9fcad7b702087d":2381,"9346ff2be96bc5b8660774a814f1113de6b6ee36":618,"22dbfd91c5862c91988cba6cd07eef22e6bf97bf":834,"0eb2030dc2af6e351a88801dc42ce739208bfc2e":1411,"cd107e354c0faff7582d55fadccee0135ea685fe":1264,"5c28935d1e893b643556daf4ff4127d543082fab":1442,"ecb6bb448a74c1f9bc4220c3674e9b4669093a3e":566,"b49b7d17b20e6f470e0315ad777f61e0f266b246":956,"d3c94fe6a2344aac6215fb12952e42ac17837daa":797,"c1f30ae80076e12d1ed536d992c3dc8fad8248ca":927,"5e4fa200df87861e9b078f1696b95569c570ea84":1054,"c3baaa8251e2f4f54b10e68a0a5eb886ec271ace":481,"0341f4f86f5598dc3a86c06d2a05e22b2af3342d":679,"50c427d339f008e628c05b3f150843425174b425":40,"8fd35c8dd619c56a7562c34172a8de3e736be4c8":1597,"4bea5a33468813d9382d6e7cc4270ca97fc965f8":1987,"1b1015cf506a55393e6a48c99711c3ffa7dac37c":1202,"946030c8363ed5e4ac6ebe8b6860d0f8fb006c41":1337,"6778c4d637ca936110107672ff65c02b1366a607":1645,"81196b0ff14a2b119cdd55d49f8a7eeb63abc8f6":756,"a106aa2ee63178e1635df09be5bc2cf2a9da04d7":526,"bef99551230a04831e9a45c5f765ef341ee48b0d":420,"3c7b0e7a651cd81fc38a907c9f480f173df5c785":1811,"b911db8b5fd66e4b4a9e1a9261dfcfa4d74bb1ba":32,"c70ba89b43a177907592d6dd62ef35cf39e691e0":15,"5e1d290865876a7e002b1e6c3c2911e1ac7e49b2":11,"80beb1dadafff283c713d8a7ae556e06a7935882":324,"3cd21bb67b1e357992e662fe666bd35a4062de04":380,"677f9d1e72990e51ed88e00b228369c8be520bbe":150,"d193626e3bfb8962809e2a6daf9697d302a70ff7":309,"116b6a15b0bf7db3a11fb428706dde126814004d":38,"55464c5c5cb67b1cc4c2352130384dc6bc013f4c":59,"dce4b36fc658cb1a692f44152002fe5e1e79f24f":113,"12b534cc495337f2c6e24884cde7d7296a34f380":55,"b32220364eb3b023b6d62fd12a4cc4cd60da85e5":21,"a1cbd4d92397bc15a9cb627bda5cd360603a2bf5":98,"9c90e1dc2cdc8aa11bb82ae4b337f7fed2f4c373":311,"df77745eca747e6877c754f0002a4ba9fd50eb85":33,"adcc3235f0fcd328f3729125e5c5988f9db0937d":326,"05380e21b435d09d0105bee3868d4c73028e558d":139,"418d121577098722a35b060a37388ea2d267dffd":171,"f96116d280d1addcaf5ea5ba5e605f8a3f058ad7":11,"de45fa0da9d1345dff5871a71af7bbedb235076f":26,"294d8d55e517ce064601ec7fd54827da61e0d0f2":45,"068d5772f24510f61ed96fd632e06a08532f2615":1,"883d9fa585f9df3f99c303555115fc53c03724ac":14,"104a40414437a4f32492e4bcc33fdfbbec386e2f":2202,"03d9bf76c474f93f12fcc5dbdaa55c1f215b1e39":655,"8ead6fa0bf05fc8d37563a618c473d7eae808920":576,"3fca9338f9a77ac202dde6095bf70b5094199888":1470,"4f75e105a9ab0c498fb1748829396d695836be65":49,"d0599e8d2c990ad02b270b8ada700db2d1d2e510":60,"a2d01bcc8a15e75c598854c7ddd314f5f17015f6":32,"d86dfab2e76416ea0e662f0702c854f2e11ac541":73,"f15b98950865c01ec6d8d846e3a197bb04e6cf6e":130,"4ee31006225ccec03ba6cf46a2257e122e1af79a":70,"3bf9ebe32a8cebe2bcf5f405bb2c04611b30f997":19,"46f1699b1c6f716d06c1eaa3dc6aac94dd5761ec":648,"5de6cccee08aa06d6533181a1db189a595c5e123":24,"a99b6eb93f06c6788bbf13a196bbca908fa06f4c":106,"c811fdfc7914cc3bde3811ea04281055ebb3e273":8,"0bcaf4bc681e26bd13485678c88b55f4ac471eed":1999,"4cc89eaf8745d67548f032408cd284fd23c3bd5e":528,"9de26820629f5e95a487028a64c1a8a782674448":771,"cb6c21216dcaf0536530f110af75dc20ee7c7738":368,"56500fee98042fb333bd723818d2a3881cd28481":247,"fc23afdfc78a955fc0a1ce7f55d2e2bd098fc6c4":35,"75a4e68f95ba5f8c7c8b647b8d5cf0d013dc425a":568,"9924b2fb25650803c34d26eae151c53a007fa0bb":69,"63633507d2eeeff7c76b73481894dd9f1148ba93":1251,"bf190024f6d3b322ff945655fe65af665181a779":493,"2f5a50b801a48314b76f102ccdd4f71c4d1cf87d":165,"19a57c395c29beb83661edb28286e01211b80261":214,"387c01026731d251459420d70830df418fd1311f":277,"8ce749581ef7667bec29bdfe17d02f824e06bed4":202,"32ef23314a517bcda1816ce0c55691b3dd2616de":5,"eeb0dde8cabf0db5eea758d50ca7fd0b126a6404":129,"0b8635d3ba47cf954ad9cc5fe4d30c64ec77779c":1121,"7947a7ac89b977a34adc9ab72b89b38a61fb5200":216,"606bb7272318bea9f294d9b563369d595b336cf4":103,"3df2619023abee095901636310818a676e02d639":646,"d5f2acaa6e9ee5d12a6035c2da1f975551b6a989":1911,"70caaa00a090fe6a1cfcff3ff47bcb355427ff42":14,"9662490a74297fe1c992e30beb212222abe77799":2,"73824bc99eec2701164837588a231b56b943c536":10,"40caff13ad5e8eaca71bddb05368d2218ce94453":113,"a55e0af8ef440d2cbfa7d9a487727fb1ee874bc6":16,"0e7b9c91900c319a58ec698306be01bb1f665432":13,"2b0717ed53011dcb67cc03ad09a00cfabb682f1e":945,"cb8de2c8e8da2ac5e97b8e1893fc4586d0bf5c8c":163,"4d87a649de3873786926dad0f598d4f481b1b563":61,"3c1cf91da4a27e55578a975f02222120a5d3064c":48,"b149e252ebe3fc355e3e47772de4820810b8000f":4470,"759f28911958689ff2b56f03409545b6fec81dec":29,"13f6c3f14bd0d1c920e339b2486dcd6e37ce50f4":115,"a08d0cfece85ebb8c5960ad66ee48131af6ded05":20,"56270d99f3511058bb71390df4c0b85f4a0e54e0":387,"9daf9430bb76f175e34a9aa05c6060b4a959312e":1911,"75095bde1b7f8044fbd96ec409257b7e4dea213e":2298,"52e475fc35dba7679bb30342affe73e88cd50b89":2298,"aaa31c64270d0e718ad82d584c8c76692e39dbf4":687,"93dafa04d53367653aadb6d32c59d85a0502865e":406,"1bebf163575dc3f0a8a936d630714f48292655e4":17,"aeb580281fc4b9f0d585a99e95730e65bd6fae6f":28,"fe97d720d41f83a35acf90307ef4471fb02a4cc6":1541,"cc5a9039e40d952bd769b8b2dce7df9ecfd0cfa8":1555,"31f574118d6c1f293dd8dc59c311079bde9b0bd1":27,"7e4f08004c00771ee624a09c045f920a5e105358":7,"a8a68c95992614e7c7ea1e3f65c85e29713ed746":97,"66a93ee46f26a226294cdfd25abeac78af614aff":303,"3d207faac5ca3389572b88eb0881b2dca040c6fb":68,"c58fdc931e40026322419d6353535e95308e9a8e":224,"44b30b875328bf795dfc5783948f81da018c2f2e":182,"4926c200f2601655e0a93f73c9dd8d03c44e12da":158,"07bef9f50eeb3a8fe4beace38de04784f6bdda1e":101,"c5e82413932f83958bb56f37aee5dc82ab5207d3":139,"79ba1de4e237f126a65b981660755a0845925ce9":4,"d58e98815b5ccf0aa62f9fc929f88d43b4905d8e":13,"9f0ea25448a8e4ca3019052812452885a4058190":250,"f5a912b114107bdc26fdcacb936ac6bf4d9f50c5":14,"20d60791ffc5c805a2d2d88fc95c5e734dbcbc67":19,"9f9db7dcea29f8ed0e2b8d52dc8ade81f8ab050d":17,"afb5e746b3c11951147c381b298bc562a078685c":28,"b8aaa58d6ebf2b715fd9f53cf42ea363bbb55042":298,"43e73f335f85f051b7294b0d9f4bdae405780a26":302,"478e9e8f7342300ec5368c606bc7619ed497c481":28,"ed22c1aa1ec9d3c3bf6e161b31326e603e299620":70,"1ebd9f43d6e5fe76f50be31458955b1a53312b25":617,"7d4e6d6b65d467cf182710805b4ee15f44a4f5f0":63,"1e4cae34900b307aaa7d9ddb20e624bbbf17bfb4":21,"0431adf3061388b5b984cbcbbf336a09bab85be3":1214,"02af8d5737d9c3db4172b094b1bfae13ccdccbb1":58,"c639cefa7bd33807e96d96fd566c64a89166f22f":780,"3da3407f9a3470f34aaf03c19d3410e5b33caa36":556,"e9d2515a7fdb6864d00a97d90e3cd55c18fc1e4b":563,"c7c4c87fb43c631564ba25900fef43e1768a1a06":74,"d47efc783ea606d6d9d4238d7b16bfadd0a1e25d":269,"473644564d4ef7785fe06bac3d6c6d5baef16ca3":149,"1698eadc943fbeca97e32a5857f95507fe62106e":27,"bc079bc88656435da1d5b4b2329f89c90c910d1b":1035,"c6d2e71ec2f4e2587b13e1bb7d01d53499cd0cdf":21,"e9eab712b3f60d1dcf45746df69dabac29beb299":542,"20e48b3dc0e91fd0984ff1d059169aa6b64a84ce":65,"031dcd99c3978ca6d00a402a2cb2ce5e9d2306a2":519,"e7f3b3ffcf4d020ac20561e1d2c24d7aaa33e494":18,"1704b802ee4f32218d6c5707dd0dc2b617064dde":92,"f9f063ca011ce3a2ce421b0516a030b4aa505052":1362,"787ebbc7f9a144aa10967d791d248220c01be130":32,"5c6fe20d3f223fccdebeb781df6f363901666e72":416,"10c08b9be83d176e04034509ccf20d56a3adc861":180,"b6475baab3380328da9293905572d2b1274d6dfa":731,"5913f730ac370720febd31ad874bcbfa040a2671":88,"789343603803cd6fc90b5e162df969b25ad858da":1340,"758fcc7754b20faf1bf48ca564eb86283c231ac9":227,"0b9f9826e2c838e19c4bf9bc406ab14a5456fbcc":613,"f3f315e86aad3f65075b503026657f30718e0e06":10,"b07c62cc219d02005ca2e308fbe6c30308ca7a59":41,"8a45727b314194af42533ec0cad95a3314ada162":160,"1eb41cc4e217554021be4d0c20d8ff2f13ebedcd":49,"d827c3ab0baaacaf116e81c7aabf7f426f5201da":33,"26f4fb3a99035dff9ef5e012b2e169bee9a9587b":32,"f63e2cd5a31a73c980d199b65eb3a320094c46ae":850,"8a5ed656eec08ccaae44ddde72cb0ca954b05875":300,"8cfd86f1d18356b6bfef931d24c1745e11e1db62":330,"2be5c5a706bc659491decd66c3f21a8839f35e9c":61,"4baed01d4905ecf3fbbfb2f4e8ac7dca34ebf907":75,"e14df1fe05ce1fcbe515f6b1d969132ace91ed24":192,"a4b626aedef2a0cf690a955bf4abd31c5284047a":22,"ad01196964bfdbdd0696cc845f3b3d3901b3be2f":115,"fc3600e9228790179c8c51162924187ec994c49a":1658,"aed7beb075c2f31263423005c34e690af3463039":429,"a2f531016d29093c957c1000860fc83e2dc55cb4":2455,"337dd188cc240e74ea2e434ca99280360c3f9ce1":8,"6724ea52c2cb41ca3d71e663fafce00e040b5425":8,"334f3697f939f81032965f31007ece2cedb33018":5,"2cb5b4ebecc34aa13603a0dfd2ca873afcbb7cdb":149,"d05687853990dd5c4f3474195bcad8cd46481d82":664,"553f8ac1e51cd128bb8605cce68447a5fe015817":361,"5fe96b74b9ab7fdd9e658fc967139f5d182d9305":201,"dcc67477ecdc1166413236d434fbb9485f9d9e27":368,"1043a433f6c78d536353dd5b63cd439a41deb83c":431,"a4c10313243f531e943850339fd1f98ca96a289d":11,"eb9e9a8c839fa8b5d73707057f90d9e72508aba2":2,"204475627a950e677c7c4d15e6219d6ede5299c9":1562,"ee06f83988bd472b93351ff7f86a17ad8484ba92":3,"0337a32d991ae2099447e43f67f6d14bf4267e25":259,"d52465058e3d8f06895e70d74183cbb0d8700312":633,"8c0d75a454c923f8a592a5abbf82c03763c295bc":94,"93d94b597f94b34c1a89479bb94e5b8b08c440cc":6,"3954e445f331ee8e269c5bb3f74af7d8c196d322":9,"a999adc776029adebc3b67b16dfea2046bb9f73a":20,"50c55bb108dd03e7e9443a7abea9e2c48b7f3e64":2437,"77fcd45173d4f6074503da33af15c986843b1f91":2035,"e2ca9c240727893a6ec10fa25c00c0e8ada88623":1,"5616c68471c052e68e65578ac3a48c8998036c86":103,"4df08f6d99e3006107a0431609b7651f13ebc083":2053,"aef58d66ce69777cf8aba6f43f615560ef820b62":281,"10f284585f1473f3198288bc0419c58b058442b3":40,"6c7d215ecc7d2a986e922400eb6787f1b402931d":1949,"83dab7fea7ed906da93ea4946fb41c1cec829547":8,"05dea222382c06f6bc2d1ee229b0854e7a708c07":71,"4bce1559dd96971c3ad34a5fab4ab22d7663fc1e":1513,"6f1f032c6393f2dbb61452f56b331bbc05c1f051":1407,"c923f51cf5e29df77b3af54dbfbc95893ee67fb5":89,"37251cd1f855f0f6235db952e429a0cde8fcc11d":724,"e983bed1da27d0b2eeca29f4d9a7980b7d0ebc91":316,"6ccf53ec7dc88a1297bfbb9518a937cdf2b6348d":107,"0e2f47802bf112e925f1cf8ce9156b1ce0602de7":60,"a97fc42b10d3ce783b2bf84bce499b7bb9dca141":2653,"3ea9d2fc346ca7c3cd64785b067aeeefbe2145b5":150,"838f53a0a4e932fa88d50b6ffde2b3ba7355e0d0":4,"ce4401e84ea11a0b5518b9eca4d4a44a304e8878":85,"a15c729079643344d130d4d522de3e874b6d0d03":104,"44d4df12544a02572e5c1c68f70f73c80795fb29":53,"823cf96e7788cc9f69d65b97688c56df84e6b632":102,"604f9fc78a72b6ee76cf0ecc44ea91a372c4a114":163,"aeab2840de0c69122c49dba1b6f286597e4d606a":13,"92d067d0622c9a02c11b4b20b7416901a0929b4f":36,"99f78f156a8bc329ee6524f2113a5fc643c0e131":357,"31b7d45b58a6929f168a25f724c56ccbd1dcc9fa":103,"c05189b4b1e2d90ee6bb88a4024feef1f8dbe1b1":329,"5e11bba5149d061879002ad88ca91f404c09522a":305,"75ccbb3ad13ee6d8b84ad7ef3aacb6b8994256c5":210,"1edc10362adf1be3a6f06041929e2548614c73a6":104,"4d49d13931537ad32a5588880e09212696354609":18,"be4ba13e9654f177a417a7956228653efe1a6210":528,"368a625d925a176a42e426d363aeb355a4f0657b":227,"19f6b3c4e65c514b42b331380065f34db9dc5405":227,"63c8ec5d7c8d5830bd514f812081fb31804564a8":146,"5782edf62706427c985d03f115726ca765c369ac":93,"23f767b0c557affd2cdaaf20226a530db252b558":1508,"4ccc3edcbbfeb5d148c9ff505f9cad26c80f441b":136,"dff40b5e24bd26cb103fae53e7746456bf38d996":58,"1fd7f8122181f84eb585f7809e75325462729b8b":4,"0473f636237a4e7e808a576eb75525d7ed8d929b":2,"5ad430334539356b2a5805ee02d7178d3ee0aa16":155,"5b9954cfad2dfdb8c7857083252ff6eb512db4c1":430,"e8b7ac730f108a2ef9393767e070c7703c16e557":16,"8f60820f3358d878e0f4b9cd448b00690d9b4406":1251,"f9c1238483b0c91d701547c9ad330261a2b51fbb":332,"a517c506cbcb7e6993f458b24048c9ccccb9faf5":146,"8c5da9f9e878196356e33a799b921b67e3396252":2018,"b47aa0d28d55260e0db6d0e12791ea4a57fcd54b":2959,"5a09547532754da21faacb5351cc3538a9db05a4":11,"cd09b845daed75dde6fd4248fac8450837974513":1,"a23caf00513411132a7d28b12f40a51476a69790":63,"ebc9acf8e41fccc9ae968d40be75f1f7e4382929":972,"09b7f66c0b69b31d2662f102fe2fb2f928cb24cd":1,"bcbf8a236d0f90b3f7b85348e01bde95da03f42b":2,"04c4d61018ec7b108d8b93d0d11a549a0cd52c71":2,"061cd9679fc56a8a0711877f57eebcd998df10b6":252,"c4428e4176bb7244d597b5f75240aa39bf536bbf":432,"6707b7d5b470375c3068950894fb7b96b8fa4bf4":46,"9e43beec40608f178e502d1751723465189528a9":910,"a5d71e35606ebaf16f97d860405800e9a9454659":189,"22f091689fadf485d24fc46510f211a489680a2b":103,"80341f18c3c93dd4cdca92f6965136cff90be6f7":1470,"498448a43181280dc06035d80b694f7522a1b28a":72,"fa37f391c17c51c74a5bfe109225caf01798dc96":478,"e260df7178dd030efe3d490b4cd9421b386c43c2":1204,"f0cd44e016c2c4a33ad06edcf6b13d8cbf1920bf":2,"ae459fc3d7ee85bffc43494e7a4d7b06263e6982":932,"9277b4a087db20e067b163341b3add43c9c49c29":419,"665668579d39ab5d092ec6aaabca73dec9b9e856":67,"d394772f7cf8acd2fb2051bda5aec8bd2622c141":506,"014a844844c76fe5dfce7763ed62e071ee063f58":134,"b6717c55295dadeeff87ec356bc19d7b1b1d3733":84,"1a01c6fc685f105d35bdd59b0647841b3b44c792":787,"ca54bad2aa774c9dc3de9429d3e1440d179796a7":255,"3b61673ad2753e67928e000daa6c396dde72fe80":374,"0246e327feea99f2c2f5e089caa05faddabeb7fb":495,"3246c40319b0f9329c375ae3fe73ee02261579bb":359,"7dd0edb8cd8e9bd33a692f5b8dffb5f6b64595d0":3,"982ffc5895102f03de718cb31f87edc23cfc09e8":1876,"037ed632fddec7d92af85001a8e09aa89ba9051c":17,"7fd2acadbe727a839e44f99081d42687322ee791":106,"c1ab210095c723b8ae5c6cb88cf5f62867a6e84e":55,"e8520133f98c58a254e0581de0efd83dd67fec23":182,"7a783d07145443b941f31a767ba0f8abb8fb304f":132,"7396179c72f6df24e9348b929cd96093e873ce7e":831,"0883b9a8fe3fbda912b136fd8b4577554d263dea":36,"09276518a76d2d42988de4ff31104e4d3d77bc67":5,"44e2a4965017db670a54de3ab1572d7cd47d7b49":4,"d7b907ed9fb16668694e09cc43ed8eada67a4a2a":773,"393557449455386b76c48092b125d43eafe37b0b":1,"27f6a675be6f97d6ae41e2729f2146c9b5c8ad9f":338,"2d67f40175705eafba2476256f171413696a89a2":535,"4e05488c195161792cdc0e74cbd21ed032697a3a":186,"5b9427f8a02b583222be0772d2e1b45a5eb43ba7":1033,"f47e7ae5a752f20138d6a06b8760143608e18509":8,"164a8af82a9661d2aa3bcd8e2aeca862f343c547":90,"07b4275543f7431cad349fabccce9d4149089b90":269,"f6779a503aa13e616d7d642f7c2cc3d769e97efb":48,"25dddf47073673625e51106ab614f8a49ce3b758":153,"813b2dd4d054a5c4cb783cfeb3c7d2d65abc4a0c":1716,"f379a4001f768cb7885fbffb322e63d678244aec":1077,"6d1c8957212cd0a7412ca0e6a888ce70c9adbdfb":4,"6393249111acb54e1d388411c3349dd8ad35267c":1293,"fabf3d4ad3cf1643837eded96c2a0b21503c7883":38,"5bb5faa4b79c52f28875336edfc6b57306d36a7a":42,"6c799b2e58710149deb25399ad25dcb1bf5600d7":1648,"4c15a072dc07841b8b5544d5d7d24b916dea8cae":767,"382aa04ca086938fac0baf66f1380f73c528df98":315,"42481c0bb96d69f433a40003c425706e2697153b":410,"6e39f338ce3a71a06b6f1afedad5a943dde8f297":1153,"a47cf022c6a1afe4a87c712d98fa80f2cf76dd02":2,"1923fce2ed103aa6345e2f9d62a647bd7df8f0c0":151,"5f8e66ec1e1ef9cceb135c560f9bd44c9269dd6b":37,"898e7a632125476f269d4ff34280589404d7c3ae":37,"5076b212af6a9318505e52536899af1060faf053":127,"e1049e38d409ad32bf0c1ae41eb713f59dbdfe02":2140,"cf5df0630a2360c0c145b926dc94e1775ed8d7b0":256,"074e90055789bd146d96fd3d1ad917f91e602186":1427,"5c66c1f12162306d1039ec2e255ad9894199d1f4":745,"9e880825e744a078fa60fdbf8dd89d267184c9cb":119,"050b41bb554a90b5938be1e081efc033cb390f3e":32,"a6aa576d5a6e11d53cdd1d85f22b57a63fbe9b47":28,"2d9f8c96950d2c13522c088063dd84d20c69d51c":801,"dc94b9c1c938b8d32bc3daf1b0bc6c5bb05b2bf0":5,"93afdb50bf767087839123d1a09bda045fca34c7":1,"17187c4abd5d62552e137cd783a92e7dbd356e88":1643,"87d93b651bccb5e085b41925ebfff0c7e0cad82e":334,"4e738ee021603e5553eafa1a5e9c61566f6979f5":144,"a3407093d70bef44874cdf26a06436e0d287c1a7":476,"7f1c23607db9692ffcfa593930f90809f03f3af8":171,"4e30c9b080a4e240b1fa17c3b0486dafc28224da":2858,"4845b797de4a1e326e4ebea0109e884319e1bd3e":68,"6b53df0147989dac42a76ca53039fc7a714d495c":123,"7d02f55f9fba3fb81c0d1f1bfeb0183809de4d54":757,"039ed63a390da270fa5bb1685239508a21509d5c":391,"71deda553ad84defdf9dfcc8b90fb7fc1d5c6833":159,"b3bc17639ca632cf456f3c0e983c1bc24e9546bc":7,"f78c30ac50cb2351a77b840c483ecb94c6a9ab6d":286,"7732b2039ab8501669465f524dc27b3037a7c5b7":772,"c24033dc6b301c27a0fe2c75d1e4327222b14313":423,"50fa27f0a55b8ff8eeccbe5b19c4d04aa8724605":9545,"508123166774ecbcb76101bbd4aa6209f693b607":24,"e2f1363708c0bea9a6462699d9beb259627937eb":1315,"286b5781a755a2238e2a8f0083ca58420715bd42":90,"fe7cc6f9baaecffa94015d0be77f8834562a1ad8":1079,"e95b35429760bc6bd0c16099a2965b6ca016e753":75,"d9ace607e58caafd71224e02ed9f297b7dcacecb":116,"33a1553431afdcca1a5c1fca54aff8da8d8bb05e":56,"7a22e89046ecb4af79291ecd3b4c885275ab5787":542,"47007279156545f81c615824065a0094aafa07d0":112,"bf8759460df0828ddec1138866dae3ef86ff2a42":66,"1ff4329ee4b58e68648cd1f331f3dd64d4eb10df":225,"8afee344e1b1e8f45d029affc011e229e069b949":70,"c0a019bf7e83287dddfb333633941d3142541778":95,"ae3240d4c8ae540cfcd354a662eaf0a7979a1ded":2350,"a10e570310c2655553cd62dae1bf6d84478f8090":39,"d5b14bec1c48b2f97c2fbadcc39124c5c54ddec8":115,"d089ab06c2c007e4a46173efcac9ea9ff23f0bb5":357,"51df0ee55b52ecc858544ec8d8ff7e7932db0f11":1603,"06bce198eb8b9c6508e7b5fc3339cbda54faf608":1117,"1e9a7f3fa01e40ab569932e66ce37f8653bf8c97":311,"0868e92bb192ff5d584e99fb39216860ced3bc11":1603,"b7aea78512948a49f7069bd4d67eafb2e53ae49c":1603,"e04598eef777746d1898d6ddc22eb527c9badcd3":247,"4a772510215a0e8081853eee6c32d1cb8e47ec9b":56,"9bb1bdbad960140db177e1cec6a30ea56b97263e":70,"0dfb7b85833aec6b26e0ae02452ecc19a9494629":11,"18e865ea364de0f7c811d447bacaf644d98f10d2":39,"b8ed36e3705f9e6795a99864610727026be5fc52":46,"b7cfbd14e2c7057270f3e8b482c73208fcb1ca47":23,"6d266fc7e89d7e7ddee3ec4235152e9a9bcaba0d":26,"39ec84a8a9a78489565c27e1e599d8383291400a":7,"2290a1dc5a575c0875524571c64ee24968851855":8,"6f1396cf1e99dfac460040b0a6a3f5d7f72bec5d":2,"1e5580a30ae4c2eef64975b688b13440cb2d3b07":41,"04ddc33518d43302e650283a3d7be43cf616dd9d":61,"40cc62a67f03a86f163d679ae15ef0df78e6e248":18,"6ada2b243e339067071fe1c00d41a57581c3e403":277,"2ddc5d5afd4cdb2e6a063180f47469a5298460fc":22,"e7058b6b6da82a1bc54fa43f437e53748ba78c20":12,"7f086c8685cf1ec3f4dd44bedc96fbd5c6928164":26,"19d24954be62410b84f0a81f86f05716d5419da5":1331,"968681f261f6d0f00168347f4bdc203a151ef542":465,"bc48613bbd06e8ca17d4b8acff466690d152f8ba":957,"8b7e7f4847eec98b39cd1bac883cf4dd5aa30a2d":924,"8b39d8a25f3af8e6829b0164932e6a30c71ea20f":476,"09268e7e3307aea1508505692f83a2131e15f8a9":706,"f759cfeaaaef26591060a2746319cc5156287da8":402,"0cf4ad7b48b644c30d29dbce7fdfd78400320df4":610,"a807de6f4cc3d328349075699b5fb27efd3e6e80":780,"0910a75850c149f29493d4a5db0c09486a8ac443":1153,"315ae19387e90b55385fe631ca0b3187c8eeacc9":1010,"f3e79fd4e8c4986eea90fd37ffefac861e8e1598":721,"4f6e61739c13323484bcb036980e2553e6bb31bd":396,"a983332016b8f0572cceb8575516ff37178c5c9b":1348,"8ad7653a2e4015e19c37bddbaddc44cc5cd348fd":2763,"358b703d984cb16f0f7473a2a7bd171f2aa0e43e":1006,"bf92645b35b48fe844ebe4303dfef5d4312c390a":2570,"8c604a040ff4aab2f00a87c28ec20c62e8191875":560,"e99c4612a85c4f8500f52f6d76b5e55d4fe00e55":1173,"631c7993228c30ba29f326f543462beb9a124294":1417,"a3fe2c63d8fefe533e5e2a85dc1cbfddf45cd7f7":643,"08fe63c6262cac61ce241ce573b107539997281e":326,"5c79df4311de16dbc25eade6e124f201ad26917c":823,"211e51b94914a25f1f5e4c4ba95dffadef94f94c":88,"2cd2d43186afc64abe7e8cb8e54c6a8907b9fa60":128,"85521018bf29696460f07610661cbad878de69b6":714,"c90b3cb9da0e25ca119cbd92000d62aef708cd90":98,"54738e88f78bc3a38bc985daad8a723276347693":51,"81c4acc73a50a041c54e0523808f9233b826a526":269,"e461c7a67e1500e28a7fa8266cd90b80212c760b":61,"6bc04dee97eb7a816912b840d1961b4ff1481ece":104,"fc5851e3a24a30437a07ed82546a61186ac56379":244,"4d7f30a260ebddd401ff3d559147ae5a1db5e372":23,"1af6625f5c403a15410906f5a0ee459c2699a57c":349,"9f6e64fd39e3c1c42280676681120aaaeb5cb439":347,"db4b938c0ee4bcb9cdf1d68be61036409eebb33b":9,"f667628411cc38ad3938d262907a0805e6ae6a37":117,"37a14525cc24b8709261eca0bdcf81a1e289be45":315,"30971ebb281e3afaf7e7668f346c6abf30c7c8e0":911,"bbcf9e8b156301ce3ec74decc7e650c6d0ea2df7":101,"1867116472dca0d579d34cc82a3aff3268c7648a":672,"6d3fde9ed399845a8aa757b4a7c706395e962dc6":1113,"40f32ebbf06937b85f7e151169ae93399a1dca04":836,"205c2f3cd607399031c19e49f37cc64108c13def":1772,"df4554fe1f9a0d3d4e43e2b21f454fb862a131c5":68,"e7001fc252c4eea1075d89c2455f8fb29164fdf4":246,"23abf6a6350015dbbc97159564f5ee2678beaf6f":520,"68f0231f487a7a56e4571bc67d3171827baebaa5":138,"559d4340e72e8d900a20e0315f3298ca66e23992":1435,"dbeb0c543a888d7bc54ed0e3ebfffa63334d1f75":1481,"03077aa9fdad5b64a22f157c2470bc816da78b4a":228,"e96967c22492fe312258bf6ab7f5883250cbc4be":440,"0e0b9121878a18d1e77b8418006468991fa3c981":996,"df967792b91cd6674b39a08b38cb32eaed730ddc":297,"5aa94b5019b3a6efdea4ef5e0b8ac15affd4f966":23,"11b3cd5a5cc91b3a8e71a09ea22f43406e2a00a7":82,"e33da989eb7c57f1832864e5d9680d18bce400d5":413,"26323c13dfcca42f9ce2dc5e51faa1a65acfc47a":12,"b950b41503352bf019b3070e84a44740750c2be1":264,"0b1c4e490880da83245e87f9de2118438ff42dc4":187,"a700a92171cb16a4d08af7775554c5e501d7228a":32,"7d3a11a45278c4507070c958d8ce33c11b157c0b":382,"1e7ad7e75e2edd1e36fe9651efd44c464b7f8375":183,"28fef67a453fc50cbbca03d2e8b51ce63e2a983f":23,"2fd90fff9bd59b18a2dac713a24ca05363b12759":116,"70dc53d947e54e23d7befb422fbd1f556f8b57f5":200,"4eef3f77a4a8210501a9dfe369ceeac581772939":461,"54a670c943e8599bd103421e0cdb6212b31f5f67":28,"dfc8b7d1dcca23a3c2f905b6e5e6f7bdd5195752":314,"015cc4dd320728f152b13a924b9dceb1c8ea441f":142,"f68c08ede3188e2f58f74c50049bd72d06ad4ee6":328,"cf3bd8a5efb4e1166650d5a3d0d4002f59b6f3dc":168,"fdb043083f6a76cc3d33e830d8bd6142827c0cd6":2071,"22d4c727172567787a7719a87bdda0c3e960011b":4,"a33e12619ee3dd7b034a952a51feae9cec69759c":1666,"0343734665d5610c84297dc50a486d703c6ff28f":732,"74894f61da26410a214e1b2af2fe8ffd18da5c30":1255,"1c90388b5d16a3c8f7895f86bc9a769cb0800de3":2488,"cff9008f49643bac027de4a3f7eeb010f601ed8b":8,"7b8a6f5cceabddf7a68cc66014ef0ec6eba3e96e":64,"30ed7c42b1c8a24fc10d1c788a532e1a3198a410":23,"b5ef06a4d5fe0ea2a83110947a2772b8ea87ee3f":1748,"64fbf2e0621aca4398693de5b5ef43b9448bfecc":711,"7234ef8fcf5e3cba0c42f2bf48e075dbe33b00d4":211,"87aeb8f19331b07ed056ec49913a23b5dad417e6":1617,"5e1b8640ab517109732affd32b430ca0b769996a":235,"95a2864ef3492f96098c689e16086f6e1db012d2":590,"1462823be8c67895e81009aab0259263ae8b4097":402,"aecc1f7217d192383d18c059690e38b47985ba18":2839,"2f94f35ec35bc3710c3ab1d6f1019f704e58d4c7":271,"4e4c949967f3aa112795e1bf0cc3ee8ebdbd5b3b":110,"44718e98ef2c3f9ec2cbe7434edb33cd9eecb390":1166,"c621241a2e308b6910b556696da40f1820ca9a1d":77,"da2de600159cffb9db27d6e7bbeef03daae2b3f0":199,"6721d47502645325d58fc97a4d11bb53750d0c75":729,"d8210cf0113cf6aa782f856db683e9123cb27711":888,"6841025bb413c5ca1c8ce8e903b55dbd5f269036":995,"1a80717f998079f449749db04aeed4b6eccc3349":1060,"f40e9647ec1dee25086c92698df3b7fafc89658c":2926,"4df5a7d357dc029a004b962fafc6d0da0e6079c4":3123,"e055dac1996bd3cd3c4e5ee0f11dad22d8d2a838":1047,"051805074eb80db839a4deb8ab1dcb89f29766de":2376,"c630ce878ea4ad22d0bfa07d71dd352392db728a":40,"2b59e040c4481d29809798b273ba3cd57915a4b6":133,"457412277b1311decb660620ecdd0cdd78a90e1c":105,"6bba193cdd742a56f3d495a3de5d478df636f444":65,"9a7b26eab745f5099d57685c9a14845a4adb985e":52,"920fba7e1333ff53b7826981bf61b238091dbcf6":44,"5807328cb58e6a60637a797b046afa06262043bf":115,"4f2dd70b8c77d878c01fb3da9e0fae305cff2cf3":21,"dd62027d3f4e11274e4ada2872d942a20c4ef0ea":116,"5776e9c3b1ac584eebcd01c6332196acc6ff7aa4":33,"901bad2ec7faab8d5725a65c96a1de8cb9945b3d":25,"5da63347367564104b2cc514c94d1f1fc1519996":102,"54f3b6860a8e81b11c705bf0cbe05eeb8728e668":21,"88421026c64b0dc86c183f6d71b38ec9e5d89920":9,"4ce6669e26ba4c55e8ca3bc3a9590e128eee2f30":42,"480f3ba46949b4d44b1a36fa5a6dcc2699a311d5":54,"65adab5bec2814a2f7deb681067892def77b03ad":279,"e09e930c38ef17dfecf000804504ab6ed4f38367":170,"6671423d79d7841cc2414caee252fbc67b426189":15,"062e77e55f05b821ff8c6c2b0380a57b5d8594f2":16,"6ecca9b16fbd77cd3fe130cdd131fa90af68ae32":70,"216fae7d577423e6fa13c49efe836df23dbb8af4":58,"92252189b1c2b70b71c104a9ce87d6b2fe293a7d":59,"1f7ed656b2b99ed8c25909bf6a66c1dde744855e":16,"f9dec01cfdc976442eddb60bd092abadf443d1b4":87,"27e16944808cf43210d4505993c9846fdd7309e4":16,"04dc97aaa4690433e1ee0409cf3edc225eaab02c":25,"70601e6364fd1fd0e4cce2fec922ebf33f5ca61f":37,"c0cd44ecaa0546b9ca9f2ce55840c539c8bba676":51,"2a3bc6807fc354ed2a55a386d5012a7536aa765e":17,"f44b651cd6752053e175301c8c8f911b1be882fc":38,"fd018296ff851f2f91b44df8b4cdbdf871727483":2,"bd46c8de1237e3a76c774b00a1c9e026f4c0cd4b":2462,"09f3260c2322dc0db409ec25e57ba49a7bfd2a32":2,"64e72f9c93cc24f3a505e86d948eee0d72dfaadb":3721,"9e9cbd48585200c890fe6bb83539fe3a99b25cdc":1660,"eb8149e8fa476f279583136be7286dbaf1ac4361":3627,"b90eae38928cce19c246b69f2c530947adc401f4":2340,"cf2375e169d808964a9c80077a657712630e6d35":1279,"bb2596e296caa20a69c897ba472b7ada9eac2eda":2808},"excluded_import_commits":["7ffb8a42340abc7e36282b2d67665c226203c5af","919be3c722eed9f56f028a4929bf2ac8944d080d","c3401f0a91135734ea8098f86c08715d90a3021c"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":99.0,"flagged_releases":0.0,"max_loc_per_day":89304.0},"findings":[],"evidence":[],"data":{"releases":[{"from":"v8.4.0-dev.13","to":"v8.4.0-dev.14","loc":66,"days":0.46,"loc_per_day":143.2,"flagged":false},{"from":"v8.4.0-dev.14","to":"v8.4.0-dev.15","loc":41,"days":1.27,"loc_per_day":32.4,"flagged":false},{"from":"v8.4.0-dev.15","to":"v8.4.0-dev.16","loc":1263,"days":0.15,"loc_per_day":8639.3,"flagged":false},{"from":"v8.4.0-dev.16","to":"v8.4.0-dev.17","loc":8,"days":0.1,"loc_per_day":77.2,"flagged":false},{"from":"v8.4.0-dev.17","to":"v8.5.0","loc":0,"days":0.63,"loc_per_day":0.0,"flagged":false},{"from":"v8.5.0","to":"v8.5.0-dev.1","loc":312,"days":1.0,"loc_per_day":311.5,"flagged":false},{"from":"v8.5.0-dev.1","to":"v8.5.0-dev.2","loc":451,"days":0.11,"loc_per_day":4273.6,"flagged":false},{"from":"v8.5.0-dev.2","to":"v8.5.0-dev.3","loc":45,"days":0.04,"loc_per_day":1080.0,"flagged":false},{"from":"v8.5.0-dev.3","to":"v8.5.0-dev.4","loc":115,"days":0.04,"loc_per_day":2760.0,"flagged":false},{"from":"v8.5.0-dev.4","to":"v8.5.0-dev.5","loc":464,"days":0.19,"loc_per_day":2440.8,"flagged":false},{"from":"v8.5.0-dev.5","to":"v8.6.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.6.0","to":"v8.6.0-dev.1","loc":137,"days":0.64,"loc_per_day":213.9,"flagged":false},{"from":"v8.6.0-dev.1","to":"v8.6.1","loc":0,"days":0.19,"loc_per_day":0.0,"flagged":false},{"from":"v8.6.1","to":"v8.6.1-dev.1","loc":137,"days":0.04,"loc_per_day":3288.0,"flagged":false},{"from":"v8.6.1-dev.1","to":"v8.6.1-dev.2","loc":2187,"days":0.98,"loc_per_day":2237.6,"flagged":false},{"from":"v8.6.1-dev.2","to":"v8.6.1-dev.3","loc":24,"days":0.05,"loc_per_day":495.0,"flagged":false},{"from":"v8.6.1-dev.3","to":"v8.6.1-dev.4","loc":283,"days":0.04,"loc_per_day":6792.0,"flagged":false},{"from":"v8.6.1-dev.4","to":"v8.6.1-dev.5","loc":171,"days":1.87,"loc_per_day":91.3,"flagged":false},{"from":"v8.6.1-dev.5","to":"v8.6.1-dev.6","loc":387,"days":0.76,"loc_per_day":506.6,"flagged":false},{"from":"v8.6.1-dev.6","to":"v8.6.1-dev.7","loc":285,"days":0.04,"loc_per_day":6840.0,"flagged":false},{"from":"v8.6.1-dev.7","to":"v8.6.1-dev.8","loc":92,"days":1.25,"loc_per_day":73.8,"flagged":false},{"from":"v8.6.1-dev.8","to":"v8.6.1-dev.9","loc":131,"days":0.87,"loc_per_day":151.4,"flagged":false},{"from":"v8.6.1-dev.9","to":"v8.6.1-dev.10","loc":0,"days":0.97,"loc_per_day":0.0,"flagged":false},{"from":"v8.6.1-dev.10","to":"v8.6.1-dev.11","loc":215,"days":0.04,"loc_per_day":5160.0,"flagged":false},{"from":"v8.6.1-dev.11","to":"v8.6.1-dev.12","loc":528,"days":0.04,"loc_per_day":12672.0,"flagged":false},{"from":"v8.6.1-dev.12","to":"v8.6.1-dev.13","loc":171,"days":0.04,"loc_per_day":4104.0,"flagged":false},{"from":"v8.6.1-dev.13","to":"v8.7.0","loc":0,"days":0.4,"loc_per_day":0.0,"flagged":false},{"from":"v8.7.0","to":"v8.7.0-dev.1","loc":91,"days":0.08,"loc_per_day":1108.9,"flagged":false},{"from":"v8.7.0-dev.1","to":"v8.7.0-dev.2","loc":168,"days":0.04,"loc_per_day":4032.0,"flagged":false},{"from":"v8.7.0-dev.2","to":"v8.7.0-dev.3","loc":124,"days":0.04,"loc_per_day":2976.0,"flagged":false},{"from":"v8.7.0-dev.3","to":"v8.7.0-dev.4","loc":117,"days":0.04,"loc_per_day":2808.0,"flagged":false},{"from":"v8.7.0-dev.4","to":"v8.7.0-dev.5","loc":408,"days":1.41,"loc_per_day":290.2,"flagged":false},{"from":"v8.7.0-dev.5","to":"v8.7.0-dev.6","loc":49,"days":5.96,"loc_per_day":8.2,"flagged":false},{"from":"v8.7.0-dev.6","to":"v8.7.0-dev.7","loc":624,"days":2.13,"loc_per_day":292.9,"flagged":false},{"from":"v8.7.0-dev.7","to":"v8.7.0-dev.9","loc":174,"days":2.84,"loc_per_day":61.2,"flagged":false},{"from":"v8.7.0-dev.9","to":"v8.7.0-dev.10","loc":748,"days":2.09,"loc_per_day":357.5,"flagged":false},{"from":"v8.7.0-dev.10","to":"v8.7.0-dev.11","loc":723,"days":3.25,"loc_per_day":222.3,"flagged":false},{"from":"v8.7.0-dev.11","to":"v8.7.0-dev.12","loc":1734,"days":0.05,"loc_per_day":34922.5,"flagged":false},{"from":"v8.7.0-dev.12","to":"v8.8.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.8.0","to":"v8.8.1","loc":96,"days":0.04,"loc_per_day":2304.0,"flagged":false},{"from":"v8.8.1","to":"v8.8.1-dev.1","loc":597,"days":3.61,"loc_per_day":165.5,"flagged":false},{"from":"v8.8.1-dev.1","to":"v8.8.1-dev.2","loc":13,"days":0.16,"loc_per_day":83.2,"flagged":false},{"from":"v8.8.1-dev.2","to":"v8.8.1-dev.3","loc":113,"days":0.04,"loc_per_day":2712.0,"flagged":false},{"from":"v8.8.1-dev.3","to":"v8.8.1-dev.4","loc":163,"days":0.04,"loc_per_day":3912.0,"flagged":false},{"from":"v8.8.1-dev.4","to":"v8.8.1-dev.5","loc":1263,"days":0.04,"loc_per_day":30312.0,"flagged":false},{"from":"v8.8.1-dev.5","to":"v8.8.1-dev.6","loc":230,"days":4.29,"loc_per_day":53.6,"flagged":false},{"from":"v8.8.1-dev.6","to":"v8.8.1-dev.7","loc":91,"days":2.6,"loc_per_day":35.0,"flagged":false},{"from":"v8.8.1-dev.7","to":"v8.8.1-dev.8","loc":2855,"days":0.04,"loc_per_day":68520.0,"flagged":false},{"from":"v8.8.1-dev.8","to":"v8.8.1-dev.9","loc":392,"days":0.04,"loc_per_day":9408.0,"flagged":false},{"from":"v8.8.1-dev.9","to":"v8.8.1-dev.10","loc":105,"days":0.04,"loc_per_day":2520.0,"flagged":false},{"from":"v8.8.1-dev.10","to":"v8.8.1-dev.11","loc":324,"days":0.04,"loc_per_day":7776.0,"flagged":false},{"from":"v8.8.1-dev.11","to":"v8.8.1-dev.12","loc":306,"days":0.04,"loc_per_day":7344.0,"flagged":false},{"from":"v8.8.1-dev.12","to":"v8.8.1-dev.13","loc":815,"days":0.04,"loc_per_day":19560.0,"flagged":false},{"from":"v8.8.1-dev.13","to":"v8.8.1-dev.14","loc":709,"days":0.04,"loc_per_day":17016.0,"flagged":false},{"from":"v8.8.1-dev.14","to":"v8.8.1-dev.15","loc":1,"days":1.83,"loc_per_day":0.5,"flagged":false},{"from":"v8.8.1-dev.15","to":"v8.8.1-dev.16","loc":1018,"days":2.41,"loc_per_day":423.0,"flagged":false},{"from":"v8.8.1-dev.16","to":"v8.8.1-dev.17","loc":156,"days":6.03,"loc_per_day":25.9,"flagged":false},{"from":"v8.8.1-dev.17","to":"v8.8.1-dev.18","loc":747,"days":0.04,"loc_per_day":17928.0,"flagged":false},{"from":"v8.8.1-dev.18","to":"v8.8.1-dev.19","loc":1487,"days":0.04,"loc_per_day":35688.0,"flagged":false},{"from":"v8.8.1-dev.19","to":"v8.8.1-dev.20","loc":729,"days":0.04,"loc_per_day":17496.0,"flagged":false},{"from":"v8.8.1-dev.20","to":"v8.8.1-dev.21","loc":888,"days":0.04,"loc_per_day":21312.0,"flagged":false},{"from":"v8.8.1-dev.21","to":"v8.8.1-dev.22","loc":1334,"days":0.04,"loc_per_day":32016.0,"flagged":false},{"from":"v8.8.1-dev.22","to":"v8.9.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.9.0","to":"v8.9.0-dev.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.9.0-dev.1","to":"v8.9.0-dev.2","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.9.0-dev.2","to":"v8.9.0-dev.3","loc":1237,"days":1.91,"loc_per_day":647.0,"flagged":false},{"from":"v8.9.0-dev.3","to":"v8.9.0-dev.4","loc":414,"days":10.55,"loc_per_day":39.2,"flagged":false},{"from":"v8.9.0-dev.4","to":"v8.9.0-dev.5","loc":570,"days":4.14,"loc_per_day":137.7,"flagged":false},{"from":"v8.9.0-dev.5","to":"v8.9.0-dev.6","loc":418,"days":0.05,"loc_per_day":8294.7,"flagged":false},{"from":"v8.9.0-dev.6","to":"v8.9.0-dev.7","loc":104,"days":0.04,"loc_per_day":2496.0,"flagged":false},{"from":"v8.9.0-dev.7","to":"v8.9.0-dev.8","loc":3,"days":0.04,"loc_per_day":72.0,"flagged":false},{"from":"v8.9.0-dev.8","to":"v8.9.0-dev.9","loc":0,"days":1.28,"loc_per_day":0.0,"flagged":false},{"from":"v8.9.0-dev.9","to":"v8.9.0-dev.10","loc":475,"days":13.78,"loc_per_day":34.5,"flagged":false},{"from":"v8.9.0-dev.10","to":"v8.9.0-dev.11","loc":593,"days":1.67,"loc_per_day":354.9,"flagged":false},{"from":"v8.9.0-dev.11","to":"v8.10.0","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v8.10.0","to":"v8.10.0-dev.1","loc":285,"days":11.19,"loc_per_day":25.5,"flagged":false},{"from":"v8.10.0-dev.1","to":"v8.10.0-dev.2","loc":183,"days":0.04,"loc_per_day":4392.0,"flagged":false},{"from":"v8.10.0-dev.2","to":"v8.10.0-dev.3","loc":232,"days":0.04,"loc_per_day":5568.0,"flagged":false},{"from":"v8.10.0-dev.3","to":"v8.10.0-dev.4","loc":109,"days":0.04,"loc_per_day":2616.0,"flagged":false},{"from":"v8.10.0-dev.4","to":"v8.10.0-dev.5","loc":7,"days":0.04,"loc_per_day":168.0,"flagged":false},{"from":"v8.10.0-dev.5","to":"v8.10.0-dev.6","loc":8,"days":0.04,"loc_per_day":192.0,"flagged":false},{"from":"v8.10.0-dev.6","to":"v8.10.0-dev.7","loc":256,"days":0.04,"loc_per_day":6144.0,"flagged":false},{"from":"v8.10.0-dev.7","to":"v8.10.0-dev.8","loc":30,"days":0.04,"loc_per_day":720.0,"flagged":false},{"from":"v8.10.0-dev.8","to":"v8.10.0-dev.9","loc":638,"days":8.26,"loc_per_day":77.3,"flagged":false},{"from":"v8.10.0-dev.9","to":"v8.10.0-dev.10","loc":2746,"days":12.65,"loc_per_day":217.0,"flagged":false},{"from":"v8.10.0-dev.10","to":"v8.10.0-dev.11","loc":30,"days":0.04,"loc_per_day":720.0,"flagged":false},{"from":"v8.10.0-dev.11","to":"v8.10.0-dev.12","loc":1535,"days":13.95,"loc_per_day":110.0,"flagged":false},{"from":"v8.10.0-dev.12","to":"v8.10.0-dev.13","loc":80,"days":7.02,"loc_per_day":11.4,"flagged":false},{"from":"v8.10.0-dev.13","to":"v8.10.0-dev.14","loc":534,"days":0.04,"loc_per_day":12816.0,"flagged":false},{"from":"v8.10.0-dev.14","to":"v8.10.0-dev.15","loc":203,"days":0.04,"loc_per_day":4872.0,"flagged":false},{"from":"v8.10.0-dev.15","to":"v8.10.0-dev.16","loc":477,"days":0.04,"loc_per_day":11448.0,"flagged":false},{"from":"v8.10.0-dev.16","to":"v8.10.0-dev.17","loc":1003,"days":0.04,"loc_per_day":24072.0,"flagged":false},{"from":"v8.10.0-dev.17","to":"v8.10.0-dev.18","loc":1179,"days":0.04,"loc_per_day":28296.0,"flagged":false},{"from":"v8.10.0-dev.18","to":"v8.10.0-dev.19","loc":3721,"days":0.04,"loc_per_day":89304.0,"flagged":false},{"from":"v8.10.0-dev.19","to":"v8.10.0-dev.20","loc":267,"days":0.04,"loc_per_day":6408.0,"flagged":false},{"from":"v8.10.0-dev.20","to":"v8.10.0-dev.21","loc":442,"days":0.04,"loc_per_day":10608.0,"flagged":false},{"from":"v8.10.0-dev.21","to":"v8.10.0-dev.22","loc":363,"days":0.93,"loc_per_day":392.1,"flagged":false},{"from":"v8.10.0-dev.22","to":"v8.10.0-dev.23","loc":36,"days":0.04,"loc_per_day":864.0,"flagged":false},{"from":"v8.10.0-dev.23","to":"v8.11.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":259351.0,"index":0.11,"count:narrated_steps":17.0,"per_kloc:narrated_steps":0.066,"files:narrated_steps":6.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":11.0,"per_kloc:emoji_in_code":0.042,"files:emoji_in_code":3.0,"count:assistant_voice":3.0,"per_kloc:assistant_voice":0.012,"files:assistant_voice":3.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 1: Always try to remove duplicate segments","ref":"src/cliproxy/ai-providers/tool-name-sanitizer.ts:136","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/ai-providers/tool-name-sanitizer.ts#L136","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 2: Truncate if still too long","ref":"src/cliproxy/ai-providers/tool-name-sanitizer.ts:140","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/ai-providers/tool-name-sanitizer.ts#L140","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 3: If still invalid, fix characters and truncate if needed","ref":"src/cliproxy/ai-providers/tool-name-sanitizer.ts:145","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/ai-providers/tool-name-sanitizer.ts#L145","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 1: Sanitize input_schema properties (remove non-standard JSON Schema properties)","ref":"src/cliproxy/proxy/tool-sanitization-proxy.ts:331","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/proxy/tool-sanitization-proxy.ts#L331","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 2: Sanitize tool names (truncate to 64 chars for Gemini)","ref":"src/cliproxy/proxy/tool-sanitization-proxy.ts:396","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/proxy/tool-sanitization-proxy.ts#L396","weight":0.0},{"kind":"stylometry:assistant_voice","description":"assistant-style phrasing left in code: * Key features:","ref":"src/cliproxy/quota/quota-manager.ts:7","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/quota/quota-manager.ts#L7","weight":0.0},{"kind":"stylometry:assistant_voice","description":"assistant-style phrasing left in code: writeLine(`  Browser lanes are now ${verb} as requested.`);","ref":"src/commands/browser-command.ts:201","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/commands/browser-command.ts#L201","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: // Step 1: Profile name","ref":"src/commands/cliproxy/variant-subcommand.ts:327","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/commands/cliproxy/variant-subcommand.ts#L327","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":12.0,"secrets_low_confidence":2.0},"findings":[{"rule_id":"gitleaks/private-key","severity":"low","message":"Possible private-key secret in the current tree (test/docs/example file)","path":"src/cliproxy/services/__tests__/remote-proxy-chain-regression.test.ts","line":8,"fingerprint":"src/cliproxy/services/__tests__/remote-proxy-chain-regression.test.ts:private-key:8"},{"rule_id":"gitleaks/stripe-access-token","severity":"low","message":"Possible stripe-access-token secret in the current tree (test/docs/example file)","path":"src/cliproxy/config/__tests__/config-generator.test.js","line":277,"fingerprint":"src/cliproxy/config/__tests__/config-generator.test.js:stripe-access-token:277"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/integration/image-analyzer-hook.test.ts","line":11,"fingerprint":"tests/integration/image-analyzer-hook.test.ts:generic-api-key:11"},{"rule_id":"gitleaks/discord-client-secret","severity":"low","message":"Possible discord-client-secret secret in the current tree (test/docs/example file)","path":"tests/unit/channels/official-channels-store.test.ts","line":163,"fingerprint":"tests/unit/channels/official-channels-store.test.ts:discord-client-secret:163"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/e2e/image-analyzer-hook.e2e.test.ts","line":32,"fingerprint":"tests/e2e/image-analyzer-hook.e2e.test.ts:generic-api-key:32"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/unit/services/logging/log-redaction-extended.test.ts","line":156,"fingerprint":"tests/unit/services/logging/log-redaction-extended.test.ts:generic-api-key:156"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/unit/utils/delegation-validator.test.ts","line":122,"fingerprint":"tests/unit/utils/delegation-validator.test.ts:generic-api-key:122"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/unit/web-server/websearch-routes.test.ts","line":171,"fingerprint":"tests/unit/web-server/websearch-routes.test.ts:generic-api-key:171"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in the current tree (test/docs/example file)","path":"tests/unit/web-server/droid-dashboard-service.test.ts","line":188,"fingerprint":"tests/unit/web-server/droid-dashboard-service.test.ts:generic-api-key:188"},{"rule_id":"gitleaks/private-key","severity":"low","message":"Possible private-key secret in history (commit 7a9e67e6dc); removed from the current tree but still retrievable","path":"tests/unit/cliproxy/remote-proxy-chain-regression.test.ts","line":8,"fingerprint":"7a9e67e6dc7de70709b6baaa3a9a1158b27fbd33:tests/unit/cliproxy/remote-proxy-chain-regression.test.ts:private-key:8"},{"rule_id":"gitleaks/private-key","severity":"low","message":"Possible private-key secret in history (commit e055890e16); removed from the current tree but still retrievable","path":"tests/unit/cliproxy/https-tunnel-proxy.test.ts","line":20,"fingerprint":"e055890e16fa6d79411faae5f04794807db39c87:tests/unit/cliproxy/https-tunnel-proxy.test.ts:private-key:20"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit a6a653f145); removed from the current tree but still retrievable","path":"src/cliproxy/auth/gemini-token-refresh.ts","line":24,"fingerprint":"a6a653f14580888bcdccbf6b83b90d41b6b52136:src/cliproxy/auth/gemini-token-refresh.ts:generic-api-key:24"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit 4be8e927a0); removed from the current tree but still retrievable","path":"src/cliproxy/quota-fetcher.ts","line":53,"fingerprint":"4be8e927a08bbdcca02d000a9780e8466f0fc1f0:src/cliproxy/quota-fetcher.ts:generic-api-key:53"},{"rule_id":"gitleaks/stripe-access-token","severity":"low","message":"Possible stripe-access-token secret in history (commit 2b4d21e8ae); removed from the current tree but still retrievable","path":"tests/unit/cliproxy/config-generator.test.js","line":277,"fingerprint":"2b4d21e8ae615c840d76007d733017d375e6036f:tests/unit/cliproxy/config-generator.test.js:stripe-access-token:277"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":1766.0,"findings_high":59.0,"findings_medium":1703.0,"findings_low":4.0,"weighted_findings":475.5,"scanned_lines":275690.0,"parse_errors":6.0},"findings":[{"rule_id":"opengrep/dockerfile.security.missing-user-entrypoint","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"docker/Dockerfile","line":87,"fingerprint":"dockerfile.security.missing-user-entrypoint:docker/Dockerfile:87"},{"rule_id":"opengrep/dockerfile.security.missing-user","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"docker/Dockerfile","line":89,"fingerprint":"dockerfile.security.missing-user:docker/Dockerfile:89"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"scripts/run-test-bucket.js","line":222,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:scripts/run-test-bucket.js:222"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"scripts/run-test-bucket.js","line":232,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:scripts/run-test-bucket.js:232"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/auth/commands/create-command.ts","line":266,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/auth/commands/create-command.ts:266"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/cliproxy/auth/environment-detector.ts","line":66,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/environment-detector.ts:66"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/cliproxy/auth/environment-detector.ts","line":75,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/environment-detector.ts:75"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/cliproxy/auth/environment-detector.ts","line":82,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/environment-detector.ts:82"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/cliproxy/auth/environment-detector.ts","line":88,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/environment-detector.ts:88"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `verbose`. 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":"src/cliproxy/auth/kiro-import.ts","line":44,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/kiro-import.ts:44"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `binaryPath`. 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":"src/cliproxy/auth/oauth-cli-capabilities.ts","line":82,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/oauth-cli-capabilities.ts:82"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/cliproxy/auth/oauth-process.ts","line":746,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/auth/oauth-process.ts:746"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/cliproxy/executor/claude-launcher.ts","line":175,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/cliproxy/executor/claude-launcher.ts:175"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `context`. 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":"src/cliproxy/executor/claude-launcher.ts","line":175,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/executor/claude-launcher.ts:175"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `context`. 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":"src/cliproxy/executor/claude-launcher.ts","line":182,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/executor/claude-launcher.ts:182"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `binaryPath`. 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":"src/cliproxy/executor/lifecycle-manager.ts","line":75,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/executor/lifecycle-manager.ts:75"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `deps`. 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":"src/cliproxy/service-manager.ts","line":266,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/service-manager.ts:266"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `verbose`. 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":"src/cliproxy/service-manager.ts","line":266,"fingerprint":"javascript.lang.security.detect-child-process:src/cliproxy/service-manager.ts:266"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: true}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/commands/update-command.ts","line":318,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/commands/update-command.ts:318"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-auth.ts","line":62,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-auth.ts:62"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-auth.ts","line":175,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-auth.ts:175"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-daemon.ts","line":242,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-daemon.ts:242"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-executor.ts","line":338,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-executor.ts:338"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `claudeCliPath`. 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":"src/copilot/copilot-executor.ts","line":338,"fingerprint":"javascript.lang.security.detect-child-process:src/copilot/copilot-executor.ts:338"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-package-manager.ts","line":176,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-package-manager.ts:176"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/copilot/copilot-package-manager.ts","line":311,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/copilot/copilot-package-manager.ts:311"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low]","path":"src/cursor/cursor-profile-executor.ts","line":204,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/cursor/cursor-profile-executor.ts:204"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `claudeCliPath`. 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":"src/cursor/cursor-profile-executor.ts","line":204,"fingerprint":"javascript.lang.security.detect-child-process:src/cursor/cursor-profile-executor.ts:204"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `claudeCli`. 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":"src/delegation/headless-executor.ts","line":483,"fingerprint":"javascript.lang.security.detect-child-process:src/delegation/headless-executor.ts:483"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `command`. 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":"src/docker/docker-executor.ts","line":81,"fingerprint":"javascript.lang.security.detect-child-process:src/docker/docker-executor.ts:81"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `command`. 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":"src/docker/docker-executor.ts","line":111,"fingerprint":"javascript.lang.security.detect-child-process:src/docker/docker-executor.ts:111"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/management/checks/system-check.ts","line":51,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/management/checks/system-check.ts:51"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/targets/claude-adapter.ts","line":133,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/targets/claude-adapter.ts:133"},{"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":"src/targets/claude-adapter.ts","line":133,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/claude-adapter.ts:133"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/targets/codex-adapter.ts","line":437,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/targets/codex-adapter.ts:437"},{"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":"src/targets/codex-adapter.ts","line":437,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/codex-adapter.ts:437"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/targets/codex-adapter.ts","line":437,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/codex-adapter.ts:437"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/targets/codex-adapter.ts","line":444,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/codex-adapter.ts:444"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/targets/codex-detector.ts","line":76,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/targets/codex-detector.ts:76"},{"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":"src/targets/codex-detector.ts","line":76,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/codex-detector.ts:76"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `codexPath`. 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":"src/targets/codex-detector.ts","line":76,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/codex-detector.ts:76"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/targets/droid-adapter.ts","line":148,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/targets/droid-adapter.ts:148"},{"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":"src/targets/droid-adapter.ts","line":148,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/droid-adapter.ts:148"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/targets/droid-adapter.ts","line":148,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/droid-adapter.ts:148"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/targets/droid-adapter.ts","line":155,"fingerprint":"javascript.lang.security.detect-child-process:src/targets/droid-adapter.ts:155"},{"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":"src/utils/claude-detector.ts","line":173,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/claude-detector.ts:173"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/utils/claude-spawner.ts","line":60,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/utils/claude-spawner.ts:60"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `options`. 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":"src/utils/claude-spawner.ts","line":60,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/claude-spawner.ts:60"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `pid`. 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":"src/utils/platform-commands.ts","line":70,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:70"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `pid`. 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":"src/utils/platform-commands.ts","line":72,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:72"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/utils/platform-commands.ts","line":124,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:124"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/utils/platform-commands.ts","line":135,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:135"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/utils/platform-commands.ts","line":148,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:148"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `port`. 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":"src/utils/platform-commands.ts","line":155,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/platform-commands.ts:155"},{"rule_id":"opengrep/javascript.lang.security.audit.spawn-shell-true","severity":"high","message":"Found '$SPAWN' with '{shell: getWindowsEscapedCommandShell()}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' inste [confidence low]","path":"src/utils/shell-executor.ts","line":336,"fingerprint":"javascript.lang.security.audit.spawn-shell-true:src/utils/shell-executor.ts:336"},{"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":"src/utils/shell-executor.ts","line":336,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/shell-executor.ts:336"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `claudeCli`. 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":"src/utils/shell-executor.ts","line":336,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/shell-executor.ts:336"},{"rule_id":"opengrep/javascript.lang.security.detect-child-process","severity":"high","message":"Detected calls to child_process from a function argument `claudeCli`. 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":"src/utils/shell-executor.ts","line":344,"fingerprint":"javascript.lang.security.detect-child-process:src/utils/shell-executor.ts:344"},{"rule_id":"opengrep/javascript.express.security.injection.tainted-sql-string","severity":"high","message":"Detected user input used to manually construct a SQL string. This is usually bad practice because manual construction could accidentally result in a SQL injection. An attacker could use a SQL injection to steal or modify contents of the database. Instead, use a parameterized query which is available [confidence medium]","path":"src/web-server/routes/account-routes.ts","line":512,"fingerprint":"javascript.express.security.injection.tainted-sql-string:src/web-server/routes/account-routes.ts:512"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"lib/hooks/image-analysis-runtime.cjs","line":107,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/hooks/image-analysis-runtime.cjs:107"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"lib/hooks/image-analysis-runtime.cjs","line":111,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/hooks/image-analysis-runtime.cjs: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":"lib/hooks/image-analysis-runtime.cjs","line":122,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/hooks/image-analysis-runtime.cjs:122"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"lib/hooks/image-analysis-runtime.cjs","line":261,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/hooks/image-analysis-runtime.cjs:261"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"lib/hooks/image-analysis-runtime.cjs","line":412,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/hooks/image-analysis-runtime.cjs:412"},{"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":"lib/hooks/image-analyzer-transformer.cjs","line":404,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/hooks/image-analyzer-transformer.cjs:404"},{"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":"lib/hooks/websearch-transformer.cjs","line":109,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/hooks/websearch-transformer.cjs:109"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `value` 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-controlle [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":1421,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:lib/mcp/ccs-browser-server.cjs:1421"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `entry` 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-controlle [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":1470,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:lib/mcp/ccs-browser-server.cjs:1470"},{"rule_id":"opengrep/javascript.browser.security.raw-html-join","severity":"medium","message":"User controlled data in a HTML string may result in XSS [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":1670,"fingerprint":"javascript.browser.security.raw-html-join:lib/mcp/ccs-browser-server.cjs:1670"},{"rule_id":"opengrep/javascript.browser.security.raw-html-join","severity":"medium","message":"User controlled data in a HTML string may result in XSS [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":1715,"fingerprint":"javascript.browser.security.raw-html-join:lib/mcp/ccs-browser-server.cjs:1715"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `pattern` 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-control [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":4923,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:lib/mcp/ccs-browser-server.cjs:4923"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `matcher` 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-control [confidence low]","path":"lib/mcp/ccs-browser-server.cjs","line":4951,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:lib/mcp/ccs-browser-server.cjs:4951"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `rule` 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":"lib/mcp/ccs-browser-server.cjs","line":4971,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:lib/mcp/ccs-browser-server.cjs:4971"},{"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":"lib/mcp/ccs-image-analysis-server.cjs","line":173,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/mcp/ccs-image-analysis-server.cjs:173"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `toolArgs` 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":"lib/mcp/ccs-image-analysis-server.cjs","line":175,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/mcp/ccs-image-analysis-server.cjs:175"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `toolArgs` 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":"lib/mcp/ccs-image-analysis-server.cjs","line":181,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/mcp/ccs-image-analysis-server.cjs:181"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `toolArgs` 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":"lib/mcp/ccs-image-analysis-server.cjs","line":190,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/mcp/ccs-image-analysis-server.cjs:190"},{"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":"lib/mcp/ccs-image-analysis-server.cjs","line":192,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/mcp/ccs-image-analysis-server.cjs:192"},{"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":"lib/mcp/ccs-image-analysis-server.cjs","line":193,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:lib/mcp/ccs-image-analysis-server.cjs:193"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `message` 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":"lib/mcp/ccs-image-analysis-server.cjs","line":294,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:lib/mcp/ccs-image-analysis-server.cjs:294"},{"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":"scripts/add-shebang.js","line":13,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/add-shebang.js:13"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `executablePath` 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":"scripts/add-shebang.js","line":22,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/add-shebang.js:22"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":79,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:79"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":79,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:79"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":83,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:83"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":83,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:83"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":158,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:158"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":158,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:158"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":158,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:158"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":165,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:165"},{"rule_id":"opengrep/javascript.jquery.security.audit.jquery-insecure-selector","severity":"medium","message":"User controlled data in a `$(...)` is an anti-pattern that can lead to XSS vulnerabilities [confidence low]","path":"scripts/code-reviewer.ts","line":165,"fingerprint":"javascript.jquery.security.audit.jquery-insecure-selector:scripts/code-reviewer.ts:165"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dirPath` 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":"scripts/generate-throw-error-baseline.js","line":55,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/generate-throw-error-baseline.js:55"},{"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":"scripts/generate-throw-error-baseline.js","line":61,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/generate-throw-error-baseline.js:61"},{"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":"scripts/generate-throw-error-baseline.js","line":61,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/generate-throw-error-baseline.js:61"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dirPath` 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":"scripts/hardening-inventory.js","line":107,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/hardening-inventory.js:107"},{"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":"scripts/hardening-inventory.js","line":110,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/hardening-inventory.js:110"},{"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":"scripts/hardening-inventory.js","line":110,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/hardening-inventory.js:110"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `[reportPath, expected]` 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":"scripts/hardening-inventory.js","line":563,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/hardening-inventory.js:563"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `dirPath` 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":"scripts/maintainability-metrics.js","line":166,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/maintainability-metrics.js:166"},{"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":"scripts/maintainability-metrics.js","line":172,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/maintainability-metrics.js:172"},{"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":"scripts/maintainability-metrics.js","line":172,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/maintainability-metrics.js:172"},{"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":"scripts/maintainability-metrics.js","line":212,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/maintainability-metrics.js:212"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `rootDir` 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":"scripts/maintainability-metrics.js","line":219,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/maintainability-metrics.js:219"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"scripts/postinstall.js","line":36,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:36"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"scripts/postinstall.js","line":40,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:40"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"scripts/postinstall.js","line":44,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:44"},{"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":"scripts/postinstall.js","line":270,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/postinstall.js:270"},{"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":"scripts/postinstall.js","line":271,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/postinstall.js:271"},{"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":"scripts/postinstall.js","line":273,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:273"},{"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":"scripts/postinstall.js","line":274,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:274"},{"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":"scripts/postinstall.js","line":274,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/postinstall.js:274"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"scripts/verify-bundle.js","line":25,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/verify-bundle.js:25"},{"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":"scripts/verify-bundle.js","line":31,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:scripts/verify-bundle.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":"scripts/verify-bundle.js","line":34,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/verify-bundle.js:34"},{"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":"scripts/verify-bundle.js","line":34,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:scripts/verify-bundle.js:34"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/cliproxy-profile-bridge.ts","line":71,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/cliproxy-profile-bridge.ts:71"},{"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":"src/api/services/cliproxy-profile-bridge.ts","line":71,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/cliproxy-profile-bridge.ts:71"},{"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":"src/api/services/profile-lifecycle-service.ts","line":60,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-lifecycle-service.ts:60"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":65,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:65"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":66,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:66"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":70,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:70"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":71,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:71"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":71,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:71"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":129,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:129"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":143,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:143"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":147,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:147"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-lifecycle-service.ts","line":148,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:148"},{"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":"src/api/services/profile-lifecycle-service.ts","line":172,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-lifecycle-service.ts:172"},{"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":"src/api/services/profile-lifecycle-service.ts","line":270,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:270"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `destination` 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":"src/api/services/profile-lifecycle-service.ts","line":275,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:275"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `destination` 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":"src/api/services/profile-lifecycle-service.ts","line":289,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:289"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `destination` 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":"src/api/services/profile-lifecycle-service.ts","line":291,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:291"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-lifecycle-service.ts","line":331,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:331"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `bundle` 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":"src/api/services/profile-lifecycle-service.ts","line":423,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:423"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `options` 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":"src/api/services/profile-lifecycle-service.ts","line":423,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:423"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `bundle` 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":"src/api/services/profile-lifecycle-service.ts","line":424,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:424"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `options` 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":"src/api/services/profile-lifecycle-service.ts","line":424,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-lifecycle-service.ts:424"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `settingsReference` 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":"src/api/services/profile-reader.ts","line":55,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-reader.ts:55"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `settingsReference` 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":"src/api/services/profile-reader.ts","line":56,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-reader.ts:56"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-writer.ts","line":89,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:89"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-writer.ts","line":93,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:93"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/api/services/profile-writer.ts","line":94,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:94"},{"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":"src/api/services/profile-writer.ts","line":108,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-writer.ts:108"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":144,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:144"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":145,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:145"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":147,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:147"},{"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":"src/api/services/profile-writer.ts","line":207,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-writer.ts:207"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":243,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:243"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":244,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:244"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":245,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:245"},{"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":"src/api/services/profile-writer.ts","line":340,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-writer.ts:340"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `options` 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":"src/api/services/profile-writer.ts","line":341,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:341"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `provider` 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":"src/api/services/profile-writer.ts","line":341,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:341"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `config` 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":"src/api/services/profile-writer.ts","line":451,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:451"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":451,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:451"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `config` 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":"src/api/services/profile-writer.ts","line":452,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:452"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":452,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:452"},{"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":"src/api/services/profile-writer.ts","line":481,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/api/services/profile-writer.ts:481"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":482,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:482"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `name` 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":"src/api/services/profile-writer.ts","line":483,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/api/services/profile-writer.ts:483"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"src/auth/account-profile-diagnostics.ts","line":36,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/account-profile-diagnostics.ts:36"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"src/auth/account-profile-diagnostics.ts","line":45,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/account-profile-diagnostics.ts:45"},{"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":"src/auth/account-profile-diagnostics.ts","line":63,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:63"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `instancePath` 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":"src/auth/account-profile-diagnostics.ts","line":66,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/account-profile-diagnostics.ts:66"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `instancePath` 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":"src/auth/account-profile-diagnostics.ts","line":85,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/account-profile-diagnostics.ts:85"},{"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":"src/auth/account-profile-diagnostics.ts","line":118,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:118"},{"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":"src/auth/account-profile-diagnostics.ts","line":119,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:119"},{"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":"src/auth/account-profile-diagnostics.ts","line":121,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:121"},{"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":"src/auth/account-profile-diagnostics.ts","line":122,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts: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":"src/auth/account-profile-diagnostics.ts","line":135,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:135"},{"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":"src/auth/account-profile-diagnostics.ts","line":135,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:135"},{"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":"src/auth/account-profile-diagnostics.ts","line":136,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:136"},{"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":"src/auth/account-profile-diagnostics.ts","line":136,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/account-profile-diagnostics.ts:136"},{"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":"src/auth/auth-commands.ts","line":69,"fingerprint":"javascript.lang.security.html-in-template-string:src/auth/auth-commands.ts:69"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `sourcePath` 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":"src/auth/commands/backup-command.ts","line":25,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/backup-command.ts:25"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `sourcePath` 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":"src/auth/commands/backup-command.ts","line":29,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/backup-command.ts:29"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `targetPath` 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":"src/auth/commands/backup-command.ts","line":29,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/backup-command.ts: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":"src/auth/commands/backup-command.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/backup-command.ts:81"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/backup-command.ts","line":82,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/backup-command.ts:82"},{"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":"src/auth/commands/backup-command.ts","line":88,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/backup-command.ts:88"},{"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":"src/auth/commands/backup-command.ts","line":89,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/backup-command.ts:89"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/backup-command.ts","line":105,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/backup-command.ts:105"},{"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":"src/auth/commands/backup-command.ts","line":105,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/backup-command.ts:105"},{"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":"src/auth/commands/remove-command.ts","line":48,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/remove-command.ts:48"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/remove-command.ts","line":49,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/remove-command.ts:49"},{"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":"src/auth/commands/remove-command.ts","line":49,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/remove-command.ts:49"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/remove-command.ts","line":50,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/remove-command.ts:50"},{"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":"src/auth/commands/remove-command.ts","line":50,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/remove-command.ts:50"},{"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":"src/auth/commands/show-command.ts","line":57,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/show-command.ts:57"},{"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":"src/auth/commands/show-command.ts","line":62,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/commands/show-command.ts:62"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/show-command.ts","line":63,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/show-command.ts:63"},{"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":"src/auth/commands/show-command.ts","line":63,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/show-command.ts:63"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `args` 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":"src/auth/commands/show-command.ts","line":64,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/show-command.ts:64"},{"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":"src/auth/commands/show-command.ts","line":64,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/commands/show-command.ts:64"},{"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":"src/auth/profile-detector.ts","line":146,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/profile-detector.ts:146"},{"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":"src/auth/profile-detector.ts","line":147,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/profile-detector.ts:147"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `directoryPath` 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":"src/auth/resume-lane-diagnostics.ts","line":56,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:56"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/auth/resume-lane-diagnostics.ts","line":61,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:61"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `projectsDir` 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":"src/auth/resume-lane-diagnostics.ts","line":68,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:68"},{"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":"src/auth/resume-lane-diagnostics.ts","line":84,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:84"},{"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":"src/auth/resume-lane-diagnostics.ts","line":86,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:86"},{"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":"src/auth/resume-lane-diagnostics.ts","line":89,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:89"},{"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":"src/auth/resume-lane-diagnostics.ts","line":94,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:94"},{"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":"src/auth/resume-lane-diagnostics.ts","line":98,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:98"},{"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":"src/auth/resume-lane-diagnostics.ts","line":98,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:98"},{"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":"src/auth/resume-lane-diagnostics.ts","line":99,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:99"},{"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":"src/auth/resume-lane-diagnostics.ts","line":99,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:99"},{"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":"src/auth/resume-lane-diagnostics.ts","line":102,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:102"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `projectEntry` 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":"src/auth/resume-lane-diagnostics.ts","line":102,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:102"},{"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":"src/auth/resume-lane-diagnostics.ts","line":108,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:108"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `projectEntry` 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":"src/auth/resume-lane-diagnostics.ts","line":108,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:108"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `sessionId` 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":"src/auth/resume-lane-diagnostics.ts","line":108,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:108"},{"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":"src/auth/resume-lane-diagnostics.ts","line":112,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:112"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `projectEntry` 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":"src/auth/resume-lane-diagnostics.ts","line":112,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:112"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `sessionId` 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":"src/auth/resume-lane-diagnostics.ts","line":112,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:112"},{"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":"src/auth/resume-lane-diagnostics.ts","line":115,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:115"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `projectEntry` 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":"src/auth/resume-lane-diagnostics.ts","line":115,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:115"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `sessionId` 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":"src/auth/resume-lane-diagnostics.ts","line":115,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/auth/resume-lane-diagnostics.ts:115"},{"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":"src/auth/resume-lane-diagnostics.ts","line":206,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-diagnostics.ts:206"},{"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":"src/auth/resume-lane-warning.ts","line":55,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:55"},{"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":"src/auth/resume-lane-warning.ts","line":55,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:55"},{"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":"src/auth/resume-lane-warning.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:81"},{"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":"src/auth/resume-lane-warning.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:81"},{"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":"src/auth/resume-lane-warning.ts","line":89,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:89"},{"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":"src/auth/resume-lane-warning.ts","line":89,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:89"},{"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":"src/auth/resume-lane-warning.ts","line":102,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:102"},{"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":"src/auth/resume-lane-warning.ts","line":102,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/auth/resume-lane-warning.ts:102"},{"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":"src/channels/official-channels-runtime.ts","line":804,"fingerprint":"javascript.lang.security.html-in-template-string:src/channels/official-channels-runtime.ts:804"},{"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":"src/channels/official-channels-store.ts","line":36,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/channels/official-channels-store.ts:36"},{"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":"src/channels/official-channels-store.ts","line":46,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/channels/official-channels-store.ts:46"},{"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":"src/channels/official-channels-store.ts","line":46,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/channels/official-channels-store.ts:46"},{"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":"src/channels/official-channels-store.ts","line":48,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/channels/official-channels-store.ts:48"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":52,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:52"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":52,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:52"},{"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":"src/channels/official-channels-store.ts","line":79,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/channels/official-channels-store.ts:79"},{"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":"src/channels/official-channels-store.ts","line":100,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/channels/official-channels-store.ts:100"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":113,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:113"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":115,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:115"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":116,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:116"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":116,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:116"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":117,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:117"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/channels/official-channels-store.ts","line":134,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/channels/official-channels-store.ts:134"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-regexp","severity":"medium","message":"RegExp() called with a `channelId` 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-contr [confidence low]","path":"src/channels/official-channels-store.ts","line":193,"fingerprint":"javascript.lang.security.audit.detect-non-literal-regexp:src/channels/official-channels-store.ts:193"},{"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":"src/cliproxy/accounts/account-safety-cross-lane.ts","line":57,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/account-safety-cross-lane.ts:57"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `claudeConfigDir` 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":"src/cliproxy/accounts/account-safety-cross-lane.ts","line":58,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/account-safety-cross-lane.ts:58"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `errorMessage` 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":"src/cliproxy/accounts/account-safety.ts","line":392,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/account-safety.ts:392"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `errorMessage` 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":"src/cliproxy/accounts/account-safety.ts","line":671,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/account-safety.ts:671"},{"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":"src/cliproxy/accounts/drain-order.ts","line":250,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/drain-order.ts:250"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":251,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:251"},{"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":"src/cliproxy/accounts/drain-order.ts","line":273,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/drain-order.ts:273"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":275,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:275"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":279,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:279"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":285,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:285"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":286,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:286"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":286,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:286"},{"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":"src/cliproxy/accounts/drain-order.ts","line":362,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/drain-order.ts:362"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":364,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:364"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":368,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:368"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":378,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:378"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":379,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:379"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/drain-order.ts","line":379,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/drain-order.ts:379"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `options` 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":"src/cliproxy/accounts/registry.ts","line":140,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:140"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `options` 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":"src/cliproxy/accounts/registry.ts","line":176,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:176"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `registryPath` 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":"src/cliproxy/accounts/registry.ts","line":311,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:311"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `registryPath` 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":"src/cliproxy/accounts/registry.ts","line":320,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:320"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `registryPath` 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":"src/cliproxy/accounts/registry.ts","line":325,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:325"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `registryPath` 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":"src/cliproxy/accounts/registry.ts","line":325,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/registry.ts:325"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:81"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":91,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:91"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":92,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:92"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":95,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:95"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":104,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:104"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":104,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:104"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":119,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:119"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":120,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:120"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":123,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:123"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":128,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:128"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":128,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:128"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":141,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts: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":"src/cliproxy/accounts/token-file-ops.ts","line":142,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:142"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":146,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:146"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":148,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:148"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":155,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:155"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":157,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:157"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":170,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:170"},{"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":"src/cliproxy/accounts/token-file-ops.ts","line":171,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/accounts/token-file-ops.ts:171"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":172,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:172"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenFile` 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":"src/cliproxy/accounts/token-file-ops.ts","line":172,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/accounts/token-file-ops.ts:172"},{"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":"src/cliproxy/auth/oauth-handler.ts","line":540,"fingerprint":"javascript.lang.security.html-in-template-string:src/cliproxy/auth/oauth-handler.ts:540"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `provider` 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":"src/cliproxy/auth/oauth-handler.ts","line":629,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/oauth-handler.ts:629"},{"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":"src/cliproxy/auth/oauth-handler.ts","line":1386,"fingerprint":"javascript.lang.security.html-in-template-string:src/cliproxy/auth/oauth-handler.ts:1386"},{"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":"src/cliproxy/auth/oauth-start-failure-guidance.ts","line":58,"fingerprint":"javascript.lang.security.html-in-template-string:src/cliproxy/auth/oauth-start-failure-guidance.ts:58"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `provider` 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":"src/cliproxy/auth/token-expiry-checker.ts","line":63,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-expiry-checker.ts:63"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `provider` 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":"src/cliproxy/auth/token-expiry-checker.ts","line":68,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-expiry-checker.ts:68"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `provider` 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":"src/cliproxy/auth/token-expiry-checker.ts","line":75,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-expiry-checker.ts:75"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `filePath` 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":"src/cliproxy/auth/token-manager.ts","line":38,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-manager.ts:38"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenDir` 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":"src/cliproxy/auth/token-manager.ts","line":73,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-manager.ts:73"},{"rule_id":"opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename","severity":"medium","message":"Detected that function argument `tokenDir` 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":"src/cliproxy/auth/token-manager.ts","line":77,"fingerprint":"javascript.lang.security.audit.detect-non-literal-fs-filename:src/cliproxy/auth/token-manager.ts:77"},{"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":"src/cliproxy/auth/token-manager.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/auth/token-manager.ts:81"},{"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":"src/cliproxy/auth/token-manager.ts","line":81,"fingerprint":"javascript.lang.security.audit.path-traversal.path-join-resolve-traversal:src/cliproxy/auth/token-manager.ts:81"}],"evidence":[],"data":{"rulesets":["typescript","javascript","swift","bash","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":52.0,"vulnerabilities":207.0,"vulns_critical":6.0,"vulns_high":94.0,"vulns_medium":89.0,"vulns_low":18.0,"vulns_unknown":0.0,"penalty":368.0},"findings":[{"rule_id":"osv/GHSA-2w6w-674q-4c4q","severity":"critical","message":"handlebars@4.7.8 (npm) is affected by GHSA-2w6w-674q-4c4q","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-2w6w-674q-4c4q"},{"rule_id":"osv/GHSA-8r5x-fm3f-whwj","severity":"critical","message":"handlebars@4.7.8 (npm) is affected by GHSA-8r5x-fm3f-whwj","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-8r5x-fm3f-whwj"},{"rule_id":"osv/GHSA-p8wg-vrv2-v86f","severity":"critical","message":"handlebars@4.7.8 (npm) is affected by GHSA-p8wg-vrv2-v86f","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-p8wg-vrv2-v86f"},{"rule_id":"osv/GHSA-jqcg-44mw-7w3h","severity":"critical","message":"proxy-addr@2.0.7 (npm) is affected by GHSA-jqcg-44mw-7w3h","path":"bun.lock","line":null,"fingerprint":"proxy-addr@2.0.7 (npm):GHSA-jqcg-44mw-7w3h"},{"rule_id":"osv/GHSA-23hp-3jrh-7fpw","severity":"critical","message":"tar@7.5.2 (npm) is affected by GHSA-23hp-3jrh-7fpw","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-23hp-3jrh-7fpw"},{"rule_id":"osv/GHSA-5xrq-8626-4rwp","severity":"critical","message":"vitest@4.0.16 (npm) is affected by GHSA-5xrq-8626-4rwp","path":"ui/bun.lock","line":null,"fingerprint":"vitest@4.0.16 (npm):GHSA-5xrq-8626-4rwp"},{"rule_id":"osv/GHSA-x8mw-p69m-v3mx","severity":"high","message":"@fastify/busboy@2.1.1 (npm) is affected by GHSA-x8mw-p69m-v3mx","path":"bun.lock","line":null,"fingerprint":"@fastify/busboy@2.1.1 (npm):GHSA-x8mw-p69m-v3mx"},{"rule_id":"osv/GHSA-7h2j-956f-4vf2","severity":"high","message":"@isaacs/brace-expansion@5.0.0 (npm) is affected by GHSA-7h2j-956f-4vf2","path":"bun.lock","line":null,"fingerprint":"@isaacs/brace-expansion@5.0.0 (npm):GHSA-7h2j-956f-4vf2"},{"rule_id":"osv/GHSA-27r3-jxmh-p828","severity":"high","message":"body-parser@1.20.4 (npm) is affected by GHSA-27r3-jxmh-p828","path":"bun.lock","line":null,"fingerprint":"body-parser@1.20.4 (npm):GHSA-27r3-jxmh-p828"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-mh99-v99m-4gvg; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-qhr7-859c-m2p7; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-rgw5-rvv9-x895; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-3jxr-9vmj-r5cp; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-6j4f-fj2g-mc7p; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-mh99-v99m-4gvg; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-qhr7-859c-m2p7; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-rgw5-rvv9-x895; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.28.1 (npm) is affected by GHSA-73wf-gq98-2v4g; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"browserslist@4.28.1 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.28.1 (npm) is affected by GHSA-c83g-rgw3-j3cx; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"browserslist@4.28.1 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-46wh-pxpv-q5gq","severity":"high","message":"express-rate-limit@8.2.1 (npm) is affected by GHSA-46wh-pxpv-q5gq","path":"bun.lock","line":null,"fingerprint":"express-rate-limit@8.2.1 (npm):GHSA-46wh-pxpv-q5gq"},{"rule_id":"osv/GHSA-4c8g-83qw-93j6","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-4c8g-83qw-93j6","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-4c8g-83qw-93j6"},{"rule_id":"osv/GHSA-7p8r-x3mc-p8w7","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-7p8r-x3mc-p8w7","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-7p8r-x3mc-p8w7"},{"rule_id":"osv/GHSA-f65p-4m7j-42xc","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-f65p-4m7j-42xc","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-f65p-4m7j-42xc"},{"rule_id":"osv/GHSA-jqff-g426-hqxp","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-jqff-g426-hqxp","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-jqff-g426-hqxp"},{"rule_id":"osv/GHSA-q3j6-qgpj-74h6","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-q3j6-qgpj-74h6","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-q3j6-qgpj-74h6"},{"rule_id":"osv/GHSA-qw65-cvwx-89v3","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-qw65-cvwx-89v3","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-qw65-cvwx-89v3"},{"rule_id":"osv/GHSA-v2hh-gcrm-f6hx","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-v2hh-gcrm-f6hx","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-v2hh-gcrm-f6hx"},{"rule_id":"osv/GHSA-v39h-62p7-jpjc","severity":"high","message":"fast-uri@3.1.0 (npm) is affected by GHSA-v39h-62p7-jpjc","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-v39h-62p7-jpjc"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-25h7-pfq9-p65f"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-rf6f-7fwh-wjgh; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-3mfm-83xf-c92r","severity":"high","message":"handlebars@4.7.8 (npm) is affected by GHSA-3mfm-83xf-c92r","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-3mfm-83xf-c92r"},{"rule_id":"osv/GHSA-9cx6-37pm-9jff","severity":"high","message":"handlebars@4.7.8 (npm) is affected by GHSA-9cx6-37pm-9jff","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-9cx6-37pm-9jff"},{"rule_id":"osv/GHSA-xhpv-hc6g-r9c6","severity":"high","message":"handlebars@4.7.8 (npm) is affected by GHSA-xhpv-hc6g-r9c6","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-xhpv-hc6g-r9c6"},{"rule_id":"osv/GHSA-xjpj-3mr7-gcpf","severity":"high","message":"handlebars@4.7.8 (npm) is affected by GHSA-xjpj-3mr7-gcpf","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-xjpj-3mr7-gcpf"},{"rule_id":"osv/GHSA-mwp4-54f8-5fhr","severity":"high","message":"ip-address@10.0.1 (npm) is affected by GHSA-mwp4-54f8-5fhr","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-mwp4-54f8-5fhr"},{"rule_id":"osv/GHSA-mwp4-54f8-5fhr","severity":"high","message":"ip-address@10.1.0 (npm) is affected by GHSA-mwp4-54f8-5fhr","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-mwp4-54f8-5fhr"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-2883-xcg3-v3hh; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-52cp-r559-cp3m; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-5p4m-2wfm-xmqj; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-r5fr-rjxr-66jc","severity":"high","message":"lodash-es@4.17.21 (npm) is affected by GHSA-r5fr-rjxr-66jc","path":"bun.lock","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-r5fr-rjxr-66jc"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@10.1.1 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"bun.lock","line":null,"fingerprint":"minimatch@10.1.1 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@10.1.1 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"bun.lock","line":null,"fingerprint":"minimatch@10.1.1 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@10.1.1 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"bun.lock","line":null,"fingerprint":"minimatch@10.1.1 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-3ppc-4f35-3m26; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-7r86-cg39-jmmj; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-23c5-xmqv-rm74; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-3ppc-4f35-3m26; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-7r86-cg39-jmmj; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-28wg-ghj8-5hjv; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-2v37-7h3g-55p8; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-xwg4-73v4-xw9w","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-xwg4-73v4-xw9w; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-w4pp-8pjf-rmxw","severity":"high","message":"pacote@21.0.4 (npm) is affected by GHSA-w4pp-8pjf-rmxw","path":"bun.lock","line":null,"fingerprint":"pacote@21.0.4 (npm):GHSA-w4pp-8pjf-rmxw"},{"rule_id":"osv/GHSA-37ch-88jc-xwx2","severity":"high","message":"path-to-regexp@0.1.12 (npm) is affected by GHSA-37ch-88jc-xwx2","path":"bun.lock","line":null,"fingerprint":"path-to-regexp@0.1.12 (npm):GHSA-37ch-88jc-xwx2"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"bun.lock","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@4.0.3 (npm) is affected by GHSA-c2c7-rcm5-vvqj; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-r28c-9q8g-f849; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-mw96-cpmx-2vgc","severity":"high","message":"rollup@4.53.3 (npm) is affected by GHSA-mw96-cpmx-2vgc; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"rollup@4.53.3 (npm):GHSA-mw96-cpmx-2vgc"},{"rule_id":"osv/GHSA-5c6j-r48x-rmvq","severity":"high","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-5c6j-r48x-rmvq","path":"bun.lock","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-5c6j-r48x-rmvq"},{"rule_id":"osv/GHSA-52v5-jr5w-gjxr","severity":"high","message":"sigstore@4.0.0 (npm) is affected by GHSA-52v5-jr5w-gjxr","path":"bun.lock","line":null,"fingerprint":"sigstore@4.0.0 (npm):GHSA-52v5-jr5w-gjxr"},{"rule_id":"osv/GHSA-7w5x-hrqm-74c2","severity":"high","message":"smol-toml@1.6.1 (npm) is affected by GHSA-7w5x-hrqm-74c2; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"smol-toml@1.6.1 (npm):GHSA-7w5x-hrqm-74c2"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-34x7-hfp2-rc4v","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-34x7-hfp2-rc4v","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-34x7-hfp2-rc4v"},{"rule_id":"osv/GHSA-83g3-92jg-28cx","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-83g3-92jg-28cx","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-83g3-92jg-28cx"},{"rule_id":"osv/GHSA-8qq5-rm4j-mr97","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-8qq5-rm4j-mr97","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-8qq5-rm4j-mr97"},{"rule_id":"osv/GHSA-8x88-c5mf-7j5w","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-8x88-c5mf-7j5w","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-8x88-c5mf-7j5w"},{"rule_id":"osv/GHSA-9ppj-qmqm-q256","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-9ppj-qmqm-q256","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-9ppj-qmqm-q256"},{"rule_id":"osv/GHSA-qffp-2rhf-9h96","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-qffp-2rhf-9h96","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-qffp-2rhf-9h96"},{"rule_id":"osv/GHSA-r292-9mhp-454m","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-r292-9mhp-454m","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-r292-9mhp-454m"},{"rule_id":"osv/GHSA-r6q2-hw4h-h46w","severity":"high","message":"tar@7.5.2 (npm) is affected by GHSA-r6q2-hw4h-h46w","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-r6q2-hw4h-h46w"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@5.29.0 (npm) is affected by GHSA-2m5v-pch6-74hx","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@5.29.0 (npm) is affected by GHSA-qrxm-fqhp-jwvm","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-v9p9-hfj2-hcw8","severity":"high","message":"undici@5.29.0 (npm) is affected by GHSA-v9p9-hfj2-hcw8","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-v9p9-hfj2-hcw8"},{"rule_id":"osv/GHSA-vrm6-8vpv-qv8q","severity":"high","message":"undici@5.29.0 (npm) is affected by GHSA-vrm6-8vpv-qv8q","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-vrm6-8vpv-qv8q"},{"rule_id":"osv/GHSA-vxpw-j846-p89q","severity":"high","message":"undici@5.29.0 (npm) is affected by GHSA-vxpw-j846-p89q","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-vxpw-j846-p89q"},{"rule_id":"osv/GHSA-2m5v-pch6-74hx","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-2m5v-pch6-74hx","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-2m5v-pch6-74hx"},{"rule_id":"osv/GHSA-4cwx-7wf7-3272","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-4cwx-7wf7-3272","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-4cwx-7wf7-3272"},{"rule_id":"osv/GHSA-4w7w-5xrc-9h26","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-4w7w-5xrc-9h26","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-4w7w-5xrc-9h26"},{"rule_id":"osv/GHSA-f269-vfmq-vjvj","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-f269-vfmq-vjvj","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-f269-vfmq-vjvj"},{"rule_id":"osv/GHSA-qrxm-fqhp-jwvm","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-qrxm-fqhp-jwvm","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-qrxm-fqhp-jwvm"},{"rule_id":"osv/GHSA-rfgv-xxqx-mfg5","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-rfgv-xxqx-mfg5","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-rfgv-xxqx-mfg5"},{"rule_id":"osv/GHSA-v9p9-hfj2-hcw8","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-v9p9-hfj2-hcw8","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-v9p9-hfj2-hcw8"},{"rule_id":"osv/GHSA-vrm6-8vpv-qv8q","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-vrm6-8vpv-qv8q","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-vrm6-8vpv-qv8q"},{"rule_id":"osv/GHSA-vxpw-j846-p89q","severity":"high","message":"undici@7.16.0 (npm) is affected by GHSA-vxpw-j846-p89q","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-vxpw-j846-p89q"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-587h-7wmj-h5pm; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-p9ff-h696-f583","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-p9ff-h696-f583; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-p9ff-h696-f583"},{"rule_id":"osv/GHSA-v2wj-q39q-566r","severity":"high","message":"vite@7.2.6 (npm) is affected by GHSA-v2wj-q39q-566r; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-v2wj-q39q-566r"},{"rule_id":"osv/GHSA-96hv-2xvq-fx4p","severity":"high","message":"ws@8.18.3 (npm) is affected by GHSA-96hv-2xvq-fx4p; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"ws@8.18.3 (npm):GHSA-96hv-2xvq-fx4p"},{"rule_id":"osv/GHSA-2w69-qvjg-hvjx","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-2w69-qvjg-hvjx","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-2w69-qvjg-hvjx"},{"rule_id":"osv/GHSA-49rj-9fvp-4h2h","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-49rj-9fvp-4h2h","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-49rj-9fvp-4h2h"},{"rule_id":"osv/GHSA-8646-j5j9-6r62","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-8646-j5j9-6r62","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-8646-j5j9-6r62"},{"rule_id":"osv/GHSA-8v8x-cx79-35w7","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-8v8x-cx79-35w7","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-8v8x-cx79-35w7"},{"rule_id":"osv/GHSA-8x6r-g9mw-2r78","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-8x6r-g9mw-2r78","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-8x6r-g9mw-2r78"},{"rule_id":"osv/GHSA-chx6-hx7r-mcp5","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-chx6-hx7r-mcp5","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-chx6-hx7r-mcp5"},{"rule_id":"osv/GHSA-rxv8-25v2-qmq8","severity":"high","message":"react-router@7.10.1 (npm) is affected by GHSA-rxv8-25v2-qmq8","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-rxv8-25v2-qmq8"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@4.1.13 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"ui/bun.lock","line":null,"fingerprint":"zod@4.1.13 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-gxm5-99cw-xjw9","severity":"medium","message":"@fastify/busboy@2.1.1 (npm) is affected by GHSA-gxm5-99cw-xjw9","path":"bun.lock","line":null,"fingerprint":"@fastify/busboy@2.1.1 (npm):GHSA-gxm5-99cw-xjw9"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.7 (npm) is affected by GHSA-p498-v437-472g; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"@humanfs/node@0.16.7 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-jfc7-64v2-mr8c","severity":"medium","message":"@sigstore/core@3.0.0 (npm) is affected by GHSA-jfc7-64v2-mr8c","path":"bun.lock","line":null,"fingerprint":"@sigstore/core@3.0.0 (npm):GHSA-jfc7-64v2-mr8c"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@8.17.1 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"bun.lock","line":null,"fingerprint":"ajv@8.17.1 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-w5vr-8v7q-w6rv","severity":"medium","message":"baseline-browser-mapping@2.9.4 (npm) is affected by GHSA-w5vr-8v7q-w6rv; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"baseline-browser-mapping@2.9.4 (npm):GHSA-w5vr-8v7q-w6rv"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-f886-m6hf-6m8v; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-q2hr-2g5m-vwhr; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-hrr3-gc8f-f4qj","severity":"medium","message":"fast-uri@3.1.0 (npm) is affected by GHSA-hrr3-gc8f-f4qj","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-hrr3-gc8f-f4qj"},{"rule_id":"osv/GHSA-w74x-v6f9-j3xg","severity":"medium","message":"fast-uri@3.1.0 (npm) is affected by GHSA-w74x-v6f9-j3xg","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-w74x-v6f9-j3xg"},{"rule_id":"osv/GHSA-3g3m-2fjr-6pw4","severity":"medium","message":"glob@10.5.0 (npm) is affected by GHSA-3g3m-2fjr-6pw4","path":"bun.lock","line":null,"fingerprint":"glob@10.5.0 (npm):GHSA-3g3m-2fjr-6pw4"},{"rule_id":"osv/GHSA-3g3m-2fjr-6pw4","severity":"medium","message":"glob@13.0.0 (npm) is affected by GHSA-3g3m-2fjr-6pw4","path":"bun.lock","line":null,"fingerprint":"glob@13.0.0 (npm):GHSA-3g3m-2fjr-6pw4"},{"rule_id":"osv/GHSA-2qvq-rjwj-gvw9","severity":"medium","message":"handlebars@4.7.8 (npm) is affected by GHSA-2qvq-rjwj-gvw9","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-2qvq-rjwj-gvw9"},{"rule_id":"osv/GHSA-7rx3-28cr-v5wh","severity":"medium","message":"handlebars@4.7.8 (npm) is affected by GHSA-7rx3-28cr-v5wh","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-7rx3-28cr-v5wh"},{"rule_id":"osv/GHSA-xw65-4hp5-5hc7","severity":"medium","message":"handlebars@4.7.8 (npm) is affected by GHSA-xw65-4hp5-5hc7","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-xw65-4hp5-5hc7"},{"rule_id":"osv/GHSA-h3mg-xc3c-68pw","severity":"medium","message":"ip-address@10.0.1 (npm) is affected by GHSA-h3mg-xc3c-68pw","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-h3mg-xc3c-68pw"},{"rule_id":"osv/GHSA-j6r3-76f7-8jcv","severity":"medium","message":"ip-address@10.0.1 (npm) is affected by GHSA-j6r3-76f7-8jcv","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-j6r3-76f7-8jcv"},{"rule_id":"osv/GHSA-rpw4-54j3-4h4q","severity":"medium","message":"ip-address@10.0.1 (npm) is affected by GHSA-rpw4-54j3-4h4q","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-rpw4-54j3-4h4q"},{"rule_id":"osv/GHSA-rxp7-6hxx-x8q5","severity":"medium","message":"ip-address@10.0.1 (npm) is affected by GHSA-rxp7-6hxx-x8q5","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-rxp7-6hxx-x8q5"},{"rule_id":"osv/GHSA-v2v4-37r5-5v8g","severity":"medium","message":"ip-address@10.0.1 (npm) is affected by GHSA-v2v4-37r5-5v8g","path":"bun.lock","line":null,"fingerprint":"ip-address@10.0.1 (npm):GHSA-v2v4-37r5-5v8g"},{"rule_id":"osv/GHSA-h3mg-xc3c-68pw","severity":"medium","message":"ip-address@10.1.0 (npm) is affected by GHSA-h3mg-xc3c-68pw","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-h3mg-xc3c-68pw"},{"rule_id":"osv/GHSA-j6r3-76f7-8jcv","severity":"medium","message":"ip-address@10.1.0 (npm) is affected by GHSA-j6r3-76f7-8jcv","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-j6r3-76f7-8jcv"},{"rule_id":"osv/GHSA-rpw4-54j3-4h4q","severity":"medium","message":"ip-address@10.1.0 (npm) is affected by GHSA-rpw4-54j3-4h4q","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-rpw4-54j3-4h4q"},{"rule_id":"osv/GHSA-rxp7-6hxx-x8q5","severity":"medium","message":"ip-address@10.1.0 (npm) is affected by GHSA-rxp7-6hxx-x8q5","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-rxp7-6hxx-x8q5"},{"rule_id":"osv/GHSA-v2v4-37r5-5v8g","severity":"medium","message":"ip-address@10.1.0 (npm) is affected by GHSA-v2v4-37r5-5v8g","path":"bun.lock","line":null,"fingerprint":"ip-address@10.1.0 (npm):GHSA-v2v4-37r5-5v8g"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.1 (npm) is affected by GHSA-h67p-54hq-rp68; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"lodash@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-xxjr-mmjv-4gpg","severity":"medium","message":"lodash-es@4.17.21 (npm) is affected by GHSA-xxjr-mmjv-4gpg","path":"bun.lock","line":null,"fingerprint":"lodash-es@4.17.21 (npm):GHSA-xxjr-mmjv-4gpg"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.1.1 (npm) is affected by GHSA-g3hv-75wg-m249","path":"bun.lock","line":null,"fingerprint":"minimatch@10.1.1 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"bun.lock","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@4.0.3 (npm) is affected by GHSA-3v7f-55p6-f55p; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-qx2v-qp2m-jg93; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@7.1.1 (npm) is affected by GHSA-rj75-hqrm-r3gf","path":"bun.lock","line":null,"fingerprint":"postcss-selector-parser@7.1.1 (npm):GHSA-rj75-hqrm-r3gf"},{"rule_id":"osv/GHSA-w9m9-85wc-3x92","severity":"medium","message":"postcss-selector-parser@7.1.1 (npm) is affected by GHSA-w9m9-85wc-3x92","path":"bun.lock","line":null,"fingerprint":"postcss-selector-parser@7.1.1 (npm):GHSA-w9m9-85wc-3x92"},{"rule_id":"osv/GHSA-4mjr-xmp4-gh2g","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-4mjr-xmp4-gh2g","path":"bun.lock","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-4mjr-xmp4-gh2g"},{"rule_id":"osv/GHSA-6pq8-jhm2-2vcw","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-6pq8-jhm2-2vcw","path":"bun.lock","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-6pq8-jhm2-2vcw"},{"rule_id":"osv/GHSA-6rw7-vpxm-498p","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-6rw7-vpxm-498p","path":"bun.lock","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-6rw7-vpxm-498p"},{"rule_id":"osv/GHSA-q8mj-m7cp-5q26","severity":"medium","message":"qs@6.14.0 (npm) is affected by GHSA-q8mj-m7cp-5q26","path":"bun.lock","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-q8mj-m7cp-5q26"},{"rule_id":"osv/GHSA-qj8w-gfj5-8c6v","severity":"medium","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-qj8w-gfj5-8c6v","path":"bun.lock","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-qj8w-gfj5-8c6v"},{"rule_id":"osv/GHSA-r4xh-jqrq-34v2","severity":"medium","message":"smol-toml@1.6.1 (npm) is affected by GHSA-r4xh-jqrq-34v2; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"smol-toml@1.6.1 (npm):GHSA-r4xh-jqrq-34v2"},{"rule_id":"osv/GHSA-gvwx-54wh-qm9j","severity":"medium","message":"tar@7.5.2 (npm) is affected by GHSA-gvwx-54wh-qm9j","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-gvwx-54wh-qm9j"},{"rule_id":"osv/GHSA-vmf3-w455-68vh","severity":"medium","message":"tar@7.5.2 (npm) is affected by GHSA-vmf3-w455-68vh","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-vmf3-w455-68vh"},{"rule_id":"osv/GHSA-w8wr-v893-vjvp","severity":"medium","message":"tar@7.5.2 (npm) is affected by GHSA-w8wr-v893-vjvp","path":"bun.lock","line":null,"fingerprint":"tar@7.5.2 (npm):GHSA-w8wr-v893-vjvp"},{"rule_id":"osv/GHSA-2mjp-6q6p-2qxm","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-2mjp-6q6p-2qxm","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-2mjp-6q6p-2qxm"},{"rule_id":"osv/GHSA-4992-7rv2-5pvq","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-4992-7rv2-5pvq","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-4992-7rv2-5pvq"},{"rule_id":"osv/GHSA-8xcm-r25x-g524","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-8xcm-r25x-g524","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-8xcm-r25x-g524"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-9fm3-97px-rjf6","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-g9mf-h72j-4rw9","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-g9mf-h72j-4rw9","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-g9mf-h72j-4rw9"},{"rule_id":"osv/GHSA-m8rv-5g2x-5cg5","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-m8rv-5g2x-5cg5","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-m8rv-5g2x-5cg5"},{"rule_id":"osv/GHSA-p88m-4jfj-68fv","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-p88m-4jfj-68fv","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-p88m-4jfj-68fv"},{"rule_id":"osv/GHSA-v3r7-h72x-cjcm","severity":"medium","message":"undici@5.29.0 (npm) is affected by GHSA-v3r7-h72x-cjcm","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-v3r7-h72x-cjcm"},{"rule_id":"osv/GHSA-2jfj-6hjv-fm6j","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-2jfj-6hjv-fm6j","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-2jfj-6hjv-fm6j"},{"rule_id":"osv/GHSA-2mjp-6q6p-2qxm","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-2mjp-6q6p-2qxm","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-2mjp-6q6p-2qxm"},{"rule_id":"osv/GHSA-3xpg-4rpp-hhhm","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-3xpg-4rpp-hhhm","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-3xpg-4rpp-hhhm"},{"rule_id":"osv/GHSA-4992-7rv2-5pvq","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-4992-7rv2-5pvq","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-4992-7rv2-5pvq"},{"rule_id":"osv/GHSA-4qv8-2p9j-2685","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-4qv8-2p9j-2685","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-4qv8-2p9j-2685"},{"rule_id":"osv/GHSA-55wc-3pg8-jfw6","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-55wc-3pg8-jfw6","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-55wc-3pg8-jfw6"},{"rule_id":"osv/GHSA-8xcm-r25x-g524","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-8xcm-r25x-g524","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-8xcm-r25x-g524"},{"rule_id":"osv/GHSA-9fm3-97px-rjf6","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-9fm3-97px-rjf6","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-9fm3-97px-rjf6"},{"rule_id":"osv/GHSA-f72v-6w45-q472","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-f72v-6w45-q472","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-f72v-6w45-q472"},{"rule_id":"osv/GHSA-g9mf-h72j-4rw9","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-g9mf-h72j-4rw9","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-g9mf-h72j-4rw9"},{"rule_id":"osv/GHSA-jr45-8vmc-qm54","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-jr45-8vmc-qm54","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-jr45-8vmc-qm54"},{"rule_id":"osv/GHSA-m8rv-5g2x-5cg5","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-m8rv-5g2x-5cg5","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-m8rv-5g2x-5cg5"},{"rule_id":"osv/GHSA-p88m-4jfj-68fv","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-p88m-4jfj-68fv","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-p88m-4jfj-68fv"},{"rule_id":"osv/GHSA-pmjh-fq2x-6v4x","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-pmjh-fq2x-6v4x","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-pmjh-fq2x-6v4x"},{"rule_id":"osv/GHSA-pr7r-676h-xcf6","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-pr7r-676h-xcf6","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-pr7r-676h-xcf6"},{"rule_id":"osv/GHSA-rx4f-c7p8-82vq","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-rx4f-c7p8-82vq","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-rx4f-c7p8-82vq"},{"rule_id":"osv/GHSA-v3r7-h72x-cjcm","severity":"medium","message":"undici@7.16.0 (npm) is affected by GHSA-v3r7-h72x-cjcm","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-v3r7-h72x-cjcm"},{"rule_id":"osv/GHSA-4w7w-66w2-5vf9","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-4w7w-66w2-5vf9; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-698v-4r3x-3vcv; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-fx2h-pf6j-xcff; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-r825-w8mm-5pxw; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-rq7h-c2jc-7f22; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@7.2.6 (npm) is affected by GHSA-v6wh-96g9-6wx3; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-58qx-3vcg-4xpx","severity":"medium","message":"ws@8.18.3 (npm) is affected by GHSA-58qx-3vcg-4xpx; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"ws@8.18.3 (npm):GHSA-58qx-3vcg-4xpx"},{"rule_id":"osv/GHSA-82fw-gwwq-j7x9","severity":"medium","message":"@vitest/mocker@4.0.16 (npm) is affected by GHSA-82fw-gwwq-j7x9","path":"ui/bun.lock","line":null,"fingerprint":"@vitest/mocker@4.0.16 (npm):GHSA-82fw-gwwq-j7x9"},{"rule_id":"osv/GHSA-qxg6-89mg-rqv8","severity":"medium","message":"@vitest/mocker@4.0.16 (npm) is affected by GHSA-qxg6-89mg-rqv8","path":"ui/bun.lock","line":null,"fingerprint":"@vitest/mocker@4.0.16 (npm):GHSA-qxg6-89mg-rqv8"},{"rule_id":"osv/GHSA-2j2x-hqr9-3h42","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-2j2x-hqr9-3h42","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-2j2x-hqr9-3h42"},{"rule_id":"osv/GHSA-337j-9hxr-rhxg","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-337j-9hxr-rhxg","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-337j-9hxr-rhxg"},{"rule_id":"osv/GHSA-f22v-gfqf-p8f3","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-f22v-gfqf-p8f3","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-f22v-gfqf-p8f3"},{"rule_id":"osv/GHSA-h5cw-625j-3rxh","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-h5cw-625j-3rxh","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-h5cw-625j-3rxh"},{"rule_id":"osv/GHSA-jjmj-jmhj-qwj2","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-jjmj-jmhj-qwj2","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-jjmj-jmhj-qwj2"},{"rule_id":"osv/GHSA-wrjc-x8rr-h8h6","severity":"medium","message":"react-router@7.10.1 (npm) is affected by GHSA-wrjc-x8rr-h8h6","path":"ui/bun.lock","line":null,"fingerprint":"react-router@7.10.1 (npm):GHSA-wrjc-x8rr-h8h6"},{"rule_id":"osv/GHSA-82fw-gwwq-j7x9","severity":"medium","message":"vitest@4.0.16 (npm) is affected by GHSA-82fw-gwwq-j7x9","path":"ui/bun.lock","line":null,"fingerprint":"vitest@4.0.16 (npm):GHSA-82fw-gwwq-j7x9"},{"rule_id":"osv/GHSA-48c2-rrv3-qjmp","severity":"medium","message":"yaml@2.8.2 (npm) is affected by GHSA-48c2-rrv3-qjmp","path":"ui/bun.lock","line":null,"fingerprint":"yaml@2.8.2 (npm):GHSA-48c2-rrv3-qjmp"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.28.5 (npm) is affected by GHSA-4x5r-pxfx-6jf8; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"@babel/core@7.28.5 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-v422-hmwv-36x6","severity":"low","message":"body-parser@1.20.4 (npm) is affected by GHSA-v422-hmwv-36x6","path":"bun.lock","line":null,"fingerprint":"body-parser@1.20.4 (npm):GHSA-v422-hmwv-36x6"},{"rule_id":"osv/GHSA-73rr-hh4g-fpgx","severity":"low","message":"diff@7.0.0 (npm) is affected by GHSA-73rr-hh4g-fpgx","path":"bun.lock","line":null,"fingerprint":"diff@7.0.0 (npm):GHSA-73rr-hh4g-fpgx"},{"rule_id":"osv/GHSA-73rr-hh4g-fpgx","severity":"low","message":"diff@8.0.2 (npm) is affected by GHSA-73rr-hh4g-fpgx","path":"bun.lock","line":null,"fingerprint":"diff@8.0.2 (npm):GHSA-73rr-hh4g-fpgx"},{"rule_id":"osv/GHSA-333x-w4r6-6crp","severity":"low","message":"fast-uri@3.1.0 (npm) is affected by GHSA-333x-w4r6-6crp","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-333x-w4r6-6crp"},{"rule_id":"osv/GHSA-xhq7-xmqj-769h","severity":"low","message":"fast-uri@3.1.0 (npm) is affected by GHSA-xhq7-xmqj-769h","path":"bun.lock","line":null,"fingerprint":"fast-uri@3.1.0 (npm):GHSA-xhq7-xmqj-769h"},{"rule_id":"osv/GHSA-442j-39wm-28r2","severity":"low","message":"handlebars@4.7.8 (npm) is affected by GHSA-442j-39wm-28r2","path":"bun.lock","line":null,"fingerprint":"handlebars@4.7.8 (npm):GHSA-442j-39wm-28r2"},{"rule_id":"osv/GHSA-w7fw-mjwx-w883","severity":"low","message":"qs@6.14.0 (npm) is affected by GHSA-w7fw-mjwx-w883","path":"bun.lock","line":null,"fingerprint":"qs@6.14.0 (npm):GHSA-w7fw-mjwx-w883"},{"rule_id":"osv/GHSA-m5mm-p8h7-m29v","severity":"low","message":"serialize-javascript@6.0.2 (npm) is affected by GHSA-m5mm-p8h7-m29v","path":"bun.lock","line":null,"fingerprint":"serialize-javascript@6.0.2 (npm):GHSA-m5mm-p8h7-m29v"},{"rule_id":"osv/GHSA-35p6-xmwp-9g52","severity":"low","message":"undici@5.29.0 (npm) is affected by GHSA-35p6-xmwp-9g52","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-35p6-xmwp-9g52"},{"rule_id":"osv/GHSA-g8m3-5g58-fq7m","severity":"low","message":"undici@5.29.0 (npm) is affected by GHSA-g8m3-5g58-fq7m","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-g8m3-5g58-fq7m"},{"rule_id":"osv/GHSA-r53p-7pc4-xj5r","severity":"low","message":"undici@5.29.0 (npm) is affected by GHSA-r53p-7pc4-xj5r","path":"bun.lock","line":null,"fingerprint":"undici@5.29.0 (npm):GHSA-r53p-7pc4-xj5r"},{"rule_id":"osv/GHSA-2gqq-gqf2-x968","severity":"low","message":"undici@7.16.0 (npm) is affected by GHSA-2gqq-gqf2-x968","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-2gqq-gqf2-x968"},{"rule_id":"osv/GHSA-35p6-xmwp-9g52","severity":"low","message":"undici@7.16.0 (npm) is affected by GHSA-35p6-xmwp-9g52","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-35p6-xmwp-9g52"},{"rule_id":"osv/GHSA-8436-99hf-9mmv","severity":"low","message":"undici@7.16.0 (npm) is affected by GHSA-8436-99hf-9mmv","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-8436-99hf-9mmv"},{"rule_id":"osv/GHSA-g8m3-5g58-fq7m","severity":"low","message":"undici@7.16.0 (npm) is affected by GHSA-g8m3-5g58-fq7m","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-g8m3-5g58-fq7m"},{"rule_id":"osv/GHSA-r53p-7pc4-xj5r","severity":"low","message":"undici@7.16.0 (npm) is affected by GHSA-r53p-7pc4-xj5r","path":"bun.lock","line":null,"fingerprint":"undici@7.16.0 (npm):GHSA-r53p-7pc4-xj5r"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@7.2.6 (npm) is affected by GHSA-9jrq-w75r-8gcw; also in ui/bun.lock","path":"bun.lock","line":null,"fingerprint":"vite@7.2.6 (npm):GHSA-9jrq-w75r-8gcw"}],"evidence":[],"data":{"ecosystems":["npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":15.0,"findings":109.0,"findings_high":68.0,"findings_medium":26.0,"findings_low":15.0,"penalty":859.2},"findings":[{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/ai-review.yml","line":4,"fingerprint":"dangerous-triggers:.github/workflows/ai-review.yml:4"},{"rule_id":"zizmor/dangerous-triggers","severity":"high","message":"use of fundamentally insecure workflow trigger [confidence medium]","path":".github/workflows/ai-review.yml","line":6,"fingerprint":"dangerous-triggers:.github/workflows/ai-review.yml:6"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ai-review.yml","line":47,"fingerprint":"unpinned-uses:.github/workflows/ai-review.yml:47"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ai-review.yml","line":54,"fingerprint":"unpinned-uses:.github/workflows/ai-review.yml:54"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ai-review.yml","line":112,"fingerprint":"unpinned-uses:.github/workflows/ai-review.yml:112"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ai-review.yml","line":121,"fingerprint":"unpinned-uses:.github/workflows/ai-review.yml:121"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/bar-release.yml","line":39,"fingerprint":"unpinned-uses:.github/workflows/bar-release.yml:39"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/breaking-change-guard.yml","line":45,"fingerprint":"template-injection:.github/workflows/breaking-change-guard.yml:45"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/breaking-change-guard.yml","line":52,"fingerprint":"template-injection:.github/workflows/breaking-change-guard.yml:52"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/breaking-change-guard.yml","line":252,"fingerprint":"template-injection:.github/workflows/breaking-change-guard.yml:252"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/breaking-change-guard.yml","line":39,"fingerprint":"unpinned-uses:.github/workflows/breaking-change-guard.yml:39"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":37,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:37"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":40,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:40"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":45,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:45"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":50,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:50"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":71,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:71"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":74,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:74"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":79,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:79"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":84,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:84"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":97,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:97"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":114,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:114"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":117,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:117"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":122,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:122"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":127,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:127"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":137,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:137"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":157,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:157"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-ccs-worker.yml","line":32,"fingerprint":"unpinned-uses:.github/workflows/deploy-ccs-worker.yml:32"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-ccs-worker.yml","line":36,"fingerprint":"unpinned-uses:.github/workflows/deploy-ccs-worker.yml:36"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/deploy-ccs-worker.yml","line":46,"fingerprint":"unpinned-uses:.github/workflows/deploy-ccs-worker.yml:46"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dev-release.yml","line":49,"fingerprint":"unpinned-uses:.github/workflows/dev-release.yml:49"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dev-release.yml","line":56,"fingerprint":"unpinned-uses:.github/workflows/dev-release.yml:56"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/dev-release.yml","line":61,"fingerprint":"unpinned-uses:.github/workflows/dev-release.yml:61"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":73,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:73"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":88,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:88"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":92,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:92"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":127,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:127"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":135,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:135"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":208,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:208"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":215,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:215"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":219,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:219"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":252,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:252"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":261,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:261"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":287,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:287"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":315,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:315"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":326,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:326"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docker-release.yml","line":469,"fingerprint":"unpinned-uses:.github/workflows/docker-release.yml:469"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/docs-parity.yml","line":44,"fingerprint":"unpinned-uses:.github/workflows/docs-parity.yml:44"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":27,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:27"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":30,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:30"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":35,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:35"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":40,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:40"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":59,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:59"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":62,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:62"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":67,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:67"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":72,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:72"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":85,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:85"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":101,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:101"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":104,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:104"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":109,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:109"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":114,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:114"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/push-ci.yml","line":124,"fingerprint":"unpinned-uses:.github/workflows/push-ci.yml:124"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":21,"fingerprint":"unpinned-uses:.github/workflows/release.yml:21"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":27,"fingerprint":"unpinned-uses:.github/workflows/release.yml:27"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":33,"fingerprint":"unpinned-uses:.github/workflows/release.yml:33"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/smoke-test-compose-url.yml","line":28,"fingerprint":"unpinned-uses:.github/workflows/smoke-test-compose-url.yml:28"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/sync-ccs-backlog-project.yml","line":28,"fingerprint":"unpinned-uses:.github/workflows/sync-ccs-backlog-project.yml:28"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/sync-ccs-backlog-project.yml","line":31,"fingerprint":"unpinned-uses:.github/workflows/sync-ccs-backlog-project.yml:31"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/sync-dev-after-release.yml","line":17,"fingerprint":"unpinned-uses:.github/workflows/sync-dev-after-release.yml:17"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/breaking-change-guard.yml","line":23,"fingerprint":"excessive-permissions:.github/workflows/breaking-change-guard.yml:23"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":36,"fingerprint":"artipacked:.github/workflows/ci.yml:36"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":70,"fingerprint":"artipacked:.github/workflows/ci.yml:70"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":113,"fingerprint":"artipacked:.github/workflows/ci.yml:113"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":18,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:18"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":62,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:62"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":104,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:104"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":150,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:150"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":177,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:177"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/deploy-ccs-worker.yml","line":31,"fingerprint":"artipacked:.github/workflows/deploy-ccs-worker.yml:31"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/deploy-ccs-worker.yml","line":23,"fingerprint":"excessive-permissions:.github/workflows/deploy-ccs-worker.yml:23"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dev-release.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/dev-release.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/dev-release.yml","line":13,"fingerprint":"excessive-permissions:.github/workflows/dev-release.yml:13"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/docker-release.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/docker-release.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/docker-release.yml","line":303,"fingerprint":"excessive-permissions:.github/workflows/docker-release.yml:303"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/docs-parity.yml","line":36,"fingerprint":"excessive-permissions:.github/workflows/docs-parity.yml:36"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/push-ci.yml","line":26,"fingerprint":"artipacked:.github/workflows/push-ci.yml:26"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/push-ci.yml","line":58,"fingerprint":"artipacked:.github/workflows/push-ci.yml:58"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/push-ci.yml","line":100,"fingerprint":"artipacked:.github/workflows/push-ci.yml:100"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/push-ci.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/push-ci.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/push-ci.yml","line":12,"fingerprint":"excessive-permissions:.github/workflows/push-ci.yml:12"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/push-ci.yml","line":52,"fingerprint":"excessive-permissions:.github/workflows/push-ci.yml:52"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/push-ci.yml","line":92,"fingerprint":"excessive-permissions:.github/workflows/push-ci.yml:92"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/smoke-test-compose-url.yml","line":22,"fingerprint":"excessive-permissions:.github/workflows/smoke-test-compose-url.yml:22"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/sync-ccs-backlog-project.yml","line":27,"fingerprint":"artipacked:.github/workflows/sync-ccs-backlog-project.yml:27"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/bar-release.yml","line":57,"fingerprint":"template-injection:.github/workflows/bar-release.yml:57"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":64,"fingerprint":"template-injection:.github/workflows/docker-release.yml:64"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":69,"fingerprint":"template-injection:.github/workflows/docker-release.yml:69"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":98,"fingerprint":"template-injection:.github/workflows/docker-release.yml:98"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":197,"fingerprint":"template-injection:.github/workflows/docker-release.yml:197"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":225,"fingerprint":"template-injection:.github/workflows/docker-release.yml:225"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":294,"fingerprint":"template-injection:.github/workflows/docker-release.yml:294"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":323,"fingerprint":"template-injection:.github/workflows/docker-release.yml:323"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":333,"fingerprint":"template-injection:.github/workflows/docker-release.yml:333"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":339,"fingerprint":"template-injection:.github/workflows/docker-release.yml:339"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":344,"fingerprint":"template-injection:.github/workflows/docker-release.yml:344"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":349,"fingerprint":"template-injection:.github/workflows/docker-release.yml:349"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":353,"fingerprint":"template-injection:.github/workflows/docker-release.yml:353"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":366,"fingerprint":"template-injection:.github/workflows/docker-release.yml:366"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/docker-release.yml","line":406,"fingerprint":"template-injection:.github/workflows/docker-release.yml:406"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":1.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.01,"unpinned_manifests":0.0},"findings":[],"evidence":[{"kind":"posture","description":"Security policy: SECURITY.md","ref":"SECURITY.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":11956.0,"function_nloc":167630.0,"mean_ccn":3.55,"p90_ccn":8.0,"complex_functions":353.0,"long_functions":175.0,"many_param_functions":7.0,"risky_nloc_share":0.2696},"findings":[],"evidence":[{"kind":"complex-function","description":"mergeWithDefaults in src/config/loader/defaults-merger.ts: complexity 110, 272 lines","ref":"src/config/loader/defaults-merger.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/config/loader/defaults-merger.ts#L54","weight":1.0},{"kind":"complex-function","description":"ClaudeExtensionPage in ui/src/pages/claude-extension.tsx: complexity 89, 551 lines","ref":"ui/src/pages/claude-extension.tsx","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/ui/src/pages/claude-extension.tsx#L291","weight":1.0},{"kind":"complex-function","description":"triggerOAuth in src/cliproxy/auth/oauth-handler.ts: complexity 88, 309 lines","ref":"src/cliproxy/auth/oauth-handler.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/auth/oauth-handler.ts#L1114","weight":1.0},{"kind":"complex-function","description":"ProxyStatusWidget in ui/src/components/monitoring/proxy-status-widget.tsx: complexity 82, 390 lines","ref":"ui/src/components/monitoring/proxy-status-widget.tsx","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/ui/src/components/monitoring/proxy-status-widget.tsx#L176","weight":1.0},{"kind":"complex-function","description":"runSettingsFlow in src/dispatcher/flows/settings-flow.ts: complexity 76, 333 lines","ref":"src/dispatcher/flows/settings-flow.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/dispatcher/flows/settings-flow.ts#L65","weight":1.0},{"kind":"complex-function","description":"execClaudeWithCLIProxy in src/cliproxy/executor/index.ts: complexity 70, 386 lines","ref":"src/cliproxy/executor/index.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/cliproxy/executor/index.ts#L102","weight":1.0},{"kind":"complex-function","description":"getSuggestionsForCommand in src/commands/completion-backend.ts: complexity 69, 213 lines","ref":"src/commands/completion-backend.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/commands/completion-backend.ts#L98","weight":1.0},{"kind":"complex-function","description":"resolveProfileAndTarget in src/dispatcher/profile-resolver.ts: complexity 69, 280 lines","ref":"src/dispatcher/profile-resolver.ts","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/src/dispatcher/profile-resolver.ts#L139","weight":1.0},{"kind":"complex-function","description":"AddAccountDialog in ui/src/components/account/add-account-dialog.tsx: complexity 64, 362 lines","ref":"ui/src/components/account/add-account-dialog.tsx","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/ui/src/components/account/add-account-dialog.tsx#L79","weight":1.0},{"kind":"complex-function","description":"RoutingGuidanceCard in ui/src/components/cliproxy/routing-guidance-card.tsx: complexity 62, 265 lines","ref":"ui/src/components/cliproxy/routing-guidance-card.tsx","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/ui/src/components/cliproxy/routing-guidance-card.tsx#L38","weight":1.0}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":198751.0,"duplicated_lines":15008.0,"duplicated_share":0.0755,"files":1273.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: .releaserc.cjs:73 and .releaserc.cjs:108","ref":".releaserc.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/.releaserc.cjs#L73","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/hooks/block-websearch.cjs:33 and lib/hooks/image-analyzer-transformer.cjs:467","ref":"lib/hooks/block-websearch.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/hooks/block-websearch.cjs#L33","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/hooks/image-analyzer-transformer.cjs:382 and lib/mcp/ccs-image-analysis-server.cjs:131","ref":"lib/hooks/image-analyzer-transformer.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/hooks/image-analyzer-transformer.cjs#L382","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/hooks/websearch-transformer.cjs:230 and src/utils/websearch/trace.ts:104","ref":"lib/hooks/websearch-transformer.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/hooks/websearch-transformer.cjs#L230","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/hooks/websearch-transformer.cjs:398 and src/utils/websearch/types.ts:156","ref":"lib/hooks/websearch-transformer.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/hooks/websearch-transformer.cjs#L398","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/hooks/websearch-transformer.cjs:742 and lib/hooks/websearch-transformer.cjs:799","ref":"lib/hooks/websearch-transformer.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/hooks/websearch-transformer.cjs#L742","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/mcp/ccs-browser-server.cjs:340 and lib/mcp/ccs-browser-server.cjs:357","ref":"lib/mcp/ccs-browser-server.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/mcp/ccs-browser-server.cjs#L340","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/mcp/ccs-browser-server.cjs:6334 and lib/mcp/ccs-image-analysis-server.cjs:267","ref":"lib/mcp/ccs-browser-server.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/mcp/ccs-browser-server.cjs#L6334","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/mcp/ccs-browser-server.cjs:6793 and lib/mcp/ccs-websearch-server.cjs:299","ref":"lib/mcp/ccs-browser-server.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/mcp/ccs-browser-server.cjs#L6793","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/mcp/ccs-image-analysis-server.cjs:46 and lib/mcp/ccs-websearch-server.cjs:38","ref":"lib/mcp/ccs-image-analysis-server.cjs","url":"https://github.com/kaitranntt/ccs/blob/cd2e02288675cbb9fcda620b44ec84d7d4a94919/lib/mcp/ccs-image-analysis-server.cjs#L46","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":347.0,"weighted_findings":262.5,"scanned_lines":275690.0,"category:best-practice":212.0,"category:correctness":135.0},"findings":[{"rule_id":"opengrep/typescript.lang.correctness.useless-ternary","severity":"high","message":"It looks like no matter how input.preserveSecrets is evaluated, this expression returns existing?.['api-key'] || ''. This is probably a copy-paste error.","path":"src/cliproxy/ai-providers/service.ts","line":166,"fingerprint":"typescript.lang.correctness.useless-ternary:src/cliproxy/ai-providers/service.ts:166"},{"rule_id":"opengrep/typescript.lang.correctness.useless-ternary","severity":"high","message":"It looks like no matter how summary.state === 'limited' is evaluated, this expression returns warn(summary.title). This is probably a copy-paste error.","path":"src/commands/config-channels-command.ts","line":236,"fingerprint":"typescript.lang.correctness.useless-ternary:src/commands/config-channels-command.ts:236"},{"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":"lib/mcp/ccs-browser-server.cjs","line":9,"fingerprint":"javascript.lang.best-practice.lazy-load-module:lib/mcp/ccs-browser-server.cjs:9"},{"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":"lib/mcp/ccs-browser-server.cjs","line":18,"fingerprint":"javascript.lang.best-practice.lazy-load-module:lib/mcp/ccs-browser-server.cjs:18"},{"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":"lib/mcp/ccs-image-analysis-server.cjs","line":14,"fingerprint":"javascript.lang.best-practice.lazy-load-module:lib/mcp/ccs-image-analysis-server.cjs:14"},{"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":"scripts/code-reviewer.ts","line":146,"fingerprint":"javascript.lang.correctness.no-stringify-keys:scripts/code-reviewer.ts:146"},{"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":"scripts/generate-throw-error-baseline.js","line":48,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/generate-throw-error-baseline.js:48"},{"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":"scripts/maintainability-metrics.js","line":72,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/maintainability-metrics.js:72"},{"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":"scripts/postinstall.js","line":133,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/postinstall.js:133"},{"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":"scripts/postinstall.js","line":178,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/postinstall.js:178"},{"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":"scripts/postinstall.js","line":179,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/postinstall.js:179"},{"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":"scripts/postinstall.js","line":191,"fingerprint":"javascript.lang.best-practice.lazy-load-module:scripts/postinstall.js:191"},{"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":"src/api/services/profile-lifecycle-service.ts","line":408,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/api/services/profile-lifecycle-service.ts:408"},{"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/bin/codex-runtime-router.ts","line":44,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:44"},{"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/bin/codex-runtime-router.ts","line":51,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:51"},{"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/bin/codex-runtime-router.ts","line":74,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:74"},{"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/bin/codex-runtime-router.ts","line":89,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:89"},{"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/bin/codex-runtime-router.ts","line":104,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:104"},{"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/bin/codex-runtime-router.ts","line":117,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:117"},{"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/bin/codex-runtime-router.ts","line":143,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/bin/codex-runtime-router.ts:143"},{"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/cliproxy/accounts/drain-order.ts","line":810,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/accounts/drain-order.ts:810"},{"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/cliproxy/accounts/drain-order.ts","line":811,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/accounts/drain-order.ts:811"},{"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/cliproxy/accounts/registry.ts","line":876,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/accounts/registry.ts:876"},{"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/cliproxy/ai-providers/codex-reasoning-proxy.ts","line":366,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/ai-providers/codex-reasoning-proxy.ts:366"},{"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/cliproxy/ai-providers/codex-reasoning-proxy.ts","line":367,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/ai-providers/codex-reasoning-proxy.ts:367"},{"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/cliproxy/executor/launch-settings.ts","line":39,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/executor/launch-settings.ts:39"},{"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/cliproxy/executor/session-bridge.ts","line":241,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/executor/session-bridge.ts:241"},{"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":"src/cliproxy/management/management-api-client.ts","line":328,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/cliproxy/management/management-api-client.ts:328"},{"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":"src/cliproxy/management/management-api-client.ts","line":329,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/cliproxy/management/management-api-client.ts:329"},{"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":"src/cliproxy/management/management-api-client.ts","line":368,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/cliproxy/management/management-api-client.ts:368"},{"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":"src/cliproxy/proxy/tool-sanitization-proxy.ts","line":655,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/cliproxy/proxy/tool-sanitization-proxy.ts:655"},{"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/cliproxy/services/startup-lock.ts","line":130,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/cliproxy/services/startup-lock.ts:130"},{"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/commands/bar/launch-subcommand.ts","line":131,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/commands/bar/launch-subcommand.ts:131"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"src/commands/setup-command.ts","line":82,"fingerprint":"javascript.lang.best-practice.javascript-prompt:src/commands/setup-command.ts:82"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"src/commands/setup-command.ts","line":225,"fingerprint":"javascript.lang.best-practice.javascript-prompt:src/commands/setup-command.ts:225"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-prompt","severity":"medium","message":"found prompt() call; should this be in production code?","path":"src/commands/setup-command.ts","line":242,"fingerprint":"javascript.lang.best-practice.javascript-prompt:src/commands/setup-command.ts:242"},{"rule_id":"opengrep/javascript.lang.best-practice.javascript-confirm","severity":"medium","message":"found confirm() call; should this be in production code?","path":"src/commands/setup-command.ts","line":373,"fingerprint":"javascript.lang.best-practice.javascript-confirm:src/commands/setup-command.ts:373"},{"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/delegation/headless-executor.ts","line":690,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/delegation/headless-executor.ts:690"},{"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/docker/docker-assets.ts","line":74,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/docker/docker-assets.ts:74"},{"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":"src/glmt/locale-enforcer.ts","line":49,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/glmt/locale-enforcer.ts:49"},{"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":"src/glmt/locale-enforcer.ts","line":66,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/glmt/locale-enforcer.ts:66"},{"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":"src/glmt/reasoning-enforcer.ts","line":68,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/glmt/reasoning-enforcer.ts:68"},{"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":"src/glmt/reasoning-enforcer.ts","line":85,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/glmt/reasoning-enforcer.ts:85"},{"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/management/checks/config-check.ts","line":34,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/config-check.ts:34"},{"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/management/checks/config-check.ts","line":57,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/config-check.ts:57"},{"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/management/checks/profile-check.ts","line":36,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/profile-check.ts:36"},{"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/management/checks/profile-check.ts","line":184,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/profile-check.ts:184"},{"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/management/checks/symlink-check.ts","line":71,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/symlink-check.ts:71"},{"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/management/checks/types.ts","line":100,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/management/checks/types.ts:100"},{"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/utils/delegation-validator.ts","line":187,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/utils/delegation-validator.ts:187"},{"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":"src/utils/launch-settings.ts","line":78,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/utils/launch-settings.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":"src/utils/launch-settings.ts","line":79,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/utils/launch-settings.ts:79"},{"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":"src/utils/launch-settings.ts","line":102,"fingerprint":"javascript.lang.correctness.no-stringify-keys:src/utils/launch-settings.ts:102"},{"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/web-server/health-service.ts","line":147,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health-service.ts:147"},{"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/web-server/health-service.ts","line":149,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health-service.ts:149"},{"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/web-server/health-service.ts","line":161,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health-service.ts:161"},{"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/web-server/health/config-checks.ts","line":97,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health/config-checks.ts:97"},{"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/web-server/health/profile-checks.ts","line":149,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health/profile-checks.ts:149"},{"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/web-server/health/symlink-checks.ts","line":17,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/health/symlink-checks.ts:17"},{"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/web-server/usage/native-quota-collector.ts","line":547,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/usage/native-quota-collector.ts:547"},{"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/web-server/usage/native-quota-collector.ts","line":572,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/usage/native-quota-collector.ts:572"},{"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/web-server/usage/native-quota-collector.ts","line":593,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/usage/native-quota-collector.ts:593"},{"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/web-server/usage/native-quota-collector.ts","line":625,"fingerprint":"javascript.lang.best-practice.lazy-load-module:src/web-server/usage/native-quota-collector.ts:625"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/analytics/usage-trend-chart.tsx","line":132,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/analytics/usage-trend-chart.tsx:132"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/analytics/usage-trend-chart.tsx","line":140,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/analytics/usage-trend-chart.tsx:140"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":190,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:190"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":204,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:204"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":240,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:240"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":265,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:265"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":274,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:274"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":300,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:300"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":324,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:324"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":352,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:352"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":367,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:367"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":380,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:380"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-dialog.tsx","line":393,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-dialog.tsx:393"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":326,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:326"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":354,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:354"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":369,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:369"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":382,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:382"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":395,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:395"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":421,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:421"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":450,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:450"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":459,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:459"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/cliproxy-edit-dialog.tsx","line":468,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/cliproxy-edit-dialog.tsx:468"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-in-state","severity":"medium","message":"Copying a prop into state in React -- this is bad practice as all updates to it are ignored. Instead, read props directly in your component and avoid copying props into state.","path":"ui/src/components/cliproxy/cliproxy-header.tsx","line":77,"fingerprint":"typescript.react.best-practice.react-props-in-state:ui/src/components/cliproxy/cliproxy-header.tsx:77"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/config/yaml-editor.tsx","line":40,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/config/yaml-editor.tsx:40"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/config/yaml-editor.tsx","line":50,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/config/yaml-editor.tsx:50"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/overview/credential-health-list.tsx","line":196,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/overview/credential-health-list.tsx:196"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/cliproxy/provider-editor/accounts-section.tsx","line":143,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/cliproxy/provider-editor/accounts-section.tsx:143"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/logs/logs-detail-panel.tsx","line":213,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/logs/logs-detail-panel.tsx:213"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":416,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:416"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":435,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:435"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":475,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:475"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":625,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:625"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":641,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:641"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":656,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:656"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-create-dialog.tsx","line":671,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-create-dialog.tsx:671"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":153,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:153"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":164,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:164"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":174,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:174"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":180,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:180"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":190,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:190"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":228,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:228"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":240,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:240"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/profiles/profile-dialog.tsx","line":252,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/profiles/profile-dialog.tsx:252"},{"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":"ui/src/components/shared/quota-tooltip-content.tsx","line":163,"fingerprint":"javascript.lang.correctness.no-replaceall:ui/src/components/shared/quota-tooltip-content.tsx:163"},{"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":"ui/src/components/shared/quota-tooltip-content.tsx","line":163,"fingerprint":"javascript.lang.correctness.no-replaceall:ui/src/components/shared/quota-tooltip-content.tsx:163"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/shared/value-metrics.tsx","line":86,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/shared/value-metrics.tsx:86"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":8,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:8"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":14,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:14"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":18,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:18"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":32,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:32"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":50,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:50"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":61,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:61"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":71,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:71"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":84,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:84"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":97,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:97"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":106,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:106"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert-dialog.tsx","line":116,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert-dialog.tsx:116"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert.tsx","line":30,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert.tsx:30"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert.tsx","line":39,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert.tsx:39"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/alert.tsx","line":49,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/alert.tsx:49"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/badge.tsx","line":29,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/badge.tsx:29"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/button.tsx","line":24,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/button.tsx:24"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/calendar.tsx","line":81,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/calendar.tsx:81"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/calendar.tsx","line":84,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/calendar.tsx:84"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":13,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:13"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":26,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:26"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":36,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:36"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":46,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:46"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":56,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:56"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":62,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:62"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/card.tsx","line":70,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/card.tsx:70"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/checkbox.tsx","line":15,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/checkbox.tsx:15"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":8,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:8"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":12,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:12"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":16,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:16"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":20,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":56,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:56"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":78,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:78"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":88,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:88"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":98,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:98"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dialog.tsx","line":111,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dialog.tsx:111"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":8,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:8"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":14,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:14"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":20,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":37,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:37"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":44,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:44"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":65,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:65"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":84,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:84"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":99,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:99"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":114,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:114"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":138,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:138"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":151,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:151"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":161,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:161"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":167,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:167"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":186,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:186"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/dropdown-menu.tsx","line":205,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/dropdown-menu.tsx:205"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/input.tsx","line":16,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/input.tsx:16"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/label.tsx","line":16,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/label.tsx:16"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/masked-input.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/masked-input.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/popover.tsx","line":25,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/popover.tsx:25"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/progress.tsx","line":27,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/progress.tsx:27"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/scroll-area.tsx","line":13,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/scroll-area.tsx:13"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/scroll-area.tsx","line":37,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/scroll-area.tsx:37"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":23,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:23"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":40,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:40"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":54,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:54"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":75,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:75"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":100,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:100"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":115,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:115"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/select.tsx","line":134,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/select.tsx:134"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/separator.tsx","line":23,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/separator.tsx:23"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":8,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:8"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":12,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:12"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":16,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:16"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":20,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:20"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":34,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:34"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":64,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:64"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":81,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:81"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":91,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:91"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":101,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:101"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sheet.tsx","line":114,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sheet.tsx:114"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":115,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:115"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":146,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:146"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":155,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:155"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":212,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:212"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":240,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:240"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":268,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:268"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":282,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:282"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":293,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:293"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":304,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:304"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":315,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:315"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":326,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:326"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":340,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:340"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":351,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:351"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":372,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:372"},{"rule_id":"opengrep/typescript.react.best-practice.react-props-spreading","severity":"medium","message":"It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious actors a way to inject unexpected attributes.","path":"ui/src/components/ui/sidebar.tsx","line":395,"fingerprint":"typescript.react.best-practice.react-props-spreading:ui/src/components/ui/sidebar.tsx:395"}],"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":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":178495.0,"source_lines":276070.0,"test_ratio":0.6466,"ci_files":15.0,"cochange_share":0.8701,"cochange_commits":154.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/ai-review.yml","ref":".github/workflows/ai-review.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/bar-release.yml","ref":".github/workflows/bar-release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/breaking-change-guard.yml","ref":".github/workflows/breaking-change-guard.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/deploy-ccs-worker.yml","ref":".github/workflows/deploy-ccs-worker.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/dev-release.yml","ref":".github/workflows/dev-release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/docker-release.yml","ref":".github/workflows/docker-release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/docs-parity.yml","ref":".github/workflows/docs-parity.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/label-pending-release.yml","ref":".github/workflows/label-pending-release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/promote-release.yml","ref":".github/workflows/promote-release.yml","url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":[]},"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":1.0,"readme_lines":174.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},{"kind":"docs","description":"CHANGELOG.md","ref":"CHANGELOG.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":1.0,"check:low_escape_density":1.0,"escapes":9.0,"escapes_per_kloc":0.036},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: tsconfig.json","ref":"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":15525.0,"other_lines":260545.0,"files_blamed":1273.0,"blame_failures":0.0,"quality:ai_findings":1.0,"quality:ai_per_kloc":0.064,"quality:other_findings":199.0,"quality:other_per_kloc":0.764,"quality:ratio":0.08,"security:ai_findings":14.0,"security:ai_per_kloc":0.902,"security:other_findings":284.0,"security:other_per_kloc":1.09,"security:ratio":0.83},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}