thothctl 0.28.1__tar.gz → 0.30.0__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 (594) hide show
  1. {thothctl-0.28.1 → thothctl-0.30.0}/CHANGELOG.md +33 -0
  2. {thothctl-0.28.1 → thothctl-0.30.0}/PKG-INFO +101 -15
  3. {thothctl-0.28.1 → thothctl-0.30.0}/README.md +100 -14
  4. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/README.md +64 -0
  5. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_iac.md +77 -0
  6. thothctl-0.30.0/docs/framework/specs/phase2.5.1_autonomy_model.md +208 -0
  7. {thothctl-0.28.1 → thothctl-0.30.0}/docs/whats_new.md +1 -0
  8. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/decide.py +19 -1
  9. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/iac.py +25 -2
  10. thothctl-0.30.0/src/thothctl/services/ai_review/config/autonomy.py +261 -0
  11. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/decision_engine.py +7 -2
  12. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/safety_guard.py +29 -2
  13. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/generation_history.py +54 -25
  14. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_service.py +333 -280
  15. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/models.py +5 -1
  16. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_validator.py +32 -3
  17. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/scaffold_loader.py +5 -0
  18. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/validator.py +17 -11
  19. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/version.py +1 -1
  20. thothctl-0.30.0/tests/test_ai_autonomy.py +189 -0
  21. {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/Dockerfile +0 -0
  22. {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/README.md +0 -0
  23. {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/devcontainer.json +0 -0
  24. {thothctl-0.28.1 → thothctl-0.30.0}/.github/workflows/docs.yml +0 -0
  25. {thothctl-0.28.1 → thothctl-0.30.0}/.github/workflows/python-publish.yml +0 -0
  26. {thothctl-0.28.1 → thothctl-0.30.0}/.gitignore +0 -0
  27. {thothctl-0.28.1 → thothctl-0.30.0}/.pre-commit-config.yaml +0 -0
  28. {thothctl-0.28.1 → thothctl-0.30.0}/.pydocstyle +0 -0
  29. {thothctl-0.28.1 → thothctl-0.30.0}/.readthedocs.yaml +0 -0
  30. {thothctl-0.28.1 → thothctl-0.30.0}/CONTRIBUTING.md +0 -0
  31. {thothctl-0.28.1 → thothctl-0.30.0}/Dockerfile +0 -0
  32. {thothctl-0.28.1 → thothctl-0.30.0}/LICENSE +0 -0
  33. {thothctl-0.28.1 → thothctl-0.30.0}/__init__.py +0 -0
  34. {thothctl-0.28.1 → thothctl-0.30.0}/docs/catalog/catalog-info.yaml +0 -0
  35. {thothctl-0.28.1 → thothctl-0.30.0}/docs/dashboard/README.md +0 -0
  36. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
  37. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/agentcore.md +0 -0
  38. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/blast-radius.md +0 -0
  39. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_environment.md +0 -0
  40. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_iac.md +0 -0
  41. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_overview.md +0 -0
  42. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_project_iac.md +0 -0
  43. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_space.md +0 -0
  44. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
  45. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis.md +0 -0
  46. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/customizing_rules.md +0 -0
  47. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/deps-advanced.md +0 -0
  48. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/deps.md +0 -0
  49. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/drift-detection.md +0 -0
  50. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/plan.md +0 -0
  51. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/dashboard/dashboard_overview.md +0 -0
  52. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/customizing_docs.md +0 -0
  53. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/document_iac.md +0 -0
  54. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/document_overview.md +0 -0
  55. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/iac.md +0 -0
  56. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_examples.md +0 -0
  57. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_quickref.md +0 -0
  58. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/use_cases.md +0 -0
  59. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_components.md +0 -0
  60. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_iac.md +0 -0
  61. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_stacks.md +0 -0
  62. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/init/init.md +0 -0
  63. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/init/init_space.md +0 -0
  64. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
  65. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
  66. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
  67. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/iac.md +0 -0
  68. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_overview.md +0 -0
  69. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_overview.md +0 -0
  70. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_projects.md +0 -0
  71. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_spaces.md +0 -0
  72. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/mcp/mcp.md +0 -0
  73. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/iac.md +0 -0
  74. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_cleanup.md +0 -0
  75. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_convert.md +0 -0
  76. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_overview.md +0 -0
  77. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_upgrade.md +0 -0
  78. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/use_cases.md +0 -0
  79. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_overview.md +0 -0
  80. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_project.md +0 -0
  81. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_space.md +0 -0
  82. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/iac.md +0 -0
  83. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/scan_iac.md +0 -0
  84. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/scan_overview.md +0 -0
  85. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/use_cases.md +0 -0
  86. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/space/space_overview.md +0 -0
  87. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
  88. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_devsecops.md +0 -0
  89. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_overview.md +0 -0
  90. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/concepts.md +0 -0
  91. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/cross_platform_support.md +0 -0
  92. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/framework_architecture.md +0 -0
  93. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/infrastructure_composition.md +0 -0
  94. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/policy_as_code.md +0 -0
  95. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/roadmap_fdi.md +0 -0
  96. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/software_architecture.md +0 -0
  97. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/space_configuration.md +0 -0
  98. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1.10_plan_validation.md +0 -0
  99. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1.9_composition_generation.md +0 -0
  100. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1_intent_to_iac.md +0 -0
  101. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/README.md +0 -0
  102. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/ai_dlc.md +0 -0
  103. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/check_command.md +0 -0
  104. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
  105. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
  106. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/inventory_command.md +0 -0
  107. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
  108. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/space_management.md +0 -0
  109. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/tasks/create_template.md +0 -0
  110. {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/tasks/workflow_implementation_plan.md +0 -0
  111. {thothctl-0.28.1 → thothctl-0.30.0}/docs/how_it_works.md +0 -0
  112. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/commnad_init.png +0 -0
  113. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/framework/thothforge-framework.svg +0 -0
  114. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/framework/thothfr.png +0 -0
  115. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/icon-light.png +0 -0
  116. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/icon.png +0 -0
  117. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/init_project.gif +0 -0
  118. {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/stable/scan_report_example.png +0 -0
  119. {thothctl-0.28.1 → thothctl-0.30.0}/docs/includes/abbreviations.md +0 -0
  120. {thothctl-0.28.1 → thothctl-0.30.0}/docs/index.md +0 -0
  121. {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/devcontainer_setup.md +0 -0
  122. {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/linux_installation.md +0 -0
  123. {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/windows_installation.md +0 -0
  124. {thothctl-0.28.1 → thothctl-0.30.0}/docs/javascripts/tablesort.js +0 -0
  125. {thothctl-0.28.1 → thothctl-0.30.0}/docs/mcp.md +0 -0
  126. {thothctl-0.28.1 → thothctl-0.30.0}/docs/navigation.md +0 -0
  127. {thothctl-0.28.1 → thothctl-0.30.0}/docs/quick_start.md +0 -0
  128. {thothctl-0.28.1 → thothctl-0.30.0}/docs/requirements.txt +0 -0
  129. {thothctl-0.28.1 → thothctl-0.30.0}/docs/stylesheets/extra-enhanced.css +0 -0
  130. {thothctl-0.28.1 → thothctl-0.30.0}/docs/stylesheets/extra.css +0 -0
  131. {thothctl-0.28.1 → thothctl-0.30.0}/docs/telemetry.md +0 -0
  132. {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/cli_commands_audit.md +0 -0
  133. {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/for_developers.md +0 -0
  134. {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/for_platform_engineers.md +0 -0
  135. {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/github_templates.md +0 -0
  136. {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/template_engine.md +0 -0
  137. {thothctl-0.28.1 → thothctl-0.30.0}/docs/toolkit_overview.md +0 -0
  138. {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/linux_troubleshooting.md +0 -0
  139. {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/macos_troubleshooting.md +0 -0
  140. {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/troubleshooting.md +0 -0
  141. {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/windows_troubleshooting.md +0 -0
  142. {thothctl-0.28.1 → thothctl-0.30.0}/mkdocs.yaml +0 -0
  143. {thothctl-0.28.1 → thothctl-0.30.0}/pyproject.toml +0 -0
  144. {thothctl-0.28.1 → thothctl-0.30.0}/scripts/check_output_consistency.py +0 -0
  145. {thothctl-0.28.1 → thothctl-0.30.0}/scripts/run_mcp_server.sh +0 -0
  146. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/__init__.py +0 -0
  147. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/application/__init__.py +0 -0
  148. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/autocomplete.py +0 -0
  149. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/cli.py +0 -0
  150. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/__init__.py +0 -0
  151. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/__init__.py +0 -0
  152. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/cli.py +0 -0
  153. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
  154. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
  155. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
  156. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
  157. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
  158. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/history.py +0 -0
  159. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
  160. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
  161. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/override.py +0 -0
  162. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/report.py +0 -0
  163. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
  164. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/__init__.py +0 -0
  165. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/cli.py +0 -0
  166. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/__init__.py +0 -0
  167. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/config.py +0 -0
  168. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/environment.py +0 -0
  169. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/iac.py +0 -0
  170. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
  171. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/iac.py +0 -0
  172. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project.py +0 -0
  173. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/space.py +0 -0
  174. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/__init__.py +0 -0
  175. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/cli.py +0 -0
  176. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
  177. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
  178. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/__init__.py +0 -0
  179. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/cli.py +0 -0
  180. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/commands/__init__.py +0 -0
  181. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/commands/iac.py +0 -0
  182. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/__init__.py +0 -0
  183. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/cli.py +0 -0
  184. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/__init__.py +0 -0
  185. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/component.py +0 -0
  186. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/stacks.py +0 -0
  187. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/__init__.py +0 -0
  188. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/cli.py +0 -0
  189. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/__init__.py +0 -0
  190. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/env.py +0 -0
  191. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/project.py +0 -0
  192. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/space.py +0 -0
  193. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/template.py +0 -0
  194. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/__init__.py +0 -0
  195. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/cli.py +0 -0
  196. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
  197. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/check.py +0 -0
  198. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/iac.py +0 -0
  199. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/__init__.py +0 -0
  200. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/cli.py +0 -0
  201. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/__init__.py +0 -0
  202. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/projects.py +0 -0
  203. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/spaces.py +0 -0
  204. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/templates.py +0 -0
  205. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/__init__.py +0 -0
  206. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/cli.py +0 -0
  207. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
  208. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/register.py +0 -0
  209. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/server.py +0 -0
  210. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/status.py +0 -0
  211. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/stop.py +0 -0
  212. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/__init__.py +0 -0
  213. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/cli.py +0 -0
  214. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/__init__.py +0 -0
  215. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
  216. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/cleanup.py +0 -0
  217. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/convert.py +0 -0
  218. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/upgrade.py +0 -0
  219. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/quickstart/__init__.py +0 -0
  220. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/quickstart/cli.py +0 -0
  221. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/__init__.py +0 -0
  222. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/cli.py +0 -0
  223. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/project.py +0 -0
  224. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/space.py +0 -0
  225. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/__init__.py +0 -0
  226. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/cli.py +0 -0
  227. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/__init__.py +0 -0
  228. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/iac.py +0 -0
  229. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/__init__.py +0 -0
  230. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/cli.py +0 -0
  231. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/__init__.py +0 -0
  232. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/activate.py +0 -0
  233. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/deactivate.py +0 -0
  234. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/export_space.py +0 -0
  235. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/import_space.py +0 -0
  236. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/show.py +0 -0
  237. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/update.py +0 -0
  238. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/upgrade/cli.py +0 -0
  239. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/__init__.py +0 -0
  240. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/cli.py +0 -0
  241. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/__init__.py +0 -0
  242. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/devsecops.py +0 -0
  243. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/run.py +0 -0
  244. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf.setup.toml +0 -0
  245. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_home.toml +0 -0
  246. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_module.toml +0 -0
  247. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_project.toml +0 -0
  248. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
  249. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/__init__.py +0 -0
  250. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/common.py +0 -0
  251. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
  252. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/__init__.py +0 -0
  253. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/constants.py +0 -0
  254. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/default_values.py +0 -0
  255. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/defaults.py +0 -0
  256. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/models.py +0 -0
  257. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/settings.py +0 -0
  258. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/template_config.py +0 -0
  259. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/template_configs.py +0 -0
  260. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/templates.py +0 -0
  261. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/validation.py +0 -0
  262. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/__init__.py +0 -0
  263. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/cli_ui.py +0 -0
  264. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/commands.py +0 -0
  265. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/config.py +0 -0
  266. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/__init__.py +0 -0
  267. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
  268. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
  269. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
  270. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/github/get_github.py +0 -0
  271. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
  272. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
  273. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
  274. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
  275. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pattern_names.py +0 -0
  276. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
  277. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
  278. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/logger.py +0 -0
  279. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/telemetry.py +0 -0
  280. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/version_tools.py +0 -0
  281. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/__init__.py +0 -0
  282. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/interfaces/__init__.py +0 -0
  283. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/models/__init__.py +0 -0
  284. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/README.md +0 -0
  285. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/__init__.py +0 -0
  286. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/server.py +0 -0
  287. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/__init__.py +0 -0
  288. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/__init__.py +0 -0
  289. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
  290. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/ai_agent.py +0 -0
  291. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
  292. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
  293. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
  294. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
  295. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
  296. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
  297. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/__init__.py +0 -0
  298. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
  299. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
  300. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/main.py +0 -0
  301. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/memory.py +0 -0
  302. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/orchestrator.py +0 -0
  303. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
  304. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
  305. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
  306. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
  307. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
  308. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/kiro_provider.py +0 -0
  309. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
  310. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
  311. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
  312. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/strands_agent.py +0 -0
  313. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/tracing.py +0 -0
  314. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
  315. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
  316. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
  317. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
  318. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
  319. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
  320. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/__init__.py +0 -0
  321. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/environment/__init__.py +0 -0
  322. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/environment/check_environment.py +0 -0
  323. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/org_policy_loader.py +0 -0
  324. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/__init__.py +0 -0
  325. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
  326. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cfn_blast_radius_service.py +0 -0
  327. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/check_origin_version.py +0 -0
  328. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/check_project_structure.py +0 -0
  329. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/__init__.py +0 -0
  330. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
  331. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
  332. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
  333. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
  334. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
  335. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
  336. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
  337. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
  338. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
  339. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
  340. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
  341. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
  342. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
  343. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
  344. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecr_pricing.py +0 -0
  345. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
  346. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
  347. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
  348. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
  349. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
  350. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
  351. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
  352. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
  353. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
  354. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
  355. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
  356. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
  357. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
  358. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/__init__.py +0 -0
  359. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/cfn_drift_service.py +0 -0
  360. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
  361. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
  362. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
  363. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
  364. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
  365. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/models.py +0 -0
  366. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/risk_assessment.py +0 -0
  367. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
  368. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/rule_merger.py +0 -0
  369. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/rules_compiler.py +0 -0
  370. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
  371. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/__init__.py +0 -0
  372. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
  373. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/data_loader.py +0 -0
  374. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/__init__.py +0 -0
  375. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/architecture_renderer.py +0 -0
  376. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/create_documentation.py +0 -0
  377. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/files_content.py +0 -0
  378. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/files_scan.py +0 -0
  379. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_documentation.py +0 -0
  380. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
  381. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_info.py +0 -0
  382. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/topology_generator.py +0 -0
  383. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/__init__.py +0 -0
  384. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
  385. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
  386. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
  387. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
  388. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
  389. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/terragrunt.hcl +0 -0
  390. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/__init__.py +0 -0
  391. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/config.yaml +0 -0
  392. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_code.py +0 -0
  393. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component.py +0 -0
  394. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
  395. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
  396. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_template.py +0 -0
  397. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/files_content.py +0 -0
  398. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
  399. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
  400. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/__init__.py +0 -0
  401. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/code_generator.py +0 -0
  402. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/composition_models.py +0 -0
  403. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/context_builder.py +0 -0
  404. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_decomposer.py +0 -0
  405. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/parameter_resolver.py +0 -0
  406. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_runner.py +0 -0
  407. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/project_assembler.py +0 -0
  408. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/prompts.py +0 -0
  409. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/state_resolver.py +0 -0
  410. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/__init__.py +0 -0
  411. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/__init__.py +0 -0
  412. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/install_tools.py +0 -0
  413. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/prerequisite_checker.py +0 -0
  414. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/tool_packs.py +0 -0
  415. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/project/__init__.py +0 -0
  416. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/project/project.py +0 -0
  417. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/__init__.py +0 -0
  418. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/example_space.toml +0 -0
  419. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/export_import.py +0 -0
  420. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/inheritance.py +0 -0
  421. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/space.py +0 -0
  422. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/terraform_module_cache.py +0 -0
  423. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/__init__.py +0 -0
  424. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_parsers.py +0 -0
  425. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_sbom_service.py +0 -0
  426. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/changelog_parser.py +0 -0
  427. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/defectdojo_publisher.py +0 -0
  428. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/dtrack_publisher.py +0 -0
  429. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/inventory_service.py +0 -0
  430. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/models.py +0 -0
  431. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
  432. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/report_service.py +0 -0
  433. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
  434. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/secobserve_publisher.py +0 -0
  435. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
  436. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/update_versions.py +0 -0
  437. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/version_service.py +0 -0
  438. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/README.md +0 -0
  439. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/__init__.py +0 -0
  440. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/simple_http_server.py +0 -0
  441. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/stdio_server.py +0 -0
  442. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/__init__.py +0 -0
  443. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
  444. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
  445. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/__init__.py +0 -0
  446. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
  447. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
  448. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/__init__.py +0 -0
  449. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/conversion_service.py +0 -0
  450. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/get_project_data.py +0 -0
  451. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/post_init.py +0 -0
  452. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_converter.py +0 -0
  453. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_defaults.py +0 -0
  454. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
  455. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
  456. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
  457. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
  458. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
  459. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/__init__.py +0 -0
  460. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
  461. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/__init__.py +0 -0
  462. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/compliance_review.py +0 -0
  463. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/import_reports.py +0 -0
  464. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/models.py +0 -0
  465. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/report_parser.py +0 -0
  466. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/sarif_output.py +0 -0
  467. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scan_history.py +0 -0
  468. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scan_service.py +0 -0
  469. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/__init__.py +0 -0
  470. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/checkov.py +0 -0
  471. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/kics.py +0 -0
  472. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/opa.py +0 -0
  473. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
  474. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scanners.py +0 -0
  475. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
  476. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
  477. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/trivy.py +0 -0
  478. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/__init__.py +0 -0
  479. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/custom_workflow_engine.py +0 -0
  480. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/models.py +0 -0
  481. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/__init__.py +0 -0
  482. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/base.py +0 -0
  483. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/build.py +0 -0
  484. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/deploy.py +0 -0
  485. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/develop.py +0 -0
  486. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/monitor.py +0 -0
  487. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/plan.py +0 -0
  488. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/secure.py +0 -0
  489. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/test.py +0 -0
  490. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/workflow_service.py +0 -0
  491. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/ai_reports/pr_comment.md +0 -0
  492. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.html +0 -0
  493. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.js +0 -0
  494. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/unified_report_styles.css +0 -0
  495. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/__init__.py +0 -0
  496. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/banner.py +0 -0
  497. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/__init__.py +0 -0
  498. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
  499. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/create_html_reports.py +0 -0
  500. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/delete_directory.py +0 -0
  501. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/fix_report_styling.py +0 -0
  502. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/render_scan_report.py +0 -0
  503. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/report_html_utils.py +0 -0
  504. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/dashboard.html +0 -0
  505. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/index_report.html +0 -0
  506. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/individual_report.html +0 -0
  507. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/simple_report.html +0 -0
  508. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
  509. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
  510. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
  511. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
  512. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/crypto.py +0 -0
  513. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/git_changes.py +0 -0
  514. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
  515. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
  516. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/__init__.py +0 -0
  517. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
  518. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
  519. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/platform_utils.py +0 -0
  520. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/__init__.py +0 -0
  521. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
  522. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
  523. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
  524. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
  525. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
  526. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
  527. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
  528. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
  529. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/template_loader.py +0 -0
  530. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/thoth_colors.py +0 -0
  531. {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/wellcome_banner.py +0 -0
  532. {thothctl-0.28.1 → thothctl-0.30.0}/tests/conftest.py +0 -0
  533. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_agentcore_entrypoint.py +0 -0
  534. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_apply_fix.py +0 -0
  535. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_decision_engine.py +0 -0
  536. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_fix_patterns.py +0 -0
  537. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_memory.py +0 -0
  538. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_orchestrator.py +0 -0
  539. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_pr_decision.py +0 -0
  540. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_safety_guard.py +0 -0
  541. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_aws_pricing_client.py +0 -0
  542. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_azure_devops_pr_comments.py +0 -0
  543. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_bedrock_pricing.py +0 -0
  544. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cdk_inventory.py +0 -0
  545. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cdk_language_selection.py +0 -0
  546. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cfn_blast_radius.py +0 -0
  547. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cfn_drift_detection.py +0 -0
  548. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_context_steering.py +0 -0
  549. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_analyzer.py +0 -0
  550. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_models.py +0 -0
  551. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_policy_enforcement.py +0 -0
  552. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_pr_comments.py +0 -0
  553. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dashboard_loading_fix.py +0 -0
  554. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dashboard_service.py +0 -0
  555. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_defectdojo_publisher.py +0 -0
  556. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_drift.py +0 -0
  557. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_drift_detection.py +0 -0
  558. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dtrack_publisher.py +0 -0
  559. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ec2_pricing.py +0 -0
  560. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_codegen.py +0 -0
  561. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_context.py +0 -0
  562. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_prompts.py +0 -0
  563. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_service.py +0 -0
  564. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_validator.py +0 -0
  565. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_github_pr_comments.py +0 -0
  566. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_iac_cost_integration.py +0 -0
  567. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_init_ai_tools.py +0 -0
  568. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_init_template_params.py +0 -0
  569. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_intent_quick_wins.py +0 -0
  570. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_intent_rules_integration.py +0 -0
  571. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_inventory_pr_comments.py +0 -0
  572. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_kics_scanner.py +0 -0
  573. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_kiro_provider.py +0 -0
  574. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_mermaid_edge_labels.py +0 -0
  575. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_new_cost_providers.py +0 -0
  576. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_opa_data_files.py +0 -0
  577. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_parallel_scan.py +0 -0
  578. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_plan_validation.py +0 -0
  579. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_platform_utils.py +0 -0
  580. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_pr_comment_publisher.py +0 -0
  581. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_provider_source_url_fix.py +0 -0
  582. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_provider_versions.py +0 -0
  583. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_rules_compiler.py +0 -0
  584. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_cfn_support.py +0 -0
  585. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_command.py +0 -0
  586. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_pr_comments.py +0 -0
  587. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_space_command.py +0 -0
  588. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_space_management.py +0 -0
  589. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_stack_optimizer.py +0 -0
  590. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_template_url_fix.py +0 -0
  591. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_terragrunt_parser.py +0 -0
  592. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_topology_generator.py +0 -0
  593. {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_workflow_integration.py +0 -0
  594. {thothctl-0.28.1 → thothctl-0.30.0}/tox.ini +0 -0
@@ -5,6 +5,32 @@ All notable changes to ThothCTL are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.29.0] - 2026-09-15
9
+
10
+ ### Added
11
+
12
+ - **Agent Autonomy Model** (Phase 2.5.1) — a graduated 4-level governance framework
13
+ for AI agents, aligned with the industry-standard "4 Levels of Agentic Development"
14
+ (Weave Intelligence), replacing the previous binary auto-decision switch.
15
+ - New `services/ai_review/config/autonomy.py`: `AutonomyLevel` / `AutonomyConfig`,
16
+ `.thothcf.toml [agent.autonomy]` loader with per-level tool allow/deny lists
17
+ - **Deny-beats-allow** tool resolution with `*` wildcard support
18
+ - Action-to-level gating (read-only → L1, PR decisions → L2, auto-merge → L3,
19
+ apply/destroy → L4)
20
+ - **Safe-by-default**: Level 1 (read-only) when unconfigured; malformed config
21
+ never escalates privilege
22
+ - Enforced as the first check in `SafetyGuard.can_take_action` (optional
23
+ `autonomy_level` param — fully backward compatible)
24
+ - New `--autonomy [suggest|draft|validate|execute]` flag on `ai-review decide`
25
+ - 27 unit tests; design spec at `docs/framework/specs/phase2.5.1_autonomy_model.md`
26
+
27
+ ### Documentation
28
+
29
+ - Aligned the GitHub README with the current v0.28 state (Intent-to-IaC, workflow
30
+ engine, MCP v2.0, security-platform publishing, Kiro provider) and pointed docs
31
+ to the official ReadTheDocs site
32
+ - Added an **Agent Autonomy Levels** section to the AI Review command docs
33
+
8
34
  ## [0.28.0] - 2026-08-23
9
35
 
10
36
  ### Added
@@ -25,6 +51,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
25
51
  - Deduplication and close-old-findings support
26
52
  - Config via env vars (`DEFECTDOJO_URL`, `DEFECTDOJO_TOKEN`) or `.thothcf.toml`
27
53
  - 21 unit tests covering all paths
54
+ - **SecObserve SBOM + scan publishing** (`--publish-sbom secobserve` / `--publish-to secobserve`)
55
+ - CycloneDX SBOM → license component tracking via `/api/import/file_upload_sbom_by_name/`
56
+ - Scan findings → observations via SARIF through `/api/import/file_upload_observations_by_name/`
57
+ - APIToken authentication (SecObserve's custom format)
58
+ - Auto-creates product, .localhost domain resolution for Traefik setups
59
+ - Supports all scanners: Checkov, Trivy, KICS, OPA/Conftest (all via SARIF)
60
+ - Config via env vars (`SECOBSERVE_URL`, `SECOBSERVE_API_TOKEN`) or `.thothcf.toml`
28
61
  - **Kiro CLI as AI provider** for Intent-to-IaC generation (`--provider kiro`)
29
62
  - Uses Kiro headless mode (`kiro-cli chat --no-interactive --trust-all-tools`)
30
63
  - Tool-augmented generation: reads project files, searches docs, validates output
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: thothctl
3
- Version: 0.28.1
3
+ Version: 0.30.0
4
4
  Summary: A CLI for Developer Control Plane. Accelerate your cloud IaC deployments.
5
5
  Project-URL: SourceCode, https://github.com/thothforge/thothctl
6
6
  Project-URL: HomePage, https://github.com/thothforge/thothctl
@@ -48,7 +48,7 @@ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == 'telemetry'
48
48
  Description-Content-Type: text/markdown
49
49
 
50
50
  [![Publish Python Package](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml/badge.svg)](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml)
51
- [![Documentation](https://github.com/thothforge/thothctl/actions/workflows/docs.yml/badge.svg)](https://thothforge.github.io/thothctl/)
51
+ [![Documentation Status](https://readthedocs.org/projects/thothctl/badge/?version=latest)](https://thothctl.readthedocs.io/en/latest/)
52
52
  [![PyPI version](https://img.shields.io/pypi/v/thothctl)](https://pypi.org/project/thothctl/)
53
53
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
54
54
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green)](LICENSE)
@@ -57,15 +57,18 @@ Description-Content-Type: text/markdown
57
57
 
58
58
  **AI-Powered Infrastructure Lifecycle CLI** for DevSecOps, Platform Engineering, and IaC governance.
59
59
 
60
- ![ThothCTL](./docs/img/framework/thothctl_mcp.png)
60
+ ![ThothCTL](./docs/img/framework/thothfr.png)
61
61
 
62
- ThothCTL accelerates the adoption of Internal Developer Platforms by combining security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
62
+ ThothCTL accelerates the adoption of Internal Developer Platforms by combining natural-language IaC generation, security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
63
63
 
64
64
  ## Quick Start
65
65
 
66
66
  ```bash
67
67
  pip install --upgrade thothctl
68
68
 
69
+ # Generate governed IaC from natural language (dry-run by default)
70
+ thothctl generate iac -i "VPC with 3 private subnets, NAT gateway, and flow logs"
71
+
69
72
  # Scan for security issues
70
73
  thothctl scan iac -t checkov -t trivy -t opa
71
74
 
@@ -81,6 +84,29 @@ thothctl ai-review analyze -d ./terraform -p ollama
81
84
 
82
85
  ## Key Features
83
86
 
87
+ ### 🧠 Intent-to-IaC Generation
88
+
89
+ Generate governed Infrastructure as Code from natural language. Organizational conventions (`.thothcf.toml`, steering docs, existing patterns) are injected into the AI context, and output is validated by Checkov + OPA with self-correction:
90
+
91
+ ```bash
92
+ # Single stack (dry-run shows code without writing)
93
+ thothctl generate iac -i "S3 bucket with versioning and encryption"
94
+
95
+ # Multi-stack composition, written to disk
96
+ thothctl generate iac -i "EKS cluster with VPC, RDS PostgreSQL, and S3 for artifacts" \
97
+ --composition full --apply
98
+
99
+ # Tool-augmented generation with Kiro CLI (reads docs, validates, self-corrects)
100
+ thothctl generate iac -i "RDS Aurora cluster with read replicas and failover" -p kiro
101
+ ```
102
+
103
+ - **Multi-provider**: Ollama (local), AWS Bedrock, OpenAI, Azure OpenAI, and **Kiro CLI** (tool-augmented)
104
+ - **Blueprint vs Project modes**: `--mode blueprint` for IDP/Backstage templates, `--mode project` for ready-to-deploy output
105
+ - **Composition-aware**: `single`, `full` (multi-stack), or `incremental` (add to existing project)
106
+ - **Policy at generation time**: `.thothcf.toml` rules and OPA policies evaluated inside the loop
107
+ - **Plan validation**: optional `terragrunt plan` validation with self-correction (`--plan-validation`)
108
+ - **Multi-format**: `terraform`, `terraform-terragrunt`, `terragrunt`, `cloudformation`, `cdkv2`
109
+
84
110
  ### 🔒 Security Scanning
85
111
 
86
112
  Multi-tool scanning with unified HTML reports and enforcement:
@@ -88,12 +114,16 @@ Multi-tool scanning with unified HTML reports and enforcement:
88
114
  ```bash
89
115
  # All scanners with hard enforcement (fails pipeline on violations)
90
116
  thothctl scan iac -t checkov -t trivy -t kics -t opa -t terraform-compliance --enforcement hard
117
+
118
+ # Publish findings to a vulnerability management platform
119
+ thothctl scan iac -t checkov -t trivy --publish-to defectdojo
91
120
  ```
92
121
 
93
122
  - **5 integrated tools**: Checkov, Trivy, KICS, OPA/Conftest, Terraform-compliance
94
123
  - **Unified HTML reports** with severity badges, per-stack breakdown
95
124
  - **Non-compliance findings table** on enforcement failure
96
125
  - **SARIF output** for GitHub Code Scanning integration
126
+ - **Platform publishing**: push findings to **DefectDojo** or **SecObserve**
97
127
  - **Organization policy repos** via `THOTH_ORG_POLICY` env var (HCL + CloudFormation)
98
128
  - **Scan trend tracking** with local SQLite history
99
129
 
@@ -103,14 +133,39 @@ CycloneDX 1.6 compliant Software Bill of Materials:
103
133
 
104
134
  ```bash
105
135
  thothctl inventory iac --check-versions
136
+
137
+ # Publish the SBOM to a supply-chain platform
138
+ thothctl inventory iac --check-versions --publish-sbom dependency-track
106
139
  ```
107
140
 
108
141
  - **Module & provider version tracking** with staleness detection
109
142
  - **CycloneDX 1.6 SBOM** with formulation, evidence, standards, attestations, dependency graph, hashes, and licenses
143
+ - **SBOM publishing**: push to **Dependency-Track**, **DefectDojo**, or **SecObserve** (auto-creates project/product)
144
+ - **CDK v2 support**: dependency tracking for AWS CDK projects
110
145
  - **Technical debt scoring** with risk levels and recommendations
111
146
  - **Schema compatibility analysis** for safe upgrades
112
147
  - **Professional HTML reports** with collapsible stack groups
113
148
 
149
+ ### 🔁 DevSecOps Workflow Engine
150
+
151
+ Orchestrated SDLC pipeline plus custom YAML DAG workflows:
152
+
153
+ ```bash
154
+ # Built-in 7-phase pipeline (Plan → Develop → Build → Test → Secure → Deploy → Monitor)
155
+ thothctl workflow devsecops --phase all --enforcement hard
156
+
157
+ # Composite phase, only changed directories
158
+ thothctl workflow devsecops --phase pre-deploy --changed-only
159
+
160
+ # Custom composable pipeline (declarative YAML DAG)
161
+ thothctl workflow run --file .thothcf_workflow.yaml
162
+ ```
163
+
164
+ - **7 SDLC phases** with composite `all` and `pre-deploy` shortcuts
165
+ - **Custom YAML DAG engine** with `depends_on`, topological ordering, variable interpolation (`{{changed_stacks}}`, `{{branch}}`, `{{project}}`, `{{space}}`), and per-stage failure handling (`block`/`warn`/`skip`)
166
+ - **Enforcement modes**: `soft` (warn) or `hard` (block on violations)
167
+ - **Git-aware** `--changed-only` scoping and dry-run plan visualization
168
+
114
169
  ### 📊 Web Dashboard
115
170
 
116
171
  Modern FastAPI-based dashboard with dark mode:
@@ -122,6 +177,7 @@ thothctl dashboard launch
122
177
  - **Security findings viewer** — filter by tool/severity/search, pagination, inline report iframe
123
178
  - **SBOM details browser** — CycloneDX metadata, dependency graph, formulation, attestations
124
179
  - **Inventory explorer** — collapsible stacks, module/provider tabs, version comparison
180
+ - **Generation history** — track all intent-to-IaC runs
125
181
  - **Cost analysis** — service breakdown, monthly/annual projections
126
182
  - **Drift detection** — severity-classified drifted resources
127
183
  - **AI usage tracking** — token counts, costs per request
@@ -137,9 +193,9 @@ thothctl ai-review decide -d ./terraform --pr-number 42 --dry-run
137
193
 
138
194
  - **4 specialized agents**: Security, Architecture, Fix, Decision
139
195
  - **Multi-provider**: OpenAI, AWS Bedrock, Azure OpenAI, Ollama (local)
196
+ - **Two orchestration modes**: parallel agents (ThreadPoolExecutor) and Strands SDK deterministic pipeline
140
197
  - **Auto-decisions** with confidence thresholds and safety controls
141
198
  - **Adaptive memory**: filesystem or S3 (auto-detects runtime)
142
- - **MCP integration** for AI assistant interoperability
143
199
 
144
200
  ### 💰 Cost Analysis & Risk Assessment
145
201
 
@@ -164,20 +220,37 @@ thothctl init project -p my-infra --project-type terraform
164
220
  - **Backstage integration** for self-service consumption
165
221
  - **Template upgrade workflow** to keep projects in sync
166
222
 
223
+ ### 🔌 MCP Integration
224
+
225
+ Model Context Protocol (v2.0+) server exposing ThothCTL as tools for AI assistants:
226
+
227
+ ```bash
228
+ thothctl mcp
229
+ ```
230
+
231
+ - **26 tools exposed** including `generate iac`, `scan iac`, `inventory iac`, and workflow commands
232
+ - **HTTP + stdio** transport modes
233
+ - **Recursion protection** when thothctl is used as an MCP tool inside an agent
234
+
167
235
  ## All Commands
168
236
 
169
237
  | Command | Description |
170
238
  |---------|-------------|
171
- | `scan iac` | Multi-tool security scanning with enforcement |
172
- | `inventory iac` | Infrastructure SBOM with version tracking |
239
+ | `generate iac` | Generate governed IaC from natural language intent |
240
+ | `generate stacks` | Generate infrastructure stacks from configuration |
241
+ | `scan iac` | Multi-tool security scanning with enforcement and platform publishing |
242
+ | `inventory iac` | Infrastructure SBOM with version tracking and SBOM publishing |
173
243
  | `check iac` | Cost analysis, blast radius, drift detection, structure validation |
244
+ | `workflow devsecops` | Orchestrated 7-phase DevSecOps SDLC pipeline |
245
+ | `workflow run` | Execute a custom YAML DAG workflow |
174
246
  | `ai-review` | AI-powered security analysis and PR decisions |
175
247
  | `dashboard launch` | Web dashboard for all reports |
176
248
  | `document iac` | Auto-generate documentation |
177
249
  | `project convert` | Template ↔ project conversion |
178
250
  | `init project` | Scaffold new IaC projects |
179
- | `mcp` | Model Context Protocol server |
180
- | `generate` | Generate IaC from rules and components |
251
+ | `space` | Manage spaces (activate, update, configure conventions) |
252
+ | `quickstart` | Guided onboarding for new projects |
253
+ | `mcp` | Model Context Protocol server (v2.0+) |
181
254
 
182
255
  ## Installation
183
256
 
@@ -208,15 +281,19 @@ devcontainer up --workspace-folder .
208
281
 
209
282
  ## Documentation
210
283
 
211
- 📖 **Full docs**: [thothforge.github.io/thothctl](https://thothforge.github.io/thothctl/)
284
+ 📖 **Full docs**: [thothctl.readthedocs.io](https://thothctl.readthedocs.io/)
212
285
 
286
+ - [What's New](docs/whats_new.md)
213
287
  - [Quick Start](docs/quick_start.md)
288
+ - [Generate IaC (Intent-to-IaC)](docs/framework/commands/generate/generate_iac.md)
214
289
  - [DevSecOps SDLC Guide](docs/framework/use_cases/devsecops_sdlc.md)
290
+ - [Workflow Command](docs/framework/commands/workflow/workflow_overview.md)
215
291
  - [Scan Command Reference](docs/framework/commands/scan/scan_overview.md)
216
292
  - [Inventory & SBOM](docs/framework/commands/inventory/inventory_overview.md)
217
293
  - [Dashboard](docs/dashboard/README.md)
218
294
  - [AI Review](docs/framework/commands/ai-review/README.md)
219
295
  - [Template Engine](docs/template_engine/template_engine.md)
296
+ - [MCP Server](docs/framework/commands/mcp/mcp.md)
220
297
  - [Dev Container Setup](docs/installation/devcontainer_setup.md)
221
298
 
222
299
  ## CI/CD Integration
@@ -232,18 +309,27 @@ devcontainer up --workspace-folder .
232
309
 
233
310
  ## Roadmap
234
311
 
312
+ Shipped:
313
+
235
314
  - [x] Multi-tool security scanning with unified reports
236
315
  - [x] AI Agent for IaC Security (multi-agent, auto-decisions)
237
316
  - [x] CycloneDX 1.6 SBOM with full supply chain metadata
238
317
  - [x] Organization policy engine (OPA/Rego, HCL + CloudFormation)
239
318
  - [x] Web Dashboard with findings viewer and SBOM browser
240
- - [ ] Intent-to-IaC generation (natural language → governed Terraform)
241
- - [ ] Composable workflow engine (declarative YAML DAG pipelines)
319
+ - [x] Intent-to-IaC generation (natural language → governed IaC)
320
+ - [x] Composable workflow engine (declarative YAML DAG pipelines)
321
+ - [x] MCP v2.0 server (HTTP + stdio, 26 tools)
322
+ - [x] Security platform integrations (Dependency-Track, DefectDojo, SecObserve)
323
+ - [x] Kiro CLI provider for tool-augmented generation
324
+
325
+ In progress / planned:
326
+
327
+ - [ ] App-to-Infra inference (generate stacks from application source code)
242
328
  - [ ] Graph-aware state visibility (tfstate → queryable resource graph)
243
- - [ ] Architecture diagram generation (Mermaid/Graphviz from IaC)
244
- - [ ] Strands Agents SDK integration
329
+ - [ ] Continuous reconciliation (align live infra with intent)
330
+ - [ ] Agent governance & MCP gateway
245
331
 
246
- 📖 [Full Roadmap](docs/framework/roadmap_fdi.md)
332
+ 📖 The active planning document is the **2026 Roadmap** (`thothctl_roadmap_2026.md` in the ThothForge root). The [FdI roadmap](docs/framework/roadmap_fdi.md) is preserved for historical context only.
247
333
 
248
334
  ## Contributing
249
335
 
@@ -1,5 +1,5 @@
1
1
  [![Publish Python Package](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml/badge.svg)](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml)
2
- [![Documentation](https://github.com/thothforge/thothctl/actions/workflows/docs.yml/badge.svg)](https://thothforge.github.io/thothctl/)
2
+ [![Documentation Status](https://readthedocs.org/projects/thothctl/badge/?version=latest)](https://thothctl.readthedocs.io/en/latest/)
3
3
  [![PyPI version](https://img.shields.io/pypi/v/thothctl)](https://pypi.org/project/thothctl/)
4
4
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
5
5
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green)](LICENSE)
@@ -8,15 +8,18 @@
8
8
 
9
9
  **AI-Powered Infrastructure Lifecycle CLI** for DevSecOps, Platform Engineering, and IaC governance.
10
10
 
11
- ![ThothCTL](./docs/img/framework/thothctl_mcp.png)
11
+ ![ThothCTL](./docs/img/framework/thothfr.png)
12
12
 
13
- ThothCTL accelerates the adoption of Internal Developer Platforms by combining security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
13
+ ThothCTL accelerates the adoption of Internal Developer Platforms by combining natural-language IaC generation, security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
14
14
 
15
15
  ## Quick Start
16
16
 
17
17
  ```bash
18
18
  pip install --upgrade thothctl
19
19
 
20
+ # Generate governed IaC from natural language (dry-run by default)
21
+ thothctl generate iac -i "VPC with 3 private subnets, NAT gateway, and flow logs"
22
+
20
23
  # Scan for security issues
21
24
  thothctl scan iac -t checkov -t trivy -t opa
22
25
 
@@ -32,6 +35,29 @@ thothctl ai-review analyze -d ./terraform -p ollama
32
35
 
33
36
  ## Key Features
34
37
 
38
+ ### 🧠 Intent-to-IaC Generation
39
+
40
+ Generate governed Infrastructure as Code from natural language. Organizational conventions (`.thothcf.toml`, steering docs, existing patterns) are injected into the AI context, and output is validated by Checkov + OPA with self-correction:
41
+
42
+ ```bash
43
+ # Single stack (dry-run shows code without writing)
44
+ thothctl generate iac -i "S3 bucket with versioning and encryption"
45
+
46
+ # Multi-stack composition, written to disk
47
+ thothctl generate iac -i "EKS cluster with VPC, RDS PostgreSQL, and S3 for artifacts" \
48
+ --composition full --apply
49
+
50
+ # Tool-augmented generation with Kiro CLI (reads docs, validates, self-corrects)
51
+ thothctl generate iac -i "RDS Aurora cluster with read replicas and failover" -p kiro
52
+ ```
53
+
54
+ - **Multi-provider**: Ollama (local), AWS Bedrock, OpenAI, Azure OpenAI, and **Kiro CLI** (tool-augmented)
55
+ - **Blueprint vs Project modes**: `--mode blueprint` for IDP/Backstage templates, `--mode project` for ready-to-deploy output
56
+ - **Composition-aware**: `single`, `full` (multi-stack), or `incremental` (add to existing project)
57
+ - **Policy at generation time**: `.thothcf.toml` rules and OPA policies evaluated inside the loop
58
+ - **Plan validation**: optional `terragrunt plan` validation with self-correction (`--plan-validation`)
59
+ - **Multi-format**: `terraform`, `terraform-terragrunt`, `terragrunt`, `cloudformation`, `cdkv2`
60
+
35
61
  ### 🔒 Security Scanning
36
62
 
37
63
  Multi-tool scanning with unified HTML reports and enforcement:
@@ -39,12 +65,16 @@ Multi-tool scanning with unified HTML reports and enforcement:
39
65
  ```bash
40
66
  # All scanners with hard enforcement (fails pipeline on violations)
41
67
  thothctl scan iac -t checkov -t trivy -t kics -t opa -t terraform-compliance --enforcement hard
68
+
69
+ # Publish findings to a vulnerability management platform
70
+ thothctl scan iac -t checkov -t trivy --publish-to defectdojo
42
71
  ```
43
72
 
44
73
  - **5 integrated tools**: Checkov, Trivy, KICS, OPA/Conftest, Terraform-compliance
45
74
  - **Unified HTML reports** with severity badges, per-stack breakdown
46
75
  - **Non-compliance findings table** on enforcement failure
47
76
  - **SARIF output** for GitHub Code Scanning integration
77
+ - **Platform publishing**: push findings to **DefectDojo** or **SecObserve**
48
78
  - **Organization policy repos** via `THOTH_ORG_POLICY` env var (HCL + CloudFormation)
49
79
  - **Scan trend tracking** with local SQLite history
50
80
 
@@ -54,14 +84,39 @@ CycloneDX 1.6 compliant Software Bill of Materials:
54
84
 
55
85
  ```bash
56
86
  thothctl inventory iac --check-versions
87
+
88
+ # Publish the SBOM to a supply-chain platform
89
+ thothctl inventory iac --check-versions --publish-sbom dependency-track
57
90
  ```
58
91
 
59
92
  - **Module & provider version tracking** with staleness detection
60
93
  - **CycloneDX 1.6 SBOM** with formulation, evidence, standards, attestations, dependency graph, hashes, and licenses
94
+ - **SBOM publishing**: push to **Dependency-Track**, **DefectDojo**, or **SecObserve** (auto-creates project/product)
95
+ - **CDK v2 support**: dependency tracking for AWS CDK projects
61
96
  - **Technical debt scoring** with risk levels and recommendations
62
97
  - **Schema compatibility analysis** for safe upgrades
63
98
  - **Professional HTML reports** with collapsible stack groups
64
99
 
100
+ ### 🔁 DevSecOps Workflow Engine
101
+
102
+ Orchestrated SDLC pipeline plus custom YAML DAG workflows:
103
+
104
+ ```bash
105
+ # Built-in 7-phase pipeline (Plan → Develop → Build → Test → Secure → Deploy → Monitor)
106
+ thothctl workflow devsecops --phase all --enforcement hard
107
+
108
+ # Composite phase, only changed directories
109
+ thothctl workflow devsecops --phase pre-deploy --changed-only
110
+
111
+ # Custom composable pipeline (declarative YAML DAG)
112
+ thothctl workflow run --file .thothcf_workflow.yaml
113
+ ```
114
+
115
+ - **7 SDLC phases** with composite `all` and `pre-deploy` shortcuts
116
+ - **Custom YAML DAG engine** with `depends_on`, topological ordering, variable interpolation (`{{changed_stacks}}`, `{{branch}}`, `{{project}}`, `{{space}}`), and per-stage failure handling (`block`/`warn`/`skip`)
117
+ - **Enforcement modes**: `soft` (warn) or `hard` (block on violations)
118
+ - **Git-aware** `--changed-only` scoping and dry-run plan visualization
119
+
65
120
  ### 📊 Web Dashboard
66
121
 
67
122
  Modern FastAPI-based dashboard with dark mode:
@@ -73,6 +128,7 @@ thothctl dashboard launch
73
128
  - **Security findings viewer** — filter by tool/severity/search, pagination, inline report iframe
74
129
  - **SBOM details browser** — CycloneDX metadata, dependency graph, formulation, attestations
75
130
  - **Inventory explorer** — collapsible stacks, module/provider tabs, version comparison
131
+ - **Generation history** — track all intent-to-IaC runs
76
132
  - **Cost analysis** — service breakdown, monthly/annual projections
77
133
  - **Drift detection** — severity-classified drifted resources
78
134
  - **AI usage tracking** — token counts, costs per request
@@ -88,9 +144,9 @@ thothctl ai-review decide -d ./terraform --pr-number 42 --dry-run
88
144
 
89
145
  - **4 specialized agents**: Security, Architecture, Fix, Decision
90
146
  - **Multi-provider**: OpenAI, AWS Bedrock, Azure OpenAI, Ollama (local)
147
+ - **Two orchestration modes**: parallel agents (ThreadPoolExecutor) and Strands SDK deterministic pipeline
91
148
  - **Auto-decisions** with confidence thresholds and safety controls
92
149
  - **Adaptive memory**: filesystem or S3 (auto-detects runtime)
93
- - **MCP integration** for AI assistant interoperability
94
150
 
95
151
  ### 💰 Cost Analysis & Risk Assessment
96
152
 
@@ -115,20 +171,37 @@ thothctl init project -p my-infra --project-type terraform
115
171
  - **Backstage integration** for self-service consumption
116
172
  - **Template upgrade workflow** to keep projects in sync
117
173
 
174
+ ### 🔌 MCP Integration
175
+
176
+ Model Context Protocol (v2.0+) server exposing ThothCTL as tools for AI assistants:
177
+
178
+ ```bash
179
+ thothctl mcp
180
+ ```
181
+
182
+ - **26 tools exposed** including `generate iac`, `scan iac`, `inventory iac`, and workflow commands
183
+ - **HTTP + stdio** transport modes
184
+ - **Recursion protection** when thothctl is used as an MCP tool inside an agent
185
+
118
186
  ## All Commands
119
187
 
120
188
  | Command | Description |
121
189
  |---------|-------------|
122
- | `scan iac` | Multi-tool security scanning with enforcement |
123
- | `inventory iac` | Infrastructure SBOM with version tracking |
190
+ | `generate iac` | Generate governed IaC from natural language intent |
191
+ | `generate stacks` | Generate infrastructure stacks from configuration |
192
+ | `scan iac` | Multi-tool security scanning with enforcement and platform publishing |
193
+ | `inventory iac` | Infrastructure SBOM with version tracking and SBOM publishing |
124
194
  | `check iac` | Cost analysis, blast radius, drift detection, structure validation |
195
+ | `workflow devsecops` | Orchestrated 7-phase DevSecOps SDLC pipeline |
196
+ | `workflow run` | Execute a custom YAML DAG workflow |
125
197
  | `ai-review` | AI-powered security analysis and PR decisions |
126
198
  | `dashboard launch` | Web dashboard for all reports |
127
199
  | `document iac` | Auto-generate documentation |
128
200
  | `project convert` | Template ↔ project conversion |
129
201
  | `init project` | Scaffold new IaC projects |
130
- | `mcp` | Model Context Protocol server |
131
- | `generate` | Generate IaC from rules and components |
202
+ | `space` | Manage spaces (activate, update, configure conventions) |
203
+ | `quickstart` | Guided onboarding for new projects |
204
+ | `mcp` | Model Context Protocol server (v2.0+) |
132
205
 
133
206
  ## Installation
134
207
 
@@ -159,15 +232,19 @@ devcontainer up --workspace-folder .
159
232
 
160
233
  ## Documentation
161
234
 
162
- 📖 **Full docs**: [thothforge.github.io/thothctl](https://thothforge.github.io/thothctl/)
235
+ 📖 **Full docs**: [thothctl.readthedocs.io](https://thothctl.readthedocs.io/)
163
236
 
237
+ - [What's New](docs/whats_new.md)
164
238
  - [Quick Start](docs/quick_start.md)
239
+ - [Generate IaC (Intent-to-IaC)](docs/framework/commands/generate/generate_iac.md)
165
240
  - [DevSecOps SDLC Guide](docs/framework/use_cases/devsecops_sdlc.md)
241
+ - [Workflow Command](docs/framework/commands/workflow/workflow_overview.md)
166
242
  - [Scan Command Reference](docs/framework/commands/scan/scan_overview.md)
167
243
  - [Inventory & SBOM](docs/framework/commands/inventory/inventory_overview.md)
168
244
  - [Dashboard](docs/dashboard/README.md)
169
245
  - [AI Review](docs/framework/commands/ai-review/README.md)
170
246
  - [Template Engine](docs/template_engine/template_engine.md)
247
+ - [MCP Server](docs/framework/commands/mcp/mcp.md)
171
248
  - [Dev Container Setup](docs/installation/devcontainer_setup.md)
172
249
 
173
250
  ## CI/CD Integration
@@ -183,18 +260,27 @@ devcontainer up --workspace-folder .
183
260
 
184
261
  ## Roadmap
185
262
 
263
+ Shipped:
264
+
186
265
  - [x] Multi-tool security scanning with unified reports
187
266
  - [x] AI Agent for IaC Security (multi-agent, auto-decisions)
188
267
  - [x] CycloneDX 1.6 SBOM with full supply chain metadata
189
268
  - [x] Organization policy engine (OPA/Rego, HCL + CloudFormation)
190
269
  - [x] Web Dashboard with findings viewer and SBOM browser
191
- - [ ] Intent-to-IaC generation (natural language → governed Terraform)
192
- - [ ] Composable workflow engine (declarative YAML DAG pipelines)
270
+ - [x] Intent-to-IaC generation (natural language → governed IaC)
271
+ - [x] Composable workflow engine (declarative YAML DAG pipelines)
272
+ - [x] MCP v2.0 server (HTTP + stdio, 26 tools)
273
+ - [x] Security platform integrations (Dependency-Track, DefectDojo, SecObserve)
274
+ - [x] Kiro CLI provider for tool-augmented generation
275
+
276
+ In progress / planned:
277
+
278
+ - [ ] App-to-Infra inference (generate stacks from application source code)
193
279
  - [ ] Graph-aware state visibility (tfstate → queryable resource graph)
194
- - [ ] Architecture diagram generation (Mermaid/Graphviz from IaC)
195
- - [ ] Strands Agents SDK integration
280
+ - [ ] Continuous reconciliation (align live infra with intent)
281
+ - [ ] Agent governance & MCP gateway
196
282
 
197
- 📖 [Full Roadmap](docs/framework/roadmap_fdi.md)
283
+ 📖 The active planning document is the **2026 Roadmap** (`thothctl_roadmap_2026.md` in the ThothForge root). The [FdI roadmap](docs/framework/roadmap_fdi.md) is preserved for historical context only.
198
284
 
199
285
  ## Contributing
200
286
 
@@ -243,8 +243,17 @@ thothctl ai-review decide \
243
243
  --repository owner/repo \
244
244
  --provider bedrock_agent \
245
245
  --platform github
246
+
247
+ # Restrict what the agent may do with an autonomy level
248
+ thothctl ai-review decide -d ./terraform --pr-number 123 \
249
+ --repository owner/repo --autonomy draft
246
250
  ```
247
251
 
252
+ **Autonomy:** `--autonomy [suggest|draft|validate|execute]` (default `suggest`)
253
+ gates which actions the agent may perform (see
254
+ [Agent Autonomy Levels](#agent-autonomy-levels) below). At `suggest` (Level 1)
255
+ the agent is read-only and cannot post PR decisions.
256
+
248
257
  ### `thothctl ai-review serve`
249
258
 
250
259
  Start the REST API server for CI/CD and external integrations.
@@ -347,6 +356,61 @@ thothctl ai-review override --repository owner/repo --pr-number 42 --action appr
347
356
  thothctl ai-review override --repository owner/repo --pr-number 42 --action approve --publish
348
357
  ```
349
358
 
359
+ ## Agent Autonomy Levels
360
+
361
+ *(v0.28.1+ — Phase 2.5.1)*
362
+
363
+ Autonomy levels are a **graduated trust dial** for the agent, aligned with the
364
+ industry-standard 4 Levels of Agentic Development. Instead of a binary "AI on/off",
365
+ each level defines which actions the agent may perform. The `--autonomy` flag on
366
+ `ai-review decide` selects the level (default `suggest`):
367
+
368
+ | Level | CLI value | Human role | Agent may... |
369
+ |-------|-----------|-----------|-------------|
370
+ | 1 | `suggest` (default) | Execution engine | Analyze, scan, report — **read-only** |
371
+ | 2 | `draft` | Verifier | Post approve/reject/request-changes, create PRs; **not** apply/destroy |
372
+ | 3 | `validate` | Orchestrator | Auto-merge low-risk changes (subject to gates) |
373
+ | 4 | `execute` | System designer | Self-initiate remediation within guardrails (break-glass) |
374
+
375
+ At Level 1 an auto-`approve`/`reject` is blocked by the autonomy gate before any
376
+ other safety check runs, so a `suggest`-level run never posts a PR decision.
377
+
378
+ ### Configuration (`.thothcf.toml`)
379
+
380
+ Levels and their per-level tool allow/deny lists are configurable. If the
381
+ `[agent.autonomy]` table is absent, the agent runs at **Level 1** (safe by default);
382
+ a malformed config never escalates privilege.
383
+
384
+ ```toml
385
+ [agent.autonomy]
386
+ default_level = 1 # 1=suggest 2=draft 3=validate 4=execute
387
+
388
+ [agent.autonomy.levels.2] # Human-on-the-loop
389
+ allowed_tools = ["read-file", "write-file", "scan", "git-commit", "git-push", "create-pr"]
390
+ denied_tools = ["terraform-apply", "terraform-destroy"]
391
+
392
+ [agent.autonomy.levels.3] # Human-as-orchestrator
393
+ allowed_tools = ["*"]
394
+ denied_tools = ["terraform-apply", "terraform-destroy"]
395
+ requires_validation = true
396
+ auto_merge_risk_max = 20 # auto-merge only when risk score <= 20
397
+
398
+ [agent.autonomy.levels.4] # Autonomous
399
+ allowed_tools = ["*"]
400
+ requires_approval = ["named-approver"]
401
+ max_blast_radius = 10 # enforced with the Phase 5 resource graph
402
+ ```
403
+
404
+ **Resolution rules:**
405
+
406
+ - **deny-beats-allow** — a tool in both lists is denied; `"*"` allows everything not explicitly denied.
407
+ - **safe-by-default** — no config → Level 1; parse errors fall back to built-in safe defaults.
408
+ - **action gating** — each action has a minimum level (read-only → 1, PR decisions → 2, auto-merge → 3, apply/destroy → 4).
409
+
410
+ > **Note:** `--autonomy` currently governs the `ai-review decide` action gate. MCP
411
+ > tool-call enforcement (via the MCP Gateway) and Level 3/4 gate wiring land in
412
+ > subsequent Phase 2.5 tasks.
413
+
350
414
  ## AI Providers
351
415
 
352
416
  | Provider | Model | Mode | Use Case |