thothctl 0.18.0__tar.gz → 0.18.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 (506) hide show
  1. {thothctl-0.18.0 → thothctl-0.18.2}/PKG-INFO +1 -1
  2. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/mcp/mcp.md +63 -29
  3. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/space_configuration.md +33 -0
  4. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/space_management.md +16 -0
  5. {thothctl-0.18.0 → thothctl-0.18.2}/docs/mcp.md +123 -86
  6. thothctl-0.18.2/src/thothctl/commands/space/commands/show.py +101 -0
  7. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/space/commands/update.py +11 -4
  8. thothctl-0.18.2/src/thothctl/version.py +2 -0
  9. thothctl-0.18.0/AWS_PRICING_API_FINAL_REPORT.md +0 -245
  10. thothctl-0.18.0/AWS_PRICING_API_IMPLEMENTATION_PLAN.md +0 -565
  11. thothctl-0.18.0/AWS_PRICING_REFACTOR_REPORT.md +0 -141
  12. thothctl-0.18.0/TECHNICAL_DEBT_METRICS.md +0 -124
  13. thothctl-0.18.0/src/thothctl/version.py +0 -2
  14. {thothctl-0.18.0 → thothctl-0.18.2}/.devcontainer/Dockerfile +0 -0
  15. {thothctl-0.18.0 → thothctl-0.18.2}/.devcontainer/README.md +0 -0
  16. {thothctl-0.18.0 → thothctl-0.18.2}/.devcontainer/devcontainer.json +0 -0
  17. {thothctl-0.18.0 → thothctl-0.18.2}/.github/workflows/docs.yml +0 -0
  18. {thothctl-0.18.0 → thothctl-0.18.2}/.github/workflows/python-publish.yml +0 -0
  19. {thothctl-0.18.0 → thothctl-0.18.2}/.gitignore +0 -0
  20. {thothctl-0.18.0 → thothctl-0.18.2}/.pre-commit-config.yaml +0 -0
  21. {thothctl-0.18.0 → thothctl-0.18.2}/.readthedocs.yaml +0 -0
  22. {thothctl-0.18.0 → thothctl-0.18.2}/Dockerfile +0 -0
  23. {thothctl-0.18.0 → thothctl-0.18.2}/LICENSE +0 -0
  24. {thothctl-0.18.0 → thothctl-0.18.2}/README.md +0 -0
  25. {thothctl-0.18.0 → thothctl-0.18.2}/__init__.py +0 -0
  26. {thothctl-0.18.0 → thothctl-0.18.2}/docs/catalog/catalog-info.yaml +0 -0
  27. {thothctl-0.18.0 → thothctl-0.18.2}/docs/dashboard/README.md +0 -0
  28. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/ai-review/README.md +0 -0
  29. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
  30. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/ai-review/agentcore.md +0 -0
  31. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/blast-radius.md +0 -0
  32. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/check_environment.md +0 -0
  33. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/check_iac.md +0 -0
  34. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/check_overview.md +0 -0
  35. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/check_project_iac.md +0 -0
  36. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/check_space.md +0 -0
  37. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
  38. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/cost-analysis.md +0 -0
  39. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/customizing_rules.md +0 -0
  40. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/deps-advanced.md +0 -0
  41. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/deps.md +0 -0
  42. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/drift-detection.md +0 -0
  43. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/check/plan.md +0 -0
  44. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/document/customizing_docs.md +0 -0
  45. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/document/document_iac.md +0 -0
  46. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/document/document_overview.md +0 -0
  47. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/document/iac.md +0 -0
  48. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/document/use_cases.md +0 -0
  49. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/generate/generate_components.md +0 -0
  50. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/generate/generate_stacks.md +0 -0
  51. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/init/init.md +0 -0
  52. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/init/init_space.md +0 -0
  53. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
  54. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
  55. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
  56. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/iac.md +0 -0
  57. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/inventory_iac.md +0 -0
  58. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/inventory/inventory_overview.md +0 -0
  59. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/list/list_overview.md +0 -0
  60. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/list/list_projects.md +0 -0
  61. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/list/list_spaces.md +0 -0
  62. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/iac.md +0 -0
  63. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/project_cleanup.md +0 -0
  64. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/project_convert.md +0 -0
  65. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/project_overview.md +0 -0
  66. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/project_upgrade.md +0 -0
  67. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/project/use_cases.md +0 -0
  68. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/remove/remove_overview.md +0 -0
  69. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/remove/remove_project.md +0 -0
  70. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/remove/remove_space.md +0 -0
  71. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/scan/iac.md +0 -0
  72. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/scan/scan_iac.md +0 -0
  73. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/scan/scan_overview.md +0 -0
  74. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/scan/use_cases.md +0 -0
  75. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
  76. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/concepts.md +0 -0
  77. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/cross_platform_support.md +0 -0
  78. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/framework_architecture.md +0 -0
  79. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/infrasctructure_composition.md +0 -0
  80. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/policy_as_code.md +0 -0
  81. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/roadmap_fdi.md +0 -0
  82. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/software_architecture.md +0 -0
  83. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/README.md +0 -0
  84. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/ai_dlc.md +0 -0
  85. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/check_command.md +0 -0
  86. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
  87. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
  88. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/inventory_command.md +0 -0
  89. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
  90. {thothctl-0.18.0 → thothctl-0.18.2}/docs/framework/use_cases/tasks/create_template.md +0 -0
  91. {thothctl-0.18.0 → thothctl-0.18.2}/docs/iac_devsecops_use_case.md +0 -0
  92. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/automate_tasks_command.png +0 -0
  93. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/commnad_init.png +0 -0
  94. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/create_component.gif +0 -0
  95. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/create_inventory.gif +0 -0
  96. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/doc_command.png +0 -0
  97. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/document_project_code.gif +0 -0
  98. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/framework/thothforge-framework.svg +0 -0
  99. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/framework/thothfr.png +0 -0
  100. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/iacpeerbot_summary.png +0 -0
  101. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/icon-light.png +0 -0
  102. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/icon.png +0 -0
  103. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/init_project.gif +0 -0
  104. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/inventory_command.png +0 -0
  105. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/notification_img.png +0 -0
  106. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/report_dependencies.png +0 -0
  107. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/report_dependencies_summary.png +0 -0
  108. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/restore_inventory_version.gif +0 -0
  109. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/reuse_project_pattern.gif +0 -0
  110. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/scan_code.gif +0 -0
  111. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/scan_command.png +0 -0
  112. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/stable/scan_report_example.png +0 -0
  113. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/sync_wk_command.png +0 -0
  114. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/transform_command.png +0 -0
  115. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/update_inventory_version.gif +0 -0
  116. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/validate_command.png +0 -0
  117. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/validate_environment.gif +0 -0
  118. {thothctl-0.18.0 → thothctl-0.18.2}/docs/img/validate_project.gif +0 -0
  119. {thothctl-0.18.0 → thothctl-0.18.2}/docs/includes/abbreviations.md +0 -0
  120. {thothctl-0.18.0 → thothctl-0.18.2}/docs/index.md +0 -0
  121. {thothctl-0.18.0 → thothctl-0.18.2}/docs/installation/linux_installation.md +0 -0
  122. {thothctl-0.18.0 → thothctl-0.18.2}/docs/installation/windows_installation.md +0 -0
  123. {thothctl-0.18.0 → thothctl-0.18.2}/docs/javascripts/tablesort.js +0 -0
  124. {thothctl-0.18.0 → thothctl-0.18.2}/docs/navigation.md +0 -0
  125. {thothctl-0.18.0 → thothctl-0.18.2}/docs/quick_start.md +0 -0
  126. {thothctl-0.18.0 → thothctl-0.18.2}/docs/requirements.txt +0 -0
  127. {thothctl-0.18.0 → thothctl-0.18.2}/docs/stylesheets/extra-enhanced.css +0 -0
  128. {thothctl-0.18.0 → thothctl-0.18.2}/docs/stylesheets/extra.css +0 -0
  129. {thothctl-0.18.0 → thothctl-0.18.2}/docs/telemetry.md +0 -0
  130. {thothctl-0.18.0 → thothctl-0.18.2}/docs/template_engine/cli_commands_audit.md +0 -0
  131. {thothctl-0.18.0 → thothctl-0.18.2}/docs/template_engine/for_developers.md +0 -0
  132. {thothctl-0.18.0 → thothctl-0.18.2}/docs/template_engine/for_platform_engineers.md +0 -0
  133. {thothctl-0.18.0 → thothctl-0.18.2}/docs/template_engine/github_templates.md +0 -0
  134. {thothctl-0.18.0 → thothctl-0.18.2}/docs/template_engine/template_engine.md +0 -0
  135. {thothctl-0.18.0 → thothctl-0.18.2}/docs/troubleshooting/linux_troubleshooting.md +0 -0
  136. {thothctl-0.18.0 → thothctl-0.18.2}/docs/troubleshooting/macos_troubleshooting.md +0 -0
  137. {thothctl-0.18.0 → thothctl-0.18.2}/docs/troubleshooting/troubleshooting.md +0 -0
  138. {thothctl-0.18.0 → thothctl-0.18.2}/docs/troubleshooting/windows_troubleshooting.md +0 -0
  139. {thothctl-0.18.0 → thothctl-0.18.2}/mkdocs.yaml +0 -0
  140. {thothctl-0.18.0 → thothctl-0.18.2}/pyproject.toml +0 -0
  141. {thothctl-0.18.0 → thothctl-0.18.2}/scripts/run_mcp_server.sh +0 -0
  142. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/__init__.py +0 -0
  143. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/application/__init__.py +0 -0
  144. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/autocomplete.py +0 -0
  145. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/cli.py +0 -0
  146. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/__init__.py +0 -0
  147. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/__init__.py +0 -0
  148. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/cli.py +0 -0
  149. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
  150. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
  151. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
  152. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
  153. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
  154. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
  155. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/history.py +0 -0
  156. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
  157. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
  158. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/override.py +0 -0
  159. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/report.py +0 -0
  160. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
  161. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/__init__.py +0 -0
  162. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/cli.py +0 -0
  163. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/__init__.py +0 -0
  164. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/environment.py +0 -0
  165. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/iac.py +0 -0
  166. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
  167. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/project/iac.py +0 -0
  168. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/check/commands/project.py +0 -0
  169. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/dashboard/__init__.py +0 -0
  170. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/dashboard/cli.py +0 -0
  171. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
  172. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
  173. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/document/__init__.py +0 -0
  174. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/document/cli.py +0 -0
  175. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/document/commands/__init__.py +0 -0
  176. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/document/commands/iac.py +0 -0
  177. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/generate/__init__.py +0 -0
  178. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/generate/cli.py +0 -0
  179. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/generate/commands/__init__.py +0 -0
  180. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/generate/commands/component.py +0 -0
  181. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/generate/commands/stacks.py +0 -0
  182. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/__init__.py +0 -0
  183. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/cli.py +0 -0
  184. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/commands/__init__.py +0 -0
  185. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/commands/env.py +0 -0
  186. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/commands/project.py +0 -0
  187. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/commands/space.py +0 -0
  188. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/init/commands/template.py +0 -0
  189. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/inventory/__init__.py +0 -0
  190. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/inventory/cli.py +0 -0
  191. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
  192. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/inventory/commands/check.py +0 -0
  193. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/inventory/commands/iac.py +0 -0
  194. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/list/__init__.py +0 -0
  195. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/list/cli.py +0 -0
  196. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/list/commands/__init__.py +0 -0
  197. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/list/commands/projects.py +0 -0
  198. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/list/commands/spaces.py +0 -0
  199. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/__init__.py +0 -0
  200. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/cli.py +0 -0
  201. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
  202. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/commands/register.py +0 -0
  203. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/commands/server.py +0 -0
  204. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/commands/status.py +0 -0
  205. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/mcp/commands/stop.py +0 -0
  206. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/__init__.py +0 -0
  207. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/cli.py +0 -0
  208. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/commands/__init__.py +0 -0
  209. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
  210. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/commands/cleanup.py +0 -0
  211. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/commands/convert.py +0 -0
  212. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/project/commands/upgrade.py +0 -0
  213. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/remove/__init__.py +0 -0
  214. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/remove/cli.py +0 -0
  215. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/remove/project.py +0 -0
  216. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/remove/space.py +0 -0
  217. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/scan/__init__.py +0 -0
  218. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/scan/cli.py +0 -0
  219. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/scan/commands/__init__.py +0 -0
  220. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/scan/commands/iac.py +0 -0
  221. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/space/__init__.py +0 -0
  222. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/space/cli.py +0 -0
  223. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/space/commands/__init__.py +0 -0
  224. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/space/commands/activate.py +0 -0
  225. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/commands/upgrade/cli.py +0 -0
  226. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/.thothcf.setup.toml +0 -0
  227. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/.thothcf_home.toml +0 -0
  228. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/.thothcf_module.toml +0 -0
  229. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/.thothcf_project.toml +0 -0
  230. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
  231. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/__init__.py +0 -0
  232. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/common.py +0 -0
  233. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
  234. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/__init__.py +0 -0
  235. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/constants.py +0 -0
  236. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/default_values.py +0 -0
  237. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/defaults.py +0 -0
  238. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/models.py +0 -0
  239. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/settings.py +0 -0
  240. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/template_config.py +0 -0
  241. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/template_configs.py +0 -0
  242. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/templates.py +0 -0
  243. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/config/validation.py +0 -0
  244. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/__init__.py +0 -0
  245. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/cli_ui.py +0 -0
  246. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/commands.py +0 -0
  247. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/config.py +0 -0
  248. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/__init__.py +0 -0
  249. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
  250. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
  251. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
  252. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/github/get_github.py +0 -0
  253. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
  254. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
  255. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
  256. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
  257. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/pattern_names.py +0 -0
  258. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
  259. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
  260. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/logger.py +0 -0
  261. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/telemetry.py +0 -0
  262. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/core/version_tools.py +0 -0
  263. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/domain/__init__.py +0 -0
  264. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/domain/interfaces/__init__.py +0 -0
  265. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/domain/models/__init__.py +0 -0
  266. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/mcp/README.md +0 -0
  267. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/mcp/__init__.py +0 -0
  268. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/mcp/server.py +0 -0
  269. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/__init__.py +0 -0
  270. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/__init__.py +0 -0
  271. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
  272. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/ai_agent.py +0 -0
  273. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
  274. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
  275. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
  276. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
  277. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
  278. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
  279. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/config/__init__.py +0 -0
  280. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
  281. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
  282. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/decision_engine.py +0 -0
  283. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/main.py +0 -0
  284. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/memory.py +0 -0
  285. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/orchestrator.py +0 -0
  286. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
  287. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
  288. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
  289. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
  290. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
  291. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
  292. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
  293. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
  294. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
  295. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/strands_agent.py +0 -0
  296. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/tracing.py +0 -0
  297. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
  298. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
  299. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
  300. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
  301. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
  302. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
  303. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/__init__.py +0 -0
  304. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/environment/__init__.py +0 -0
  305. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/environment/check_environment.py +0 -0
  306. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/org_policy_loader.py +0 -0
  307. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/__init__.py +0 -0
  308. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
  309. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/check_origin_version.py +0 -0
  310. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/check_project_structure.py +0 -0
  311. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/__init__.py +0 -0
  312. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
  313. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
  314. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
  315. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
  316. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
  317. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
  318. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
  319. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
  320. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
  321. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
  322. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
  323. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
  324. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
  325. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
  326. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
  327. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
  328. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
  329. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
  330. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
  331. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
  332. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
  333. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
  334. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
  335. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
  336. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
  337. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
  338. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
  339. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/__init__.py +0 -0
  340. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
  341. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
  342. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
  343. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
  344. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
  345. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/drift/models.py +0 -0
  346. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/risk_assessment.py +0 -0
  347. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
  348. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/rule_merger.py +0 -0
  349. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
  350. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/dashboard/__init__.py +0 -0
  351. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
  352. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/dashboard/data_loader.py +0 -0
  353. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/__init__.py +0 -0
  354. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/create_documentation.py +0 -0
  355. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/files_content.py +0 -0
  356. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/files_scan.py +0 -0
  357. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/iac_documentation.py +0 -0
  358. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
  359. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/document/iac_grunt_info.py +0 -0
  360. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/__init__.py +0 -0
  361. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
  362. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
  363. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
  364. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
  365. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
  366. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/__init__.py +0 -0
  367. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/config.yaml +0 -0
  368. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/create_code.py +0 -0
  369. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/create_component.py +0 -0
  370. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
  371. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
  372. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/create_template.py +0 -0
  373. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/files_content.py +0 -0
  374. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
  375. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
  376. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/__init__.py +0 -0
  377. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/environment/__init__.py +0 -0
  378. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/environment/install_tools.py +0 -0
  379. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/project/__init__.py +0 -0
  380. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/project/project.py +0 -0
  381. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/space/__init__.py +0 -0
  382. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/space/example_space.toml +0 -0
  383. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/space/local_registry.py +0 -0
  384. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/init/space/space.py +0 -0
  385. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/__init__.py +0 -0
  386. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/changelog_parser.py +0 -0
  387. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/inventory_service.py +0 -0
  388. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/models.py +0 -0
  389. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
  390. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/report_service.py +0 -0
  391. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
  392. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
  393. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/update_versions.py +0 -0
  394. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/inventory/version_service.py +0 -0
  395. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/mcp/README.md +0 -0
  396. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/mcp/__init__.py +0 -0
  397. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/mcp/simple_http_server.py +0 -0
  398. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/mcp/stdio_server.py +0 -0
  399. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/__init__.py +0 -0
  400. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
  401. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
  402. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/cleanup/__init__.py +0 -0
  403. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
  404. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
  405. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/__init__.py +0 -0
  406. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/conversion_service.py +0 -0
  407. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/get_project_data.py +0 -0
  408. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/post_init.py +0 -0
  409. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/project_converter.py +0 -0
  410. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/project_defaults.py +0 -0
  411. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
  412. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
  413. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
  414. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
  415. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
  416. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/upgrade/__init__.py +0 -0
  417. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
  418. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/__init__.py +0 -0
  419. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/compliance_review.py +0 -0
  420. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/import_reports.py +0 -0
  421. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/models.py +0 -0
  422. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/report_parser.py +0 -0
  423. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/sarif_output.py +0 -0
  424. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scan_history.py +0 -0
  425. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scan_service.py +0 -0
  426. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/__init__.py +0 -0
  427. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/checkov.py +0 -0
  428. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/kics.py +0 -0
  429. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/opa.py +0 -0
  430. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
  431. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/scanners.py +0 -0
  432. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
  433. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
  434. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/services/scan/scanners/trivy.py +0 -0
  435. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/templates/reports/inventory_report.html +0 -0
  436. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/templates/reports/inventory_report.js +0 -0
  437. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/templates/unified_report_styles.css +0 -0
  438. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/__init__.py +0 -0
  439. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/banner.py +0 -0
  440. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/__init__.py +0 -0
  441. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
  442. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/create_html_reports.py +0 -0
  443. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/delete_directory.py +0 -0
  444. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/fix_report_styling.py +0 -0
  445. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/render_scan_report.py +0 -0
  446. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/report_html_utils.py +0 -0
  447. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/dashboard.html +0 -0
  448. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/index_report.html +0 -0
  449. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/individual_report.html +0 -0
  450. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/simple_report.html +0 -0
  451. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
  452. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
  453. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
  454. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
  455. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/crypto.py +0 -0
  456. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
  457. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
  458. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/modules_ops/__init__.py +0 -0
  459. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
  460. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
  461. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/platform_utils.py +0 -0
  462. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/__init__.py +0 -0
  463. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
  464. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
  465. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
  466. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
  467. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
  468. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
  469. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
  470. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
  471. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/template_loader.py +0 -0
  472. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/utils/thoth_colors.py +0 -0
  473. {thothctl-0.18.0 → thothctl-0.18.2}/src/thothctl/wellcome_banner.py +0 -0
  474. {thothctl-0.18.0 → thothctl-0.18.2}/tests/conftest.py +0 -0
  475. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_agentcore_entrypoint.py +0 -0
  476. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_aws_pricing_client.py +0 -0
  477. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_azure_devops_pr_comments.py +0 -0
  478. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_bedrock_pricing.py +0 -0
  479. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_cdk_language_selection.py +0 -0
  480. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_context_steering.py +0 -0
  481. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_cost_analyzer.py +0 -0
  482. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_cost_models.py +0 -0
  483. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_cost_pr_comments.py +0 -0
  484. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_dashboard_loading_fix.py +0 -0
  485. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_dashboard_service.py +0 -0
  486. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_drift.py +0 -0
  487. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_drift_detection.py +0 -0
  488. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_ec2_pricing.py +0 -0
  489. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_github_pr_comments.py +0 -0
  490. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_iac_cost_integration.py +0 -0
  491. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_inventory_pr_comments.py +0 -0
  492. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_kics_scanner.py +0 -0
  493. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_mermaid_edge_labels.py +0 -0
  494. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_new_cost_providers.py +0 -0
  495. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_parallel_scan.py +0 -0
  496. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_platform_utils.py +0 -0
  497. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_pr_comment_publisher.py +0 -0
  498. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_provider_source_url_fix.py +0 -0
  499. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_provider_versions.py +0 -0
  500. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_scan_pr_comments.py +0 -0
  501. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_space_command.py +0 -0
  502. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_space_management.py +0 -0
  503. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_stack_optimizer.py +0 -0
  504. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_template_url_fix.py +0 -0
  505. {thothctl-0.18.0 → thothctl-0.18.2}/tests/test_terragrunt_parser.py +0 -0
  506. {thothctl-0.18.0 → thothctl-0.18.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thothctl
3
- Version: 0.18.0
3
+ Version: 0.18.2
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
@@ -123,38 +123,61 @@ Check the status of the MCP server on a custom port:
123
123
  thothctl mcp status --port 9090
124
124
  ```
125
125
 
126
- ## Available Tools
126
+ ## Available Tools (22)
127
127
 
128
128
  The MCP server exposes the following ThothCTL commands as tools for AI assistants:
129
129
 
130
130
  ### Project Management
131
- - `thothctl_init_project` - Initialize and setup project configurations
132
- - Supports project types: `terraform`, `tofu`, `cdkv2`, `terraform_module`, `terragrunt`, `custom`
133
- - Can be associated with spaces for consistent configuration
134
- - Supports batch mode for automated workflows
135
- - `thothctl_remove_project` - Remove a project managed by thothctl
136
- - `thothctl_get_projects` - Get list of projects managed by thothctl
131
+ | Tool | Description |
132
+ |------|-------------|
133
+ | `thothctl_init_project` | Initialize a new project (terraform, tofu, cdkv2, terragrunt, custom) |
134
+ | `thothctl_remove_project` | Remove a project from local tracking |
135
+ | `thothctl_list_projects` | List all projects managed by thothctl |
136
+ | `thothctl_project_bootstrap` | Bootstrap existing projects with ThothCTL support |
137
+ | `thothctl_project_cleanup` | Clean up residual files and directories |
138
+ | `thothctl_project_convert` | Convert project to template or between formats |
139
+ | `thothctl_project_upgrade` | Upgrade project scaffold from remote template |
137
140
 
138
141
  ### Space Management
139
- - `thothctl_init_space` - Initialize and setup space configurations
140
- - `thothctl_remove_space` - Remove a space managed by thothctl
141
- - `thothctl_get_spaces` - Get list of spaces managed by thothctl
142
- - `thothctl_get_projects_in_space` - Get list of projects in a specific space
143
-
144
- ### Listing
145
- - `thothctl_list_projects` - List projects managed by thothctl locally
146
- - `thothctl_list_spaces` - List spaces managed by thothctl locally
147
-
148
- ### Infrastructure Management
149
- - `thothctl_scan` - Scan infrastructure code for security issues
150
- - `thothctl_inventory` - Create Inventory for the iac composition
151
- - `thothctl_generate` - Generate IaC from rules, use cases, and components
152
- - `thothctl_document` - Initialize and setup project documentation
153
- - `thothctl_check` - Check infrastructure code for compliance
154
- - `thothctl_project` - Convert, clean up and manage the current project
142
+ | Tool | Description |
143
+ |------|-------------|
144
+ | `thothctl_init_space` | Initialize a new space |
145
+ | `thothctl_remove_space` | Remove a space |
146
+ | `thothctl_list_spaces` | List all spaces |
147
+ | `thothctl_get_projects_in_space` | Get projects in a specific space |
148
+ | `thothctl_list_templates` | List available templates from VCS providers |
149
+
150
+ ### Security & Compliance
151
+ | Tool | Description |
152
+ |------|-------------|
153
+ | `thothctl_scan_iac` | Scan IaC for security issues (Checkov, Trivy, KICS, OPA) |
154
+ | `thothctl_check_environment` | Check development environment tools |
155
+ | `thothctl_check_iac` | Check IaC artifacts (plans, structure) |
156
+ | `thothctl_check_project` | Validate project structure |
157
+
158
+ ### Cost & Drift Analysis
159
+ | Tool | Description |
160
+ |------|-------------|
161
+ | `thothctl_cost_analysis` | Estimate AWS costs from Terraform plans or CloudFormation templates |
162
+ | `thothctl_drift_detection` | Detect infrastructure drift with tag filtering, policy enforcement, and AI analysis |
163
+
164
+ ### AI-Powered Review
165
+ | Tool | Description |
166
+ |------|-------------|
167
+ | `thothctl_ai_review` | Multi-mode AI security analysis: analyze, decide, improve, orchestrate |
168
+
169
+ ### Infrastructure Tooling
170
+ | Tool | Description |
171
+ |------|-------------|
172
+ | `thothctl_inventory_iac` | Create IaC composition inventory |
173
+ | `thothctl_document_iac` | Generate documentation for IaC projects |
174
+ | `thothctl_generate_stacks` | Generate infrastructure stacks |
155
175
 
156
176
  ### Utility
157
- - `thothctl_version` - Get ThothCTL version
177
+ | Tool | Description |
178
+ |------|-------------|
179
+ | `thothctl_version` | Get ThothCTL version |
180
+ | `thothctl_upgrade` | Upgrade thothctl to latest version |
158
181
 
159
182
  ## Integration with Amazon Q
160
183
 
@@ -284,12 +307,23 @@ q mcp add --name thothctl --command "thothctl" --args "mcp" --args "server" --ar
284
307
 
285
308
  ## Architecture
286
309
 
287
- The MCP server follows the HTTP-based MCP protocol:
310
+ ThothCTL MCP exposes two server modes:
288
311
 
289
- 1. The LLM requests available tools via a POST to `/tools`
290
- 2. The server responds with a list of available tools and their parameters
291
- 3. The LLM executes a tool via a POST to `/execute` with the tool name and parameters
292
- 4. The server executes the corresponding ThothCTL command and returns the results
312
+ ```
313
+ src/thothctl/services/mcp/
314
+ ├── stdio_server.py ← stdio mode (Kiro, Amazon Q, Claude Code, Copilot)
315
+ └── simple_http_server.py ← HTTP mode (network integrations, CI/CD)
316
+ ```
317
+
318
+ **Stdio mode** (`thothctl mcp server --stdio`):
319
+ - Used by AI coding assistants via MCP protocol over stdin/stdout
320
+ - Each tool maps to a subprocess call to the thothctl CLI
321
+ - 22 tools at full feature parity
322
+
323
+ **HTTP mode** (`thothctl mcp server -p 8080`):
324
+ - REST endpoints: `GET /tools`, `POST /execute`, `GET /health`
325
+ - CORS-enabled for browser/network integrations
326
+ - Same 22 tools via subprocess execution
293
327
 
294
328
  ## Security Considerations
295
329
 
@@ -80,6 +80,39 @@ You can list all available spaces using the `thothctl list spaces` command:
80
80
  thothctl list spaces
81
81
  ```
82
82
 
83
+ ### Showing Space Details
84
+
85
+ View the full configuration summary of a space:
86
+
87
+ ```bash
88
+ thothctl space show my-space
89
+ ```
90
+
91
+ This displays:
92
+ - Space name, description, status (active/inactive), and creation date
93
+ - Version control provider
94
+ - Terraform registry and authentication method
95
+ - Orchestration tool
96
+ - Governance policy repository (if configured)
97
+ - Associated projects
98
+ - Credentials status
99
+
100
+ ### Activating a Space
101
+
102
+ Set a space as the active context (used as default for new projects):
103
+
104
+ ```bash
105
+ thothctl space activate my-space
106
+ ```
107
+
108
+ ### Updating a Space
109
+
110
+ Update an existing space's configuration:
111
+
112
+ ```bash
113
+ thothctl space update my-space --vcs-provider github --orchestration-tool terragrunt
114
+ ```
115
+
83
116
  ### Deleting a Space
84
117
 
85
118
  You can delete a space using the `thothctl remove space` command:
@@ -60,6 +60,14 @@ Usage: thothctl list spaces
60
60
  List all spaces managed by thothctl
61
61
  ```
62
62
 
63
+ ### Show Space Configuration
64
+
65
+ ```
66
+ Usage: thothctl space show SPACE_NAME
67
+
68
+ Show space configuration summary
69
+ ```
70
+
63
71
  ### List Projects with Space Information
64
72
 
65
73
  ```
@@ -97,6 +105,14 @@ thothctl list spaces
97
105
 
98
106
  This displays a list of all spaces with their project counts.
99
107
 
108
+ ### Showing Space Configuration
109
+
110
+ ```bash
111
+ thothctl space show platform-team
112
+ ```
113
+
114
+ This displays a full summary of the space including VCS provider, Terraform registry, orchestration tool, governance policies, associated projects, and credentials status.
115
+
100
116
  ### Listing Projects with Space Information
101
117
 
102
118
  ```bash
@@ -126,104 +126,141 @@ With the MCP server running and registered with Amazon Q, you can use natural la
126
126
  - "Initialize a new project with ThothCTL"
127
127
  - "Detect drift in my production infrastructure filtered by env=prod"
128
128
  - "Check if my terraform code has drifted and analyze the risk with AI"
129
- ## Available Tools
129
+ ## Available Tools (22)
130
130
 
131
131
  The MCP server exposes the following ThothCTL commands as tools:
132
132
 
133
133
  ### Project Management
134
- - `thothctl_init_project` - Initialize and setup project configurations
135
- - `thothctl_remove_project` - Remove a project managed by thothctl
136
- - `thothctl_get_projects` - Get list of projects managed by thothctl
134
+ | Tool | Description |
135
+ |------|-------------|
136
+ | `thothctl_init_project` | Initialize a new project (terraform, tofu, cdkv2, terragrunt, custom) |
137
+ | `thothctl_remove_project` | Remove a project from local tracking |
138
+ | `thothctl_list_projects` | List all projects managed by thothctl |
139
+ | `thothctl_project_bootstrap` | Bootstrap existing projects with ThothCTL support |
140
+ | `thothctl_project_cleanup` | Clean up residual files and directories |
141
+ | `thothctl_project_convert` | Convert project to template or between formats |
142
+ | `thothctl_project_upgrade` | Upgrade project scaffold from remote template |
137
143
 
138
144
  ### Space Management
139
- - `thothctl_init_space` - Initialize and setup space configurations
140
- - `thothctl_remove_space` - Remove a space managed by thothctl
141
- - `thothctl_get_spaces` - Get list of spaces managed by thothctl
142
- - `thothctl_get_projects_in_space` - Get list of projects in a specific space
143
-
144
- ### Listing
145
- - `thothctl_list_projects` - List projects managed by thothctl locally
146
- - `thothctl_list_spaces` - List spaces managed by thothctl locally
147
-
148
- ### Infrastructure Management
149
- - `thothctl_scan` - Scan infrastructure code for security issues
150
- - `thothctl_inventory` - Create Inventory for the iac composition
151
- - `thothctl_generate` - Generate IaC from rules, use cases, and components
152
- - `thothctl_document` - Initialize and setup project documentation
153
- - `thothctl_check` - Check infrastructure code for compliance
154
- - `thothctl_project` - Convert, clean up and manage the current project
155
-
156
- ### Drift Detection
157
- - `thothctl_drift_detection` - Detect infrastructure drift with tag filtering, policy enforcement, coverage trending, and AI analysis
158
-
159
- **Parameters:**
160
- ```json
161
- {
162
- "directory": "./terraform",
163
- "recursive": true,
164
- "tftool": "tofu",
165
- "filter_tags": "env=prod,team=platform",
166
- "ai_provider": "ollama",
167
- "ai_model": "llama3",
168
- "project_name": "my-infra"
169
- }
170
- ```
171
-
172
- | Parameter | Type | Default | Description |
173
- |-----------|------|---------|-------------|
174
- | `directory` | string | `"."` | Path to IaC directory |
175
- | `recursive` | bool | `false` | Scan subdirectories |
176
- | `tftool` | string | `"tofu"` | `terraform` or `tofu` |
177
- | `filter_tags` | string | `null` | Filter by tags: `env=prod,team=*` |
178
- | `ai_provider` | string | `null` | AI provider: `openai`, `bedrock`, `azure`, `ollama` |
179
- | `ai_model` | string | `null` | Model override: `gpt-4`, `llama3` |
180
- | `project_name` | string | `null` | Project name for history tracking |
181
-
182
- **Response includes:**
183
- - Drift summary with drifted resources, severity, and tags
184
- - Policy evaluation (blocked, ignored, auto-accepted resources)
185
- - Coverage trend (improving/degrading/stable with delta)
186
- - AI analysis with risk score and recommendations (when `ai_provider` is set)
187
-
188
- For full documentation, see the [Drift Detection Documentation](./framework/commands/check/drift-detection.md).
145
+ | Tool | Description |
146
+ |------|-------------|
147
+ | `thothctl_init_space` | Initialize a new space |
148
+ | `thothctl_remove_space` | Remove a space |
149
+ | `thothctl_list_spaces` | List all spaces |
150
+ | `thothctl_get_projects_in_space` | Get projects in a specific space |
151
+
152
+ ### Security & Compliance
153
+ | Tool | Description |
154
+ |------|-------------|
155
+ | `thothctl_scan_iac` | Scan IaC for security issues (Checkov, Trivy, KICS, OPA) |
156
+ | `thothctl_check_environment` | Check development environment tools |
157
+ | `thothctl_check_iac` | Check IaC artifacts (plans, structure) |
158
+ | `thothctl_check_project` | Validate project structure |
159
+
160
+ ### Cost & Drift Analysis
161
+ | Tool | Description |
162
+ |------|-------------|
163
+ | `thothctl_cost_analysis` | Estimate AWS costs from Terraform plans or CloudFormation templates |
164
+ | `thothctl_drift_detection` | Detect infrastructure drift with tag filtering, policy enforcement, and AI analysis |
165
+
166
+ ### AI-Powered Review
167
+ | Tool | Description |
168
+ |------|-------------|
169
+ | `thothctl_ai_review` | Multi-mode AI security analysis: analyze, decide, improve, orchestrate |
170
+
171
+ ### Infrastructure Tooling
172
+ | Tool | Description |
173
+ |------|-------------|
174
+ | `thothctl_inventory_iac` | Create IaC composition inventory |
175
+ | `thothctl_document_iac` | Generate documentation for IaC projects |
176
+ | `thothctl_generate_stacks` | Generate infrastructure stacks |
177
+ | `thothctl_list_templates` | List available templates from VCS providers |
189
178
 
190
179
  ### Utility
191
- - `thothctl_version` - Get ThothCTL version
192
-
193
- ### AI Review
194
- - `thothctl_ai_review` - AI-powered security analysis and code review for IaC
195
-
196
- **Modes:**
197
- | Mode | Description |
198
- |------|-------------|
199
- | `analyze` | Run AI security analysis on scan results or directory |
200
- | `decide` | Auto-decide on a PR (approve/reject/request-changes) |
201
- | `improve` | Generate actionable code fixes for findings |
202
- | `orchestrate` | Run multiple specialized agents in parallel |
203
-
204
- **Parameters:**
205
- ```json
206
- {
207
- "directory": "./terraform",
208
- "provider": "bedrock_agent",
209
- "model": "anthropic.claude-sonnet-4-20250514",
210
- "mode": "analyze",
211
- "scan_results": "./Reports",
212
- "severity": "high",
213
- "agents": ["security", "architecture", "fix", "decision"]
214
- }
215
- ```
216
-
217
- For full documentation, see the [AI Agent Documentation](./framework/commands/ai-review/README.md).
180
+ | Tool | Description |
181
+ |------|-------------|
182
+ | `thothctl_version` | Get ThothCTL version |
183
+ | `thothctl_upgrade` | Upgrade thothctl to latest version |
184
+
185
+ ---
186
+
187
+ ### Tool Details
188
+
189
+ #### `thothctl_cost_analysis`
190
+
191
+ Estimate AWS infrastructure costs from Terraform plans or CloudFormation templates.
192
+
193
+ ```json
194
+ {
195
+ "recursive": true
196
+ }
197
+ ```
198
+
199
+ | Parameter | Type | Default | Description |
200
+ |-----------|------|---------|-------------|
201
+ | `recursive` | bool | `false` | Search recursively for plan files |
202
+
203
+ #### `thothctl_drift_detection`
204
+
205
+ Detect infrastructure drift with tag filtering, policy enforcement, coverage trending, and AI-powered analysis.
206
+
207
+ ```json
208
+ {
209
+ "recursive": true,
210
+ "tftool": "tofu",
211
+ "filter_tags": "env=prod,team=platform",
212
+ "ai_provider": "ollama",
213
+ "ai_model": "llama3"
214
+ }
215
+ ```
216
+
217
+ | Parameter | Type | Default | Description |
218
+ |-----------|------|---------|-------------|
219
+ | `recursive` | bool | `false` | Scan subdirectories |
220
+ | `tftool` | string | `"tofu"` | `terraform` or `tofu` |
221
+ | `filter_tags` | string | `null` | Filter by tags: `env=prod,team=*` |
222
+ | `ai_provider` | string | `null` | AI provider: `openai`, `bedrock`, `azure`, `ollama` |
223
+ | `ai_model` | string | `null` | Model override: `gpt-4`, `llama3` |
224
+
225
+ #### `thothctl_ai_review`
226
+
227
+ AI-powered security analysis and code review for Infrastructure as Code.
228
+
229
+ ```json
230
+ {
231
+ "provider": "ollama",
232
+ "mode": "analyze",
233
+ "severity": "high",
234
+ "agents": ["security", "architecture", "fix"]
235
+ }
236
+ ```
237
+
238
+ | Parameter | Type | Default | Description |
239
+ |-----------|------|---------|-------------|
240
+ | `provider` | string | — | `openai`, `bedrock`, `azure`, `ollama` |
241
+ | `mode` | string | `"analyze"` | `analyze`, `decide`, `improve`, `orchestrate` |
242
+ | `severity` | string | — | Min severity for fix generation (improve mode) |
243
+ | `agents` | array | all | Agents to run in orchestrate mode |
218
244
 
219
245
  ## Architecture
220
246
 
221
- The MCP server follows the HTTP-based MCP protocol:
247
+ ThothCTL MCP exposes two server modes:
248
+
249
+ ```
250
+ src/thothctl/services/mcp/
251
+ ├── stdio_server.py ← stdio mode (Kiro, Amazon Q, Claude Code, Copilot)
252
+ └── simple_http_server.py ← HTTP mode (network integrations, CI/CD)
253
+ ```
254
+
255
+ **Stdio mode** (`thothctl mcp server --stdio`):
256
+ - Used by AI coding assistants via MCP protocol over stdin/stdout
257
+ - Each tool maps to a subprocess call to the thothctl CLI
258
+ - 22 tools at full feature parity
222
259
 
223
- 1. The LLM requests available tools via a POST to `/tools`
224
- 2. The server responds with a list of available tools and their parameters
225
- 3. The LLM executes a tool via a POST to `/execute` with the tool name and parameters
226
- 4. The server executes the corresponding ThothCTL command and returns the results
260
+ **HTTP mode** (`thothctl mcp server -p 8080`):
261
+ - REST endpoints: `GET /tools`, `POST /execute`, `GET /health`
262
+ - CORS-enabled for browser/network integrations
263
+ - Same 22 tools via subprocess execution
227
264
 
228
265
  ## Space Management
229
266
 
@@ -0,0 +1,101 @@
1
+ """Show space configuration summary."""
2
+ from pathlib import Path
3
+
4
+ import click
5
+ import toml
6
+ from rich.console import Console
7
+ from rich.panel import Panel
8
+ from rich.table import Table
9
+ from rich import box
10
+
11
+ from ....common.common import list_spaces, get_projects_in_space
12
+ from ....core.commands import ClickCommand
13
+ from ....core.cli_ui import CliUI
14
+
15
+
16
+ ACTIVE_SPACE_FILE = Path.home() / ".thothcf" / "active_space"
17
+
18
+
19
+ class ShowSpaceCommand(ClickCommand):
20
+ """Command to display a space's full configuration summary."""
21
+
22
+ def __init__(self):
23
+ super().__init__()
24
+ self.ui = CliUI()
25
+ self.console = Console()
26
+
27
+ def validate(self, space_name: str, **kwargs) -> bool:
28
+ spaces = list_spaces()
29
+ if space_name not in spaces:
30
+ self.ui.print_error(f"Space '{space_name}' does not exist")
31
+ self.ui.print_info(f"Available spaces: {', '.join(spaces) if spaces else 'none'}")
32
+ raise ValueError(f"Space '{space_name}' does not exist")
33
+ return True
34
+
35
+ def _execute(self, space_name: str, **kwargs) -> None:
36
+ config_path = Path.home() / ".thothcf" / "spaces.toml"
37
+ config = toml.load(config_path)
38
+ space = config["spaces"][space_name]
39
+
40
+ # Check if this is the active space
41
+ active_space = ""
42
+ if ACTIVE_SPACE_FILE.exists():
43
+ active_space = ACTIVE_SPACE_FILE.read_text(encoding="utf-8").strip()
44
+ is_active = space_name == active_space
45
+
46
+ # Header
47
+ status = "🟢 ACTIVE" if is_active else "⚪ INACTIVE"
48
+ self.console.print(Panel(
49
+ f"[bold]{space.get('name', space_name)}[/bold] — {space.get('description', 'No description')}\n"
50
+ f"Status: {status} | Created: {space.get('created_at', 'unknown')[:10]}",
51
+ title="🌐 Space Configuration",
52
+ border_style="cyan",
53
+ ))
54
+
55
+ # Configuration table
56
+ table = Table(box=box.ROUNDED, show_header=True, header_style="bold cyan")
57
+ table.add_column("Section", style="bold")
58
+ table.add_column("Setting")
59
+ table.add_column("Value")
60
+
61
+ # VCS
62
+ vcs = space.get("version_control", {})
63
+ table.add_row("Version Control", "Provider", vcs.get("provider", "—"))
64
+
65
+ # Terraform
66
+ tf = space.get("terraform", {})
67
+ table.add_row("Terraform", "Registry", tf.get("registry", "—"))
68
+ table.add_row("", "Auth Method", tf.get("auth_method", "—"))
69
+
70
+ # Orchestration
71
+ orch = space.get("orchestration", {})
72
+ table.add_row("Orchestration", "Tool", orch.get("tool", "—"))
73
+
74
+ # Governance
75
+ gov = space.get("governance", {})
76
+ if gov:
77
+ table.add_row("Governance", "Policy Repo", gov.get("policy_repo", "—"))
78
+
79
+ self.console.print(table)
80
+
81
+ # Projects in this space
82
+ projects = get_projects_in_space(space_name)
83
+ if projects:
84
+ self.console.print(f"\n[bold]📦 Projects ({len(projects)}):[/bold]")
85
+ for p in projects:
86
+ self.console.print(f" • {p}")
87
+ else:
88
+ self.console.print("\n[dim]No projects in this space.[/dim]")
89
+
90
+ # Credentials status
91
+ creds_path = Path.home() / ".thothcf" / "spaces" / space_name / "credentials"
92
+ if creds_path.exists():
93
+ cred_files = list(creds_path.iterdir())
94
+ self.console.print(f"\n[bold]🔒 Credentials:[/bold] {len(cred_files)} stored (encrypted)")
95
+ else:
96
+ self.console.print("\n[dim]🔒 No credentials configured.[/dim]")
97
+
98
+
99
+ cli = ShowSpaceCommand.as_click_command(help="Show space configuration summary")(
100
+ click.argument("space_name"),
101
+ )
@@ -17,15 +17,15 @@ class UpdateSpaceCommand(ClickCommand):
17
17
  super().__init__()
18
18
  self.ui = CliUI()
19
19
 
20
- def validate(self, space_name: str, description, vcs_provider, orchestration_tool, terraform_registry, **kwargs) -> bool:
20
+ def validate(self, space_name: str, description, vcs_provider, orchestration_tool, terraform_registry, policy_repo, **kwargs) -> bool:
21
21
  spaces = list_spaces()
22
22
  if space_name not in spaces:
23
23
  raise ValueError(f"Space '{space_name}' does not exist")
24
- if not any([description, vcs_provider, orchestration_tool, terraform_registry]):
25
- raise ValueError("Provide at least one option to update (--description, --vcs-provider, --orchestration-tool, --terraform-registry)")
24
+ if not any([description, vcs_provider, orchestration_tool, terraform_registry, policy_repo]):
25
+ raise ValueError("Provide at least one option to update (--description, --vcs-provider, --orchestration-tool, --terraform-registry, --policy-repo)")
26
26
  return True
27
27
 
28
- def _execute(self, space_name: str, description, vcs_provider, orchestration_tool, terraform_registry, **kwargs) -> None:
28
+ def _execute(self, space_name: str, description, vcs_provider, orchestration_tool, terraform_registry, policy_repo, **kwargs) -> None:
29
29
  config_path = Path.home() / ".thothcf" / "spaces.toml"
30
30
  with open(config_path, mode="rt", encoding="utf-8") as fp:
31
31
  config = toml.load(fp)
@@ -40,6 +40,8 @@ class UpdateSpaceCommand(ClickCommand):
40
40
  space.setdefault("orchestration", {})["tool"] = orchestration_tool
41
41
  if terraform_registry is not None:
42
42
  space.setdefault("terraform", {})["registry"] = terraform_registry
43
+ if policy_repo is not None:
44
+ space.setdefault("governance", {})["policy_repo"] = policy_repo
43
45
 
44
46
  space["updated_at"] = datetime.now().isoformat()
45
47
 
@@ -69,4 +71,9 @@ cli = UpdateSpaceCommand.as_click_command(help="Update an existing space's confi
69
71
  help="Terraform registry URL",
70
72
  default=None,
71
73
  ),
74
+ click.option(
75
+ "-pr", "--policy-repo",
76
+ help="Git repository URL or local path for organization-level IaC policies",
77
+ default=None,
78
+ ),
72
79
  )
@@ -0,0 +1,2 @@
1
+ """Version module."""
2
+ __version__ = "0.18.2"