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,1771 @@
1
+ #!/usr/bin/env python3
2
+ # CUI // SP-CTI
3
+ """Extended Project Scaffolder — multi-language project templates.
4
+
5
+ Implements additional project types beyond the core Python/JS scaffolders:
6
+ - scaffold_java_backend -> Spring Boot / Maven project
7
+ - scaffold_go_backend -> Go module with HTTP server
8
+ - scaffold_rust_backend -> Cargo / Actix-web project
9
+ - scaffold_csharp_backend -> .NET 8 ASP.NET minimal API
10
+ - scaffold_typescript_backend -> Node.js + TypeScript + Express
11
+
12
+ All templates include CUI markings, STIG-hardened Dockerfiles,
13
+ README with CUI banners, and compliance/ directory.
14
+
15
+ CUI // SP-CTI
16
+ Controlled by: Department of Defense
17
+ CUI Category: CTI
18
+ Distribution: D
19
+ POC: ICDEV System Administrator
20
+ """
21
+
22
+ from pathlib import Path
23
+ from typing import List
24
+ from icdev._paths import get_project_root
25
+
26
+
27
+ # ---------------------------------------------------------------------------
28
+ # Shared constants (mirror scaffolder.py)
29
+ # ---------------------------------------------------------------------------
30
+
31
+ BASE_DIR = get_project_root()
32
+ DB_PATH = BASE_DIR / "data" / "icdev.db"
33
+
34
+ CUI_BANNER = """\
35
+ //////////////////////////////////////////////////////////////////
36
+ CONTROLLED UNCLASSIFIED INFORMATION (CUI) // SP-CTI
37
+ Distribution: Distribution D - Authorized DoD Personnel Only
38
+ //////////////////////////////////////////////////////////////////"""
39
+
40
+ CUI_BANNER_MD = """\
41
+ > **CUI // SP-CTI**
42
+ > Controlled by: Department of Defense | Distribution D
43
+ > This document contains Controlled Unclassified Information (CUI)."""
44
+
45
+ # Language-specific CUI headers
46
+ CUI_HEADER_PYTHON = """\
47
+ # CUI // SP-CTI
48
+ # Controlled by: Department of Defense
49
+ # CUI Category: CTI
50
+ # Distribution: D
51
+ # POC: ICDEV System Administrator
52
+ """
53
+
54
+ CUI_HEADER_C_STYLE = """\
55
+ // CUI // SP-CTI
56
+ // Controlled by: Department of Defense
57
+ // CUI Category: CTI
58
+ // Distribution: D
59
+ // POC: ICDEV System Administrator
60
+ """
61
+
62
+ CUI_HEADER_XML = """\
63
+ <!-- CUI // SP-CTI -->
64
+ <!-- Controlled by: Department of Defense -->
65
+ <!-- CUI Category: CTI -->
66
+ <!-- Distribution: D -->
67
+ <!-- POC: ICDEV System Administrator -->
68
+ """
69
+
70
+ CUI_HEADER_HASH = """\
71
+ # CUI // SP-CTI
72
+ # Controlled by: Department of Defense
73
+ # CUI Category: CTI
74
+ # Distribution: D
75
+ # POC: ICDEV System Administrator
76
+ """
77
+
78
+ CUI_HEADER_YAML = CUI_HEADER_HASH
79
+
80
+ CUI_HEADER_TOML = """\
81
+ # CUI // SP-CTI
82
+ # Controlled by: Department of Defense
83
+ # CUI Category: CTI
84
+ # Distribution: D
85
+ # POC: ICDEV System Administrator
86
+ """
87
+
88
+ CUI_HEADER_RUST = CUI_HEADER_C_STYLE
89
+
90
+
91
+ # ---------------------------------------------------------------------------
92
+ # Helpers
93
+ # ---------------------------------------------------------------------------
94
+
95
+ def _write_file(path: Path, content: str) -> None:
96
+ """Write content to a file, creating parent dirs as needed."""
97
+ path.parent.mkdir(parents=True, exist_ok=True)
98
+ path.write_text(content, encoding="utf-8")
99
+
100
+
101
+ def _create_gitkeep(directory: Path) -> None:
102
+ """Create a .gitkeep in an empty directory."""
103
+ directory.mkdir(parents=True, exist_ok=True)
104
+ (directory / ".gitkeep").write_text("", encoding="utf-8")
105
+
106
+
107
+ def _create_compliance_dirs(root: Path, files: List[str]) -> None:
108
+ """Create standard compliance subdirectories with .gitkeep files."""
109
+ for sub in ["ssp", "poam", "stig", "sbom", "sbd", "ivv", "rtm"]:
110
+ d = root / "compliance" / sub
111
+ _create_gitkeep(d)
112
+ files.append(str(d / ".gitkeep"))
113
+
114
+
115
+ def _readme_content(name: str, project_type: str, description: str = "") -> str:
116
+ """Generate a README with CUI banners."""
117
+ desc = description or f"A {project_type} project scaffolded by ICDEV Builder."
118
+ return f"""{CUI_BANNER}
119
+
120
+ # {name}
121
+
122
+ {CUI_BANNER_MD}
123
+
124
+ ## Overview
125
+
126
+ {desc}
127
+
128
+ ## Getting Started
129
+
130
+ See the project-specific build instructions below.
131
+
132
+ ## Compliance
133
+
134
+ See `compliance/` directory for security and compliance artifacts.
135
+
136
+ ## Classification
137
+
138
+ {CUI_BANNER}
139
+ """
140
+
141
+
142
+ def _compliance_readme() -> str:
143
+ """Generate a compliance directory README."""
144
+ return f"""{CUI_BANNER}
145
+
146
+ # Compliance Artifacts
147
+
148
+ This directory contains compliance documentation and artifacts for this project.
149
+
150
+ ## Contents
151
+
152
+ - `ssp/` - System Security Plan documents
153
+ - `poam/` - Plan of Action and Milestones
154
+ - `stig/` - STIG checklists and findings
155
+ - `sbom/` - Software Bill of Materials
156
+ - `sbd/` - Security Baseline Documentation
157
+ - `ivv/` - Independent Verification and Validation
158
+ - `rtm/` - Requirements Traceability Matrix
159
+
160
+ ## Classification
161
+
162
+ All artifacts in this directory are classified as CUI // SP-CTI.
163
+
164
+ {CUI_BANNER}
165
+ """
166
+
167
+
168
+ # ===================================================================
169
+ # 1. Java Backend (Spring Boot / Maven)
170
+ # ===================================================================
171
+
172
+ def scaffold_java_backend(project_path: str, name: str) -> List[str]:
173
+ """Scaffold a Spring Boot / Maven Java backend project.
174
+
175
+ Creates:
176
+ - pom.xml with Spring Boot 3.2.x, Java 17, testing dependencies
177
+ - Application.java main class
178
+ - HealthController.java
179
+ - application.yml
180
+ - Tests, BDD features dir
181
+ - STIG-hardened multi-stage Dockerfile
182
+ - Compliance dirs, README, .gitignore
183
+ """
184
+ root = Path(project_path) / name
185
+ root.mkdir(parents=True, exist_ok=True)
186
+ files: List[str] = []
187
+
188
+ # Sanitise name for Java package (lowercase, no hyphens)
189
+ pkg_name = name.lower().replace("-", "").replace("_", "")
190
+ pkg_path = f"com/icdev/{pkg_name}"
191
+
192
+ # -- pom.xml ----------------------------------------------------------
193
+ pom_xml = f"""{CUI_HEADER_XML}
194
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
195
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
196
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
197
+ https://maven.apache.org/xsd/maven-4.0.0.xsd">
198
+ <modelVersion>4.0.0</modelVersion>
199
+
200
+ <parent>
201
+ <groupId>org.springframework.boot</groupId>
202
+ <artifactId>spring-boot-starter-parent</artifactId>
203
+ <version>3.2.5</version>
204
+ <relativePath/>
205
+ </parent>
206
+
207
+ <groupId>com.icdev</groupId>
208
+ <artifactId>{name}</artifactId>
209
+ <version>0.1.0-SNAPSHOT</version>
210
+ <name>{name}</name>
211
+ <description>ICDEV scaffolded Spring Boot project — CUI // SP-CTI</description>
212
+
213
+ <properties>
214
+ <java.version>17</java.version>
215
+ <cucumber.version>7.15.0</cucumber.version>
216
+ </properties>
217
+
218
+ <dependencies>
219
+ <!-- Web -->
220
+ <dependency>
221
+ <groupId>org.springframework.boot</groupId>
222
+ <artifactId>spring-boot-starter-web</artifactId>
223
+ </dependency>
224
+
225
+ <!-- Test -->
226
+ <dependency>
227
+ <groupId>org.springframework.boot</groupId>
228
+ <artifactId>spring-boot-starter-test</artifactId>
229
+ <scope>test</scope>
230
+ </dependency>
231
+ <dependency>
232
+ <groupId>io.cucumber</groupId>
233
+ <artifactId>cucumber-java</artifactId>
234
+ <version>${{cucumber.version}}</version>
235
+ <scope>test</scope>
236
+ </dependency>
237
+ <dependency>
238
+ <groupId>io.cucumber</groupId>
239
+ <artifactId>cucumber-junit-platform-engine</artifactId>
240
+ <version>${{cucumber.version}}</version>
241
+ <scope>test</scope>
242
+ </dependency>
243
+ <dependency>
244
+ <groupId>org.junit.jupiter</groupId>
245
+ <artifactId>junit-jupiter</artifactId>
246
+ <scope>test</scope>
247
+ </dependency>
248
+ </dependencies>
249
+
250
+ <build>
251
+ <plugins>
252
+ <plugin>
253
+ <groupId>org.springframework.boot</groupId>
254
+ <artifactId>spring-boot-maven-plugin</artifactId>
255
+ </plugin>
256
+ <plugin>
257
+ <groupId>org.owasp</groupId>
258
+ <artifactId>dependency-check-maven</artifactId>
259
+ <version>9.0.9</version>
260
+ <configuration>
261
+ <failBuildOnCVSS>7</failBuildOnCVSS>
262
+ </configuration>
263
+ </plugin>
264
+ <plugin>
265
+ <groupId>org.apache.maven.plugins</groupId>
266
+ <artifactId>maven-checkstyle-plugin</artifactId>
267
+ <version>3.3.1</version>
268
+ <configuration>
269
+ <configLocation>google_checks.xml</configLocation>
270
+ <consoleOutput>true</consoleOutput>
271
+ <failsOnError>true</failsOnError>
272
+ </configuration>
273
+ </plugin>
274
+ </plugins>
275
+ </build>
276
+ </project>
277
+ """
278
+ p = root / "pom.xml"
279
+ _write_file(p, pom_xml)
280
+ files.append(str(p))
281
+
282
+ # -- Application.java -------------------------------------------------
283
+ app_java = f"""{CUI_HEADER_C_STYLE}
284
+ package com.icdev.{pkg_name};
285
+
286
+ import org.springframework.boot.SpringApplication;
287
+ import org.springframework.boot.autoconfigure.SpringBootApplication;
288
+
289
+ /**
290
+ * Main entry point for the {name} application.
291
+ * CUI // SP-CTI
292
+ */
293
+ @SpringBootApplication
294
+ public class Application {{
295
+
296
+ public static void main(String[] args) {{
297
+ SpringApplication.run(Application.class, args);
298
+ }}
299
+ }}
300
+ """
301
+ p = root / "src" / "main" / "java" / pkg_path / "Application.java"
302
+ _write_file(p, app_java)
303
+ files.append(str(p))
304
+
305
+ # -- HealthController.java --------------------------------------------
306
+ health_ctrl = f"""{CUI_HEADER_C_STYLE}
307
+ package com.icdev.{pkg_name}.controller;
308
+
309
+ import org.springframework.web.bind.annotation.GetMapping;
310
+ import org.springframework.web.bind.annotation.RestController;
311
+
312
+ import java.util.Map;
313
+
314
+ /**
315
+ * Health check endpoint.
316
+ * CUI // SP-CTI
317
+ */
318
+ @RestController
319
+ public class HealthController {{
320
+
321
+ @GetMapping("/health")
322
+ public Map<String, String> health() {{
323
+ return Map.of(
324
+ "status", "UP",
325
+ "service", "{name}",
326
+ "classification", "CUI // SP-CTI"
327
+ );
328
+ }}
329
+ }}
330
+ """
331
+ p = root / "src" / "main" / "java" / pkg_path / "controller" / "HealthController.java"
332
+ _write_file(p, health_ctrl)
333
+ files.append(str(p))
334
+
335
+ # -- package-info.java (service layer placeholder) --------------------
336
+ pkg_info = f"""{CUI_HEADER_C_STYLE}
337
+ /**
338
+ * Service layer for {name}.
339
+ * CUI // SP-CTI
340
+ */
341
+ package com.icdev.{pkg_name}.service;
342
+ """
343
+ p = root / "src" / "main" / "java" / pkg_path / "service" / "package-info.java"
344
+ _write_file(p, pkg_info)
345
+ files.append(str(p))
346
+
347
+ # -- application.yml --------------------------------------------------
348
+ app_yml = f"""{CUI_HEADER_YAML}
349
+ server:
350
+ port: 8080
351
+
352
+ spring:
353
+ application:
354
+ name: {name}
355
+
356
+ management:
357
+ endpoints:
358
+ web:
359
+ exposure:
360
+ include: health,info
361
+ """
362
+ p = root / "src" / "main" / "resources" / "application.yml"
363
+ _write_file(p, app_yml)
364
+ files.append(str(p))
365
+
366
+ # -- ApplicationTest.java ---------------------------------------------
367
+ app_test = f"""{CUI_HEADER_C_STYLE}
368
+ package com.icdev.{pkg_name};
369
+
370
+ import org.junit.jupiter.api.Test;
371
+ import org.springframework.boot.test.context.SpringBootTest;
372
+
373
+ /**
374
+ * Smoke test — verifies the Spring context loads.
375
+ * CUI // SP-CTI
376
+ */
377
+ @SpringBootTest
378
+ class ApplicationTest {{
379
+
380
+ @Test
381
+ void contextLoads() {{
382
+ // Context load is the assertion itself
383
+ }}
384
+ }}
385
+ """
386
+ p = root / "src" / "test" / "java" / pkg_path / "ApplicationTest.java"
387
+ _write_file(p, app_test)
388
+ files.append(str(p))
389
+
390
+ # -- BDD features dir -------------------------------------------------
391
+ _create_gitkeep(root / "src" / "test" / "resources" / "features")
392
+ files.append(str(root / "src" / "test" / "resources" / "features" / ".gitkeep"))
393
+
394
+ # -- Dockerfile (STIG-hardened, multi-stage) --------------------------
395
+ dockerfile = f"""{CUI_HEADER_HASH}
396
+ # STIG-hardened multi-stage Dockerfile for Java/Spring Boot
397
+ # CUI // SP-CTI
398
+
399
+ # ---- Build Stage ----
400
+ FROM eclipse-temurin:17-jdk-alpine AS build
401
+ WORKDIR /build
402
+ COPY pom.xml .
403
+ COPY src ./src
404
+ RUN apk add --no-cache maven \\
405
+ && mvn clean package -DskipTests -q \\
406
+ && mv target/*.jar app.jar
407
+
408
+ # ---- Runtime Stage ----
409
+ FROM eclipse-temurin:17-jre-alpine AS runtime
410
+
411
+ # STIG: Remove SUID/SGID binaries
412
+ RUN find / -perm /6000 -type f -exec chmod a-s {{}} + 2>/dev/null || true
413
+
414
+ # STIG: Create non-root user
415
+ RUN addgroup -g 1000 appgroup && adduser -u 1000 -G appgroup -D appuser
416
+
417
+ WORKDIR /app
418
+ COPY --from=build /build/app.jar ./app.jar
419
+
420
+ # STIG: Set ownership
421
+ RUN chown -R appuser:appgroup /app
422
+
423
+ # STIG: Drop ALL capabilities, run as non-root
424
+ USER appuser:appgroup
425
+
426
+ EXPOSE 8080
427
+ ENTRYPOINT ["java", "-jar", "app.jar"]
428
+
429
+ # Read-only root filesystem — enforce via container runtime:
430
+ # docker run --read-only --tmpfs /tmp:rw,noexec,nosuid ...
431
+ """
432
+ p = root / "Dockerfile"
433
+ _write_file(p, dockerfile)
434
+ files.append(str(p))
435
+
436
+ # -- .gitignore -------------------------------------------------------
437
+ gitignore = """\
438
+ # Java / Maven
439
+ target/
440
+ *.class
441
+ *.jar
442
+ *.war
443
+ *.ear
444
+ *.log
445
+ hs_err_pid*
446
+
447
+ # IDE
448
+ .idea/
449
+ *.iml
450
+ .project
451
+ .classpath
452
+ .settings/
453
+ .vscode/
454
+ *.swp
455
+ *.swo
456
+
457
+ # OS
458
+ .DS_Store
459
+ Thumbs.db
460
+
461
+ # Environment
462
+ .env
463
+
464
+ # Coverage
465
+ jacoco/
466
+ htmlcov/
467
+ coverage.xml
468
+
469
+ # Tmp
470
+ .tmp/
471
+ tmp/
472
+ """
473
+ p = root / ".gitignore"
474
+ _write_file(p, gitignore)
475
+ files.append(str(p))
476
+
477
+ # -- README.md --------------------------------------------------------
478
+ readme = _readme_content(name, "Java Spring Boot backend")
479
+ p = root / "README.md"
480
+ _write_file(p, readme)
481
+ files.append(str(p))
482
+
483
+ # -- Compliance dirs --------------------------------------------------
484
+ comp_readme = _compliance_readme()
485
+ p = root / "compliance" / "README.md"
486
+ _write_file(p, comp_readme)
487
+ files.append(str(p))
488
+ _create_compliance_dirs(root, files)
489
+
490
+ print(f"Scaffolded Java backend: {root}")
491
+ return files
492
+
493
+
494
+ # ===================================================================
495
+ # 2. Go Backend
496
+ # ===================================================================
497
+
498
+ def scaffold_go_backend(project_path: str, name: str) -> List[str]:
499
+ """Scaffold a Go module backend project.
500
+
501
+ Creates:
502
+ - go.mod (go 1.22)
503
+ - cmd/{name}/main.go with HTTP server
504
+ - internal/handler/health.go
505
+ - internal/service/.gitkeep
506
+ - pkg/.gitkeep
507
+ - Tests, BDD features dir
508
+ - STIG-hardened multi-stage Dockerfile (scratch runtime)
509
+ - Compliance dirs, README, .gitignore
510
+ """
511
+ root = Path(project_path) / name
512
+ root.mkdir(parents=True, exist_ok=True)
513
+ files: List[str] = []
514
+
515
+ # Sanitise module name
516
+ mod_name = name.lower().replace("_", "-")
517
+
518
+ # -- go.mod -----------------------------------------------------------
519
+ go_mod = f"""{CUI_HEADER_C_STYLE}
520
+ module github.com/icdev/{mod_name}
521
+
522
+ go 1.22
523
+
524
+ require ()
525
+ """
526
+ p = root / "go.mod"
527
+ _write_file(p, go_mod)
528
+ files.append(str(p))
529
+
530
+ # -- cmd/{name}/main.go -----------------------------------------------
531
+ main_go = f"""{CUI_HEADER_C_STYLE}
532
+ package main
533
+
534
+ import (
535
+ \t"fmt"
536
+ \t"log"
537
+ \t"net/http"
538
+ \t"os"
539
+
540
+ \t"github.com/icdev/{mod_name}/internal/handler"
541
+ )
542
+
543
+ // CUI // SP-CTI
544
+
545
+ func main() {{
546
+ \tport := os.Getenv("PORT")
547
+ \tif port == "" {{
548
+ \t\tport = "8080"
549
+ \t}}
550
+
551
+ \tmux := http.NewServeMux()
552
+ \tmux.HandleFunc("/health", handler.Health)
553
+
554
+ \taddr := fmt.Sprintf(":%s", port)
555
+ \tlog.Printf("Starting {name} on %s", addr)
556
+ \tif err := http.ListenAndServe(addr, mux); err != nil {{
557
+ \t\tlog.Fatalf("Server failed: %v", err)
558
+ \t}}
559
+ }}
560
+ """
561
+ p = root / "cmd" / mod_name / "main.go"
562
+ _write_file(p, main_go)
563
+ files.append(str(p))
564
+
565
+ # -- internal/handler/health.go ---------------------------------------
566
+ health_go = f"""{CUI_HEADER_C_STYLE}
567
+ package handler
568
+
569
+ import (
570
+ \t"encoding/json"
571
+ \t"net/http"
572
+ )
573
+
574
+ // CUI // SP-CTI
575
+
576
+ // HealthResponse is the JSON body returned by the health endpoint.
577
+ type HealthResponse struct {{
578
+ \tStatus string `json:"status"`
579
+ \tService string `json:"service"`
580
+ \tClassification string `json:"classification"`
581
+ }}
582
+
583
+ // Health handles GET /health requests.
584
+ func Health(w http.ResponseWriter, r *http.Request) {{
585
+ \tw.Header().Set("Content-Type", "application/json")
586
+ \tresp := HealthResponse{{
587
+ \t\tStatus: "UP",
588
+ \t\tService: "{name}",
589
+ \t\tClassification: "CUI // SP-CTI",
590
+ \t}}
591
+ \tjson.NewEncoder(w).Encode(resp)
592
+ }}
593
+ """
594
+ p = root / "internal" / "handler" / "health.go"
595
+ _write_file(p, health_go)
596
+ files.append(str(p))
597
+
598
+ # -- internal/service/.gitkeep ----------------------------------------
599
+ _create_gitkeep(root / "internal" / "service")
600
+ files.append(str(root / "internal" / "service" / ".gitkeep"))
601
+
602
+ # -- pkg/.gitkeep -----------------------------------------------------
603
+ _create_gitkeep(root / "pkg")
604
+ files.append(str(root / "pkg" / ".gitkeep"))
605
+
606
+ # -- cmd/{name}/main_test.go ------------------------------------------
607
+ main_test_go = f"""{CUI_HEADER_C_STYLE}
608
+ package main
609
+
610
+ import (
611
+ \t"net/http"
612
+ \t"net/http/httptest"
613
+ \t"testing"
614
+
615
+ \t"github.com/icdev/{mod_name}/internal/handler"
616
+ )
617
+
618
+ // CUI // SP-CTI
619
+
620
+ func TestHealthEndpoint(t *testing.T) {{
621
+ \treq, err := http.NewRequest("GET", "/health", nil)
622
+ \tif err != nil {{
623
+ \t\tt.Fatal(err)
624
+ \t}}
625
+
626
+ \trr := httptest.NewRecorder()
627
+ \thandlerFunc := http.HandlerFunc(handler.Health)
628
+ \thandlerFunc.ServeHTTP(rr, req)
629
+
630
+ \tif status := rr.Code; status != http.StatusOK {{
631
+ \t\tt.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK)
632
+ \t}}
633
+
634
+ \texpected := `"status":"UP"`
635
+ \tif body := rr.Body.String(); !contains(body, expected) {{
636
+ \t\tt.Errorf("handler returned unexpected body: got %v", body)
637
+ \t}}
638
+ }}
639
+
640
+ func contains(s, substr string) bool {{
641
+ \treturn len(s) >= len(substr) && (s == substr || len(s) > 0 && containsImpl(s, substr))
642
+ }}
643
+
644
+ func containsImpl(s, substr string) bool {{
645
+ \tfor i := 0; i <= len(s)-len(substr); i++ {{
646
+ \t\tif s[i:i+len(substr)] == substr {{
647
+ \t\t\treturn true
648
+ \t\t}}
649
+ \t}}
650
+ \treturn false
651
+ }}
652
+ """
653
+ p = root / "cmd" / mod_name / "main_test.go"
654
+ _write_file(p, main_test_go)
655
+ files.append(str(p))
656
+
657
+ # -- features/.gitkeep ------------------------------------------------
658
+ _create_gitkeep(root / "features")
659
+ files.append(str(root / "features" / ".gitkeep"))
660
+
661
+ # -- Dockerfile (STIG-hardened, multi-stage, scratch runtime) ---------
662
+ dockerfile = f"""{CUI_HEADER_HASH}
663
+ # STIG-hardened multi-stage Dockerfile for Go
664
+ # CUI // SP-CTI
665
+
666
+ # ---- Build Stage ----
667
+ FROM golang:1.22-alpine AS build
668
+
669
+ RUN apk add --no-cache git ca-certificates
670
+
671
+ WORKDIR /src
672
+ COPY go.mod go.sum* ./
673
+ RUN go mod download 2>/dev/null || true
674
+
675
+ COPY . .
676
+ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \\
677
+ go build -ldflags="-s -w" -o /app ./cmd/{mod_name}
678
+
679
+ # ---- Runtime Stage ----
680
+ FROM scratch AS runtime
681
+
682
+ # STIG: Import CA certs for TLS
683
+ COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
684
+
685
+ # STIG: Copy passwd for non-root user (UID 1000)
686
+ COPY --from=build /etc/passwd /etc/passwd
687
+
688
+ # Copy binary
689
+ COPY --from=build /app /app
690
+
691
+ # STIG: Run as non-root
692
+ USER 1000:1000
693
+
694
+ EXPOSE 8080
695
+ ENTRYPOINT ["/app"]
696
+
697
+ # Read-only root filesystem — enforced by scratch (immutable)
698
+ # Drop ALL capabilities — enforced via container runtime:
699
+ # docker run --cap-drop=ALL ...
700
+ """
701
+ p = root / "Dockerfile"
702
+ _write_file(p, dockerfile)
703
+ files.append(str(p))
704
+
705
+ # -- .gitignore -------------------------------------------------------
706
+ gitignore = """\
707
+ # Go
708
+ bin/
709
+ vendor/
710
+ *.exe
711
+ *.exe~
712
+ *.dll
713
+ *.so
714
+ *.dylib
715
+ *.test
716
+ *.out
717
+
718
+ # IDE
719
+ .idea/
720
+ .vscode/
721
+ *.swp
722
+ *.swo
723
+
724
+ # OS
725
+ .DS_Store
726
+ Thumbs.db
727
+
728
+ # Environment
729
+ .env
730
+
731
+ # Coverage
732
+ coverage.out
733
+ coverage.html
734
+
735
+ # Tmp
736
+ .tmp/
737
+ tmp/
738
+ """
739
+ p = root / ".gitignore"
740
+ _write_file(p, gitignore)
741
+ files.append(str(p))
742
+
743
+ # -- README.md --------------------------------------------------------
744
+ readme = _readme_content(name, "Go backend")
745
+ p = root / "README.md"
746
+ _write_file(p, readme)
747
+ files.append(str(p))
748
+
749
+ # -- Compliance dirs --------------------------------------------------
750
+ comp_readme = _compliance_readme()
751
+ p = root / "compliance" / "README.md"
752
+ _write_file(p, comp_readme)
753
+ files.append(str(p))
754
+ _create_compliance_dirs(root, files)
755
+
756
+ print(f"Scaffolded Go backend: {root}")
757
+ return files
758
+
759
+
760
+ # ===================================================================
761
+ # 3. Rust Backend (Actix-web / Cargo)
762
+ # ===================================================================
763
+
764
+ def scaffold_rust_backend(project_path: str, name: str) -> List[str]:
765
+ """Scaffold a Rust Actix-web backend project.
766
+
767
+ Creates:
768
+ - Cargo.toml with actix-web, serde, tokio
769
+ - src/main.rs with Actix-web server
770
+ - src/lib.rs module root
771
+ - src/handlers/mod.rs with health handler
772
+ - tests/integration_test.rs
773
+ - BDD features dir
774
+ - STIG-hardened multi-stage Dockerfile
775
+ - Compliance dirs, README, .gitignore
776
+ """
777
+ root = Path(project_path) / name
778
+ root.mkdir(parents=True, exist_ok=True)
779
+ files: List[str] = []
780
+
781
+ # Sanitise crate name (Rust uses underscores)
782
+ crate_name = name.lower().replace("-", "_")
783
+
784
+ # -- Cargo.toml -------------------------------------------------------
785
+ cargo_toml = f"""{CUI_HEADER_TOML}
786
+ [package]
787
+ name = "{crate_name}"
788
+ version = "0.1.0"
789
+ edition = "2021"
790
+ description = "ICDEV scaffolded Rust backend — CUI // SP-CTI"
791
+
792
+ [dependencies]
793
+ actix-web = "4"
794
+ actix-rt = "2"
795
+ serde = {{ version = "1", features = ["derive"] }}
796
+ serde_json = "1"
797
+ tokio = {{ version = "1", features = ["full"] }}
798
+ env_logger = "0.11"
799
+ log = "0.4"
800
+
801
+ [dev-dependencies]
802
+ actix-test = "0.1"
803
+ reqwest = {{ version = "0.12", features = ["json"] }}
804
+ """
805
+ p = root / "Cargo.toml"
806
+ _write_file(p, cargo_toml)
807
+ files.append(str(p))
808
+
809
+ # -- src/main.rs ------------------------------------------------------
810
+ main_rs = f"""{CUI_HEADER_RUST}
811
+
812
+ use actix_web::{{App, HttpServer, web}};
813
+ use env_logger::Env;
814
+
815
+ mod handlers;
816
+
817
+ /// CUI // SP-CTI
818
+ /// Main entry point for the {name} service.
819
+ #[actix_web::main]
820
+ async fn main() -> std::io::Result<()> {{
821
+ env_logger::init_from_env(Env::default().default_filter_or("info"));
822
+
823
+ log::info!("Starting {name} on 0.0.0.0:8080");
824
+
825
+ HttpServer::new(|| {{
826
+ App::new()
827
+ .route("/health", web::get().to(handlers::health))
828
+ }})
829
+ .bind("0.0.0.0:8080")?
830
+ .run()
831
+ .await
832
+ }}
833
+ """
834
+ p = root / "src" / "main.rs"
835
+ _write_file(p, main_rs)
836
+ files.append(str(p))
837
+
838
+ # -- src/lib.rs -------------------------------------------------------
839
+ lib_rs = f"""{CUI_HEADER_RUST}
840
+
841
+ //! Library root for {crate_name}.
842
+ //! CUI // SP-CTI
843
+
844
+ pub mod handlers;
845
+ """
846
+ p = root / "src" / "lib.rs"
847
+ _write_file(p, lib_rs)
848
+ files.append(str(p))
849
+
850
+ # -- src/handlers/mod.rs ----------------------------------------------
851
+ handlers_mod = f"""{CUI_HEADER_RUST}
852
+
853
+ use actix_web::{{HttpResponse, web}};
854
+ use serde::Serialize;
855
+
856
+ /// CUI // SP-CTI
857
+
858
+ /// Health check response body.
859
+ #[derive(Serialize)]
860
+ pub struct HealthResponse {{
861
+ pub status: String,
862
+ pub service: String,
863
+ pub classification: String,
864
+ }}
865
+
866
+ /// GET /health — returns service health status.
867
+ pub async fn health() -> HttpResponse {{
868
+ let resp = HealthResponse {{
869
+ status: "UP".to_string(),
870
+ service: "{name}".to_string(),
871
+ classification: "CUI // SP-CTI".to_string(),
872
+ }};
873
+ HttpResponse::Ok().json(resp)
874
+ }}
875
+ """
876
+ p = root / "src" / "handlers" / "mod.rs"
877
+ _write_file(p, handlers_mod)
878
+ files.append(str(p))
879
+
880
+ # -- tests/integration_test.rs ----------------------------------------
881
+ integration_test = f"""{CUI_HEADER_RUST}
882
+
883
+ //! Integration tests for {crate_name}.
884
+ //! CUI // SP-CTI
885
+
886
+ #[cfg(test)]
887
+ mod tests {{
888
+ use actix_web::{{test, App, web}};
889
+ use {crate_name}::handlers;
890
+
891
+ #[actix_web::test]
892
+ async fn test_health_endpoint() {{
893
+ let app = test::init_service(
894
+ App::new().route("/health", web::get().to(handlers::health))
895
+ )
896
+ .await;
897
+
898
+ let req = test::TestRequest::get().uri("/health").to_request();
899
+ let resp = test::call_service(&app, req).await;
900
+
901
+ assert!(resp.status().is_success());
902
+ }}
903
+ }}
904
+ """
905
+ p = root / "tests" / "integration_test.rs"
906
+ _write_file(p, integration_test)
907
+ files.append(str(p))
908
+
909
+ # -- features/.gitkeep ------------------------------------------------
910
+ _create_gitkeep(root / "features")
911
+ files.append(str(root / "features" / ".gitkeep"))
912
+
913
+ # -- Dockerfile (STIG-hardened, multi-stage) --------------------------
914
+ dockerfile = f"""{CUI_HEADER_HASH}
915
+ # STIG-hardened multi-stage Dockerfile for Rust
916
+ # CUI // SP-CTI
917
+
918
+ # ---- Build Stage ----
919
+ FROM rust:1.77-slim AS build
920
+
921
+ RUN apt-get update && apt-get install -y --no-install-recommends \\
922
+ pkg-config libssl-dev ca-certificates \\
923
+ && rm -rf /var/lib/apt/lists/*
924
+
925
+ WORKDIR /src
926
+ COPY Cargo.toml Cargo.lock* ./
927
+ # Cache dependencies
928
+ RUN mkdir src && echo "fn main() {{}}" > src/main.rs \\
929
+ && cargo build --release 2>/dev/null || true \\
930
+ && rm -rf src
931
+
932
+ COPY . .
933
+ RUN cargo build --release
934
+
935
+ # ---- Runtime Stage ----
936
+ FROM debian:bookworm-slim AS runtime
937
+
938
+ RUN apt-get update && apt-get install -y --no-install-recommends \\
939
+ ca-certificates \\
940
+ && rm -rf /var/lib/apt/lists/*
941
+
942
+ # STIG: Remove SUID/SGID binaries
943
+ RUN find / -perm /6000 -type f -exec chmod a-s {{}} + 2>/dev/null || true
944
+
945
+ # STIG: Create non-root user
946
+ RUN groupadd -g 1000 appgroup && useradd -u 1000 -g appgroup -m appuser
947
+
948
+ WORKDIR /app
949
+ COPY --from=build /src/target/release/{crate_name} ./app
950
+
951
+ # STIG: Set ownership
952
+ RUN chown -R appuser:appgroup /app
953
+
954
+ # STIG: Drop ALL capabilities, run as non-root
955
+ USER appuser:appgroup
956
+
957
+ EXPOSE 8080
958
+ ENTRYPOINT ["./app"]
959
+
960
+ # Read-only root filesystem — enforce via container runtime:
961
+ # docker run --read-only --tmpfs /tmp:rw,noexec,nosuid ...
962
+ """
963
+ p = root / "Dockerfile"
964
+ _write_file(p, dockerfile)
965
+ files.append(str(p))
966
+
967
+ # -- .gitignore -------------------------------------------------------
968
+ gitignore = """\
969
+ # Rust
970
+ /target/
971
+ Cargo.lock
972
+
973
+ # IDE
974
+ .idea/
975
+ .vscode/
976
+ *.swp
977
+ *.swo
978
+
979
+ # OS
980
+ .DS_Store
981
+ Thumbs.db
982
+
983
+ # Environment
984
+ .env
985
+
986
+ # Coverage
987
+ tarpaulin-report.html
988
+ cobertura.xml
989
+
990
+ # Tmp
991
+ .tmp/
992
+ tmp/
993
+ """
994
+ p = root / ".gitignore"
995
+ _write_file(p, gitignore)
996
+ files.append(str(p))
997
+
998
+ # -- README.md --------------------------------------------------------
999
+ readme = _readme_content(name, "Rust Actix-web backend")
1000
+ p = root / "README.md"
1001
+ _write_file(p, readme)
1002
+ files.append(str(p))
1003
+
1004
+ # -- Compliance dirs --------------------------------------------------
1005
+ comp_readme = _compliance_readme()
1006
+ p = root / "compliance" / "README.md"
1007
+ _write_file(p, comp_readme)
1008
+ files.append(str(p))
1009
+ _create_compliance_dirs(root, files)
1010
+
1011
+ print(f"Scaffolded Rust backend: {root}")
1012
+ return files
1013
+
1014
+
1015
+ # ===================================================================
1016
+ # 4. C# Backend (.NET 8 ASP.NET)
1017
+ # ===================================================================
1018
+
1019
+ def scaffold_csharp_backend(project_path: str, name: str) -> List[str]:
1020
+ """Scaffold a .NET 8 ASP.NET backend project.
1021
+
1022
+ Creates:
1023
+ - {name}.csproj with ASP.NET, SpecFlow, xunit references
1024
+ - Program.cs minimal API
1025
+ - Controllers/HealthController.cs
1026
+ - Models/.gitkeep, Services/.gitkeep
1027
+ - Tests/{name}.Tests.csproj and test file
1028
+ - BDD features dir
1029
+ - STIG-hardened multi-stage Dockerfile
1030
+ - Compliance dirs, README, .gitignore
1031
+ """
1032
+ root = Path(project_path) / name
1033
+ root.mkdir(parents=True, exist_ok=True)
1034
+ files: List[str] = []
1035
+
1036
+ # Sanitise for C# namespace (PascalCase, no hyphens)
1037
+ ns_name = "".join(word.capitalize() for word in name.replace("_", "-").split("-"))
1038
+
1039
+ # -- {name}.csproj ----------------------------------------------------
1040
+ csproj = f"""{CUI_HEADER_XML}
1041
+ <Project Sdk="Microsoft.NET.Sdk.Web">
1042
+
1043
+ <PropertyGroup>
1044
+ <TargetFramework>net8.0</TargetFramework>
1045
+ <Nullable>enable</Nullable>
1046
+ <ImplicitUsings>enable</ImplicitUsings>
1047
+ <RootNamespace>{ns_name}</RootNamespace>
1048
+ <AssemblyName>{name}</AssemblyName>
1049
+ <Description>ICDEV scaffolded .NET 8 project — CUI // SP-CTI</Description>
1050
+ </PropertyGroup>
1051
+
1052
+ <ItemGroup>
1053
+ <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.*" />
1054
+ <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.*" />
1055
+ </ItemGroup>
1056
+
1057
+ </Project>
1058
+ """
1059
+ p = root / f"{name}.csproj"
1060
+ _write_file(p, csproj)
1061
+ files.append(str(p))
1062
+
1063
+ # -- Program.cs -------------------------------------------------------
1064
+ program_cs = f"""{CUI_HEADER_C_STYLE}
1065
+
1066
+ // CUI // SP-CTI — {name} entry point
1067
+
1068
+ var builder = WebApplication.CreateBuilder(args);
1069
+
1070
+ builder.Services.AddControllers();
1071
+ builder.Services.AddEndpointsApiExplorer();
1072
+ builder.Services.AddSwaggerGen();
1073
+
1074
+ var app = builder.Build();
1075
+
1076
+ if (app.Environment.IsDevelopment())
1077
+ {{
1078
+ app.UseSwagger();
1079
+ app.UseSwaggerUI();
1080
+ }}
1081
+
1082
+ app.MapControllers();
1083
+
1084
+ // Minimal API health endpoint (alternative to controller)
1085
+ app.MapGet("/", () => Results.Ok(new {{ status = "UP", classification = "CUI // SP-CTI" }}));
1086
+
1087
+ app.Run();
1088
+ """
1089
+ p = root / "Program.cs"
1090
+ _write_file(p, program_cs)
1091
+ files.append(str(p))
1092
+
1093
+ # -- Controllers/HealthController.cs ----------------------------------
1094
+ health_ctrl_cs = f"""{CUI_HEADER_C_STYLE}
1095
+
1096
+ using Microsoft.AspNetCore.Mvc;
1097
+
1098
+ namespace {ns_name}.Controllers;
1099
+
1100
+ /// <summary>
1101
+ /// Health check controller.
1102
+ /// CUI // SP-CTI
1103
+ /// </summary>
1104
+ [ApiController]
1105
+ [Route("[controller]")]
1106
+ public class HealthController : ControllerBase
1107
+ {{
1108
+ /// <summary>
1109
+ /// GET /health — returns service health status.
1110
+ /// </summary>
1111
+ [HttpGet("/health")]
1112
+ public IActionResult GetHealth()
1113
+ {{
1114
+ return Ok(new
1115
+ {{
1116
+ status = "UP",
1117
+ service = "{name}",
1118
+ classification = "CUI // SP-CTI"
1119
+ }});
1120
+ }}
1121
+ }}
1122
+ """
1123
+ p = root / "Controllers" / "HealthController.cs"
1124
+ _write_file(p, health_ctrl_cs)
1125
+ files.append(str(p))
1126
+
1127
+ # -- Models/.gitkeep --------------------------------------------------
1128
+ _create_gitkeep(root / "Models")
1129
+ files.append(str(root / "Models" / ".gitkeep"))
1130
+
1131
+ # -- Services/.gitkeep ------------------------------------------------
1132
+ _create_gitkeep(root / "Services")
1133
+ files.append(str(root / "Services" / ".gitkeep"))
1134
+
1135
+ # -- Tests/{name}.Tests.csproj ----------------------------------------
1136
+ test_csproj = f"""{CUI_HEADER_XML}
1137
+ <Project Sdk="Microsoft.NET.Sdk">
1138
+
1139
+ <PropertyGroup>
1140
+ <TargetFramework>net8.0</TargetFramework>
1141
+ <Nullable>enable</Nullable>
1142
+ <ImplicitUsings>enable</ImplicitUsings>
1143
+ <IsPackable>false</IsPackable>
1144
+ <RootNamespace>{ns_name}.Tests</RootNamespace>
1145
+ </PropertyGroup>
1146
+
1147
+ <ItemGroup>
1148
+ <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.*" />
1149
+ <PackageReference Include="xunit" Version="2.7.*" />
1150
+ <PackageReference Include="xunit.runner.visualstudio" Version="2.5.*" />
1151
+ <PackageReference Include="SpecFlow" Version="3.9.*" />
1152
+ <PackageReference Include="SpecFlow.xUnit" Version="3.9.*" />
1153
+ </ItemGroup>
1154
+
1155
+ <ItemGroup>
1156
+ <ProjectReference Include="..\\{name}.csproj" />
1157
+ </ItemGroup>
1158
+
1159
+ </Project>
1160
+ """
1161
+ p = root / "Tests" / f"{name}.Tests.csproj"
1162
+ _write_file(p, test_csproj)
1163
+ files.append(str(p))
1164
+
1165
+ # -- Tests/HealthControllerTests.cs -----------------------------------
1166
+ health_test_cs = f"""{CUI_HEADER_C_STYLE}
1167
+
1168
+ using Microsoft.AspNetCore.Mvc;
1169
+ using {ns_name}.Controllers;
1170
+ using Xunit;
1171
+
1172
+ namespace {ns_name}.Tests;
1173
+
1174
+ /// <summary>
1175
+ /// Tests for HealthController.
1176
+ /// CUI // SP-CTI
1177
+ /// </summary>
1178
+ public class HealthControllerTests
1179
+ {{
1180
+ [Fact]
1181
+ public void GetHealth_ReturnsOk()
1182
+ {{
1183
+ // Arrange
1184
+ var controller = new HealthController();
1185
+
1186
+ // Act
1187
+ var result = controller.GetHealth();
1188
+
1189
+ // Assert
1190
+ Assert.IsType<OkObjectResult>(result);
1191
+ }}
1192
+ }}
1193
+ """
1194
+ p = root / "Tests" / "HealthControllerTests.cs"
1195
+ _write_file(p, health_test_cs)
1196
+ files.append(str(p))
1197
+
1198
+ # -- features/.gitkeep ------------------------------------------------
1199
+ _create_gitkeep(root / "features")
1200
+ files.append(str(root / "features" / ".gitkeep"))
1201
+
1202
+ # -- Dockerfile (STIG-hardened, multi-stage) --------------------------
1203
+ dockerfile = f"""{CUI_HEADER_HASH}
1204
+ # STIG-hardened multi-stage Dockerfile for .NET 8
1205
+ # CUI // SP-CTI
1206
+
1207
+ # ---- Build Stage ----
1208
+ FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
1209
+ WORKDIR /src
1210
+
1211
+ COPY {name}.csproj .
1212
+ RUN dotnet restore
1213
+
1214
+ COPY . .
1215
+ RUN dotnet publish -c Release -o /app/publish --no-restore
1216
+
1217
+ # ---- Runtime Stage ----
1218
+ FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS runtime
1219
+
1220
+ # STIG: Remove SUID/SGID binaries
1221
+ RUN find / -perm /6000 -type f -exec chmod a-s {{}} + 2>/dev/null || true
1222
+
1223
+ # STIG: Create non-root user
1224
+ RUN addgroup -g 1000 appgroup && adduser -u 1000 -G appgroup -D appuser
1225
+
1226
+ WORKDIR /app
1227
+ COPY --from=build /app/publish .
1228
+
1229
+ # STIG: Set ownership
1230
+ RUN chown -R appuser:appgroup /app
1231
+
1232
+ # STIG: Drop ALL capabilities, run as non-root
1233
+ USER appuser:appgroup
1234
+
1235
+ EXPOSE 8080
1236
+ ENV ASPNETCORE_URLS=http://+:8080
1237
+ ENTRYPOINT ["dotnet", "{name}.dll"]
1238
+
1239
+ # Read-only root filesystem — enforce via container runtime:
1240
+ # docker run --read-only --tmpfs /tmp:rw,noexec,nosuid ...
1241
+ """
1242
+ p = root / "Dockerfile"
1243
+ _write_file(p, dockerfile)
1244
+ files.append(str(p))
1245
+
1246
+ # -- .gitignore -------------------------------------------------------
1247
+ gitignore = """\
1248
+ # .NET / C#
1249
+ bin/
1250
+ obj/
1251
+ *.dll
1252
+ *.pdb
1253
+ *.exe
1254
+ *.nupkg
1255
+ *.user
1256
+ *.suo
1257
+
1258
+ # IDE
1259
+ .vs/
1260
+ .vscode/
1261
+ *.swp
1262
+ *.swo
1263
+ .idea/
1264
+
1265
+ # OS
1266
+ .DS_Store
1267
+ Thumbs.db
1268
+
1269
+ # Environment
1270
+ .env
1271
+ appsettings.Development.json
1272
+
1273
+ # Coverage
1274
+ TestResults/
1275
+ coverage.cobertura.xml
1276
+
1277
+ # Tmp
1278
+ .tmp/
1279
+ tmp/
1280
+ """
1281
+ p = root / ".gitignore"
1282
+ _write_file(p, gitignore)
1283
+ files.append(str(p))
1284
+
1285
+ # -- README.md --------------------------------------------------------
1286
+ readme = _readme_content(name, ".NET 8 ASP.NET backend")
1287
+ p = root / "README.md"
1288
+ _write_file(p, readme)
1289
+ files.append(str(p))
1290
+
1291
+ # -- Compliance dirs --------------------------------------------------
1292
+ comp_readme = _compliance_readme()
1293
+ p = root / "compliance" / "README.md"
1294
+ _write_file(p, comp_readme)
1295
+ files.append(str(p))
1296
+ _create_compliance_dirs(root, files)
1297
+
1298
+ print(f"Scaffolded C# backend: {root}")
1299
+ return files
1300
+
1301
+
1302
+ # ===================================================================
1303
+ # 5. TypeScript Backend (Node.js + Express)
1304
+ # ===================================================================
1305
+
1306
+ def scaffold_typescript_backend(project_path: str, name: str) -> List[str]:
1307
+ """Scaffold a Node.js + TypeScript + Express backend project.
1308
+
1309
+ Creates:
1310
+ - package.json with typescript, express, jest, cucumber
1311
+ - tsconfig.json (strict mode)
1312
+ - src/index.ts with Express app
1313
+ - src/routes/health.ts
1314
+ - src/services/.gitkeep
1315
+ - tests/health.test.ts
1316
+ - BDD features dir
1317
+ - STIG-hardened multi-stage Dockerfile
1318
+ - Compliance dirs, README, .gitignore
1319
+ """
1320
+ root = Path(project_path) / name
1321
+ root.mkdir(parents=True, exist_ok=True)
1322
+ files: List[str] = []
1323
+
1324
+ # -- package.json -----------------------------------------------------
1325
+ # Note: CUI_HEADER_C_STYLE at top of JSON is non-standard but signals classification.
1326
+ # In practice a .cui-header file or banner comment in the actual source is preferred.
1327
+ # We strip the header for valid JSON by writing the JSON portion only.
1328
+ package_json_content = """{
1329
+ "name": """ + f'"{name}"' + """,
1330
+ "version": "0.1.0",
1331
+ "description": "ICDEV scaffolded TypeScript backend — CUI // SP-CTI",
1332
+ "main": "dist/index.js",
1333
+ "scripts": {
1334
+ "build": "tsc",
1335
+ "start": "node dist/index.js",
1336
+ "dev": "ts-node src/index.ts",
1337
+ "test": "jest --coverage",
1338
+ "test:bdd": "cucumber-js features/",
1339
+ "lint": "eslint src/ tests/",
1340
+ "clean": "rm -rf dist/"
1341
+ },
1342
+ "dependencies": {
1343
+ "express": "^4.18.2"
1344
+ },
1345
+ "devDependencies": {
1346
+ "@cucumber/cucumber": "^10.3.1",
1347
+ "@types/express": "^4.17.21",
1348
+ "@types/jest": "^29.5.12",
1349
+ "@types/node": "^20.11.19",
1350
+ "jest": "^29.7.0",
1351
+ "ts-jest": "^29.1.2",
1352
+ "ts-node": "^10.9.2",
1353
+ "typescript": "^5.3.3"
1354
+ },
1355
+ "engines": {
1356
+ "node": ">=20.0.0"
1357
+ },
1358
+ "license": "SEE LICENSE IN NOTICE",
1359
+ "private": true
1360
+ }
1361
+ """
1362
+ p = root / "package.json"
1363
+ _write_file(p, package_json_content)
1364
+ files.append(str(p))
1365
+
1366
+ # -- tsconfig.json ----------------------------------------------------
1367
+ tsconfig = """{
1368
+ "compilerOptions": {
1369
+ "target": "ES2022",
1370
+ "module": "commonjs",
1371
+ "lib": ["ES2022"],
1372
+ "outDir": "./dist",
1373
+ "rootDir": "./src",
1374
+ "strict": true,
1375
+ "esModuleInterop": true,
1376
+ "skipLibCheck": true,
1377
+ "forceConsistentCasingInFileNames": true,
1378
+ "resolveJsonModule": true,
1379
+ "declaration": true,
1380
+ "declarationMap": true,
1381
+ "sourceMap": true
1382
+ },
1383
+ "include": ["src/**/*"],
1384
+ "exclude": ["node_modules", "dist", "tests"]
1385
+ }
1386
+ """
1387
+ p = root / "tsconfig.json"
1388
+ _write_file(p, tsconfig)
1389
+ files.append(str(p))
1390
+
1391
+ # -- src/index.ts -----------------------------------------------------
1392
+ index_ts = f"""{CUI_HEADER_C_STYLE}
1393
+
1394
+ import express from 'express';
1395
+ import {{ healthRouter }} from './routes/health';
1396
+
1397
+ // CUI // SP-CTI
1398
+
1399
+ const app = express();
1400
+ const PORT = process.env.PORT || 8080;
1401
+
1402
+ app.use(express.json());
1403
+
1404
+ // Routes
1405
+ app.use('/health', healthRouter);
1406
+
1407
+ // Default route
1408
+ app.get('/', (_req, res) => {{
1409
+ res.json({{
1410
+ service: '{name}',
1411
+ status: 'running',
1412
+ classification: 'CUI // SP-CTI',
1413
+ }});
1414
+ }});
1415
+
1416
+ app.listen(PORT, () => {{
1417
+ console.log(`{name} listening on port ${{PORT}}`);
1418
+ }});
1419
+
1420
+ export default app;
1421
+ """
1422
+ p = root / "src" / "index.ts"
1423
+ _write_file(p, index_ts)
1424
+ files.append(str(p))
1425
+
1426
+ # -- src/routes/health.ts ---------------------------------------------
1427
+ health_ts = f"""{CUI_HEADER_C_STYLE}
1428
+
1429
+ import {{ Router, Request, Response }} from 'express';
1430
+
1431
+ // CUI // SP-CTI
1432
+
1433
+ export const healthRouter = Router();
1434
+
1435
+ interface HealthResponse {{
1436
+ status: string;
1437
+ service: string;
1438
+ classification: string;
1439
+ timestamp: string;
1440
+ }}
1441
+
1442
+ /**
1443
+ * GET /health — returns service health status.
1444
+ */
1445
+ healthRouter.get('/', (_req: Request, res: Response) => {{
1446
+ const response: HealthResponse = {{
1447
+ status: 'UP',
1448
+ service: '{name}',
1449
+ classification: 'CUI // SP-CTI',
1450
+ timestamp: new Date().toISOString(),
1451
+ }};
1452
+ res.json(response);
1453
+ }});
1454
+ """
1455
+ p = root / "src" / "routes" / "health.ts"
1456
+ _write_file(p, health_ts)
1457
+ files.append(str(p))
1458
+
1459
+ # -- src/services/.gitkeep --------------------------------------------
1460
+ _create_gitkeep(root / "src" / "services")
1461
+ files.append(str(root / "src" / "services" / ".gitkeep"))
1462
+
1463
+ # -- tests/health.test.ts ---------------------------------------------
1464
+ health_test_ts = f"""{CUI_HEADER_C_STYLE}
1465
+
1466
+ // CUI // SP-CTI
1467
+
1468
+ import request from 'supertest';
1469
+ import app from '../src/index';
1470
+
1471
+ describe('Health Endpoint', () => {{
1472
+ it('should return 200 and UP status', async () => {{
1473
+ // Note: In a real setup, supertest would be a devDependency.
1474
+ // This test serves as a template for the TDD workflow.
1475
+ expect(true).toBe(true);
1476
+ }});
1477
+
1478
+ it('should include CUI classification', () => {{
1479
+ // Placeholder — implement after dependencies are installed
1480
+ const classification = 'CUI // SP-CTI';
1481
+ expect(classification).toContain('CUI');
1482
+ }});
1483
+ }});
1484
+ """
1485
+ p = root / "tests" / "health.test.ts"
1486
+ _write_file(p, health_test_ts)
1487
+ files.append(str(p))
1488
+
1489
+ # -- jest.config.js ---------------------------------------------------
1490
+ jest_config = f"""{CUI_HEADER_C_STYLE}
1491
+
1492
+ /** @type {{import('ts-jest').JestConfigWithTsJest}} */
1493
+ module.exports = {{
1494
+ preset: 'ts-jest',
1495
+ testEnvironment: 'node',
1496
+ roots: ['<rootDir>/tests'],
1497
+ testMatch: ['**/*.test.ts'],
1498
+ collectCoverageFrom: ['src/**/*.ts'],
1499
+ coverageDirectory: 'coverage',
1500
+ coverageReporters: ['text', 'lcov', 'cobertura'],
1501
+ }};
1502
+ """
1503
+ p = root / "jest.config.js"
1504
+ _write_file(p, jest_config)
1505
+ files.append(str(p))
1506
+
1507
+ # -- features/.gitkeep ------------------------------------------------
1508
+ _create_gitkeep(root / "features")
1509
+ files.append(str(root / "features" / ".gitkeep"))
1510
+
1511
+ # -- Dockerfile (STIG-hardened, multi-stage) --------------------------
1512
+ dockerfile = f"""{CUI_HEADER_HASH}
1513
+ # STIG-hardened multi-stage Dockerfile for Node.js + TypeScript
1514
+ # CUI // SP-CTI
1515
+
1516
+ # ---- Build Stage ----
1517
+ FROM node:20-alpine AS build
1518
+
1519
+ WORKDIR /app
1520
+ COPY package.json package-lock.json* ./
1521
+ RUN npm ci --ignore-scripts
1522
+
1523
+ COPY tsconfig.json .
1524
+ COPY src/ ./src/
1525
+ RUN npx tsc
1526
+
1527
+ # Prune dev dependencies
1528
+ RUN npm prune --production
1529
+
1530
+ # ---- Runtime Stage ----
1531
+ FROM node:20-alpine AS runtime
1532
+
1533
+ # STIG: Remove SUID/SGID binaries
1534
+ RUN find / -perm /6000 -type f -exec chmod a-s {{}} + 2>/dev/null || true
1535
+
1536
+ # STIG: Create non-root user
1537
+ RUN addgroup -g 1000 appgroup && adduser -u 1000 -G appgroup -D appuser
1538
+
1539
+ WORKDIR /app
1540
+ COPY --from=build /app/dist ./dist/
1541
+ COPY --from=build /app/node_modules ./node_modules/
1542
+ COPY --from=build /app/package.json ./
1543
+
1544
+ # STIG: Set ownership
1545
+ RUN chown -R appuser:appgroup /app
1546
+
1547
+ # STIG: Drop ALL capabilities, run as non-root
1548
+ USER appuser:appgroup
1549
+
1550
+ EXPOSE 8080
1551
+ ENV NODE_ENV=production
1552
+ CMD ["node", "dist/index.js"]
1553
+
1554
+ # Read-only root filesystem — enforce via container runtime:
1555
+ # docker run --read-only --tmpfs /tmp:rw,noexec,nosuid ...
1556
+ """
1557
+ p = root / "Dockerfile"
1558
+ _write_file(p, dockerfile)
1559
+ files.append(str(p))
1560
+
1561
+ # -- .gitignore -------------------------------------------------------
1562
+ gitignore = """\
1563
+ # Node.js / TypeScript
1564
+ node_modules/
1565
+ dist/
1566
+ *.js.map
1567
+ *.d.ts
1568
+ !jest.config.js
1569
+
1570
+ # Logs
1571
+ npm-debug.log*
1572
+ yarn-debug.log*
1573
+ yarn-error.log*
1574
+
1575
+ # IDE
1576
+ .vscode/
1577
+ .idea/
1578
+ *.swp
1579
+ *.swo
1580
+
1581
+ # OS
1582
+ .DS_Store
1583
+ Thumbs.db
1584
+
1585
+ # Environment
1586
+ .env
1587
+ .env.local
1588
+ .env.*.local
1589
+
1590
+ # Coverage
1591
+ coverage/
1592
+ htmlcov/
1593
+
1594
+ # Tmp
1595
+ .tmp/
1596
+ tmp/
1597
+ """
1598
+ p = root / ".gitignore"
1599
+ _write_file(p, gitignore)
1600
+ files.append(str(p))
1601
+
1602
+ # -- README.md --------------------------------------------------------
1603
+ readme = _readme_content(name, "TypeScript + Express backend")
1604
+ p = root / "README.md"
1605
+ _write_file(p, readme)
1606
+ files.append(str(p))
1607
+
1608
+ # -- Compliance dirs --------------------------------------------------
1609
+ comp_readme = _compliance_readme()
1610
+ p = root / "compliance" / "README.md"
1611
+ _write_file(p, comp_readme)
1612
+ files.append(str(p))
1613
+ _create_compliance_dirs(root, files)
1614
+
1615
+ print(f"Scaffolded TypeScript backend: {root}")
1616
+ return files
1617
+
1618
+
1619
+ # ---------------------------------------------------------------------------
1620
+ # Phase 19: Agentic sidecar for non-Python languages
1621
+ # ---------------------------------------------------------------------------
1622
+
1623
+
1624
+ def generate_agentic_sidecar(project_root: Path, app_name: str, language: str) -> List[str]:
1625
+ """Generate Python agentic sidecar for non-Python language projects.
1626
+
1627
+ Non-Python child apps get a Python sidecar in `sidecar/agentic/` that
1628
+ provides GOTCHA framework, agents, and memory system alongside the main
1629
+ language project. Connected via docker-compose.yaml.
1630
+
1631
+ Args:
1632
+ project_root: Path to the project root directory.
1633
+ app_name: Application name.
1634
+ language: Primary language of the project (java, go, rust, csharp, typescript).
1635
+
1636
+ Returns:
1637
+ List of created file paths.
1638
+ """
1639
+ files: List[str] = []
1640
+ sidecar_dir = project_root / "sidecar" / "agentic"
1641
+ sidecar_dir.mkdir(parents=True, exist_ok=True)
1642
+
1643
+ # sidecar/agentic/requirements.txt
1644
+ reqs = [
1645
+ "pyyaml>=6.0", "jinja2>=3.1", "flask>=3.0",
1646
+ "requests>=2.31", "boto3>=1.34",
1647
+ ]
1648
+ req_path = sidecar_dir / "requirements.txt"
1649
+ _write_file(req_path, "\n".join(reqs) + "\n")
1650
+ files.append(str(req_path))
1651
+
1652
+ # sidecar/agentic/Dockerfile
1653
+ dockerfile = f"""# Agentic sidecar for {app_name} ({language})
1654
+ FROM python:3.11-slim
1655
+
1656
+ RUN groupadd -r appuser && useradd -r -g appuser -d /app appuser
1657
+ WORKDIR /app
1658
+
1659
+ COPY requirements.txt .
1660
+ RUN pip install --no-cache-dir -r requirements.txt
1661
+
1662
+ COPY . .
1663
+
1664
+ USER appuser
1665
+ EXPOSE 9443
1666
+
1667
+ CMD ["python", "orchestrator.py"]
1668
+ """
1669
+ df_path = sidecar_dir / "Dockerfile"
1670
+ _write_file(df_path, dockerfile)
1671
+ files.append(str(df_path))
1672
+
1673
+ # sidecar/agentic/orchestrator.py — minimal orchestrator
1674
+ orchestrator = f"""#!/usr/bin/env python3
1675
+ # CUI // SP-CTI
1676
+ \"\"\"Agentic sidecar orchestrator for {app_name} ({language}).
1677
+
1678
+ This sidecar provides GOTCHA framework, ATLAS workflow, agent communication,
1679
+ and memory system alongside the main {language} application.
1680
+ \"\"\"
1681
+
1682
+ import json
1683
+ import logging
1684
+ import sys
1685
+ from pathlib import Path
1686
+
1687
+ logger = logging.getLogger("{app_name}.sidecar")
1688
+
1689
+ SIDECAR_ROOT = Path(__file__).resolve().parent
1690
+ # The main project tools are in the parent's tools/ directory
1691
+ PROJECT_ROOT = SIDECAR_ROOT.parent.parent
1692
+
1693
+
1694
+ def main():
1695
+ logging.basicConfig(level=logging.INFO,
1696
+ format="%(asctime)s [%(name)s] %(levelname)s: %(message)s")
1697
+ logger.info("Agentic sidecar starting for {app_name} ({language})")
1698
+ logger.info("Project root: %s", PROJECT_ROOT)
1699
+ logger.info("Sidecar root: %s", SIDECAR_ROOT)
1700
+
1701
+ # The sidecar serves as the Python-based agentic layer
1702
+ # It delegates to tools/ for actual operations
1703
+ logger.info("Sidecar ready — agents and memory system available via tools/")
1704
+
1705
+
1706
+ if __name__ == "__main__":
1707
+ main()
1708
+ """
1709
+ orch_path = sidecar_dir / "orchestrator.py"
1710
+ _write_file(orch_path, orchestrator)
1711
+ files.append(str(orch_path))
1712
+
1713
+ # docker-compose.yaml at project root (adds sidecar service)
1714
+ compose = f"""# Docker Compose for {app_name} with agentic sidecar
1715
+ version: '3.8'
1716
+
1717
+ services:
1718
+ {app_name}:
1719
+ build:
1720
+ context: .
1721
+ dockerfile: Dockerfile
1722
+ ports:
1723
+ - "8080:8080"
1724
+ environment:
1725
+ - APP_NAME={app_name}
1726
+ networks:
1727
+ - app-network
1728
+
1729
+ agentic-sidecar:
1730
+ build:
1731
+ context: ./sidecar/agentic
1732
+ dockerfile: Dockerfile
1733
+ ports:
1734
+ - "9443:9443"
1735
+ volumes:
1736
+ - ./tools:/app/tools:ro
1737
+ - ./goals:/app/goals:ro
1738
+ - ./memory:/app/memory
1739
+ - ./data:/app/data
1740
+ environment:
1741
+ - APP_NAME={app_name}
1742
+ - ICDEV_PARENT_CALLBACK_URL=${{ICDEV_PARENT_CALLBACK_URL:-}}
1743
+ depends_on:
1744
+ - {app_name}
1745
+ networks:
1746
+ - app-network
1747
+
1748
+ networks:
1749
+ app-network:
1750
+ driver: bridge
1751
+ """
1752
+ compose_path = project_root / "docker-compose.yaml"
1753
+ _write_file(compose_path, compose)
1754
+ files.append(str(compose_path))
1755
+
1756
+ print(f" Generated agentic sidecar for {language} project ({len(files)} files)")
1757
+ return files
1758
+
1759
+
1760
+ # ---------------------------------------------------------------------------
1761
+ # Module-level exports for importlib loading
1762
+ # ---------------------------------------------------------------------------
1763
+
1764
+ __all__ = [
1765
+ "scaffold_java_backend",
1766
+ "scaffold_go_backend",
1767
+ "scaffold_rust_backend",
1768
+ "scaffold_csharp_backend",
1769
+ "scaffold_typescript_backend",
1770
+ "generate_agentic_sidecar",
1771
+ ]