thothctl 0.17.4__tar.gz → 0.18.1__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 (510) hide show
  1. {thothctl-0.17.4 → thothctl-0.18.1}/PKG-INFO +1 -1
  2. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/mcp/mcp.md +63 -29
  3. {thothctl-0.17.4 → thothctl-0.18.1}/docs/mcp.md +123 -86
  4. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/commands/server.py +1 -1
  5. thothctl-0.18.1/src/thothctl/commands/space/commands/show.py +101 -0
  6. thothctl-0.18.1/src/thothctl/services/mcp/__init__.py +6 -0
  7. thothctl-0.18.1/src/thothctl/services/mcp/simple_http_server.py +520 -0
  8. thothctl-0.17.4/src/thothctl/services/mcp/amazon_q_server.py → thothctl-0.18.1/src/thothctl/services/mcp/stdio_server.py +101 -1
  9. thothctl-0.18.1/src/thothctl/version.py +2 -0
  10. thothctl-0.17.4/AWS_PRICING_API_FINAL_REPORT.md +0 -245
  11. thothctl-0.17.4/AWS_PRICING_API_IMPLEMENTATION_PLAN.md +0 -565
  12. thothctl-0.17.4/AWS_PRICING_REFACTOR_REPORT.md +0 -141
  13. thothctl-0.17.4/TECHNICAL_DEBT_METRICS.md +0 -124
  14. thothctl-0.17.4/src/thothctl/services/mcp/__init__.py +0 -5
  15. thothctl-0.17.4/src/thothctl/services/mcp/example.py +0 -29
  16. thothctl-0.17.4/src/thothctl/services/mcp/service.py +0 -993
  17. thothctl-0.17.4/src/thothctl/services/mcp/simple_http_server.py +0 -265
  18. thothctl-0.17.4/src/thothctl/version.py +0 -2
  19. {thothctl-0.17.4 → thothctl-0.18.1}/.devcontainer/Dockerfile +0 -0
  20. {thothctl-0.17.4 → thothctl-0.18.1}/.devcontainer/README.md +0 -0
  21. {thothctl-0.17.4 → thothctl-0.18.1}/.devcontainer/devcontainer.json +0 -0
  22. {thothctl-0.17.4 → thothctl-0.18.1}/.github/workflows/docs.yml +0 -0
  23. {thothctl-0.17.4 → thothctl-0.18.1}/.github/workflows/python-publish.yml +0 -0
  24. {thothctl-0.17.4 → thothctl-0.18.1}/.gitignore +0 -0
  25. {thothctl-0.17.4 → thothctl-0.18.1}/.pre-commit-config.yaml +0 -0
  26. {thothctl-0.17.4 → thothctl-0.18.1}/.readthedocs.yaml +0 -0
  27. {thothctl-0.17.4 → thothctl-0.18.1}/Dockerfile +0 -0
  28. {thothctl-0.17.4 → thothctl-0.18.1}/LICENSE +0 -0
  29. {thothctl-0.17.4 → thothctl-0.18.1}/README.md +0 -0
  30. {thothctl-0.17.4 → thothctl-0.18.1}/__init__.py +0 -0
  31. {thothctl-0.17.4 → thothctl-0.18.1}/docs/catalog/catalog-info.yaml +0 -0
  32. {thothctl-0.17.4 → thothctl-0.18.1}/docs/dashboard/README.md +0 -0
  33. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/ai-review/README.md +0 -0
  34. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
  35. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/ai-review/agentcore.md +0 -0
  36. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/blast-radius.md +0 -0
  37. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/check_environment.md +0 -0
  38. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/check_iac.md +0 -0
  39. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/check_overview.md +0 -0
  40. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/check_project_iac.md +0 -0
  41. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/check_space.md +0 -0
  42. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
  43. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/cost-analysis.md +0 -0
  44. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/customizing_rules.md +0 -0
  45. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/deps-advanced.md +0 -0
  46. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/deps.md +0 -0
  47. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/drift-detection.md +0 -0
  48. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/check/plan.md +0 -0
  49. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/document/customizing_docs.md +0 -0
  50. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/document/document_iac.md +0 -0
  51. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/document/document_overview.md +0 -0
  52. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/document/iac.md +0 -0
  53. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/document/use_cases.md +0 -0
  54. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/generate/generate_components.md +0 -0
  55. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/generate/generate_stacks.md +0 -0
  56. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/init/init.md +0 -0
  57. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/init/init_space.md +0 -0
  58. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
  59. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
  60. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
  61. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/iac.md +0 -0
  62. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/inventory_iac.md +0 -0
  63. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/inventory/inventory_overview.md +0 -0
  64. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/list/list_overview.md +0 -0
  65. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/list/list_projects.md +0 -0
  66. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/list/list_spaces.md +0 -0
  67. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/iac.md +0 -0
  68. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/project_cleanup.md +0 -0
  69. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/project_convert.md +0 -0
  70. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/project_overview.md +0 -0
  71. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/project_upgrade.md +0 -0
  72. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/project/use_cases.md +0 -0
  73. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/remove/remove_overview.md +0 -0
  74. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/remove/remove_project.md +0 -0
  75. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/remove/remove_space.md +0 -0
  76. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/scan/iac.md +0 -0
  77. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/scan/scan_iac.md +0 -0
  78. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/scan/scan_overview.md +0 -0
  79. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/scan/use_cases.md +0 -0
  80. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
  81. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/concepts.md +0 -0
  82. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/cross_platform_support.md +0 -0
  83. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/framework_architecture.md +0 -0
  84. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/infrasctructure_composition.md +0 -0
  85. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/policy_as_code.md +0 -0
  86. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/roadmap_fdi.md +0 -0
  87. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/software_architecture.md +0 -0
  88. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/space_configuration.md +0 -0
  89. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/README.md +0 -0
  90. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/ai_dlc.md +0 -0
  91. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/check_command.md +0 -0
  92. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
  93. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
  94. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/inventory_command.md +0 -0
  95. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
  96. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/space_management.md +0 -0
  97. {thothctl-0.17.4 → thothctl-0.18.1}/docs/framework/use_cases/tasks/create_template.md +0 -0
  98. {thothctl-0.17.4 → thothctl-0.18.1}/docs/iac_devsecops_use_case.md +0 -0
  99. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/automate_tasks_command.png +0 -0
  100. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/commnad_init.png +0 -0
  101. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/create_component.gif +0 -0
  102. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/create_inventory.gif +0 -0
  103. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/doc_command.png +0 -0
  104. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/document_project_code.gif +0 -0
  105. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/framework/thothforge-framework.svg +0 -0
  106. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/framework/thothfr.png +0 -0
  107. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/iacpeerbot_summary.png +0 -0
  108. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/icon-light.png +0 -0
  109. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/icon.png +0 -0
  110. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/init_project.gif +0 -0
  111. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/inventory_command.png +0 -0
  112. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/notification_img.png +0 -0
  113. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/report_dependencies.png +0 -0
  114. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/report_dependencies_summary.png +0 -0
  115. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/restore_inventory_version.gif +0 -0
  116. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/reuse_project_pattern.gif +0 -0
  117. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/scan_code.gif +0 -0
  118. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/scan_command.png +0 -0
  119. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/stable/scan_report_example.png +0 -0
  120. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/sync_wk_command.png +0 -0
  121. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/transform_command.png +0 -0
  122. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/update_inventory_version.gif +0 -0
  123. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/validate_command.png +0 -0
  124. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/validate_environment.gif +0 -0
  125. {thothctl-0.17.4 → thothctl-0.18.1}/docs/img/validate_project.gif +0 -0
  126. {thothctl-0.17.4 → thothctl-0.18.1}/docs/includes/abbreviations.md +0 -0
  127. {thothctl-0.17.4 → thothctl-0.18.1}/docs/index.md +0 -0
  128. {thothctl-0.17.4 → thothctl-0.18.1}/docs/installation/linux_installation.md +0 -0
  129. {thothctl-0.17.4 → thothctl-0.18.1}/docs/installation/windows_installation.md +0 -0
  130. {thothctl-0.17.4 → thothctl-0.18.1}/docs/javascripts/tablesort.js +0 -0
  131. {thothctl-0.17.4 → thothctl-0.18.1}/docs/navigation.md +0 -0
  132. {thothctl-0.17.4 → thothctl-0.18.1}/docs/quick_start.md +0 -0
  133. {thothctl-0.17.4 → thothctl-0.18.1}/docs/requirements.txt +0 -0
  134. {thothctl-0.17.4 → thothctl-0.18.1}/docs/stylesheets/extra-enhanced.css +0 -0
  135. {thothctl-0.17.4 → thothctl-0.18.1}/docs/stylesheets/extra.css +0 -0
  136. {thothctl-0.17.4 → thothctl-0.18.1}/docs/telemetry.md +0 -0
  137. {thothctl-0.17.4 → thothctl-0.18.1}/docs/template_engine/cli_commands_audit.md +0 -0
  138. {thothctl-0.17.4 → thothctl-0.18.1}/docs/template_engine/for_developers.md +0 -0
  139. {thothctl-0.17.4 → thothctl-0.18.1}/docs/template_engine/for_platform_engineers.md +0 -0
  140. {thothctl-0.17.4 → thothctl-0.18.1}/docs/template_engine/github_templates.md +0 -0
  141. {thothctl-0.17.4 → thothctl-0.18.1}/docs/template_engine/template_engine.md +0 -0
  142. {thothctl-0.17.4 → thothctl-0.18.1}/docs/troubleshooting/linux_troubleshooting.md +0 -0
  143. {thothctl-0.17.4 → thothctl-0.18.1}/docs/troubleshooting/macos_troubleshooting.md +0 -0
  144. {thothctl-0.17.4 → thothctl-0.18.1}/docs/troubleshooting/troubleshooting.md +0 -0
  145. {thothctl-0.17.4 → thothctl-0.18.1}/docs/troubleshooting/windows_troubleshooting.md +0 -0
  146. {thothctl-0.17.4 → thothctl-0.18.1}/mkdocs.yaml +0 -0
  147. {thothctl-0.17.4 → thothctl-0.18.1}/pyproject.toml +0 -0
  148. {thothctl-0.17.4 → thothctl-0.18.1}/scripts/run_mcp_server.sh +0 -0
  149. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/__init__.py +0 -0
  150. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/application/__init__.py +0 -0
  151. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/autocomplete.py +0 -0
  152. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/cli.py +0 -0
  153. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/__init__.py +0 -0
  154. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/__init__.py +0 -0
  155. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/cli.py +0 -0
  156. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
  157. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
  158. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
  159. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
  160. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
  161. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
  162. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/history.py +0 -0
  163. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
  164. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
  165. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/override.py +0 -0
  166. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/report.py +0 -0
  167. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
  168. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/__init__.py +0 -0
  169. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/cli.py +0 -0
  170. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/__init__.py +0 -0
  171. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/environment.py +0 -0
  172. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/iac.py +0 -0
  173. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
  174. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/project/iac.py +0 -0
  175. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/check/commands/project.py +0 -0
  176. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/dashboard/__init__.py +0 -0
  177. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/dashboard/cli.py +0 -0
  178. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
  179. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
  180. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/document/__init__.py +0 -0
  181. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/document/cli.py +0 -0
  182. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/document/commands/__init__.py +0 -0
  183. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/document/commands/iac.py +0 -0
  184. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/generate/__init__.py +0 -0
  185. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/generate/cli.py +0 -0
  186. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/generate/commands/__init__.py +0 -0
  187. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/generate/commands/component.py +0 -0
  188. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/generate/commands/stacks.py +0 -0
  189. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/__init__.py +0 -0
  190. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/cli.py +0 -0
  191. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/commands/__init__.py +0 -0
  192. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/commands/env.py +0 -0
  193. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/commands/project.py +0 -0
  194. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/commands/space.py +0 -0
  195. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/init/commands/template.py +0 -0
  196. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/inventory/__init__.py +0 -0
  197. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/inventory/cli.py +0 -0
  198. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
  199. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/inventory/commands/check.py +0 -0
  200. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/inventory/commands/iac.py +0 -0
  201. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/list/__init__.py +0 -0
  202. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/list/cli.py +0 -0
  203. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/list/commands/__init__.py +0 -0
  204. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/list/commands/projects.py +0 -0
  205. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/list/commands/spaces.py +0 -0
  206. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/__init__.py +0 -0
  207. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/cli.py +0 -0
  208. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
  209. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/commands/register.py +0 -0
  210. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/commands/status.py +0 -0
  211. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/mcp/commands/stop.py +0 -0
  212. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/__init__.py +0 -0
  213. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/cli.py +0 -0
  214. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/commands/__init__.py +0 -0
  215. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
  216. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/commands/cleanup.py +0 -0
  217. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/commands/convert.py +0 -0
  218. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/project/commands/upgrade.py +0 -0
  219. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/remove/__init__.py +0 -0
  220. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/remove/cli.py +0 -0
  221. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/remove/project.py +0 -0
  222. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/remove/space.py +0 -0
  223. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/scan/__init__.py +0 -0
  224. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/scan/cli.py +0 -0
  225. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/scan/commands/__init__.py +0 -0
  226. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/scan/commands/iac.py +0 -0
  227. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/space/__init__.py +0 -0
  228. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/space/cli.py +0 -0
  229. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/space/commands/__init__.py +0 -0
  230. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/space/commands/activate.py +0 -0
  231. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/space/commands/update.py +0 -0
  232. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/commands/upgrade/cli.py +0 -0
  233. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/.thothcf.setup.toml +0 -0
  234. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/.thothcf_home.toml +0 -0
  235. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/.thothcf_module.toml +0 -0
  236. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/.thothcf_project.toml +0 -0
  237. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
  238. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/__init__.py +0 -0
  239. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/common.py +0 -0
  240. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
  241. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/__init__.py +0 -0
  242. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/constants.py +0 -0
  243. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/default_values.py +0 -0
  244. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/defaults.py +0 -0
  245. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/models.py +0 -0
  246. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/settings.py +0 -0
  247. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/template_config.py +0 -0
  248. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/template_configs.py +0 -0
  249. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/templates.py +0 -0
  250. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/config/validation.py +0 -0
  251. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/__init__.py +0 -0
  252. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/cli_ui.py +0 -0
  253. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/commands.py +0 -0
  254. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/config.py +0 -0
  255. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/__init__.py +0 -0
  256. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
  257. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
  258. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
  259. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/github/get_github.py +0 -0
  260. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
  261. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
  262. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
  263. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
  264. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/pattern_names.py +0 -0
  265. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
  266. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
  267. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/logger.py +0 -0
  268. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/telemetry.py +0 -0
  269. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/core/version_tools.py +0 -0
  270. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/domain/__init__.py +0 -0
  271. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/domain/interfaces/__init__.py +0 -0
  272. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/domain/models/__init__.py +0 -0
  273. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/mcp/README.md +0 -0
  274. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/mcp/__init__.py +0 -0
  275. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/mcp/server.py +0 -0
  276. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/__init__.py +0 -0
  277. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/__init__.py +0 -0
  278. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
  279. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/ai_agent.py +0 -0
  280. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
  281. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
  282. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
  283. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
  284. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
  285. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
  286. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/config/__init__.py +0 -0
  287. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
  288. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
  289. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/decision_engine.py +0 -0
  290. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/main.py +0 -0
  291. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/memory.py +0 -0
  292. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/orchestrator.py +0 -0
  293. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
  294. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
  295. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
  296. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
  297. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
  298. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
  299. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
  300. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
  301. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
  302. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/strands_agent.py +0 -0
  303. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/tracing.py +0 -0
  304. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
  305. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
  306. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
  307. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
  308. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
  309. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
  310. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/__init__.py +0 -0
  311. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/environment/__init__.py +0 -0
  312. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/environment/check_environment.py +0 -0
  313. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/org_policy_loader.py +0 -0
  314. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/__init__.py +0 -0
  315. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
  316. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/check_origin_version.py +0 -0
  317. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/check_project_structure.py +0 -0
  318. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/__init__.py +0 -0
  319. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
  320. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
  321. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
  322. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
  323. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
  324. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
  325. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
  326. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
  327. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
  328. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
  329. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
  330. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
  331. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
  332. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
  333. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
  334. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
  335. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
  336. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
  337. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
  338. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
  339. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
  340. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
  341. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
  342. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
  343. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
  344. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
  345. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
  346. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/__init__.py +0 -0
  347. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
  348. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
  349. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
  350. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
  351. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
  352. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/drift/models.py +0 -0
  353. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/risk_assessment.py +0 -0
  354. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
  355. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/rule_merger.py +0 -0
  356. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
  357. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/dashboard/__init__.py +0 -0
  358. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
  359. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/dashboard/data_loader.py +0 -0
  360. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/__init__.py +0 -0
  361. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/create_documentation.py +0 -0
  362. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/files_content.py +0 -0
  363. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/files_scan.py +0 -0
  364. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/iac_documentation.py +0 -0
  365. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
  366. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/document/iac_grunt_info.py +0 -0
  367. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/__init__.py +0 -0
  368. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
  369. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
  370. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
  371. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
  372. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
  373. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/__init__.py +0 -0
  374. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/config.yaml +0 -0
  375. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/create_code.py +0 -0
  376. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/create_component.py +0 -0
  377. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
  378. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
  379. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/create_template.py +0 -0
  380. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/files_content.py +0 -0
  381. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
  382. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
  383. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/__init__.py +0 -0
  384. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/environment/__init__.py +0 -0
  385. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/environment/install_tools.py +0 -0
  386. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/project/__init__.py +0 -0
  387. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/project/project.py +0 -0
  388. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/space/__init__.py +0 -0
  389. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/space/example_space.toml +0 -0
  390. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/space/local_registry.py +0 -0
  391. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/init/space/space.py +0 -0
  392. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/__init__.py +0 -0
  393. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/changelog_parser.py +0 -0
  394. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/inventory_service.py +0 -0
  395. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/models.py +0 -0
  396. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
  397. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/report_service.py +0 -0
  398. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
  399. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
  400. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/update_versions.py +0 -0
  401. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/inventory/version_service.py +0 -0
  402. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/mcp/README.md +0 -0
  403. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/__init__.py +0 -0
  404. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
  405. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
  406. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/cleanup/__init__.py +0 -0
  407. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
  408. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
  409. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/__init__.py +0 -0
  410. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/conversion_service.py +0 -0
  411. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/get_project_data.py +0 -0
  412. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/post_init.py +0 -0
  413. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/project_converter.py +0 -0
  414. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/project_defaults.py +0 -0
  415. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
  416. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
  417. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
  418. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
  419. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
  420. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/upgrade/__init__.py +0 -0
  421. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
  422. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/__init__.py +0 -0
  423. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/compliance_review.py +0 -0
  424. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/import_reports.py +0 -0
  425. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/models.py +0 -0
  426. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/report_parser.py +0 -0
  427. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/sarif_output.py +0 -0
  428. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scan_history.py +0 -0
  429. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scan_service.py +0 -0
  430. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/__init__.py +0 -0
  431. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/checkov.py +0 -0
  432. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/kics.py +0 -0
  433. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/opa.py +0 -0
  434. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
  435. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/scanners.py +0 -0
  436. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
  437. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
  438. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/services/scan/scanners/trivy.py +0 -0
  439. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/templates/reports/inventory_report.html +0 -0
  440. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/templates/reports/inventory_report.js +0 -0
  441. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/templates/unified_report_styles.css +0 -0
  442. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/__init__.py +0 -0
  443. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/banner.py +0 -0
  444. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/__init__.py +0 -0
  445. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
  446. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/create_html_reports.py +0 -0
  447. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/delete_directory.py +0 -0
  448. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/fix_report_styling.py +0 -0
  449. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/render_scan_report.py +0 -0
  450. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/report_html_utils.py +0 -0
  451. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/dashboard.html +0 -0
  452. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/index_report.html +0 -0
  453. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/individual_report.html +0 -0
  454. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/simple_report.html +0 -0
  455. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
  456. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
  457. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
  458. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
  459. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/crypto.py +0 -0
  460. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
  461. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
  462. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/modules_ops/__init__.py +0 -0
  463. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
  464. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
  465. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/platform_utils.py +0 -0
  466. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/__init__.py +0 -0
  467. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
  468. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
  469. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
  470. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
  471. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
  472. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
  473. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
  474. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
  475. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/template_loader.py +0 -0
  476. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/utils/thoth_colors.py +0 -0
  477. {thothctl-0.17.4 → thothctl-0.18.1}/src/thothctl/wellcome_banner.py +0 -0
  478. {thothctl-0.17.4 → thothctl-0.18.1}/tests/conftest.py +0 -0
  479. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_agentcore_entrypoint.py +0 -0
  480. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_aws_pricing_client.py +0 -0
  481. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_azure_devops_pr_comments.py +0 -0
  482. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_bedrock_pricing.py +0 -0
  483. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_cdk_language_selection.py +0 -0
  484. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_context_steering.py +0 -0
  485. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_cost_analyzer.py +0 -0
  486. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_cost_models.py +0 -0
  487. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_cost_pr_comments.py +0 -0
  488. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_dashboard_loading_fix.py +0 -0
  489. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_dashboard_service.py +0 -0
  490. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_drift.py +0 -0
  491. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_drift_detection.py +0 -0
  492. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_ec2_pricing.py +0 -0
  493. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_github_pr_comments.py +0 -0
  494. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_iac_cost_integration.py +0 -0
  495. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_inventory_pr_comments.py +0 -0
  496. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_kics_scanner.py +0 -0
  497. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_mermaid_edge_labels.py +0 -0
  498. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_new_cost_providers.py +0 -0
  499. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_parallel_scan.py +0 -0
  500. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_platform_utils.py +0 -0
  501. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_pr_comment_publisher.py +0 -0
  502. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_provider_source_url_fix.py +0 -0
  503. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_provider_versions.py +0 -0
  504. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_scan_pr_comments.py +0 -0
  505. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_space_command.py +0 -0
  506. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_space_management.py +0 -0
  507. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_stack_optimizer.py +0 -0
  508. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_template_url_fix.py +0 -0
  509. {thothctl-0.17.4 → thothctl-0.18.1}/tests/test_terragrunt_parser.py +0 -0
  510. {thothctl-0.17.4 → thothctl-0.18.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thothctl
3
- Version: 0.17.4
3
+ Version: 0.18.1
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
 
@@ -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
 
@@ -20,7 +20,7 @@ class MCPServerCommand(ClickCommand):
20
20
  from pathlib import Path
21
21
 
22
22
  # Use Amazon Q compatible server as default for stdio mode
23
- from ....services.mcp.amazon_q_server import serve_amazon_q
23
+ from ....services.mcp.stdio_server import serve_amazon_q
24
24
  # Don't print anything in stdio mode - it breaks MCP protocol
25
25
  asyncio.run(serve_amazon_q())
26
26
  else:
@@ -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
+ )
@@ -0,0 +1,6 @@
1
+ """MCP Service for ThothCTL."""
2
+
3
+ from .simple_http_server import run_simple_http_server as run_server
4
+ from .stdio_server import serve_amazon_q as serve
5
+
6
+ __all__ = ["run_server", "serve"]