icdev 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1105) hide show
  1. icdev/__init__.py +18 -0
  2. icdev/_paths.py +85 -0
  3. icdev/_version.py +3 -0
  4. icdev/data/__init__.py +1 -0
  5. icdev/data/args/__init__.py +1 -0
  6. icdev/data/args/agent_authority.yaml +61 -0
  7. icdev/data/args/agent_config.yaml +355 -0
  8. icdev/data/args/agentic_fitness.yaml +31 -0
  9. icdev/data/args/ai_governance_config.yaml +137 -0
  10. icdev/data/args/atlas_critique_config.yaml +66 -0
  11. icdev/data/args/bedrock_models.yaml +63 -0
  12. icdev/data/args/cicd_config.yaml +82 -0
  13. icdev/data/args/classification_config.yaml +232 -0
  14. icdev/data/args/cli_config.yaml +154 -0
  15. icdev/data/args/cloud_config.yaml +63 -0
  16. icdev/data/args/code_pattern_config.yaml +151 -0
  17. icdev/data/args/code_quality_config.yaml +47 -0
  18. icdev/data/args/companion_registry.yaml +202 -0
  19. icdev/data/args/context_config.yaml +82 -0
  20. icdev/data/args/csp_monitor_config.yaml +268 -0
  21. icdev/data/args/cui_markings.yaml +35 -0
  22. icdev/data/args/db_config.yaml +40 -0
  23. icdev/data/args/deployment_profiles.yaml +248 -0
  24. icdev/data/args/dev_profile_config.yaml +144 -0
  25. icdev/data/args/devsecops_config.yaml +286 -0
  26. icdev/data/args/endpoint_security_config.yaml +137 -0
  27. icdev/data/args/extension_config.yaml +79 -0
  28. icdev/data/args/file_access_tiers.yaml +88 -0
  29. icdev/data/args/framework_registry.yaml +415 -0
  30. icdev/data/args/innovation_config.yaml +431 -0
  31. icdev/data/args/installation_manifest.yaml +1087 -0
  32. icdev/data/args/llm_config.yaml +495 -0
  33. icdev/data/args/maintenance_config.yaml +55 -0
  34. icdev/data/args/memory_config.yaml +83 -0
  35. icdev/data/args/monitoring_config.yaml +127 -0
  36. icdev/data/args/mosa_config.yaml +190 -0
  37. icdev/data/args/nlq_config.yaml +35 -0
  38. icdev/data/args/observability_config.yaml +39 -0
  39. icdev/data/args/observability_tracing_config.yaml +170 -0
  40. icdev/data/args/oscal_tools_config.yaml +43 -0
  41. icdev/data/args/owasp_agentic_config.yaml +171 -0
  42. icdev/data/args/phase_registry.yaml +618 -0
  43. icdev/data/args/project_defaults.yaml +235 -0
  44. icdev/data/args/prompt_chains.yaml +163 -0
  45. icdev/data/args/resilience_config.yaml +50 -0
  46. icdev/data/args/ricoas_config.yaml +191 -0
  47. icdev/data/args/role_personas.yaml +362 -0
  48. icdev/data/args/scaling_config.yaml +176 -0
  49. icdev/data/args/security_gates.yaml +685 -0
  50. icdev/data/args/skill_injection_config.yaml +322 -0
  51. icdev/data/args/spec_config.yaml +53 -0
  52. icdev/data/args/supply_chain_config.yaml +76 -0
  53. icdev/data/args/translation_config.yaml +228 -0
  54. icdev/data/args/workflow_templates/ato_acceleration.yaml +54 -0
  55. icdev/data/args/workflow_templates/build_deploy.yaml +63 -0
  56. icdev/data/args/workflow_templates/full_compliance.yaml +43 -0
  57. icdev/data/args/workflow_templates/security_hardening.yaml +55 -0
  58. icdev/data/args/worktree_config.yaml +34 -0
  59. icdev/data/args/zta_config.yaml +247 -0
  60. icdev/data/context/__init__.py +1 -0
  61. icdev/data/context/agent/__init__.py +1 -0
  62. icdev/data/context/agent/response_schemas/__init__.py +1 -0
  63. icdev/data/context/agent/response_schemas/debate_position.json +46 -0
  64. icdev/data/context/agent/response_schemas/fitness_scorecard.json +74 -0
  65. icdev/data/context/agent/response_schemas/review_decision.json +39 -0
  66. icdev/data/context/agent/response_schemas/task_decomposition.json +82 -0
  67. icdev/data/context/agent/response_schemas/veto_decision.json +40 -0
  68. icdev/data/context/agentic/__init__.py +1 -0
  69. icdev/data/context/agentic/architecture_patterns.md +269 -0
  70. icdev/data/context/agentic/capability_registry.yaml +202 -0
  71. icdev/data/context/agentic/csp_mcp_registry.yaml +280 -0
  72. icdev/data/context/agentic/fitness_rubric.md +56 -0
  73. icdev/data/context/agentic/governance_baseline.md +205 -0
  74. icdev/data/context/ci/__init__.py +1 -0
  75. icdev/data/context/ci/worktree_templates.json +44 -0
  76. icdev/data/context/cloud/__init__.py +1 -0
  77. icdev/data/context/cloud/csp_service_registry.json +739 -0
  78. icdev/data/context/compliance/__init__.py +1 -0
  79. icdev/data/context/compliance/atlas_mitigations.json +293 -0
  80. icdev/data/context/compliance/atlas_techniques.json +833 -0
  81. icdev/data/context/compliance/cisa_sbd_requirements.json +432 -0
  82. icdev/data/context/compliance/cjis_security_policy.json +522 -0
  83. icdev/data/context/compliance/cmmc_practices.json +2494 -0
  84. icdev/data/context/compliance/cmmc_report_template.md +142 -0
  85. icdev/data/context/compliance/cnssi_1253_overlay.json +109 -0
  86. icdev/data/context/compliance/control_crosswalk.json +1914 -0
  87. icdev/data/context/compliance/control_families/__init__.py +1 -0
  88. icdev/data/context/compliance/csp_certifications.json +251 -0
  89. icdev/data/context/compliance/cssp_report_template.md +193 -0
  90. icdev/data/context/compliance/cui_templates/__init__.py +1 -0
  91. icdev/data/context/compliance/cui_templates/banner_block.txt +4 -0
  92. icdev/data/context/compliance/cui_templates/code_header.txt +8 -0
  93. icdev/data/context/compliance/cui_templates/document_template.md +35 -0
  94. icdev/data/context/compliance/data_type_framework_map.json +321 -0
  95. icdev/data/context/compliance/data_type_registry.json +147 -0
  96. icdev/data/context/compliance/dod_cssp_8530.json +463 -0
  97. icdev/data/context/compliance/eu_ai_act_annex_iii.json +108 -0
  98. icdev/data/context/compliance/export_templates/__init__.py +1 -0
  99. icdev/data/context/compliance/export_templates/emass_controls.csv.j2 +4 -0
  100. icdev/data/context/compliance/export_templates/evidence_package.md.j2 +39 -0
  101. icdev/data/context/compliance/export_templates/executive_summary.md.j2 +55 -0
  102. icdev/data/context/compliance/export_templates/poam_tracking.csv.j2 +4 -0
  103. icdev/data/context/compliance/fedramp_20x_ksi_schemas.json +133 -0
  104. icdev/data/context/compliance/fedramp_high_baseline.json +4370 -0
  105. icdev/data/context/compliance/fedramp_moderate_baseline.json +2183 -0
  106. icdev/data/context/compliance/fedramp_report_template.md +181 -0
  107. icdev/data/context/compliance/fips_200_areas.json +362 -0
  108. icdev/data/context/compliance/gao_ai_accountability.json +262 -0
  109. icdev/data/context/compliance/hipaa_security_rule.json +720 -0
  110. icdev/data/context/compliance/hitrust_csf_v11.json +930 -0
  111. icdev/data/context/compliance/impact_level_profiles.json +251 -0
  112. icdev/data/context/compliance/incident_response_template.md +1110 -0
  113. icdev/data/context/compliance/iso27001_2022_controls.json +750 -0
  114. icdev/data/context/compliance/iso27001_nist_bridge.json +382 -0
  115. icdev/data/context/compliance/iso42001_controls.json +254 -0
  116. icdev/data/context/compliance/ivv_checklist_template.md +80 -0
  117. icdev/data/context/compliance/ivv_report_template.md +116 -0
  118. icdev/data/context/compliance/ivv_requirements.json +372 -0
  119. icdev/data/context/compliance/mosa_crosswalk.json +327 -0
  120. icdev/data/context/compliance/mosa_framework.json +250 -0
  121. icdev/data/context/compliance/narrative_templates/AC.md.j2 +101 -0
  122. icdev/data/context/compliance/narrative_templates/AU.md.j2 +106 -0
  123. icdev/data/context/compliance/narrative_templates/IA.md.j2 +104 -0
  124. icdev/data/context/compliance/narrative_templates/SC.md.j2 +102 -0
  125. icdev/data/context/compliance/narrative_templates/SI.md.j2 +111 -0
  126. icdev/data/context/compliance/narrative_templates/__init__.py +1 -0
  127. icdev/data/context/compliance/narrative_templates/default.md.j2 +50 -0
  128. icdev/data/context/compliance/narrative_templates/executive_summary.j2 +27 -0
  129. icdev/data/context/compliance/narrative_templates/poam_milestone.j2 +19 -0
  130. icdev/data/context/compliance/narrative_templates/ssp_section.j2 +11 -0
  131. icdev/data/context/compliance/nist_800_171_controls.json +1552 -0
  132. icdev/data/context/compliance/nist_800_207_crosswalk.json +399 -0
  133. icdev/data/context/compliance/nist_800_207_zta.json +258 -0
  134. icdev/data/context/compliance/nist_800_53.json +324 -0
  135. icdev/data/context/compliance/nist_ai_600_1_genai.json +326 -0
  136. icdev/data/context/compliance/nist_ai_rmf.json +206 -0
  137. icdev/data/context/compliance/nist_sp_800_60_types.json +1667 -0
  138. icdev/data/context/compliance/omb_m25_21_high_impact_ai.json +248 -0
  139. icdev/data/context/compliance/omb_m26_04_unbiased_ai.json +262 -0
  140. icdev/data/context/compliance/owasp_agentic_asi.json +133 -0
  141. icdev/data/context/compliance/owasp_agentic_threats.json +285 -0
  142. icdev/data/context/compliance/owasp_llm_top10.json +274 -0
  143. icdev/data/context/compliance/pci_dss_v4.json +510 -0
  144. icdev/data/context/compliance/poam_template.md +117 -0
  145. icdev/data/context/compliance/safeai_controls.json +512 -0
  146. icdev/data/context/compliance/sbd_report_template.md +77 -0
  147. icdev/data/context/compliance/siem_config_templates/__init__.py +1 -0
  148. icdev/data/context/compliance/siem_config_templates/filebeat.yml +213 -0
  149. icdev/data/context/compliance/siem_config_templates/log_sources.json +208 -0
  150. icdev/data/context/compliance/soc2_trust_criteria.json +661 -0
  151. icdev/data/context/compliance/ssp_template.md +432 -0
  152. icdev/data/context/compliance/stig_templates/__init__.py +1 -0
  153. icdev/data/context/compliance/stig_templates/webapp_stig.json +139 -0
  154. icdev/data/context/compliance/xai_requirements.json +108 -0
  155. icdev/data/context/dashboard/__init__.py +1 -0
  156. icdev/data/context/dashboard/nlq_examples.json +50 -0
  157. icdev/data/context/dashboard/schema_descriptions.json +23 -0
  158. icdev/data/context/integration/__init__.py +1 -0
  159. icdev/data/context/integration/approval_workflows.json +32 -0
  160. icdev/data/context/integration/gitlab_field_mappings.json +33 -0
  161. icdev/data/context/integration/jira_field_mappings.json +32 -0
  162. icdev/data/context/integration/reqif_export_schema.json +23 -0
  163. icdev/data/context/integration/servicenow_field_mappings.json +22 -0
  164. icdev/data/context/languages/__init__.py +1 -0
  165. icdev/data/context/languages/framework_patterns.json +205 -0
  166. icdev/data/context/languages/language_registry.json +279 -0
  167. icdev/data/context/llm/__init__.py +1 -0
  168. icdev/data/context/llm/example_provider.py +86 -0
  169. icdev/data/context/mbse/__init__.py +1 -0
  170. icdev/data/context/mbse/des_report_template.md +162 -0
  171. icdev/data/context/mbse/des_requirements.json +411 -0
  172. icdev/data/context/mbse/digital_thread_patterns.json +403 -0
  173. icdev/data/context/mbse/reqif_schema.json +280 -0
  174. icdev/data/context/mbse/sysml_element_types.json +432 -0
  175. icdev/data/context/modernization/__init__.py +1 -0
  176. icdev/data/context/modernization/db_type_mappings.json +148 -0
  177. icdev/data/context/modernization/decomposition_patterns.json +284 -0
  178. icdev/data/context/modernization/framework_migration_patterns.json +359 -0
  179. icdev/data/context/modernization/migration_report_template.md +168 -0
  180. icdev/data/context/modernization/seven_rs_catalog.json +369 -0
  181. icdev/data/context/modernization/version_upgrade_rules.json +279 -0
  182. icdev/data/context/oscal/NIST_SP-800-53_rev5_catalog.json +254987 -0
  183. icdev/data/context/oscal/README.md +43 -0
  184. icdev/data/context/patterns/__init__.py +1 -0
  185. icdev/data/context/profiles/__init__.py +1 -0
  186. icdev/data/context/profiles/dod_baseline_v1.yaml +145 -0
  187. icdev/data/context/profiles/fedramp_baseline_v1.yaml +143 -0
  188. icdev/data/context/profiles/financial_baseline_v1.yaml +142 -0
  189. icdev/data/context/profiles/healthcare_baseline_v1.yaml +135 -0
  190. icdev/data/context/profiles/law_enforcement_v1.yaml +129 -0
  191. icdev/data/context/profiles/startup_v1.yaml +134 -0
  192. icdev/data/context/requirements/__init__.py +1 -0
  193. icdev/data/context/requirements/ambiguity_patterns.json +97 -0
  194. icdev/data/context/requirements/boundary_impact_rules.json +123 -0
  195. icdev/data/context/requirements/default_constitutions.json +67 -0
  196. icdev/data/context/requirements/document_extraction_rules.json +58 -0
  197. icdev/data/context/requirements/gap_patterns.json +108 -0
  198. icdev/data/context/requirements/readiness_rubric.json +78 -0
  199. icdev/data/context/requirements/red_alternative_patterns.json +210 -0
  200. icdev/data/context/requirements/safe_templates.json +72 -0
  201. icdev/data/context/requirements/spec_quality_checklist.json +122 -0
  202. icdev/data/context/simulation/__init__.py +1 -0
  203. icdev/data/context/simulation/architecture_patterns.json +36 -0
  204. icdev/data/context/simulation/coa_templates.json +38 -0
  205. icdev/data/context/simulation/cost_models.json +23 -0
  206. icdev/data/context/simulation/risk_categories.json +46 -0
  207. icdev/data/context/supply_chain/__init__.py +1 -0
  208. icdev/data/context/supply_chain/isa_templates.json +129 -0
  209. icdev/data/context/supply_chain/nist_800_161_controls.json +247 -0
  210. icdev/data/context/supply_chain/scrm_risk_matrix.json +147 -0
  211. icdev/data/context/templates/__init__.py +1 -0
  212. icdev/data/context/templates/ansible/__init__.py +1 -0
  213. icdev/data/context/templates/ansible/playbooks/__init__.py +1 -0
  214. icdev/data/context/templates/ansible/roles/__init__.py +1 -0
  215. icdev/data/context/templates/gitlab_ci/__init__.py +1 -0
  216. icdev/data/context/templates/grafana/__init__.py +1 -0
  217. icdev/data/context/templates/kubernetes/__init__.py +1 -0
  218. icdev/data/context/templates/project/__init__.py +1 -0
  219. icdev/data/context/templates/project/api/__init__.py +1 -0
  220. icdev/data/context/templates/project/cli/__init__.py +1 -0
  221. icdev/data/context/templates/project/data_pipeline/__init__.py +1 -0
  222. icdev/data/context/templates/project/iac/__init__.py +1 -0
  223. icdev/data/context/templates/project/javascript_frontend/__init__.py +1 -0
  224. icdev/data/context/templates/project/javascript_frontend/src/__init__.py +1 -0
  225. icdev/data/context/templates/project/javascript_frontend/tests/__init__.py +1 -0
  226. icdev/data/context/templates/project/microservice/__init__.py +1 -0
  227. icdev/data/context/templates/project/python_backend/__init__.py +1 -0
  228. icdev/data/context/templates/project/python_backend/src/__init__.py +1 -0
  229. icdev/data/context/templates/project/python_backend/tests/__init__.py +1 -0
  230. icdev/data/context/templates/project/python_backend/tests/features/__init__.py +1 -0
  231. icdev/data/context/templates/project/python_backend/tests/steps/__init__.py +1 -0
  232. icdev/data/context/templates/terraform/__init__.py +1 -0
  233. icdev/data/context/templates/terraform/govcloud_base/__init__.py +1 -0
  234. icdev/data/context/templates/terraform/modules/__init__.py +1 -0
  235. icdev/data/context/tone/__init__.py +1 -0
  236. icdev/data/context/translation/dependency_mappings.json +186 -0
  237. icdev/data/context/translation/type_mappings.json +149 -0
  238. icdev/data/docs/README.md +187 -0
  239. icdev/data/docs/__init__.py +1 -0
  240. icdev/data/docs/admin/gateway-guide.md +338 -0
  241. icdev/data/docs/admin/marketplace-guide.md +396 -0
  242. icdev/data/docs/admin/monitoring-guide.md +509 -0
  243. icdev/data/docs/architecture/compliance-framework.md +764 -0
  244. icdev/data/docs/architecture/database-schema.md +689 -0
  245. icdev/data/docs/architecture/gotcha-framework.md +518 -0
  246. icdev/data/docs/architecture/multi-agent-system.md +603 -0
  247. icdev/data/docs/dx/README.md +106 -0
  248. icdev/data/docs/dx/__init__.py +1 -0
  249. icdev/data/docs/dx/ci-cd-integration.md +378 -0
  250. icdev/data/docs/dx/claude-code-guide.md +213 -0
  251. icdev/data/docs/dx/companion-guide.md +232 -0
  252. icdev/data/docs/dx/dev-profiles.md +309 -0
  253. icdev/data/docs/dx/icdev-yaml-spec.md +219 -0
  254. icdev/data/docs/dx/integration-tiers.md +279 -0
  255. icdev/data/docs/dx/llm-routing-guide.md +456 -0
  256. icdev/data/docs/dx/quickstart.md +192 -0
  257. icdev/data/docs/dx/sdk-reference.md +356 -0
  258. icdev/data/docs/dx/unified-mcp-setup.md +525 -0
  259. icdev/data/docs/features/__init__.py +1 -0
  260. icdev/data/docs/features/phase-01-gotcha-framework.md +249 -0
  261. icdev/data/docs/features/phase-02-atlas-build-workflow.md +223 -0
  262. icdev/data/docs/features/phase-03-tdd-bdd-testing.md +261 -0
  263. icdev/data/docs/features/phase-04-nist-compliance.md +255 -0
  264. icdev/data/docs/features/phase-05-security-scanning.md +229 -0
  265. icdev/data/docs/features/phase-06-infrastructure-deployment.md +288 -0
  266. icdev/data/docs/features/phase-07-code-review-gates.md +276 -0
  267. icdev/data/docs/features/phase-08-self-healing.md +223 -0
  268. icdev/data/docs/features/phase-09-monitoring-observability.md +230 -0
  269. icdev/data/docs/features/phase-10-dashboard-web-ui.md +218 -0
  270. icdev/data/docs/features/phase-11-multi-agent-architecture.md +272 -0
  271. icdev/data/docs/features/phase-12-integration-testing.md +228 -0
  272. icdev/data/docs/features/phase-13-cicd-integration.md +257 -0
  273. icdev/data/docs/features/phase-14-secure-by-design-ivv.md +240 -0
  274. icdev/data/docs/features/phase-15-maintenance-audit.md +192 -0
  275. icdev/data/docs/features/phase-16-ato-acceleration.md +228 -0
  276. icdev/data/docs/features/phase-17-multi-framework-compliance.md +223 -0
  277. icdev/data/docs/features/phase-18-mbse-integration.md +242 -0
  278. icdev/data/docs/features/phase-19-agentic-generation.md +202 -0
  279. icdev/data/docs/features/phase-20-fips-security-categorization.md +198 -0
  280. icdev/data/docs/features/phase-21-saas-multi-tenancy.md +273 -0
  281. icdev/data/docs/features/phase-22-federated-gotcha-marketplace.md +242 -0
  282. icdev/data/docs/features/phase-23-universal-compliance-platform.md +238 -0
  283. icdev/data/docs/features/phase-24-devsecops-pipeline-security.md +198 -0
  284. icdev/data/docs/features/phase-25-zero-trust-architecture.md +220 -0
  285. icdev/data/docs/features/phase-26-dod-mosa.md +205 -0
  286. icdev/data/docs/features/phase-27-cli-capabilities.md +222 -0
  287. icdev/data/docs/features/phase-28-remote-command-gateway.md +235 -0
  288. icdev/data/docs/features/phase-29-proactive-monitoring.md +212 -0
  289. icdev/data/docs/features/phase-30-dashboard-auth.md +215 -0
  290. icdev/data/docs/features/phase-31-dashboard-ux-low-impact.md +188 -0
  291. icdev/data/docs/features/phase-32-dashboard-ux-medium-impact.md +223 -0
  292. icdev/data/docs/features/phase-33-modular-installation.md +218 -0
  293. icdev/data/docs/features/phase-34-dev-profiles.md +239 -0
  294. icdev/data/docs/features/phase-35-innovation-engine.md +257 -0
  295. icdev/data/docs/features/phase-36-evolutionary-intelligence.md +351 -0
  296. icdev/data/docs/features/phase-37-mitre-atlas-integration.md +485 -0
  297. icdev/data/docs/features/phase-38-cloud-agnostic-architecture.md +1033 -0
  298. icdev/data/docs/features/phase-39-observability-operations.md +178 -0
  299. icdev/data/docs/features/phase-40-nlq-compliance-queries.md +176 -0
  300. icdev/data/docs/features/phase-41-parallel-cicd.md +169 -0
  301. icdev/data/docs/features/phase-42-framework-planning.md +177 -0
  302. icdev/data/docs/features/phase-43-cross-language-translation.md +225 -0
  303. icdev/data/docs/features/phase-44-innovation-adaptation.md +227 -0
  304. icdev/data/docs/features/phase-45-owasp-agentic-security.md +239 -0
  305. icdev/data/docs/features/phase-46-observability-traceability-xai.md +240 -0
  306. icdev/data/docs/features/phase-47-unified-mcp-gateway.md +257 -0
  307. icdev/data/docs/features/phase-48-ai-transparency.md +203 -0
  308. icdev/data/docs/features/phase-49-ai-accountability.md +243 -0
  309. icdev/data/docs/features/phase-50-ai-governance-intake-chat.md +195 -0
  310. icdev/data/docs/features/phase-51-unified-chat-dashboard.md +240 -0
  311. icdev/data/docs/features/phase-52-code-intelligence.md +244 -0
  312. icdev/data/docs/features/phase-53-fedramp-20x-owasp-asi.md +359 -0
  313. icdev/data/docs/features/phase-54-slsa-swft-orchestration.md +379 -0
  314. icdev/data/docs/features/phase-55-a2a-v03-mcp-oauth.md +322 -0
  315. icdev/data/docs/features/phase-56-evidence-lineage.md +352 -0
  316. icdev/data/docs/features/phase-57-eu-ai-act-iron-bank.md +319 -0
  317. icdev/data/docs/features/phase-58-creative-engine.md +370 -0
  318. icdev/data/docs/features/phase-59-govcon-intelligence.md +535 -0
  319. icdev/data/docs/features/phase-60-cpmp.md +528 -0
  320. icdev/data/docs/features/phase-61-orchestration-improvements.md +534 -0
  321. icdev/data/docs/operations/dashboard-guide.md +354 -0
  322. icdev/data/docs/operations/deployment-guide.md +556 -0
  323. icdev/data/docs/operations/saas-admin-guide.md +439 -0
  324. icdev/data/docs/operations/security-operations-guide.md +733 -0
  325. icdev/data/docs/runbooks/backup-restore.md +412 -0
  326. icdev/data/docs/runbooks/troubleshooting.md +499 -0
  327. icdev/data/features/__init__.py +1 -0
  328. icdev/data/features/cicd_integration.feature +41 -0
  329. icdev/data/features/compliance_gates.feature +46 -0
  330. icdev/data/features/dashboard.feature +72 -0
  331. icdev/data/features/environment.py +25 -0
  332. icdev/data/features/project_management.feature +32 -0
  333. icdev/data/features/requirements_intake.feature +42 -0
  334. icdev/data/features/saas_platform.feature +53 -0
  335. icdev/data/features/security_scanning.feature +36 -0
  336. icdev/data/features/steps/__init__.py +1 -0
  337. icdev/data/features/steps/cicd_steps.py +465 -0
  338. icdev/data/features/steps/compliance_steps.py +308 -0
  339. icdev/data/features/steps/dashboard_steps.py +88 -0
  340. icdev/data/features/steps/project_steps.py +126 -0
  341. icdev/data/features/steps/requirements_intake_steps.py +689 -0
  342. icdev/data/features/steps/saas_platform_steps.py +572 -0
  343. icdev/data/features/steps/security_steps.py +236 -0
  344. icdev/data/features/steps/testing_steps.py +226 -0
  345. icdev/data/features/testing_pipeline.feature +42 -0
  346. icdev/data/goals/__init__.py +1 -0
  347. icdev/data/goals/agent_management.md +144 -0
  348. icdev/data/goals/agentic_generation.md +345 -0
  349. icdev/data/goals/agentic_threat_model.md +309 -0
  350. icdev/data/goals/ai_accountability.md +90 -0
  351. icdev/data/goals/ai_governance_intake.md +132 -0
  352. icdev/data/goals/ai_transparency.md +76 -0
  353. icdev/data/goals/atlas_integration.md +405 -0
  354. icdev/data/goals/ato_acceleration.md +139 -0
  355. icdev/data/goals/boundary_supply_chain.md +206 -0
  356. icdev/data/goals/build_app.md +544 -0
  357. icdev/data/goals/cicd_integration.md +86 -0
  358. icdev/data/goals/claude_dir_maintenance.md +77 -0
  359. icdev/data/goals/cli_capabilities.md +340 -0
  360. icdev/data/goals/cloud_agnostic.md +312 -0
  361. icdev/data/goals/code_intelligence.md +197 -0
  362. icdev/data/goals/code_review.md +94 -0
  363. icdev/data/goals/compliance_workflow.md +858 -0
  364. icdev/data/goals/continuous_harmonization.md +140 -0
  365. icdev/data/goals/cross_language_translation.md +171 -0
  366. icdev/data/goals/dashboard.md +142 -0
  367. icdev/data/goals/deploy_workflow.md +390 -0
  368. icdev/data/goals/devsecops_workflow.md +408 -0
  369. icdev/data/goals/evolutionary_intelligence.md +305 -0
  370. icdev/data/goals/external_integration.md +113 -0
  371. icdev/data/goals/framework_planning.md +63 -0
  372. icdev/data/goals/init_project.md +235 -0
  373. icdev/data/goals/innovation_engine.md +199 -0
  374. icdev/data/goals/integration_testing.md +189 -0
  375. icdev/data/goals/maintenance_audit.md +196 -0
  376. icdev/data/goals/manifest.md +56 -0
  377. icdev/data/goals/mbse_integration.md +504 -0
  378. icdev/data/goals/modernization_workflow.md +618 -0
  379. icdev/data/goals/monitoring.md +126 -0
  380. icdev/data/goals/mosa_workflow.md +463 -0
  381. icdev/data/goals/multi_agent_orchestration.md +68 -0
  382. icdev/data/goals/nlq_compliance.md +63 -0
  383. icdev/data/goals/observability.md +64 -0
  384. icdev/data/goals/observability_traceability_xai.md +154 -0
  385. icdev/data/goals/owasp_agentic_security.md +395 -0
  386. icdev/data/goals/parallel_cicd.md +61 -0
  387. icdev/data/goals/requirements_intake.md +213 -0
  388. icdev/data/goals/sbd_ivv_workflow.md +195 -0
  389. icdev/data/goals/security_categorization.md +133 -0
  390. icdev/data/goals/security_scan.md +381 -0
  391. icdev/data/goals/self_healing.md +120 -0
  392. icdev/data/goals/simulation_engine.md +111 -0
  393. icdev/data/goals/tdd_workflow.md +403 -0
  394. icdev/data/goals/zero_trust_architecture.md +403 -0
  395. icdev/data/hardprompts/__init__.py +1 -0
  396. icdev/data/hardprompts/agent/__init__.py +1 -0
  397. icdev/data/hardprompts/agent/agentic_architect.md +100 -0
  398. icdev/data/hardprompts/agent/debate_prompt.md +32 -0
  399. icdev/data/hardprompts/agent/fitness_evaluation.md +48 -0
  400. icdev/data/hardprompts/agent/governance_review.md +214 -0
  401. icdev/data/hardprompts/agent/reviewer_prompt.md +34 -0
  402. icdev/data/hardprompts/agent/skill_design.md +172 -0
  403. icdev/data/hardprompts/agent/task_decomposition.md +275 -0
  404. icdev/data/hardprompts/agent/veto_check_prompt.md +33 -0
  405. icdev/data/hardprompts/architect/__init__.py +1 -0
  406. icdev/data/hardprompts/architect/api_design.md +283 -0
  407. icdev/data/hardprompts/architect/data_model.md +277 -0
  408. icdev/data/hardprompts/architect/system_design.md +180 -0
  409. icdev/data/hardprompts/builder/__init__.py +1 -0
  410. icdev/data/hardprompts/builder/code_generation.md +59 -0
  411. icdev/data/hardprompts/builder/refactor.md +58 -0
  412. icdev/data/hardprompts/builder/scaffold_project.md +69 -0
  413. icdev/data/hardprompts/builder/test_generation.md +87 -0
  414. icdev/data/hardprompts/ci/__init__.py +1 -0
  415. icdev/data/hardprompts/ci/worktree_setup.md +35 -0
  416. icdev/data/hardprompts/compliance/__init__.py +1 -0
  417. icdev/data/hardprompts/compliance/cmmc_assessment.md +63 -0
  418. icdev/data/hardprompts/compliance/cssp_assessment.md +75 -0
  419. icdev/data/hardprompts/compliance/cui_marking.md +86 -0
  420. icdev/data/hardprompts/compliance/fedramp_assessment.md +55 -0
  421. icdev/data/hardprompts/compliance/ivv_assessment.md +96 -0
  422. icdev/data/hardprompts/compliance/poam_generation.md +57 -0
  423. icdev/data/hardprompts/compliance/sbd_assessment.md +101 -0
  424. icdev/data/hardprompts/compliance/security_categorization.md +74 -0
  425. icdev/data/hardprompts/compliance/ssp_generation.md +56 -0
  426. icdev/data/hardprompts/compliance/stig_evaluation.md +63 -0
  427. icdev/data/hardprompts/dashboard/__init__.py +1 -0
  428. icdev/data/hardprompts/dashboard/nlq_system_prompt.md +26 -0
  429. icdev/data/hardprompts/infra/__init__.py +1 -0
  430. icdev/data/hardprompts/infra/k8s_manifests.md +118 -0
  431. icdev/data/hardprompts/infra/pipeline_generation.md +160 -0
  432. icdev/data/hardprompts/infra/terraform_generation.md +92 -0
  433. icdev/data/hardprompts/integration/__init__.py +1 -0
  434. icdev/data/hardprompts/integration/approval_review.md +17 -0
  435. icdev/data/hardprompts/integration/jira_mapping.md +25 -0
  436. icdev/data/hardprompts/integration/servicenow_mapping.md +14 -0
  437. icdev/data/hardprompts/knowledge/__init__.py +1 -0
  438. icdev/data/hardprompts/knowledge/pattern_detection.md +73 -0
  439. icdev/data/hardprompts/knowledge/recommendation_engine.md +90 -0
  440. icdev/data/hardprompts/knowledge/root_cause_analysis.md +91 -0
  441. icdev/data/hardprompts/maintenance/__init__.py +1 -0
  442. icdev/data/hardprompts/maintenance/maintenance_assessment.md +82 -0
  443. icdev/data/hardprompts/mbse/__init__.py +1 -0
  444. icdev/data/hardprompts/mbse/digital_thread.md +67 -0
  445. icdev/data/hardprompts/mbse/model_import.md +62 -0
  446. icdev/data/hardprompts/mbse/model_to_code.md +65 -0
  447. icdev/data/hardprompts/modernization/__init__.py +1 -0
  448. icdev/data/hardprompts/modernization/legacy_analysis.md +93 -0
  449. icdev/data/hardprompts/modernization/migration_planning.md +150 -0
  450. icdev/data/hardprompts/modernization/seven_r_assessment.md +107 -0
  451. icdev/data/hardprompts/requirements/__init__.py +1 -0
  452. icdev/data/hardprompts/requirements/bdd_generation.md +35 -0
  453. icdev/data/hardprompts/requirements/clarification_prioritization.md +29 -0
  454. icdev/data/hardprompts/requirements/decomposition.md +60 -0
  455. icdev/data/hardprompts/requirements/document_extraction.md +45 -0
  456. icdev/data/hardprompts/requirements/gap_detection.md +70 -0
  457. icdev/data/hardprompts/requirements/intake_conversation.md +101 -0
  458. icdev/data/hardprompts/requirements/readiness_assessment.md +39 -0
  459. icdev/data/hardprompts/requirements/spec_quality.md +33 -0
  460. icdev/data/hardprompts/requirements/traceability_analysis.md +23 -0
  461. icdev/data/hardprompts/security/__init__.py +1 -0
  462. icdev/data/hardprompts/security/endpoint_security.md +78 -0
  463. icdev/data/hardprompts/security/threat_model.md +70 -0
  464. icdev/data/hardprompts/security/vulnerability_assessment.md +81 -0
  465. icdev/data/hardprompts/simulation/__init__.py +1 -0
  466. icdev/data/hardprompts/simulation/architecture_impact.md +27 -0
  467. icdev/data/hardprompts/simulation/coa_alternative.md +27 -0
  468. icdev/data/hardprompts/simulation/coa_generation.md +25 -0
  469. icdev/data/hardprompts/simulation/compliance_impact.md +28 -0
  470. icdev/data/hardprompts/simulation/cost_estimation.md +33 -0
  471. icdev/data/hardprompts/simulation/risk_assessment.md +28 -0
  472. icdev/data/hardprompts/translation/code_translation.md +68 -0
  473. icdev/data/hardprompts/translation/dependency_suggestion.md +44 -0
  474. icdev/data/hardprompts/translation/test_translation.md +64 -0
  475. icdev/data/hardprompts/translation/translation_repair.md +59 -0
  476. icdev/py.typed +0 -0
  477. icdev/tools/__init__.py +1 -0
  478. icdev/tools/_gen_formatter.py +12 -0
  479. icdev/tools/a2a/__init__.py +1 -0
  480. icdev/tools/a2a/agent_cards/architect.json +43 -0
  481. icdev/tools/a2a/agent_cards/builder.json +50 -0
  482. icdev/tools/a2a/agent_cards/compliance.json +57 -0
  483. icdev/tools/a2a/agent_cards/devsecops.json +71 -0
  484. icdev/tools/a2a/agent_cards/infra.json +57 -0
  485. icdev/tools/a2a/agent_cards/integration.json +57 -0
  486. icdev/tools/a2a/agent_cards/knowledge.json +43 -0
  487. icdev/tools/a2a/agent_cards/mbse.json +57 -0
  488. icdev/tools/a2a/agent_cards/modernization.json +50 -0
  489. icdev/tools/a2a/agent_cards/monitor.json +43 -0
  490. icdev/tools/a2a/agent_cards/orchestrator.json +36 -0
  491. icdev/tools/a2a/agent_cards/requirements_analyst.json +64 -0
  492. icdev/tools/a2a/agent_cards/security.json +50 -0
  493. icdev/tools/a2a/agent_cards/simulation.json +57 -0
  494. icdev/tools/a2a/agent_cards/supply_chain.json +50 -0
  495. icdev/tools/a2a/agent_client.py +349 -0
  496. icdev/tools/a2a/agent_registry.py +412 -0
  497. icdev/tools/a2a/agent_server.py +579 -0
  498. icdev/tools/a2a/task.py +200 -0
  499. icdev/tools/agent/__init__.py +2 -0
  500. icdev/tools/agent/a2a_agent_card_generator.py +285 -0
  501. icdev/tools/agent/a2a_discovery_server.py +250 -0
  502. icdev/tools/agent/agent_executor.py +529 -0
  503. icdev/tools/agent/agent_memory.py +557 -0
  504. icdev/tools/agent/agent_models.py +51 -0
  505. icdev/tools/agent/atlas_critique.py +908 -0
  506. icdev/tools/agent/authority.py +443 -0
  507. icdev/tools/agent/bedrock_client.py +1075 -0
  508. icdev/tools/agent/collaboration.py +871 -0
  509. icdev/tools/agent/dispatcher_mode.py +665 -0
  510. icdev/tools/agent/mailbox.py +575 -0
  511. icdev/tools/agent/prompt_chain_executor.py +1064 -0
  512. icdev/tools/agent/session_purpose.py +350 -0
  513. icdev/tools/agent/skill_router.py +638 -0
  514. icdev/tools/agent/skill_selector.py +486 -0
  515. icdev/tools/agent/team_orchestrator.py +1108 -0
  516. icdev/tools/agent/token_tracker.py +290 -0
  517. icdev/tools/analysis/__init__.py +1 -0
  518. icdev/tools/analysis/code_analyzer.py +780 -0
  519. icdev/tools/analysis/runtime_feedback.py +389 -0
  520. icdev/tools/audit/__init__.py +1 -0
  521. icdev/tools/audit/audit_logger.py +196 -0
  522. icdev/tools/audit/audit_query.py +157 -0
  523. icdev/tools/audit/decision_recorder.py +72 -0
  524. icdev/tools/builder/__init__.py +1 -0
  525. icdev/tools/builder/agentic_fitness.py +534 -0
  526. icdev/tools/builder/agentic_test_templates/test_a2a_callback.py +117 -0
  527. icdev/tools/builder/agentic_test_templates/test_a2a_lifecycle.feature +52 -0
  528. icdev/tools/builder/agentic_test_templates/test_agent_card.feature +37 -0
  529. icdev/tools/builder/agentic_test_templates/test_agent_health.py +128 -0
  530. icdev/tools/builder/agentic_test_templates/test_memory_system.feature +50 -0
  531. icdev/tools/builder/agentic_test_templates/test_skill_execution.feature +40 -0
  532. icdev/tools/builder/app_blueprint.py +1583 -0
  533. icdev/tools/builder/child_app_generator.py +2852 -0
  534. icdev/tools/builder/claude_md_generator.py +1734 -0
  535. icdev/tools/builder/code_generator.py +3703 -0
  536. icdev/tools/builder/db_init_generator.py +1709 -0
  537. icdev/tools/builder/dev_profile_manager.py +954 -0
  538. icdev/tools/builder/formatter.py +768 -0
  539. icdev/tools/builder/goal_adapter.py +592 -0
  540. icdev/tools/builder/gotcha_validator.py +812 -0
  541. icdev/tools/builder/language_support.py +441 -0
  542. icdev/tools/builder/linter.py +976 -0
  543. icdev/tools/builder/profile_detector.py +657 -0
  544. icdev/tools/builder/profile_md_generator.py +723 -0
  545. icdev/tools/builder/scaffolder.py +1590 -0
  546. icdev/tools/builder/scaffolder_extended.py +1771 -0
  547. icdev/tools/builder/test_writer.py +950 -0
  548. icdev/tools/ci/__init__.py +2 -0
  549. icdev/tools/ci/connectors/__init__.py +2 -0
  550. icdev/tools/ci/connectors/base_connector.py +80 -0
  551. icdev/tools/ci/connectors/connector_registry.py +188 -0
  552. icdev/tools/ci/connectors/mattermost_connector.py +159 -0
  553. icdev/tools/ci/connectors/slack_connector.py +197 -0
  554. icdev/tools/ci/core/__init__.py +2 -0
  555. icdev/tools/ci/core/air_gap_detector.py +115 -0
  556. icdev/tools/ci/core/comment_handler.py +192 -0
  557. icdev/tools/ci/core/conversation_manager.py +479 -0
  558. icdev/tools/ci/core/event_envelope.py +500 -0
  559. icdev/tools/ci/core/event_router.py +443 -0
  560. icdev/tools/ci/core/failure_parser.py +397 -0
  561. icdev/tools/ci/core/recovery_engine.py +527 -0
  562. icdev/tools/ci/modules/__init__.py +2 -0
  563. icdev/tools/ci/modules/agent.py +271 -0
  564. icdev/tools/ci/modules/git_ops.py +175 -0
  565. icdev/tools/ci/modules/state.py +117 -0
  566. icdev/tools/ci/modules/vcs.py +303 -0
  567. icdev/tools/ci/modules/workflow_ops.py +295 -0
  568. icdev/tools/ci/modules/worktree.py +340 -0
  569. icdev/tools/ci/pipeline_config_generator.py +558 -0
  570. icdev/tools/ci/triggers/__init__.py +2 -0
  571. icdev/tools/ci/triggers/gitlab_task_monitor.py +330 -0
  572. icdev/tools/ci/triggers/poll_trigger.py +237 -0
  573. icdev/tools/ci/triggers/webhook_server.py +356 -0
  574. icdev/tools/ci/workflows/__init__.py +2 -0
  575. icdev/tools/ci/workflows/icdev_build.py +140 -0
  576. icdev/tools/ci/workflows/icdev_comply.py +284 -0
  577. icdev/tools/ci/workflows/icdev_document.py +152 -0
  578. icdev/tools/ci/workflows/icdev_e2e.py +188 -0
  579. icdev/tools/ci/workflows/icdev_patch.py +186 -0
  580. icdev/tools/ci/workflows/icdev_plan.py +202 -0
  581. icdev/tools/ci/workflows/icdev_plan_build.py +41 -0
  582. icdev/tools/ci/workflows/icdev_plan_build_test.py +46 -0
  583. icdev/tools/ci/workflows/icdev_plan_build_test_review.py +47 -0
  584. icdev/tools/ci/workflows/icdev_review.py +126 -0
  585. icdev/tools/ci/workflows/icdev_sdlc.py +261 -0
  586. icdev/tools/ci/workflows/icdev_test.py +240 -0
  587. icdev/tools/cli/__init__.py +1 -0
  588. icdev/tools/cli/output_formatter.py +756 -0
  589. icdev/tools/cli_formatter.py +42 -0
  590. icdev/tools/cloud/__init__.py +11 -0
  591. icdev/tools/cloud/cloud_mode_manager.py +364 -0
  592. icdev/tools/cloud/csp_changelog.py +383 -0
  593. icdev/tools/cloud/csp_health_checker.py +268 -0
  594. icdev/tools/cloud/csp_monitor.py +951 -0
  595. icdev/tools/cloud/iam_provider.py +593 -0
  596. icdev/tools/cloud/kms_provider.py +346 -0
  597. icdev/tools/cloud/monitoring_provider.py +628 -0
  598. icdev/tools/cloud/provider_factory.py +376 -0
  599. icdev/tools/cloud/region_validator.py +345 -0
  600. icdev/tools/cloud/registry_provider.py +563 -0
  601. icdev/tools/cloud/secrets_provider.py +486 -0
  602. icdev/tools/cloud/storage_provider.py +446 -0
  603. icdev/tools/compat/__init__.py +21 -0
  604. icdev/tools/compat/cli_harmonizer.py +251 -0
  605. icdev/tools/compat/datetime_utils.py +18 -0
  606. icdev/tools/compat/db_utils.py +160 -0
  607. icdev/tools/compat/platform_utils.py +123 -0
  608. icdev/tools/compliance/__init__.py +1 -0
  609. icdev/tools/compliance/accountability_manager.py +397 -0
  610. icdev/tools/compliance/ai_accountability_audit.py +294 -0
  611. icdev/tools/compliance/ai_impact_assessor.py +273 -0
  612. icdev/tools/compliance/ai_incident_response.py +301 -0
  613. icdev/tools/compliance/ai_inventory_manager.py +239 -0
  614. icdev/tools/compliance/ai_reassessment_scheduler.py +256 -0
  615. icdev/tools/compliance/ai_transparency_audit.py +248 -0
  616. icdev/tools/compliance/atlas_assessor.py +278 -0
  617. icdev/tools/compliance/atlas_report_generator.py +1211 -0
  618. icdev/tools/compliance/base_assessor.py +597 -0
  619. icdev/tools/compliance/cato_monitor.py +1385 -0
  620. icdev/tools/compliance/cato_scheduler.py +699 -0
  621. icdev/tools/compliance/cjis_assessor.py +76 -0
  622. icdev/tools/compliance/classification_manager.py +1353 -0
  623. icdev/tools/compliance/cmmc_assessor.py +1491 -0
  624. icdev/tools/compliance/cmmc_report_generator.py +1100 -0
  625. icdev/tools/compliance/compliance_detector.py +463 -0
  626. icdev/tools/compliance/compliance_exporter.py +427 -0
  627. icdev/tools/compliance/compliance_status.py +825 -0
  628. icdev/tools/compliance/control_mapper.py +505 -0
  629. icdev/tools/compliance/crosswalk_engine.py +1203 -0
  630. icdev/tools/compliance/cssp_assessor.py +1045 -0
  631. icdev/tools/compliance/cssp_evidence_collector.py +729 -0
  632. icdev/tools/compliance/cssp_report_generator.py +1116 -0
  633. icdev/tools/compliance/cui_marker.py +388 -0
  634. icdev/tools/compliance/diagram_validator.py +600 -0
  635. icdev/tools/compliance/emass/__init__.py +2 -0
  636. icdev/tools/compliance/emass/emass_client.py +840 -0
  637. icdev/tools/compliance/emass/emass_export.py +777 -0
  638. icdev/tools/compliance/emass/emass_sync.py +826 -0
  639. icdev/tools/compliance/eu_ai_act_classifier.py +194 -0
  640. icdev/tools/compliance/evidence_collector.py +468 -0
  641. icdev/tools/compliance/fairness_assessor.py +316 -0
  642. icdev/tools/compliance/fedramp_assessor.py +1808 -0
  643. icdev/tools/compliance/fedramp_authorization_packager.py +137 -0
  644. icdev/tools/compliance/fedramp_ksi_generator.py +355 -0
  645. icdev/tools/compliance/fedramp_report_generator.py +1128 -0
  646. icdev/tools/compliance/fips199_categorizer.py +881 -0
  647. icdev/tools/compliance/fips200_validator.py +315 -0
  648. icdev/tools/compliance/gao_ai_assessor.py +231 -0
  649. icdev/tools/compliance/gao_evidence_builder.py +308 -0
  650. icdev/tools/compliance/hipaa_assessor.py +78 -0
  651. icdev/tools/compliance/hitrust_assessor.py +49 -0
  652. icdev/tools/compliance/incident_response_plan.py +718 -0
  653. icdev/tools/compliance/iso27001_assessor.py +92 -0
  654. icdev/tools/compliance/iso42001_assessor.py +114 -0
  655. icdev/tools/compliance/ivv_assessor.py +2327 -0
  656. icdev/tools/compliance/ivv_report_generator.py +1662 -0
  657. icdev/tools/compliance/model_card_generator.py +297 -0
  658. icdev/tools/compliance/mosa_assessor.py +117 -0
  659. icdev/tools/compliance/multi_regime_assessor.py +451 -0
  660. icdev/tools/compliance/narrative_generator.py +1013 -0
  661. icdev/tools/compliance/nist_800_207_assessor.py +191 -0
  662. icdev/tools/compliance/nist_ai_600_1_assessor.py +188 -0
  663. icdev/tools/compliance/nist_ai_rmf_assessor.py +110 -0
  664. icdev/tools/compliance/nist_lookup.py +245 -0
  665. icdev/tools/compliance/omb_m25_21_assessor.py +228 -0
  666. icdev/tools/compliance/omb_m26_04_assessor.py +188 -0
  667. icdev/tools/compliance/oscal_catalog_adapter.py +395 -0
  668. icdev/tools/compliance/oscal_generator.py +2170 -0
  669. icdev/tools/compliance/oscal_tools.py +1182 -0
  670. icdev/tools/compliance/owasp_agentic_assessor.py +226 -0
  671. icdev/tools/compliance/owasp_asi_assessor.py +200 -0
  672. icdev/tools/compliance/owasp_llm_assessor.py +244 -0
  673. icdev/tools/compliance/pci_dss_assessor.py +80 -0
  674. icdev/tools/compliance/pi_compliance_tracker.py +1461 -0
  675. icdev/tools/compliance/poam_generator.py +405 -0
  676. icdev/tools/compliance/resolve_marking.py +283 -0
  677. icdev/tools/compliance/sbd_assessor.py +2068 -0
  678. icdev/tools/compliance/sbd_report_generator.py +1236 -0
  679. icdev/tools/compliance/sbom_generator.py +1008 -0
  680. icdev/tools/compliance/siem_config_generator.py +674 -0
  681. icdev/tools/compliance/slsa_attestation_generator.py +490 -0
  682. icdev/tools/compliance/soc2_assessor.py +77 -0
  683. icdev/tools/compliance/ssp_generator.py +573 -0
  684. icdev/tools/compliance/stig_checker.py +727 -0
  685. icdev/tools/compliance/swft_evidence_bundler.py +337 -0
  686. icdev/tools/compliance/system_card_generator.py +309 -0
  687. icdev/tools/compliance/traceability_matrix.py +1281 -0
  688. icdev/tools/compliance/universal_classification_manager.py +1172 -0
  689. icdev/tools/compliance/xacta/__init__.py +2 -0
  690. icdev/tools/compliance/xacta/xacta_client.py +449 -0
  691. icdev/tools/compliance/xacta/xacta_export.py +557 -0
  692. icdev/tools/compliance/xacta/xacta_sync.py +333 -0
  693. icdev/tools/compliance/xai_assessor.py +231 -0
  694. icdev/tools/dashboard/__init__.py +1 -0
  695. icdev/tools/dashboard/api/__init__.py +1 -0
  696. icdev/tools/dashboard/api/_pipeline_state.py +17 -0
  697. icdev/tools/dashboard/api/activity.py +206 -0
  698. icdev/tools/dashboard/api/admin.py +176 -0
  699. icdev/tools/dashboard/api/agents.py +53 -0
  700. icdev/tools/dashboard/api/ai_accountability.py +163 -0
  701. icdev/tools/dashboard/api/ai_transparency.py +198 -0
  702. icdev/tools/dashboard/api/audit.py +58 -0
  703. icdev/tools/dashboard/api/batch.py +666 -0
  704. icdev/tools/dashboard/api/chat.py +241 -0
  705. icdev/tools/dashboard/api/cicd.py +219 -0
  706. icdev/tools/dashboard/api/code_quality.py +223 -0
  707. icdev/tools/dashboard/api/compliance.py +171 -0
  708. icdev/tools/dashboard/api/cpmp.py +915 -0
  709. icdev/tools/dashboard/api/diagrams.py +65 -0
  710. icdev/tools/dashboard/api/events.py +250 -0
  711. icdev/tools/dashboard/api/evidence.py +99 -0
  712. icdev/tools/dashboard/api/fedramp_20x.py +77 -0
  713. icdev/tools/dashboard/api/govcon.py +1095 -0
  714. icdev/tools/dashboard/api/intake.py +1171 -0
  715. icdev/tools/dashboard/api/lineage.py +163 -0
  716. icdev/tools/dashboard/api/metrics.py +155 -0
  717. icdev/tools/dashboard/api/nlq.py +72 -0
  718. icdev/tools/dashboard/api/orchestration.py +472 -0
  719. icdev/tools/dashboard/api/oscal.py +183 -0
  720. icdev/tools/dashboard/api/prod_audit.py +183 -0
  721. icdev/tools/dashboard/api/projects.py +191 -0
  722. icdev/tools/dashboard/api/proposals.py +1084 -0
  723. icdev/tools/dashboard/api/traces.py +363 -0
  724. icdev/tools/dashboard/api/usage.py +234 -0
  725. icdev/tools/dashboard/app.py +1986 -0
  726. icdev/tools/dashboard/auth.py +500 -0
  727. icdev/tools/dashboard/byok.py +245 -0
  728. icdev/tools/dashboard/chat_manager.py +675 -0
  729. icdev/tools/dashboard/config.py +116 -0
  730. icdev/tools/dashboard/diagram_definitions.py +642 -0
  731. icdev/tools/dashboard/nlq_processor.py +323 -0
  732. icdev/tools/dashboard/phase_loader.py +136 -0
  733. icdev/tools/dashboard/sse_manager.py +89 -0
  734. icdev/tools/dashboard/state_tracker.py +267 -0
  735. icdev/tools/dashboard/static/css/style.css +706 -0
  736. icdev/tools/dashboard/static/css/ux.css +2047 -0
  737. icdev/tools/dashboard/static/js/activity.js +322 -0
  738. icdev/tools/dashboard/static/js/api.js +161 -0
  739. icdev/tools/dashboard/static/js/batch.js +814 -0
  740. icdev/tools/dashboard/static/js/charts.js +618 -0
  741. icdev/tools/dashboard/static/js/chat.js +1514 -0
  742. icdev/tools/dashboard/static/js/kanban.js +113 -0
  743. icdev/tools/dashboard/static/js/live.js +569 -0
  744. icdev/tools/dashboard/static/js/mermaid-icdev.js +332 -0
  745. icdev/tools/dashboard/static/js/proposals.js +588 -0
  746. icdev/tools/dashboard/static/js/shortcuts.js +544 -0
  747. icdev/tools/dashboard/static/js/tables.js +652 -0
  748. icdev/tools/dashboard/static/js/tour.js +524 -0
  749. icdev/tools/dashboard/static/js/ux.js +942 -0
  750. icdev/tools/dashboard/templates/404.html +10 -0
  751. icdev/tools/dashboard/templates/activity.html +80 -0
  752. icdev/tools/dashboard/templates/admin/users.html +144 -0
  753. icdev/tools/dashboard/templates/ai_accountability.html +235 -0
  754. icdev/tools/dashboard/templates/ai_transparency.html +263 -0
  755. icdev/tools/dashboard/templates/base.html +104 -0
  756. icdev/tools/dashboard/templates/batch.html +23 -0
  757. icdev/tools/dashboard/templates/chat.html +332 -0
  758. icdev/tools/dashboard/templates/children.html +149 -0
  759. icdev/tools/dashboard/templates/cicd.html +253 -0
  760. icdev/tools/dashboard/templates/code_quality.html +214 -0
  761. icdev/tools/dashboard/templates/cpmp/cor_detail.html +220 -0
  762. icdev/tools/dashboard/templates/cpmp/cor_portal.html +91 -0
  763. icdev/tools/dashboard/templates/cpmp/deliverable_detail.html +197 -0
  764. icdev/tools/dashboard/templates/cpmp/detail.html +578 -0
  765. icdev/tools/dashboard/templates/cpmp/portfolio.html +202 -0
  766. icdev/tools/dashboard/templates/dev_profiles.html +304 -0
  767. icdev/tools/dashboard/templates/diagrams.html +224 -0
  768. icdev/tools/dashboard/templates/events/timeline.html +232 -0
  769. icdev/tools/dashboard/templates/evidence.html +134 -0
  770. icdev/tools/dashboard/templates/fedramp_20x.html +207 -0
  771. icdev/tools/dashboard/templates/gateway.html +244 -0
  772. icdev/tools/dashboard/templates/govcon/capabilities.html +135 -0
  773. icdev/tools/dashboard/templates/govcon/pipeline.html +214 -0
  774. icdev/tools/dashboard/templates/govcon/requirements.html +120 -0
  775. icdev/tools/dashboard/templates/index.html +254 -0
  776. icdev/tools/dashboard/templates/lineage.html +141 -0
  777. icdev/tools/dashboard/templates/login.html +51 -0
  778. icdev/tools/dashboard/templates/monitoring/overview.html +193 -0
  779. icdev/tools/dashboard/templates/orchestration/dashboard.html +545 -0
  780. icdev/tools/dashboard/templates/oscal.html +263 -0
  781. icdev/tools/dashboard/templates/phases.html +150 -0
  782. icdev/tools/dashboard/templates/prod_audit.html +280 -0
  783. icdev/tools/dashboard/templates/profile.html +183 -0
  784. icdev/tools/dashboard/templates/projects/detail.html +583 -0
  785. icdev/tools/dashboard/templates/projects/list.html +47 -0
  786. icdev/tools/dashboard/templates/proposals/detail.html +1253 -0
  787. icdev/tools/dashboard/templates/proposals/list.html +179 -0
  788. icdev/tools/dashboard/templates/proposals/section_detail.html +193 -0
  789. icdev/tools/dashboard/templates/provenance.html +181 -0
  790. icdev/tools/dashboard/templates/query/nlq.html +234 -0
  791. icdev/tools/dashboard/templates/quick_paths.html +69 -0
  792. icdev/tools/dashboard/templates/traces.html +155 -0
  793. icdev/tools/dashboard/templates/translation_detail.html +199 -0
  794. icdev/tools/dashboard/templates/translations.html +162 -0
  795. icdev/tools/dashboard/templates/usage.html +225 -0
  796. icdev/tools/dashboard/templates/wizard.html +539 -0
  797. icdev/tools/dashboard/templates/xai.html +208 -0
  798. icdev/tools/dashboard/ux_helpers.py +962 -0
  799. icdev/tools/dashboard/websocket.py +81 -0
  800. icdev/tools/db/__init__.py +1 -0
  801. icdev/tools/db/backup.py +312 -0
  802. icdev/tools/db/backup_manager.py +832 -0
  803. icdev/tools/db/init_icdev_db.py +5900 -0
  804. icdev/tools/db/migrate.py +178 -0
  805. icdev/tools/db/migration_runner.py +549 -0
  806. icdev/tools/db/migrations/001_baseline/meta.json +9 -0
  807. icdev/tools/db/migrations/001_baseline/up.py +68 -0
  808. icdev/tools/db/migrations/002_memory_enhancements/down.sql +8 -0
  809. icdev/tools/db/migrations/002_memory_enhancements/meta.json +9 -0
  810. icdev/tools/db/migrations/002_memory_enhancements/up.py +118 -0
  811. icdev/tools/db/migrations/003_dev_profiles/meta.json +8 -0
  812. icdev/tools/db/migrations/003_dev_profiles/up.py +93 -0
  813. icdev/tools/db/migrations/004_innovation_engine/down.py +19 -0
  814. icdev/tools/db/migrations/004_innovation_engine/up.py +227 -0
  815. icdev/tools/db/migrations/005_phase_37_ai_security/down.py +19 -0
  816. icdev/tools/db/migrations/005_phase_37_ai_security/up.py +258 -0
  817. icdev/tools/db/migrations/006_phase_36_evolution/down.py +21 -0
  818. icdev/tools/db/migrations/006_phase_36_evolution/up.py +323 -0
  819. icdev/tools/db/migrations/007_phase_38_cloud/down.py +14 -0
  820. icdev/tools/db/migrations/007_phase_38_cloud/up.py +110 -0
  821. icdev/tools/db/migrations/008_phase36_37_integration/up.py +55 -0
  822. icdev/tools/db/migrations/__init__.py +2 -0
  823. icdev/tools/devsecops/__init__.py +2 -0
  824. icdev/tools/devsecops/attestation_manager.py +458 -0
  825. icdev/tools/devsecops/network_segmentation_generator.py +614 -0
  826. icdev/tools/devsecops/pdp_config_generator.py +1256 -0
  827. icdev/tools/devsecops/pipeline_security_generator.py +484 -0
  828. icdev/tools/devsecops/policy_generator.py +653 -0
  829. icdev/tools/devsecops/profile_manager.py +388 -0
  830. icdev/tools/devsecops/service_mesh_generator.py +1073 -0
  831. icdev/tools/devsecops/zta_maturity_scorer.py +368 -0
  832. icdev/tools/devsecops/zta_terraform_generator.py +1303 -0
  833. icdev/tools/dx/__init__.py +3 -0
  834. icdev/tools/dx/companion.py +266 -0
  835. icdev/tools/dx/instruction_generator.py +753 -0
  836. icdev/tools/dx/mcp_config_generator.py +282 -0
  837. icdev/tools/dx/skill_translator.py +425 -0
  838. icdev/tools/dx/tool_detector.py +144 -0
  839. icdev/tools/extensions/__init__.py +21 -0
  840. icdev/tools/extensions/builtins/010_ai_governance_chat.py +277 -0
  841. icdev/tools/extensions/builtins/__init__.py +2 -0
  842. icdev/tools/extensions/extension_manager.py +455 -0
  843. icdev/tools/infra/__init__.py +1 -0
  844. icdev/tools/infra/ansible_generator.py +869 -0
  845. icdev/tools/infra/dockerfile_generator.py +361 -0
  846. icdev/tools/infra/infra_status.py +393 -0
  847. icdev/tools/infra/ironbank_metadata_generator.py +411 -0
  848. icdev/tools/infra/k8s_generator.py +1002 -0
  849. icdev/tools/infra/pipeline_generator.py +832 -0
  850. icdev/tools/infra/rollback.py +400 -0
  851. icdev/tools/infra/terraform_generator.py +1142 -0
  852. icdev/tools/infra/terraform_generator_azure.py +1254 -0
  853. icdev/tools/infra/terraform_generator_gcp.py +953 -0
  854. icdev/tools/infra/terraform_generator_ibm.py +360 -0
  855. icdev/tools/infra/terraform_generator_oci.py +919 -0
  856. icdev/tools/infra/terraform_generator_onprem.py +319 -0
  857. icdev/tools/innovation/__init__.py +8 -0
  858. icdev/tools/innovation/competitive_intel.py +492 -0
  859. icdev/tools/innovation/innovation_manager.py +681 -0
  860. icdev/tools/innovation/introspective_analyzer.py +774 -0
  861. icdev/tools/innovation/register_external_patterns.py +440 -0
  862. icdev/tools/innovation/signal_ranker.py +1038 -0
  863. icdev/tools/innovation/solution_generator.py +697 -0
  864. icdev/tools/innovation/standards_monitor.py +466 -0
  865. icdev/tools/innovation/trend_detector.py +1046 -0
  866. icdev/tools/innovation/triage_engine.py +1149 -0
  867. icdev/tools/innovation/web_scanner.py +894 -0
  868. icdev/tools/installer/__init__.py +1 -0
  869. icdev/tools/installer/compliance_configurator.py +637 -0
  870. icdev/tools/installer/installer.py +1711 -0
  871. icdev/tools/installer/module_registry.py +805 -0
  872. icdev/tools/installer/platform_setup.py +961 -0
  873. icdev/tools/integration/__init__.py +2 -0
  874. icdev/tools/integration/approval_manager.py +561 -0
  875. icdev/tools/integration/doors_exporter.py +627 -0
  876. icdev/tools/integration/gitlab_connector.py +784 -0
  877. icdev/tools/integration/jira_connector.py +774 -0
  878. icdev/tools/integration/servicenow_connector.py +693 -0
  879. icdev/tools/knowledge/__init__.py +1 -0
  880. icdev/tools/knowledge/knowledge_ingest.py +293 -0
  881. icdev/tools/knowledge/pattern_detector.py +693 -0
  882. icdev/tools/knowledge/recommendation_engine.py +461 -0
  883. icdev/tools/knowledge/self_heal_analyzer.py +504 -0
  884. icdev/tools/llm/__init__.py +72 -0
  885. icdev/tools/llm/anthropic_provider.py +170 -0
  886. icdev/tools/llm/azure_openai_provider.py +338 -0
  887. icdev/tools/llm/bedrock_provider.py +315 -0
  888. icdev/tools/llm/embedding_provider.py +438 -0
  889. icdev/tools/llm/gemini_provider.py +381 -0
  890. icdev/tools/llm/ibm_watsonx_provider.py +232 -0
  891. icdev/tools/llm/oci_genai_provider.py +462 -0
  892. icdev/tools/llm/ollama_provider.py +340 -0
  893. icdev/tools/llm/openai_provider.py +225 -0
  894. icdev/tools/llm/provider.py +355 -0
  895. icdev/tools/llm/provider_sdk.py +175 -0
  896. icdev/tools/llm/router.py +780 -0
  897. icdev/tools/llm/vertex_ai_provider.py +374 -0
  898. icdev/tools/maintenance/__init__.py +2 -0
  899. icdev/tools/maintenance/dependency_scanner.py +1030 -0
  900. icdev/tools/maintenance/maintenance_auditor.py +815 -0
  901. icdev/tools/maintenance/remediation_engine.py +966 -0
  902. icdev/tools/maintenance/vulnerability_checker.py +987 -0
  903. icdev/tools/mbse/__init__.py +3 -0
  904. icdev/tools/mbse/des_assessor.py +1186 -0
  905. icdev/tools/mbse/des_report_generator.py +800 -0
  906. icdev/tools/mbse/diagram_extractor.py +811 -0
  907. icdev/tools/mbse/digital_thread.py +1665 -0
  908. icdev/tools/mbse/model_code_generator.py +1122 -0
  909. icdev/tools/mbse/model_control_mapper.py +420 -0
  910. icdev/tools/mbse/pi_model_tracker.py +1093 -0
  911. icdev/tools/mbse/reqif_parser.py +1483 -0
  912. icdev/tools/mbse/sync_engine.py +1805 -0
  913. icdev/tools/mbse/xmi_parser.py +1573 -0
  914. icdev/tools/mcp/__init__.py +1 -0
  915. icdev/tools/mcp/base_server.py +535 -0
  916. icdev/tools/mcp/builder_server.py +725 -0
  917. icdev/tools/mcp/compliance_server.py +1407 -0
  918. icdev/tools/mcp/context_indexer.py +199 -0
  919. icdev/tools/mcp/context_server.py +305 -0
  920. icdev/tools/mcp/core_server.py +679 -0
  921. icdev/tools/mcp/devsecops_server.py +432 -0
  922. icdev/tools/mcp/gap_handlers.py +1079 -0
  923. icdev/tools/mcp/gateway_server.py +339 -0
  924. icdev/tools/mcp/generate_registry.py +623 -0
  925. icdev/tools/mcp/infra_server.py +264 -0
  926. icdev/tools/mcp/innovation_server.py +316 -0
  927. icdev/tools/mcp/integration_server.py +527 -0
  928. icdev/tools/mcp/knowledge_server.py +429 -0
  929. icdev/tools/mcp/maintenance_server.py +248 -0
  930. icdev/tools/mcp/marketplace_server.py +499 -0
  931. icdev/tools/mcp/mbse_server.py +398 -0
  932. icdev/tools/mcp/modernization_server.py +496 -0
  933. icdev/tools/mcp/observability_server.py +354 -0
  934. icdev/tools/mcp/requirements_server.py +415 -0
  935. icdev/tools/mcp/simulation_server.py +468 -0
  936. icdev/tools/mcp/standalone/__init__.py +2 -0
  937. icdev/tools/mcp/standalone/builder.py +59 -0
  938. icdev/tools/mcp/standalone/compliance.py +59 -0
  939. icdev/tools/mcp/standalone/core.py +59 -0
  940. icdev/tools/mcp/standalone/knowledge.py +59 -0
  941. icdev/tools/mcp/standalone/maintenance.py +59 -0
  942. icdev/tools/mcp/supply_chain_server.py +476 -0
  943. icdev/tools/mcp/tool_registry.py +2008 -0
  944. icdev/tools/mcp/unified_server.py +158 -0
  945. icdev/tools/memory/__init__.py +2 -0
  946. icdev/tools/memory/auto_capture.py +347 -0
  947. icdev/tools/memory/embed_memory.py +158 -0
  948. icdev/tools/memory/history_compressor.py +334 -0
  949. icdev/tools/memory/hybrid_search.py +236 -0
  950. icdev/tools/memory/maintenance_cron.py +289 -0
  951. icdev/tools/memory/memory_consolidation.py +444 -0
  952. icdev/tools/memory/memory_db.py +133 -0
  953. icdev/tools/memory/memory_read.py +102 -0
  954. icdev/tools/memory/memory_write.py +222 -0
  955. icdev/tools/memory/semantic_search.py +139 -0
  956. icdev/tools/memory/time_decay.py +435 -0
  957. icdev/tools/modernization/__init__.py +3 -0
  958. icdev/tools/modernization/architecture_extractor.py +734 -0
  959. icdev/tools/modernization/compliance_bridge.py +1499 -0
  960. icdev/tools/modernization/db_migration_planner.py +1385 -0
  961. icdev/tools/modernization/doc_generator.py +1428 -0
  962. icdev/tools/modernization/framework_migrator.py +1525 -0
  963. icdev/tools/modernization/legacy_analyzer.py +1948 -0
  964. icdev/tools/modernization/migration_code_generator.py +1639 -0
  965. icdev/tools/modernization/migration_report_generator.py +1653 -0
  966. icdev/tools/modernization/migration_tracker.py +1726 -0
  967. icdev/tools/modernization/monolith_decomposer.py +1508 -0
  968. icdev/tools/modernization/seven_r_assessor.py +1658 -0
  969. icdev/tools/modernization/strangler_fig_manager.py +1705 -0
  970. icdev/tools/modernization/ui_analyzer.py +771 -0
  971. icdev/tools/modernization/version_migrator.py +1392 -0
  972. icdev/tools/monitor/__init__.py +1 -0
  973. icdev/tools/monitor/alert_correlator.py +495 -0
  974. icdev/tools/monitor/auto_resolver.py +612 -0
  975. icdev/tools/monitor/health_checker.py +509 -0
  976. icdev/tools/monitor/heartbeat_daemon.py +792 -0
  977. icdev/tools/monitor/log_analyzer.py +516 -0
  978. icdev/tools/monitor/metric_collector.py +496 -0
  979. icdev/tools/mosa/__init__.py +10 -0
  980. icdev/tools/mosa/icd_generator.py +370 -0
  981. icdev/tools/mosa/modular_design_analyzer.py +683 -0
  982. icdev/tools/mosa/mosa_code_enforcer.py +349 -0
  983. icdev/tools/mosa/tsp_generator.py +265 -0
  984. icdev/tools/observability/__init__.py +100 -0
  985. icdev/tools/observability/genai_attributes.py +88 -0
  986. icdev/tools/observability/instrumentation.py +140 -0
  987. icdev/tools/observability/mlflow_exporter.py +194 -0
  988. icdev/tools/observability/otel_tracer.py +168 -0
  989. icdev/tools/observability/provenance/__init__.py +3 -0
  990. icdev/tools/observability/provenance/prov_recorder.py +324 -0
  991. icdev/tools/observability/shap/__init__.py +3 -0
  992. icdev/tools/observability/shap/agent_shap.py +275 -0
  993. icdev/tools/observability/sqlite_tracer.py +361 -0
  994. icdev/tools/observability/trace_context.py +205 -0
  995. icdev/tools/observability/tracer.py +230 -0
  996. icdev/tools/orchestration/__init__.py +2 -0
  997. icdev/tools/orchestration/workflow_composer.py +361 -0
  998. icdev/tools/project/__init__.py +1 -0
  999. icdev/tools/project/manifest_loader.py +418 -0
  1000. icdev/tools/project/project_create.py +350 -0
  1001. icdev/tools/project/project_list.py +174 -0
  1002. icdev/tools/project/project_scaffold.py +1715 -0
  1003. icdev/tools/project/project_status.py +479 -0
  1004. icdev/tools/project/session_context_builder.py +757 -0
  1005. icdev/tools/project/validate_manifest.py +55 -0
  1006. icdev/tools/registry/__init__.py +10 -0
  1007. icdev/tools/registry/absorption_engine.py +832 -0
  1008. icdev/tools/registry/capability_evaluator.py +668 -0
  1009. icdev/tools/registry/child_registry.py +617 -0
  1010. icdev/tools/registry/cross_pollinator.py +1065 -0
  1011. icdev/tools/registry/genome_manager.py +671 -0
  1012. icdev/tools/registry/learning_collector.py +912 -0
  1013. icdev/tools/registry/propagation_manager.py +942 -0
  1014. icdev/tools/registry/staging_manager.py +742 -0
  1015. icdev/tools/registry/telemetry_collector.py +423 -0
  1016. icdev/tools/requirements/__init__.py +1 -0
  1017. icdev/tools/requirements/ai_governance_scorer.py +208 -0
  1018. icdev/tools/requirements/boundary_analyzer.py +1293 -0
  1019. icdev/tools/requirements/clarification_engine.py +618 -0
  1020. icdev/tools/requirements/complexity_scorer.py +387 -0
  1021. icdev/tools/requirements/consistency_analyzer.py +803 -0
  1022. icdev/tools/requirements/constitution_manager.py +605 -0
  1023. icdev/tools/requirements/decomposition_engine.py +778 -0
  1024. icdev/tools/requirements/document_extractor.py +1016 -0
  1025. icdev/tools/requirements/elicitation_techniques.py +519 -0
  1026. icdev/tools/requirements/gap_detector.py +271 -0
  1027. icdev/tools/requirements/intake_engine.py +2188 -0
  1028. icdev/tools/requirements/prd_generator.py +847 -0
  1029. icdev/tools/requirements/prd_validator.py +595 -0
  1030. icdev/tools/requirements/readiness_scorer.py +313 -0
  1031. icdev/tools/requirements/spec_organizer.py +1029 -0
  1032. icdev/tools/requirements/spec_quality_checker.py +1097 -0
  1033. icdev/tools/requirements/traceability_builder.py +579 -0
  1034. icdev/tools/resilience/__init__.py +34 -0
  1035. icdev/tools/resilience/circuit_breaker.py +340 -0
  1036. icdev/tools/resilience/correlation.py +150 -0
  1037. icdev/tools/resilience/errors.py +81 -0
  1038. icdev/tools/resilience/retry.py +95 -0
  1039. icdev/tools/schemas/__init__.py +27 -0
  1040. icdev/tools/schemas/chat.py +61 -0
  1041. icdev/tools/schemas/compliance.py +56 -0
  1042. icdev/tools/schemas/core.py +85 -0
  1043. icdev/tools/schemas/innovation.py +37 -0
  1044. icdev/tools/schemas/validation.py +109 -0
  1045. icdev/tools/sdk/__init__.py +3 -0
  1046. icdev/tools/sdk/icdev_client.py +218 -0
  1047. icdev/tools/security/__init__.py +1 -0
  1048. icdev/tools/security/agent_output_validator.py +330 -0
  1049. icdev/tools/security/agent_trust_scorer.py +466 -0
  1050. icdev/tools/security/ai_bom_generator.py +725 -0
  1051. icdev/tools/security/ai_telemetry_logger.py +469 -0
  1052. icdev/tools/security/atlas_red_team.py +543 -0
  1053. icdev/tools/security/code_pattern_scanner.py +378 -0
  1054. icdev/tools/security/confabulation_detector.py +271 -0
  1055. icdev/tools/security/container_scanner.py +491 -0
  1056. icdev/tools/security/dependency_auditor.py +944 -0
  1057. icdev/tools/security/endpoint_security_scanner.py +579 -0
  1058. icdev/tools/security/mcp_tool_authorizer.py +243 -0
  1059. icdev/tools/security/prompt_injection_detector.py +737 -0
  1060. icdev/tools/security/sast_runner.py +948 -0
  1061. icdev/tools/security/secret_detector.py +378 -0
  1062. icdev/tools/security/tool_chain_validator.py +357 -0
  1063. icdev/tools/security/vuln_scanner.py +539 -0
  1064. icdev/tools/simulation/__init__.py +2 -0
  1065. icdev/tools/simulation/coa_generator.py +1552 -0
  1066. icdev/tools/simulation/monte_carlo.py +758 -0
  1067. icdev/tools/simulation/scenario_manager.py +1073 -0
  1068. icdev/tools/simulation/simulation_engine.py +1104 -0
  1069. icdev/tools/supply_chain/__init__.py +2 -0
  1070. icdev/tools/supply_chain/cve_triager.py +705 -0
  1071. icdev/tools/supply_chain/dependency_graph.py +645 -0
  1072. icdev/tools/supply_chain/isa_manager.py +540 -0
  1073. icdev/tools/supply_chain/scrm_assessor.py +546 -0
  1074. icdev/tools/testing/__init__.py +2 -0
  1075. icdev/tools/testing/acceptance_validator.py +411 -0
  1076. icdev/tools/testing/claude_dir_validator.py +831 -0
  1077. icdev/tools/testing/data_types.py +199 -0
  1078. icdev/tools/testing/e2e_runner.py +715 -0
  1079. icdev/tools/testing/fuzz_cli.py +306 -0
  1080. icdev/tools/testing/health_check.py +483 -0
  1081. icdev/tools/testing/platform_check.py +143 -0
  1082. icdev/tools/testing/production_audit.py +1862 -0
  1083. icdev/tools/testing/production_remediate.py +804 -0
  1084. icdev/tools/testing/screenshot_validator.py +539 -0
  1085. icdev/tools/testing/smoke_test.py +283 -0
  1086. icdev/tools/testing/test_agent_models.py +117 -0
  1087. icdev/tools/testing/test_orchestrator.py +957 -0
  1088. icdev/tools/testing/utils.py +229 -0
  1089. icdev/tools/translation/__init__.py +17 -0
  1090. icdev/tools/translation/code_translator.py +550 -0
  1091. icdev/tools/translation/dependency_mapper.py +277 -0
  1092. icdev/tools/translation/feature_map.py +395 -0
  1093. icdev/tools/translation/project_assembler.py +439 -0
  1094. icdev/tools/translation/source_extractor.py +609 -0
  1095. icdev/tools/translation/test_translator.py +333 -0
  1096. icdev/tools/translation/translation_manager.py +582 -0
  1097. icdev/tools/translation/translation_validator.py +662 -0
  1098. icdev/tools/translation/type_checker.py +371 -0
  1099. icdev-1.0.0.dist-info/METADATA +868 -0
  1100. icdev-1.0.0.dist-info/RECORD +1105 -0
  1101. icdev-1.0.0.dist-info/WHEEL +5 -0
  1102. icdev-1.0.0.dist-info/entry_points.txt +9 -0
  1103. icdev-1.0.0.dist-info/licenses/LICENSE +254 -0
  1104. icdev-1.0.0.dist-info/licenses/NOTICE +268 -0
  1105. icdev-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1079 @@
1
+ #!/usr/bin/env python3
2
+ # CUI // SP-CTI
3
+ """Gap handlers — MCP tool handlers for CLI tools not yet exposed via MCP.
4
+
5
+ These 55 handler functions bridge the gap between existing CLI tools and
6
+ the unified MCP gateway server. Each handler follows one of two patterns:
7
+
8
+ Pattern A (preferred): Direct Python import when tool has a clean API.
9
+ Pattern B (fallback): Subprocess wrapper invoking CLI with --json flag.
10
+
11
+ All handlers accept args: dict and return dict (JSON-serializable).
12
+ Organized by category matching the tool_registry.py categories.
13
+ """
14
+
15
+ import json
16
+ import logging
17
+ import os
18
+ import subprocess
19
+ import sys
20
+ from pathlib import Path
21
+ from icdev._paths import get_project_root
22
+
23
+ BASE_DIR = get_project_root()
24
+ DB_PATH = Path(os.environ.get("ICDEV_DB_PATH", str(BASE_DIR / "data" / "icdev.db")))
25
+
26
+ logger = logging.getLogger("mcp.gap_handlers")
27
+
28
+
29
+ # ---------------------------------------------------------------------------
30
+ # Helpers
31
+ # ---------------------------------------------------------------------------
32
+
33
+ def _run_cli(script_path: str, cli_args: list = None, timeout: int = 300) -> dict:
34
+ """Run a CLI tool as subprocess with --json output.
35
+
36
+ Args:
37
+ script_path: Relative path from BASE_DIR (e.g. "tools/testing/production_audit.py").
38
+ cli_args: Additional CLI arguments.
39
+ timeout: Subprocess timeout in seconds.
40
+
41
+ Returns:
42
+ Parsed JSON dict on success, or {"error": ...} on failure.
43
+ """
44
+ cmd = [sys.executable, str(BASE_DIR / script_path), "--json"]
45
+ if cli_args:
46
+ cmd.extend(cli_args)
47
+
48
+ try:
49
+ proc = subprocess.run(
50
+ cmd,
51
+ capture_output=True,
52
+ text=True,
53
+ timeout=timeout,
54
+ cwd=str(BASE_DIR),
55
+ stdin=subprocess.DEVNULL,
56
+ )
57
+ if proc.returncode == 0 and proc.stdout.strip():
58
+ try:
59
+ return json.loads(proc.stdout)
60
+ except json.JSONDecodeError:
61
+ return {"output": proc.stdout[:4000], "returncode": 0}
62
+ return {
63
+ "error": proc.stderr[:2000] if proc.stderr else f"Exit code {proc.returncode}",
64
+ "stdout": proc.stdout[:2000] if proc.stdout else "",
65
+ "returncode": proc.returncode,
66
+ }
67
+ except subprocess.TimeoutExpired:
68
+ return {"error": f"Timeout after {timeout}s", "script": script_path}
69
+ except FileNotFoundError:
70
+ return {"error": f"Script not found: {script_path}"}
71
+ except Exception as exc:
72
+ return {"error": str(exc)}
73
+
74
+
75
+ # ===========================================================================
76
+ # Category: translation (Phase 43 — Cross-Language Translation)
77
+ # ===========================================================================
78
+
79
+ def handle_translate_code(args: dict) -> dict:
80
+ """Full 5-phase translation pipeline."""
81
+ cli_args = []
82
+ for flag, key in [
83
+ ("--source-path", "source_path"), ("--source-language", "source_language"),
84
+ ("--target-language", "target_language"), ("--output-dir", "output_dir"),
85
+ ("--project-id", "project_id"), ("--candidates", "candidates"),
86
+ ]:
87
+ if args.get(key):
88
+ cli_args.extend([flag, str(args[key])])
89
+ if args.get("validate"):
90
+ cli_args.append("--validate")
91
+ if args.get("dry_run"):
92
+ cli_args.append("--dry-run")
93
+ if args.get("compliance_bridge"):
94
+ cli_args.append("--compliance-bridge")
95
+ return _run_cli("tools/translation/translation_manager.py", cli_args, timeout=600)
96
+
97
+
98
+ def handle_extract_source_ir(args: dict) -> dict:
99
+ """Phase 1: Extract source code to language-agnostic IR."""
100
+ cli_args = []
101
+ for flag, key in [
102
+ ("--source-path", "source_path"), ("--language", "language"),
103
+ ("--output-ir", "output_ir"), ("--project-id", "project_id"),
104
+ ]:
105
+ if args.get(key):
106
+ cli_args.extend([flag, str(args[key])])
107
+ return _run_cli("tools/translation/source_extractor.py", cli_args)
108
+
109
+
110
+ def handle_translate_unit(args: dict) -> dict:
111
+ """Phase 3: LLM-based code translation from IR."""
112
+ cli_args = []
113
+ for flag, key in [
114
+ ("--ir-file", "ir_file"), ("--source-language", "source_language"),
115
+ ("--target-language", "target_language"), ("--output-dir", "output_dir"),
116
+ ("--candidates", "candidates"),
117
+ ]:
118
+ if args.get(key):
119
+ cli_args.extend([flag, str(args[key])])
120
+ return _run_cli("tools/translation/code_translator.py", cli_args, timeout=600)
121
+
122
+
123
+ def handle_map_dependencies(args: dict) -> dict:
124
+ """Cross-language dependency equivalence lookup."""
125
+ cli_args = []
126
+ for flag, key in [
127
+ ("--source-language", "source_language"), ("--target-language", "target_language"),
128
+ ("--imports", "imports"),
129
+ ]:
130
+ if args.get(key):
131
+ cli_args.extend([flag, str(args[key])])
132
+ return _run_cli("tools/translation/dependency_mapper.py", cli_args, timeout=60)
133
+
134
+
135
+ def handle_check_types(args: dict) -> dict:
136
+ """Phase 2: Type system compatibility pre-check."""
137
+ cli_args = []
138
+ for flag, key in [
139
+ ("--ir-file", "ir_file"), ("--source-language", "source_language"),
140
+ ("--target-language", "target_language"),
141
+ ]:
142
+ if args.get(key):
143
+ cli_args.extend([flag, str(args[key])])
144
+ return _run_cli("tools/translation/type_checker.py", cli_args)
145
+
146
+
147
+ def handle_assemble_project(args: dict) -> dict:
148
+ """Phase 4: Assemble translated units into project structure."""
149
+ cli_args = []
150
+ for flag, key in [
151
+ ("--ir-list", "ir_list"), ("--output-dir", "output_dir"),
152
+ ("--project-template", "project_template"),
153
+ ]:
154
+ if args.get(key):
155
+ cli_args.extend([flag, str(args[key])])
156
+ return _run_cli("tools/translation/project_assembler.py", cli_args)
157
+
158
+
159
+ def handle_validate_translation(args: dict) -> dict:
160
+ """Phase 5: Validate translated output + repair loop."""
161
+ cli_args = []
162
+ for flag, key in [
163
+ ("--output-dir", "output_dir"), ("--source-language", "source_language"),
164
+ ("--target-language", "target_language"),
165
+ ]:
166
+ if args.get(key):
167
+ cli_args.extend([flag, str(args[key])])
168
+ return _run_cli("tools/translation/translation_validator.py", cli_args)
169
+
170
+
171
+ def handle_translate_tests(args: dict) -> dict:
172
+ """Translate test suites across languages."""
173
+ cli_args = []
174
+ for flag, key in [
175
+ ("--source-test-dir", "source_test_dir"), ("--source-language", "source_language"),
176
+ ("--target-language", "target_language"), ("--output-dir", "output_dir"),
177
+ ("--ir-file", "ir_file"),
178
+ ]:
179
+ if args.get(key):
180
+ cli_args.extend([flag, str(args[key])])
181
+ return _run_cli("tools/translation/test_translator.py", cli_args, timeout=600)
182
+
183
+
184
+ def handle_map_features(args: dict) -> dict:
185
+ """Feature mapping rules lookup for language pairs."""
186
+ cli_args = []
187
+ if args.get("rule_path"):
188
+ cli_args.extend(["--rule-path", args["rule_path"]])
189
+ if args.get("validate"):
190
+ cli_args.append("--validate")
191
+ return _run_cli("tools/translation/feature_map.py", cli_args, timeout=60)
192
+
193
+
194
+ # ===========================================================================
195
+ # Category: dx (Phase 34 — Universal AI Companion)
196
+ # ===========================================================================
197
+
198
+ def handle_companion_setup(args: dict) -> dict:
199
+ """Auto-detect AI tools and generate instruction files + MCP configs."""
200
+ cli_args = ["--setup"]
201
+ if args.get("all_platforms"):
202
+ cli_args.append("--all")
203
+ if args.get("platforms"):
204
+ cli_args.extend(["--platforms", args["platforms"]])
205
+ if args.get("write"):
206
+ cli_args.append("--write")
207
+ if args.get("dry_run"):
208
+ cli_args.append("--dry-run")
209
+ return _run_cli("tools/dx/companion.py", cli_args)
210
+
211
+
212
+ def handle_detect_ai_tools(args: dict) -> dict:
213
+ """Detect installed AI coding tools from environment."""
214
+ return _run_cli("tools/dx/tool_detector.py", [], timeout=30)
215
+
216
+
217
+ def handle_generate_instructions(args: dict) -> dict:
218
+ """Generate instruction files for AI coding tool platforms."""
219
+ cli_args = []
220
+ if args.get("all_platforms"):
221
+ cli_args.append("--all")
222
+ if args.get("platform"):
223
+ cli_args.extend(["--platform", args["platform"]])
224
+ if args.get("write"):
225
+ cli_args.append("--write")
226
+ return _run_cli("tools/dx/instruction_generator.py", cli_args)
227
+
228
+
229
+ def handle_generate_mcp_configs(args: dict) -> dict:
230
+ """Generate MCP config files for AI coding tool platforms."""
231
+ cli_args = []
232
+ if args.get("all_platforms"):
233
+ cli_args.append("--all")
234
+ if args.get("platform"):
235
+ cli_args.extend(["--platform", args["platform"]])
236
+ if args.get("write"):
237
+ cli_args.append("--write")
238
+ return _run_cli("tools/dx/mcp_config_generator.py", cli_args)
239
+
240
+
241
+ def handle_translate_skills(args: dict) -> dict:
242
+ """Translate Claude Code skills to other AI tool formats."""
243
+ cli_args = []
244
+ if args.get("all_platforms"):
245
+ cli_args.append("--all")
246
+ if args.get("platform"):
247
+ cli_args.extend(["--platform", args["platform"]])
248
+ if args.get("skills"):
249
+ cli_args.extend(["--skills", args["skills"]])
250
+ if args.get("write"):
251
+ cli_args.append("--write")
252
+ if args.get("list_skills"):
253
+ cli_args.append("--list")
254
+ return _run_cli("tools/dx/skill_translator.py", cli_args)
255
+
256
+
257
+ # ===========================================================================
258
+ # Category: cloud (Phase 38 — Cloud-Agnostic Architecture)
259
+ # ===========================================================================
260
+
261
+ def handle_csp_monitor_scan(args: dict) -> dict:
262
+ """Scan CSP services for updates and changes."""
263
+ cli_args = ["--scan"]
264
+ if args.get("all_csps"):
265
+ cli_args.append("--all")
266
+ if args.get("csp"):
267
+ cli_args.extend(["--csp", args["csp"]])
268
+ return _run_cli("tools/cloud/csp_monitor.py", cli_args, timeout=120)
269
+
270
+
271
+ def handle_csp_changelog(args: dict) -> dict:
272
+ """Generate CSP changelog with recommendations."""
273
+ cli_args = ["--generate"]
274
+ if args.get("days"):
275
+ cli_args.extend(["--days", str(args["days"])])
276
+ if args.get("summary_only"):
277
+ cli_args = ["--summary"]
278
+ return _run_cli("tools/cloud/csp_changelog.py", cli_args)
279
+
280
+
281
+ def handle_validate_region(args: dict) -> dict:
282
+ """Validate CSP region compliance certifications."""
283
+ cli_args = []
284
+ action = args.get("action", "validate")
285
+ cli_args.append(action)
286
+ if args.get("csp"):
287
+ cli_args.extend(["--csp", args["csp"]])
288
+ if args.get("region"):
289
+ cli_args.extend(["--region", args["region"]])
290
+ if args.get("frameworks"):
291
+ cli_args.extend(["--frameworks", args["frameworks"]])
292
+ if args.get("impact_level"):
293
+ cli_args.extend(["--impact-level", args["impact_level"]])
294
+ return _run_cli("tools/cloud/region_validator.py", cli_args)
295
+
296
+
297
+ def handle_cloud_mode_status(args: dict) -> dict:
298
+ """Check current cloud mode and configuration."""
299
+ cli_args = []
300
+ action = args.get("action", "status")
301
+ cli_args.append(f"--{action}")
302
+ return _run_cli("tools/cloud/cloud_mode_manager.py", cli_args, timeout=30)
303
+
304
+
305
+ def handle_csp_health_check(args: dict) -> dict:
306
+ """Check health of all configured CSP services."""
307
+ return _run_cli("tools/cloud/csp_health_checker.py", ["--check"], timeout=60)
308
+
309
+
310
+ # ===========================================================================
311
+ # Category: registry (Phase 36 — Evolutionary Intelligence)
312
+ # ===========================================================================
313
+
314
+ def handle_register_child(args: dict) -> dict:
315
+ """Register a child application in the registry."""
316
+ cli_args = ["--register"]
317
+ if args.get("name"):
318
+ cli_args.extend(["--name", args["name"]])
319
+ if args.get("type"):
320
+ cli_args.extend(["--type", args["type"]])
321
+ return _run_cli("tools/registry/child_registry.py", cli_args)
322
+
323
+
324
+ def handle_list_children(args: dict) -> dict:
325
+ """List all registered child applications."""
326
+ return _run_cli("tools/registry/child_registry.py", ["--list"])
327
+
328
+
329
+ def handle_get_genome(args: dict) -> dict:
330
+ """Get current capability genome version."""
331
+ cli_args = []
332
+ if args.get("history"):
333
+ cli_args.append("--history")
334
+ else:
335
+ cli_args.append("--get")
336
+ return _run_cli("tools/registry/genome_manager.py", cli_args)
337
+
338
+
339
+ def handle_evaluate_capability(args: dict) -> dict:
340
+ """Evaluate a capability across 6 dimensions."""
341
+ cli_args = ["--evaluate"]
342
+ if args.get("data"):
343
+ cli_args.extend(["--data", json.dumps(args["data"]) if isinstance(args["data"], dict) else args["data"]])
344
+ return _run_cli("tools/registry/capability_evaluator.py", cli_args)
345
+
346
+
347
+ def handle_list_staging(args: dict) -> dict:
348
+ """List capability staging environments."""
349
+ return _run_cli("tools/registry/staging_manager.py", ["--list"])
350
+
351
+
352
+ def handle_list_propagations(args: dict) -> dict:
353
+ """List capability propagation log."""
354
+ return _run_cli("tools/registry/propagation_manager.py", ["--list"])
355
+
356
+
357
+ def handle_absorption_candidates(args: dict) -> dict:
358
+ """Get capabilities ready for genome absorption."""
359
+ return _run_cli("tools/registry/absorption_engine.py", ["--candidates"])
360
+
361
+
362
+ def handle_unevaluated_behaviors(args: dict) -> dict:
363
+ """Get unevaluated learned behaviors from children."""
364
+ return _run_cli("tools/registry/learning_collector.py", ["--unevaluated"])
365
+
366
+
367
+ def handle_cross_pollination_candidates(args: dict) -> dict:
368
+ """Find cross-pollination candidates between children."""
369
+ return _run_cli("tools/registry/cross_pollinator.py", ["--candidates"])
370
+
371
+
372
+ # ===========================================================================
373
+ # Category: security_agentic (Phase 45 — OWASP Agentic AI Security)
374
+ # ===========================================================================
375
+
376
+ def handle_scan_code_patterns(args: dict) -> dict:
377
+ """Scan for dangerous code patterns across 6 languages."""
378
+ try:
379
+ from icdev.tools.security.code_pattern_scanner import CodePatternScanner
380
+ scanner = CodePatternScanner()
381
+ project_dir = args.get("project_dir")
382
+ if project_dir:
383
+ results = scanner.scan_directory(project_dir)
384
+ if args.get("gate"):
385
+ gate = scanner.evaluate_gate(results)
386
+ return {"scan_results": results, "gate": gate}
387
+ return results
388
+ return {"error": "Provide 'project_dir'"}
389
+ except ImportError:
390
+ cli_args = []
391
+ if args.get("project_dir"):
392
+ cli_args.extend(["--project-dir", args["project_dir"]])
393
+ if args.get("gate"):
394
+ cli_args.append("--gate")
395
+ return _run_cli("tools/security/code_pattern_scanner.py", cli_args)
396
+
397
+
398
+ def handle_validate_tool_chain(args: dict) -> dict:
399
+ """Validate tool call chain against security rules."""
400
+ cli_args = []
401
+ if args.get("rules"):
402
+ cli_args.append("--rules")
403
+ if args.get("gate"):
404
+ cli_args.append("--gate")
405
+ if args.get("project_id"):
406
+ cli_args.extend(["--project-id", args["project_id"]])
407
+ return _run_cli("tools/security/tool_chain_validator.py", cli_args)
408
+
409
+
410
+ def handle_validate_agent_output(args: dict) -> dict:
411
+ """Validate agent output for classification leaks and PII."""
412
+ cli_args = []
413
+ if args.get("text"):
414
+ cli_args.extend(["--text", args["text"]])
415
+ if args.get("gate"):
416
+ cli_args.append("--gate")
417
+ if args.get("project_id"):
418
+ cli_args.extend(["--project-id", args["project_id"]])
419
+ return _run_cli("tools/security/agent_output_validator.py", cli_args)
420
+
421
+
422
+ def handle_score_agent_trust(args: dict) -> dict:
423
+ """Compute or check agent trust score."""
424
+ cli_args = []
425
+ if args.get("agent_id"):
426
+ cli_args.extend(["--agent-id", args["agent_id"]])
427
+ if args.get("score"):
428
+ cli_args.append("--score")
429
+ elif args.get("check"):
430
+ cli_args.append("--check")
431
+ elif args.get("all_agents"):
432
+ cli_args.append("--all")
433
+ if args.get("gate"):
434
+ cli_args.append("--gate")
435
+ if args.get("project_id"):
436
+ cli_args.extend(["--project-id", args["project_id"]])
437
+ return _run_cli("tools/security/agent_trust_scorer.py", cli_args)
438
+
439
+
440
+ def handle_check_mcp_authorization(args: dict) -> dict:
441
+ """Check MCP per-tool RBAC authorization."""
442
+ cli_args = []
443
+ if args.get("check"):
444
+ cli_args.append("--check")
445
+ if args.get("list_permissions"):
446
+ cli_args.append("--list")
447
+ if args.get("validate"):
448
+ cli_args.append("--validate")
449
+ if args.get("role"):
450
+ cli_args.extend(["--role", args["role"]])
451
+ if args.get("tool"):
452
+ cli_args.extend(["--tool", args["tool"]])
453
+ return _run_cli("tools/security/mcp_tool_authorizer.py", cli_args)
454
+
455
+
456
+ def handle_ai_telemetry_summary(args: dict) -> dict:
457
+ """Get AI usage telemetry summary."""
458
+ cli_args = ["--summary"]
459
+ return _run_cli("tools/security/ai_telemetry_logger.py", cli_args)
460
+
461
+
462
+ def handle_generate_ai_bom(args: dict) -> dict:
463
+ """Generate AI Bill of Materials."""
464
+ cli_args = []
465
+ if args.get("project_id"):
466
+ cli_args.extend(["--project-id", args["project_id"]])
467
+ if args.get("project_dir"):
468
+ cli_args.extend(["--project-dir", args["project_dir"]])
469
+ if args.get("gate"):
470
+ cli_args.append("--gate")
471
+ return _run_cli("tools/security/ai_bom_generator.py", cli_args)
472
+
473
+
474
+ def handle_run_atlas_red_team(args: dict) -> dict:
475
+ """Run ATLAS red teaming tests (opt-in)."""
476
+ cli_args = []
477
+ if args.get("project_id"):
478
+ cli_args.extend(["--project-id", args["project_id"]])
479
+ if args.get("technique"):
480
+ cli_args.extend(["--technique", args["technique"]])
481
+ if args.get("behavioral"):
482
+ cli_args.append("--behavioral")
483
+ if args.get("brt_technique"):
484
+ cli_args.extend(["--brt-technique", args["brt_technique"]])
485
+ return _run_cli("tools/security/atlas_red_team.py", cli_args)
486
+
487
+
488
+ def handle_detect_behavioral_drift(args: dict) -> dict:
489
+ """Detect behavioral drift in agent telemetry."""
490
+ cli_args = ["--drift"]
491
+ if args.get("agent_id"):
492
+ cli_args.extend(["--agent-id", args["agent_id"]])
493
+ return _run_cli("tools/security/ai_telemetry_logger.py", cli_args)
494
+
495
+
496
+ # ===========================================================================
497
+ # Category: testing (Production Gates & Validation)
498
+ # ===========================================================================
499
+
500
+ def handle_production_audit(args: dict) -> dict:
501
+ """Run 30-check production readiness audit."""
502
+ cli_args = []
503
+ if args.get("category"):
504
+ cli_args.extend(["--category", args["category"]])
505
+ if args.get("gate"):
506
+ cli_args.append("--gate")
507
+ return _run_cli("tools/testing/production_audit.py", cli_args, timeout=300)
508
+
509
+
510
+ def handle_production_remediate(args: dict) -> dict:
511
+ """Auto-fix production audit blockers."""
512
+ cli_args = []
513
+ if args.get("auto"):
514
+ cli_args.append("--auto")
515
+ if args.get("dry_run"):
516
+ cli_args.append("--dry-run")
517
+ if args.get("check_id"):
518
+ cli_args.extend(["--check-id", args["check_id"]])
519
+ if args.get("skip_audit"):
520
+ cli_args.append("--skip-audit")
521
+ return _run_cli("tools/testing/production_remediate.py", cli_args, timeout=300)
522
+
523
+
524
+ def handle_validate_claude_dir(args: dict) -> dict:
525
+ """Validate .claude directory governance alignment."""
526
+ return _run_cli("tools/testing/claude_dir_validator.py", [], timeout=60)
527
+
528
+
529
+ def handle_health_check(args: dict) -> dict:
530
+ """Run full system health check."""
531
+ return _run_cli("tools/testing/health_check.py", [], timeout=60)
532
+
533
+
534
+ def handle_validate_screenshot(args: dict) -> dict:
535
+ """Vision LLM screenshot validation."""
536
+ cli_args = []
537
+ if args.get("check"):
538
+ cli_args.append("--check")
539
+ if args.get("image"):
540
+ cli_args.extend(["--image", args["image"]])
541
+ if args.get("assertion"):
542
+ cli_args.extend(["--assert", args["assertion"]])
543
+ if args.get("batch_dir"):
544
+ cli_args.extend(["--batch-dir", args["batch_dir"]])
545
+ return _run_cli("tools/testing/screenshot_validator.py", cli_args, timeout=120)
546
+
547
+
548
+ def handle_run_e2e_tests(args: dict) -> dict:
549
+ """Run E2E tests via Playwright."""
550
+ cli_args = []
551
+ if args.get("discover"):
552
+ cli_args.append("--discover")
553
+ if args.get("run_all"):
554
+ cli_args.append("--run-all")
555
+ if args.get("test_file"):
556
+ cli_args.extend(["--test-file", args["test_file"]])
557
+ if args.get("validate_screenshots"):
558
+ cli_args.append("--validate-screenshots")
559
+ return _run_cli("tools/testing/e2e_runner.py", cli_args, timeout=600)
560
+
561
+
562
+ # ===========================================================================
563
+ # Category: installer (Phase 33 — Modular Installation)
564
+ # ===========================================================================
565
+
566
+ def handle_install_modules(args: dict) -> dict:
567
+ """Run modular installer."""
568
+ cli_args = []
569
+ if args.get("profile"):
570
+ cli_args.extend(["--profile", args["profile"]])
571
+ if args.get("compliance"):
572
+ cli_args.extend(["--compliance", args["compliance"]])
573
+ if args.get("platform"):
574
+ cli_args.extend(["--platform", args["platform"]])
575
+ if args.get("add_module"):
576
+ cli_args.extend(["--add-module", args["add_module"]])
577
+ if args.get("status"):
578
+ cli_args.append("--status")
579
+ if args.get("upgrade"):
580
+ cli_args.append("--upgrade")
581
+ return _run_cli("tools/installer/installer.py", cli_args)
582
+
583
+
584
+ def handle_validate_module_registry(args: dict) -> dict:
585
+ """Validate module dependency resolution."""
586
+ return _run_cli("tools/installer/module_registry.py", ["--validate"])
587
+
588
+
589
+ def handle_list_compliance_postures(args: dict) -> dict:
590
+ """List available compliance posture configurations."""
591
+ return _run_cli("tools/installer/compliance_configurator.py", ["--list-postures"])
592
+
593
+
594
+ def handle_generate_platform_artifacts(args: dict) -> dict:
595
+ """Generate platform deployment artifacts."""
596
+ cli_args = ["--generate"]
597
+ if args.get("target"):
598
+ cli_args.append(args["target"])
599
+ if args.get("modules"):
600
+ cli_args.extend(["--modules", args["modules"]])
601
+ if args.get("output"):
602
+ cli_args.extend(["--output", args["output"]])
603
+ return _run_cli("tools/installer/platform_setup.py", cli_args)
604
+
605
+
606
+ # ===========================================================================
607
+ # Category: misc (Various uncategorized gaps)
608
+ # ===========================================================================
609
+
610
+ def handle_register_external_patterns(args: dict) -> dict:
611
+ """Register external framework analysis as innovation signals."""
612
+ cli_args = []
613
+ if args.get("source"):
614
+ cli_args.extend(["--source", args["source"]])
615
+ if args.get("pattern_file"):
616
+ cli_args.extend(["--pattern-file", args["pattern_file"]])
617
+ return _run_cli("tools/security/code_pattern_scanner.py", cli_args)
618
+
619
+
620
+ def handle_analyze_legacy_ui(args: dict) -> dict:
621
+ """Analyze legacy UI screenshots for modernization."""
622
+ cli_args = []
623
+ if args.get("image"):
624
+ cli_args.extend(["--image", args["image"]])
625
+ if args.get("image_dir"):
626
+ cli_args.extend(["--image-dir", args["image_dir"]])
627
+ if args.get("app_id"):
628
+ cli_args.extend(["--app-id", args["app_id"]])
629
+ if args.get("project_id"):
630
+ cli_args.extend(["--project-id", args["project_id"]])
631
+ if args.get("store"):
632
+ cli_args.append("--store")
633
+ if args.get("score_only"):
634
+ cli_args.append("--score-only")
635
+ return _run_cli("tools/modernization/ui_analyzer.py", cli_args, timeout=120)
636
+
637
+
638
+ def handle_generate_profile_md(args: dict) -> dict:
639
+ """Generate PROFILE.md from dev profile."""
640
+ cli_args = []
641
+ if args.get("scope"):
642
+ cli_args.extend(["--scope", args["scope"]])
643
+ if args.get("scope_id"):
644
+ cli_args.extend(["--scope-id", args["scope_id"]])
645
+ if args.get("output"):
646
+ cli_args.extend(["--output", args["output"]])
647
+ if args.get("store"):
648
+ cli_args.append("--store")
649
+ return _run_cli("tools/builder/profile_md_generator.py", cli_args)
650
+
651
+
652
+ def handle_generate_claude_md(args: dict) -> dict:
653
+ """Generate dynamic CLAUDE.md for child applications."""
654
+ cli_args = []
655
+ if args.get("blueprint"):
656
+ cli_args.extend(["--blueprint", args["blueprint"]])
657
+ if args.get("output"):
658
+ cli_args.extend(["--output", args["output"]])
659
+ return _run_cli("tools/builder/claude_md_generator.py", cli_args)
660
+
661
+
662
+ def handle_version_migrate(args: dict) -> dict:
663
+ """Migrate code between language versions."""
664
+ cli_args = []
665
+ for flag, key in [
666
+ ("--source", "source"), ("--output", "output"),
667
+ ("--language", "language"), ("--from", "from_version"),
668
+ ("--to", "to_version"),
669
+ ]:
670
+ if args.get(key):
671
+ cli_args.extend([flag, str(args[key])])
672
+ return _run_cli("tools/modernization/version_migrator.py", cli_args, timeout=300)
673
+
674
+
675
+ def handle_framework_migrate(args: dict) -> dict:
676
+ """Migrate between application frameworks."""
677
+ cli_args = []
678
+ for flag, key in [
679
+ ("--source", "source"), ("--output", "output"),
680
+ ("--from", "from_framework"), ("--to", "to_framework"),
681
+ ]:
682
+ if args.get(key):
683
+ cli_args.extend([flag, str(args[key])])
684
+ return _run_cli("tools/modernization/framework_migrator.py", cli_args, timeout=300)
685
+
686
+
687
+ def handle_worktree_manage(args: dict) -> dict:
688
+ """Manage git worktrees for parallel CI/CD."""
689
+ cli_args = []
690
+ if args.get("create"):
691
+ cli_args.append("--create")
692
+ if args.get("list"):
693
+ cli_args.append("--list")
694
+ if args.get("cleanup"):
695
+ cli_args.append("--cleanup")
696
+ if args.get("status"):
697
+ cli_args.append("--status")
698
+ if args.get("task_id"):
699
+ cli_args.extend(["--task-id", args["task_id"]])
700
+ if args.get("target_dir"):
701
+ cli_args.extend(["--target-dir", args["target_dir"]])
702
+ if args.get("worktree_name"):
703
+ cli_args.extend(["--worktree-name", args["worktree_name"]])
704
+ return _run_cli("tools/ci/modules/worktree.py", cli_args)
705
+
706
+
707
+ def handle_nlq_query(args: dict) -> dict:
708
+ """Execute natural language compliance query."""
709
+ try:
710
+ import sqlite3
711
+ conn = sqlite3.connect(str(DB_PATH))
712
+ conn.row_factory = sqlite3.Row
713
+ # Simple passthrough — NLQ requires LLM which is not invoked here.
714
+ # Return available tables for the user to formulate queries.
715
+ cursor = conn.execute("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name")
716
+ tables = [row["name"] for row in cursor.fetchall()]
717
+ conn.close()
718
+ return {
719
+ "status": "info",
720
+ "message": "NLQ queries require the dashboard (/query page) or direct SQL. Available tables listed.",
721
+ "tables": tables,
722
+ "table_count": len(tables),
723
+ }
724
+ except Exception as exc:
725
+ return {"error": str(exc)}
726
+
727
+
728
+ # ---------------------------------------------------------------------------
729
+ # AI Transparency & Accountability (Phase 48, D307-D315) — 10 tools
730
+ # ---------------------------------------------------------------------------
731
+
732
+ def handle_omb_m25_21_assess(args: dict) -> dict:
733
+ """OMB M-25-21 High-Impact AI assessment."""
734
+ try:
735
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
736
+ from omb_m25_21_assessor import OMBM2521Assessor
737
+ assessor = OMBM2521Assessor(db_path=DB_PATH)
738
+ return assessor.assess(args["project_id"], project_dir=args.get("project_dir"))
739
+ except Exception as exc:
740
+ return {"error": str(exc)}
741
+
742
+
743
+ def handle_omb_m26_04_assess(args: dict) -> dict:
744
+ """OMB M-26-04 Unbiased AI assessment."""
745
+ try:
746
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
747
+ from omb_m26_04_assessor import OMBM2604Assessor
748
+ assessor = OMBM2604Assessor(db_path=DB_PATH)
749
+ return assessor.assess(args["project_id"], project_dir=args.get("project_dir"))
750
+ except Exception as exc:
751
+ return {"error": str(exc)}
752
+
753
+
754
+ def handle_nist_ai_600_1_assess(args: dict) -> dict:
755
+ """NIST AI 600-1 GenAI Profile assessment."""
756
+ try:
757
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
758
+ from nist_ai_600_1_assessor import NISTAI6001Assessor
759
+ assessor = NISTAI6001Assessor(db_path=DB_PATH)
760
+ return assessor.assess(args["project_id"], project_dir=args.get("project_dir"))
761
+ except Exception as exc:
762
+ return {"error": str(exc)}
763
+
764
+
765
+ def handle_gao_ai_assess(args: dict) -> dict:
766
+ """GAO-21-519SP AI Accountability assessment."""
767
+ try:
768
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
769
+ from gao_ai_assessor import GAOAIAssessor
770
+ assessor = GAOAIAssessor(db_path=DB_PATH)
771
+ return assessor.assess(args["project_id"], project_dir=args.get("project_dir"))
772
+ except Exception as exc:
773
+ return {"error": str(exc)}
774
+
775
+
776
+ def handle_model_card_generate(args: dict) -> dict:
777
+ """Generate model card per OMB M-26-04 / Google Model Cards format."""
778
+ try:
779
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
780
+ from model_card_generator import generate_model_card
781
+ return generate_model_card(args["project_id"], args["model_name"], db_path=DB_PATH)
782
+ except Exception as exc:
783
+ return {"error": str(exc)}
784
+
785
+
786
+ def handle_system_card_generate(args: dict) -> dict:
787
+ """Generate system-level AI card."""
788
+ try:
789
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
790
+ from system_card_generator import generate_system_card
791
+ return generate_system_card(args["project_id"], db_path=DB_PATH)
792
+ except Exception as exc:
793
+ return {"error": str(exc)}
794
+
795
+
796
+ def handle_ai_transparency_audit(args: dict) -> dict:
797
+ """Run cross-framework AI transparency audit."""
798
+ try:
799
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
800
+ from ai_transparency_audit import run_transparency_audit
801
+ return run_transparency_audit(args["project_id"], args.get("project_dir"), db_path=DB_PATH)
802
+ except Exception as exc:
803
+ return {"error": str(exc)}
804
+
805
+
806
+ def handle_confabulation_check(args: dict) -> dict:
807
+ """Check text for confabulation indicators."""
808
+ try:
809
+ sys.path.insert(0, str(BASE_DIR / "tools" / "security"))
810
+ from confabulation_detector import check_output
811
+ return check_output(args["project_id"], args["text"], db_path=DB_PATH)
812
+ except Exception as exc:
813
+ return {"error": str(exc)}
814
+
815
+
816
+ def handle_ai_inventory_register(args: dict) -> dict:
817
+ """Register an AI use case in the OMB M-25-21 inventory."""
818
+ try:
819
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
820
+ from ai_inventory_manager import register_ai_component
821
+ return register_ai_component(
822
+ args["project_id"], args["name"],
823
+ purpose=args.get("purpose", ""),
824
+ risk_level=args.get("risk_level", "minimal_risk"),
825
+ db_path=DB_PATH,
826
+ )
827
+ except Exception as exc:
828
+ return {"error": str(exc)}
829
+
830
+
831
+ def handle_fairness_assess(args: dict) -> dict:
832
+ """Assess fairness and bias compliance per OMB M-26-04."""
833
+ try:
834
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
835
+ from fairness_assessor import assess_fairness
836
+ return assess_fairness(args["project_id"], args.get("project_dir"), db_path=DB_PATH)
837
+ except Exception as exc:
838
+ return {"error": str(exc)}
839
+
840
+
841
+ # ---------------------------------------------------------------------------
842
+ # AI Accountability (Phase 49, D316-D321) — 8 tools
843
+ # ---------------------------------------------------------------------------
844
+
845
+ def handle_ai_oversight_plan_create(args: dict) -> dict:
846
+ """Register a human oversight plan."""
847
+ try:
848
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
849
+ from accountability_manager import _get_connection, _ensure_tables, register_oversight_plan
850
+ conn = _get_connection(DB_PATH)
851
+ _ensure_tables(conn)
852
+ try:
853
+ return register_oversight_plan(
854
+ conn, args["project_id"], args["plan_name"],
855
+ description=args.get("plan_data", ""),
856
+ created_by=args.get("approved_by", ""),
857
+ )
858
+ finally:
859
+ conn.close()
860
+ except Exception as exc:
861
+ return {"error": str(exc)}
862
+
863
+
864
+ def handle_ai_caio_designate(args: dict) -> dict:
865
+ """Designate a CAIO / responsible AI official."""
866
+ try:
867
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
868
+ from accountability_manager import _get_connection, _ensure_tables, designate_caio
869
+ conn = _get_connection(DB_PATH)
870
+ _ensure_tables(conn)
871
+ try:
872
+ return designate_caio(
873
+ conn, args["project_id"],
874
+ name=args.get("official_name", args.get("name", "")),
875
+ role=args.get("official_role", args.get("role", "CAIO")),
876
+ organization=args.get("organization", ""),
877
+ )
878
+ finally:
879
+ conn.close()
880
+ except Exception as exc:
881
+ return {"error": str(exc)}
882
+
883
+
884
+ def handle_ai_appeal_file(args: dict) -> dict:
885
+ """File an AI accountability appeal."""
886
+ try:
887
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
888
+ from accountability_manager import _get_connection, _ensure_tables, file_appeal
889
+ conn = _get_connection(DB_PATH)
890
+ _ensure_tables(conn)
891
+ try:
892
+ return file_appeal(
893
+ conn, args["project_id"], args["appellant"], args["ai_system"],
894
+ grievance=args.get("decision_contested", args.get("grievance", "")),
895
+ )
896
+ finally:
897
+ conn.close()
898
+ except Exception as exc:
899
+ return {"error": str(exc)}
900
+
901
+
902
+ def handle_ai_appeal_resolve(args: dict) -> dict:
903
+ """Resolve an AI accountability appeal."""
904
+ try:
905
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
906
+ from accountability_manager import _get_connection, _ensure_tables, resolve_appeal
907
+ conn = _get_connection(DB_PATH)
908
+ _ensure_tables(conn)
909
+ try:
910
+ return resolve_appeal(
911
+ conn, args["appeal_id"], args["resolution"],
912
+ status=args.get("resolved_by", "resolved"),
913
+ )
914
+ finally:
915
+ conn.close()
916
+ except Exception as exc:
917
+ return {"error": str(exc)}
918
+
919
+
920
+ def handle_ai_ethics_review_submit(args: dict) -> dict:
921
+ """Submit an ethics review for an AI system."""
922
+ try:
923
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
924
+ from accountability_manager import _get_connection, _ensure_tables, submit_ethics_review
925
+ conn = _get_connection(DB_PATH)
926
+ _ensure_tables(conn)
927
+ try:
928
+ return submit_ethics_review(
929
+ conn, args["project_id"], args["review_type"],
930
+ summary=args.get("ai_system", ""),
931
+ findings=args.get("findings", ""),
932
+ recommendation=args.get("reviewer", ""),
933
+ )
934
+ finally:
935
+ conn.close()
936
+ except Exception as exc:
937
+ return {"error": str(exc)}
938
+
939
+
940
+ def handle_ai_incident_log(args: dict) -> dict:
941
+ """Log an AI-specific incident."""
942
+ try:
943
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
944
+ from ai_incident_response import log_incident
945
+ return log_incident(
946
+ args["project_id"], args["incident_type"],
947
+ ai_system=args.get("ai_system"),
948
+ severity=args.get("severity", "medium"),
949
+ description=args["description"],
950
+ reported_by=args.get("reported_by"),
951
+ db_path=DB_PATH,
952
+ )
953
+ except Exception as exc:
954
+ return {"error": str(exc)}
955
+
956
+
957
+ def handle_ai_reassessment_schedule(args: dict) -> dict:
958
+ """Create a reassessment schedule for an AI system."""
959
+ try:
960
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
961
+ from ai_reassessment_scheduler import create_schedule
962
+ return create_schedule(
963
+ args["project_id"], args["ai_system"],
964
+ frequency=args.get("frequency", "annual"),
965
+ next_due=args.get("next_due"),
966
+ db_path=DB_PATH,
967
+ )
968
+ except Exception as exc:
969
+ return {"error": str(exc)}
970
+
971
+
972
+ def handle_ai_accountability_audit(args: dict) -> dict:
973
+ """Run cross-framework AI accountability audit."""
974
+ try:
975
+ sys.path.insert(0, str(BASE_DIR / "tools" / "compliance"))
976
+ from ai_accountability_audit import run_accountability_audit
977
+ return run_accountability_audit(args["project_id"], db_path=DB_PATH)
978
+ except Exception as exc:
979
+ return {"error": str(exc)}
980
+
981
+
982
+ # ============================================================
983
+ # CODE INTELLIGENCE (Phase 52, D331-D337)
984
+ # ============================================================
985
+
986
+ def handle_code_analyze(args: dict) -> dict:
987
+ """Run AST-based code quality analysis."""
988
+ try:
989
+ from icdev.tools.analysis.code_analyzer import CodeAnalyzer
990
+ project_dir = args.get("project_dir", str(BASE_DIR / "tools"))
991
+ project_id = args.get("project_id")
992
+ analyzer = CodeAnalyzer(
993
+ project_dir=project_dir,
994
+ project_id=project_id,
995
+ db_path=DB_PATH,
996
+ )
997
+ result = analyzer.scan_directory()
998
+ if args.get("store"):
999
+ try:
1000
+ stored = analyzer.store_metrics(
1001
+ result.get("metrics", []),
1002
+ result.get("scan_id", ""),
1003
+ db_path=DB_PATH,
1004
+ )
1005
+ result["stored_rows"] = stored
1006
+ except Exception:
1007
+ result["stored_rows"] = 0
1008
+ # Summarize (don't return full metrics in MCP response)
1009
+ metrics = result.pop("metrics", [])
1010
+ result["function_count"] = len([m for m in metrics if m.get("function_name")])
1011
+ return result
1012
+ except Exception as exc:
1013
+ return {"error": str(exc)}
1014
+
1015
+
1016
+ def handle_code_quality_report(args: dict) -> dict:
1017
+ """Get code quality trend report."""
1018
+ try:
1019
+ from icdev.tools.analysis.code_analyzer import CodeAnalyzer
1020
+ analyzer = CodeAnalyzer(project_id=args.get("project_id"), db_path=DB_PATH)
1021
+ trend = analyzer.get_trend(args.get("project_id"), db_path=DB_PATH)
1022
+ return {"project_id": args.get("project_id"), "trend": trend, "scan_count": len(trend)}
1023
+ except Exception as exc:
1024
+ return {"error": str(exc)}
1025
+
1026
+
1027
+ def handle_ironbank_generate(args: dict) -> dict:
1028
+ """Generate Iron Bank hardening manifest and container approval record."""
1029
+ try:
1030
+ from icdev.tools.infra.ironbank_metadata_generator import generate_hardening_manifest
1031
+ return generate_hardening_manifest(
1032
+ project_id=args["project_id"],
1033
+ project_dir=args.get("project_dir"),
1034
+ output_dir=args.get("output_dir"),
1035
+ )
1036
+ except Exception as exc:
1037
+ return {"error": str(exc)}
1038
+
1039
+
1040
+ def handle_ironbank_validate(args: dict) -> dict:
1041
+ """Validate Iron Bank hardening manifest."""
1042
+ try:
1043
+ from icdev.tools.infra.ironbank_metadata_generator import validate_hardening_manifest
1044
+ return validate_hardening_manifest(
1045
+ project_id=args["project_id"],
1046
+ manifest_path=args.get("manifest_path"),
1047
+ )
1048
+ except Exception as exc:
1049
+ return {"error": str(exc)}
1050
+
1051
+
1052
+ def handle_eu_ai_act_classify(args: dict) -> dict:
1053
+ """Run EU AI Act risk classification and compliance assessment."""
1054
+ try:
1055
+ from icdev.tools.compliance.eu_ai_act_classifier import EUAIActClassifier
1056
+ assessor = EUAIActClassifier()
1057
+ project = {"id": args["project_id"]}
1058
+ result = assessor.assess(project, project_dir=args.get("project_dir"))
1059
+ return result
1060
+ except Exception as exc:
1061
+ return {"error": str(exc)}
1062
+
1063
+
1064
+ def handle_runtime_feedback_collect(args: dict) -> dict:
1065
+ """Collect runtime feedback from test results."""
1066
+ try:
1067
+ from icdev.tools.analysis.runtime_feedback import RuntimeFeedbackCollector
1068
+ collector = RuntimeFeedbackCollector(
1069
+ project_id=args.get("project_id"),
1070
+ db_path=DB_PATH,
1071
+ )
1072
+ xml_path = Path(args["xml_path"])
1073
+ return collector.collect_from_xml(
1074
+ xml_path,
1075
+ run_id=args.get("run_id"),
1076
+ db_path=DB_PATH,
1077
+ )
1078
+ except Exception as exc:
1079
+ return {"error": str(exc)}