thothctl 0.15.4__tar.gz → 0.16.2__tar.gz

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 (504) hide show
  1. {thothctl-0.15.4 → thothctl-0.16.2}/PKG-INFO +3 -2
  2. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/scan/iac.md +0 -2
  3. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/scan/scan_iac.md +157 -31
  4. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/scan/scan_overview.md +32 -8
  5. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/framework_architecture.md +2 -3
  6. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/software_architecture.md +3 -3
  7. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/README.md +2 -2
  8. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/ai_dlc.md +4 -4
  9. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/devsecops_quickstart.md +0 -1
  10. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/devsecops_sdlc.md +3 -5
  11. {thothctl-0.15.4 → thothctl-0.16.2}/docs/iac_devsecops_use_case.md +6 -6
  12. {thothctl-0.15.4 → thothctl-0.16.2}/docs/index.md +1 -2
  13. {thothctl-0.15.4 → thothctl-0.16.2}/pyproject.toml +2 -1
  14. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/scan/commands/iac.py +168 -118
  15. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/get_project_data.py +13 -0
  16. thothctl-0.16.2/src/thothctl/services/scan/models.py +84 -0
  17. thothctl-0.16.2/src/thothctl/services/scan/report_parser.py +180 -0
  18. thothctl-0.16.2/src/thothctl/services/scan/sarif_output.py +120 -0
  19. thothctl-0.16.2/src/thothctl/services/scan/scan_history.py +205 -0
  20. thothctl-0.16.2/src/thothctl/services/scan/scan_service.py +321 -0
  21. thothctl-0.16.2/src/thothctl/services/scan/scanners/kics.py +260 -0
  22. thothctl-0.16.2/src/thothctl/services/scan/scanners/trivy.py +346 -0
  23. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/create_html_reports.py +0 -6
  24. thothctl-0.16.2/src/thothctl/utils/common/render_scan_report.py +213 -0
  25. thothctl-0.16.2/src/thothctl/utils/common/templates/unified_scan_report.html +246 -0
  26. thothctl-0.16.2/src/thothctl/version.py +2 -0
  27. thothctl-0.15.4/src/thothctl/services/scan/scan_service.py +0 -746
  28. thothctl-0.15.4/src/thothctl/services/scan/scanners/kics.py +0 -146
  29. thothctl-0.15.4/src/thothctl/services/scan/scanners/trivy.py +0 -133
  30. thothctl-0.15.4/src/thothctl/version.py +0 -2
  31. {thothctl-0.15.4 → thothctl-0.16.2}/.devcontainer/Dockerfile +0 -0
  32. {thothctl-0.15.4 → thothctl-0.16.2}/.devcontainer/README.md +0 -0
  33. {thothctl-0.15.4 → thothctl-0.16.2}/.devcontainer/devcontainer.json +0 -0
  34. {thothctl-0.15.4 → thothctl-0.16.2}/.github/workflows/docs.yml +0 -0
  35. {thothctl-0.15.4 → thothctl-0.16.2}/.github/workflows/python-publish.yml +0 -0
  36. {thothctl-0.15.4 → thothctl-0.16.2}/.gitignore +0 -0
  37. {thothctl-0.15.4 → thothctl-0.16.2}/.pre-commit-config.yaml +0 -0
  38. {thothctl-0.15.4 → thothctl-0.16.2}/.readthedocs.yaml +0 -0
  39. {thothctl-0.15.4 → thothctl-0.16.2}/AWS_PRICING_API_FINAL_REPORT.md +0 -0
  40. {thothctl-0.15.4 → thothctl-0.16.2}/AWS_PRICING_API_IMPLEMENTATION_PLAN.md +0 -0
  41. {thothctl-0.15.4 → thothctl-0.16.2}/AWS_PRICING_REFACTOR_REPORT.md +0 -0
  42. {thothctl-0.15.4 → thothctl-0.16.2}/Dockerfile +0 -0
  43. {thothctl-0.15.4 → thothctl-0.16.2}/LICENSE +0 -0
  44. {thothctl-0.15.4 → thothctl-0.16.2}/README.md +0 -0
  45. {thothctl-0.15.4 → thothctl-0.16.2}/TECHNICAL_DEBT_METRICS.md +0 -0
  46. {thothctl-0.15.4 → thothctl-0.16.2}/__init__.py +0 -0
  47. {thothctl-0.15.4 → thothctl-0.16.2}/docs/catalog/catalog-info.yaml +0 -0
  48. {thothctl-0.15.4 → thothctl-0.16.2}/docs/dashboard/README.md +0 -0
  49. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/ai-review/README.md +0 -0
  50. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
  51. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/ai-review/agentcore.md +0 -0
  52. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/blast-radius.md +0 -0
  53. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/check_environment.md +0 -0
  54. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/check_iac.md +0 -0
  55. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/check_overview.md +0 -0
  56. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/check_project_iac.md +0 -0
  57. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/check_space.md +0 -0
  58. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
  59. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/cost-analysis.md +0 -0
  60. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/customizing_rules.md +0 -0
  61. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/deps-advanced.md +0 -0
  62. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/deps.md +0 -0
  63. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/drift-detection.md +0 -0
  64. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/check/plan.md +0 -0
  65. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/document/customizing_docs.md +0 -0
  66. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/document/document_iac.md +0 -0
  67. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/document/document_overview.md +0 -0
  68. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/document/iac.md +0 -0
  69. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/document/use_cases.md +0 -0
  70. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/generate/generate_components.md +0 -0
  71. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/generate/generate_stacks.md +0 -0
  72. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/init/init.md +0 -0
  73. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/init/init_space.md +0 -0
  74. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
  75. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
  76. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
  77. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/iac.md +0 -0
  78. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/inventory_iac.md +0 -0
  79. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/inventory/inventory_overview.md +0 -0
  80. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/list/list_overview.md +0 -0
  81. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/list/list_projects.md +0 -0
  82. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/list/list_spaces.md +0 -0
  83. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/mcp/mcp.md +0 -0
  84. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/iac.md +0 -0
  85. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/project_cleanup.md +0 -0
  86. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/project_convert.md +0 -0
  87. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/project_overview.md +0 -0
  88. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/project_upgrade.md +0 -0
  89. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/project/use_cases.md +0 -0
  90. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/remove/remove_overview.md +0 -0
  91. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/remove/remove_project.md +0 -0
  92. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/remove/remove_space.md +0 -0
  93. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/scan/use_cases.md +0 -0
  94. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
  95. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/concepts.md +0 -0
  96. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/cross_platform_support.md +0 -0
  97. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/infrasctructure_composition.md +0 -0
  98. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/policy_as_code.md +0 -0
  99. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/roadmap_fdi.md +0 -0
  100. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/space_configuration.md +0 -0
  101. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/check_command.md +0 -0
  102. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/inventory_command.md +0 -0
  103. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
  104. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/space_management.md +0 -0
  105. {thothctl-0.15.4 → thothctl-0.16.2}/docs/framework/use_cases/tasks/create_template.md +0 -0
  106. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/automate_tasks_command.png +0 -0
  107. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/commnad_init.png +0 -0
  108. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/create_component.gif +0 -0
  109. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/create_inventory.gif +0 -0
  110. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/doc_command.png +0 -0
  111. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/document_project_code.gif +0 -0
  112. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/framework/thothforge-framework.svg +0 -0
  113. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/framework/thothfr.png +0 -0
  114. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/iacpeerbot_summary.png +0 -0
  115. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/icon-light.png +0 -0
  116. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/icon.png +0 -0
  117. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/init_project.gif +0 -0
  118. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/inventory_command.png +0 -0
  119. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/notification_img.png +0 -0
  120. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/report_dependencies.png +0 -0
  121. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/report_dependencies_summary.png +0 -0
  122. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/restore_inventory_version.gif +0 -0
  123. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/reuse_project_pattern.gif +0 -0
  124. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/scan_code.gif +0 -0
  125. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/scan_command.png +0 -0
  126. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/sync_wk_command.png +0 -0
  127. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/transform_command.png +0 -0
  128. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/update_inventory_version.gif +0 -0
  129. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/validate_command.png +0 -0
  130. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/validate_environment.gif +0 -0
  131. {thothctl-0.15.4 → thothctl-0.16.2}/docs/img/validate_project.gif +0 -0
  132. {thothctl-0.15.4 → thothctl-0.16.2}/docs/includes/abbreviations.md +0 -0
  133. {thothctl-0.15.4 → thothctl-0.16.2}/docs/installation/linux_installation.md +0 -0
  134. {thothctl-0.15.4 → thothctl-0.16.2}/docs/installation/windows_installation.md +0 -0
  135. {thothctl-0.15.4 → thothctl-0.16.2}/docs/javascripts/tablesort.js +0 -0
  136. {thothctl-0.15.4 → thothctl-0.16.2}/docs/mcp.md +0 -0
  137. {thothctl-0.15.4 → thothctl-0.16.2}/docs/navigation.md +0 -0
  138. {thothctl-0.15.4 → thothctl-0.16.2}/docs/quick_start.md +0 -0
  139. {thothctl-0.15.4 → thothctl-0.16.2}/docs/requirements.txt +0 -0
  140. {thothctl-0.15.4 → thothctl-0.16.2}/docs/stylesheets/extra-enhanced.css +0 -0
  141. {thothctl-0.15.4 → thothctl-0.16.2}/docs/stylesheets/extra.css +0 -0
  142. {thothctl-0.15.4 → thothctl-0.16.2}/docs/telemetry.md +0 -0
  143. {thothctl-0.15.4 → thothctl-0.16.2}/docs/template_engine/cli_commands_audit.md +0 -0
  144. {thothctl-0.15.4 → thothctl-0.16.2}/docs/template_engine/for_developers.md +0 -0
  145. {thothctl-0.15.4 → thothctl-0.16.2}/docs/template_engine/for_platform_engineers.md +0 -0
  146. {thothctl-0.15.4 → thothctl-0.16.2}/docs/template_engine/github_templates.md +0 -0
  147. {thothctl-0.15.4 → thothctl-0.16.2}/docs/template_engine/template_engine.md +0 -0
  148. {thothctl-0.15.4 → thothctl-0.16.2}/docs/troubleshooting/linux_troubleshooting.md +0 -0
  149. {thothctl-0.15.4 → thothctl-0.16.2}/docs/troubleshooting/macos_troubleshooting.md +0 -0
  150. {thothctl-0.15.4 → thothctl-0.16.2}/docs/troubleshooting/troubleshooting.md +0 -0
  151. {thothctl-0.15.4 → thothctl-0.16.2}/docs/troubleshooting/windows_troubleshooting.md +0 -0
  152. {thothctl-0.15.4 → thothctl-0.16.2}/mkdocs.yaml +0 -0
  153. {thothctl-0.15.4 → thothctl-0.16.2}/scripts/run_mcp_server.sh +0 -0
  154. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/__init__.py +0 -0
  155. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/application/__init__.py +0 -0
  156. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/autocomplete.py +0 -0
  157. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/cli.py +0 -0
  158. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/__init__.py +0 -0
  159. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/__init__.py +0 -0
  160. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/cli.py +0 -0
  161. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
  162. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
  163. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
  164. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
  165. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
  166. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
  167. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/history.py +0 -0
  168. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
  169. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
  170. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/override.py +0 -0
  171. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/report.py +0 -0
  172. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
  173. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/__init__.py +0 -0
  174. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/cli.py +0 -0
  175. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/__init__.py +0 -0
  176. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/environment.py +0 -0
  177. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/iac.py +0 -0
  178. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
  179. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/project/iac.py +0 -0
  180. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/check/commands/project.py +0 -0
  181. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/dashboard/__init__.py +0 -0
  182. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/dashboard/cli.py +0 -0
  183. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
  184. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
  185. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/document/__init__.py +0 -0
  186. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/document/cli.py +0 -0
  187. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/document/commands/__init__.py +0 -0
  188. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/document/commands/iac.py +0 -0
  189. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/generate/__init__.py +0 -0
  190. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/generate/cli.py +0 -0
  191. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/generate/commands/__init__.py +0 -0
  192. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/generate/commands/component.py +0 -0
  193. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/generate/commands/stacks.py +0 -0
  194. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/__init__.py +0 -0
  195. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/cli.py +0 -0
  196. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/commands/__init__.py +0 -0
  197. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/commands/env.py +0 -0
  198. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/commands/project.py +0 -0
  199. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/commands/space.py +0 -0
  200. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/init/commands/template.py +0 -0
  201. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/inventory/__init__.py +0 -0
  202. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/inventory/cli.py +0 -0
  203. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
  204. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/inventory/commands/check.py +0 -0
  205. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/inventory/commands/iac.py +0 -0
  206. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/list/__init__.py +0 -0
  207. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/list/cli.py +0 -0
  208. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/list/commands/__init__.py +0 -0
  209. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/list/commands/projects.py +0 -0
  210. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/list/commands/spaces.py +0 -0
  211. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/__init__.py +0 -0
  212. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/cli.py +0 -0
  213. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
  214. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/commands/register.py +0 -0
  215. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/commands/server.py +0 -0
  216. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/commands/status.py +0 -0
  217. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/mcp/commands/stop.py +0 -0
  218. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/__init__.py +0 -0
  219. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/cli.py +0 -0
  220. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/commands/__init__.py +0 -0
  221. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
  222. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/commands/cleanup.py +0 -0
  223. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/commands/convert.py +0 -0
  224. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/project/commands/upgrade.py +0 -0
  225. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/remove/__init__.py +0 -0
  226. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/remove/cli.py +0 -0
  227. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/remove/project.py +0 -0
  228. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/remove/space.py +0 -0
  229. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/scan/__init__.py +0 -0
  230. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/scan/cli.py +0 -0
  231. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/scan/commands/__init__.py +0 -0
  232. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/space/__init__.py +0 -0
  233. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/space/cli.py +0 -0
  234. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/space/commands/__init__.py +0 -0
  235. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/space/commands/activate.py +0 -0
  236. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/space/commands/update.py +0 -0
  237. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/commands/upgrade/cli.py +0 -0
  238. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/.thothcf.setup.toml +0 -0
  239. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/.thothcf_home.toml +0 -0
  240. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/.thothcf_module.toml +0 -0
  241. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/.thothcf_project.toml +0 -0
  242. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
  243. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/__init__.py +0 -0
  244. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/common.py +0 -0
  245. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
  246. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/__init__.py +0 -0
  247. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/constants.py +0 -0
  248. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/default_values.py +0 -0
  249. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/defaults.py +0 -0
  250. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/models.py +0 -0
  251. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/settings.py +0 -0
  252. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/template_config.py +0 -0
  253. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/template_configs.py +0 -0
  254. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/templates.py +0 -0
  255. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/config/validation.py +0 -0
  256. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/__init__.py +0 -0
  257. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/cli_ui.py +0 -0
  258. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/commands.py +0 -0
  259. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/config.py +0 -0
  260. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/__init__.py +0 -0
  261. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
  262. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
  263. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
  264. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/github/get_github.py +0 -0
  265. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
  266. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
  267. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
  268. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
  269. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/pattern_names.py +0 -0
  270. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
  271. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
  272. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/logger.py +0 -0
  273. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/telemetry.py +0 -0
  274. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/core/version_tools.py +0 -0
  275. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/domain/__init__.py +0 -0
  276. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/domain/interfaces/__init__.py +0 -0
  277. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/domain/models/__init__.py +0 -0
  278. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/mcp/README.md +0 -0
  279. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/mcp/__init__.py +0 -0
  280. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/mcp/server.py +0 -0
  281. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/__init__.py +0 -0
  282. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/__init__.py +0 -0
  283. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
  284. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/ai_agent.py +0 -0
  285. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
  286. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
  287. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
  288. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
  289. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
  290. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
  291. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/config/__init__.py +0 -0
  292. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
  293. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
  294. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/decision_engine.py +0 -0
  295. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/main.py +0 -0
  296. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/memory.py +0 -0
  297. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/orchestrator.py +0 -0
  298. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
  299. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
  300. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
  301. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
  302. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
  303. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
  304. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
  305. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
  306. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
  307. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/tracing.py +0 -0
  308. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
  309. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
  310. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
  311. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
  312. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
  313. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
  314. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/__init__.py +0 -0
  315. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/environment/__init__.py +0 -0
  316. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/environment/check_environment.py +0 -0
  317. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/__init__.py +0 -0
  318. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
  319. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/check_origin_version.py +0 -0
  320. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/check_project_structure.py +0 -0
  321. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/__init__.py +0 -0
  322. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
  323. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
  324. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
  325. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
  326. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
  327. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
  328. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
  329. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
  330. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
  331. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
  332. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
  333. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
  334. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
  335. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
  336. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
  337. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
  338. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
  339. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
  340. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
  341. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
  342. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
  343. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
  344. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
  345. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
  346. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
  347. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
  348. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
  349. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/__init__.py +0 -0
  350. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
  351. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
  352. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
  353. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
  354. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
  355. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/drift/models.py +0 -0
  356. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/risk_assessment.py +0 -0
  357. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
  358. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/dashboard/__init__.py +0 -0
  359. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
  360. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/dashboard/data_loader.py +0 -0
  361. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/__init__.py +0 -0
  362. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/create_documentation.py +0 -0
  363. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/files_content.py +0 -0
  364. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/files_scan.py +0 -0
  365. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/iac_documentation.py +0 -0
  366. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
  367. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/document/iac_grunt_info.py +0 -0
  368. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/__init__.py +0 -0
  369. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
  370. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
  371. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
  372. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
  373. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
  374. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/__init__.py +0 -0
  375. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/config.yaml +0 -0
  376. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/create_code.py +0 -0
  377. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/create_component.py +0 -0
  378. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
  379. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
  380. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/create_template.py +0 -0
  381. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/files_content.py +0 -0
  382. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
  383. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
  384. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/__init__.py +0 -0
  385. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/environment/__init__.py +0 -0
  386. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/environment/install_tools.py +0 -0
  387. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/project/__init__.py +0 -0
  388. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/project/project.py +0 -0
  389. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/space/__init__.py +0 -0
  390. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/space/example_space.toml +0 -0
  391. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/space/local_registry.py +0 -0
  392. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/init/space/space.py +0 -0
  393. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/__init__.py +0 -0
  394. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/changelog_parser.py +0 -0
  395. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/inventory_service.py +0 -0
  396. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/models.py +0 -0
  397. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
  398. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/report_service.py +0 -0
  399. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
  400. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
  401. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/update_versions.py +0 -0
  402. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/inventory/version_service.py +0 -0
  403. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/README.md +0 -0
  404. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/__init__.py +0 -0
  405. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/amazon_q_server.py +0 -0
  406. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/example.py +0 -0
  407. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/service.py +0 -0
  408. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/mcp/simple_http_server.py +0 -0
  409. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/__init__.py +0 -0
  410. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
  411. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
  412. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/cleanup/__init__.py +0 -0
  413. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
  414. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
  415. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/__init__.py +0 -0
  416. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/conversion_service.py +0 -0
  417. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/post_init.py +0 -0
  418. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/project_converter.py +0 -0
  419. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/project_defaults.py +0 -0
  420. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
  421. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
  422. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
  423. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
  424. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
  425. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/upgrade/__init__.py +0 -0
  426. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
  427. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/__init__.py +0 -0
  428. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/compliance_review.py +0 -0
  429. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/import_reports.py +0 -0
  430. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/__init__.py +0 -0
  431. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/checkov.py +0 -0
  432. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/opa.py +0 -0
  433. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
  434. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/scanners.py +0 -0
  435. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
  436. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
  437. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/templates/reports/inventory_report.html +0 -0
  438. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/templates/reports/inventory_report.js +0 -0
  439. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/templates/unified_report_styles.css +0 -0
  440. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/__init__.py +0 -0
  441. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/banner.py +0 -0
  442. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/__init__.py +0 -0
  443. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
  444. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/delete_directory.py +0 -0
  445. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/fix_report_styling.py +0 -0
  446. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/report_html_utils.py +0 -0
  447. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/dashboard.html +0 -0
  448. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/index_report.html +0 -0
  449. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/individual_report.html +0 -0
  450. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/simple_report.html +0 -0
  451. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
  452. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
  453. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
  454. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/crypto.py +0 -0
  455. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
  456. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
  457. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/modules_ops/__init__.py +0 -0
  458. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
  459. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
  460. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/platform_utils.py +0 -0
  461. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/__init__.py +0 -0
  462. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
  463. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
  464. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
  465. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
  466. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
  467. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
  468. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
  469. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
  470. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/template_loader.py +0 -0
  471. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/utils/thoth_colors.py +0 -0
  472. {thothctl-0.15.4 → thothctl-0.16.2}/src/thothctl/wellcome_banner.py +0 -0
  473. {thothctl-0.15.4 → thothctl-0.16.2}/tests/conftest.py +0 -0
  474. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_agentcore_entrypoint.py +0 -0
  475. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_aws_pricing_client.py +0 -0
  476. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_azure_devops_pr_comments.py +0 -0
  477. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_bedrock_pricing.py +0 -0
  478. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_cdk_language_selection.py +0 -0
  479. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_context_steering.py +0 -0
  480. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_cost_analyzer.py +0 -0
  481. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_cost_models.py +0 -0
  482. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_cost_pr_comments.py +0 -0
  483. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_dashboard_loading_fix.py +0 -0
  484. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_dashboard_service.py +0 -0
  485. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_drift.py +0 -0
  486. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_drift_detection.py +0 -0
  487. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_ec2_pricing.py +0 -0
  488. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_github_pr_comments.py +0 -0
  489. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_iac_cost_integration.py +0 -0
  490. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_inventory_pr_comments.py +0 -0
  491. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_kics_scanner.py +0 -0
  492. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_mermaid_edge_labels.py +0 -0
  493. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_new_cost_providers.py +0 -0
  494. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_parallel_scan.py +0 -0
  495. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_platform_utils.py +0 -0
  496. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_pr_comment_publisher.py +0 -0
  497. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_provider_source_url_fix.py +0 -0
  498. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_provider_versions.py +0 -0
  499. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_scan_pr_comments.py +0 -0
  500. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_space_command.py +0 -0
  501. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_space_management.py +0 -0
  502. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_template_url_fix.py +0 -0
  503. {thothctl-0.15.4 → thothctl-0.16.2}/tests/test_terragrunt_parser.py +0 -0
  504. {thothctl-0.15.4 → thothctl-0.16.2}/tox.ini +0 -0
@@ -1,8 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thothctl
3
- Version: 0.15.4
3
+ Version: 0.16.2
4
4
  Summary: A CLI for Developer Control Plane. Accelerate your cloud IaC deployments.
5
- Project-URL: Homepage, https://github.com/thothforge/thothctl
5
+ Project-URL: SourceCode, https://github.com/thothforge/thothctl
6
+ Project-URL: HomePage, https://github.com/thothforge/thothctl
6
7
  Author-email: Alejandro Velez <velez94@pm.me>
7
8
  License-Expression: Apache-2.0
8
9
  License-File: LICENSE
@@ -19,7 +19,6 @@ thothctl scan iac -t checkov -t opa --enforcement hard
19
19
 
20
20
  ## Features
21
21
 
22
- - **Multi-Scanner Support**: Checkov, Trivy, TFSec, KICS, OPA/Conftest integration
23
22
  - **Custom Policy Evaluation**: Write Rego policies for organization-specific rules via OPA
24
23
  - **Enforcement Modes**: Soft (report only) or hard (fail pipeline) for all tools
25
24
  - **Security Policy Checking**: CIS benchmarks and best practices
@@ -33,7 +32,6 @@ thothctl scan iac -t checkov -t opa --enforcement hard
33
32
  |---------|-------------|
34
33
  | **Checkov** | Policy-as-code scanning with built-in rules |
35
34
  | **Trivy** | Vulnerability and misconfiguration detection |
36
- | **TFSec** | Terraform security scanner |
37
35
  | **KICS** | Static analysis via Docker |
38
36
  | **OPA/Conftest** | Custom Rego policy evaluation (static HCL + plan-based) |
39
37
 
@@ -12,17 +12,19 @@ thothctl scan iac [OPTIONS]
12
12
 
13
13
  | Option | Description |
14
14
  |--------|-------------|
15
- | `-t, --tools [checkov\|trivy\|tfsec\|kics\|terraform-compliance\|opa]` | Specify which security scanning tools to use |
15
+ | `-t, --tools [checkov\|trivy\\|kics\|terraform-compliance\|opa]` | Specify which security scanning tools to use |
16
16
  | `--reports-dir PATH` | Directory to store scan reports (default: `Reports`) |
17
17
  | `-p, --project-name TEXT` | Name of the project being scanned |
18
18
  | `-o, --options TEXT` | Additional options for scanning tools (key=value,key2=value2) |
19
19
  | `--tftool [terraform\|tofu]` | Specify which Terraform tool to use (default: tofu) |
20
- | `--verbose` | Enable verbose output with detailed scan information |
21
- | `--html-reports-format [simple\|xunit]` | Generate HTML reports in simple or xunit format |
20
+ | `--output [text\|json\|sarif]` | Output format: text (default), json, or sarif |
22
21
  | `--enforcement [soft\|hard]` | Enforcement mode: `soft` reports violations (exit 0), `hard` fails the pipeline (exit 1) |
23
22
  | `--post-to-pr` | Post scan summary as a PR comment (Azure DevOps or GitHub) |
24
23
  | `--vcs-provider [auto\|azure_repos\|github]` | VCS provider for PR comments (default: auto-detect) |
25
24
  | `--space TEXT` | Space name for credential resolution (Azure DevOps) |
25
+ | `--max-workers INT` | Max parallel Checkov scans (default: 2) |
26
+ | `--compact` | Use Checkov compact mode to reduce memory on CI agents |
27
+ | `--verbose` | Enable verbose output |
26
28
  | `--help` | Show help message and exit |
27
29
 
28
30
  ## Scanning Tools
@@ -45,15 +47,6 @@ thothctl scan iac -t checkov
45
47
  thothctl scan iac -t trivy
46
48
  ```
47
49
 
48
- ### TFSec
49
-
50
- [TFSec](https://github.com/aquasecurity/tfsec) is a security scanner for Terraform code that checks for potential security issues.
51
-
52
- ```bash
53
- # Scan with TFSec only
54
- thothctl scan iac -t tfsec
55
- ```
56
-
57
50
  ### KICS
58
51
 
59
52
  [KICS](https://kics.io/) (Keeping Infrastructure as Code Secure) is an open source solution for static code analysis of IaC. Requires Docker.
@@ -306,23 +299,154 @@ thothctl scan iac -t checkov -t trivy -t opa --enforcement hard --post-to-pr
306
299
 
307
300
  ## Report Output
308
301
 
309
- Every scan produces:
302
+ Every scan produces multiple output formats:
303
+
304
+ ### Always Generated
305
+
306
+ | Output | File | Description |
307
+ |--------|------|-------------|
308
+ | **Terminal table** | — | Rich table with per-tool pass/fail/warnings/errors/success rate |
309
+ | **Severity breakdown** | — | Terminal table showing CRITICAL/HIGH/MEDIUM/LOW counts |
310
+ | **Trend comparison** | — | Delta vs previous scan (stored in local SQLite at `~/.thothcf/scan_history.db`) |
311
+ | **Unified HTML report** | `Reports/scan_report.html` | Single-page professional report with summary, per-tool bars, severity badges, findings table, and trend |
312
+ | **Markdown summary** | `Reports/scan_summary.md` | Machine-readable summary with severity section |
313
+
314
+ ### Conditional Outputs
315
+
316
+ | Output | Flag | File | Description |
317
+ |--------|------|------|-------------|
318
+ | **JSON report** | `--output json` | `Reports/scan_report.json` | Structured data for CI/CD pipelines |
319
+ | **SARIF report** | `--output sarif` | `Reports/scan_results.sarif` | GitHub Code Scanning / IDE integration |
320
+ | **PR comment** | `--post-to-pr` | — | Posts summary to PR (GitHub/Azure DevOps) |
321
+
322
+ ### Output Formats
323
+
324
+ #### JSON (`--output json`)
325
+
326
+ Structured JSON for CI/CD machine consumption:
327
+
328
+ ```bash
329
+ thothctl scan iac -t checkov -t trivy --output json
330
+ ```
331
+
332
+ ```json
333
+ {
334
+ "timestamp": "2026-06-14T15:30:00",
335
+ "directory": "/path/to/project",
336
+ "total_findings": 5,
337
+ "severity_counts": {"CRITICAL": 1, "HIGH": 2, "MEDIUM": 2},
338
+ "tools": [
339
+ {
340
+ "tool": "checkov",
341
+ "status": "COMPLETE",
342
+ "passed": 40,
343
+ "failed": 3,
344
+ "findings": [{"id": "CKV_AWS_19", "severity": "CRITICAL", "title": "...", "file": "main.tf", "line": 12}]
345
+ }
346
+ ]
347
+ }
348
+ ```
349
+
350
+ #### SARIF (`--output sarif`)
310
351
 
311
- - **Rich terminal table** with per-tool breakdown (passed, failed, warnings, errors, skipped, success rate)
312
- - **`scan_summary.md`** saved to the reports directory (always generated)
313
- - **HTML reports** per tool in the reports directory
314
- - **PR comment** (when `--post-to-pr` is set)
352
+ [SARIF 2.1.0](https://sarifweb.azurewebsites.net/) format for integration with:
353
+ - GitHub Code Scanning / Advanced Security
354
+ - Azure DevOps
355
+ - VS Code SARIF Viewer extension
356
+ - JetBrains IDE plugins
315
357
 
316
- The markdown summary includes a Warnings column for tools that produce warnings (e.g., Conftest `warn` rules):
358
+ ```bash
359
+ # Generate SARIF report
360
+ thothctl scan iac -t checkov --output sarif
361
+
362
+ # Upload to GitHub Code Scanning
363
+ gh api repos/:owner/:repo/code-scanning/sarifs -f "sarif=@Reports/scan_results.sarif"
364
+ ```
365
+
366
+ #### Unified HTML Report
367
+
368
+ A single self-contained `scan_report.html` with:
369
+ - Summary cards (total/passed/failed/rate)
370
+ - Per-tool success rate bars
371
+ - Severity badge breakdown
372
+ - Sortable findings table with file/resource/rule details
373
+ - Trend comparison (if previous scan exists)
374
+ - Print-optimized styling
375
+
376
+ Generated automatically on every scan — no flag needed.
377
+
378
+ ### Trend / Historical Comparison
379
+
380
+ ThothCTL automatically stores scan results in a local SQLite database (`~/.thothcf/scan_history.db`) and shows improvement/regression vs the previous scan for the same directory:
317
381
 
318
382
  ```
319
- | Tool | Status | Total | Passed | Failed | Warnings | Errors | Skipped | Success Rate |
320
- |---------|----------|-------|--------|--------|----------|--------|---------|--------------|
321
- | checkov | COMPLETE | 55 | 50 | 3 | 0 | 0 | 2 | 90.9% |
322
- | opa | COMPLETE | 10 | 8 | 1 | 1 | 0 | 0 | 80.0% |
323
- | TOTAL | | 65 | 58 | 4 | 1 | 0 | 2 | 89.2% |
383
+ 📈 Trend (vs 2026-06-13)
384
+ ┌──────────┬──────────┬─────────┬─────────┐
385
+ Metric │ Previous Current Delta │
386
+ ├──────────┼──────────┼─────────┼─────────┤
387
+ Findings 8 5 ↓ -3 │
388
+ │ Passed │ 38 │ 44 │ ↑ +6 │
389
+ │ Failed │ 8 │ 5 │ ↓ -3 │
390
+ │ CRITICAL │ 2 │ 1 │ ↓ -1 │
391
+ │ HIGH │ 4 │ 3 │ ↓ -1 │
392
+ └──────────┴──────────┴─────────┴─────────┘
324
393
  ```
325
394
 
395
+ - **No configuration needed** — history is always saved automatically
396
+ - **Per-directory tracking** — each project gets its own history
397
+ - **Shown in HTML report** — trend is included in `scan_report.html`
398
+
399
+ ### CI/CD: Comparing Across Runs
400
+
401
+ For CI/CD pipelines (where local SQLite isn't persistent), use artifact-based comparison:
402
+
403
+ ```yaml
404
+ # GitHub Actions — compare vs previous scan
405
+ - uses: actions/download-artifact@v4
406
+ with:
407
+ name: scan-baseline
408
+ continue-on-error: true
409
+
410
+ - run: thothctl scan iac -t checkov -t trivy --output json --enforcement hard
411
+
412
+ - uses: actions/upload-artifact@v4
413
+ with:
414
+ name: scan-baseline
415
+ path: Reports/scan_report.json
416
+ ```
417
+
418
+ ### Report Directory Structure
419
+
420
+ ```
421
+ Reports/
422
+ ├── scan_report.html ← Unified multi-tool report (summary, severity, findings, trend)
423
+ ├── scan_summary.md ← Markdown summary
424
+ ├── scan_report.json ← JSON (--output json)
425
+ ├── scan_results.sarif ← SARIF (--output sarif)
426
+ ├── checkov/
427
+ │ └── security-scan/
428
+ │ ├── html_reports/
429
+ │ │ ├── index.html ← Per-stack browser with links to individual reports
430
+ │ │ ├── report_network_vpc.html
431
+ │ │ ├── report_data_rds.html
432
+ │ │ └── ...
433
+ │ ├── report_network_vpc/
434
+ │ │ ├── results_junitxml.xml ← Raw JUnit XML
435
+ │ │ └── results_json.json ← Raw Checkov JSON
436
+ │ ├── report_data_rds/
437
+ │ │ └── ...
438
+ │ └── checkov_log_report.txt
439
+ ├── trivy/ ← Raw Trivy output
440
+ │ └── results.json
441
+ └── opa/ ← Raw OPA/Conftest output
442
+ ├── conftest_results.json
443
+ └── results_junitxml.xml
444
+ ```
445
+
446
+ **Browsing reports:**
447
+ - Open `Reports/scan_report.html` for the unified summary with severity and trend
448
+ - Open `Reports/checkov/security-scan/html_reports/index.html` to browse individual stack results with detailed check-level findings
449
+
326
450
  ## Examples
327
451
 
328
452
  ### Basic Scan
@@ -336,14 +460,14 @@ thothctl scan iac
336
460
 
337
461
  ```bash
338
462
  # Comprehensive scan with multiple tools
339
- thothctl scan iac -t checkov -t trivy -t opa --html-reports-format simple --verbose
463
+ thothctl scan iac -t checkov -t trivy -t opa
340
464
  ```
341
465
 
342
- ### CI/CD with Hard Enforcement
466
+ ### CI/CD with Hard Enforcement and SARIF
343
467
 
344
468
  ```bash
345
- # Fail the pipeline if any violations are found
346
- thothctl scan iac -t checkov -t opa --enforcement hard --post-to-pr
469
+ # Fail pipeline on violations + produce SARIF for GitHub Security tab
470
+ thothctl scan iac -t checkov -t opa --enforcement hard --output sarif --post-to-pr
347
471
  ```
348
472
 
349
473
  ### Custom Report Directory
@@ -416,7 +540,9 @@ jobs:
416
540
 
417
541
  1. **Use `--enforcement hard` in CI/CD** — Gate deployments on security compliance to prevent insecure infrastructure from reaching production.
418
542
  2. **Use multiple scanning tools** — Different tools catch different types of issues. Combine Checkov (built-in rules) with OPA (custom policies) for best coverage.
419
- 3. **Write custom OPA policies** — Encode your organization's specific security requirements as Rego policies. Start with the `policy/` directory convention.
420
- 4. **Use Conftest mode for fast feedback** — Static HCL analysis doesn't require a Terraform plan, making it ideal for pre-commit hooks and early CI stages.
421
- 5. **Use OPA mode for change analysis** — Plan-based evaluation catches issues that static analysis can't, like blast radius and IAM changes.
422
- 6. **Always review the `scan_summary.md`**The markdown summary is generated on every scan and provides a quick overview of all findings.
543
+ 3. **Use `--output sarif` for GitHub** — Upload SARIF to GitHub Code Scanning for findings directly in PR diffs and the Security tab.
544
+ 4. **Write custom OPA policies** — Encode your organization's specific security requirements as Rego policies. Use Git repos as policy source for centralized management.
545
+ 5. **Track trends** — Scan history is automatic. Review the trend table to catch regressions early.
546
+ 6. **Use Conftest mode for fast feedback** Static HCL analysis doesn't require a Terraform plan, making it ideal for pre-commit hooks and early CI stages.
547
+ 7. **Use OPA mode for change analysis** — Plan-based evaluation catches issues that static analysis can't, like blast radius and IAM changes.
548
+ 8. **Use `--output json` in CI/CD** — Machine-readable output for custom integrations, dashboards, and artifact-based comparison across runs.
@@ -9,9 +9,11 @@ The scan command helps DevSecOps teams and developers to:
9
9
  - Identify security vulnerabilities in IaC templates
10
10
  - Check for compliance with best practices and security standards
11
11
  - Enforce custom organizational policies using OPA/Rego
12
- - Generate detailed reports in various formats (HTML, Markdown, JSON)
12
+ - Generate detailed reports in various formats (HTML, Markdown, JSON, SARIF)
13
+ - Track scan trends over time with local SQLite history
13
14
  - Gate CI/CD pipelines with hard enforcement mode
14
15
  - Post scan summaries to pull requests
16
+ - Integrate with GitHub Code Scanning via SARIF output
15
17
 
16
18
  ## Subcommands
17
19
 
@@ -31,29 +33,51 @@ thothctl scan iac -t checkov -t trivy -t opa
31
33
  # Fail pipeline on violations
32
34
  thothctl scan iac -t checkov -t opa --enforcement hard
33
35
 
34
- # Generate HTML reports
35
- thothctl scan iac --html-reports-format simple
36
+ # JSON output for CI/CD
37
+ thothctl scan iac -t checkov --output json
38
+
39
+ # SARIF output for GitHub Code Scanning
40
+ thothctl scan iac -t checkov --output sarif
36
41
  ```
37
42
 
38
43
  ## Common Options
39
44
 
40
45
  | Option | Description |
41
46
  |--------|-------------|
42
- | `-t, --tools` | Specify scanning tools to use |
47
+ | `-t, --tools` | Specify scanning tools: `checkov`, `trivy`, `kics`, `terraform-compliance`, `opa` |
43
48
  | `--enforcement [soft\|hard]` | Exit 0 (soft) or exit 1 on violations (hard) |
49
+ | `--output [text\|json\|sarif]` | Output format (default: text) |
44
50
  | `--reports-dir` | Directory to store scan reports |
45
- | `--verbose` | Enable verbose output |
46
51
  | `--post-to-pr` | Post scan summary to pull request |
52
+ | `--verbose` | Enable verbose output |
47
53
 
48
- ## Supported Scanning Tools
54
+ ## Report Outputs
55
+
56
+ Every scan automatically produces:
57
+
58
+ | Output | Description |
59
+ |--------|-------------|
60
+ | `scan_report.html` | Unified multi-tool HTML report with severity, findings, and trend |
61
+ | `scan_summary.md` | Markdown summary |
62
+ | Terminal tables | Pass/fail per tool + severity breakdown + trend comparison |
49
63
 
50
- ThothCTL integrates with multiple security scanning tools to provide comprehensive coverage:
64
+ Optional outputs via `--output` flag:
65
+
66
+ | Flag | File | Use Case |
67
+ |------|------|----------|
68
+ | `--output json` | `scan_report.json` | CI/CD pipeline consumption |
69
+ | `--output sarif` | `scan_results.sarif` | GitHub Code Scanning, IDE integration |
70
+
71
+ ## Scan History & Trends
72
+
73
+ ThothCTL automatically tracks scan results in `~/.thothcf/scan_history.db` (SQLite). On each scan, it compares against the previous run for the same directory and shows improvement or regression.
74
+
75
+ ## Supported Scanning Tools
51
76
 
52
77
  | Tool | Type | Requires |
53
78
  |------|------|----------|
54
79
  | **Checkov** | Static analysis with built-in rules | `checkov` binary |
55
80
  | **Trivy** | Vulnerability and misconfiguration detection | `trivy` binary |
56
- | **TFSec** | Terraform security scanner | `tfsec` binary |
57
81
  | **KICS** | Static analysis via Docker | Docker |
58
82
  | **Terraform-compliance** | BDD-style compliance testing | `terraform-compliance` binary |
59
83
  | **OPA/Conftest** | Custom policy evaluation with Rego | `conftest` and/or `opa` binary |
@@ -38,7 +38,7 @@ graph TB
38
38
 
39
39
  subgraph layer3["<b>⚡ Platform Capabilities Layer</b><br/><i>Core IDP functionality</i>"]
40
40
  direction LR
41
- SEC["<b>Security</b><br/>Checkov • Trivy<br/>TFSecSnyk<br/>Compliance"]
41
+ SEC["<b>Security</b><br/>Checkov • Trivy<br/>KICSOPA<br/>Compliance"]
42
42
  COST["<b>Cost Analysis</b><br/>Real-time pricing<br/>14 AWS services<br/>Optimization"]
43
43
  INV["<b>Inventory</b><br/>Dependencies<br/>Version tracking<br/>Reports"]
44
44
  VAL["<b>Validation</b><br/>Environment<br/>IaC checks<br/>Blast radius"]
@@ -150,9 +150,8 @@ ThothCTL aligns with IDP business objectives through five core principles:
150
150
  **Core IDP functionality**
151
151
 
152
152
  #### Security & Compliance
153
- Multi-tool security scanning with Checkov, Trivy, TFSec, and Snyk.
153
+ Multi-tool security scanning with Checkov, Trivy, KICS, and Snyk.
154
154
 
155
- **Commands:** `thothctl scan iac`, `thothctl scan iac -t checkov -t trivy -t tfsec`
156
155
 
157
156
  📖 **Details:** [Security Scanning](commands/scan/scan_overview.md)
158
157
 
@@ -364,7 +364,7 @@ Coordinates multiple services for complex operations.
364
364
  **Purpose**: Security scanning and compliance
365
365
 
366
366
  **Capabilities:**
367
- - Execute scanners (Checkov, Trivy, TFSec, Snyk)
367
+ - Execute scanners (Checkov, Trivy, KICS, Snyk)
368
368
  - Aggregate scan results
369
369
  - Generate reports (HTML, JSON, SARIF)
370
370
  - Compliance review
@@ -512,7 +512,7 @@ Development environment configuration.
512
512
 
513
513
  **Supported Tools:**
514
514
  - Infrastructure: Terraform, Terragrunt, OpenTofu, TFSwitch
515
- - Security: Checkov, Trivy, TFSec, Snyk
515
+ - Security: Checkov, Trivy, KICS, Snyk
516
516
  - Development: Pre-commit, Commitizen, TFLint
517
517
  - Documentation: Terraform-docs, Terramate
518
518
  - AI: Kiro CLI
@@ -545,7 +545,7 @@ Integration with external IaC and security tools.
545
545
  | Category | Tools |
546
546
  |----------|-------|
547
547
  | **IaC** | Terraform, Terragrunt, OpenTofu, TFSwitch |
548
- | **Security** | Checkov, Trivy, TFSec, Snyk |
548
+ | **Security** | Checkov, Trivy, KICS, Snyk |
549
549
  | **Compliance** | Terraform-compliance |
550
550
  | **Documentation** | Terraform-docs, Terramate |
551
551
  | **Development** | Pre-commit, Commitizen, TFLint |
@@ -31,7 +31,7 @@ Complete AI-assisted IaC development workflow with Kiro CLI and MCP integration.
31
31
  - CI/CD integration patterns
32
32
 
33
33
  **Key Features:**
34
- - Multi-tool security scanning (Checkov, Trivy, TFSec, Snyk)
34
+ - Multi-tool security scanning (Checkov, Trivy, KICS, OPA)
35
35
  - Real-time AWS cost estimation
36
36
  - ITIL v4 change impact assessment
37
37
  - Compliance enforcement
@@ -146,7 +146,7 @@ kiro-cli chat --agent thoth
146
146
 
147
147
  ### Security & Compliance
148
148
  - `thothctl scan iac` - Security scanning with Checkov (default)
149
- - `thothctl scan iac -t checkov -t trivy -t tfsec` - Multi-tool scanning
149
+ - `thothctl scan iac -t checkov -t trivy -t trivy` - Multi-tool scanning
150
150
 
151
151
  ### Documentation
152
152
  - `thothctl document iac` - Generate documentation
@@ -242,7 +242,7 @@ You: "Generate documentation for all modules"
242
242
  ```bash
243
243
  thothctl scan iac --tool checkov
244
244
  thothctl scan iac --tool trivy
245
- thothctl scan iac --tool tfsec
245
+ thothctl scan iac --tool trivy
246
246
  # Review multiple reports...
247
247
  ```
248
248
 
@@ -369,7 +369,7 @@ thothctl init env
369
369
  # This will install:
370
370
  # - Kiro CLI
371
371
  # - Terraform/OpenTofu
372
- # - Security scanners (Checkov, Trivy, TFSec)
372
+ # - Security scanners (Checkov, Trivy, Trivy)
373
373
  # - Other DevSecOps tools
374
374
  ```
375
375
 
@@ -430,7 +430,7 @@ Kiro: "I'll run a comprehensive security scan using ThothCTL.
430
430
  📊 Security Scan Results:
431
431
  - Checkov: 3 HIGH, 5 MEDIUM, 12 LOW
432
432
  - Trivy: 1 CRITICAL, 2 HIGH
433
- - TFSec: 4 HIGH, 8 MEDIUM
433
+ - Trivy: 4 HIGH, 8 MEDIUM
434
434
 
435
435
  🔴 Critical Issues:
436
436
  1. S3 bucket without encryption (s3.tf:15)
@@ -516,7 +516,7 @@ thothctl document iac --recursive
516
516
  # Step 5: Run security scans
517
517
  thothctl scan iac --tool checkov
518
518
  thothctl scan iac --tool trivy
519
- thothctl scan iac --tool tfsec
519
+ thothctl scan iac --tool trivy
520
520
 
521
521
  # Step 6: Create Terraform plan
522
522
  terraform init
@@ -45,7 +45,6 @@ thothctl dashboard launch
45
45
  # Run all security scanners
46
46
  thothctl scan iac --tool checkov
47
47
  thothctl scan iac --tool trivy
48
- thothctl scan iac --tool tfsec
49
48
 
50
49
  # View consolidated results
51
50
  thothctl dashboard launch
@@ -45,7 +45,7 @@ graph TB
45
45
  | **Develop** | Environment validation, Structure enforcement, Standards | `check environment`, `check iac --type structure` |
46
46
  | **Build** | Dependency management, Version tracking, Inventory | `inventory iac --check-versions` |
47
47
  | **Test** | Plan validation, Impact analysis, Change assessment | `check iac --type plan`, `--type blast-radius` |
48
- | **Secure** | Security scanning, Compliance validation, CVE detection | `scan iac --tool checkov/trivy/tfsec` |
48
+ | **Secure** | Security scanning, Compliance validation, CVE detection | `scan iac --tool checkov/trivy/opa` |
49
49
  | **Deploy** | Pre-deployment validation, Risk gates, Approval workflow | `check iac --type all` |
50
50
  | **Operate** | Configuration management, Updates, Documentation | `project upgrade`, `document iac` |
51
51
  | **Monitor** | Continuous monitoring, Drift detection, Dashboards | `dashboard launch`, scheduled scans |
@@ -115,7 +115,7 @@ thothctl check environment
115
115
 
116
116
  **Validates:**
117
117
  - Terraform/OpenTofu/Terragrunt
118
- - Security scanners (Checkov, Trivy, TFSec)
118
+ - Security scanners (Checkov, Trivy, KICS)
119
119
  - Documentation tools
120
120
  - Version control
121
121
 
@@ -246,10 +246,8 @@ thothctl scan iac --tool trivy --recursive
246
246
  - Insecure configurations
247
247
  - License issues
248
248
 
249
- #### 5.3 Scan with TFSec
250
249
  ```bash
251
250
  # Terraform-specific security
252
- thothctl scan iac --tool tfsec --recursive
253
251
  ```
254
252
 
255
253
  **Checks:**
@@ -408,7 +406,7 @@ thothctl check iac --type plan --plan-file tfplan.json
408
406
  # 5. SECURE: Run security scans
409
407
  thothctl scan iac --tool checkov
410
408
  thothctl scan iac --tool trivy
411
- thothctl scan iac --tool tfsec
409
+ thothctl scan iac --tool trivy
412
410
 
413
411
  # 6. ASSESS: Check blast radius
414
412
  thothctl check iac --type blast-radius --plan-file tfplan.json
@@ -55,7 +55,7 @@ Enable Check project structure and standard practices.
55
55
 
56
56
  ## Scan Code
57
57
  You can use the peerbot for scanning code using open source tools, the available tools are:
58
- * tfsec
58
+ * trivy
59
59
  * checkov
60
60
  * terraform-compliance
61
61
 
@@ -65,17 +65,17 @@ You can use the peerbot for scanning code using open source tools, the available
65
65
 
66
66
  ```bash
67
67
  $ thothctl scan -h
68
- usage: thothctl scan [-h] [-s] [-t {tfsec,terraform-compliance,checkov}] [-op TOOL_OPTIONS] [-r REPORTS_PATH] [-b {single,xunit}] [-m {Teams}] [-w WEBHOOK] [-f FEATURE_PATH]
68
+ usage: thothctl scan [-h] [-s] [-t {trivy,terraform-compliance,checkov}] [-op TOOL_OPTIONS] [-r REPORTS_PATH] [-b {single,xunit}] [-m {Teams}] [-w WEBHOOK] [-f FEATURE_PATH]
69
69
 
70
- Scan code using tools like checkov, tfsec, terraform-compliance
70
+ Scan code using tools like checkov, trivy, terraform-compliance
71
71
 
72
72
  optional arguments:
73
73
  -h, --help show this help message and exit
74
74
 
75
75
  Scan code options and flags:
76
76
  -s, --scan Scan project
77
- -t {tfsec,terraform-compliance,checkov}, --tool {tfsec,terraform-compliance,checkov}
78
- Use this flag for setting the tool of scanning tool. Allowed values are: tfsec, terraform-compliance or checkov, (default: checkov)
77
+ -t {trivy,terraform-compliance,checkov}, --tool {trivy,terraform-compliance,checkov}
78
+ Use this flag for setting the tool of scanning tool. Allowed values are: trivy, terraform-compliance or checkov, (default: checkov)
79
79
  -op TOOL_OPTIONS, --tool_options TOOL_OPTIONS
80
80
  Use for passing more arguments for your tool. Use with -t option
81
81
  -r REPORTS_PATH, --reports_path REPORTS_PATH
@@ -93,7 +93,7 @@ Scan code options and flags:
93
93
  The command line example:
94
94
 
95
95
  ```commandline
96
- # thothctl -d . scan --tool tfsec --browser_reports xunit
96
+ # thothctl -d . scan --tool trivy --browser_reports xunit
97
97
 
98
98
 
99
99
  ```
@@ -26,7 +26,7 @@ pip install thothctl
26
26
  |---------|-------------|
27
27
  | `init` | Initialize and configure projects, spaces, environments |
28
28
  | `check` | Validate IaC structure, cost analysis, blast radius, drift detection |
29
- | `scan` | Security scanning with Checkov, Trivy, KICS, TFSec |
29
+ | `scan` | Security scanning with Checkov, Trivy, KICS, OPA |
30
30
  | `inventory` | Dependency tracking, version analysis, professional reports |
31
31
  | `document` | Auto-generate documentation for IaC modules |
32
32
  | `generate` | Generate components and stacks from rules |
@@ -52,7 +52,6 @@ pip install thothctl
52
52
  | **Security** | [Checkov](https://www.checkov.io/) | Native (pip) |
53
53
  | **Security** | [Trivy](https://trivy.dev/) | CLI binary |
54
54
  | **Security** | [KICS](https://docs.kics.io/) | Docker container |
55
- | **Security** | [TFSec](https://aquasecurity.github.io/tfsec/) | CLI binary |
56
55
  | **Docs** | [Terraform-docs](https://terraform-docs.io/) | CLI binary |
57
56
  | **AI** | [OpenAI](https://platform.openai.com/) | GPT-4 Turbo |
58
57
  | **AI** | [AWS Bedrock](https://aws.amazon.com/bedrock/) | Claude Sonnet (InvokeModel + Agent) |
@@ -74,7 +74,8 @@ classifiers = [
74
74
  ]
75
75
 
76
76
  [project.urls]
77
- "Homepage" = "https://github.com/thothforge/thothctl"
77
+ "SourceCode" = "https://github.com/thothforge/thothctl"
78
+ "HomePage" = "https://github.com/thothforge/thothctl"
78
79
 
79
80
  [tool.hatch.version]
80
81
  path = "src/thothctl/version.py"