{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:02.765766Z","repo":{"ref":{"host":"github.com","owner":"apollo-ullah","name":"Baymax"},"default_branch":"main","clone_url":"https://github.com/apollo-ullah/Baymax.git","html_url":"https://github.com/apollo-ullah/Baymax","description":null,"stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":18087,"primary_language":"Python","license_spdx":null,"created_at":"2026-06-20T18:36:47Z","pushed_at":"2026-06-24T21:42:48Z","security_policy_url":null,"distribution":{"owner_created_at":"2021-06-26T19:04:14Z","owner_type":"User","release_assets":[]}},"commit_sha":"6000ef8c6844d0ba04dc7af6442f90a2882b16a0","profile":{"lines_by_language":{"Python":11616,"Shell":423},"files_by_category":{"source":86,"binary":31,"docs":28,"config":26,"test":2,"oversized":1,"other":1},"source_lines":11910,"test_lines":129},"pillars":{"ai_provenance":{"score":60.0,"confidence":0.8,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.5999,"suspected_share":0.2772,"estimated_share":0.5999,"ai_artifacts":1.0,"flagged_work_units":2.0,"flagged_releases":null,"style_index":1.259},"summary":"Explicit AI attribution on 60% of first-party code added; an estimated 60% including velocity signals."},"quality":{"score":41.8,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":82.1,"duplication":47.9,"lint":10.5,"testing":25.9,"docs":40.0,"type_safety":40.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.01, no CI test run detected; 7% of function code in complex or long functions; 12% duplicated lines. Weakest area: lint."},"security":{"score":79.9,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":96.7,"sast":83.6,"dependencies":95.1,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 1 known vulnerabilities in 1 dependencies; 2 high-severity SAST findings. Weakest area: posture."}},"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":16.0,"checked":16.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":41.0,"attributed_commits":32.0,"attributed_commit_share":0.7804878048780488,"effective_loc":13209.0,"attributed_loc":7924.0,"attributed_loc_share":0.5998940116587176,"tools_detected":2.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 20 attributed commits, 5,218 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attribution-summary","description":"Cursor agent: 12 attributed commits, 2,706 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cbf7d9542a9ecf5f66693c1a7a43cf5514ba1e44","url":"https://github.com/apollo-ullah/Baymax/commit/cbf7d9542a9ecf5f66693c1a7a43cf5514ba1e44","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"5ff9024fb5af41a06cdf72e7a92248b12bef3beb","url":"https://github.com/apollo-ullah/Baymax/commit/5ff9024fb5af41a06cdf72e7a92248b12bef3beb","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"fbc8e1e42a6e8e74945c643f9f5b407b79d14fa1","url":"https://github.com/apollo-ullah/Baymax/commit/fbc8e1e42a6e8e74945c643f9f5b407b79d14fa1","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor'","ref":"0bcd83e72014f74fd129cb6524aa5069a576e682","url":"https://github.com/apollo-ullah/Baymax/commit/0bcd83e72014f74fd129cb6524aa5069a576e682","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"89275a65f6401483a95e30326beccf28de5cd0b8","url":"https://github.com/apollo-ullah/Baymax/commit/89275a65f6401483a95e30326beccf28de5cd0b8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"066ff2761218720a477ed6f4b75188353f0adeaa","url":"https://github.com/apollo-ullah/Baymax/commit/066ff2761218720a477ed6f4b75188353f0adeaa","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"da2fa2d1f7c3144d371e3d96ce7d9d4de9026780","url":"https://github.com/apollo-ullah/Baymax/commit/da2fa2d1f7c3144d371e3d96ce7d9d4de9026780","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bfdd8fa3ba1771364faddebc338560eabf247400","url":"https://github.com/apollo-ullah/Baymax/commit/bfdd8fa3ba1771364faddebc338560eabf247400","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"8f258627d457f2b479acd03a00c2068147e15bdf","url":"https://github.com/apollo-ullah/Baymax/commit/8f258627d457f2b479acd03a00c2068147e15bdf","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"edeffdb9a0fd93d42a5bf255222e5123057b3320","url":"https://github.com/apollo-ullah/Baymax/commit/edeffdb9a0fd93d42a5bf255222e5123057b3320","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor'","ref":"39a4c3ed23d9fc409cf473341f0f1e0c543a4ac4","url":"https://github.com/apollo-ullah/Baymax/commit/39a4c3ed23d9fc409cf473341f0f1e0c543a4ac4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"91aa099dd8a9f01067d941d923b6a87fa45a6986","url":"https://github.com/apollo-ullah/Baymax/commit/91aa099dd8a9f01067d941d923b6a87fa45a6986","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: on merged branch (0242b65c76)","ref":"cd7880ccc5c50262de7aaa30e7c9f3f82573e212","url":"https://github.com/apollo-ullah/Baymax/commit/cd7880ccc5c50262de7aaa30e7c9f3f82573e212","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor'","ref":"5cc611ef1128463c81f420a9b67080661ea9907e","url":"https://github.com/apollo-ullah/Baymax/commit/5cc611ef1128463c81f420a9b67080661ea9907e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d730bb2247d5aa3a3847e38708dd01e1baaff27a","url":"https://github.com/apollo-ullah/Baymax/commit/d730bb2247d5aa3a3847e38708dd01e1baaff27a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a4ff902f5bed560f65b0e2b664219f085f1a72bc","url":"https://github.com/apollo-ullah/Baymax/commit/a4ff902f5bed560f65b0e2b664219f085f1a72bc","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor'","ref":"5eb0d792e8bb3f9b0bf29b1401f2602bcd57246e","url":"https://github.com/apollo-ullah/Baymax/commit/5eb0d792e8bb3f9b0bf29b1401f2602bcd57246e","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: trailer 'Co-authored-by: Cursor'","ref":"220f2e135e42ec3ed898f656ac7d7f438059f60f","url":"https://github.com/apollo-ullah/Baymax/commit/220f2e135e42ec3ed898f656ac7d7f438059f60f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"bc944b4d32abcc896e92e3c7828bce19bf5212a5","url":"https://github.com/apollo-ullah/Baymax/commit/bc944b4d32abcc896e92e3c7828bce19bf5212a5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1e28b11089f9da4f6c07c44a6b4535e83533e54e","url":"https://github.com/apollo-ullah/Baymax/commit/1e28b11089f9da4f6c07c44a6b4535e83533e54e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"df211c9d82246f3574aafaa5d3974a63509785fe","url":"https://github.com/apollo-ullah/Baymax/commit/df211c9d82246f3574aafaa5d3974a63509785fe","weight":0.9},{"kind":"attributed-commit","description":"Cursor agent: on merged branch (0242b65c76)","ref":"b302faae60cf32df20551cf1dd33ea4e17e6181f","url":"https://github.com/apollo-ullah/Baymax/commit/b302faae60cf32df20551cf1dd33ea4e17e6181f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"012e316ec123d30894a72c8d043d1fa9f0b6b446","url":"https://github.com/apollo-ullah/Baymax/commit/012e316ec123d30894a72c8d043d1fa9f0b6b446","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b87b87f0f9e84a0ec72a0a72e95a7c25f99f557c","url":"https://github.com/apollo-ullah/Baymax/commit/b87b87f0f9e84a0ec72a0a72e95a7c25f99f557c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c54e0d051c190327143c9b21e4544d6988aa9dc7","url":"https://github.com/apollo-ullah/Baymax/commit/c54e0d051c190327143c9b21e4544d6988aa9dc7","weight":0.9}],"data":{"attributed_loc_by_commit":{"2dc02cb2435fa60f35cc24d19d6146a988be478a":0,"e92cb530f8a0daaa621923a81e410eb58afc0eed":0,"e09c7ca25749ae60c60c4553802613caf8bcc84a":1041,"57af0449bbe191bf8b75fb2f38f91a74085942a3":732,"bc5f3e37adb5403536ce75daff50d12d4351d597":3,"1aa95711b85385a74e8746b64eb1e1058e3b0e75":0,"46d830e3d6710e34078668f8a2b49900b4f631a7":1767,"c54e0d051c190327143c9b21e4544d6988aa9dc7":0,"b87b87f0f9e84a0ec72a0a72e95a7c25f99f557c":367,"012e316ec123d30894a72c8d043d1fa9f0b6b446":152,"b302faae60cf32df20551cf1dd33ea4e17e6181f":462,"df211c9d82246f3574aafaa5d3974a63509785fe":207,"1e28b11089f9da4f6c07c44a6b4535e83533e54e":214,"bc944b4d32abcc896e92e3c7828bce19bf5212a5":11,"220f2e135e42ec3ed898f656ac7d7f438059f60f":603,"5eb0d792e8bb3f9b0bf29b1401f2602bcd57246e":0,"a4ff902f5bed560f65b0e2b664219f085f1a72bc":147,"d730bb2247d5aa3a3847e38708dd01e1baaff27a":4,"5cc611ef1128463c81f420a9b67080661ea9907e":51,"cd7880ccc5c50262de7aaa30e7c9f3f82573e212":48,"91aa099dd8a9f01067d941d923b6a87fa45a6986":56,"39a4c3ed23d9fc409cf473341f0f1e0c543a4ac4":175,"edeffdb9a0fd93d42a5bf255222e5123057b3320":428,"8f258627d457f2b479acd03a00c2068147e15bdf":90,"bfdd8fa3ba1771364faddebc338560eabf247400":0,"da2fa2d1f7c3144d371e3d96ce7d9d4de9026780":61,"066ff2761218720a477ed6f4b75188353f0adeaa":14,"89275a65f6401483a95e30326beccf28de5cd0b8":497,"0bcd83e72014f74fd129cb6524aa5069a576e682":632,"fbc8e1e42a6e8e74945c643f9f5b407b79d14fa1":11,"5ff9024fb5af41a06cdf72e7a92248b12bef3beb":151,"cbf7d9542a9ecf5f66693c1a7a43cf5514ba1e44":0},"tools":{"cursor":{"name":"Cursor agent","commits":12,"loc":2706,"first_seen":1781987645,"last_seen":1782059701},"claude-code":{"name":"Claude Code","commits":20,"loc":5218,"first_seen":1781992709,"last_seen":1782067925}},"monthly":{"2026-06":{"loc":13209,"attributed_loc":7924}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":1.0,"workflow_agents":0.0,"tools_configured":1.0,"earliest_adoption":1782007830.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"CLAUDE.md (claude-code configuration)","ref":"CLAUDE.md","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/CLAUDE.md","weight":0.5}],"data":{"artifacts":[{"tool":"claude-code","path":"CLAUDE.md","added_at":1782007830}],"workflows":[],"tools":["claude-code"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":22.0,"flagged_units":2.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":13209.0,"flagged_loc":5428.0,"flagged_loc_share":0.41093194034370506,"max_loc_per_hour":1969.7504109998504,"median_loc_per_hour":172.37432391542913,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"3,661 lines of first-party code in ~1.9h (1,970 lines/hour, 2 commit session)","ref":"da6174996b4203ac7ea2c357f1f399d133133ed8","url":"https://github.com/apollo-ullah/Baymax/commit/da6174996b4203ac7ea2c357f1f399d133133ed8","weight":0.5909251232999551},{"kind":"velocity-burst","description":"1,767 lines of first-party code in ~1.2h (1,489 lines/hour, 1 commit session)","ref":"46d830e3d6710e34078668f8a2b49900b4f631a7","url":"https://github.com/apollo-ullah/Baymax/commit/46d830e3d6710e34078668f8a2b49900b4f631a7","weight":0.4466089398549029}],"data":{"flagged_loc_by_commit":{"46d830e3d6710e34078668f8a2b49900b4f631a7":1767,"eb0eae96aa2ed67dba9095606542f34af0dd4908":3372,"da6174996b4203ac7ea2c357f1f399d133133ed8":289},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":11910.0,"index":1.259,"count:narrated_steps":6.0,"per_kloc:narrated_steps":0.504,"files:narrated_steps":1.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":18.0,"per_kloc:emoji_in_code":1.511,"files:emoji_in_code":6.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 1: let the CDC feed pick the focus illness, then fetch its surveillance.","ref":"fetch/agents/who_agent/fetcher.py:632","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L632","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 2: fetch weather (Open-Meteo, live, no key) + illness (CDC feed)","ref":"fetch/agents/who_agent/fetcher.py:637","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L637","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 3: merge focus-illness WHO surveillance + weather + illness into forecast:{region}","ref":"fetch/agents/who_agent/fetcher.py:641","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L641","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 4: gather remaining context for Claude","ref":"fetch/agents/who_agent/fetcher.py:687","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L687","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 5: Claude reasoning — focus illness + WHO surveillance + weather + inventory + vision + scenario","ref":"fetch/agents/who_agent/fetcher.py:692","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L692","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: # Step 6: write reasoning to Redis","ref":"fetch/agents/who_agent/fetcher.py:703","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L703","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":0.0,"secrets_low_confidence":1.0},"findings":[{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit a0d55e4349); removed from the current tree but still retrievable","path":"adyan-agent-communication-layer/private_keys.json","line":3,"fingerprint":"a0d55e434910d5c24d750ec98b463a267c9939c5:adyan-agent-communication-layer/private_keys.json:generic-api-key:3"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":9.0,"findings_high":2.0,"findings_medium":7.0,"findings_low":0.0,"weighted_findings":6.1,"scanned_lines":11910.0,"parse_errors":1.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"ui/app.py","line":124,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:ui/app.py:124"},{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"ui/app.py","line":572,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:ui/app.py:572"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":887,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:887"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":895,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:895"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":912,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:912"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":913,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:913"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":918,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:918"},{"rule_id":"opengrep/python.flask.security.injection.raw-html-format","severity":"medium","message":"Detected user input flowing into a manually constructed HTML string. You may be accidentally bypassing secure methods of rendering HTML by manually constructing HTML and this could create a cross-site scripting vulnerability, which could let attackers steal sensitive user data. To be sure this is sa [confidence medium]","path":"ui/app.py","line":921,"fingerprint":"python.flask.security.injection.raw-html-format:ui/app.py:921"},{"rule_id":"opengrep/python.flask.security.audit.avoid_app_run_with_bad_host","severity":"medium","message":"Running flask app with host 0.0.0.0 could expose the server publicly. [confidence high]","path":"ui/app.py","line":957,"fingerprint":"python.flask.security.audit.avoid_app_run_with_bad_host:ui/app.py:957"}],"evidence":[],"data":{"rulesets":["python","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":1.0,"vulnerabilities":1.0,"vulns_critical":0.0,"vulns_high":0.0,"vulns_medium":1.0,"vulns_low":0.0,"vulns_unknown":0.0,"penalty":3.0},"findings":[{"rule_id":"osv/GHSA-mf9w-mj56-hr94","severity":"medium","message":"python-dotenv@1.0.0 (PyPI) is affected by PYSEC-2026-2270, GHSA-mf9w-mj56-hr94","path":"agent-communication-layer/requirements.txt","line":null,"fingerprint":"python-dotenv@1.0.0 (PyPI):GHSA-mf9w-mj56-hr94"}],"evidence":[],"data":{"ecosystems":["PyPI"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0244,"unpinned_manifests":0.0},"findings":[],"evidence":[],"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":379.0,"function_nloc":5495.0,"mean_ccn":3.48,"p90_ccn":8.0,"complex_functions":4.0,"long_functions":1.0,"many_param_functions":6.0,"risky_nloc_share":0.0659},"findings":[],"evidence":[{"kind":"complex-function","description":"on_intent in agent-communication-layer/front_agent.py: complexity 22, 75 lines","ref":"agent-communication-layer/front_agent.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/front_agent.py#L459","weight":0.36666666666666664},{"kind":"complex-function","description":"_derive_transfer_plan in ui/app.py: complexity 22, 61 lines","ref":"ui/app.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/ui/app.py#L645","weight":0.36666666666666664},{"kind":"complex-function","description":"fetch_influenza_cdc in fetch/agents/who_agent/fetcher.py: complexity 17, 48 lines","ref":"fetch/agents/who_agent/fetcher.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L221","weight":0.2833333333333333},{"kind":"complex-function","description":"_evaluate in agent-communication-layer/stockpile_agents.py: complexity 16, 50 lines","ref":"agent-communication-layer/stockpile_agents.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/stockpile_agents.py#L189","weight":0.26666666666666666},{"kind":"complex-function","description":"reason_with_claude in fetch/agents/who_agent/fetcher.py: complexity 12, 128 lines","ref":"fetch/agents/who_agent/fetcher.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/fetch/agents/who_agent/fetcher.py#L343","weight":0.2}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":8918.0,"duplicated_lines":1094.0,"duplicated_share":0.1227,"files":86.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/baymax_agents.py:3 and agent-communication-layer/stockpile_agents.py:3","ref":"agent-communication-layer/baymax_agents.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/baymax_agents.py#L3","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/baymax_agents.py:724 and agent-communication-layer/baymax_agents.py:743","ref":"agent-communication-layer/baymax_agents.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/baymax_agents.py#L724","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/baymax_agents.py:1016 and agent-communication-layer/front_agent.py:628","ref":"agent-communication-layer/baymax_agents.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/baymax_agents.py#L1016","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/dashboard_bus.py:53 and agent-communication-layer/dashboard_bus.py:71","ref":"agent-communication-layer/dashboard_bus.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/dashboard_bus.py#L53","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/protocol.py:61 and agent-communication-layer/settlement.py:67","ref":"agent-communication-layer/protocol.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/protocol.py#L61","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/run_dashboard_demo.py:57 and agent-communication-layer/run_front.py:128","ref":"agent-communication-layer/run_dashboard_demo.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/run_dashboard_demo.py#L57","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/run_hospital_b.py:18 and agent-communication-layer/run_hospital_c.py:18","ref":"agent-communication-layer/run_hospital_b.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/run_hospital_b.py#L18","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/scripts/single_mac_demo.sh:16 and agent-communication-layer/scripts/tailscale_env.sh:9","ref":"agent-communication-layer/scripts/single_mac_demo.sh","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/scripts/single_mac_demo.sh#L16","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/scripts/tailscale_peer_b.sh:14 and agent-communication-layer/scripts/tailscale_server.sh:16","ref":"agent-communication-layer/scripts/tailscale_peer_b.sh","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/scripts/tailscale_peer_b.sh#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: agent-communication-layer/settlement.py:484 and agent-communication-layer/settlement.py:522","ref":"agent-communication-layer/settlement.py","url":"https://github.com/apollo-ullah/Baymax/blob/6000ef8c6844d0ba04dc7af6442f90a2882b16a0/agent-communication-layer/settlement.py#L484","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":42.0,"weighted_findings":107.25,"scanned_lines":11910.0,"category:best-practice":18.0,"category:correctness":1.0,"category:maintainability":23.0},"findings":[{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_on_chat` is defined inside a function but never used","path":"agent-communication-layer/agent_base.py","line":139,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/agent_base.py:139"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_on_ack` is defined inside a function but never used","path":"agent-communication-layer/agent_base.py","line":157,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/agent_base.py:157"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_offer` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":697,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:697"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_accept` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":722,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:722"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_reject` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":741,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:741"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `offer_timeout` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":774,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:774"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_request` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":867,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:867"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_proposal` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":911,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:911"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `release_poll` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":976,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:976"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_kickoff` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":1024,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:1024"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_auto_approve` is defined inside a function but never used","path":"agent-communication-layer/baymax_agents.py","line":1039,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/baymax_agents.py:1039"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"agent-communication-layer/camera_worker.py","line":75,"fingerprint":"python.lang.best-practice.arbitrary-sleep:agent-communication-layer/camera_worker.py:75"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"agent-communication-layer/camera_worker.py","line":81,"fingerprint":"python.lang.best-practice.arbitrary-sleep:agent-communication-layer/camera_worker.py:81"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"agent-communication-layer/camera_worker.py","line":137,"fingerprint":"python.lang.best-practice.arbitrary-sleep:agent-communication-layer/camera_worker.py:137"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"agent-communication-layer/camera_worker.py","line":140,"fingerprint":"python.lang.best-practice.arbitrary-sleep:agent-communication-layer/camera_worker.py:140"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_feed` is defined inside a function but never used","path":"agent-communication-layer/front_agent.py","line":663,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/front_agent.py:663"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_poll_trigger` is defined inside a function but never used","path":"agent-communication-layer/run_front.py","line":123,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/run_front.py:123"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_poll_decision` is defined inside a function but never used","path":"agent-communication-layer/run_front.py","line":145,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/run_front.py:145"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_commit` is defined inside a function but never used","path":"agent-communication-layer/settlement.py","line":278,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/settlement.py:278"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_reject` is defined inside a function but never used","path":"agent-communication-layer/settlement.py","line":325,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/settlement.py:325"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_offer` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":517,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:517"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_accept` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":543,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:543"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_reject` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":563,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:563"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `offer_timeout` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":600,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:600"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_request` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":633,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:633"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `on_proposal` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":669,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:669"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `_kickoff` is defined inside a function but never used","path":"agent-communication-layer/stockpile_agents.py","line":746,"fingerprint":"python.lang.maintainability.useless-inner-function:agent-communication-layer/stockpile_agents.py:746"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"hardware/camera connection/capture_single.py","line":246,"fingerprint":"python.lang.best-practice.arbitrary-sleep:hardware/camera connection/capture_single.py:246"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"hardware/test folder/pico_code/main.py","line":22,"fingerprint":"python.lang.best-practice.arbitrary-sleep:hardware/test folder/pico_code/main.py:22"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"ui/app.py","line":123,"fingerprint":"python.lang.best-practice.open-never-closed:ui/app.py:123"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"ui/app.py","line":236,"fingerprint":"python.lang.best-practice.arbitrary-sleep:ui/app.py:236"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"ui/app.py","line":239,"fingerprint":"python.lang.best-practice.arbitrary-sleep:ui/app.py:239"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"ui/app.py","line":854,"fingerprint":"python.lang.best-practice.arbitrary-sleep:ui/app.py:854"},{"rule_id":"opengrep/python.lang.best-practice.pass-body-fn","severity":"medium","message":"`pass` is the body of function _on_ack. Consider removing this or raise NotImplementedError() if this is a TODO","path":"agent-communication-layer/agent_base.py","line":157,"fingerprint":"python.lang.best-practice.pass-body-fn:agent-communication-layer/agent_base.py:157"},{"rule_id":"opengrep/python.lang.best-practice.pass-body-fn","severity":"medium","message":"`pass` is the body of function _buyer_on_chat_ack. Consider removing this or raise NotImplementedError() if this is a TODO","path":"agent-communication-layer/wave2_e2e_check.py","line":94,"fingerprint":"python.lang.best-practice.pass-body-fn:agent-communication-layer/wave2_e2e_check.py:94"},{"rule_id":"opengrep/python.lang.best-practice.pass-body-fn","severity":"medium","message":"`pass` is the body of function _on_ack. Consider removing this or raise NotImplementedError() if this is a TODO","path":"agent-communication-layer/wave3_order_e2e_check.py","line":116,"fingerprint":"python.lang.best-practice.pass-body-fn:agent-communication-layer/wave3_order_e2e_check.py:116"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"fetch/agents/illness_agent/agent.py","line":53,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:fetch/agents/illness_agent/agent.py:53"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"fetch/agents/who_agent/fetcher.py","line":564,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:fetch/agents/who_agent/fetcher.py:564"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"hardware/camera connection/bottle_counter.py","line":223,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:hardware/camera connection/bottle_counter.py:223"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"hardware/camera connection/sync_to_redis.py","line":82,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:hardware/camera connection/sync_to_redis.py:82"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"ui/app.py","line":123,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:ui/app.py:123"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"kill_all.sh","line":38,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:kill_all.sh:38"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.0217,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.5333,"test_lines":129.0,"source_lines":11910.0,"test_ratio":0.0108,"ci_files":0.0,"cochange_share":0.1333,"cochange_commits":30.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":155.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":6.0,"escapes_per_kloc":0.522},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":7008.0,"other_lines":4902.0,"files_blamed":86.0,"blame_failures":0.0,"quality:ai_findings":20.0,"quality:ai_per_kloc":2.854,"quality:other_findings":22.0,"quality:other_per_kloc":4.488,"quality:ratio":0.64,"security:ai_findings":6.0,"security:ai_per_kloc":0.856,"security:other_findings":3.0,"security:other_per_kloc":0.612,"security:ratio":1.4},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":["unreviewed-ai-risk"]}