{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31","relationships":[{"target":{"id":"CWE-1032","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-732","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-16","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1032","CWE-732","CWE-16"]}},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36","relationships":[{"target":{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-494","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1357","CWE-494"]}},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"TaskLoggerService._save_chat_messages_for_background_task (cyclomatic 85): TaskLoggerService._save_chat_messages_for_background_task has cyclomatic complexity 85 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":475}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0a20712de5618b52e1ccbd9edc4a224149f7c7afdc22e8f61f4b3a63a05c9b7"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.process_artifact_blocks_callback (cyclomatic 78): callbacks.process_artifact_blocks_callback has cyclomatic complexity 78 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"36bad0daf19638a0ae3d9a5b9dbb4b3ca6dc0346b15c711ac3f38a43fe6b8722"}},{"ruleId":"D1","level":"warning","message":{"text":"builtin_artifact_tools.extract_content_from_artifact (cyclomatic 72): builtin_artifact_tools.extract_content_from_artifact has cyclomatic complexity 72 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":695}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9ebf2fe1c21f69145e01f44fd3fed0e70de3af722b937854d26c8f713c7327f"}},{"ruleId":"D1","level":"warning","message":{"text":"deep_research_tools.deep_research (cyclomatic 72): deep_research_tools.deep_research has cyclomatic complexity 72 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1945}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d9c627cea0d745a59d16d40a33552a7646aae76ec48616b63824fe6c1e182af"}},{"ruleId":"D1","level":"warning","message":{"text":"tasks._submit_task (cyclomatic 71): tasks._submit_task has cyclomatic complexity 71 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad98a4bb9679732dc6432de31ab0cc942835a550fee87bc6ca14e67164b7f7ab"}},{"ruleId":"D1","level":"warning","message":{"text":"A2AProxyComponent._process_downstream_response (cyclomatic 62): A2AProxyComponent._process_downstream_response has cyclomatic complexity 62 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1905}}}],"partialFingerprints":{"codehealthFindingId/v1":"82152581b88d06e634fbb255eb6b53ee17e8a2ed18e9732d94c5af1528812c41"}},{"ruleId":"D1","level":"warning","message":{"text":"ResultHandler._handle_success (cyclomatic 62): ResultHandler._handle_success has cyclomatic complexity 62 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c8f34f06cd80bfa780cc1b0896dc1ba652b8189daff839af6704e96f5eede6e"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_event_details (cyclomatic 61): test_declarative_runner._assert_event_details has cyclomatic complexity 61 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2594}}}],"partialFingerprints":{"codehealthFindingId/v1":"d890f857128b152165ea1e60da1619f1fa018484681da6a5ce983bcda78b9be5"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseGatewayComponent._resolve_embeds_and_handle_signals (cyclomatic 59): BaseGatewayComponent._resolve_embeds_and_handle_signals has cyclomatic complexity 59 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1331}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7964aecf963614a8fa421080b25180bb4d4de07d530ba10c8a368b707114fa0"}},{"ruleId":"D1","level":"warning","message":{"text":"LiteLlm.generate_content_async (cyclomatic 58): LiteLlm.generate_content_async has cyclomatic complexity 58 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":1308}}}],"partialFingerprints":{"codehealthFindingId/v1":"1227cfd04695fe21d8afd46878a6024ec50bb4a93373175d61c35b242491401a"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers.handle_a2a_response (cyclomatic 57): event_handlers.handle_a2a_response has cyclomatic complexity 57 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1894}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d9e4aa5ea915589f587a6ea01771511b606991aa73e844549a6b4f5a0e58555"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_llm_interactions (cyclomatic 54): test_declarative_runner._assert_llm_interactions has cyclomatic complexity 54 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":780}}}],"partialFingerprints":{"codehealthFindingId/v1":"74692bc490f7cf51641b9a14e81db21553610023a2f193ce4734ad114997e62c"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner.test_declarative_scenario (cyclomatic 52): test_declarative_runner.test_declarative_scenario has cyclomatic complexity 52 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1795}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ea0135df6b2be87c08e3f0c03216c193e7781374c977899f315f32b8eefa708"}},{"ruleId":"D1","level":"warning","message":{"text":"web_tools.web_request (cyclomatic 48): web_tools.web_request has cyclomatic complexity 48 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/web_tools.py"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cf3390f1218c2b1fc54fba73a11ce2517ff677c5431eff60dd2715f166e5f30"}},{"ruleId":"D1","level":"warning","message":{"text":"tasks.get_task_title_data (cyclomatic 48): tasks.get_task_title_data has cyclomatic complexity 48 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1486}}}],"partialFingerprints":{"codehealthFindingId/v1":"b65afba9e1c121d28a31d03c8a8785a033ff7f6c2dcf6971614417a9a4490e31"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.inject_dynamic_instructions_callback (cyclomatic 47): callbacks.inject_dynamic_instructions_callback has cyclomatic complexity 47 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1761}}}],"partialFingerprints":{"codehealthFindingId/v1":"863e2efd98d49ef9264777a89a523abbf872fe31dacffcd3cdf130bd9d1c59a0"}},{"ruleId":"D1","level":"warning","message":{"text":"builtin_artifact_tools.artifact_search_and_replace_regex (cyclomatic 47): builtin_artifact_tools.artifact_search_and_replace_regex has cyclomatic complexity 47 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":2178}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6f7f1a08a9098a6a77902b60e37a179ba3e217e5083ca925dd99b404a34d380"}},{"ruleId":"D1","level":"warning","message":{"text":"sessions.get_session_context_usage (cyclomatic 46): sessions.get_session_context_usage has cyclomatic complexity 46 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":1334}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7be8e9a241906fcbc47925893e3e2dd0c7966304752974fe14d8ec79ddc10d9"}},{"ruleId":"D1","level":"warning","message":{"text":"artifacts.list_all_artifacts (cyclomatic 45): artifacts.list_all_artifacts has cyclomatic complexity 45 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"65c2444a9fbf1e263ff25b28a7a24e31cab38ae5d74cf553d1c3e59c95a03b3e"}},{"ruleId":"D1","level":"warning","message":{"text":"converter.convert_data (cyclomatic 43): converter.convert_data has cyclomatic complexity 43 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"30ec0d80013bccfb70a93c4e0e0596a4a303602395a949a48074d352545fe129"}},{"ruleId":"D1","level":"warning","message":{"text":"config.get_app_config (cyclomatic 42): config.get_app_config has cyclomatic complexity 42 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/config.py"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e4cbcc8ff93b21f056ace1201b6828d85a78eb7471639ad9919b1331c48089e"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskBuilderAssistant._llm_response (cyclomatic 42): TaskBuilderAssistant._llm_response has cyclomatic complexity 42 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1ea1fd7b7f6b17cae4d533f399fdc37221a68f2db1370d944fbd9b2e5664ee9"}},{"ruleId":"D1","level":"warning","message":{"text":"services.initialize_artifact_service (cyclomatic 41): services.initialize_artifact_service has cyclomatic complexity 41 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":780}}}],"partialFingerprints":{"codehealthFindingId/v1":"da03e33f408c52d784d6330efcf4b819deb79c7ff9748999ed0b5e8e9d629df1"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent.__init__ (cyclomatic 40): SamAgentComponent.__init__ has cyclomatic complexity 40 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"029a74ab1d94f89974646730386b94d72fe341615b30f3f47bbc9d38f67dc718"}},{"ruleId":"D1","level":"warning","message":{"text":"artifact_helpers.load_artifact_content_or_metadata (cyclomatic 39): artifact_helpers.load_artifact_content_or_metadata has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":1417}}}],"partialFingerprints":{"codehealthFindingId/v1":"caefdbe49e80a8af87c1391332f70e4e0c511f4dce516caa97ed5a16f4cf3de3"}},{"ruleId":"D1","level":"warning","message":{"text":"tasks.get_task_events (cyclomatic 39): tasks.get_task_events has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1050}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f8aecda694fe2ead8b31e07ca5d14db9318e4e264eba12970afdf015b8e3a64"}},{"ruleId":"D1","level":"warning","message":{"text":"visualization.update_visualization_stream_config (cyclomatic 39): visualization.update_visualization_stream_config has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/visualization.py"},"region":{"startLine":796}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf545ab88926c5facc93eb242db8544c07c31022c37bf950945d59fa713147c8"}},{"ruleId":"D1","level":"warning","message":{"text":"visualization_mapper.infer_visualization_event_details (cyclomatic 39): visualization_mapper.infer_visualization_event_details has cyclomatic complexity 39 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/visualization_mapper.py"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"fed66cf80449eca1b516fba9234757346d04168387e9c8442b09cd3549b3d9fd"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskBuilderAssistant.validate_conflict (cyclomatic 38): TaskBuilderAssistant.validate_conflict has cyclomatic complexity 38 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":669}}}],"partialFingerprints":{"codehealthFindingId/v1":"23ea73aae149c25073846446c938fa37dd6a23eb6658b10bd0be73ced3f50a53"}},{"ruleId":"D1","level":"warning","message":{"text":"orchestrator_step.create_orchestrator_config (cyclomatic 37): orchestrator_step.create_orchestrator_config has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/orchestrator_step.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cd3561a485f1acecf372296c2f95be987f25079b3a4e59f9e412941b1c35f28"}},{"ruleId":"D1","level":"warning","message":{"text":"install_cmd.install_plugin (cyclomatic 37): install_cmd.install_plugin has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/install_cmd.py"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa06dccccf42ca5ad489a05c1a47852d2c56b9e6866b9f3a67919bfbd53b94cd"}},{"ruleId":"D1","level":"warning","message":{"text":"WebUIBackendComponent.cleanup (cyclomatic 37): WebUIBackendComponent.cleanup has cyclomatic complexity 37 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1951}}}],"partialFingerprints":{"codehealthFindingId/v1":"114c19cfe5600e451cbf6bf5157afda9d061f9a1ce963656714b6e344c6c0cb9"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjectService.import_project_from_zip (cyclomatic 37): ProjectService.import_project_from_zip has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":1162}}}],"partialFingerprints":{"codehealthFindingId/v1":"89207e7e37447ff0bbc09e176daaec296e6b7999111b43ab44910b75f84449d6"}},{"ruleId":"D1","level":"warning","message":{"text":"resolver._evaluate_artifact_content_embed_with_chain (cyclomatic 36): resolver._evaluate_artifact_content_embed_with_chain has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"7af8fa59ce515084dedc6ddf66050eef20f786f222603fe687e2074acf5ffd04"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseGatewayComponent._handle_resolved_signals (cyclomatic 36): BaseGatewayComponent._handle_resolved_signals has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":608}}}],"partialFingerprints":{"codehealthFindingId/v1":"2de08d0c7c08c7e07bd03d5cd0e5493d5bcdd11dcd88269bdb3c5a2080eddb26"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseGatewayComponent._process_parsed_a2a_event (cyclomatic 36): BaseGatewayComponent._process_parsed_a2a_event has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1740}}}],"partialFingerprints":{"codehealthFindingId/v1":"20ebcee7633f7e18e3d888f7caba795b9857b8b1df54d5f29135bc6cbfb24d3d"}},{"ruleId":"D1","level":"warning","message":{"text":"visualization.subscribe_to_visualization_stream (cyclomatic 36): visualization.subscribe_to_visualization_stream has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/visualization.py"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"22dac9c39ad819837ec4a1c9c7463b83cfeff8fa0dd4f5d20409c8848fc07810"}},{"ruleId":"D1","level":"warning","message":{"text":"SchedulerService._execute_scheduled_task_inner (cyclomatic 36): SchedulerService._execute_scheduled_task_inner has cyclomatic complexity 36 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":557}}}],"partialFingerprints":{"codehealthFindingId/v1":"0431a97a7fd3d891287d554d970466b1bbecc06b2291939322d585a19cf8e22e"}},{"ruleId":"D1","level":"warning","message":{"text":"ResultHandler._save_chat_task (cyclomatic 35): ResultHandler._save_chat_task has cyclomatic complexity 35 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"a175840e86a4644f7d8d995f96ac3bdffdddecbd14d80726aa65c26381596322"}},{"ruleId":"D1","level":"warning","message":{"text":"setup._load_mcp_tool (cyclomatic 34): setup._load_mcp_tool has cyclomatic complexity 34 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/setup.py"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"2896f9ca7f8e5e2946af25aab7ff84cd6479e53114efd9148253cd16d530a702"}},{"ruleId":"D1","level":"warning","message":{"text":"sessions.save_task (cyclomatic 33): sessions.save_task has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"94f16b2ad208877498f9a921291e4e229fae3c81c3fe75f488f153bf7cfbdc61"}},{"ruleId":"D1","level":"warning","message":{"text":"share.get_shared_artifact_content (cyclomatic 33): share.get_shared_artifact_content has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"57e713fd14a0e0ddc3ce57111d4d56a54d1656465ad1f3eb7fb8a36c5f92231b"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskLoggerService.log_event (cyclomatic 33): TaskLoggerService.log_event has cyclomatic complexity 33 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b49afe515eac4a951d12663007ec2769936bfcf620b7ec9298ab5e86e846a42"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers._handle_send_message_request (cyclomatic 32): event_handlers._handle_send_message_request has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1215}}}],"partialFingerprints":{"codehealthFindingId/v1":"46f07df8870ef7508180b81d45da738a2ff3bf3595185a047a060806ae3f8800"}},{"ruleId":"D1","level":"warning","message":{"text":"runner.create_compaction_event (cyclomatic 31): runner.create_compaction_event has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"7240c47aec180fbb740031b6b737a3c3a336b256e12b83d90a27e22028ffd85b"}},{"ruleId":"D1","level":"warning","message":{"text":"modifiers._apply_template (cyclomatic 31): modifiers._apply_template has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/modifiers.py"},"region":{"startLine":418}}}],"partialFingerprints":{"codehealthFindingId/v1":"48f2eaed69ea7f2a11f5f9326f7453f21f0aa02ca80509120db0d5cfd0b81b8b"}},{"ruleId":"D1","level":"warning","message":{"text":"WebUIBackendComponent._visualization_message_processor_loop (cyclomatic 31): WebUIBackendComponent._visualization_message_processor_loop has cyclomatic complexity 31 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1031}}}],"partialFingerprints":{"codehealthFindingId/v1":"c40ed247bb88af80dadad7054aaeecfe3ec1a5d0a054adeb853a1505821ff46d"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.manage_large_mcp_tool_responses_callback (cyclomatic 30): callbacks.manage_large_mcp_tool_responses_callback has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1055}}}],"partialFingerprints":{"codehealthFindingId/v1":"61f78683518de47b26374b5262c8961269cfa4ba64e710b8d14569c27c0f13bd"}},{"ruleId":"D1","level":"warning","message":{"text":"translation._prepare_a2a_filepart_for_adk (cyclomatic 30): translation._prepare_a2a_filepart_for_adk has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e726dc03b3f5dada721f4c70690159572f847c34303ec7277077432a205f17e"}},{"ruleId":"D1","level":"warning","message":{"text":"artifacts.upload_artifact_with_session (cyclomatic 30): artifacts.upload_artifact_with_session has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"879ca97f16554475d6aeaf87a19d6d1b5691b19ebf2a5a8663113069ed14182d"}},{"ruleId":"D1","level":"warning","message":{"text":"PromptBuilderAssistant._llm_response (cyclomatic 30): PromptBuilderAssistant._llm_response has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cd923894865d05807fb578f4864c4f5965818af8d310b0814c78ba41aa2f5f1"}},{"ruleId":"D1","level":"warning","message":{"text":"ShareService.get_shared_session_view (cyclomatic 30): ShareService.get_shared_session_view has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":321}}}],"partialFingerprints":{"codehealthFindingId/v1":"1435e7129a183df244b7d765b248a23aa8c99092b44fa96d788a0e11531ffc72"}},{"ruleId":"D1","level":"warning","message":{"text":"conftest.clear_generic_gateway_state_between_tests (cyclomatic 30): conftest.clear_generic_gateway_state_between_tests has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/gateway/generic/conftest.py"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"142d9dd90adce6a7497d5899c4eaee2639dd823fd7a62f8b029db5af35f1b05b"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._setup_scenario_environment (cyclomatic 30): test_declarative_runner._setup_scenario_environment has cyclomatic complexity 30 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"1edf99e5c20cd9021f3dd6c54c66ec22fd7268a8937b0952d4759da923af2e53"}},{"ruleId":"D1","level":"warning","message":{"text":"common.execute_task (cyclomatic 29): common.execute_task has cyclomatic complexity 29 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/task_cmd/common.py"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"f370d44797b0abe39c67b67cbec855120a5bc07470578909d0fc6de0d678805c"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent.process_and_publish_adk_event (cyclomatic 29): SamAgentComponent.process_and_publish_adk_event has cyclomatic complexity 29 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2048}}}],"partialFingerprints":{"codehealthFindingId/v1":"c381ebdf3e5a2fb564de10bcbf6c1ed844aec143e2e27fea74ed0eb23acf892f"}},{"ruleId":"D1","level":"warning","message":{"text":"A2AProxyComponent._get_or_create_a2a_client (cyclomatic 28): A2AProxyComponent._get_or_create_a2a_client has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"c857d7e9ae9ed99085f078f5ba9a237deae07850668ff318ba000cd414525f4b"}},{"ruleId":"D1","level":"warning","message":{"text":"tasks._inject_project_context (cyclomatic 28): tasks._inject_project_context has cyclomatic complexity 28 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0d82097079f17cc56fe15b622a031e90af6b331c879d0f1c7dae4676ea1945"}},{"ruleId":"D1","level":"warning","message":{"text":"gateway_cmd.create_gateway_files (cyclomatic 27): gateway_cmd.create_gateway_files has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/gateway_cmd.py"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"a978ebd89c92de431893e712835560069f914357c2a09e1633e51155dfd4be66"}},{"ruleId":"D1","level":"warning","message":{"text":"AudioService.get_speech_config (cyclomatic 27): AudioService.get_speech_config has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1202}}}],"partialFingerprints":{"codehealthFindingId/v1":"65fd2244e03a68ee3885a5f423746e326aef4979957362eadf26f7ad98348bba"}},{"ruleId":"D1","level":"warning","message":{"text":"ModelConfigService.test_connection (cyclomatic 27): ModelConfigService.test_connection has cyclomatic complexity 27 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_config_service.py"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e37c7550b682fbf4d6b12d5eaa3d65d1d29912cba17b3345c3032cd31ef5e25"}},{"ruleId":"D1","level":"warning","message":{"text":"agent_cmd._write_agent_yaml_from_data (cyclomatic 26): agent_cmd._write_agent_yaml_from_data has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/agent_cmd.py"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b8af31d14f12d75ef55773ed72c83989d674840c1d951fe85ee8cbac2d36661"}},{"ruleId":"D1","level":"warning","message":{"text":"runner.run_adk_async_task (cyclomatic 26): runner.run_adk_async_task has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1725}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a2f07c80b48b8f7165990d19ea1d1207a468b2e79a27f8c720911785fd67094"}},{"ruleId":"D1","level":"warning","message":{"text":"A2AProxyComponent._extract_security_scheme_name (cyclomatic 26): A2AProxyComponent._extract_security_scheme_name has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"7923af8e788bfab66ea97e8da72d351d7e712f5785961af76d95d8956f5ebb4e"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent._inject_peer_tools_callback (cyclomatic 26): SamAgentComponent._inject_peer_tools_callback has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1000}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdde1380ce9e7ce16db9f6b228e7231e97a840ad32060b31628dce1109439d6d"}},{"ruleId":"D1","level":"warning","message":{"text":"converter.serialize_data (cyclomatic 26): converter.serialize_data has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"0853b07e4803dd8702a887f62aff6af5f353ef9b5ed8f9bcd2d0b7aaa5ad0ab9"}},{"ruleId":"D1","level":"warning","message":{"text":"ModelListService._fetch_models_from_provider (cyclomatic 26): ModelListService._fetch_models_from_provider has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_list_service.py"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbf6d8cbd3ffdf41111ae2250ae288fa65b9e1291a310ca767b2e0a7459a5276"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.audit_log_openapi_tool_execution_result (cyclomatic 25): callbacks.audit_log_openapi_tool_execution_result has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":3258}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d76963d3cbc6c373c1c215207478e9720e9d38627ff5f7c0420c48cca523578"}},{"ruleId":"D1","level":"warning","message":{"text":"runner._repair_dangling_tool_calls_in_session (cyclomatic 25): runner._repair_dangling_tool_calls_in_session has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1035}}}],"partialFingerprints":{"codehealthFindingId/v1":"2873b787f40a0d4950132f8eb58479f65eb8aa52a8c2acdd327d2bd8c39d9666"}},{"ruleId":"D1","level":"warning","message":{"text":"artifact_helpers.save_artifact_with_metadata (cyclomatic 25): artifact_helpers.save_artifact_with_metadata has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"6598eb1af69dd196873ff3a1e4a8254b20de01b7382cbf51d1dd51516ebca0b6"}},{"ruleId":"D1","level":"warning","message":{"text":"projects.add_project_artifacts (cyclomatic 25): projects.add_project_artifacts has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d083de37064deea4d905c7db76414b6d06a13bcb88f9ac5c4ccf79097e2d787"}},{"ruleId":"D1","level":"warning","message":{"text":"WorkflowExecutorComponent._get_workflow_config_json (cyclomatic 25): WorkflowExecutorComponent._get_workflow_config_json has cyclomatic complexity 25 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"f59989a74020edc2afaf06bae46e8c8d77bd8529132d810114482ecda761258c"}},{"ruleId":"D1","level":"warning","message":{"text":"TemplateDataService.generate_breakdown_content (cyclomatic 24): TemplateDataService.generate_breakdown_content has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"53b3c0a70a84921ba85dcf2ae499ab2bd5b67089b70b1b50da492de43ae149d9"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.sanitize_tool_names_callback (cyclomatic 24): callbacks.sanitize_tool_names_callback has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2911}}}],"partialFingerprints":{"codehealthFindingId/v1":"77a15b62328ed1089af732e4c9019957bec8e480bd050b3b17355249b28d42cd"}},{"ruleId":"D1","level":"warning","message":{"text":"builtin_artifact_tools.apply_embed_and_create_artifact (cyclomatic 24): builtin_artifact_tools.apply_embed_and_create_artifact has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"3584cf6522342dbad656c9cad704a8a2d10bcfeaf7b76d07ed5291efb713128e"}},{"ruleId":"D1","level":"warning","message":{"text":"image_tools.generate_image_with_gemini (cyclomatic 24): image_tools.generate_image_with_gemini has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":719}}}],"partialFingerprints":{"codehealthFindingId/v1":"275e8f9156eb241b92a2c67c915af6fe36fe466eadabc8b1ab2bd31da518708d"}},{"ruleId":"D1","level":"warning","message":{"text":"prompts.import_prompt (cyclomatic 24): prompts.import_prompt has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":1184}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d879bb7d16f565d83118b75b4e528d890a38a3051da86c7f2d6b67257f206dc"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_artifact_state (cyclomatic 24): test_declarative_runner._assert_artifact_state has cyclomatic complexity 24 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1355}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbb3be1ed3baa543e86686c087395782683ccd43f72702fdc3dcced664779e9c"}},{"ruleId":"D1","level":"warning","message":{"text":"callbacks.solace_llm_response_callback (cyclomatic 23): callbacks.solace_llm_response_callback has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2419}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5dfa819deb9d1110492b5f4b3d40967bff06da899316dddb6325074b4d956fe"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent._filter_tools_by_capability_callback (cyclomatic 23): SamAgentComponent._filter_tools_by_capability_callback has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1358}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc295b73293e5715573e4f8568b876669ea74e33c3ef4868bd138908216a5656"}},{"ruleId":"D1","level":"warning","message":{"text":"deep_research_tools._select_sources_to_fetch (cyclomatic 23): deep_research_tools._select_sources_to_fetch has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1446}}}],"partialFingerprints":{"codehealthFindingId/v1":"042cb4bb7a59add022788d4b260bdfcaa70e441f4afe484e228951db712325a9"}},{"ruleId":"D1","level":"warning","message":{"text":"image_tools.edit_image_with_gemini (cyclomatic 23): image_tools.edit_image_with_gemini has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0c9ace48da1becad990c63d05035d6f5b41cecf608ada7d477497d8d89a99c2"}},{"ruleId":"D1","level":"warning","message":{"text":"PeerAgentTool._build_enhanced_description (cyclomatic 23): PeerAgentTool._build_enhanced_description has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/peer_agent_tool.py"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"c829e2e93e7f23ca5e291cd2e1621ac43f0cfa1a3bfbd61ab5732d53c94d17e8"}},{"ruleId":"D1","level":"warning","message":{"text":"WebUIBackendComponent._extract_involved_agents_for_viz (cyclomatic 23): WebUIBackendComponent._extract_involved_agents_for_viz has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":2169}}}],"partialFingerprints":{"codehealthFindingId/v1":"08e87c029c102afce2be3504b6499d52ab32a424166c28654697897d3e2a6103"}},{"ruleId":"D1","level":"warning","message":{"text":"ModelConfigService.update (cyclomatic 23): ModelConfigService.update has cyclomatic complexity 23 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_config_service.py"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fc16a2fdd4f238236825b2731f6a36f654105a5264b54d602132b06528f2b2f"}},{"ruleId":"D1","level":"warning","message":{"text":"cli.main_async (cyclomatic 22): cli.main_async has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/sam-rest-client/src/sam_rest_client/cli.py"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"4353299fbc56ea899dfa046e6d3f74b50c135d3841a00843a47d52ea1b53a36b"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers.handle_a2a_request (cyclomatic 22): event_handlers.handle_a2a_request has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1571}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fb4cb2d059d737cb45ff4fd927e9e77f56227c5e99d01ea3960cc1e2c95b4de"}},{"ruleId":"D1","level":"warning","message":{"text":"artifact_types.get_artifact_info (cyclomatic 22): artifact_types.get_artifact_info has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/artifact_types.py"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8f467a7dab358dcbf75d7e3fc6663c92cbe3640513cc3868c901baab730f430"}},{"ruleId":"D1","level":"warning","message":{"text":"audio_tools.concatenate_audio (cyclomatic 22): audio_tools.concatenate_audio has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":980}}}],"partialFingerprints":{"codehealthFindingId/v1":"35e7e3910744587f0557acadcddd274a1f43a559ce5b454858a13f7a830d5da7"}},{"ruleId":"D1","level":"warning","message":{"text":"audio_tools.transcribe_audio (cyclomatic 22): audio_tools.transcribe_audio has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":1146}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1e32389021809232bd74627a102ab35cd68f23196fff32311b210fd67f63806"}},{"ruleId":"D1","level":"warning","message":{"text":"evaluators._evaluate_artifact_content_embed (cyclomatic 22): evaluators._evaluate_artifact_content_embed has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/evaluators.py"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"c72c76775ed05b222edb59ff1e7fa83063255cb2434425b0db5127a966208bb7"}},{"ruleId":"D1","level":"warning","message":{"text":"liquid_renderer._prepare_template_context (cyclomatic 22): liquid_renderer._prepare_template_context has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/templates/liquid_renderer.py"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"c24f8efbdb5cc6671c2278358b1a6ad49737065eac20466d166e94a6e1c11dfc"}},{"ruleId":"D1","level":"warning","message":{"text":"AudioService.generate_speech_gemini (cyclomatic 22): AudioService.generate_speech_gemini has cyclomatic complexity 22 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":632}}}],"partialFingerprints":{"codehealthFindingId/v1":"3849292ab2c9b46ae57fe5f32f284fa73179a41546a5103bc74767a0ff1fc9b6"}},{"ruleId":"D1","level":"warning","message":{"text":"lite_llm._get_completion_inputs (cyclomatic 21): lite_llm._get_completion_inputs has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5561dee93d46a5b656ea7ab55661ce8cd65d08bb58ac191b5d5d38fe800bb29"}},{"ruleId":"D1","level":"warning","message":{"text":"services._filter_session_by_latest_compaction (cyclomatic 21): services._filter_session_by_latest_compaction has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5a67fc58f5e3160100642cbdb805a536d7620144c6bbe05c7c732fb3312319e"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers.process_event (cyclomatic 21): event_handlers.process_event has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef8dfeebb40a8a79024ab670fc18a08c6b3b35b9989ab2d62f4e911d82a1cfc2"}},{"ruleId":"D1","level":"warning","message":{"text":"A2AProxyComponent._construct_synthetic_agent_card (cyclomatic 21): A2AProxyComponent._construct_synthetic_agent_card has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cd1c8c4c8efc8fd271d1f580a0f364478c623d1502edb4489807eae5e62496d"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent.finalize_task_success (cyclomatic 21): SamAgentComponent.finalize_task_success has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2503}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9f582ad536e3ce78f3d12f9a56305fed25c7295a42bb70d441c2883d1b43078"}},{"ruleId":"D1","level":"warning","message":{"text":"audio_tools._get_voice_for_speaker (cyclomatic 21): audio_tools._get_voice_for_speaker has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"b25587563cd616c2f779d711dedd1fe78a3f80caa9ce19bcccd0079c919223fc"}},{"ruleId":"D1","level":"warning","message":{"text":"audio_tools.multi_speaker_text_to_speech (cyclomatic 21): audio_tools.multi_speaker_text_to_speech has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":758}}}],"partialFingerprints":{"codehealthFindingId/v1":"0661c280243fabf2468fea233e3057dd78b0b6e5d3a17f7defc3b50773c086fa"}},{"ruleId":"D1","level":"warning","message":{"text":"translation.format_adk_event_as_a2a (cyclomatic 21): translation.format_adk_event_as_a2a has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":522}}}],"partialFingerprints":{"codehealthFindingId/v1":"822b29cb0f57f249d8ca515792df837644ec76ec958ffedcea5fd9e5079bdbfe"}},{"ruleId":"D1","level":"warning","message":{"text":"evaluators._evaluate_artifact_meta_embed (cyclomatic 21): evaluators._evaluate_artifact_meta_embed has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/evaluators.py"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4ddca854bd32d1a2166c65f47f64c7b3ed8aa78efb034825d7daad4d8d955b6"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseGatewayComponent._message_processor_loop (cyclomatic 21): BaseGatewayComponent._message_processor_loop has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":2234}}}],"partialFingerprints":{"codehealthFindingId/v1":"37e7188acce3b521be265845ad54506a086d72ff7cae182052a53ec866ea4c77"}},{"ruleId":"D1","level":"warning","message":{"text":"artifacts.get_scheduled_task_artifact (cyclomatic 21): artifacts.get_scheduled_task_artifact has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1718}}}],"partialFingerprints":{"codehealthFindingId/v1":"398c7b9d0c909fd1d94eaeb833bf7439430a3d8c7ce5d29de355c1ee00e8fbb9"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjectService.add_artifacts_to_project (cyclomatic 21): ProjectService.add_artifacts_to_project has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"257395833dde3d542e71ba928e0beb9e972f815df6180f66109c871e3519fe47"}},{"ruleId":"D1","level":"warning","message":{"text":"SchedulerService._submit_task_to_agent_mesh (cyclomatic 21): SchedulerService._submit_task_to_agent_mesh has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":871}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc950906cc2fe21c1867efeb4dd5664bbd906bae3a5b69464c355f669f454513"}},{"ruleId":"D1","level":"warning","message":{"text":"artifact_copy_utils.copy_project_artifacts_to_session (cyclomatic 21): artifact_copy_utils.copy_project_artifacts_to_session has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"4adf14a538da1ccda2f2d9eee19f1773430c5cb854dff5437cbca035f9ecc43e"}},{"ruleId":"D1","level":"warning","message":{"text":"model_configuration_seeder._infer_provider (cyclomatic 21): model_configuration_seeder._infer_provider has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_configuration_seeder.py"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"2dcd674c188d3299bb81bedab15e45538074b82a2c5e4eb6e3e324f42636fd88"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_http_responses (cyclomatic 21): test_declarative_runner._assert_http_responses has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":567}}}],"partialFingerprints":{"codehealthFindingId/v1":"64a4b8bcb9b86457a53bce385dff848f6977257d60b1d8a7a51d90e0b23f242a"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_generated_artifacts (cyclomatic 21): test_declarative_runner._assert_generated_artifacts has cyclomatic complexity 21 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1514}}}],"partialFingerprints":{"codehealthFindingId/v1":"46edc6081036a040998544024ed7e9b1e944e5b013941ea9485d1bca888ea076"}},{"ruleId":"D1","level":"warning","message":{"text":"intelligent_mcp_callbacks.save_mcp_response_as_artifact_intelligent (cyclomatic 20): intelligent_mcp_callbacks.save_mcp_response_as_artifact_intelligent has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"9eab47dae53c9725c933d74e3f9f8a5393dc393fdaa8ff5ac6a81952b3f6fcd4"}},{"ruleId":"D1","level":"warning","message":{"text":"ADKToolWrapper.__call__ (cyclomatic 20): ADKToolWrapper.__call__ has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/tool_wrapper.py"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"1abdf1f5e3e9c2d1c011f439adaa6dd79a58f5d621011d23a49cb9e3a88e1425"}},{"ruleId":"D1","level":"warning","message":{"text":"AuthenticationConfig.validate_auth_config (cyclomatic 20): AuthenticationConfig.validate_auth_config has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/config.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"84718590bd87bab895d09707ae49a4b723b221d5c8f0383366d175175c08dc2f"}},{"ruleId":"D1","level":"warning","message":{"text":"StructuredInvocationHandler._parse_result_embed (cyclomatic 20): StructuredInvocationHandler._parse_result_embed has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":966}}}],"partialFingerprints":{"codehealthFindingId/v1":"e50860d1ac420c748eccdb8e108ac92ac39de5fe4ed9d535590cde57a3f1a333"}},{"ruleId":"D1","level":"warning","message":{"text":"document_conversion.convert_to_pdf (cyclomatic 20): document_conversion.convert_to_pdf has cyclomatic complexity 20 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/document_conversion.py"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eb9af9cbf9463ba0c01efef0b2fd755c50c26163dcdc2901c2d7e892eb4fc8b"}},{"ruleId":"D1","level":"warning","message":{"text":"prompts.update_prompt_group (cyclomatic 20): prompts.update_prompt_group has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"971997a2c18ad357b449fc76cfd56cb973f248b990a8c0dcf54e773f071a33e7"}},{"ruleId":"D1","level":"warning","message":{"text":"sse._prepare_replay_events (cyclomatic 20): sse._prepare_replay_events has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sse.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"63bf3fc8235d3521e5b43baaef7eb5e96f5d4760391b67429894b111f731c8ae"}},{"ruleId":"D1","level":"warning","message":{"text":"SSEManager.send_event (cyclomatic 20): SSEManager.send_event has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/sse_manager.py"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"784a44d28f8ce4f4fb5ed312d370efbfd7b59c38fb51cbe2a7b4d45acdcfa676"}},{"ruleId":"D1","level":"warning","message":{"text":"DatabaseExceptionHandler.handle_integrity_error (cyclomatic 20): DatabaseExceptionHandler.handle_integrity_error has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/shared/database/database_exceptions.py"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"804efbf60d6cd8f352748ea26aedd2f4cc2ed150fa69af6391c16e7a45381eed"}},{"ruleId":"D1","level":"warning","message":{"text":"MemoryReportGenerator._format_node_children (cyclomatic 20): MemoryReportGenerator._format_node_children has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/memory_monitor/report_generator.py"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd114734f8b1a3d450b2237cc1e3ad1f6fa82f732463d23cd996858804ef8279"}},{"ruleId":"D1","level":"warning","message":{"text":"EmbedResolvingMCPTool._resolve_embeds_recursively (cyclomatic 19): EmbedResolvingMCPTool._resolve_embeds_recursively has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"babf56cdd4f043c639d88bfe436d44403d19ca2f2a32dc7d4150702c96766d1f"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers.publish_agent_card (cyclomatic 19): event_handlers.publish_agent_card has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":2643}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3450f5d6048dfde79069f9dc52a30308262aadf171364664ee476469b48a551"}},{"ruleId":"D1","level":"warning","message":{"text":"deep_research_tools._extract_text_from_llm_response (cyclomatic 19): deep_research_tools._extract_text_from_llm_response has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba73c2beca53a7123c484c27c2b598403f87783ebaabf62ff20ea73ea9d74f36"}},{"ruleId":"D1","level":"warning","message":{"text":"deep_research_tools._generate_research_report (cyclomatic 19): deep_research_tools._generate_research_report has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1765}}}],"partialFingerprints":{"codehealthFindingId/v1":"05ef294b2dff8fc7c484c3e05e84c620bd0b0b496d2eab206996988f21c10c5f"}},{"ruleId":"D1","level":"warning","message":{"text":"image_tools.create_image_from_description (cyclomatic 19): image_tools.create_image_from_description has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"22c2404bdc098a193f444d45ee4d6435cb6132f5c4afede01d8a10e8d7fb24f5"}},{"ruleId":"D1","level":"warning","message":{"text":"index_search_tools.format_location_range (cyclomatic 19): index_search_tools.format_location_range has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/index_search_tools.py"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"534ea807bf36418b097867d60ba6cff950734ddffbb220cc43fed7ad6c37ab1b"}},{"ruleId":"D1","level":"warning","message":{"text":"translation._extract_text_from_parts (cyclomatic 19): translation._extract_text_from_parts has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaf6363042b82513711609f9a5d1c78c715b44fb0f490e736825fa53fbf654a9"}},{"ruleId":"D1","level":"warning","message":{"text":"AudioService.stream_speech (cyclomatic 19): AudioService.stream_speech has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1013}}}],"partialFingerprints":{"codehealthFindingId/v1":"e062b167922be66a03d79260074fcde8f50fa91437b3efcfe5bdcef97aafad62"}},{"ruleId":"D1","level":"warning","message":{"text":"bm25_indexer_service.build_bm25_index (cyclomatic 19): bm25_indexer_service.build_bm25_index has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"265070b2cf273fb3e9147ceb7e38d59cefe280d72793de78b5450744ab7626f3"}},{"ruleId":"D1","level":"warning","message":{"text":"conditional._eval_node (cyclomatic 19): conditional._eval_node has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/flow_control/conditional.py"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"46c4d3fd97606fb16780513d01bb5f4801c923c1f5d973d96fb1c1cf0ea2cd00"}},{"ruleId":"D1","level":"warning","message":{"text":"agent_cmd.create_agent_config (cyclomatic 18): agent_cmd.create_agent_config has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/agent_cmd.py"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5158c69081a8e2745196655fef31e831eb860c38707541f8d57137d3d7bfbce"}},{"ruleId":"D1","level":"warning","message":{"text":"RegistryManager.add_registry (cyclomatic 18): RegistryManager.add_registry has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/registry_manager.py"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"179abc9712c5d2e29e2d82b422f276e1e878190bc2782e8636a58ba230086ea2"}},{"ruleId":"D1","level":"warning","message":{"text":"PluginScraper._parse_config_yaml (cyclomatic 18): PluginScraper._parse_config_yaml has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bd2abe205e84a3d0c80bf851a2033fd53904d1a3bdd73ec718f318a7579fe77"}},{"ruleId":"D1","level":"warning","message":{"text":"lite_llm._content_to_message_param (cyclomatic 18): lite_llm._content_to_message_param has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5e7099194a04f0155f8a79c516736ea868ae432abcc1b6ec6603387947ae0b4"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent.finalize_task_with_cleanup (cyclomatic 18): SamAgentComponent.finalize_task_with_cleanup has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":3148}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7f420eda9987b351bbdfdce2112672f7530f237dd2c41f71eeb5ae1cd973622"}},{"ruleId":"D1","level":"warning","message":{"text":"patch_adk._filter_whitespace_only_text_parts_inplace (cyclomatic 18): patch_adk._filter_whitespace_only_text_parts_inplace has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/patch_adk.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6232e746d33e1a1d90de1c691c0a92f750c001e3cbc6fb93ded8aad7cd3f972"}},{"ruleId":"D1","level":"warning","message":{"text":"audio_tools.text_to_speech (cyclomatic 18): audio_tools.text_to_speech has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":606}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2b86a02cb129b4efb705b961340f772815a99c709eacc02d8bfc43d846da342"}},{"ruleId":"D1","level":"warning","message":{"text":"dynamic_tool._get_schema_from_signature (cyclomatic 18): dynamic_tool._get_schema_from_signature has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/dynamic_tool.py"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"b40141de02c725431a1de0d260bcf142e60d369ac464008dc2e6da1729ee1435"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseGatewayComponent.submit_a2a_task (cyclomatic 18): BaseGatewayComponent.submit_a2a_task has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f81e4e458fcb85d331e23922df3def5e47e071c23f1d44e3b14a1b4dc3dbf82"}},{"ruleId":"D1","level":"warning","message":{"text":"artifacts.get_latest_artifact (cyclomatic 18): artifacts.get_latest_artifact has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1294}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff5cf2fedbf5727cb130d446cd2faf730df00af2cbf219f6c05948fa00aa2c7a"}},{"ruleId":"D1","level":"warning","message":{"text":"projects.delete_project_artifact (cyclomatic 18): projects.delete_project_artifact has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":583}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c48fd99fa7caa7c3a915a06ff41c903406e3b68a8a4caf6993328476ab1f54e"}},{"ruleId":"D1","level":"warning","message":{"text":"projects.import_project (cyclomatic 18): projects.import_project has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":1011}}}],"partialFingerprints":{"codehealthFindingId/v1":"944ab0e1fc8a60c0e04db1265932828072c563b79684278ba07a7d508e913ef1"}},{"ruleId":"D1","level":"warning","message":{"text":"prompts.list_prompt_groups (cyclomatic 18): prompts.list_prompt_groups has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"140133779bf1b07f34f7d9e9c872c1d3259d01ac888cc923eae328379a0ab5a8"}},{"ruleId":"D1","level":"warning","message":{"text":"ResultHandler._extract_rag_from_task_events (cyclomatic 18): ResultHandler._extract_rag_from_task_events has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":703}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9f63471b1daef74cdf323df9f45b2dd9307737a9d7a7d2b4f245705614d4fa9"}},{"ruleId":"D1","level":"warning","message":{"text":"WorkflowDefinition.validate_dag_structure (cyclomatic 18): WorkflowDefinition.validate_dag_structure has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/app.py"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cb9504a0ee4a26753801148ff48f70aaf2e33efbfd07afa35f8583657ff8581"}},{"ruleId":"D1","level":"warning","message":{"text":"event_handlers.handle_cancel_request (cyclomatic 18): event_handlers.handle_cancel_request has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/protocol/event_handlers.py"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4408221aeeff322ac6724b996193fb675be858e1d9d26a1ad10873706c2e148"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_gateway_event_sequence (cyclomatic 18): test_declarative_runner._assert_gateway_event_sequence has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1196}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d642ce9b5c7ab507c7dab4b242fd6d2e167ab24772a33c5d808a3c25a3593fd"}},{"ruleId":"D1","level":"warning","message":{"text":"TestGatewayComponent._translate_external_input (cyclomatic 18): TestGatewayComponent._translate_external_input has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/gateway_interface/component.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"01e93e4f6856b041660f3774520bbf65c23c98e2e43adb561074c6d4fbb1bcb0"}},{"ruleId":"D1","level":"warning","message":{"text":"TestLLMServer._verify_tool_responses (cyclomatic 18): TestLLMServer._verify_tool_responses has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/llm_server/server.py"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"73267a1533e153e738803f65907b2c200348fc2dc9c1c62974343cef8d800377"}},{"ruleId":"D1","level":"warning","message":{"text":"utils.discover_config_files (cyclomatic 17): utils.discover_config_files has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/utils.py"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc9b0da1808777c7201d3b7744e75080da7ec1ab1a60d2d7910bb586c43fbeac"}},{"ruleId":"D1","level":"warning","message":{"text":"PluginScraper._scrape_git_registry (cyclomatic 17): PluginScraper._scrape_git_registry has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"e96d37b08ff64bb450b78991314f6cef349ee581bcf3b3711484fbc237148d14"}},{"ruleId":"D1","level":"warning","message":{"text":"SamAgentComponent._format_final_task_status (cyclomatic 17): SamAgentComponent._format_final_task_status has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2457}}}],"partialFingerprints":{"codehealthFindingId/v1":"0093f07c23317ae13b1429fd1817da9abb6e4e672b1d328933fd8f8ddf3bdc72"}},{"ruleId":"D1","level":"warning","message":{"text":"ShareService._load_task_events_for_session (cyclomatic 17): ShareService._load_task_events_for_session has cyclomatic complexity 17 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec8788c577b9306b344991821f494275c361d527b15ece3e665bde09e19b35e6"}},{"ruleId":"D1","level":"warning","message":{"text":"PlatformServiceComponent.cleanup (cyclomatic 17): PlatformServiceComponent.cleanup has cyclomatic complexity 17 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/component.py"},"region":{"startLine":681}}}],"partialFingerprints":{"codehealthFindingId/v1":"18d9ebf969944b50726145fc4495469a79f555e63332d7cf5f324bd415b65fa1"}},{"ruleId":"D1","level":"warning","message":{"text":"create_cmd.setup_plugin_type_src (cyclomatic 16): create_cmd.setup_plugin_type_src has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/create_cmd.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"71b157df2f28fe76893e23a65c3821379b5da4b708af618819a9d88a0b6e8c83"}},{"ruleId":"D1","level":"warning","message":{"text":"migrate_declarative_tests.transform_data (cyclomatic 16): migrate_declarative_tests.transform_data has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/migrate_declarative_tests.py"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"72e9f49d5a3615ac52a981037fed9ffb56be248425e8b8708436047c15c1ff5a"}},{"ruleId":"D1","level":"warning","message":{"text":"migrate_declarative_tests.main (cyclomatic 16): migrate_declarative_tests.main has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/migrate_declarative_tests.py"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"6464a7f523ff6e3c77e6fcb0fead3d234fdb18f0771f6141c5ce40d1085827f4"}},{"ruleId":"D1","level":"warning","message":{"text":"EmbedResolvingMCPTool._is_auth_error (cyclomatic 16): EmbedResolvingMCPTool._is_auth_error has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c00ff65b3fbe0f59df8242866f2c6fe059439110ee8da9f464aa2d3eefd902b"}},{"ruleId":"D1","level":"warning","message":{"text":"lite_llm._model_response_to_chunk (cyclomatic 16): lite_llm._model_response_to_chunk has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":661}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee59ed265118fecabdcc7793c9e8707d3180d883e0ce11abfc239643fba7a9b3"}},{"ruleId":"D1","level":"warning","message":{"text":"BaseProxyComponent._update_agent_card_for_proxy (cyclomatic 16): BaseProxyComponent._update_agent_card_for_proxy has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"f22ffea396fea54cfd19cffd5159acc8ee7bd9aa619cacb679cb2c35af356099"}},{"ruleId":"D1","level":"warning","message":{"text":"builtin_artifact_tools.list_artifacts (cyclomatic 16): builtin_artifact_tools.list_artifacts has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"19e135c1b4472467261f25d33ea8dd51260ed8a133c46dc33a991866cce380b2"}},{"ruleId":"D1","level":"warning","message":{"text":"deep_research_tools._generate_sources_section (cyclomatic 16): deep_research_tools._generate_sources_section has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1696}}}],"partialFingerprints":{"codehealthFindingId/v1":"926146a2fef2a9c2f29207bfa198f9178cf5384aaeff8eaf69395f1894a0faa3"}},{"ruleId":"D1","level":"warning","message":{"text":"FeatureRegistry._parse_definition (cyclomatic 16): FeatureRegistry._parse_definition has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/features/registry.py"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"47f50fbf5494d72715c77c60c872b8e84de4415013b2862c047c4a49763be123"}},{"ruleId":"D1","level":"warning","message":{"text":"converter._parse_string_to_list_of_dicts (cyclomatic 16): converter._parse_string_to_list_of_dicts has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"63045e04bf3c06c9ea393cc0ec29597f8351d488643b3750f99b2ae55b614b14"}},{"ruleId":"D1","level":"warning","message":{"text":"resolver._log_data_state (cyclomatic 16): resolver._log_data_state has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"de1c6c245f9074952d0b6fb5df215a4e765d86bb11ac6263c3b4d3078e0f4247"}},{"ruleId":"D1","level":"warning","message":{"text":"resolver.evaluate_embed (cyclomatic 16): resolver.evaluate_embed has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":853}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ca3c501dddcf3c0137f7b95b125a6716155b46c12614aed857ca73d9e7879a2"}},{"ruleId":"D1","level":"warning","message":{"text":"prompts.get_all_prompt_groups (cyclomatic 16): prompts.get_all_prompt_groups has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"594e3d119d7715c42b3f0fcbc6f845a48d6b1a790fd25571efc5cf1d9aef4000"}},{"ruleId":"D1","level":"warning","message":{"text":"tasks.get_task_status (cyclomatic 16): tasks.get_task_status has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"9522f31f4a30c9371720fda96f656802c8ba84f05d55d9ec7a0376679a1e4b11"}},{"ruleId":"D1","level":"warning","message":{"text":"ProjectService.update_project (cyclomatic 16): ProjectService.update_project has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":923}}}],"partialFingerprints":{"codehealthFindingId/v1":"409d0b0948460d1d6d2587fabade0fa2686103b6ee27dad80a42fa363c417c9f"}},{"ruleId":"D1","level":"warning","message":{"text":"ResultHandler._handle_status_update (cyclomatic 16): ResultHandler._handle_status_update has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"62f26297519e880daecd70f9efc571b8181a7ca673a8fd228f45530f69d9a7ca"}},{"ruleId":"D1","level":"warning","message":{"text":"TaskLoggerService._inherit_rag_from_session (cyclomatic 16): TaskLoggerService._inherit_rag_from_session has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":428}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0f7d512c30073a4a8ca5e9b79549aefa11633ccd94fb3c279db5827f14deda3"}},{"ruleId":"D1","level":"warning","message":{"text":"share_utils.anonymize_chat_task (cyclomatic 16): share_utils.anonymize_chat_task has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/utils/share_utils.py"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ecd584e0c1ecb21382ec888f44e56abe4c3116b427f262e5eaece98c06356ee"}},{"ruleId":"D1","level":"warning","message":{"text":"synthetic.validate_synthetic_token (cyclomatic 16): synthetic.validate_synthetic_token has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/shared/auth/synthetic.py"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"70e3fb1d7fdb05868086fb4921c5738de68494689a7bce7c8f75f82fe92483ea"}},{"ruleId":"D1","level":"warning","message":{"text":"DAGExecutor.execute_workflow (cyclomatic 16): DAGExecutor.execute_workflow has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4f1a6044195f31be3cdee5af6d36563dde086f498d5851669f57975e4d3c63"}},{"ruleId":"D1","level":"warning","message":{"text":"DAGExecutor.execute_node (cyclomatic 16): DAGExecutor.execute_node has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":364}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3d45c56dfe2b69d54db0928f9f1748e5952c138bef244d4e646c42d08c2c2b4"}},{"ruleId":"D1","level":"warning","message":{"text":"DAGExecutor.resolve_value (cyclomatic 16): DAGExecutor.resolve_value has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":938}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2e57a781e32ac0eb4621d5c8b3b0355e58c5429724f90a2984985cc22e1dc9b"}},{"ruleId":"D1","level":"warning","message":{"text":"test_declarative_runner._assert_dict_subset (cyclomatic 16): test_declarative_runner._assert_dict_subset has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2908}}}],"partialFingerprints":{"codehealthFindingId/v1":"381fa2b9e94cb98f001adb219e4252ec0a4f7502a693da1e6c7418ac4ef2943d"}},{"ruleId":"D1","level":"warning","message":{"text":"test_workflow_agent_card.get_workflow_config_json (cyclomatic 16): test_workflow_agent_card.get_workflow_config_json has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/unit/workflow/test_workflow_agent_card.py"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"21839aced29c4cf4f17ac7ee7f666d89085fe2e0ae1fb2e539f864d598fdfbbf"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskLoggerService._save_chat_messages_for_background_task (cognitive 329): TaskLoggerService._save_chat_messages_for_background_task has cognitive complexity 329 (threshold 15). Drivers by points: if/else 261, loops 32, boolean chains 14, error handling 11, ternaries 11 (nesting depth added 246). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":475}}}],"partialFingerprints":{"codehealthFindingId/v1":"de4d449578fdcc2fb997d6d53719b5b563fda0ca4305218cda768f37ee95ecf8"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.process_artifact_blocks_callback (cognitive 296): callbacks.process_artifact_blocks_callback has cognitive complexity 296 (threshold 15). Drivers by points: if/else 227, ternaries 25, error handling 19, boolean chains 14, loops 11 (nesting depth added 219). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":320}}}],"partialFingerprints":{"codehealthFindingId/v1":"e301c8f7b95d5e9bdaa5ecd0f43b3242cb5c557d798690805497aa49a0431136"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_llm_interactions (cognitive 223): test_declarative_runner._assert_llm_interactions has cognitive complexity 223 (threshold 15). Drivers by points: if/else 150, loops 36, error handling 19, ternaries 10, boolean chains 8 (nesting depth added 169). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":780}}}],"partialFingerprints":{"codehealthFindingId/v1":"161bc70c74ec99834d5bf6967725f3a7335174d875f56f845d597edd1e5293d4"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_a2a_response (cognitive 201): event_handlers.handle_a2a_response has cognitive complexity 201 (threshold 15). Drivers by points: if/else 141, error handling 25, loops 17, ternaries 10, boolean chains 8 (nesting depth added 142). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1894}}}],"partialFingerprints":{"codehealthFindingId/v1":"32b83151d0eb9b897842593051d05dfbb701cf5a6d0f9dcc2dfd008bff7c5025"}},{"ruleId":"D2","level":"warning","message":{"text":"ResultHandler._handle_success (cognitive 192): ResultHandler._handle_success has cognitive complexity 192 (threshold 15). Drivers by points: if/else 135, loops 26, ternaries 19, boolean chains 11, error handling 1 (nesting depth added 130). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8773f47243a2525d78bc0ea740605ad858b7fcbbdbe9c93e38ddf291282ed3e"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseGatewayComponent._resolve_embeds_and_handle_signals (cognitive 155): BaseGatewayComponent._resolve_embeds_and_handle_signals has cognitive complexity 155 (threshold 15). Drivers by points: if/else 107, error handling 20, boolean chains 13, ternaries 10, loops 5 (nesting depth added 95). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1331}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b06cda14d64652bd6613312050afcc7284bf382248e087bf47c4af455a32df4"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks.get_task_title_data (cognitive 139): tasks.get_task_title_data has cognitive complexity 139 (threshold 15). Drivers by points: if/else 92, loops 24, error handling 13, boolean chains 8, ternaries 2 (nesting depth added 91). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1486}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8d80bed3b8bb5f39d5f41c2a390bf058618e1c7993062559acbc2f6707c99d5"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_event_details (cognitive 136): test_declarative_runner._assert_event_details has cognitive complexity 136 (threshold 15). Drivers by points: if/else 95, loops 18, boolean chains 9, ternaries 9, error handling 5 (nesting depth added 80). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2594}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f9fca262bc7a46931b3b53781d9ef965275ddbe4eef594cf9dde5da72b521a7"}},{"ruleId":"D2","level":"warning","message":{"text":"visualization.update_visualization_stream_config (cognitive 122): visualization.update_visualization_stream_config has cognitive complexity 122 (threshold 15). Drivers by points: if/else 94, loops 21, boolean chains 7 (nesting depth added 78). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/visualization.py"},"region":{"startLine":796}}}],"partialFingerprints":{"codehealthFindingId/v1":"1da0626aadd430c887734002b8deea2601029c493a428f60936110e868b8467d"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks._submit_task (cognitive 120): tasks._submit_task has cognitive complexity 120 (threshold 15). Drivers by points: if/else 76, error handling 19, boolean chains 18, loops 5, ternaries 2 (nesting depth added 48). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f6948321de416051342620b43698add1848a8f9c2d735246bdde347914f0ba3"}},{"ruleId":"D2","level":"warning","message":{"text":"LiteLlm.generate_content_async (cognitive 118): LiteLlm.generate_content_async has cognitive complexity 118 (threshold 15). Drivers by points: if/else 80, boolean chains 17, loops 13, error handling 8 (nesting depth added 64). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":1308}}}],"partialFingerprints":{"codehealthFindingId/v1":"09ca53a4d64d7922122190c3061040589e9ccab25cacda01abc3d8ba317a00a1"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools.deep_research (cognitive 115): deep_research_tools.deep_research has cognitive complexity 115 (threshold 15). Drivers by points: if/else 66, boolean chains 16, error handling 15, loops 9, ternaries 9 (nesting depth added 39). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1945}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2983dcea4ecfb1dd9335c6b9dfbf736bfa5202c3b41543abde5a40d40eeb6ea"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._process_downstream_response (cognitive 106): A2AProxyComponent._process_downstream_response has cognitive complexity 106 (threshold 15). Drivers by points: if/else 68, ternaries 20, boolean chains 12, loops 6 (nesting depth added 46). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1905}}}],"partialFingerprints":{"codehealthFindingId/v1":"abe0876c97e31c3751b11eedf041960df2e539057b70559016688a5f3f98c592"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseGatewayComponent._handle_resolved_signals (cognitive 105): BaseGatewayComponent._handle_resolved_signals has cognitive complexity 105 (threshold 15). Drivers by points: if/else 86, error handling 16, boolean chains 2, loops 1 (nesting depth added 72). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":608}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c50963cb3194b9331335fe6828c6485b137fc6b25b522b4f1ce08864e5f9075"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner.test_declarative_scenario (cognitive 105): test_declarative_runner.test_declarative_scenario has cognitive complexity 105 (threshold 15). Drivers by points: if/else 74, loops 27, boolean chains 3, error handling 1 (nesting depth added 54). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1795}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5d3edbfecf2699df76ceceb27cb0bda8218e51045e5c2a8fa5426d284d0410c"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools.extract_content_from_artifact (cognitive 103): builtin_artifact_tools.extract_content_from_artifact has cognitive complexity 103 (threshold 15). Drivers by points: if/else 64, error handling 15, boolean chains 14, loops 6, ternaries 4 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":695}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ab667b5502df1cc2eedccc27ca82c66f19e5be5abec777e74d921f03bc26014"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts.list_all_artifacts (cognitive 103): artifacts.list_all_artifacts has cognitive complexity 103 (threshold 15). Drivers by points: if/else 59, boolean chains 14, error handling 13, loops 13, ternaries 4 (nesting depth added 56). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"535794189f25dc7a924701c33dd28d6251eb25d286c26aa488b5819fec9ebe5b"}},{"ruleId":"D2","level":"warning","message":{"text":"conftest.clear_generic_gateway_state_between_tests (cognitive 102): conftest.clear_generic_gateway_state_between_tests has cognitive complexity 102 (threshold 15). Drivers by points: if/else 88, loops 7, error handling 6, boolean chains 1 (nesting depth added 73). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/gateway/generic/conftest.py"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3ddebf84e106f908feefee365681125b05e918f4be164a4f1ede6697f608496"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks.get_task_events (cognitive 96): tasks.get_task_events has cognitive complexity 96 (threshold 15). Drivers by points: if/else 80, boolean chains 10, loops 4, error handling 2 (nesting depth added 60). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1050}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffeb31dc58c1e09250514a72fc2dc1babd9f660d701e7a210db4104cbcb76852"}},{"ruleId":"D2","level":"warning","message":{"text":"TemplateDataService.generate_breakdown_content (cognitive 93): TemplateDataService.generate_breakdown_content has cognitive complexity 93 (threshold 15). Drivers by points: if/else 65, loops 13, ternaries 10, boolean chains 5 (nesting depth added 69). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":488}}}],"partialFingerprints":{"codehealthFindingId/v1":"160ae3b98aebe130f87e5def2f0a7ab209d7e58fb9d150d56e2817aa6b7fddd2"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseGatewayComponent._process_parsed_a2a_event (cognitive 81): BaseGatewayComponent._process_parsed_a2a_event has cognitive complexity 81 (threshold 15). Drivers by points: if/else 60, ternaries 9, boolean chains 8, error handling 4 (nesting depth added 48). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1740}}}],"partialFingerprints":{"codehealthFindingId/v1":"486a4312eab1efc584fca54ac95f4cee1a9af7c9486f10dd7ecfa1ef0f323193"}},{"ruleId":"D2","level":"warning","message":{"text":"visualization_mapper.infer_visualization_event_details (cognitive 80): visualization_mapper.infer_visualization_event_details has cognitive complexity 80 (threshold 15). Drivers by points: if/else 46, ternaries 27, boolean chains 5, error handling 2 (nesting depth added 51). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/visualization_mapper.py"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"968f7e584c2779874afb7f81c7ab95f9bf9ba93394dfab942b6b34d23ab1590f"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.inject_dynamic_instructions_callback (cognitive 78): callbacks.inject_dynamic_instructions_callback has cognitive complexity 78 (threshold 15). Drivers by points: if/else 61, loops 8, boolean chains 6, error handling 3 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1761}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1bd7d5b1ea55b2119d0c13041217753432136e962c5b155dd87b9428551f672"}},{"ruleId":"D2","level":"warning","message":{"text":"converter.convert_data (cognitive 77): converter.convert_data has cognitive complexity 77 (threshold 15). Drivers by points: error handling 38, if/else 33, boolean chains 5, ternaries 1 (nesting depth added 42). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"64c20fc9d46d67a097824885316c3ef9f357bba3be4930c8f7c9094e14a9b1bd"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_helpers.load_artifact_content_or_metadata (cognitive 75): artifact_helpers.load_artifact_content_or_metadata has cognitive complexity 75 (threshold 15). Drivers by points: if/else 48, error handling 17, ternaries 4, boolean chains 3, loops 3 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":1417}}}],"partialFingerprints":{"codehealthFindingId/v1":"dadb6024276bde1a11adfbc59770414b9c4f24c5cc014b963352c67cd314173d"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._visualization_message_processor_loop (cognitive 75): WebUIBackendComponent._visualization_message_processor_loop has cognitive complexity 75 (threshold 15). Drivers by points: if/else 54, error handling 8, boolean chains 7, loops 6 (nesting depth added 44). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1031}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c059417c6f5255d762856f8a94d9c14cfa6a4a0edd4c8b42f1af2aa06da757c"}},{"ruleId":"D2","level":"warning","message":{"text":"visualization.subscribe_to_visualization_stream (cognitive 74): visualization.subscribe_to_visualization_stream has cognitive complexity 74 (threshold 15). Drivers by points: if/else 61, error handling 5, loops 5, boolean chains 3 (nesting depth added 35). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/visualization.py"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a5f51188e45e05c27167ed0aa3303d329e4a73fb888fbac94af45cde989bc7c"}},{"ruleId":"D2","level":"warning","message":{"text":"sessions.save_task (cognitive 72): sessions.save_task has cognitive complexity 72 (threshold 15). Drivers by points: if/else 45, boolean chains 7, error handling 7, loops 7, ternaries 6 (nesting depth added 38). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2fb15c85de8657e03783217255237fdc002893309c766a7962f64897c76e2aa"}},{"ruleId":"D2","level":"warning","message":{"text":"sessions.get_session_context_usage (cognitive 71): sessions.get_session_context_usage has cognitive complexity 71 (threshold 15). Drivers by points: if/else 35, boolean chains 20, ternaries 7, error handling 5, loops 4 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":1334}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a84795be9001a54eab2426a193d9c5596ce7ad1dd9a12bb0038461f6b5b1d01"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools.artifact_search_and_replace_regex (cognitive 70): builtin_artifact_tools.artifact_search_and_replace_regex has cognitive complexity 70 (threshold 15). Drivers by points: if/else 35, boolean chains 15, loops 9, ternaries 7, error handling 4 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":2178}}}],"partialFingerprints":{"codehealthFindingId/v1":"79e803ac37d57c11d72affa8e7606faab758b5a350bf2b34c9f501373ad09e30"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskBuilderAssistant._llm_response (cognitive 69): TaskBuilderAssistant._llm_response has cognitive complexity 69 (threshold 15). Drivers by points: if/else 49, boolean chains 8, error handling 4, loops 4, ternaries 4 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"358cb51b7f4cae3730d557b36983f0750b10cfd91ed262299b745810188d2e07"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._setup_scenario_environment (cognitive 69): test_declarative_runner._setup_scenario_environment has cognitive complexity 69 (threshold 15). Drivers by points: if/else 53, error handling 7, loops 7, ternaries 2 (nesting depth added 37). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"6002593e2fb3040cd87b43a217ffc09055c5d2d5ad35ebe0ebc6ee8c2760b174"}},{"ruleId":"D2","level":"warning","message":{"text":"web_tools.web_request (cognitive 68): web_tools.web_request has cognitive complexity 68 (threshold 15). Drivers by points: if/else 42, error handling 16, loops 6, boolean chains 2, ternaries 2 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/web_tools.py"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"1de09338a08554fd9bf10b1f8eac6e31d9ef968fefbcc1d97eb684e5abd0ea3d"}},{"ruleId":"D2","level":"warning","message":{"text":"config.get_app_config (cognitive 68): config.get_app_config has cognitive complexity 68 (threshold 15). Drivers by points: if/else 54, boolean chains 11, ternaries 2, error handling 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/config.py"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc5d37e5fda57e52aaa201645c0d31f4fbe45155b7e947b95759d27a0f1f3f18"}},{"ruleId":"D2","level":"warning","message":{"text":"services.initialize_artifact_service (cognitive 67): services.initialize_artifact_service has cognitive complexity 67 (threshold 15). Drivers by points: if/else 38, error handling 15, boolean chains 8, loops 6 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":780}}}],"partialFingerprints":{"codehealthFindingId/v1":"c19e5e20771f6348d3966d3bf750d0430265dbda0beaac8504e5c031113a22dd"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectService.import_project_from_zip (cognitive 67): ProjectService.import_project_from_zip has cognitive complexity 67 (threshold 15). Drivers by points: if/else 35, error handling 15, ternaries 9, loops 5, boolean chains 3 (nesting depth added 31). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":1162}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef7409e6116ca573da1d458fd769f7d82ab713562f3a0b0158a887c471f22f7f"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskLoggerService.log_event (cognitive 64): TaskLoggerService.log_event has cognitive complexity 64 (threshold 15). Drivers by points: if/else 39, ternaries 15, boolean chains 7, error handling 3 (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"86edc73a1aa664b491a451e0ca579203a54bf690afcc3474a9ba9e59cf1a7b69"}},{"ruleId":"D2","level":"warning","message":{"text":"ResultHandler._save_chat_task (cognitive 62): ResultHandler._save_chat_task has cognitive complexity 62 (threshold 15). Drivers by points: if/else 36, loops 10, boolean chains 6, ternaries 6, error handling 4 (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":510}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e147c2c847e1df4dce7b2bdc0ac68f386308ae0eb452c4f9d3f4dd74a56eaca"}},{"ruleId":"D2","level":"warning","message":{"text":"SchedulerService._execute_scheduled_task_inner (cognitive 62): SchedulerService._execute_scheduled_task_inner has cognitive complexity 62 (threshold 15). Drivers by points: if/else 38, boolean chains 13, error handling 7, ternaries 3, loops 1 (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":557}}}],"partialFingerprints":{"codehealthFindingId/v1":"17e0c13142e4fb7fb7c113a20378035c6080963f1acb0c26c538cf5eb9574ab5"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.__init__ (cognitive 61): SamAgentComponent.__init__ has cognitive complexity 61 (threshold 15). Drivers by points: if/else 40, error handling 11, boolean chains 7, loops 3 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a778f9afc572d2a2d7f434d0d9c865c747103ec2058ee3b2152390bde4c04c1"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.process_and_publish_adk_event (cognitive 61): SamAgentComponent.process_and_publish_adk_event has cognitive complexity 61 (threshold 15). Drivers by points: if/else 48, boolean chains 9, loops 3, error handling 1 (nesting depth added 29). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2048}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c347230dc9ff5c353963fb32b244ffed30061b7ee133df8341ae12a6d1719f3"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._extract_involved_agents_for_viz (cognitive 61): WebUIBackendComponent._extract_involved_agents_for_viz has cognitive complexity 61 (threshold 15). Drivers by points: if/else 54, boolean chains 4, error handling 3 (nesting depth added 39). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":2169}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae62fe8e5c79527021fe5f6572202121acfe115b823d5856d9a3cf662756a3d7"}},{"ruleId":"D2","level":"warning","message":{"text":"install_cmd.install_plugin (cognitive 57): install_cmd.install_plugin has cognitive complexity 57 (threshold 15). Drivers by points: if/else 45, error handling 8, boolean chains 4 (nesting depth added 28). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/install_cmd.py"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ab64ffff432f1b0d0a35c6dd716ed18aa229063e5bd14b1bcdb1cda597ce386"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks._inject_project_context (cognitive 57): tasks._inject_project_context has cognitive complexity 57 (threshold 15). Drivers by points: if/else 43, boolean chains 7, loops 4, error handling 3 (nesting depth added 30). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3234637291049810720d467cb62a1026a8a04fa579f7c080b64ed522807348a"}},{"ruleId":"D2","level":"warning","message":{"text":"orchestrator_step.create_orchestrator_config (cognitive 56): orchestrator_step.create_orchestrator_config has cognitive complexity 56 (threshold 15). Drivers by points: if/else 40, boolean chains 5, ternaries 5, error handling 3, loops 3 (nesting depth added 11). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/orchestrator_step.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ab958c38ecaf45ac6467b32800f8004fa19723830c18278ee42fa331830ec55"}},{"ruleId":"D2","level":"warning","message":{"text":"resolver._evaluate_artifact_content_embed_with_chain (cognitive 55): resolver._evaluate_artifact_content_embed_with_chain has cognitive complexity 55 (threshold 15). Drivers by points: if/else 28, error handling 14, boolean chains 7, ternaries 5, loops 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"b741ede514abfa0239d5deb193a7749baf5a702831330ed57c049ba270be6375"}},{"ruleId":"D2","level":"warning","message":{"text":"setup._load_mcp_tool (cognitive 54): setup._load_mcp_tool has cognitive complexity 54 (threshold 15). Drivers by points: if/else 33, error handling 7, loops 7, boolean chains 5, ternaries 2 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/setup.py"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb0f67eb052f9b8b1013f53656bee8f7ad4c75454c99b3c6eb2ac2aac7def691"}},{"ruleId":"D2","level":"warning","message":{"text":"ChartDataService._calculate_category_scores (cognitive 53): ChartDataService._calculate_category_scores has cognitive complexity 53 (threshold 15). Drivers by points: if/else 34, loops 12, boolean chains 4, ternaries 3 (nesting depth added 38). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0d08bde0cbb2afa3999807d405f61a125b5c12aaef71f456b763f1fadac1905"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.manage_large_mcp_tool_responses_callback (cognitive 52): callbacks.manage_large_mcp_tool_responses_callback has cognitive complexity 52 (threshold 15). Drivers by points: if/else 43, boolean chains 4, error handling 3, ternaries 2 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1055}}}],"partialFingerprints":{"codehealthFindingId/v1":"eba4d78b4385d42a130b1c665df458d4c8477b641e9a3ae905be88ad7d9e7c34"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._extract_security_scheme_name (cognitive 52): A2AProxyComponent._extract_security_scheme_name has cognitive complexity 52 (threshold 15). Drivers by points: if/else 45, boolean chains 6, loops 1 (nesting depth added 30). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"baae54d201dbaa76539823ef2a90c167c9eb102c1364b5f8dd5edd360aaa6cef"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent.cleanup (cognitive 52): WebUIBackendComponent.cleanup has cognitive complexity 52 (threshold 15). Drivers by points: error handling 24, if/else 22, boolean chains 6 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1951}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe99976f40c18b059b7a0e7edbb4779c72210499fae1b088a320c52fe5ea355c"}},{"ruleId":"D2","level":"warning","message":{"text":"runner.create_compaction_event (cognitive 50): runner.create_compaction_event has cognitive complexity 50 (threshold 15). Drivers by points: if/else 31, boolean chains 7, loops 7, ternaries 3, error handling 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":334}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bbdd610534ade28cfde38ad846e626c8375c3e80eee80f52246f57f5ea172e8"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_cancel_request (cognitive 50): event_handlers.handle_cancel_request has cognitive complexity 50 (threshold 15). Drivers by points: if/else 40, error handling 6, boolean chains 2, loops 2 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/protocol/event_handlers.py"},"region":{"startLine":394}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5842c66b7ec76e1abaa7ed4bdb410cc20433f1ef6cdb6bcd51745b9c5a868dd"}},{"ruleId":"D2","level":"warning","message":{"text":"runner.run_adk_async_task (cognitive 49): runner.run_adk_async_task has cognitive complexity 49 (threshold 15). Drivers by points: if/else 24, error handling 13, loops 9, boolean chains 3 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1725}}}],"partialFingerprints":{"codehealthFindingId/v1":"76b46f0e4a33a8e650a4ec54ec835476d986d6612bca821c5d2976abedd09997"}},{"ruleId":"D2","level":"warning","message":{"text":"PeerAgentTool._build_enhanced_description (cognitive 49): PeerAgentTool._build_enhanced_description has cognitive complexity 49 (threshold 15). Drivers by points: if/else 36, loops 7, boolean chains 6 (nesting depth added 23). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/peer_agent_tool.py"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c9f66b25e1ca1fcc47e9b8a4c9bb1fdad155d186746e1f26044ef18a126128"}},{"ruleId":"D2","level":"warning","message":{"text":"translation._prepare_a2a_filepart_for_adk (cognitive 49): translation._prepare_a2a_filepart_for_adk has cognitive complexity 49 (threshold 15). Drivers by points: if/else 29, ternaries 10, boolean chains 9, error handling 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"0647da4131b4947ad2002454a083af3020e59a16c5c8786592542d0efbcbd797"}},{"ruleId":"D2","level":"warning","message":{"text":"ShareService.get_shared_session_view (cognitive 49): ShareService.get_shared_session_view has cognitive complexity 49 (threshold 15). Drivers by points: if/else 35, boolean chains 5, loops 5, error handling 2, ternaries 2 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":321}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c1695b4c74fc846e36321e233bcf129919bb306c49cc070cb13227e8a753d49"}},{"ruleId":"D2","level":"warning","message":{"text":"AudioService.get_speech_config (cognitive 48): AudioService.get_speech_config has cognitive complexity 48 (threshold 15). Drivers by points: if/else 31, boolean chains 11, ternaries 6 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1202}}}],"partialFingerprints":{"codehealthFindingId/v1":"d97b1318851a0a6ab527b99f69029bd13806d05e6c8da10620bf3700b27303ed"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent._inject_peer_tools_callback (cognitive 47): SamAgentComponent._inject_peer_tools_callback has cognitive complexity 47 (threshold 15). Drivers by points: if/else 31, loops 7, boolean chains 4, error handling 4, ternaries 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1000}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bcd687fff294b7d44a6917c05e47194a0b2277e6b8fadc78d50865de8cee197"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.finalize_task_with_cleanup (cognitive 47): SamAgentComponent.finalize_task_with_cleanup has cognitive complexity 47 (threshold 15). Drivers by points: if/else 31, error handling 14, boolean chains 1, ternaries 1 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":3148}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3b9186b7a015f6b8b5e6d1e3ba048ddc617f3d5589fb6b846668ed54be642ab"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.solace_llm_response_callback (cognitive 46): callbacks.solace_llm_response_callback has cognitive complexity 46 (threshold 15). Drivers by points: if/else 34, boolean chains 4, error handling 4, ternaries 4 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2419}}}],"partialFingerprints":{"codehealthFindingId/v1":"a36509b1b2954f4e73f489fc5db5cc81a010b2aa8a187db46a13a82211165cfe"}},{"ruleId":"D2","level":"warning","message":{"text":"PromptBuilderAssistant._llm_response (cognitive 46): PromptBuilderAssistant._llm_response has cognitive complexity 46 (threshold 15). Drivers by points: if/else 27, boolean chains 7, loops 5, ternaries 4, error handling 3 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e72cfa9f76e4f6113cff50a0048a7979cafbaa7a488598a709c388f265125b4"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkflowExecutorComponent._get_workflow_config_json (cognitive 46): WorkflowExecutorComponent._get_workflow_config_json has cognitive complexity 46 (threshold 15). Drivers by points: if/else 45, loops 1 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f56487c4d42abda1b4cbfe934ad20e85ed535f63fb357d88e027678c1b4bce2"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._get_or_create_a2a_client (cognitive 45): A2AProxyComponent._get_or_create_a2a_client has cognitive complexity 45 (threshold 15). Drivers by points: if/else 35, error handling 6, boolean chains 2, ternaries 2 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1503}}}],"partialFingerprints":{"codehealthFindingId/v1":"95a42aa433dce4bce34c2eb25fafadffed8cac1499e17a27631273a6c305cb84"}},{"ruleId":"D2","level":"warning","message":{"text":"gateway_cmd.create_gateway_files (cognitive 44): gateway_cmd.create_gateway_files has cognitive complexity 44 (threshold 15). Drivers by points: if/else 27, ternaries 6, boolean chains 5, loops 4, error handling 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/gateway_cmd.py"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"55b25ae51c1a8a834484750843b1b652fe61498b4efdc48b924767c3a31e8676"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers._handle_send_message_request (cognitive 44): event_handlers._handle_send_message_request has cognitive complexity 44 (threshold 15). Drivers by points: if/else 30, boolean chains 6, ternaries 4, error handling 2, loops 2 (nesting depth added 7). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1215}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a48ae70a2aaf797ac010692f24710cd8b2e8e89c6430fe953cae76c0fefb9de"}},{"ruleId":"D2","level":"warning","message":{"text":"sse._prepare_replay_events (cognitive 44): sse._prepare_replay_events has cognitive complexity 44 (threshold 15). Drivers by points: if/else 34, loops 6, boolean chains 2, error handling 1, ternaries 1 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sse.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"82abdf44554486fb305389ff490d29f469aaa731a6f8a4aef060141a4dbe654b"}},{"ruleId":"D2","level":"warning","message":{"text":"share.get_shared_artifact_content (cognitive 43): share.get_shared_artifact_content has cognitive complexity 43 (threshold 15). Drivers by points: if/else 31, boolean chains 5, error handling 5, loops 1, ternaries 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"76b47a760ab5e1cd3f647086316e6caf949085e4ab07822bbb41799fbadd195e"}},{"ruleId":"D2","level":"warning","message":{"text":"ShareService._format_task_events (cognitive 43): ShareService._format_task_events has cognitive complexity 43 (threshold 15). Drivers by points: if/else 39, boolean chains 3, loops 1 (nesting depth added 30). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":591}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c64daaf01d3a912510547cab294adf64976ac99098087a69554adf5ee574c58"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkflowDefinition.validate_dag_structure (cognitive 43): WorkflowDefinition.validate_dag_structure has cognitive complexity 43 (threshold 15). Drivers by points: if/else 32, loops 10, boolean chains 1 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/app.py"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"153539badc827aad61664a6c086a851146ff552c5ba9557893175e21072d72af"}},{"ruleId":"D2","level":"warning","message":{"text":"utils.discover_config_files (cognitive 42): utils.discover_config_files has cognitive complexity 42 (threshold 15). Drivers by points: if/else 24, loops 16, boolean chains 2 (nesting depth added 26). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/utils.py"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"772e1bebba260373276853fa8132499ab9904d129b49a7daf1dde629501a7fd0"}},{"ruleId":"D2","level":"warning","message":{"text":"ModalDataService.generate_modal_test_data (cognitive 42): ModalDataService.generate_modal_test_data has cognitive complexity 42 (threshold 15). Drivers by points: if/else 32, loops 10 (nesting depth added 33). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":388}}}],"partialFingerprints":{"codehealthFindingId/v1":"3812c66f08b62f0affcdff3c6d7cdb2a56892a88c8f4d613477170878f6003dd"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_http_responses (cognitive 42): test_declarative_runner._assert_http_responses has cognitive complexity 42 (threshold 15). Drivers by points: if/else 33, loops 4, error handling 3, boolean chains 2 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":567}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ae01a2095f3cdcac9845227c2f0ac90fa12ee24c8c2bc7e16c763739b3d30d7"}},{"ruleId":"D2","level":"warning","message":{"text":"cli.main_async (cognitive 41): cli.main_async has cognitive complexity 41 (threshold 15). Drivers by points: if/else 17, error handling 11, loops 8, ternaries 3, boolean chains 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/sam-rest-client/src/sam_rest_client/cli.py"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"22237c807212e31a0aea7800352850c7f2eb4abfd6c2f148cf911855385e29f5"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent._filter_tools_by_capability_callback (cognitive 41): SamAgentComponent._filter_tools_by_capability_callback has cognitive complexity 41 (threshold 15). Drivers by points: if/else 28, loops 7, boolean chains 4, ternaries 2 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1358}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab21b7281d9b6f36e4f39b35f6d97f51abfddb29162f3976107ea1aeb395832c"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts.upload_artifact_with_session (cognitive 41): artifacts.upload_artifact_with_session has cognitive complexity 41 (threshold 15). Drivers by points: if/else 23, error handling 12, boolean chains 5, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c3993a49f7472a75dbaffaa3d8a72cfbc52d610207b1014cd2a4c84102662bd"}},{"ruleId":"D2","level":"warning","message":{"text":"projects.add_project_artifacts (cognitive 41): projects.add_project_artifacts has cognitive complexity 41 (threshold 15). Drivers by points: if/else 27, ternaries 6, error handling 4, boolean chains 3, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"b54b15f9a0f2cf8f37afeb7e075fc8057150405eaf619a9ecfea7d66a9689fdb"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_artifact_state (cognitive 41): test_declarative_runner._assert_artifact_state has cognitive complexity 41 (threshold 15). Drivers by points: if/else 27, boolean chains 6, error handling 6, loops 1, ternaries 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1355}}}],"partialFingerprints":{"codehealthFindingId/v1":"daabe13f1b533ec826cfe2213ecab8e4911f1c227507a69de78b55d43aeaa758"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks.get_task_status (cognitive 40): tasks.get_task_status has cognitive complexity 40 (threshold 15). Drivers by points: if/else 30, boolean chains 6, loops 4 (nesting depth added 25). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"96d29cb288b84ad9e0e1a6b383746019d5df8d6a906b42e0c154180be623f61b"}},{"ruleId":"D2","level":"warning","message":{"text":"AudioService.stream_speech (cognitive 40): AudioService.stream_speech has cognitive complexity 40 (threshold 15). Drivers by points: if/else 22, loops 10, error handling 4, ternaries 3, boolean chains 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1013}}}],"partialFingerprints":{"codehealthFindingId/v1":"3db7460e53721646484e105432fded1babc08ead903cccdf58d6a0bce8123dd5"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor.execute_workflow (cognitive 40): DAGExecutor.execute_workflow has cognitive complexity 40 (threshold 15). Drivers by points: if/else 24, loops 9, ternaries 6, boolean chains 1 (nesting depth added 24). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e4e7ae680ee7a7ffbc6eb8897af8af1815258c778420d5e7ebc1f04764edb29"}},{"ruleId":"D2","level":"warning","message":{"text":"common.execute_task (cognitive 39): common.execute_task has cognitive complexity 39 (threshold 15). Drivers by points: if/else 25, error handling 8, boolean chains 3, loops 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/task_cmd/common.py"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6a7bbd1808e32e6c761fb02084370b2f4dd4b8746e3f5757182b50bbde0d67b"}},{"ruleId":"D2","level":"warning","message":{"text":"MetricsCalculationService.calculate_run_statistics (cognitive 39): MetricsCalculationService.calculate_run_statistics has cognitive complexity 39 (threshold 15). Drivers by points: if/else 26, loops 10, ternaries 2, boolean chains 1 (nesting depth added 27). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcc98af8b45db7397da1a19ab2145f2f5f1fff7623b7d754ff9a80a7a15b2d62"}},{"ruleId":"D2","level":"warning","message":{"text":"migrate_declarative_tests.transform_data (cognitive 39): migrate_declarative_tests.transform_data has cognitive complexity 39 (threshold 15). Drivers by points: if/else 29, loops 8, boolean chains 2 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/migrate_declarative_tests.py"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"08daea09d9df84da0580b83177054be3a05530456fe807e410a6ff094d0fa622"}},{"ruleId":"D2","level":"warning","message":{"text":"runner._repair_dangling_tool_calls_in_session (cognitive 39): runner._repair_dangling_tool_calls_in_session has cognitive complexity 39 (threshold 15). Drivers by points: if/else 18, loops 11, boolean chains 9, error handling 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1035}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb2a998eefb3235650020d6853ebe0eb01201348511076e20a5aecae7cfa9e13"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskBuilderAssistant.validate_conflict (cognitive 39): TaskBuilderAssistant.validate_conflict has cognitive complexity 39 (threshold 15). Drivers by points: if/else 16, boolean chains 13, ternaries 6, error handling 4 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":669}}}],"partialFingerprints":{"codehealthFindingId/v1":"c43d7725dd49934c7adc209b720aff904d1d5a50c204014c9bd8eec607562f1f"}},{"ruleId":"D2","level":"warning","message":{"text":"services._filter_session_by_latest_compaction (cognitive 38): services._filter_session_by_latest_compaction has cognitive complexity 38 (threshold 15). Drivers by points: if/else 23, ternaries 6, loops 5, boolean chains 4 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"d83e5b69375e227f0439bf70acb44bacda24f8c3278d1df7048f6773acab4b83"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_types.get_artifact_info (cognitive 38): artifact_types.get_artifact_info has cognitive complexity 38 (threshold 15). Drivers by points: if/else 31, boolean chains 5, loops 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/artifact_types.py"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"87244ad792489d1301c1215a15d709da3213b73b18eb3a260776e5b29c0ab21f"}},{"ruleId":"D2","level":"warning","message":{"text":"converter.serialize_data (cognitive 38): converter.serialize_data has cognitive complexity 38 (threshold 15). Drivers by points: if/else 21, error handling 13, boolean chains 3, ternaries 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b85ecaf835e95a1a578cd23793f335996c53634b84a09fe790b058653ce9ded"}},{"ruleId":"D2","level":"warning","message":{"text":"modifiers._apply_template (cognitive 38): modifiers._apply_template has cognitive complexity 38 (threshold 15). Drivers by points: if/else 21, boolean chains 6, error handling 6, ternaries 5 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/modifiers.py"},"region":{"startLine":418}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce588de3e7dba538eb2cca38db1bf72decd46e3ff868e7cfa1e9a3ebdffd6420"}},{"ruleId":"D2","level":"warning","message":{"text":"SSEManager.send_event (cognitive 38): SSEManager.send_event has cognitive complexity 38 (threshold 15). Drivers by points: if/else 19, error handling 11, loops 4, ternaries 3, boolean chains 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/sse_manager.py"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"a148b5d030250f48e3e7500391c857b5cb6c2834a4b471de73ef38403dd5a1ab"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_generated_artifacts (cognitive 38): test_declarative_runner._assert_generated_artifacts has cognitive complexity 38 (threshold 15). Drivers by points: if/else 22, error handling 12, boolean chains 2, loops 1, ternaries 1 (nesting depth added 19). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1514}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d72649e437c9c7693ff134b0fd588ea6095fe775637f9354d6bc1bd0cf9c8d"}},{"ruleId":"D2","level":"warning","message":{"text":"intelligent_mcp_callbacks.save_mcp_response_as_artifact_intelligent (cognitive 37): intelligent_mcp_callbacks.save_mcp_response_as_artifact_intelligent has cognitive complexity 37 (threshold 15). Drivers by points: if/else 28, error handling 8, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1b8eabb80a05cfb83c6b1902bf79835c0dcded2906b28afb90085279cca4bea"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_helpers.save_artifact_with_metadata (cognitive 37): artifact_helpers.save_artifact_with_metadata has cognitive complexity 37 (threshold 15). Drivers by points: if/else 18, error handling 10, boolean chains 5, ternaries 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"716fa01a5b5a80471dd07a37e6fc512141b695f1aac5de0b90e3a88c7ff81f64"}},{"ruleId":"D2","level":"warning","message":{"text":"dynamic_tool._get_schema_from_signature (cognitive 36): dynamic_tool._get_schema_from_signature has cognitive complexity 36 (threshold 15). Drivers by points: if/else 30, boolean chains 5, loops 1 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/dynamic_tool.py"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e26a4a4b987ee1e5d7922b92816c8cdc502b27da9a24bb7a97dfe5f4c7e84af"}},{"ruleId":"D2","level":"warning","message":{"text":"ModelConfigService.test_connection (cognitive 36): ModelConfigService.test_connection has cognitive complexity 36 (threshold 15). Drivers by points: if/else 22, boolean chains 9, loops 3, error handling 1, ternaries 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_config_service.py"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"5434482bf31a3af19969b2467417d84867dc7e49b0aa597e2d6fcce1d83071f4"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools.list_artifacts (cognitive 35): builtin_artifact_tools.list_artifacts has cognitive complexity 35 (threshold 15). Drivers by points: if/else 19, error handling 14, boolean chains 1, loops 1 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"547469f5e91a4caad87ce1799e8e6663c2e8d6d6c428dbcf6cfd280fd765fa5f"}},{"ruleId":"D2","level":"warning","message":{"text":"bm25_indexer_service.build_bm25_index (cognitive 35): bm25_indexer_service.build_bm25_index has cognitive complexity 35 (threshold 15). Drivers by points: if/else 22, loops 10, boolean chains 2, error handling 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2974ac87e1dbb3129009a92e0940549f0a89477f1e726f1bc00bfa4db568790"}},{"ruleId":"D2","level":"warning","message":{"text":"agent_cmd._write_agent_yaml_from_data (cognitive 34): agent_cmd._write_agent_yaml_from_data has cognitive complexity 34 (threshold 15). Drivers by points: if/else 24, error handling 5, boolean chains 3, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/agent_cmd.py"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b7dae573702bf12d33f80358992a20fbfbfe65ffd19b1df1c67a07cb3f83e34"}},{"ruleId":"D2","level":"warning","message":{"text":"EmbedResolvingMCPTool._resolve_embeds_recursively (cognitive 34): EmbedResolvingMCPTool._resolve_embeds_recursively has cognitive complexity 34 (threshold 15). Drivers by points: if/else 16, error handling 13, loops 4, boolean chains 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb1d15e712b29edea7576c68e6c373ea8a9de4e6f5d81739591787fdaaeae1f2"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseProxyComponent._initial_discovery_sync (cognitive 34): BaseProxyComponent._initial_discovery_sync has cognitive complexity 34 (threshold 15). Drivers by points: if/else 23, error handling 5, ternaries 5, loops 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":414}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fe5040bfad2e66bfcb4ca364af27699c9ee6b4e0fe7dc795c478f53e1ceaf30"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseGatewayComponent._message_processor_loop (cognitive 34): BaseGatewayComponent._message_processor_loop has cognitive complexity 34 (threshold 15). Drivers by points: if/else 22, error handling 6, boolean chains 5, loops 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":2234}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb2cced6d8742287819d00d4d761ddeb1d2b869394d9f89d63e621f1f92a1d13"}},{"ruleId":"D2","level":"warning","message":{"text":"ResultHandler._extract_rag_from_task_events (cognitive 34): ResultHandler._extract_rag_from_task_events has cognitive complexity 34 (threshold 15). Drivers by points: if/else 22, boolean chains 5, loops 3, error handling 2, ternaries 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":703}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce7a69c04cd2462f8206e249092c70642b58287f73fbf5c1b93d2aa76a09f36d"}},{"ruleId":"D2","level":"warning","message":{"text":"tools_cmd.format_tool_table (cognitive 33): tools_cmd.format_tool_table has cognitive complexity 33 (threshold 15). Drivers by points: if/else 15, loops 10, ternaries 6, boolean chains 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/tools_cmd.py"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6a616b2340e7243f5d12feec6b41d57b64747cf855ee3d94dae727f36dff9e9"}},{"ruleId":"D2","level":"warning","message":{"text":"ModelResultsProcessor.create_test_case_results (cognitive 33): ModelResultsProcessor.create_test_case_results has cognitive complexity 33 (threshold 15). Drivers by points: if/else 20, loops 7, boolean chains 2, error handling 2, ternaries 2 (nesting depth added 22). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":720}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b00661539ba4619cdf900fa5aa1dfaa64c1d792b93bb1ca6bfb840601bf57a6"}},{"ruleId":"D2","level":"warning","message":{"text":"prompts.import_prompt (cognitive 33): prompts.import_prompt has cognitive complexity 33 (threshold 15). Drivers by points: if/else 20, boolean chains 5, loops 4, error handling 2, ternaries 2 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":1184}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f60fd58853e67390dcf08f50d307459d502a1066253dc3fd1e5958400aa743f"}},{"ruleId":"D2","level":"warning","message":{"text":"ModelListService._fetch_models_from_provider (cognitive 33): ModelListService._fetch_models_from_provider has cognitive complexity 33 (threshold 15). Drivers by points: if/else 25, loops 4, boolean chains 2, error handling 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_list_service.py"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fd5b4531f0226e47cc4b38386cb5cf67e4f5f6f47c0742fd59bdcfc8b30001f"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_gateway_event_sequence (cognitive 33): test_declarative_runner._assert_gateway_event_sequence has cognitive complexity 33 (threshold 15). Drivers by points: if/else 23, boolean chains 6, loops 4 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":1196}}}],"partialFingerprints":{"codehealthFindingId/v1":"b254b28e9d8668aed024472fff61d4faa3de91c09554fe4edb638b197a12643f"}},{"ruleId":"D2","level":"warning","message":{"text":"RegistryManager.get_all_registries (cognitive 32): RegistryManager.get_all_registries has cognitive complexity 32 (threshold 15). Drivers by points: error handling 14, if/else 14, loops 3, ternaries 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/registry_manager.py"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"59983e2929c8adb20acce45e4829d7b8b54ca77d599362b4e5ca41d6ef367ae9"}},{"ruleId":"D2","level":"warning","message":{"text":"migrate_declarative_tests.main (cognitive 32): migrate_declarative_tests.main has cognitive complexity 32 (threshold 15). Drivers by points: if/else 27, loops 3, error handling 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"scripts/migrate_declarative_tests.py"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f0e931155094a74c44b88698248b6a2003548fac05323b25a6b6fff61e18239"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.sanitize_tool_names_callback (cognitive 32): callbacks.sanitize_tool_names_callback has cognitive complexity 32 (threshold 15). Drivers by points: if/else 19, boolean chains 6, ternaries 4, loops 3 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2911}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ab9a10b2d68fd087bb72c5270547bcfe2f69bfa63c31d4a30410842c78e55b8"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._construct_synthetic_agent_card (cognitive 32): A2AProxyComponent._construct_synthetic_agent_card has cognitive complexity 32 (threshold 15). Drivers by points: if/else 25, ternaries 3, error handling 2, loops 2 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"26eed757d24b71a3349fb1ce39c82e9ca22c5b1adf0740d29aca582de22c179c"}},{"ruleId":"D2","level":"warning","message":{"text":"AuthenticationConfig.validate_auth_config (cognitive 32): AuthenticationConfig.validate_auth_config has cognitive complexity 32 (threshold 15). Drivers by points: if/else 26, error handling 5, boolean chains 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/config.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a29bfa07649d22324398636cfb448d79c9c45f3a95b26aeb68da284d2078cbc"}},{"ruleId":"D2","level":"warning","message":{"text":"audio_tools._get_voice_for_speaker (cognitive 32): audio_tools._get_voice_for_speaker has cognitive complexity 32 (threshold 15). Drivers by points: if/else 32 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fee17a17e636b0eaa68ba2558ab350ede64fc084d66895d15c40b00f51bed30"}},{"ruleId":"D2","level":"warning","message":{"text":"auth_headers.build_static_auth_headers (cognitive 32): auth_headers.build_static_auth_headers has cognitive complexity 32 (threshold 15). Drivers by points: if/else 25, ternaries 4, loops 2, boolean chains 1 (nesting depth added 20). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/auth_headers.py"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c4f45cab422b0f6d4fb7326d4a1110aeb2c5e23cf91e8bd038a18659400af9e"}},{"ruleId":"D2","level":"warning","message":{"text":"SamComponentBase.process_event (cognitive 32): SamComponentBase.process_event has cognitive complexity 32 (threshold 15). Drivers by points: if/else 16, error handling 15, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/sac/sam_component_base.py"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"957885dfd134b7c9641d9e6d5df0b1d6c42a8d8a2aaf66d4215538baa8372a49"}},{"ruleId":"D2","level":"warning","message":{"text":"AudioService.generate_speech_gemini (cognitive 32): AudioService.generate_speech_gemini has cognitive complexity 32 (threshold 15). Drivers by points: if/else 19, error handling 8, boolean chains 4, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":632}}}],"partialFingerprints":{"codehealthFindingId/v1":"10dfd1e854ab2a0a061d56324b0fe6abbc8cef9c38b52c0bedcebdfcaa26f743"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_copy_utils.copy_project_artifacts_to_session (cognitive 32): artifact_copy_utils.copy_project_artifacts_to_session has cognitive complexity 32 (threshold 15). Drivers by points: if/else 21, ternaries 5, error handling 4, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"189052ed21cc086d98824d473f4fc44ad8c31e3855682deb784d9786afba6f3c"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor.resolve_value (cognitive 32): DAGExecutor.resolve_value has cognitive complexity 32 (threshold 15). Drivers by points: if/else 22, loops 8, boolean chains 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":938}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8368d39ae8c2f0b491ec56ac7e57bfab57cdc6aa1aa9b93d018eaa8aba33a0c"}},{"ruleId":"D2","level":"warning","message":{"text":"TestLLMServer._verify_tool_responses (cognitive 32): TestLLMServer._verify_tool_responses has cognitive complexity 32 (threshold 15). Drivers by points: if/else 25, error handling 3, boolean chains 2, loops 1, ternaries 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/llm_server/server.py"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"33f7c72935019f442882855040370e1706e703ae5ff8b211537b62a01cba56af"}},{"ruleId":"D2","level":"warning","message":{"text":"MetricsCalculationService.calculate_model_performance (cognitive 31): MetricsCalculationService.calculate_model_performance has cognitive complexity 31 (threshold 15). Drivers by points: if/else 24, loops 6, boolean chains 1 (nesting depth added 21). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f66c3820efe8ed5f7b8c173210cb17ae39fa20d584d498fec363a1b45ee31e3"}},{"ruleId":"D2","level":"warning","message":{"text":"lite_llm._content_to_message_param (cognitive 31): lite_llm._content_to_message_param has cognitive complexity 31 (threshold 15). Drivers by points: if/else 17, ternaries 7, boolean chains 4, loops 3 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"d408bfd0aa25c8aadb9a15284d1418f35bba9020433f1d6cdf64e12dd0d3c581"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_a2a_request (cognitive 31): event_handlers.handle_a2a_request has cognitive complexity 31 (threshold 15). Drivers by points: if/else 17, error handling 8, ternaries 4, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1571}}}],"partialFingerprints":{"codehealthFindingId/v1":"460de87494c5aac33bcfbb894178085201637696aa17130b1c2ec30424bf232e"}},{"ruleId":"D2","level":"warning","message":{"text":"ShareService._load_task_events_for_session (cognitive 31): ShareService._load_task_events_for_session has cognitive complexity 31 (threshold 15). Drivers by points: if/else 19, error handling 5, boolean chains 4, loops 3 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b6f46343fc351c5e1b9dba76f502a591eafe0dd96bbb6c7f9fd3a7d8bbfff76"}},{"ruleId":"D2","level":"warning","message":{"text":"DatabaseExceptionHandler.handle_integrity_error (cognitive 31): DatabaseExceptionHandler.handle_integrity_error has cognitive complexity 31 (threshold 15). Drivers by points: if/else 17, boolean chains 8, loops 5, ternaries 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/shared/database/database_exceptions.py"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"0658abb8a4d0012e43f45f3a397a3d4aeb2dbd979c2a458d2eacb5420d51f8d7"}},{"ruleId":"D2","level":"warning","message":{"text":"setup.load_adk_tools (cognitive 30): setup.load_adk_tools has cognitive complexity 30 (threshold 15). Drivers by points: if/else 22, loops 5, error handling 3 (nesting depth added 18). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/setup.py"},"region":{"startLine":803}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcd0ee70d17b626dc0759d318e3684572920933ffdcbae35824311b80ef8cb6d"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._select_sources_to_fetch (cognitive 30): deep_research_tools._select_sources_to_fetch has cognitive complexity 30 (threshold 15). Drivers by points: if/else 17, boolean chains 6, loops 4, error handling 3 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1446}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d74a1eb1928dc65f0538b12ac2576ccbd1d9b8f7e4efa7b4aaff7077f4d6c56"}},{"ruleId":"D2","level":"warning","message":{"text":"RegistryManager.add_registry (cognitive 29): RegistryManager.add_registry has cognitive complexity 29 (threshold 15). Drivers by points: if/else 18, error handling 8, boolean chains 1, loops 1, ternaries 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/registry_manager.py"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbfb3f664d1022b094f22a8fc1f777b0372846ee91e113d1aee5a084d7ccd317"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.process_event (cognitive 29): event_handlers.process_event has cognitive complexity 29 (threshold 15). Drivers by points: if/else 19, error handling 7, boolean chains 3 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7f53da17f0a7a4716db5d016e62944d2562cdd17d654914f92fda9abe79d23e"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent._format_final_task_status (cognitive 29): SamAgentComponent._format_final_task_status has cognitive complexity 29 (threshold 15). Drivers by points: if/else 20, loops 5, boolean chains 3, ternaries 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2457}}}],"partialFingerprints":{"codehealthFindingId/v1":"129d093a54c91645500076b3fa0f365bb6fb1d621f240e3c174a9b147e61c352"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.finalize_task_success (cognitive 29): SamAgentComponent.finalize_task_success has cognitive complexity 29 (threshold 15). Drivers by points: if/else 16, error handling 8, boolean chains 3, ternaries 2 (nesting depth added 7). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2503}}}],"partialFingerprints":{"codehealthFindingId/v1":"52b652390ae2910efcdd1bf46ad369dca878dabc0b8f027962841c1203a3dd79"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_preloading.resolve_artifact_params (cognitive 29): artifact_preloading.resolve_artifact_params has cognitive complexity 29 (threshold 15). Drivers by points: if/else 15, error handling 8, loops 4, boolean chains 2 (nesting depth added 17). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/artifact_preloading.py"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3f21d9d30c68a0c0507f52061858a5366a2d9d22363f79e873a3cefccc06ac5"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_types.is_artifact_type (cognitive 29): artifact_types.is_artifact_type has cognitive complexity 29 (threshold 15). Drivers by points: if/else 23, loops 4, boolean chains 2 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/artifact_types.py"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb94ac54b192f2a0c8c41a422422b71cd07dc82d502d59004e5a2afe12402d7c"}},{"ruleId":"D2","level":"warning","message":{"text":"audio_tools.concatenate_audio (cognitive 29): audio_tools.concatenate_audio has cognitive complexity 29 (threshold 15). Drivers by points: if/else 22, error handling 4, boolean chains 2, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":980}}}],"partialFingerprints":{"codehealthFindingId/v1":"f05e1610f67c2e98aa44463d9c0a8d4ea7226dbf2f0c526f98b2785a2b97a372"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor._resolve_template (cognitive 29): DAGExecutor._resolve_template has cognitive complexity 29 (threshold 15). Drivers by points: if/else 22, loops 4, boolean chains 3 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":993}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cea4a29f23f8da1bfcadcbbba39cde011c6f5d987565e54f3673799a247f657"}},{"ruleId":"D2","level":"warning","message":{"text":"runner._run_with_compaction_retry (cognitive 28): runner._run_with_compaction_retry has cognitive complexity 28 (threshold 15). Drivers by points: if/else 20, error handling 5, boolean chains 2, loops 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1232}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cda035883d789123a4c86c27ef5aace35110792b02e58098b8806b73f329f05"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers._handle_cancel_task_request (cognitive 28): event_handlers._handle_cancel_task_request has cognitive complexity 28 (threshold 15). Drivers by points: if/else 17, error handling 6, loops 3, boolean chains 2 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":439}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b37098d3d31cb11c529db5200dba185b0135fdba22826a9c8e575c6301b6b9c"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers._resolve_or_create_session (cognitive 28): event_handlers._resolve_or_create_session has cognitive complexity 28 (threshold 15). Drivers by points: error handling 18, if/else 9, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":585}}}],"partialFingerprints":{"codehealthFindingId/v1":"8db85e253466f9c8ce4871b2c10f067105d76ea3815da62ce0a99710a804a4b7"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._generate_research_report (cognitive 28): deep_research_tools._generate_research_report has cognitive complexity 28 (threshold 15). Drivers by points: if/else 19, boolean chains 6, error handling 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1765}}}],"partialFingerprints":{"codehealthFindingId/v1":"33d6091478fe044502dea5ffe4604b33ad7ff4bfd004f81d8d27f20fbddd84c9"}},{"ruleId":"D2","level":"warning","message":{"text":"image_tools.edit_image_with_gemini (cognitive 28): image_tools.edit_image_with_gemini has cognitive complexity 28 (threshold 15). Drivers by points: if/else 15, error handling 8, ternaries 3, boolean chains 1, loops 1 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"3df244fa881c0c0cadaf4303a9e2b64c2f02e2761cdf9da1b0ffe738a051733d"}},{"ruleId":"D2","level":"warning","message":{"text":"translation._extract_text_from_parts (cognitive 28): translation._extract_text_from_parts has cognitive complexity 28 (threshold 15). Drivers by points: if/else 14, error handling 9, boolean chains 4, loops 1 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b8915adbc896572f0eb60bdee8908445e5b202a76fa47374f4167d1bcc00671"}},{"ruleId":"D2","level":"warning","message":{"text":"share_utils.anonymize_chat_task (cognitive 28): share_utils.anonymize_chat_task has cognitive complexity 28 (threshold 15). Drivers by points: if/else 15, error handling 5, ternaries 4, boolean chains 2, loops 2 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/utils/share_utils.py"},"region":{"startLine":135}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6602de34ed844e8aaa7ca11defe9066294a53502ef8cbb18e7029c04aa07b86"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.audit_log_openapi_tool_execution_result (cognitive 27): callbacks.audit_log_openapi_tool_execution_result has cognitive complexity 27 (threshold 15). Drivers by points: if/else 17, boolean chains 8, ternaries 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":3258}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f82c0ce0df646b53b5ffeb09b7a345f42f809940c61f5f921ca72ade3a2a527"}},{"ruleId":"D2","level":"warning","message":{"text":"EmbedResolvingMCPTool._is_auth_error (cognitive 27): EmbedResolvingMCPTool._is_auth_error has cognitive complexity 27 (threshold 15). Drivers by points: if/else 20, boolean chains 4, error handling 2, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"70e50915760351a70c7bd4fa07663896d34f236617b4d625dca46f21c9f95856"}},{"ruleId":"D2","level":"warning","message":{"text":"ADKToolWrapper.__call__ (cognitive 27): ADKToolWrapper.__call__ has cognitive complexity 27 (threshold 15). Drivers by points: if/else 16, boolean chains 6, loops 4, error handling 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/tool_wrapper.py"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"2516d8ac5b27df00f411c432f3cb2f25af3cd8383daefaf1c8d6efbe4aed99c0"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.publish_agent_card (cognitive 27): event_handlers.publish_agent_card has cognitive complexity 27 (threshold 15). Drivers by points: if/else 17, ternaries 5, loops 3, boolean chains 1, error handling 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":2643}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dcefb320626891348dcd9a2847deae092cc6e4b8c2f388f86c3e34c8042625d"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._generate_sources_section (cognitive 27): deep_research_tools._generate_sources_section has cognitive complexity 27 (threshold 15). Drivers by points: if/else 14, ternaries 8, loops 4, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1696}}}],"partialFingerprints":{"codehealthFindingId/v1":"166ad9688dcc141f26c376a01b84240dd205bf555651eec7b21176b975aeda6a"}},{"ruleId":"D2","level":"warning","message":{"text":"image_tools.generate_image_with_gemini (cognitive 27): image_tools.generate_image_with_gemini has cognitive complexity 27 (threshold 15). Drivers by points: if/else 16, error handling 6, ternaries 3, boolean chains 1, loops 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":719}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e3236a23561c62bb2ccb1a5fc2ec7661103265ae29f231e9cbda4dfdd24d9f8"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAppBase._get_db_engines_from_components (cognitive 27): SamAppBase._get_db_engines_from_components has cognitive complexity 27 (threshold 15). Drivers by points: if/else 17, loops 6, boolean chains 4 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/app_base.py"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"03fcea861d1272ff8dd71b608b0dc13081e6608053e34b8b29eaf692c0836ee3"}},{"ruleId":"D2","level":"warning","message":{"text":"resolver.evaluate_embed (cognitive 27): resolver.evaluate_embed has cognitive complexity 27 (threshold 15). Drivers by points: if/else 14, ternaries 8, boolean chains 3, error handling 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":853}}}],"partialFingerprints":{"codehealthFindingId/v1":"460a7f89b550c430f9ab3df8183b4e78e8f51744addca5e06315b2f0bdbfea38"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectService.add_artifacts_to_project (cognitive 27): ProjectService.add_artifacts_to_project has cognitive complexity 27 (threshold 15). Drivers by points: if/else 15, error handling 7, loops 2, ternaries 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e9966744ba947db01aa782a1980b7067c7b20387b88af25648885cd26a60604"}},{"ruleId":"D2","level":"warning","message":{"text":"tools_cmd.format_tool_table_brief (cognitive 26): tools_cmd.format_tool_table_brief has cognitive complexity 26 (threshold 15). Drivers by points: loops 10, if/else 9, ternaries 6, boolean chains 1 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/tools_cmd.py"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"2740cc23fa2dd2c6e8e6c27d98ee35fe8e0088da0703ecf9dceaf814f39f62a4"}},{"ruleId":"D2","level":"warning","message":{"text":"PluginScraper._parse_config_yaml (cognitive 26): PluginScraper._parse_config_yaml has cognitive complexity 26 (threshold 15). Drivers by points: if/else 18, boolean chains 3, error handling 2, loops 2, ternaries 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bb6b778c0d6eb83a37bff761974be68c3887ae7319364410edd94513e3cb07b"}},{"ruleId":"D2","level":"warning","message":{"text":"PluginScraper._scrape_git_registry (cognitive 26): PluginScraper._scrape_git_registry has cognitive complexity 26 (threshold 15). Drivers by points: if/else 15, error handling 5, boolean chains 4, loops 1, ternaries 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"d88fd285f3e429a54d8aaf47fa87cb064289d6976feb1dd18dfd0d4bb1b54d9c"}},{"ruleId":"D2","level":"warning","message":{"text":"EvaluationRunner._display_summary (cognitive 26): EvaluationRunner._display_summary has cognitive complexity 26 (threshold 15). Drivers by points: if/else 20, loops 4, error handling 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/run.py"},"region":{"startLine":836}}}],"partialFingerprints":{"codehealthFindingId/v1":"64f6e5b79b533ee26febd06890d7c3f8e4f90c4cc8b00fc05bb7ec3c2b8dbbc5"}},{"ruleId":"D2","level":"warning","message":{"text":"lite_llm._get_completion_inputs (cognitive 26): lite_llm._get_completion_inputs has cognitive complexity 26 (threshold 15). Drivers by points: if/else 18, boolean chains 5, loops 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aa4481b4dbda7e587871e66e468a29148354b74b93aef789d9644af6e872d5c"}},{"ruleId":"D2","level":"warning","message":{"text":"StructuredInvocationHandler._parse_result_embed (cognitive 26): StructuredInvocationHandler._parse_result_embed has cognitive complexity 26 (threshold 15). Drivers by points: if/else 14, error handling 4, boolean chains 3, loops 3, ternaries 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":966}}}],"partialFingerprints":{"codehealthFindingId/v1":"541ec710ff1b51f7eab075ff11b96bb60435e5566571c703e61f6a8bb9634281"}},{"ruleId":"D2","level":"warning","message":{"text":"translation.format_adk_event_as_a2a (cognitive 26): translation.format_adk_event_as_a2a has cognitive complexity 26 (threshold 15). Drivers by points: if/else 11, boolean chains 10, error handling 3, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":522}}}],"partialFingerprints":{"codehealthFindingId/v1":"56457837bb3abf7cdee43ace5faebf04eb93ac6afa33c5b11a3560e77ba5fdaa"}},{"ruleId":"D2","level":"warning","message":{"text":"auth_headers.build_full_auth_headers (cognitive 26): auth_headers.build_full_auth_headers has cognitive complexity 26 (threshold 15). Drivers by points: if/else 19, error handling 4, loops 2, boolean chains 1 (nesting depth added 16). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/auth_headers.py"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d13b870d6257010ce910c66aade4b7158bfb32a62aca8719627f53a029ce2c3"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts.get_scheduled_task_artifact (cognitive 26): artifacts.get_scheduled_task_artifact has cognitive complexity 26 (threshold 15). Drivers by points: if/else 14, boolean chains 6, error handling 3, loops 2, ternaries 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1718}}}],"partialFingerprints":{"codehealthFindingId/v1":"afd45f4bd31c22ef750946aacf6617ccfd27c55182721818353388aac58b3f9c"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexingTaskService.convert_and_index_upload_async (cognitive 26): IndexingTaskService.convert_and_index_upload_async has cognitive complexity 26 (threshold 15). Drivers by points: if/else 10, ternaries 7, error handling 4, boolean chains 3, loops 2 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"31449889cbc90227d80701d5968c0a117b5e8101b4e2ae3a431e2536ddd37766"}},{"ruleId":"D2","level":"warning","message":{"text":"conftest.test_gateway_app_instance (cognitive 26): conftest.test_gateway_app_instance has cognitive complexity 26 (threshold 15). Drivers by points: if/else 15, loops 5, ternaries 4, boolean chains 2 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/conftest.py"},"region":{"startLine":2347}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad35da4fe2dcca6d81d606aa6a8abbfdf9fb8b9886653badabb242cac2a68aff"}},{"ruleId":"D2","level":"warning","message":{"text":"test_artifact_streaming_embed_resolution.extract_artifact_progress_chunks (cognitive 26): test_artifact_streaming_embed_resolution.extract_artifact_progress_chunks has cognitive complexity 26 (threshold 15). Drivers by points: if/else 17, boolean chains 3, error handling 3, loops 3 (nesting depth added 14). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_programmatic/agent/test_artifact_streaming_embed_resolution.py"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0e9330e5532950c1c47d706ff156c18808896cf935bb9e982f935d6833de085"}},{"ruleId":"D2","level":"warning","message":{"text":"SSEClient._parse_sse_stream (cognitive 25): SSEClient._parse_sse_stream has cognitive complexity 25 (threshold 15). Drivers by points: if/else 9, error handling 6, loops 6, ternaries 4 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/task_cmd/sse_client.py"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a42acf75f49acf495af1aef2681a2f5ba08f8eaa9a7aa350860c5b0acab6da6"}},{"ruleId":"D2","level":"warning","message":{"text":"lite_llm._model_response_to_chunk (cognitive 25): lite_llm._model_response_to_chunk has cognitive complexity 25 (threshold 15). Drivers by points: if/else 17, boolean chains 5, loops 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":661}}}],"partialFingerprints":{"codehealthFindingId/v1":"52b1f55c65e619c4b6a017034f50827c2c88091c74f71da21a37cff747305412"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact_helpers.generate_artifact_metadata_summary (cognitive 25): artifact_helpers.generate_artifact_metadata_summary has cognitive complexity 25 (threshold 15). Drivers by points: if/else 16, error handling 5, loops 3, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":802}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb2d36cb9a3ffd5a2a0a30e568261e91a0a5d8f724ba528016c68ac645e5e25c"}},{"ruleId":"D2","level":"warning","message":{"text":"resolver.resolve_embeds_in_string (cognitive 25): resolver.resolve_embeds_in_string has cognitive complexity 25 (threshold 15). Drivers by points: if/else 19, boolean chains 3, error handling 2, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":493}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9e43312320b3d7720edbb0ce93ae2652e0ce073c39bd9af2c36deb482d78c34"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent.process_event (cognitive 25): WebUIBackendComponent.process_event has cognitive complexity 25 (threshold 15). Drivers by points: if/else 20, error handling 4, boolean chains 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":433}}}],"partialFingerprints":{"codehealthFindingId/v1":"549f922809e0fb296b151977d87c7f24158d0c5b927894b0d598c69a0bc260f4"}},{"ruleId":"D2","level":"warning","message":{"text":"document_conversion.convert_to_pdf (cognitive 25): document_conversion.convert_to_pdf has cognitive complexity 25 (threshold 15). Drivers by points: error handling 13, if/else 10, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/document_conversion.py"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"04629320e9552e046ee98dffbe722d981745ac230247742c3acc62e217cd63fd"}},{"ruleId":"D2","level":"warning","message":{"text":"ModelConfigService.update (cognitive 25): ModelConfigService.update has cognitive complexity 25 (threshold 15). Drivers by points: if/else 18, boolean chains 6, ternaries 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_config_service.py"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c97dd44192232c804e42005085bee9ad10d0a42852e1d3962ff711e0584950b"}},{"ruleId":"D2","level":"warning","message":{"text":"MemoryReportGenerator._format_node_children (cognitive 25): MemoryReportGenerator._format_node_children has cognitive complexity 25 (threshold 15). Drivers by points: if/else 18, loops 3, boolean chains 2, ternaries 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/memory_monitor/report_generator.py"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1350000b087054ebc602c91ea387cd1ad3451576aa9bc8a99bad01df653b2b1"}},{"ruleId":"D2","level":"warning","message":{"text":"web_init_step.perform_web_init (cognitive 24): web_init_step.perform_web_init has cognitive complexity 24 (threshold 15). Drivers by points: if/else 13, loops 5, boolean chains 3, error handling 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/web_init_step.py"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"98f08f27afa30d860d6557d0f1942f3c484903d776a0a72f6bf4a68c6b38191b"}},{"ruleId":"D2","level":"warning","message":{"text":"PluginScraper._parse_pyproject (cognitive 24): PluginScraper._parse_pyproject has cognitive complexity 24 (threshold 15). Drivers by points: if/else 17, error handling 3, loops 2, boolean chains 1, ternaries 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7e10c408ac04527629e090e13b9240e492b6b357d34f0ad6354d900fec8b5af"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._execute_with_retries (cognitive 24): A2AProxyComponent._execute_with_retries has cognitive complexity 24 (threshold 15). Drivers by points: if/else 12, error handling 10, boolean chains 1, loops 1 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":789}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc25120cbce5870e4459f27b85ef6892d7846430452bbdcb82c2d80d74333212"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AProxyComponent._handle_outbound_artifacts (cognitive 24): A2AProxyComponent._handle_outbound_artifacts has cognitive complexity 24 (threshold 15). Drivers by points: if/else 18, boolean chains 3, loops 3 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1773}}}],"partialFingerprints":{"codehealthFindingId/v1":"e87a37ab7c0fc16dfa7eed43ff9a61df7e25516400799e7b1c83c46f6b413451"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.cleanup (cognitive 24): SamAgentComponent.cleanup has cognitive complexity 24 (threshold 15). Drivers by points: if/else 12, error handling 6, boolean chains 4, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":3646}}}],"partialFingerprints":{"codehealthFindingId/v1":"1aa9ae0f1375c0f757d853d626972b3ba5b68ce6753ea9f47afdd4de46fde32e"}},{"ruleId":"D2","level":"warning","message":{"text":"evaluators._evaluate_artifact_content_embed (cognitive 24): evaluators._evaluate_artifact_content_embed has cognitive complexity 24 (threshold 15). Drivers by points: if/else 12, boolean chains 6, error handling 4, ternaries 2 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/evaluators.py"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"93db7a4b0becb8a08144a5db4c6efe76bc8556a2921723ddc8b28d04fe38cabc"}},{"ruleId":"D2","level":"warning","message":{"text":"projects.delete_project_artifact (cognitive 24): projects.delete_project_artifact has cognitive complexity 24 (threshold 15). Drivers by points: if/else 14, error handling 7, boolean chains 3 (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":583}}}],"partialFingerprints":{"codehealthFindingId/v1":"035c570e601e03152e5aaf4921bc1f55e3ad14306b92bc1dc2b60e2dc5a07b09"}},{"ruleId":"D2","level":"warning","message":{"text":"prompts.list_prompt_groups (cognitive 24): prompts.list_prompt_groups has cognitive complexity 24 (threshold 15). Drivers by points: ternaries 11, boolean chains 5, if/else 4, error handling 3, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f70715e713c09423df74d28f8f1fbe0a012f261cbe62f2ce6ce19a947357474"}},{"ruleId":"D2","level":"warning","message":{"text":"SchedulerService._submit_task_to_agent_mesh (cognitive 24): SchedulerService._submit_task_to_agent_mesh has cognitive complexity 24 (threshold 15). Drivers by points: if/else 15, boolean chains 4, error handling 4, loops 1 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":871}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb818c2775fc88107ccc44eae4a561fcc8b11de8c2eb32dd8837874d312dfb23"}},{"ruleId":"D2","level":"warning","message":{"text":"GoogleSearchTool.search (cognitive 24): GoogleSearchTool.search has cognitive complexity 24 (threshold 15). Drivers by points: error handling 11, if/else 9, loops 4 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/tools/web_search/google_search.py"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a64135f9109f9d5b2b4039004fb74b8b5dfc94dbfa60a068cc1507b3b94ad91"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_summary_in_text (cognitive 24): test_declarative_runner._assert_summary_in_text has cognitive complexity 24 (threshold 15). Drivers by points: if/else 15, boolean chains 5, loops 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":680}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d48c9b6d576f48054bc61ec3cc83a7ec91792855d1781db1375a48961281db7"}},{"ruleId":"D2","level":"warning","message":{"text":"MetricsReporter.assert_thresholds (cognitive 24): MetricsReporter.assert_thresholds has cognitive complexity 24 (threshold 15). Drivers by points: if/else 20, loops 4 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/stress/metrics/reporter.py"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9b9d68b8f2760c6d866005a2105cfa6bebb2106d5ce2f8c1899d5bcf251fc50"}},{"ruleId":"D2","level":"warning","message":{"text":"test_workflow_agent_card.get_workflow_config_json (cognitive 24): test_workflow_agent_card.get_workflow_config_json has cognitive complexity 24 (threshold 15). Drivers by points: if/else 23, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/unit/workflow/test_workflow_agent_card.py"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ffb52079311ca3df70c8062eaf0c31d700b3fe02d7d57635a7c1990140972fa"}},{"ruleId":"D2","level":"warning","message":{"text":"ToolResultProcessor._process_tool_result (cognitive 23): ToolResultProcessor._process_tool_result has cognitive complexity 23 (threshold 15). Drivers by points: if/else 20, loops 2, ternaries 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/tool_result_processor.py"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3867849ab6cdfe7dd35ce1a26338f85b903afb38567286714d3cd30442739bb"}},{"ruleId":"D2","level":"warning","message":{"text":"audio_tools.multi_speaker_text_to_speech (cognitive 23): audio_tools.multi_speaker_text_to_speech has cognitive complexity 23 (threshold 15). Drivers by points: if/else 14, boolean chains 4, error handling 3, loops 1, ternaries 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":758}}}],"partialFingerprints":{"codehealthFindingId/v1":"88aa43f2e2ad740e726e7898262532a0080bd6e30d394dd1eb59738d9d62df7c"}},{"ruleId":"D2","level":"warning","message":{"text":"audio_tools.transcribe_audio (cognitive 23): audio_tools.transcribe_audio has cognitive complexity 23 (threshold 15). Drivers by points: if/else 12, error handling 7, boolean chains 2, ternaries 2 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":1146}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9c260c337c217cf48ee982bfa6d7ae0468d1d3981e7bff182793c7f23e21af3"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools._perform_single_replacement (cognitive 23): builtin_artifact_tools._perform_single_replacement has cognitive complexity 23 (threshold 15). Drivers by points: if/else 15, loops 3, error handling 2, ternaries 2, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":2079}}}],"partialFingerprints":{"codehealthFindingId/v1":"37c7db4a274cf37abcd8c0048c958a129f04881e1dad1290ccd33df5fd55ef04"}},{"ruleId":"D2","level":"warning","message":{"text":"evaluators._evaluate_artifact_meta_embed (cognitive 23): evaluators._evaluate_artifact_meta_embed has cognitive complexity 23 (threshold 15). Drivers by points: if/else 12, boolean chains 5, error handling 5, ternaries 1 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/evaluators.py"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"63f467874836c22d3eb2aa5bf8c2baca3ca19d7bbdd6cbc95fab2bc9ea59aa6a"}},{"ruleId":"D2","level":"warning","message":{"text":"liquid_renderer._prepare_template_context (cognitive 23): liquid_renderer._prepare_template_context has cognitive complexity 23 (threshold 15). Drivers by points: if/else 11, boolean chains 6, error handling 6 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/templates/liquid_renderer.py"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"37a474a37c4b468af6136527a8525da53c4271224f22bf2e896cbf768d5aba6b"}},{"ruleId":"D2","level":"warning","message":{"text":"GenericGatewayComponent.load_artifact_content (cognitive 23): GenericGatewayComponent.load_artifact_content has cognitive complexity 23 (threshold 15). Drivers by points: if/else 9, ternaries 8, error handling 5, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/generic/component.py"},"region":{"startLine":486}}}],"partialFingerprints":{"codehealthFindingId/v1":"e23c749c16397f901b238f2d4d037a6dc22c2ad6cd9f3785c7ffa7311439dcae"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._add_visualization_subscription (cognitive 23): WebUIBackendComponent._add_visualization_subscription has cognitive complexity 23 (threshold 15). Drivers by points: if/else 19, boolean chains 2, error handling 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1279}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6cbdaa044edc3537de876214027e2faa90df1154d8dba3bdd853f2de98af89a"}},{"ruleId":"D2","level":"warning","message":{"text":"tasks._load_scheduler_conversation_history (cognitive 23): tasks._load_scheduler_conversation_history has cognitive complexity 23 (threshold 15). Drivers by points: if/else 14, error handling 3, loops 3, ternaries 2, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bdb6eb14dd8eb0ec0df81de3dc1e1d4de25c0d850ab876e2de2f868c6cc9fc6"}},{"ruleId":"D2","level":"warning","message":{"text":"ResultHandler._handle_status_update (cognitive 23): ResultHandler._handle_status_update has cognitive complexity 23 (threshold 15). Drivers by points: if/else 18, loops 3, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":170}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf1f50596692c935885ae570e9ae883574ca9f2b32f7285572c4f416412669ae"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskLoggerService._inherit_rag_from_session (cognitive 23): TaskLoggerService._inherit_rag_from_session has cognitive complexity 23 (threshold 15). Drivers by points: if/else 10, boolean chains 5, loops 5, ternaries 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":428}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8270e3c1f1b53d39c5e43adf3e2062a159f2bb34638773e5d760958278e6163"}},{"ruleId":"D2","level":"warning","message":{"text":"PlatformServiceComponent.cleanup (cognitive 23): PlatformServiceComponent.cleanup has cognitive complexity 23 (threshold 15). Drivers by points: error handling 12, if/else 10, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/component.py"},"region":{"startLine":681}}}],"partialFingerprints":{"codehealthFindingId/v1":"8227d12f0332617a1cc10fd4645e81da810ecf43b6c4451a80784d2d3e49f9b5"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.repair_history_callback (cognitive 22): callbacks.repair_history_callback has cognitive complexity 22 (threshold 15). Drivers by points: if/else 19, boolean chains 2, loops 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":965}}}],"partialFingerprints":{"codehealthFindingId/v1":"adfeee090e7a3bb7d562a7b38c6bda53aeb77bcfd896b1405cac6fe23dfe12e6"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks._generate_tool_instructions_from_registry (cognitive 22): callbacks._generate_tool_instructions_from_registry has cognitive complexity 22 (threshold 15). Drivers by points: if/else 13, loops 5, boolean chains 4 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1718}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8b0cc1400448f63eaab2b76f750abfd141475a9c444594f6103ae4e54af8464"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.after_tool_callback_inject_metadata (cognitive 22): callbacks.after_tool_callback_inject_metadata has cognitive complexity 22 (threshold 15). Drivers by points: if/else 12, error handling 8, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2073}}}],"partialFingerprints":{"codehealthFindingId/v1":"78c17573db2b21ea5f383a38d759053c68684eb7c2aeac7850ffaae8a8c028f6"}},{"ruleId":"D2","level":"warning","message":{"text":"patch_adk._filter_whitespace_only_text_parts_inplace (cognitive 22): patch_adk._filter_whitespace_only_text_parts_inplace has cognitive complexity 22 (threshold 15). Drivers by points: if/else 14, boolean chains 6, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/patch_adk.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a7993fa90c8f5b9684b61453ca250dfe2fb13cd27ddc903a30b600803f0c5ce"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools.apply_embed_and_create_artifact (cognitive 22): builtin_artifact_tools.apply_embed_and_create_artifact has cognitive complexity 22 (threshold 15). Drivers by points: if/else 14, boolean chains 5, error handling 2, ternaries 1 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":515}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6672cb1890bd91dd7b9c6c9c2025ad4f5a3ffe2439a5aa4858bb3cc101ab01d"}},{"ruleId":"D2","level":"warning","message":{"text":"index_search_tools._perform_search (cognitive 22): index_search_tools._perform_search has cognitive complexity 22 (threshold 15). Drivers by points: if/else 11, loops 8, ternaries 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/index_search_tools.py"},"region":{"startLine":468}}}],"partialFingerprints":{"codehealthFindingId/v1":"783fdf7378a342b1f7f13c75fa31d7980544a281da46737f51ce8b0ffb8469f8"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent.__init__ (cognitive 22): WebUIBackendComponent.__init__ has cognitive complexity 22 (threshold 15). Drivers by points: if/else 21, error handling 1 (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"964d89e030bf30914c7d8afe100c15a39a375847e5b6cc843bf070971b6dfa79"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts.get_latest_artifact (cognitive 22): artifacts.get_latest_artifact has cognitive complexity 22 (threshold 15). Drivers by points: if/else 11, error handling 6, boolean chains 5 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1294}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7c2df1a515a77a9551a98be94cba9ab0e40c200b7d8f22029b2b62023dfb3a0"}},{"ruleId":"D2","level":"warning","message":{"text":"projects.import_project (cognitive 22): projects.import_project has cognitive complexity 22 (threshold 15). Drivers by points: if/else 14, error handling 5, boolean chains 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":1011}}}],"partialFingerprints":{"codehealthFindingId/v1":"311af97500b3a423df8cb5e19e2c16c4c6a6e072b3cb16a8c0d4013b3a83b557"}},{"ruleId":"D2","level":"warning","message":{"text":"prompts.get_all_prompt_groups (cognitive 22): prompts.get_all_prompt_groups has cognitive complexity 22 (threshold 15). Drivers by points: ternaries 10, boolean chains 5, error handling 3, if/else 3, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"1def3aa73b518f2db04ab927e9581efc37b05b3e529f44fae81f74c868a57f6b"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._get_actual_event_purpose (cognitive 22): test_declarative_runner._get_actual_event_purpose has cognitive complexity 22 (threshold 15). Drivers by points: if/else 16, boolean chains 3, loops 3 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2515}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf6568f0aa358d03a024cf4d60db0410c670ba74749f48ee898439a0ef4e5c19"}},{"ruleId":"D2","level":"warning","message":{"text":"MemoryDiffReportGenerator._format_node_and_children (cognitive 22): MemoryDiffReportGenerator._format_node_and_children has cognitive complexity 22 (threshold 15). Drivers by points: if/else 17, loops 3, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/memory_monitor/diff_generator.py"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebcba8568e28e03b3fb6a7525ead4b1cfc974969c53b87ab4c2ad6a47e616cbc"}},{"ruleId":"D2","level":"warning","message":{"text":"create_cmd.setup_plugin_type_src (cognitive 21): create_cmd.setup_plugin_type_src has cognitive complexity 21 (threshold 15). Drivers by points: error handling 19, boolean chains 1, if/else 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/create_cmd.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"6dd0eabec57f64b5089891a35f6000eea96220075dc7cdbb6b96628335b4f7c4"}},{"ruleId":"D2","level":"warning","message":{"text":"tools_cmd.tools_to_json (cognitive 21): tools_cmd.tools_to_json has cognitive complexity 21 (threshold 15). Drivers by points: if/else 11, loops 6, error handling 3, boolean chains 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/tools_cmd.py"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef396a19c09049d853d7024dfc4000f9869eb4b90d151b4161596057c3807f02"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseProxyComponent._update_agent_card_for_proxy (cognitive 21): BaseProxyComponent._update_agent_card_for_proxy has cognitive complexity 21 (threshold 15). Drivers by points: if/else 13, boolean chains 4, loops 3, ternaries 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"06b0dba8c4cbb7f9270aa0abb4cd09f98eb5c2a8ed36b88f2d01ac0efb50993c"}},{"ruleId":"D2","level":"warning","message":{"text":"StructuredInvocationHandler._finalize_structured_invocation (cognitive 21): StructuredInvocationHandler._finalize_structured_invocation has cognitive complexity 21 (threshold 15). Drivers by points: if/else 16, ternaries 3, boolean chains 1, error handling 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":803}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2befe73a1ac4cd357434473300a0b21afae20cd6d33edfdacdd704a196968bd"}},{"ruleId":"D2","level":"warning","message":{"text":"image_tools.create_image_from_description (cognitive 21): image_tools.create_image_from_description has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12, error handling 7, boolean chains 1, ternaries 1 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a41bb5ff36b928895f785f5aa19048f4fa2a919273d632ec2f3df885c005059"}},{"ruleId":"D2","level":"warning","message":{"text":"LocalFileIdentityService.search_users (cognitive 21): LocalFileIdentityService.search_users has cognitive complexity 21 (threshold 15). Drivers by points: if/else 14, loops 4, ternaries 2, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/services/providers/local_file_identity_service.py"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"79934933f3e7b2c98c4d879e0bf1d6187662950f36e8351f8b14147fa802bb8a"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseGatewayComponent.submit_a2a_task (cognitive 21): BaseGatewayComponent.submit_a2a_task has cognitive complexity 21 (threshold 15). Drivers by points: if/else 16, error handling 3, boolean chains 2 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ba4409c6884963778789eb6d30268c8471c092b2b28e40c78de4178b9b3c09c"}},{"ruleId":"D2","level":"warning","message":{"text":"prompts.update_prompt_group (cognitive 21): prompts.update_prompt_group has cognitive complexity 21 (threshold 15). Drivers by points: if/else 8, boolean chains 5, ternaries 5, error handling 2, loops 1 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f42db424cebadc4d51d72f6ec0237fb1ad5e09d3015f407f38f74e03b307277"}},{"ruleId":"D2","level":"warning","message":{"text":"FeedbackService._publish_feedback_event (cognitive 21): FeedbackService._publish_feedback_event has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, error handling 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/feedback_service.py"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2c1cbdcc1c58b6a70ec7592b396353fead042c38466c4640a3249aa5938a54d"}},{"ruleId":"D2","level":"warning","message":{"text":"SessionService.get_session_messages_from_tasks (cognitive 21): SessionService.get_session_messages_from_tasks has cognitive complexity 21 (threshold 15). Drivers by points: ternaries 10, if/else 8, loops 3 (nesting depth added 13). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/session_service.py"},"region":{"startLine":608}}}],"partialFingerprints":{"codehealthFindingId/v1":"8864b7b977b93d3d08ce115fd5091625214da68a9b3a7e1c34164f3355262636"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor._handle_control_node_child_completion (cognitive 21): DAGExecutor._handle_control_node_child_completion has cognitive complexity 21 (threshold 15). Drivers by points: if/else 17, ternaries 2, boolean chains 1, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":1161}}}],"partialFingerprints":{"codehealthFindingId/v1":"3de08c009327c7630892a5e6ba63fdf53362eb1a4af5f16a6ca6f56979355bef"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_agent_response (cognitive 21): event_handlers.handle_agent_response has cognitive complexity 21 (threshold 15). Drivers by points: if/else 11, error handling 4, ternaries 3, loops 2, boolean chains 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/protocol/event_handlers.py"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"23a85da3465de12cabd61e889ac4b449ab075e526c7b636bb12d400f7cb4a27d"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_downstream_auth_headers (cognitive 21): test_declarative_runner._assert_downstream_auth_headers has cognitive complexity 21 (threshold 15). Drivers by points: if/else 20, loops 1 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2377}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bcebfec737f1df55c9c4d692a5b14446934f565647d2e94c1190fd1c27ef7f0"}},{"ruleId":"D2","level":"warning","message":{"text":"test_stress._precompile_llm_responses (cognitive 21): test_stress._precompile_llm_responses has cognitive complexity 21 (threshold 15). Drivers by points: if/else 12, loops 9 (nesting depth added 15). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/system/test_stress.py"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"1412402f69548f3e272e1a0c196df182e4ca6729d8f69b3a0ec0cd27ab909d3d"}},{"ruleId":"D2","level":"warning","message":{"text":"agent_cmd.create_agent_config (cognitive 20): agent_cmd.create_agent_config has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, boolean chains 5, error handling 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/agent_cmd.py"},"region":{"startLine":339}}}],"partialFingerprints":{"codehealthFindingId/v1":"15bf522e0e9361981293718fd31d76b3954381a8e0be2410377850174fd6f216"}},{"ruleId":"D2","level":"warning","message":{"text":"PluginScraper.install_plugin_cli (cognitive 20): PluginScraper.install_plugin_cli has cognitive complexity 20 (threshold 15). Drivers by points: if/else 12, error handling 4, boolean chains 2, ternaries 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ea255ca4821e467368dc07f15d24912df87a3214a067ec84623b56332a866bc"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_sam_event (cognitive 20): event_handlers.handle_sam_event has cognitive complexity 20 (threshold 15). Drivers by points: if/else 16, error handling 3, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":2902}}}],"partialFingerprints":{"codehealthFindingId/v1":"a57ef005aaed65a2b605c7e990f804c0976dffc59adf2ca38c7277c2a4acaaa2"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent._publish_status_update_with_buffer_flush (cognitive 20): SamAgentComponent._publish_status_update_with_buffer_flush has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, boolean chains 3, loops 2, error handling 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1909}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0d7eb7f017dfc610ef4b260f28f0739abb545283f940764878b8eac9d711e98"}},{"ruleId":"D2","level":"warning","message":{"text":"resolver._log_data_state (cognitive 20): resolver._log_data_state has cognitive complexity 20 (threshold 15). Drivers by points: ternaries 12, if/else 5, error handling 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"88cdfc44f2339bfede75172b196a576392ce3925c66c79283d212e6592852ea8"}},{"ruleId":"D2","level":"warning","message":{"text":"initializer.initialize (cognitive 20): initializer.initialize has cognitive complexity 20 (threshold 15). Drivers by points: error handling 11, if/else 7, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/initializer.py"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bdc47ee59eb48a669ec0767294a762426b68bc0a3bd2f0e31c90f47a63f2619"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts._resolve_storage_context (cognitive 20): artifacts._resolve_storage_context has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, error handling 4, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5d710fd6d374b3fe28eed73c86022796441e79ee84f3f05b8ac14e337dea8ba"}},{"ruleId":"D2","level":"warning","message":{"text":"IndexingTaskService._rebuild_index_async (cognitive 20): IndexingTaskService._rebuild_index_async has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11, error handling 8, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"b95b6be573aefd025c123680d90a9a419aeef91e1b72c8aa8344c8540664229a"}},{"ruleId":"D2","level":"warning","message":{"text":"ShareService.add_share_users (cognitive 20): ShareService.add_share_users has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, error handling 3, boolean chains 1, loops 1 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":764}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7fdf294117f6ce569c3a9d668bb76b758d4328c2877321b4f6a40712c04e847"}},{"ruleId":"D2","level":"warning","message":{"text":"task_builder_assistant._validate_task_updates (cognitive 20): task_builder_assistant._validate_task_updates has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, error handling 3, boolean chains 2, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bd2681f68ff6b329d254d29e903cb25cea7f3653d7c1e5a5ff8d1d8084996a0"}},{"ruleId":"D2","level":"warning","message":{"text":"ModelConfigService.get_models_from_provider_by_id (cognitive 20): ModelConfigService.get_models_from_provider_by_id has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11, boolean chains 6, loops 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_config_service.py"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"69fb12c3a2fa94dd78d42e7b79ba784f3fea0aad8283937f8405388e4f1ed15c"}},{"ruleId":"D2","level":"warning","message":{"text":"WorkflowExecutorComponent._execute_exit_handlers (cognitive 20): WorkflowExecutorComponent._execute_exit_handlers has cognitive complexity 20 (threshold 15). Drivers by points: if/else 11, boolean chains 3, ternaries 3, error handling 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":458}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d80885f373cde76fe187c165d2705656cec863904418b1787f51a72958fce84"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor.handle_node_completion (cognitive 20): DAGExecutor.handle_node_completion has cognitive complexity 20 (threshold 15). Drivers by points: if/else 14, loops 3, ternaries 2, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":1063}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb3ac3385a6f7ddf6f042fe0b20df228dd923e3aa6dfa24ef0be8e385ef0bfcb"}},{"ruleId":"D2","level":"warning","message":{"text":"conditional._eval_node (cognitive 20): conditional._eval_node has cognitive complexity 20 (threshold 15). Drivers by points: if/else 17, loops 2, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/flow_control/conditional.py"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9e0e053e1b2ae80cf12e67e793a8322527ca2cf3ed125fc8384e056dbdbbcfb"}},{"ruleId":"D2","level":"warning","message":{"text":"conftest.mcp_server_harness (cognitive 20): conftest.mcp_server_harness has cognitive complexity 20 (threshold 15). Drivers by points: if/else 13, error handling 6, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/conftest.py"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4b4d912700764eb1385efe55d5225e1a64054789883312fc51da2a03510f67c"}},{"ruleId":"D2","level":"warning","message":{"text":"TestGatewayComponent._translate_external_input (cognitive 20): TestGatewayComponent._translate_external_input has cognitive complexity 20 (threshold 15). Drivers by points: if/else 15, boolean chains 3, loops 1, ternaries 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/gateway_interface/component.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"36e0cf0a05835dc3e8b5d391a5a02c9663a60274d2d6d94d8a0bd49a731024ab"}},{"ruleId":"D2","level":"warning","message":{"text":"TestGatewayComponent.clear_captured_outputs (cognitive 20): TestGatewayComponent.clear_captured_outputs has cognitive complexity 20 (threshold 15). Drivers by points: error handling 8, loops 8, if/else 4 (nesting depth added 12). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/gateway_interface/component.py"},"region":{"startLine":465}}}],"partialFingerprints":{"codehealthFindingId/v1":"723d9fc4e1d0c0a80138407df49ec0be2511a64b443f82c56fe9ab45dcfb9408"}},{"ruleId":"D2","level":"warning","message":{"text":"run_cmd.run (cognitive 19): run_cmd.run has cognitive complexity 19 (threshold 15). Drivers by points: if/else 14, error handling 2, loops 2, boolean chains 1 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/run_cmd.py"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c0cecead66b2b944d54451c4a1ccfcbe8f2f0b5c7d6bab263a208446b639021"}},{"ruleId":"D2","level":"warning","message":{"text":"CSSProcessor.inline_modal_assets (cognitive 19): CSSProcessor.inline_modal_assets has cognitive complexity 19 (threshold 15). Drivers by points: if/else 18, error handling 1 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_generator.py"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b9fc57f7614aee1e134ef1f56b1a9ca49a38a30649b19ead3ff8a8a3a6f98a1"}},{"ruleId":"D2","level":"warning","message":{"text":"runner._schedule_finalization (cognitive 19): runner._schedule_finalization has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12, boolean chains 4, ternaries 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1475}}}],"partialFingerprints":{"codehealthFindingId/v1":"28d40c8cf2ae92b566778192838c05e4439b55bdcabe4f304680160d88ebfc89"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent._remove_tool (cognitive 19): SamAgentComponent._remove_tool has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 2, boolean chains 1 (nesting depth added 11). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1176}}}],"partialFingerprints":{"codehealthFindingId/v1":"30b927a87da593f02f25205ffc843bf0bcca63b5919d2c02b7e4d865a71e7e9c"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._extract_text_from_llm_response (cognitive 19): deep_research_tools._extract_text_from_llm_response has cognitive complexity 19 (threshold 15). Drivers by points: if/else 11, boolean chains 8 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"49d73188eb99052fa40556ddbea52eaad26433ceede0d1fbf114d3d3dc3539f2"}},{"ruleId":"D2","level":"warning","message":{"text":"DynamicTool.run_async (cognitive 19): DynamicTool.run_async has cognitive complexity 19 (threshold 15). Drivers by points: if/else 14, boolean chains 2, ternaries 2, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/dynamic_tool.py"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"608fc7421221f11cb82ae31fc9b2efe4f8fe42ef08788ee5876f4f1773b4b764"}},{"ruleId":"D2","level":"warning","message":{"text":"index_search_tools._validate_and_extract_zip (cognitive 19): index_search_tools._validate_and_extract_zip has cognitive complexity 19 (threshold 15). Drivers by points: if/else 16, loops 2, boolean chains 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/index_search_tools.py"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"bae3886e548bd1bfe2050c8f96b07aacb09ed5e9348d34a195e920e606fc1364"}},{"ruleId":"D2","level":"warning","message":{"text":"artifact.prepare_file_part_for_publishing (cognitive 19): artifact.prepare_file_part_for_publishing has cognitive complexity 19 (threshold 15). Drivers by points: if/else 15, error handling 3, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/artifact.py"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"d42c455a437c27f945d0886fa490a330d8abc09df9671ccb228889685994ff12"}},{"ruleId":"D2","level":"warning","message":{"text":"resolver.resolve_embeds_recursively_in_string (cognitive 19): resolver.resolve_embeds_recursively_in_string has cognitive complexity 19 (threshold 15). Drivers by points: if/else 12, boolean chains 4, error handling 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":701}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a9f4c978b0787cdc4e7f5ba70c5859870ffc13d162464b6e43bf7a2a49d8f12"}},{"ruleId":"D2","level":"warning","message":{"text":"SSEManager.close_all_for_task (cognitive 19): SSEManager.close_all_for_task has cognitive complexity 19 (threshold 15). Drivers by points: error handling 9, if/else 8, loops 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/sse_manager.py"},"region":{"startLine":596}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2ff6346cd76d03ef9042afa26c52dfde0f1b6dfbcc0432b55c1d45e479b3a21"}},{"ruleId":"D2","level":"warning","message":{"text":"DeclarativeAgentExecutor.execute (cognitive 19): DeclarativeAgentExecutor.execute has cognitive complexity 19 (threshold 15). Drivers by points: if/else 14, boolean chains 2, error handling 2, loops 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/test_support/a2a_agent/executor.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"c692b55247f749be69f11ebcacf14c1d66cf0283c6ac47717f10504f12d29536"}},{"ruleId":"D2","level":"warning","message":{"text":"catalog_cmd.catalog (cognitive 18): catalog_cmd.catalog has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, error handling 3, boolean chains 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/catalog_cmd.py"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"51ad2bf5a76aeb252825295102dc1294bc1fcb339bd75e32f235fe4dfa8aa481"}},{"ruleId":"D2","level":"warning","message":{"text":"MessageAssembler._process_status_update (cognitive 18): MessageAssembler._process_status_update has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, ternaries 3, loops 1 (nesting depth added 10). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/task_cmd/message_assembler.py"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"a99e95b0a0d990f55135f42d712ba879384b1781e424850c38db26ca47caa599"}},{"ruleId":"D2","level":"warning","message":{"text":"SAMRestClient._invoke_async (cognitive 18): SAMRestClient._invoke_async has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9, error handling 7, loops 1, ternaries 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/sam-rest-client/src/sam_rest_client/client.py"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"76e79b9ecee44b21d95fe554378baa9fc756f4fd22834cd266f2e0bd2a924eb8"}},{"ruleId":"D2","level":"warning","message":{"text":"MCPContentProcessor._create_parsed_data_summary (cognitive 18): MCPContentProcessor._create_parsed_data_summary has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, ternaries 6, boolean chains 2 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/mcp_content_processor.py"},"region":{"startLine":566}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5325592c004e0b2d1fbf066aaffb83d0522042b86dbef8c9a3d3440b3b4ef5d"}},{"ruleId":"D2","level":"warning","message":{"text":"lite_llm.calculate_content_tokens (cognitive 18): lite_llm.calculate_content_tokens has cognitive complexity 18 (threshold 15). Drivers by points: if/else 8, ternaries 6, error handling 2, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":434}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d91b63b19dd900ed798d0024307828c83de5d213610dcb55aa9ed3803f91314"}},{"ruleId":"D2","level":"warning","message":{"text":"FencedBlockStreamParser._process_in_block (cognitive 18): FencedBlockStreamParser._process_in_block has cognitive complexity 18 (threshold 15). Drivers by points: if/else 17, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/stream_parser.py"},"region":{"startLine":351}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9589b6c325a5b80d688bcd5c45caa759cdfbe674a552e5e2e636a64dd44373e"}},{"ruleId":"D2","level":"warning","message":{"text":"StructuredInvocationHandler._return_structured_result (cognitive 18): StructuredInvocationHandler._return_structured_result has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, error handling 3, ternaries 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":1213}}}],"partialFingerprints":{"codehealthFindingId/v1":"54f43191c633215e3dcbd9a9f100bc901ab9be251ddd27a0edcea4f381db28c6"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_artifact_tools._internal_create_artifact (cognitive 18): builtin_artifact_tools._internal_create_artifact has cognitive complexity 18 (threshold 15). Drivers by points: if/else 12, error handling 5, ternaries 1 (nesting depth added 3). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"b22c20d4c5609a5ce57ecef0989a64174a6a1eeedfbad512c25c3b9f39439128"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._parse_json_from_llm_response (cognitive 18): deep_research_tools._parse_json_from_llm_response has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, error handling 6, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"7795e40d602766c8dbcbadf0aefd923ca352a7d0ae057bec34ee90030d7e5069"}},{"ruleId":"D2","level":"warning","message":{"text":"20251023_add_soft_delete_and_search._upgrade_standard (cognitive 18): 20251023_add_soft_delete_and_search._upgrade_standard has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, error handling 8 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"904754aca3eefc79c28247d6c216ab800bf0b5ecaf10a4be6cd78768aacda441"}},{"ruleId":"D2","level":"warning","message":{"text":"20251023_add_soft_delete_and_search._upgrade_mysql (cognitive 18): 20251023_add_soft_delete_and_search._upgrade_mysql has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, error handling 8 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4ee0fdb1d0f1e1c6b5ae6ef228a997e7ea6b31968bee0a60295aa39047bf0a0"}},{"ruleId":"D2","level":"warning","message":{"text":"20251023_add_soft_delete_and_search.downgrade (cognitive 18): 20251023_add_soft_delete_and_search.downgrade has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, error handling 8 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"705d7dabf3015bf999aff7bb9c3c277125386d8b4369a3b3966942b674bc1d04"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._ensure_scheduler_result_flow_is_running (cognitive 18): WebUIBackendComponent._ensure_scheduler_result_flow_is_running has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, error handling 4, boolean chains 3 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":808}}}],"partialFingerprints":{"codehealthFindingId/v1":"0578cba30b3c4c2085b60b17f960955feabe46818ae0d37dfeb38c36647bf3a4"}},{"ruleId":"D2","level":"warning","message":{"text":"SSEEventBufferRepository.buffer_events_batch (cognitive 18): SSEEventBufferRepository.buffer_events_batch has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9, boolean chains 3, loops 3, error handling 2, ternaries 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/sse_event_buffer_repository.py"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e0aad64c231e04112b5069e073293fc90414ca68ac54a5c7dfe99fd58d1084b"}},{"ruleId":"D2","level":"warning","message":{"text":"artifacts.get_specific_artifact_version (cognitive 18): artifacts.get_specific_artifact_version has cognitive complexity 18 (threshold 15). Drivers by points: error handling 8, if/else 8, boolean chains 2 (nesting depth added 3). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1506}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd9b53430cf20bfda41557415aa1d5c34ba520e3ef92d0f6667649b3e809b6f1"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectService.create_project (cognitive 18): ProjectService.create_project has cognitive complexity 18 (threshold 15). Drivers by points: if/else 9, ternaries 5, boolean chains 2, loops 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"c453e1b5d14520948d41e17f193bb31355ecb4d6761531008906e10b463cb0b8"}},{"ruleId":"D2","level":"warning","message":{"text":"ShareService.fork_shared_chat (cognitive 18): ShareService.fork_shared_chat has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, error handling 4, boolean chains 3, loops 1 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":1010}}}],"partialFingerprints":{"codehealthFindingId/v1":"9823dd55a76555e44e481ebbf9b098b3a3cc432ed57218e84f5500ccff1b38ed"}},{"ruleId":"D2","level":"warning","message":{"text":"task_builder_assistant._validate_inline_component (cognitive 18): task_builder_assistant._validate_inline_component has cognitive complexity 18 (threshold 15). Drivers by points: if/else 14, boolean chains 2, loops 1, ternaries 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"008c7deb1a42db344fa4a559e5ce823b3796029f6b0eed35973be2aebfd7e14d"}},{"ruleId":"D2","level":"warning","message":{"text":"AgentCaller._construct_agent_message (cognitive 18): AgentCaller._construct_agent_message has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, boolean chains 2, error handling 2, loops 2, ternaries 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/agent_caller.py"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"c393d3b4f87a675bbdfbb8ee93fd0ea0910f8750a2da26ab03efef37b8cc67f3"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_task_request (cognitive 18): event_handlers.handle_task_request has cognitive complexity 18 (threshold 15). Drivers by points: error handling 6, if/else 5, ternaries 5, boolean chains 1, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/protocol/event_handlers.py"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"7161a5542b4982b209b4c8d59456b5494e2ab2b51d3925280d246454c350ac35"}},{"ruleId":"D2","level":"warning","message":{"text":"TestLLMServer._generate_stream_chunks (cognitive 18): TestLLMServer._generate_stream_chunks has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, loops 4, boolean chains 2, error handling 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/llm_server/server.py"},"region":{"startLine":358}}}],"partialFingerprints":{"codehealthFindingId/v1":"b148970bebd856bbbc63406878739c61a72bcbba9b7c74322f44e2459b98fd6f"}},{"ruleId":"D2","level":"warning","message":{"text":"PluginScraper.clear_git_cache (cognitive 17): PluginScraper.clear_git_cache has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, loops 4, boolean chains 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"67869da1f3797fce60297cf280d2dceb7468e9b50524c67ee5897c260ef28fc6"}},{"ruleId":"D2","level":"warning","message":{"text":"DynamicModelProvider._ensure_config_listener_flow_is_running (cognitive 17): DynamicModelProvider._ensure_config_listener_flow_is_running has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, error handling 4, boolean chains 3 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/dynamic_model_provider.py"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c8f53a046c3333294c5f2a6f55432d492580fb7f49e835a05a5d8efb99de604"}},{"ruleId":"D2","level":"warning","message":{"text":"services.create_session_service_from_config (cognitive 17): services.create_session_service_from_config has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, boolean chains 4, error handling 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":579}}}],"partialFingerprints":{"codehealthFindingId/v1":"122e9f5e57f024a7b365de785e94ededf8f376ecfc4c3f3e401df331a311b219"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers.handle_agent_card_message (cognitive 17): event_handlers.handle_agent_card_message has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, loops 3, error handling 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1824}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b00bfa829737840eeb25c129e448a3557036d59270b8aec6aa6b7fae94f6a3a"}},{"ruleId":"D2","level":"warning","message":{"text":"SamAgentComponent.finalize_task_error (cognitive 17): SamAgentComponent.finalize_task_error has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, error handling 6, boolean chains 1 (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":3021}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5cfa4e7d4edd3a6a288d768d8c317772e99f8dcad22e6a71d91ecae277c447b"}},{"ruleId":"D2","level":"warning","message":{"text":"audio_tools.text_to_speech (cognitive 17): audio_tools.text_to_speech has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, boolean chains 3, error handling 3. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":606}}}],"partialFingerprints":{"codehealthFindingId/v1":"315ee4d4d9f2a105a8e273ae1784a25ae008117b5fa6240ab17df669fc991271"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._fetch_selected_sources (cognitive 17): deep_research_tools._fetch_selected_sources has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, ternaries 5, loops 2, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1562}}}],"partialFingerprints":{"codehealthFindingId/v1":"4732f9f181041d3ff91e355ba35ecd6e1abca94ab09b4044a6d3d6e4c14f8980"}},{"ruleId":"D2","level":"warning","message":{"text":"OAuth2RetryClient._execute_with_retry (cognitive 17): OAuth2RetryClient._execute_with_retry has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, error handling 6, loops 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/oauth/oauth_client.py"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3c4389b346a50d149b2fa1e894c0dd5b9e77bdeee90942dd2883d097217e378"}},{"ruleId":"D2","level":"warning","message":{"text":"modifiers._parse_modifier_chain (cognitive 17): modifiers._parse_modifier_chain has cognitive complexity 17 (threshold 15). Drivers by points: if/else 15, boolean chains 1, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/modifiers.py"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"277a9934adbdb75a943d5ea9055b4fa13b7a028e39b90caca6b26d968d334ec1"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._ensure_visualization_flow_is_running (cognitive 17): WebUIBackendComponent._ensure_visualization_flow_is_running has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, error handling 4, boolean chains 3 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":509}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd017ddcfd15bdc4143bc9d617cb0e3041185729a2ef0da837524ac612aaf23c"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._ensure_task_logger_flow_is_running (cognitive 17): WebUIBackendComponent._ensure_task_logger_flow_is_running has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, error handling 4, boolean chains 3 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":693}}}],"partialFingerprints":{"codehealthFindingId/v1":"543d0b16697d8e95b8fbfab4e95edafb7b8f094293ffc9fc629c550827c38471"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._scheduler_result_loop (cognitive 17): WebUIBackendComponent._scheduler_result_loop has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8, error handling 6, boolean chains 2, loops 1 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":899}}}],"partialFingerprints":{"codehealthFindingId/v1":"367c43592b2a9286570d81e91bd86497d499fd580e6077dd3be62b84c8f79911"}},{"ruleId":"D2","level":"warning","message":{"text":"WebUIBackendComponent._remove_visualization_subscription_nolock (cognitive 17): WebUIBackendComponent._remove_visualization_subscription_nolock has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 2, error handling 2 (nesting depth added 4). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1414}}}],"partialFingerprints":{"codehealthFindingId/v1":"f100723980053e4516d1bc4780009f57e7a449901d4296253b462f3a2b1c9136"}},{"ruleId":"D2","level":"warning","message":{"text":"feedback.get_feedback (cognitive 17): feedback.get_feedback has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, error handling 5, boolean chains 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/feedback.py"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"be0eabbc383fb876b4aac7b9ff386c236e0d22fa402cb4f5c74767f4e73fcd55"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectService.update_project (cognitive 17): ProjectService.update_project has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, boolean chains 4, ternaries 4 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":923}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebd6b079575afba4d014367366e18ed183c4359a3026527d42e797ac3ba5438f"}},{"ruleId":"D2","level":"warning","message":{"text":"SessionService.move_session_to_project (cognitive 17): SessionService.move_session_to_project has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, error handling 4, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/session_service.py"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf9774d3a84420a33f7b5ab302e68339b2b1dfc7382d7b2435a566d69d3ca80b"}},{"ruleId":"D2","level":"warning","message":{"text":"TaskLoggerService._infer_event_details (cognitive 17): TaskLoggerService._infer_event_details has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, boolean chains 3, ternaries 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":288}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf6a3a5f460a2c25375e9c52b01046c7d9ce672eabafdc5a43c495f7e1e6fb2b"}},{"ruleId":"D2","level":"warning","message":{"text":"SyntheticAuthConfig.from_component (cognitive 17): SyntheticAuthConfig.from_component has cognitive complexity 17 (threshold 15). Drivers by points: if/else 11, boolean chains 4, error handling 2 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/shared/auth/synthetic.py"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6460765aa2d652337f3ffa4300a2c9f99f9b621185b9a9f98d71203c41807dc"}},{"ruleId":"D2","level":"warning","message":{"text":"DAGExecutor._get_inherited_branch (cognitive 17): DAGExecutor._get_inherited_branch has cognitive complexity 17 (threshold 15). Drivers by points: if/else 12, loops 4, boolean chains 1 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fc4974ee9b3870fb27dea608ca55cec84f61cc6b086ab43afea54c1c7e22c0e"}},{"ruleId":"D2","level":"warning","message":{"text":"test_concurrent_sessions_with_auth.test_session_isolation_under_load (cognitive 17): test_concurrent_sessions_with_auth.test_session_isolation_under_load has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, loops 6, boolean chains 2 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/apis/persistence/test_concurrent_sessions_with_auth.py"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"7889375cfb3928f81892eb9908895839b1f47c5e59635fa5975e9c11a5c4262d"}},{"ruleId":"D2","level":"warning","message":{"text":"StressSSEClient.subscribe_to_task (cognitive 17): StressSSEClient.subscribe_to_task has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, error handling 3, loops 3, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/stress/harness/sse_client.py"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"db94e434ed00585d5c984c7e357b670bd3ef9796fdd128d2c47eef5a8604a430"}},{"ruleId":"D2","level":"warning","message":{"text":"reporter.create_comparison_report (cognitive 17): reporter.create_comparison_report has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9, loops 8 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/stress/metrics/reporter.py"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"57f238cea0b1181743a8fee06f4f6d1640ccf01c88ebcc251bb4cbda652492f2"}},{"ruleId":"D2","level":"warning","message":{"text":"env_step.create_env_file (cognitive 16): env_step.create_env_file has cognitive complexity 16 (threshold 15). Drivers by points: if/else 7, boolean chains 4, loops 2, ternaries 2, error handling 1 (nesting depth added 2). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/env_step.py"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"774278b2829a0ceb6cc93362595943afc45f7fda7a60310ea465536f8c59b2b3"}},{"ruleId":"D2","level":"warning","message":{"text":"FilesystemArtifactService.list_artifact_keys (cognitive 16): FilesystemArtifactService.list_artifact_keys has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, error handling 4, loops 4 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py"},"region":{"startLine":275}}}],"partialFingerprints":{"codehealthFindingId/v1":"be0a1dbf2b97f7dc42acb072d49073567ebf117299fe59a5bda3ec0c37ccf17e"}},{"ruleId":"D2","level":"warning","message":{"text":"callbacks.auto_continue_on_max_tokens_callback (cognitive 16): callbacks.auto_continue_on_max_tokens_callback has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, boolean chains 5 (nesting depth added 3). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2747}}}],"partialFingerprints":{"codehealthFindingId/v1":"900dcee41e3c8e49f756d38a7fb42f3e8087f9c9240f8e6094c7809a85461e57"}},{"ruleId":"D2","level":"warning","message":{"text":"patch_adk._patch_get_contents (cognitive 16): patch_adk._patch_get_contents has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/patch_adk.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"17b365460037d149f9c084e425cb006e79509b953029ee71688b022c26746890"}},{"ruleId":"D2","level":"warning","message":{"text":"builtin_data_analysis_tools.create_chart_from_plotly_config (cognitive 16): builtin_data_analysis_tools.create_chart_from_plotly_config has cognitive complexity 16 (threshold 15). Drivers by points: error handling 9, if/else 7 (nesting depth added 3). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"8431f07a8da5971f8054360b187920f9fa5b9455df5b24ca149ee6f2898f2512"}},{"ruleId":"D2","level":"warning","message":{"text":"deep_research_tools._prepare_findings_for_report (cognitive 16): deep_research_tools._prepare_findings_for_report has cognitive complexity 16 (threshold 15). Drivers by points: if/else 7, loops 4, ternaries 3, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1655}}}],"partialFingerprints":{"codehealthFindingId/v1":"3282834f8784425268163aaec860ef0f2fe94e6b2579c507a65c5ed1b42ea228"}},{"ruleId":"D2","level":"warning","message":{"text":"converter._parse_string_to_list_of_dicts (cognitive 16): converter._parse_string_to_list_of_dicts has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, boolean chains 4, error handling 4 (nesting depth added 2). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/converter.py"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"e912235c320dbc7406f34dd38078103c2701571c6aafcd4e8f23d14216ee2583"}},{"ruleId":"D2","level":"warning","message":{"text":"template_resolver.resolve_template_blocks_in_string (cognitive 16): template_resolver.resolve_template_blocks_in_string has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, ternaries 4, error handling 2, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/templates/template_resolver.py"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"48f091d2f99843bc7aeac3cccf967c3d0f387a81c04271f7c242d92b691661ae"}},{"ruleId":"D2","level":"warning","message":{"text":"GenericGatewayComponent.get_user_identity (cognitive 16): GenericGatewayComponent.get_user_identity has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, error handling 2 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/generic/component.py"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4375e67c34f9215af06ce9c80bf2a64955f7c7f01ca0bd90b2c9b3531a3215f"}},{"ruleId":"D2","level":"warning","message":{"text":"GenericGatewayComponent._task_to_sam_error (cognitive 16): GenericGatewayComponent._task_to_sam_error has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 2, loops 2 (nesting depth added 7). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/generic/component.py"},"region":{"startLine":1100}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8d227dde968d46003625b6f1006ab6582f158a9af561de083753f8ec8416e2d"}},{"ruleId":"D2","level":"warning","message":{"text":"main.http_exception_handler (cognitive 16): main.http_exception_handler has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/main.py"},"region":{"startLine":393}}}],"partialFingerprints":{"codehealthFindingId/v1":"a86f53862d1a2cb3f9105465a8842d0a638cdb6be39c87b50a8f52c0ee89bf7b"}},{"ruleId":"D2","level":"warning","message":{"text":"AudioService.generate_speech_polly (cognitive 16): AudioService.generate_speech_polly has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, error handling 6, boolean chains 2 (nesting depth added 1). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":807}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3a0b75405c53ea6c34fdeb08dbdace5330ea3ddd7434a0ee392b6a04667948a"}},{"ruleId":"D2","level":"warning","message":{"text":"BackgroundTaskMonitor.check_timeouts (cognitive 16): BackgroundTaskMonitor.check_timeouts has cognitive complexity 16 (threshold 15). Drivers by points: if/else 9, error handling 3, boolean chains 2, loops 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddc73c9765f09f12af7e6b4f6a4bb4a52e68aa4fa0d47d2d5a5c9967753df339"}},{"ruleId":"D2","level":"warning","message":{"text":"ProjectService.export_project_as_zip (cognitive 16): ProjectService.export_project_as_zip has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6, boolean chains 4, error handling 3, loops 2, ternaries 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":1059}}}],"partialFingerprints":{"codehealthFindingId/v1":"218bb91c3674e1c395c59e0e843ba1e24d2a0ffee0a8614aa89650d298984bd7"}},{"ruleId":"D2","level":"warning","message":{"text":"NotificationService.notify_execution_complete (cognitive 16): NotificationService.notify_execution_complete has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, error handling 4, boolean chains 3, loops 1 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/notification_service.py"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"5da5aec5decd2f0765d1613342eb0acd72dda477f7d6de4993c95ba49b5dd6cf"}},{"ruleId":"D2","level":"warning","message":{"text":"model_configuration_seeder._infer_provider (cognitive 16): model_configuration_seeder._infer_provider has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, boolean chains 6, error handling 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/services/model_configuration_seeder.py"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e174d88ca63762b49cd4e116873ecbcb013a1d3f2af9ff979372ef3f9935ab3"}},{"ruleId":"D2","level":"warning","message":{"text":"event_handlers._extract_workflow_input (cognitive 16): event_handlers._extract_workflow_input has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8, boolean chains 3, error handling 3, loops 2 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/protocol/event_handlers.py"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"71352f6a807a6a46bbce2c5afaf5041e340f2d1ced9dcc6e0656648ee1c86aff"}},{"ruleId":"D2","level":"warning","message":{"text":"conftest.a2a_message_validator (cognitive 16): conftest.a2a_message_validator has cognitive complexity 16 (threshold 15). Drivers by points: if/else 10, loops 5, boolean chains 1 (nesting depth added 8). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/conftest.py"},"region":{"startLine":2484}}}],"partialFingerprints":{"codehealthFindingId/v1":"875db9092f48a02274f7c9383f67533de7f2dc3279ac4ee3979273329747fa4e"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_oauth_token_requests (cognitive 16): test_declarative_runner._assert_oauth_token_requests has cognitive complexity 16 (threshold 15). Drivers by points: if/else 9, loops 4, error handling 3 (nesting depth added 9). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2441}}}],"partialFingerprints":{"codehealthFindingId/v1":"c803c8cad778650bc37c627e7f4974e40f18079e36bc6c1c8474de358c3e6075"}},{"ruleId":"D2","level":"warning","message":{"text":"test_declarative_runner._assert_dict_subset (cognitive 16): test_declarative_runner._assert_dict_subset has cognitive complexity 16 (threshold 15). Drivers by points: if/else 5, boolean chains 4, loops 4, ternaries 3 (nesting depth added 6). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_declarative/test_declarative_runner.py"},"region":{"startLine":2908}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a9b1aa8e6b7e70d355535a5923a799e100b7354e1ce763fe54ce0ff5cf512bf"}},{"ruleId":"D2","level":"warning","message":{"text":"test_helpers.extract_outputs_from_event_list (cognitive 16): test_helpers.extract_outputs_from_event_list has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, boolean chains 2, ternaries 2, loops 1 (nesting depth added 5). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/integration/scenarios_programmatic/test_helpers.py"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3ec782613245c964b2c529a53aa7d19e92b987d23e9735a85fb7e68d0823931"}},{"ruleId":"D2","level":"warning","message":{"text":"A2AMessageValidator.validate_message (cognitive 16): A2AMessageValidator.validate_message has cognitive complexity 16 (threshold 15). Drivers by points: if/else 12, boolean chains 2, error handling 2 (nesting depth added 4). To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"tests/sam-test-infrastructure/src/sam_test_infrastructure/a2a_validator/validator.py"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"d076b4b34030cfea08491a5be31d1427a4dee8059e3bacd6b442de956e234517"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sac/component.py: FileTooLong \u2014 2960 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4cf0e51deebf1487d692b1d22d364d0a6aa60c7f0214c7758b1f906324890394"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: protocol/event_handlers.py: FileTooLong \u2014 2228 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5c756301c17122740934a469d1b0031a480127bbd166bcbdb45a34e7e91b7f9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: http_sse/component.py: FileTooLong \u2014 1956 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f30c5c8e433acd6c16835f906307913c24d6b572e1842430a75631eeeea4677"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tools/builtin_artifact_tools.py: FileTooLong \u2014 1876 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3034c26005bbd31049cecf864e7d74a7fa85910dde52a72af67c0aa20ed1c121"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: base/component.py: FileTooLong \u2014 1778 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a75280e44944462fe6cf7f6fcb175e304dd1639fbad06a9891bec76dfe2a151f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: adk/callbacks.py: FileTooLong \u2014 1442 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e7bf69d0abecfc25cc8cf9f1a8072781c5ce88d5acebab072837939484f2c1b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: a2a/component.py: FileTooLong \u2014 1389 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"16f4a7db05fca51f0b6a9a5fadbbce03db27c940c4565aecee229b8a2c8ce89d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/artifacts.py: FileTooLong \u2014 1360 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fbc8e892487d5321ae3a94d70ab89a25fc442eb823455f7d43361c193390447"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/tasks.py: FileTooLong \u2014 1303 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1ee3bfb6130e1678b0c1c182ffa14023ae05a811eb8d8b02ad39b2af5f2eb1c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/sessions.py: FileTooLong \u2014 1250 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3237d04b4a3097c76333154838463aaba5f4c96e62ee64a971930e4cff069244"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: utils/artifact_helpers.py: FileTooLong \u2014 1212 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/artifact_helpers.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1552dd6e5784232d4e92956c16ffb5421ae4db5d57c75fcad275cee6f427fab0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SamAgentComponent: TooManyMethods \u2014 72 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4d7d08918ed5c98f15827b51a35e15c7d53ce9ca34e271e1993bd90b9c4303d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tools/deep_research_tools.py: FileTooLong \u2014 1179 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f09be0fee9eadbb8001ce780ed9fb56be0704b73322fb844fd7826a0c1c6deaa"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: adk/runner.py: FileTooLong \u2014 1118 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f5858008de42e4298ffb4f915d2c78cbf01b301be1b36a6628017e13da1b6a9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tools/audio_tools.py: FileTooLong \u2014 1060 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8a93b3528eb091dfa24a3c4b6542f54b11a905d399dcbe60611a842278f5d48"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: models/lite_llm.py: FileTooLong \u2014 969 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7b54ff2030608e43673cf40ad6876526635cae1d7280822e2e7972d89f8f4b7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/prompts.py: FileTooLong \u2014 937 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e377c34971c6ee0025d2a88f37a4d4fada4c0c547b923f947cde395a913f9dc"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: services/project_service.py: FileTooLong \u2014 908 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2005be3b8bd4a972b72df72e466c832f036a120afb015459c53f573839a5e03f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: adk/setup.py: FileTooLong \u2014 906 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/setup.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a921fd6756ff6878ae5794ca100e744b193ccba2c99f8752f4ebbffe09bb73c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/visualization.py: FileTooLong \u2014 833 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/visualization.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad4c80a75485628897a8f11cdcd4a09eeca8e2017a5aea49d7afece393547391"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: workflow/dag_executor.py: FileTooLong \u2014 833 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb1da70ce5867be3bf8385582da9f2e335035b50711845f246aff008046f19c3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/projects.py: FileTooLong \u2014 825 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"03e155c4ecb31dce9ec3cab7517637ce1330226e889965f072139f438306a9de"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: scheduler/scheduler_service.py: FileTooLong \u2014 812 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac036326fc1823b01ea31d4f6b81ab60b3e3f6ff2af9a0dc4024a78e926e8c7f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: services/audio_service.py: FileTooLong \u2014 806 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"68badc848f9fd86027955aaf15107244813e45c58ea812204364bb5e44ae09de"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: WebUIBackendComponent: TooManyMethods \u2014 47 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"e67b6515ff115937d7b8603a54919cdb5ea1bc31cd6d70740767692c6bbb5904"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: embeds/resolver.py: FileTooLong \u2014 750 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/resolver.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"42ab984d5daa8498ecf099af82ef16ba687ecf45e6d148af594fdb7e5a046309"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: generic/component.py: FileTooLong \u2014 737 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/generic/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77a00461828f605cde7b11ab50e65645d515420cca3f1b7c9d943be38f86bff4"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tools/image_tools.py: FileTooLong \u2014 734 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"18c4c23e08f64af8364fa0607218066e402e3ab0e6572b5a26b4efaf00f419ad"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: adk/services.py: FileTooLong \u2014 731 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/services.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"192f820a2c3ab6705deb2f7d2e96a9960cd588c9255defa8c4c73aefab725781"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/scheduled_tasks.py: FileTooLong \u2014 719 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a050c2667628bbd6c08604988cf7549c1bc1950c931f054d0c9a2fceb143f896"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: BaseGatewayComponent: TooManyMethods \u2014 43 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4d04415742a2b0632e463f30ac82d7113aeef82d480583a671ceb5c5d8c07eb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: evaluation/run.py: FileTooLong \u2014 673 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/run.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"845f5c05b9fc2fa06944c1cc08c9e1bc76864b054be031ef1a26424bf540b59b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: services/share_service.py: FileTooLong \u2014 653 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/share_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ba210f5b55c63d6c85bd469acc3aee87f100331ef810e0a1e869e6af396d707"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: structured_invocation/handler.py: FileTooLong \u2014 644 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"acf02b7ee947c20f2fd56a12e2fc413cde242c11ec5bba758219968af19df5af"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: base/component.py: FileTooLong \u2014 642 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aeb0827db6860307b6940c1c9b1a938b732477901c4332ec03c74ce23226ecff"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: workflow/component.py: FileTooLong \u2014 636 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1e5a88dc1e54a2942f3ef27633a269e0a48582aaded2ce85671bf94a98c5c39"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: evaluation/report_data_processor.py: FileTooLong \u2014 633 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"71461388bc56bf1dfa334958f04b575dbc6617a3bc0116390ea23035d6d47e3b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: a2a/translation.py: FileTooLong \u2014 607 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/translation.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"69a5adc835f27fda70230c2feaf24454e2006dd9dce49dd7ef24ea93e4ae91c5"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: platform/component.py: FileTooLong \u2014 598 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/services/platform/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b40a28099265ac1c56c8749a07db29b4fdcf316e71dda3762ea0b794e798ea4"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: evaluation/summary_builder.py: FileTooLong \u2014 585 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/summary_builder.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"65488f330a6b616604f3f3d386cce8a490b80b6686cf2ca0971be0e927cfdca0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: services/task_logger_service.py: FileTooLong \u2014 578 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"127bbe07f10ba66134a64c92581f02d12ee7155c32acb1b825816629ec1ed481"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: http_sse/dependencies.py: FileTooLong \u2014 569 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/dependencies.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c293b35ea6ac19615f375e8237c4dee6098fb3b2b735354ff60abaca9f44c9ea"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: tools/index_search_tools.py: FileTooLong \u2014 563 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/index_search_tools.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcd9dacdb0e233661706ad8614bca1885d923f6d7c48a2ce874d63aaed8622c2"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: routers/share.py: FileTooLong \u2014 563 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72376201bc4132029c03e19a019c63892a70e92973d7adffae97e90942999822"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: add_cmd/agent_cmd.py: FileTooLong \u2014 558 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/agent_cmd.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a528a610345b8f176817e350d0fb66bd0b862bf29f359f8793404f224bced79"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: services/task_builder_assistant.py: FileTooLong \u2014 558 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08932ff1a1c5308cdf05014e8022dbf40e937c72dccb1edc963db67dbd16a08d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: sac/sam_component_base.py: FileTooLong \u2014 552 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/sac/sam_component_base.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"31dfba025820e3622e07d06da86f39603dbc8e299b6356dd1c17a4d04c2cea5b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: A2AProxyComponent: TooManyMethods \u2014 33 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"924074ce0a5a5eec319cee6b65622e4378152e031414de8042c457309e57bd90"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TaskExecutionContext: TooManyMethods \u2014 32 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/task_execution_context.py"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"644399b5e2e521aa00f7803d2ecd395ffc01a36456a5ec73aac2f7152cb0a44a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: GenericGatewayComponent: TooManyMethods \u2014 32 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/generic/component.py"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"b88f266fd157a10cf19f91dfd2ee2c6e359e77e4401e3f6de3fd74da30d6c530"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: artifacts/s3_artifact_service.py: FileTooLong \u2014 529 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f333addafe0391a11c627f59ecea1f445afcc79807446d3ac8e62ecdf33db5fe"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: http_sse/sse_manager.py: FileTooLong \u2014 511 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/sse_manager.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a20706d9ca89c5aa31ac5c2218420690498aba8e179c9c8425fa5754e1b8fe3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: scheduler/result_handler.py: FileTooLong \u2014 508 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"458450fb1320833c86d1e1bf4a6a2d3abfae0bbc4d4d1716e2b89a516a6a57da"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (38 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:89-127 | src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:228-265"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"05f035b75eca1f0bb87a3c63e50b6dcacd0c9e30b868e4a94106f60df2b25a3b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (34 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/file_converter_service.py:150-186 | src/solace_agent_mesh/gateway/http_sse/services/file_converter_service.py:232-265"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/file_converter_service.py"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3cca08c78269faa7e6e2526582c90a1a855c795d3dd4daa50f81402f779b227"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (31 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:638-668 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:703-733"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":638}}}],"partialFingerprints":{"codehealthFindingId/v1":"76a9e31082d0e3d19bdcac93fb2a8f7698588d8151a5644e9293451c789fe137"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 2): src/solace_agent_mesh/agent/tools/audio_tools.py:616-645 | src/solace_agent_mesh/agent/tools/audio_tools.py:766-801"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":616}}}],"partialFingerprints":{"codehealthFindingId/v1":"de1bb85ec0d540e36e4197dd212e14bacd28b20e53dd9ca56974f84c08e5b0d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:112-141 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:175-204"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"1404f60bdf4ff386a947e922734027c369414c5e8ac96bb858fe83fbcf4067ee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (30 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:107-136 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:216-245"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b3d145880ba43596367b212fc934e9ad39cabf1cd2ef5a76cda7c03e3a24df8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 2): src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py:1375-1410 | src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py:1951-1978"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py"},"region":{"startLine":1375}}}],"partialFingerprints":{"codehealthFindingId/v1":"6689f506b9fd05104cc082a99d641aa0fd14af87d757e5fdfc05979d8273b353"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1404-1431 | src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1603-1630"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1404}}}],"partialFingerprints":{"codehealthFindingId/v1":"5851513f2fc0d351a28ceadd9c29c4ee973c21aefddad286ca4a1198141c51bc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:237-264 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:333-360"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"342c685f87f9bdbe8ad1303ee08d72f3529fc9715d8f907d004ad329208324bd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 3): src/solace_agent_mesh/gateway/base/component.py:1071-1102 | src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1406-1432 | src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1605-1631"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1071}}}],"partialFingerprints":{"codehealthFindingId/v1":"1adf9945754cfb7ec2dcf6bd23b7b7e23a152c3a243ca3137fc344e573954138"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:287-313 | src/solace_agent_mesh/agent/tools/image_tools.py:420-456"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b71aeafa710d032556b2cdc243372dab3b9728f48247b240db37c692a896060"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/solace_agent_mesh/common/utils/embeds/modifiers.py:59-85 | src/solace_agent_mesh/common/utils/embeds/modifiers.py:110-136"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/modifiers.py"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"753266b75ce001b48af3717bb11f73bdbd2a1952999abb42896f4b0973dbf725"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/project_service.py:743-780 | src/solace_agent_mesh/gateway/http_sse/services/project_service.py:832-858"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":743}}}],"partialFingerprints":{"codehealthFindingId/v1":"be4386ee56115ccf7401e512ab0fd50f632e66a3404b0ac5943b8a5b4725d6d5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/solace_agent_mesh/workflow/agent_caller.py:116-142 | src/solace_agent_mesh/workflow/agent_caller.py:209-235"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/agent_caller.py"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"0568b47a7d677526f627c0a8ee934426df014cec83c01b8bffdcc78df8b2c262"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 4): src/solace_agent_mesh/gateway/http_sse/services/data_retention_service.py:243-267 | src/solace_agent_mesh/gateway/http_sse/services/data_retention_service.py:296-320 | src/solace_agent_mesh/gateway/http_sse/services/data_retention_service.py:354-378 | src/solace_agent_mesh/gateway/http_sse/services/data_retention_service.py:404-428"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/data_retention_service.py"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"c94b10c2eedefa806521b66d8af6dc9988ba243084792befafb15ff047f5e8d2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 3): src/solace_agent_mesh/gateway/base/component.py:717-742 | src/solace_agent_mesh/gateway/base/component.py:845-870 | src/solace_agent_mesh/gateway/base/component.py:962-986"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":717}}}],"partialFingerprints":{"codehealthFindingId/v1":"b19123de9f52023f4f05b0815e3ae4c7c97e9339f0c36368fd4b5e9f327da4d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 2): src/solace_agent_mesh/agent/sac/component.py:2648-2672 | src/solace_agent_mesh/agent/sac/component.py:2776-2800"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2648}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d3e9c79253fa65271b7dbdad2a2609dee882d3126dae5d2b3f081bd4b4b0813"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 2): src/solace_agent_mesh/agent/sac/component.py:3965-3989 | src/solace_agent_mesh/gateway/http_sse/component.py:2278-2302"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":3965}}}],"partialFingerprints":{"codehealthFindingId/v1":"adf1d5f7a7bfac377468de0baf3fda7d47296795122f2d346f9cd2f7cbc16f27"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (25 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py:81-105 | src/solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py:92-116"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9082f46dd2527c93fe45ce53c075160600854a37f469c7e30afb9c20f07ed22"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (24 lines \u00D7 3): src/solace_agent_mesh/gateway/base/component.py:781-804 | src/solace_agent_mesh/gateway/base/component.py:896-919 | src/solace_agent_mesh/gateway/base/component.py:1013-1036"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":781}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5f039f3f5c4347c3a9a5d17cee221b59d97eb50b2e32290a981c646e0ed8fac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (24 lines \u00D7 2): cli/commands/tools_cmd.py:36-59 | cli/commands/tools_cmd.py:94-117"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/tools_cmd.py"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"a56fd4a265418090cc1b778b69fe383591c971e08eb7f3a145f7a59420205681"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (24 lines \u00D7 2): src/solace_agent_mesh/agent/sac/component.py:4007-4030 | src/solace_agent_mesh/gateway/http_sse/component.py:2316-2339"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":4007}}}],"partialFingerprints":{"codehealthFindingId/v1":"6555b1839e079e5af1eec755e0dd2b050c5b1538fb31b22c141bb63612776501"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:253-275 | src/solace_agent_mesh/agent/tools/image_tools.py:388-410"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe83d2611fa3d3f56ae25b6ac4a821763ecd5035aefa958b8536cbc3849600ca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py:42-64 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py:79-101"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0131f062dd35938de19fdee21cf4fd42e83c16a7e07704b3c7a1ad9008fb126"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (23 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/sse_event_buffer_repository.py:113-135 | src/solace_agent_mesh/gateway/http_sse/repository/sse_event_buffer_repository.py:223-245"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/sse_event_buffer_repository.py"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"19feef730665e7fb45a5b9024daae81355a553a5ed04c4f26d8d79c4b5f4d01b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/agent/tools/audio_tools.py:730-751 | src/solace_agent_mesh/agent/tools/audio_tools.py:936-957"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":730}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd6b3e08608d1c03ccd6d15d82928225919ce61ed19fae42ea69fd4e6a9e18c9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/core_a2a/service.py:96-117 | src/solace_agent_mesh/core_a2a/service.py:188-210"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/core_a2a/service.py"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"7686b918570d3e7eefef5ff18ad098cb029bb1d2a77c47bab8e5c44a0d521c20"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:142-163 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:205-227"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"ceea17a3466130f95006494f51633e1a5ce2cdb1e060eca8d66fa6bf2b9c643f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/feedback.py:57-90 | src/solace_agent_mesh/gateway/http_sse/routers/tasks.py:981-1002"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/feedback.py"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8fa7daf2b10a877fb18b7759e669fde6149784577e4376f79d56354f7581fc5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:180-202 | src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:327-348"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb53aef81cbd53d1d85dc448fcc543a34ba4aa2b13326f20ec9d91d446c1cc00"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/solace_agent_mesh/workflow/component.py:643-665 | src/solace_agent_mesh/workflow/component.py:791-812"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f3c7f9c17e52393ae6b32617a580420ebf1d00e555c7f918affa0dead45ce02"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): cli/commands/init_cmd/orchestrator_step.py:173-193 | cli/commands/init_cmd/orchestrator_step.py:228-248"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/orchestrator_step.py"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"daa7427f9bef2d454d6a7c86597e5ef81b83ed4401ae4d2dd6c6fe6594ec071e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:216-236 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:299-319"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"59657ce987a3eb21c6d198d2149579c9ea3ebfd3c0394dcfb09420f48c371238"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:549-569 | src/solace_agent_mesh/agent/tools/image_tools.py:799-820"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":549}}}],"partialFingerprints":{"codehealthFindingId/v1":"817c5aa305df859a677fb1841a25a7310ee99c43bd104b2de04193c9be7b5cbe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/share_repository.py:323-348 | src/solace_agent_mesh/gateway/http_sse/repository/share_repository.py:529-549"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/share_repository.py"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"4542547307f242f0e77ecbbf5f8da4bad4d5e8b746d144a9f7a48a56e7e04e9d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): cli/commands/plugin_cmd/create_cmd.py:71-93 | cli/commands/plugin_cmd/create_cmd.py:126-145"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/create_cmd.py"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f53f7f9f5a7cc40cd180dac51b7dafdb4260e675d0a51c040bb01c0c49dd675"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/sse_manager.py:542-561 | src/solace_agent_mesh/gateway/http_sse/sse_manager.py:645-664"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/sse_manager.py"},"region":{"startLine":542}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb030d86d6fc021b4067ec7db63593cac2e566cd8fddb00c3555740ddb54ae1a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/solace_agent_mesh/workflow/dag_executor.py:482-501 | src/solace_agent_mesh/workflow/dag_executor.py:541-562"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":482}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f548a5cecc3930c2e32a5cc897534daf0db14de15de6e10eacadbb82d87702b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): cli/commands/init_cmd/webui_gateway_step.py:58-76 | cli/commands/init_cmd/webui_gateway_step.py:127-145"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/webui_gateway_step.py"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"300622b5aff2745c7800343e7270c9cf689fdf24cfb7cbf2a05eb9efbc01e65c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): config_portal/backend/plugin_catalog/scraper.py:344-362 | config_portal/backend/plugin_catalog/scraper.py:418-436"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":344}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff7d1739fad4d8388587ae78990462ac4adc917227875783ee816f3c7a5b9d2f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/solace_agent_mesh/agent/adk/models/dynamic_model_provider.py:263-281 | src/solace_agent_mesh/gateway/http_sse/component.py:521-539"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/dynamic_model_provider.py"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ddc3491197a0cc03161f5369d55115b3679c1b77fe8ab87031d637586422db2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/solace_agent_mesh/agent/sac/component.py:2504-2523 | src/solace_agent_mesh/agent/sac/component.py:2719-2737"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2504}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8f1373e8725bba5f35f29e08ea6a4bd780c228f7902325831e625e9b68e7b2d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/solace_agent_mesh/gateway/base/component.py:1473-1491 | src/solace_agent_mesh/gateway/base/component.py:1536-1554"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1473}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e1a278bcb0d7818e100a41d7096bb2976f774cabd2ca9864888ddf35c67a0f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:337-356 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:377-395"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":337}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f5e598cd995a7dbd1a9361e9a854aeaf177ccff2b93e21e9788a6e1fa76f933"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/share.py:344-362 | src/solace_agent_mesh/gateway/http_sse/routers/share.py:405-423"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":344}}}],"partialFingerprints":{"codehealthFindingId/v1":"38e1c78ae4e1a378922c7f4c8193c1de8b4ebaa0963ed9ef89b1eb8ceec00ea1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:354-371 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:523-542"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":354}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e25d1cfa39226b1d013a383a399f101d44832f331de0c763fd204e3546646fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py:438-456 | src/solace_agent_mesh/agent/tools/builtin_artifact_tools.py:1680-1697"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"6112de70f3c3450910a91a02dbf29547376d86513096f02c6ab3726c94abab2a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/solace_agent_mesh/gateway/base/component.py:1209-1226 | src/solace_agent_mesh/services/platform/component.py:609-626"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1209}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a22729462e3beecc2190a105895cd2dbe629988032fe7a375f202b9123aa3d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/scheduled_task_repository.py:131-148 | src/solace_agent_mesh/gateway/http_sse/repository/scheduled_task_repository.py:167-184"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/scheduled_task_repository.py"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"43de17686961f345351a5a45464c80a41a94f4b208ff65ce7a2a7c2762bce868"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py:154-172 | src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py:227-244"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"2de4ed77838ea7fc8317c0f360002ec945764416cb88feaf034accd82a04660e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:547-567 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:621-641 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:941-957"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":547}}}],"partialFingerprints":{"codehealthFindingId/v1":"252e7ea35751f481b8604e6415b235efe13ceb59a2e9895d3c101d2c9da661fe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): cli/commands/add_cmd/web_add_agent_step.py:49-65 | cli/commands/add_cmd/web_add_gateway_step.py:58-75"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/web_add_agent_step.py"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac11b0e2584ac53b79aaa7be9b3ef9f91468cdd3fe40cb64245f20422bdeb63e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:164-180 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:174-191"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd0f893e4dbfe5840837bc3f30864928357236cc59fd1779da3616afab5f5ee3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/common/services/employee_service.py:133-149 | src/solace_agent_mesh/common/services/identity_service.py:103-119"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/services/employee_service.py"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"db93ea5e2b40fb6f075334339f4ad314923abb3d08b66f44792df75dfbc96a44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:42-58 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:91-107"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb318f0ec534cde93352851e8125aeaff537b16926e3932c7f2ebbd4f7122205"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:79-95 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:188-204"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ecbd627f3fec4399e62e8a8b2521e95ff1ba6161848df256ba7635aafd90968"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/projects.py:67-83 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:153-169"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3fc5090c8175f8ae31e0d7bf899f53c7b7b90df5e350f877a0441acd0c2a226"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:594-610 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:668-686"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":594}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28805fd20b4bbba13adb7f1425e29f3bc1c66a6d220ed181e3f341fa5f15596"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): config_portal/backend/server.py:377-393 | config_portal/backend/server.py:470-485"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/server.py"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"48fcea513c93f2f3591bd9197a67c9e1e7bcd0c948edd5223d655066f0ab4716"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:203-218 | src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:465-481"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b8ec94e79cc9b4ef86ef11c81a871161ea86632d8034f6bcc4519f880ec2b06"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:346-361 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:425-440"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ce1a9cf92c72bc1af4c2290f776bca458d608c268ebb14543bce2017c799b33"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/proxies/base/component.py:448-463 | src/solace_agent_mesh/agent/proxies/base/component.py:534-549"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":448}}}],"partialFingerprints":{"codehealthFindingId/v1":"86ddf3c7b4d497c36bfe7da75da66c471371cc4935ece315c64ff861f898b2a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/proxies/base/component.py:631-646 | src/solace_agent_mesh/agent/proxies/base/component.py:673-688"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":631}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1c644a52315646aa005c4743408daaacb311fd408a2ac6ede8766409aea2fd2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/tools/audio_tools.py:689-704 | src/solace_agent_mesh/agent/tools/audio_tools.py:890-905"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":689}}}],"partialFingerprints":{"codehealthFindingId/v1":"99e6cd3dc0dc5fb95a343d9f7bd52fcf80a1a47c748f1fb68cdd0e7b1b935424"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:778-793 | templates/plugin_tools_template.py:74-89"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":778}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bf117fc3aaf4cfb44d5db245f021c48ea6a9ffc61df64bfa0a209f920ccf559"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/gateway/base/component.py:1446-1461 | src/solace_agent_mesh/gateway/base/component.py:1504-1521"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/base/component.py"},"region":{"startLine":1446}}}],"partialFingerprints":{"codehealthFindingId/v1":"bff20bd51d77ff7f70a0e9e3e174984756d1b20bb3797bb463064b3b155c9f14"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:131-146 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:149-164"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bdbce5142cc8d2828031097c64b114132c9ab6a69289da306ae2272fb65ca71"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py:34-49 | src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py:66-81"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc5e885c56bb5e2271ab73cdc3ca1ee32618d6b8e03fb62d326c8d6f67ac038b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/projects.py:562-577 | src/solace_agent_mesh/gateway/http_sse/routers/projects.py:727-742"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":562}}}],"partialFingerprints":{"codehealthFindingId/v1":"5944d4b1a0abb2c41d2180f2be4e3d7bcdac3632efb3f71e8c138107537b7398"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 4): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:230-244 | src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:526-540 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:250-264 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:707-722"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fcb0367032bf9143302cd74d6d335ba901d9c2122eb9692905033d9c44acfc7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 4): src/solace_agent_mesh/agent/tools/deep_research_tools.py:428-444 | src/solace_agent_mesh/agent/tools/deep_research_tools.py:494-520 | src/solace_agent_mesh/agent/tools/deep_research_tools.py:570-601 | src/solace_agent_mesh/agent/tools/deep_research_tools.py:1040-1054"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":428}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a1daa3b72452240b3c5398b0b2570052c3285a3106e150c743493b8401792dd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): .github/helper_scripts/build_frontend.py:69-83 | .github/helper_scripts/build_frontend.py:109-123"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":".github/helper_scripts/build_frontend.py"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"c117674e161f84b8b2395f342b7846f2fabbe5369bcfa5a2ae749101e4a19cb7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/solace_agent_mesh/agent/sac/component.py:2753-2767 | src/solace_agent_mesh/agent/sac/component.py:3078-3093"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/component.py"},"region":{"startLine":2753}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd7c3a86427ff8d7f02f5a449449d3b35f6f9d8510979bd576e73f0213cca748"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py:328-343 | src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py:370-384"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/session_repository.py"},"region":{"startLine":328}}}],"partialFingerprints":{"codehealthFindingId/v1":"b26a543fb7990dd9974fc541e37db7c33deb81441a82ac8d5bc8f13cece423bc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/projects.py:303-317 | src/solace_agent_mesh/gateway/http_sse/routers/projects.py:917-931"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":303}}}],"partialFingerprints":{"codehealthFindingId/v1":"545fab2ce10d812c7908ba494f214e85b02f88bae32408ea3fa88481f802cea0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:916-930 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:1048-1062"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":916}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3f906413700dba59bba03aa9ec1cd79303358eb43038a16e63b4ecb74055a3d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/routers/tasks.py:1085-1104 | src/solace_agent_mesh/gateway/http_sse/routers/tasks.py:1189-1202 | src/solace_agent_mesh/gateway/http_sse/services/share_service.py:602-617"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/tasks.py"},"region":{"startLine":1085}}}],"partialFingerprints":{"codehealthFindingId/v1":"93f63e321ba6e747ccbd3975cd283f89872e06c5576ddeee0ae922b87333ac29"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): cli/commands/add_cmd/gateway_cmd.py:77-90 | cli/commands/add_cmd/gateway_cmd.py:92-105"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/gateway_cmd.py"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"153d0395585cb1c4413bd8a5b686b217f81e40c35bc1b74aa30bbf60ea1bbb14"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): cli/commands/init_cmd/broker_step.py:122-137 | cli/commands/init_cmd/broker_step.py:184-197"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/broker_step.py"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"148e17fad2e7e73bc143ae503b7fe45ae56b50726a1e842cb6f9b396a5c669d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): cli/commands/init_cmd/orchestrator_step.py:523-538 | cli/commands/init_cmd/webui_gateway_step.py:197-210"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/orchestrator_step.py"},"region":{"startLine":523}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1d738f76c415c95836b34d7015041f164da672a819363af4cd3cf5679e07521"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): cli/commands/init_cmd/platform_service_step.py:72-85 | cli/commands/init_cmd/webui_gateway_step.py:217-230"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/platform_service_step.py"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"77731da318f432de75aa83c4347a8845ab9e7baeb855a4dbb91d5a6e40bf8f85"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): cli/commands/plugin_cmd/create_cmd.py:94-107 | cli/commands/plugin_cmd/create_cmd.py:278-292"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/create_cmd.py"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c8f31a1e2d98cc0c482d9a0bf27bf67407e7b5190134646ecfa374efa98aa93"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): config_portal/backend/server.py:346-359 | config_portal/backend/server.py:394-407"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/server.py"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ddcdfea5105daa2ec71638c4efa1803db952fa04feaa2256cb682310d03822a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): evaluation/report_data_processor.py:312-325 | evaluation/report_data_processor.py:522-535"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"b99d41e7a23506dcd113972d24805347bb922a24fc60fa1e6ec158ae1133c674"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/agent/adk/models/lite_llm.py:1520-1533 | src/solace_agent_mesh/agent/adk/models/lite_llm.py:1549-1563"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":1520}}}],"partialFingerprints":{"codehealthFindingId/v1":"365cc555d58473a9d4a3c81c1fd8e41454f6bcff7c7d86a4a5da7eeef15bf1d0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/agent/tools/audio_tools.py:527-540 | src/solace_agent_mesh/gateway/http_sse/services/audio_service.py:774-790"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":527}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d513572e946da95e1028d1112b7e932f9d48399b06cec3878023ed07b27b160"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:616-629 | src/solace_agent_mesh/agent/tools/image_tools.py:840-853"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":616}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cde0dc14ba8df4220bc43e8cee7a4860a66e062740b9d5817272d4fd8ec0a5a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/agent/utils/tool_context_facade.py:192-205 | src/solace_agent_mesh/agent/utils/tool_context_facade.py:256-269"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/utils/tool_context_facade.py"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"004e501f34fc2727503ae602694d959eaf19f9737d99dc3bd022405d89ef4fab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:86-99 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:184-197"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f7cbc294b71234b8315c42f901c06ac161a8df0351282b7e97548ce86a83192"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:88-101 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py:110-123"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4858dc1c28f86fd27a4c9d8c005120adcb77f5e14f68807ffac18bfad014f04"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/component.py:699-715 | src/solace_agent_mesh/gateway/http_sse/component.py:816-829"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":699}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d15504ba00e5721cd70bf4084eb8d2fbd4964473605f9bb9f83eb46f96c3f4e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:767-780 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:1017-1030"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":767}}}],"partialFingerprints":{"codehealthFindingId/v1":"237bb7c4241ee66e62c208457222cd368d92774c659cffa3a9b053849a66e630"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:892-905 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:955-968"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":892}}}],"partialFingerprints":{"codehealthFindingId/v1":"be3b3ff7f298122ddd6f9970194b614193d00ac23ab6e3184c218a320479364e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py:195-208 | src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py:260-273"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/indexing_task_service.py"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"db56d01140a053cf86c57a6caeb42d53fe36db8a384a74abbed332de1f196ce9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/solace_agent_mesh/workflow/component.py:561-574 | src/solace_agent_mesh/workflow/component.py:712-725"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/component.py"},"region":{"startLine":561}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a6aa8ecc951f45c03bc079aa1c13f248d2f261e2986502e5e92a2572fadc149"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): cli/commands/add_cmd/web_add_agent_step.py:18-31 | cli/commands/init_cmd/web_init_step.py:29-41"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/web_add_agent_step.py"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f4dfba2cfcfb253abe078fa869ad65e8cb8c0a5e0489533c700f01fa7b2d27b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): cli/commands/add_cmd/web_add_agent_step.py:81-93 | cli/commands/add_cmd/web_add_gateway_step.py:91-103"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/add_cmd/web_add_agent_step.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc80a99edff763fc4f82d8de08566523b68a101e367065836b27afe8d60794d4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): cli/commands/plugin_cmd/add_cmd.py:14-26 | cli/commands/plugin_cmd/install_cmd.py:19-31"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/add_cmd.py"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5c1ee7aff9550e8547de8a5fdf4ce63600889b93a10d68294a896157e0a518f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): config_portal/backend/plugin_catalog_server.py:81-93 | config_portal/backend/plugin_catalog_server.py:124-136"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog_server.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c5079258ce79bbd0411b2120f801d4aa767d7d03727e8cdfe0650411c532cff"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:300-312 | src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:322-334"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":300}}}],"partialFingerprints":{"codehealthFindingId/v1":"e16f1ce311afa6e3d3714a1162f92f18234155b89fa825416ccccbf556540dd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:401-413 | src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:448-460"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":401}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cfdda269a9e4dea87df49e2f1a724e46b8d9712d562706190528e5bc71e9d64"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:406-418 | src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:501-513"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py"},"region":{"startLine":406}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ac9c4dd7d6d1f26d25a0c63d4a1b9251b4827082f3c025fef5dd0415ac84ff0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:573-585 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:623-635"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py"},"region":{"startLine":573}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ba9f868469c13dc58c1ed5ee0e9a0f84ca835adfacf9580af383f0682bf6b44"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/proxies/base/component.py:607-619 | src/solace_agent_mesh/agent/proxies/base/component.py:855-867"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/base/component.py"},"region":{"startLine":607}}}],"partialFingerprints":{"codehealthFindingId/v1":"bce997e2b0c59c4ead7cc05e1c4db8fb7621e5603a77e4c3939b63db2e942adf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/agent/tools/image_tools.py:645-658 | src/solace_agent_mesh/agent/tools/image_tools.py:863-875"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/image_tools.py"},"region":{"startLine":645}}}],"partialFingerprints":{"codehealthFindingId/v1":"9925e2811fbde532f4d35bef8da2059812124c7e57b18d0385cc2a570bc8015a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/common/a2a/artifact.py:259-271 | src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1875-1888"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/a2a/artifact.py"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"f74f6925bc8ee42c6c60640e4281b5116ffbe7ffda6466f7019cc8aad24a87a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/common/utils/embeds/modifiers.py:183-195 | src/solace_agent_mesh/common/utils/embeds/modifiers.py:231-243"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/common/utils/embeds/modifiers.py"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"8cd0717e5944227da88ffc638d4837e2175460b865ea0e33aecb8c9acc1fccdd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/audio_service.py:548-560 | src/solace_agent_mesh/gateway/http_sse/services/audio_service.py:840-852"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":548}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8fdc4ba1dd15b20e3adc900f1b1d08ba62763cfcd9449059584877d066143ec"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/project_service.py:711-723 | src/solace_agent_mesh/gateway/http_sse/services/project_service.py:1377-1389"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":711}}}],"partialFingerprints":{"codehealthFindingId/v1":"95fa761d66413efb0d9957ef3c3d6e8467a91d4e94232a50cf0b1e411ab06162"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): cli/commands/plugin_cmd/create_cmd.py:282-293 | cli/commands/plugin_cmd/create_cmd.py:302-313"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/plugin_cmd/create_cmd.py"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d1152a6e6dd571fa1a43293358101250d51e78d553b0070510c4d69cb3cbac0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/agent/adk/callbacks.py:2560-2571 | src/solace_agent_mesh/agent/sac/component.py:2825-2837"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/callbacks.py"},"region":{"startLine":2560}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f5b2017ee0637fab57c6865686753d3504e1dcc8bdacfde444eb0a310b5e00e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/agent/adk/runner.py:1451-1465 | src/solace_agent_mesh/agent/sac/component.py:939-950"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/runner.py"},"region":{"startLine":1451}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdd17ba3f6eb64a9008909d55702df7063e15a3dcbf2cef93c83504271396d31"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/agent/sac/app.py:707-718 | src/solace_agent_mesh/workflow/app.py:641-653"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/app.py"},"region":{"startLine":707}}}],"partialFingerprints":{"codehealthFindingId/v1":"a95dcb6fe67f5fae1c7bbaf7c250eaaa200165d8c2a0c24dae477f21a7c87272"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/agent/tools/executors/unified_python_executor.py:54-65 | src/solace_agent_mesh/agent/tools/executors/unified_python_executor.py:76-87"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/executors/unified_python_executor.py"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"460de1801dd685ca73d55947cf6b5dacc4eb6c24fc3fad6361a6bd72e8d985c1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:67-78 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:332-353"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"04d23778cf3677a561e62bc38ce9a0c035d3b3c0a4404ff23a32145ca0937eb8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:44-55 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:153-164"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a7fced5f8158b5fd6cf01ab7d976aeb75a5bace7d8e42d956fffa8480f2e5a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/component.py:2212-2223 | src/solace_agent_mesh/gateway/http_sse/component.py:2224-2235"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/component.py"},"region":{"startLine":2212}}}],"partialFingerprints":{"codehealthFindingId/v1":"e001beb0e13d49dcafd23336c0019e151815dea198add0a4e8442dd45d2005d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/repository/entities/chat_task.py:29-40 | src/solace_agent_mesh/gateway/http_sse/routers/dto/requests/task_requests.py:32-43"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/repository/entities/chat_task.py"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"acb0a7ed381e433dc9383d9d16a36bf54751f432dcca580a3f0dfc0ae178bf77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/projects.py:805-816 | src/solace_agent_mesh/gateway/http_sse/routers/projects.py:861-872"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/projects.py"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"b94a5f0e9ed4656889367bc37357aa675f248ed0da7833ccf24b7b4012fef0c5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:849-860 | src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:929-940"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py"},"region":{"startLine":849}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fad90c425cd638f028f6de16343148e148a3eb0004fae2ace1ea06369b1c893"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/project_service.py:349-360 | src/solace_agent_mesh/gateway/http_sse/services/project_service.py:614-625"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"67bb4ed484604ade001ea23bc605c475d3399a194e3931966473235bd3386134"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/solace_agent_mesh/workflow/dag_executor.py:733-746 | src/solace_agent_mesh/workflow/dag_executor.py:904-915"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/workflow/dag_executor.py"},"region":{"startLine":733}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d4e86ea799a6301b02d09e2fd2f71dfc3528e8c4afe59509204e519abd20080"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:516-526 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:814-824 | src/solace_agent_mesh/gateway/http_sse/routers/prompts.py:889-899"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/prompts.py"},"region":{"startLine":516}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f793151ad2e2dce28bbabb51be8a29844b9aef43eff25b831410a9750450782"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): client/sam-rest-client/src/sam_rest_client/client.py:181-191 | client/sam-rest-client/src/sam_rest_client/client.py:208-218"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/sam-rest-client/src/sam_rest_client/client.py"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"e38b45d5bd565cfc006f4dbf6f818fead6512e18536fe0b93ceea074ec824de9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): config_portal/backend/plugin_catalog/scraper.py:313-323 | config_portal/backend/plugin_catalog/scraper.py:387-397"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"config_portal/backend/plugin_catalog/scraper.py"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab1cd1470d8090def72890d457d0fb287a1bbcd2a370e43435378fbc9f00c991"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/agent/tools/deep_research_tools.py:2359-2369 | src/solace_agent_mesh/agent/tools/deep_research_tools.py:2381-2391"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":2359}}}],"partialFingerprints":{"codehealthFindingId/v1":"833ce52a214f2ff1f028c1e17d2d5ee1046610b19a7e8af45154739674273bab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py:77-87 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:209-223"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb10d69b50b7bc06e450ac0eda40466c9a1e0808b24bdded775ec62e3212ea84"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py:54-64 | src/solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py:55-65"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a242ac0842ea3c6296b49509feddd88072eacf6dac4b9b4ba013863e88b2699"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1132-1142 | src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py:1528-1538"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/artifacts.py"},"region":{"startLine":1132}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef53bda70c97445a642e89e4c6beb6e8f4af352ee7ad3881201ace5bc68f06bf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:126-136 | src/solace_agent_mesh/gateway/http_sse/routers/sessions.py:183-194"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/sessions.py"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bead622436c66d3fc3f4d797868aa6cff3af8c4c1041658362d3c965fff1edc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/share.py:781-791 | src/solace_agent_mesh/gateway/http_sse/routers/share.py:822-832"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":781}}}],"partialFingerprints":{"codehealthFindingId/v1":"b93b8506eaf27c7bb63139a8712a6f5a7e441009d7b77fcb76d63ca002d1c062"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/audio_service.py:1214-1224 | src/solace_agent_mesh/gateway/http_sse/services/audio_service.py:1232-1242"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/audio_service.py"},"region":{"startLine":1214}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbf8f4f85a5ae4942ca04959ab3dc782883aa5ec3802fd8f50b4961fd69ffb8d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/session_service.py:137-148 | src/solace_agent_mesh/gateway/http_sse/services/session_service.py:491-501"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/session_service.py"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"d504303c374cf084208d92999d6d887d9a489ffbaa215397309db19d5b4005b1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py:41-50 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py:74-83"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"68eb84df46c3419ff641301bbd0be258f2016ef21d13e1859e8e1cad62fcdb0e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:46-55 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:143-152"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"47b9016bb503020673d8acd59bce92102118f64707039f83c8bc0bb4337649d4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:620-629 | src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:650-665"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"abf278a4d5f6c8ba09fc1f502918003388012f671ba29f1b4dd005e5a7f3c593"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:494-503 | src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py:511-520"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/bm25_indexer_service.py"},"region":{"startLine":494}}}],"partialFingerprints":{"codehealthFindingId/v1":"d73858053140cb6ba94a1da8892a279438f46fdab5d8c82dabf5bc344ea7da22"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py:736-745 | src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py:779-788"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/scheduler_service.py"},"region":{"startLine":736}}}],"partialFingerprints":{"codehealthFindingId/v1":"08e40de5480bec5b6acb3f7d8064df03e0462278e9bb7dd1b85454588d68074f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/solace_agent_mesh/agent/tools/audio_tools.py:1321-1329 | src/solace_agent_mesh/agent/tools/image_tools.py:342-350 | src/solace_agent_mesh/agent/tools/image_tools.py:486-494"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/audio_tools.py"},"region":{"startLine":1321}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c270355427f4c04d0e5d82183552c10db1f45d9fd773de7b79be80a4f5e05ce"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:43-51 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:72-80 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:122-130"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad69c0e1789d329cd24b6e6e1dde638c1385d0f42f5554476ee0d14efcb8c02f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py:278-286 | src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py:524-534 | src/solace_agent_mesh/gateway/http_sse/services/task_builder_assistant.py:741-749"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bbba9ef941d284d1c2bad5452828f0df4fca45fe420875555a9bc04961bd36d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:352-360 | src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:388-396"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ef2738b758cb2d231f4224932f45ff9c383baaba1136a6a32d85730cc169070"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/agent/tools/web_tools.py:230-239 | src/solace_agent_mesh/agent/tools/web_tools.py:250-258"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/web_tools.py"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"33c276f2363ed2364e5c029c4825f999d3001029a68cc73b65b9fe5a17c6d3af"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:49-57 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:158-166"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e221a2408cc8b85a9b1e46c942dd12f6cb639110473e62ba19d6c2b1d89b87f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:143-152 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:169-177"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb1466588e1ecd364ca237d7fe383a003125bb03bf24b508f10fd52f4ed8d6f1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260123_add_share_links_tables.py:108-116 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260320_add_project_user_pins_table.py:40-48"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260123_add_share_links_tables.py"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"a51978c2bda61d4ad99ae39ab67d9fd7ef79a07fc71422afe8cd09d0906777b9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/project_service.py:251-259 | src/solace_agent_mesh/gateway/http_sse/services/project_service.py:295-303"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/project_service.py"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa672ae6bdba664d25cd1515cad3149919214ee0b5bf1afa258c1a2a17ce9229"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): client/sam-rest-client/src/sam_rest_client/client.py:214-221 | client/sam-rest-client/src/sam_rest_client/client.py:236-243"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/sam-rest-client/src/sam_rest_client/client.py"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"93fbc057fc9d1d2d470f92b0271e473401c08d90d4538b1072e5bfb36967e6de"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): evaluation/report_data_processor.py:172-182 | evaluation/report_data_processor.py:746-753"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"evaluation/report_data_processor.py"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b74721f6486f0b6081df0689c429e8457d9dcc42e9cdd7856792c919ac18c07"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py:125-132 | src/solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py:135-142"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/azure_artifact_service.py"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"16eab34b0e6f02a005440157d064f9f3a850cea6d345c62397f052e10b19ac84"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/solace_agent_mesh/agent/adk/mcp_content_processor.py:573-580 | src/solace_agent_mesh/agent/adk/mcp_content_processor.py:584-591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/mcp_content_processor.py"},"region":{"startLine":573}}}],"partialFingerprints":{"codehealthFindingId/v1":"eab9286555f05157ba1c96abb557913db130930e158b76ca648065a0b817be34"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:192-199 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:199-206"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"6da68e8d649688bdcfb534126a91284f665eafbba025bac3e72be41d027fb998"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:81-88 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:152-159"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"eba935a06c43b970c24fb1fbb5978e8ef9c8daec3f623a39d6ea815abf9beec7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:708-715 | src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py:954-962"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/scheduled_tasks.py"},"region":{"startLine":708}}}],"partialFingerprints":{"codehealthFindingId/v1":"47324604624cc7c6997c5105658dc95e02187fe0d72da5f42d5e80a7232bdfea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/agent/proxies/a2a/component.py:1190-1196 | src/solace_agent_mesh/agent/proxies/a2a/component.py:1253-1265"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1190}}}],"partialFingerprints":{"codehealthFindingId/v1":"82a38b21c4c6d856ae376775afc557341537a5dc6c64ec019e8de83a2d769069"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/agent/tools/deep_research_tools.py:1667-1673 | src/solace_agent_mesh/agent/tools/deep_research_tools.py:1683-1689"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/deep_research_tools.py"},"region":{"startLine":1667}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa695c7d1152432efd2ec4deb0ada197cc8261edc0f350e4c9309fda4f016f48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/agent/tools/time_tools.py:102-109 | src/solace_agent_mesh/agent/tools/web_tools.py:424-430"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/tools/time_tools.py"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"71bd975a176b8304d85ca213f1a38b896fe59cac47f9f0565dcbdd1403b6fafe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:244-251 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py:379-385"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c9bf2844e1a83ed28ce4345d511fc02947eeb2e471ed09c3da28415d9ea1d9d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:130-136 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py:68-74"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"95bfceae283ed8ad9207f4ee7289404bb2fb05cc82726716c9fea7e26083001e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/routers/share.py:473-479 | src/solace_agent_mesh/gateway/http_sse/routers/share.py:518-524"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/routers/share.py"},"region":{"startLine":473}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ae4f654a31f874a98769898f04725a96ed89b488353d6a73182bca64335b46f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:284-290 | src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:324-330"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":284}}}],"partialFingerprints":{"codehealthFindingId/v1":"22c114bf4aeed210d3f83eb48052a5626553027fd238afba57eb1dfa7c30ec49"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:346-352 | src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py:613-622"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"eea1bab197b2b810f51be1ec8094f689df63c5fa30d3e4a7053daf91de6532ca"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py:559-565 | src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py:635-643"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py"},"region":{"startLine":559}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf289a50ee324b0021a96c544d7fa859623932d8e300c9bc8f34d7ba1e81b9e3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:286-291 | src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py:303-308"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"42caa70b81c8247e744acc898a846235765c133463eef4524a753b7910036315"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py:81-86 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:232-237"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"dca4118fd8750f5da0ea286f7b8a63cc452bb008e85d41d446f485c866f2703c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:61-66 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py:158-163"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"8455468a2d14b0be3c25cfddd95d16dec3414511a39902a4a376700054d39337"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:326-331 | src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:737-742"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"81a0d1267761702cd7357687ea21ca67c244a7ebb936d9732c638124c8b53cd8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py:737-742 | src/solace_agent_mesh/gateway/http_sse/services/task_logger_service.py:644-649"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/services/scheduler/result_handler.py"},"region":{"startLine":737}}}],"partialFingerprints":{"codehealthFindingId/v1":"58b3a14c450a02e4a661bbddb2cdfc4c52325769c02116aed1f5b8a1beff5416"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py:117-121 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260123_add_share_links_tables.py:111-116 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260320_add_project_user_pins_table.py:43-48"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"d323c4dd0f5674074b1baa9ae73e10e009e705e7dc9294f6fd0c65bd0857c2b8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py:204-208 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py:72-76 | src/solace_agent_mesh/services/platform/alembic/versions/20260305_add_outbox_events.py:40-44"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee3080d0816dc56c6db356f6586e6bb169c7e561fb97cb27a4976b08ac0b18e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260123_add_share_links_tables.py:35-39 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py:127-131 | src/solace_agent_mesh/services/platform/alembic/versions/20260316_create_model_configurations_table.py:29-33"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260123_add_share_links_tables.py"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c1a133c77b5568ea96454ebc67cf2eae8e2ccff7850c4093b60c68f7ae2cf31"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py:70-74 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py:69-73"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc4ce4996910c999c665534f513d5d821929614e41c05748e681bdbbf85bb40"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260207_add_sse_event_buffer.py:28-32 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260222_add_document_conversion_cache.py:35-40"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260207_add_sse_event_buffer.py"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"7555aab082115ca53e986fcf5555f47e4b37a0ecfa1ca7f11f379f4892796bdb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py:88-92 | src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py:130-134"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/gateway/http_sse/alembic/versions/20260319_create_scheduled_tasks_tables.py"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b79fd19f93f6e23227cb904496a650071644085624b52e0bc89a30c2f479d78"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: client/webui/frontend/src/lib/components/pages/RecentChatsPage.tsx: client/webui/frontend/src/lib/components/pages/RecentChatsPage.tsx changed 4 times in last 90 days, max complexity 53. 1 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/pages/RecentChatsPage.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b83054252e4ca99bbc45df45f8a852f80df0d20dbcc2fe542115cd2592583e35"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: client/webui/frontend/src/lib/components/pages/ChatPage.tsx: client/webui/frontend/src/lib/components/pages/ChatPage.tsx changed 3 times in last 90 days, max complexity 60."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/pages/ChatPage.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4823366815fd64052e6ced14cda502ed95221307e3aaefa5479418f25cf26ab1"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: src/solace_agent_mesh/agent/adk/models/lite_llm.py: src/solace_agent_mesh/agent/adk/models/lite_llm.py changed 2 times in last 90 days, max complexity 58. 2 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/adk/models/lite_llm.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"53373cb1bcaf34901abb42b2471f746ab23966131d2091ae3970e113ca2b46fc"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: src/solace_agent_mesh/agent/protocol/event_handlers.py: src/solace_agent_mesh/agent/protocol/event_handlers.py changed 2 times in last 90 days, max complexity 57. 2 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/protocol/event_handlers.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6c7310f6f8cfe6fcc714c564c6b0360c9c93f542d4f756d7515888ffdea4ff7"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: client/webui/frontend/src/lib/providers/ChatProvider.tsx: client/webui/frontend/src/lib/providers/ChatProvider.tsx changed 2 times in last 90 days, max complexity 56."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/providers/ChatProvider.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bccb4081a26ae7633c3d04e37016d11d1ae9a25a31f172022d3af51445c5873"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: client/webui/frontend/src/lib/components/chat/ChatInputArea.tsx: client/webui/frontend/src/lib/components/chat/ChatInputArea.tsx changed 2 times in last 90 days, max complexity 34. 1 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/chat/ChatInputArea.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9955517439f80bff6f11ef27159da051150fa82f1c59e7e67cd1b4056433d873"}},{"ruleId":"D15","level":"warning","message":{"text":"Hotspot: src/solace_agent_mesh/agent/sac/structured_invocation/handler.py: src/solace_agent_mesh/agent/sac/structured_invocation/handler.py changed 2 times in last 90 days, max complexity 20. 2 of those changes were fix/bug commits \u2014 a defect-dense hotspot worth prioritising."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/sac/structured_invocation/handler.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"30976b3a854ebd0ee82604c9ef0267f24e67945d85c85b5be1d762087ff9a0ff"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 24 significant file(s) lose their only recent owner (largest: src/solace_agent_mesh/agent/tools/deep_research_tools.py). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a64445476f054e7ac1626f0876781bd8a713a0131f7948bffc1ac719b6f316a0"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 10 significant file(s) lose their only recent owner (largest: config_portal/frontend/app/components/steps/agent/AgentToolsStep.tsx). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b9a59f7bc9c73bd7c68e635b65719671a21f940453d92dd2c32adeda8a7f0f0d"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #3: If anonymized user #3 becomes unavailable, 6 significant file(s) lose their only recent owner (largest: config_portal/frontend/app/components/PluginCatalogFlow/PluginCatalogFlow.tsx). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b50de4aa70d80776945e4a07cb675edb4afdf0f2565e0bba8e6d1e8a426875d"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #4: If anonymized user #4 becomes unavailable, 6 significant file(s) lose their only recent owner (largest: src/solace_agent_mesh/shared/auth/synthetic.py). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b0ff7a5268c9d4e6eb7dc96ab9445fc797e2ef22c881a2c0bc127e2947ec9a40"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #5: If anonymized user #5 becomes unavailable, 5 significant file(s) lose their only recent owner (largest: client/webui/frontend/src/lib/providers/SSEProvider.tsx). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7b345e54043aeab98c7d964d772e797b04de34a0d3d0ddcb94c5b7ccfd2c8f5f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #6: If anonymized user #6 becomes unavailable, 5 significant file(s) lose their only recent owner (largest: src/solace_agent_mesh/agent/adk/mcp_content_processor.py). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ec090d2a4945c062617cc574a479db68d31adb797a50aec5108dcc4bd0841579"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 8 other contributor(s) are each the sole owner of a small amount of code below the off-boarding threshold \u2014 folded into the bus-factor score and metrics (69 single-owned of 681 analysed files in total)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6043e355c391920bae43dfcf167dd5f7a8bf93b64e31e288eb70d8111249d728"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"14e7317243c111bc92e9e2612f38ea21ef6b8ff4d22e9bb0f051308e0b0363be"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"47b20c208cf9a77ebbc620e1b8f9a77862720ef7d8871097be9c195558e4e42e"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"54b6275920ed35c46f3170bf02d8c5542a40bb173a17782656784232f3d1de23"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ace1cbbc4bf7f3bf564246ae4bef0be1cce2e3d05cbff30cdc69f45ff9c9b7c8"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"46006f9bc8f79a67f084a8a4496e3e1f4f6df3417f14313e59379373782f5b4a"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8e6cf79b36ad8353939265a1c078d4c28c0c5d73dcf2562b3795966e5264098c"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fb17b69ec1007f3eb89be001fe1db8b9ff56d158ec30d9013887449d05d1f7a9"},"taxa":[{"id":"CWE-250","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"073893b3bc0fa510ec095a3c0a89beb31b9d7123b5c4647efdf01bc8a2b59345"},"taxa":[{"id":"CWE-250","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9a975ab23f00faba9f10f5d8ba9ea2e81a23603785f27e1cc09cda957def1561"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"cfaf802b53cdb7d22b58e889996d03c02824d36d994eeffd9693c3f965a35f92"},"taxa":[{"id":"CWE-250","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4c495560d908527797246938436c0e7b4f0ec58cd604d3d161625be4afe310e1"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4511909708ae86258782935af61d229ea5e22195bbd35af5910dbebb3ada950b"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"beaaadf3eb3c1d6cd2d9a3a2d9cda294728e25e4cdce67e144a7365279610073"},"taxa":[{"id":"CWE-250","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5d3f35aa97b49886205086e6db6430a3c507832de0fdf1c1381de77dfe33a5df"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a784ebd1ca288767f6776a7ad5a8bd516059555ba464c7b712507eb2f7a33832"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7efe4346dd4e108a2ef44194406f391c0dd65920c4a22d9fda26acee06542d56"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5668abd331ef9b8e43f955e3e2f859dfc9ab4fa9a29dc57feee683cc0b781d59"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c1c20da71acf15e08c66e143598169d22f49c74bd630e57218de516024d5b756"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ce03149def57ce0b5f3ec7a04394a472d579d57e8c2c464b2bc0a6079269883d"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"73dad1322328ca877e0c1252e93124d353f5638618031d9e1043015faa7a46d7"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ffb473a1233f69813b7055530b964287229f8ccc537a362f30d3da927a633a2d"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"05137b8d9d163d97c3e435a09c0acaf6c44149efb8bcb372c9dbcb24c7429de8"},"taxa":[{"id":"CWE-250","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7b1355c6d28ce96ea8da924c9347c1cd48c5c79fcd45918c3d9076213595f584"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ea7ed119b4757ac24a571f2ba0893257bdc2ded4885030db43e092e357f3ce30"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a70ebd3fe4206efc765372b0b2fa4dc466f5243d9f7f3d9e6d82e0393989ec61"},"taxa":[{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"97efbd3ba646fa88744ea9800cbe9a83a5833c379a48549f2b2373f2333675e8"},"taxa":[{"id":"CWE-829","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f1ce958cd2701212c31f01d29b52bcb80129a5132dd085ba16c7126e1d2660e6"},"taxa":[{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"19a01269f5ffd6d38080335186672f37c72951109f3ed253c105c4c3870818f2"},"taxa":[{"id":"CWE-327","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3a79ad3ae5b1c85d5f7a0f916c2484dca3098fd949edad0b4f3d978a9222f2e9"},"taxa":[{"id":"CWE-489","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fa3252bd0e6185c13e240a01b1d853a5e90d2d6e4e07876992c6e6098fc2dc6f"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"63bba5e23caafa487d7b79e71cd5ff4d0ce8434380ae98f68f783f70b7ed9bca"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"9fdb8d64236b10fd40f7ca97e8094dc93a69d792778a386cb2830808e73b2738"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f1a583b36e9cbafac49c48e68143d3d3a24cdd4002221fd9aa9f10d40436b61b"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a6518a83557cedca84cf8e0a721a659332fc73912b08764d166bfe27ab592c8b"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4866bb5e139f281df10e5908ba56d4177df90f39e098dee47b1d42154ab9d173"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d119777f2b83375eb3d555aeb752c3725ea20e5dec10313c3303c46ef88e70c7"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"315200d0263e38f05abad3bb9a4ff238a2a55bf81e17c5bf5b73252f3b552c61"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8e6243f551d3f580063ab2331cefb58a69a44ac97356b457988e8bf427ee349d"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"25b60b86da9c1b17d95e27c3fa177575cfde600579133a66c63842f766d5a475"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8904065a80958012e01dcfef76322fbc22ebfa9081d6badeba933dc6d9f2ed91"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d9af25a49354d04c7a371348bcb5068684fd3c2687c5cc553b1f9332af261de7"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"49b51c284c7f2c950df8693cff3436615845fd8588d5e494677d62ec2a4b1b13"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fb93b29910666374e0c3dad3cb361c4979dfc87a27e86430fcf9b0ef97045fcb"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c143ef1df7e038ec48000db49d3c95adffcaef16a72f17a960172b9c8bf11cc2"},"taxa":[{"id":"CWE-532","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"329472f8d74b306e4f609a00464481c61e0d63ed22a3f7e8a45f29916b0caff0"},"taxa":[{"id":"CWE-327","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"af661493206336e95a68fce6063d21b9ce0229fc09afd34d7d44fc82f2c0fb65"},"taxa":[{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7dc2696db78b05b6ae2f605d5e3cf6e34bfae58d490edd18aa01ba094af5e4bb"},"taxa":[{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c294f5cc26f56c77858c3e8955a523f0fe6ad16487a0178c6a3fb71ef0af0707"},"taxa":[{"id":"CWE-287","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D29","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"f0a6143401d3f0f558d6bf99619213033f651372711bc8585f211ec0beb48792"},"taxa":[{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D31","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a70fd225759adf29cb92a6b1017c0fe7ea9452e3ac8da20b91dc5ae32e351cfd"}},{"ruleId":"D31","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1f51a163f26d94ce6b6f473117dde579d091c8cbf9e59810475c94d9fc921120"}},{"ruleId":"D34","level":"error","message":{"text":"Orphaned knowledge: No living knowledge remains for this large file \u2014 its last meaningful change has decayed away; if it breaks, no one currently understands it. Schedule a read-through / add characterisation tests before it bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"templates/gateway_component_template.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77bf5877a2390080662ee96fe87c466ef19129cb2690beac7a6630469b249145"}},{"ruleId":"D34","level":"note","message":{"text":"Further orphaned files (smaller): 70 smaller file(s) also have no living knowledge \u2014 folded into the freshness score and metrics rather than listed individually (71 orphaned of 681 analysed files in total)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ce861fd78f6935114d3a342cb90ad25870f984e1042954fcbbe27c0e23be3658"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: component.py \u2194 config.py: \u0060src/solace_agent_mesh/agent/proxies/a2a/component.py\u0060 and \u0060src/solace_agent_mesh/agent/proxies/a2a/config.py\u0060 change together 70% of the time (7 of the 10 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. They already sit in the same directory, so if they share structure, extract the common part into one unit; otherwise break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/solace_agent_mesh/agent/proxies/a2a/component.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3530b52d46a3b34c86f2e6e229d62e282f9aa05660630882fc06c659dff28eec"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: service.ts \u2194 ModelEdit.tsx: \u0060client/webui/frontend/src/lib/api/models/service.ts\u0060 and \u0060client/webui/frontend/src/lib/components/models/ModelEdit.tsx\u0060 change together 60% of the time (6 of the 10 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/api/models/service.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8be8517c34b579d65426a4f59dc1dcb43df88b22906dbc6a28e50fc4bf6aaa42"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: ConfigContext.ts \u2194 config.py: \u0060client/webui/frontend/src/lib/contexts/ConfigContext.ts\u0060 and \u0060src/solace_agent_mesh/gateway/http_sse/routers/config.py\u0060 change together 56% of the time (9 of the 16 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/contexts/ConfigContext.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c9b9a4e891a9604948e5a59c7639bea7f13eb4197f0e91bfc9deaa4d437b08e"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: ChatPage.stories.tsx \u2194 StoryProvider.tsx: \u0060client/webui/frontend/src/stories/chat/ChatPage.stories.tsx\u0060 and \u0060client/webui/frontend/src/stories/mocks/StoryProvider.tsx\u0060 change together 55% of the time (6 of the 11 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/stories/chat/ChatPage.stories.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15a5ee6df4b557e8aabe6aa2e38ca02a65d3aa900f395b88c836dccb36aa7d19"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: ChatProvider.tsx \u2194 MockChatProvider.tsx: \u0060client/webui/frontend/src/lib/providers/ChatProvider.tsx\u0060 and \u0060client/webui/frontend/src/stories/mocks/MockChatProvider.tsx\u0060 change together 50% of the time (11 of the 22 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/providers/ChatProvider.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c807c7b3154c6fe6977dffeb1a7eee3b92ac21b1f731f63062a5abd997a0a1b"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: ProjectCards.tsx \u2194 ProjectDetailView.tsx: \u0060client/webui/frontend/src/lib/components/projects/ProjectCards.tsx\u0060 and \u0060client/webui/frontend/src/lib/components/projects/ProjectDetailView.tsx\u0060 change together 50% of the time (7 of the 14 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. They already sit in the same directory, so if they share structure, extract the common part into one unit; otherwise break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/projects/ProjectCards.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b81baf60936cce286e50056dfb0ea51c700dd1778e33ba69a05da07a6a95485a"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: env_step.py \u2194 orchestrator_step.py: \u0060cli/commands/init_cmd/env_step.py\u0060 and \u0060cli/commands/init_cmd/orchestrator_step.py\u0060 change together 50% of the time (6 of the 12 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. They already sit in the same directory, so if they share structure, extract the common part into one unit; otherwise break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"cli/commands/init_cmd/env_step.py"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f27e15918e09f639fb497a11375eb962fb9f57aa20ade474b80e0491a0c579a"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: service.ts \u2194 model_configurations_router.py: \u0060client/webui/frontend/src/lib/api/models/service.ts\u0060 and \u0060src/solace_agent_mesh/services/platform/api/routers/model_configurations_router.py\u0060 change together 50% of the time (5 of the 10 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/api/models/service.ts"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"49626cfa3426cbe82481822df1658b8dac961fd6b10b035cbd0f928c3d1c3480"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: ProjectsPage.tsx \u2194 ProjectProvider.tsx: \u0060client/webui/frontend/src/lib/components/projects/ProjectsPage.tsx\u0060 and \u0060client/webui/frontend/src/lib/providers/ProjectProvider.tsx\u0060 change together 50% of the time (5 of the 10 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/projects/ProjectsPage.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15fde17b61a4748ce64dc5ba42c4ae8c1b8e1a01cdadf8eae668539788fd035d"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: KnowledgeSection.tsx \u2194 ProjectImportDialog.tsx: \u0060client/webui/frontend/src/lib/components/projects/KnowledgeSection.tsx\u0060 and \u0060client/webui/frontend/src/lib/components/projects/ProjectImportDialog.tsx\u0060 change together 50% of the time (5 of the 10 commits that touched the less-changed of the two, renames followed) with no explicit dependency \u2014 a hidden/logical coupling. They already sit in the same directory, so if they share structure, extract the common part into one unit; otherwise break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"client/webui/frontend/src/lib/components/projects/KnowledgeSection.tsx"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7e10b755d654013fd29fef1b53c8408c428f144bdc6d345293877ce743ada96"}},{"ruleId":"D36","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D36","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"20126ed4709526f87d475ff3d3f5a5c0c8e2347aa62f04d622f907f75c430021"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0fcc9186ebfe251f987a7bd4931d68cd7996048ad6e1016e35f3975cda319ae2"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"587b2768856333758dffafaf1aaa81c0b45f8cb538d0c5b9fdfe678ae05b852a"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"fc08861974b16c35cc7c70a73c48dd1677d870cf3607e4b533df59c60bfdf20d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d39746d58b3253a81bef3a67351cf890c6dfbc95f1730b458cc97146621044a0"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e7ab9274ba4aa2befc0a954ad268a16bf6e26fb59d22c94c01cd81ac0edb896d"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"262eca3c21c34b0be25a722a2fb04662b7c6282133dbc2429a097c3e9d8faf62"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"00f13138d9d6886edd2b92a5c855622743aedec3ccf2c657bd8f0f9f228ee513"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4003e27bd0dd8f81a613a8f27bcefded29db14ca3f3c5011f6c9e964c5e9e50e"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"6e5f2db31911a96d0a189b1a04f64158201d39095888f365afbf7f18c4352653"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b3ae24803451cc6a226504b05659b72991ad7d718d8ad0b691fa237214f67c9e"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"8c94b04a801c5793fc82c1628b4705c01387fd078d6cb3bfc192e932c84efee5"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"bb514b5d43000e6602b86b676ba6c9ebda51abead36ea10b7cd18e881224fbd2"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"c575172e4a59a31edd35d00b30ca1a884272cfc5a3dabf1323802c95697abe54"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5074fa055053089f88f4c724b6c9b83b7bc3eac26139f47f20b7c00388f0d6e5"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"1157c7f7529f5f6bf12a3fbb0402c9bf463a062ab8bf4ed10116c2bc90210e1f"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ba5ed7d70da90550506da5dfe0ad30bd4f624e70e7dda2d7970d09db950e30c9"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4996bb9b43b813b08639ca104b684a911012fd0d4ba3bbcac672846a42a975b9"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"95e97a4eed91f5aebd6107c0bc9be94f3ab6727a6d32c40b504d0ad3070b6319"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"5a239815d045dc01009199c08b1ffa5a79f4d2ed04185dcd7235490e9617e2f3"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"86b3f9d140222c7904c8ff7ddd9922fedb496089e48a06abee725a27ea617310"}},{"ruleId":"D38","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"11a7610ae548ac8f1f7ef64340f247c8360cc651c2e3bad3cb408a3053c9986f"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"06e4c6e9390de29e7e4dc030cf7dbdad7207b3fc99e036af1666c3155914194c"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"a96ec673b5d37e5bde30981404c4f0719e559b343e2d9f7e752dd473048292fe"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3365c030d9a0b13e8bbe34956e18ce4fb742ddd3332bd24e955d178bdc2afa97"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"0d942afbea2af6b91d32add83beb73fff99c69037f3d7ec786e59d6946a6ef27"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"4ecda162b1d2ebfe34a2764e35984ec7aa67615fb487a22ebd163ba79331cdc5"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"732083dac526aec747201345f7526c91d60cde0ee6347b04ee82746ec554940c"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e84da67d9dcba17ecb339fdbade61bfcd849feb6d9541015fa20e1d40c3fa086"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"38fb4a103f4584eb12b0f7f00bc156a43eec64ed9263d40eee6027fcac5c648b"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"48c6b6532ddefa5e2698fcb0b4490a983a875e3563ecd0f7c3a1fb221007e62c"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"34764e1d794b3f2450c3d74545b757796a4a7db34fb5de13048ea03d9ef14c22"}},{"ruleId":"D38","level":"warning","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b4bf71dcb0193119be1c22ec9a53b433db7e12707dbd0bf161ae84de41e81031"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"ddbd95dffc72e39aa81da2c482f3cc074d5faeb8e351b5f06823e52f9835f904"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"59349f2f4da311fc85cdc8d1087c1eac01f82bc2065c8bdd6e4b798e0f05552f"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d7e6e5f1211c6b127321614cfd185e302f74542e1dbdba935d7b1b7aae5cfb30"}},{"ruleId":"D38","level":"note","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"e1e8af9d7fe8968d7b8876e887a127f00ec7faebc7dcde6e81b86cfcb7a80a19"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1032","guid":"5f21e517-68aa-a650-9a25-5771ef024637","name":"OWASP Top Ten \u2014 Security Misconfiguration category","shortDescription":{"text":"OWASP Top Ten \u2014 Security Misconfiguration category"},"helpUri":"https://cwe.mitre.org/data/definitions/1032.html"},{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-16","guid":"659db3ea-affc-8453-8add-c1218fbfcb92","name":"Configuration","shortDescription":{"text":"Configuration"},"helpUri":"https://cwe.mitre.org/data/definitions/16.html"},{"id":"CWE-250","guid":"52ee12e8-390a-7351-b1e6-388afa694e54","name":"CWE-250","shortDescription":{"text":"CWE-250"},"helpUri":"https://cwe.mitre.org/data/definitions/250.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-287","guid":"ec161954-9db0-355d-9539-ae741453fd44","name":"CWE-287","shortDescription":{"text":"CWE-287"},"helpUri":"https://cwe.mitre.org/data/definitions/287.html"},{"id":"CWE-327","guid":"e51910ff-67b5-3c51-aa3d-92837d9eab90","name":"CWE-327","shortDescription":{"text":"CWE-327"},"helpUri":"https://cwe.mitre.org/data/definitions/327.html"},{"id":"CWE-353","guid":"09d7e902-d4ee-f05d-ae6c-0a1554d0c18f","name":"CWE-353","shortDescription":{"text":"CWE-353"},"helpUri":"https://cwe.mitre.org/data/definitions/353.html"},{"id":"CWE-489","guid":"b1d97a6c-8316-175f-ade8-b1bfbc14619d","name":"CWE-489","shortDescription":{"text":"CWE-489"},"helpUri":"https://cwe.mitre.org/data/definitions/489.html"},{"id":"CWE-494","guid":"b8a65e0d-e459-4a55-a931-fc1136482375","name":"Download of Code Without Integrity Check","shortDescription":{"text":"Download of Code Without Integrity Check"},"helpUri":"https://cwe.mitre.org/data/definitions/494.html"},{"id":"CWE-532","guid":"1cd8877a-76e8-ce54-b40b-779af23364a0","name":"CWE-532","shortDescription":{"text":"CWE-532"},"helpUri":"https://cwe.mitre.org/data/definitions/532.html"},{"id":"CWE-732","guid":"1da27e8f-b330-7650-ab63-bd61953eae5d","name":"Incorrect Permission Assignment for Critical Resource","shortDescription":{"text":"Incorrect Permission Assignment for Critical Resource"},"helpUri":"https://cwe.mitre.org/data/definitions/732.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-829","guid":"13c33925-97fb-5a5e-b40c-56d328b8a4d7","name":"CWE-829","shortDescription":{"text":"CWE-829"},"helpUri":"https://cwe.mitre.org/data/definitions/829.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":91,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}