thothctl 0.18.2__tar.gz → 0.18.4__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 (502) hide show
  1. {thothctl-0.18.2 → thothctl-0.18.4}/PKG-INFO +1 -1
  2. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_project_iac.md +51 -6
  3. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/space_configuration.md +8 -0
  4. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/space_management.md +23 -0
  5. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project/iac.py +12 -2
  6. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/iac.py +14 -6
  7. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/org_policy_loader.py +33 -1
  8. thothctl-0.18.4/src/thothctl/version.py +2 -0
  9. thothctl-0.18.2/src/thothctl/version.py +0 -2
  10. {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/Dockerfile +0 -0
  11. {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/README.md +0 -0
  12. {thothctl-0.18.2 → thothctl-0.18.4}/.devcontainer/devcontainer.json +0 -0
  13. {thothctl-0.18.2 → thothctl-0.18.4}/.github/workflows/docs.yml +0 -0
  14. {thothctl-0.18.2 → thothctl-0.18.4}/.github/workflows/python-publish.yml +0 -0
  15. {thothctl-0.18.2 → thothctl-0.18.4}/.gitignore +0 -0
  16. {thothctl-0.18.2 → thothctl-0.18.4}/.pre-commit-config.yaml +0 -0
  17. {thothctl-0.18.2 → thothctl-0.18.4}/.readthedocs.yaml +0 -0
  18. {thothctl-0.18.2 → thothctl-0.18.4}/Dockerfile +0 -0
  19. {thothctl-0.18.2 → thothctl-0.18.4}/LICENSE +0 -0
  20. {thothctl-0.18.2 → thothctl-0.18.4}/README.md +0 -0
  21. {thothctl-0.18.2 → thothctl-0.18.4}/__init__.py +0 -0
  22. {thothctl-0.18.2 → thothctl-0.18.4}/docs/catalog/catalog-info.yaml +0 -0
  23. {thothctl-0.18.2 → thothctl-0.18.4}/docs/dashboard/README.md +0 -0
  24. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/README.md +0 -0
  25. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
  26. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/ai-review/agentcore.md +0 -0
  27. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/blast-radius.md +0 -0
  28. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_environment.md +0 -0
  29. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_iac.md +0 -0
  30. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_overview.md +0 -0
  31. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/check_space.md +0 -0
  32. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
  33. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/cost-analysis.md +0 -0
  34. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/customizing_rules.md +0 -0
  35. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/deps-advanced.md +0 -0
  36. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/deps.md +0 -0
  37. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/drift-detection.md +0 -0
  38. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/check/plan.md +0 -0
  39. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/customizing_docs.md +0 -0
  40. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/document_iac.md +0 -0
  41. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/document_overview.md +0 -0
  42. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/iac.md +0 -0
  43. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/document/use_cases.md +0 -0
  44. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/generate/generate_components.md +0 -0
  45. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/generate/generate_stacks.md +0 -0
  46. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/init/init.md +0 -0
  47. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/init/init_space.md +0 -0
  48. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
  49. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
  50. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
  51. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/iac.md +0 -0
  52. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/inventory_iac.md +0 -0
  53. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/inventory/inventory_overview.md +0 -0
  54. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_overview.md +0 -0
  55. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_projects.md +0 -0
  56. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/list/list_spaces.md +0 -0
  57. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/mcp/mcp.md +0 -0
  58. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/iac.md +0 -0
  59. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_cleanup.md +0 -0
  60. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_convert.md +0 -0
  61. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_overview.md +0 -0
  62. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/project_upgrade.md +0 -0
  63. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/project/use_cases.md +0 -0
  64. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_overview.md +0 -0
  65. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_project.md +0 -0
  66. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/remove/remove_space.md +0 -0
  67. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/iac.md +0 -0
  68. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/scan_iac.md +0 -0
  69. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/scan_overview.md +0 -0
  70. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/scan/use_cases.md +0 -0
  71. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
  72. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/concepts.md +0 -0
  73. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/cross_platform_support.md +0 -0
  74. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/framework_architecture.md +0 -0
  75. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/infrasctructure_composition.md +0 -0
  76. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/policy_as_code.md +0 -0
  77. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/roadmap_fdi.md +0 -0
  78. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/software_architecture.md +0 -0
  79. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/README.md +0 -0
  80. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/ai_dlc.md +0 -0
  81. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/check_command.md +0 -0
  82. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
  83. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
  84. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/inventory_command.md +0 -0
  85. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
  86. {thothctl-0.18.2 → thothctl-0.18.4}/docs/framework/use_cases/tasks/create_template.md +0 -0
  87. {thothctl-0.18.2 → thothctl-0.18.4}/docs/iac_devsecops_use_case.md +0 -0
  88. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/automate_tasks_command.png +0 -0
  89. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/commnad_init.png +0 -0
  90. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/create_component.gif +0 -0
  91. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/create_inventory.gif +0 -0
  92. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/doc_command.png +0 -0
  93. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/document_project_code.gif +0 -0
  94. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/framework/thothforge-framework.svg +0 -0
  95. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/framework/thothfr.png +0 -0
  96. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/iacpeerbot_summary.png +0 -0
  97. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/icon-light.png +0 -0
  98. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/icon.png +0 -0
  99. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/init_project.gif +0 -0
  100. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/inventory_command.png +0 -0
  101. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/notification_img.png +0 -0
  102. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/report_dependencies.png +0 -0
  103. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/report_dependencies_summary.png +0 -0
  104. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/restore_inventory_version.gif +0 -0
  105. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/reuse_project_pattern.gif +0 -0
  106. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/scan_code.gif +0 -0
  107. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/scan_command.png +0 -0
  108. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/stable/scan_report_example.png +0 -0
  109. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/sync_wk_command.png +0 -0
  110. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/transform_command.png +0 -0
  111. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/update_inventory_version.gif +0 -0
  112. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_command.png +0 -0
  113. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_environment.gif +0 -0
  114. {thothctl-0.18.2 → thothctl-0.18.4}/docs/img/validate_project.gif +0 -0
  115. {thothctl-0.18.2 → thothctl-0.18.4}/docs/includes/abbreviations.md +0 -0
  116. {thothctl-0.18.2 → thothctl-0.18.4}/docs/index.md +0 -0
  117. {thothctl-0.18.2 → thothctl-0.18.4}/docs/installation/linux_installation.md +0 -0
  118. {thothctl-0.18.2 → thothctl-0.18.4}/docs/installation/windows_installation.md +0 -0
  119. {thothctl-0.18.2 → thothctl-0.18.4}/docs/javascripts/tablesort.js +0 -0
  120. {thothctl-0.18.2 → thothctl-0.18.4}/docs/mcp.md +0 -0
  121. {thothctl-0.18.2 → thothctl-0.18.4}/docs/navigation.md +0 -0
  122. {thothctl-0.18.2 → thothctl-0.18.4}/docs/quick_start.md +0 -0
  123. {thothctl-0.18.2 → thothctl-0.18.4}/docs/requirements.txt +0 -0
  124. {thothctl-0.18.2 → thothctl-0.18.4}/docs/stylesheets/extra-enhanced.css +0 -0
  125. {thothctl-0.18.2 → thothctl-0.18.4}/docs/stylesheets/extra.css +0 -0
  126. {thothctl-0.18.2 → thothctl-0.18.4}/docs/telemetry.md +0 -0
  127. {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/cli_commands_audit.md +0 -0
  128. {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/for_developers.md +0 -0
  129. {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/for_platform_engineers.md +0 -0
  130. {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/github_templates.md +0 -0
  131. {thothctl-0.18.2 → thothctl-0.18.4}/docs/template_engine/template_engine.md +0 -0
  132. {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/linux_troubleshooting.md +0 -0
  133. {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/macos_troubleshooting.md +0 -0
  134. {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/troubleshooting.md +0 -0
  135. {thothctl-0.18.2 → thothctl-0.18.4}/docs/troubleshooting/windows_troubleshooting.md +0 -0
  136. {thothctl-0.18.2 → thothctl-0.18.4}/mkdocs.yaml +0 -0
  137. {thothctl-0.18.2 → thothctl-0.18.4}/pyproject.toml +0 -0
  138. {thothctl-0.18.2 → thothctl-0.18.4}/scripts/run_mcp_server.sh +0 -0
  139. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/__init__.py +0 -0
  140. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/application/__init__.py +0 -0
  141. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/autocomplete.py +0 -0
  142. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/cli.py +0 -0
  143. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/__init__.py +0 -0
  144. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/__init__.py +0 -0
  145. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/cli.py +0 -0
  146. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
  147. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
  148. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
  149. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
  150. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
  151. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
  152. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/history.py +0 -0
  153. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
  154. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
  155. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/override.py +0 -0
  156. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/report.py +0 -0
  157. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
  158. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/__init__.py +0 -0
  159. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/cli.py +0 -0
  160. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/__init__.py +0 -0
  161. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/environment.py +0 -0
  162. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/iac.py +0 -0
  163. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
  164. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/check/commands/project.py +0 -0
  165. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/__init__.py +0 -0
  166. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/cli.py +0 -0
  167. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
  168. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
  169. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/__init__.py +0 -0
  170. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/cli.py +0 -0
  171. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/commands/__init__.py +0 -0
  172. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/document/commands/iac.py +0 -0
  173. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/__init__.py +0 -0
  174. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/cli.py +0 -0
  175. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/__init__.py +0 -0
  176. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/component.py +0 -0
  177. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/generate/commands/stacks.py +0 -0
  178. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/__init__.py +0 -0
  179. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/cli.py +0 -0
  180. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/__init__.py +0 -0
  181. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/env.py +0 -0
  182. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/project.py +0 -0
  183. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/space.py +0 -0
  184. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/init/commands/template.py +0 -0
  185. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/__init__.py +0 -0
  186. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/cli.py +0 -0
  187. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
  188. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/inventory/commands/check.py +0 -0
  189. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/__init__.py +0 -0
  190. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/cli.py +0 -0
  191. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/__init__.py +0 -0
  192. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/projects.py +0 -0
  193. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/list/commands/spaces.py +0 -0
  194. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/__init__.py +0 -0
  195. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/cli.py +0 -0
  196. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
  197. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/register.py +0 -0
  198. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/server.py +0 -0
  199. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/status.py +0 -0
  200. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/mcp/commands/stop.py +0 -0
  201. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/__init__.py +0 -0
  202. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/cli.py +0 -0
  203. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/__init__.py +0 -0
  204. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
  205. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/cleanup.py +0 -0
  206. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/convert.py +0 -0
  207. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/project/commands/upgrade.py +0 -0
  208. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/__init__.py +0 -0
  209. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/cli.py +0 -0
  210. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/project.py +0 -0
  211. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/remove/space.py +0 -0
  212. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/__init__.py +0 -0
  213. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/cli.py +0 -0
  214. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/commands/__init__.py +0 -0
  215. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/scan/commands/iac.py +0 -0
  216. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/__init__.py +0 -0
  217. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/cli.py +0 -0
  218. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/__init__.py +0 -0
  219. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/activate.py +0 -0
  220. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/show.py +0 -0
  221. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/space/commands/update.py +0 -0
  222. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/commands/upgrade/cli.py +0 -0
  223. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf.setup.toml +0 -0
  224. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_home.toml +0 -0
  225. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_module.toml +0 -0
  226. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_project.toml +0 -0
  227. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
  228. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/__init__.py +0 -0
  229. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/common.py +0 -0
  230. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
  231. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/__init__.py +0 -0
  232. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/constants.py +0 -0
  233. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/default_values.py +0 -0
  234. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/defaults.py +0 -0
  235. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/models.py +0 -0
  236. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/settings.py +0 -0
  237. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/template_config.py +0 -0
  238. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/template_configs.py +0 -0
  239. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/templates.py +0 -0
  240. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/config/validation.py +0 -0
  241. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/__init__.py +0 -0
  242. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/cli_ui.py +0 -0
  243. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/commands.py +0 -0
  244. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/config.py +0 -0
  245. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/__init__.py +0 -0
  246. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
  247. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
  248. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
  249. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/github/get_github.py +0 -0
  250. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
  251. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
  252. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
  253. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
  254. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pattern_names.py +0 -0
  255. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
  256. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
  257. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/logger.py +0 -0
  258. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/telemetry.py +0 -0
  259. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/core/version_tools.py +0 -0
  260. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/__init__.py +0 -0
  261. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/interfaces/__init__.py +0 -0
  262. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/domain/models/__init__.py +0 -0
  263. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/README.md +0 -0
  264. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/__init__.py +0 -0
  265. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/mcp/server.py +0 -0
  266. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/__init__.py +0 -0
  267. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/__init__.py +0 -0
  268. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
  269. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/ai_agent.py +0 -0
  270. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
  271. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
  272. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
  273. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
  274. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
  275. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
  276. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/__init__.py +0 -0
  277. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
  278. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
  279. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/decision_engine.py +0 -0
  280. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/main.py +0 -0
  281. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/memory.py +0 -0
  282. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/orchestrator.py +0 -0
  283. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
  284. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
  285. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
  286. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
  287. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
  288. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
  289. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
  290. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
  291. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
  292. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/strands_agent.py +0 -0
  293. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/tracing.py +0 -0
  294. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
  295. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
  296. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
  297. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
  298. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
  299. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
  300. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/__init__.py +0 -0
  301. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/environment/__init__.py +0 -0
  302. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/environment/check_environment.py +0 -0
  303. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/__init__.py +0 -0
  304. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
  305. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/check_origin_version.py +0 -0
  306. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/check_project_structure.py +0 -0
  307. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/__init__.py +0 -0
  308. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
  309. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
  310. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
  311. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
  312. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
  313. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
  314. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
  315. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
  316. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
  317. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
  318. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
  319. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
  320. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
  321. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
  322. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
  323. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
  324. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
  325. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
  326. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
  327. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
  328. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
  329. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
  330. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
  331. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
  332. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
  333. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
  334. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
  335. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/__init__.py +0 -0
  336. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
  337. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
  338. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
  339. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
  340. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
  341. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/drift/models.py +0 -0
  342. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/risk_assessment.py +0 -0
  343. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
  344. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/rule_merger.py +0 -0
  345. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
  346. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/__init__.py +0 -0
  347. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
  348. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/dashboard/data_loader.py +0 -0
  349. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/__init__.py +0 -0
  350. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/create_documentation.py +0 -0
  351. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/files_content.py +0 -0
  352. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/files_scan.py +0 -0
  353. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_documentation.py +0 -0
  354. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
  355. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/document/iac_grunt_info.py +0 -0
  356. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/__init__.py +0 -0
  357. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
  358. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
  359. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
  360. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
  361. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
  362. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/__init__.py +0 -0
  363. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/config.yaml +0 -0
  364. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_code.py +0 -0
  365. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_component.py +0 -0
  366. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
  367. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
  368. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/create_template.py +0 -0
  369. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/files_content.py +0 -0
  370. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
  371. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
  372. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/__init__.py +0 -0
  373. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/environment/__init__.py +0 -0
  374. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/environment/install_tools.py +0 -0
  375. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/project/__init__.py +0 -0
  376. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/project/project.py +0 -0
  377. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/__init__.py +0 -0
  378. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/example_space.toml +0 -0
  379. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/local_registry.py +0 -0
  380. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/init/space/space.py +0 -0
  381. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/__init__.py +0 -0
  382. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/changelog_parser.py +0 -0
  383. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/inventory_service.py +0 -0
  384. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/models.py +0 -0
  385. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
  386. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/report_service.py +0 -0
  387. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
  388. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
  389. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/update_versions.py +0 -0
  390. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/inventory/version_service.py +0 -0
  391. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/README.md +0 -0
  392. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/__init__.py +0 -0
  393. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/simple_http_server.py +0 -0
  394. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/mcp/stdio_server.py +0 -0
  395. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/__init__.py +0 -0
  396. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
  397. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
  398. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/__init__.py +0 -0
  399. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
  400. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
  401. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/__init__.py +0 -0
  402. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/conversion_service.py +0 -0
  403. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/get_project_data.py +0 -0
  404. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/post_init.py +0 -0
  405. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/project_converter.py +0 -0
  406. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/project_defaults.py +0 -0
  407. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
  408. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
  409. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
  410. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
  411. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
  412. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/upgrade/__init__.py +0 -0
  413. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
  414. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/__init__.py +0 -0
  415. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/compliance_review.py +0 -0
  416. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/import_reports.py +0 -0
  417. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/models.py +0 -0
  418. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/report_parser.py +0 -0
  419. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/sarif_output.py +0 -0
  420. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scan_history.py +0 -0
  421. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scan_service.py +0 -0
  422. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/__init__.py +0 -0
  423. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/checkov.py +0 -0
  424. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/kics.py +0 -0
  425. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/opa.py +0 -0
  426. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
  427. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/scanners.py +0 -0
  428. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
  429. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
  430. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/services/scan/scanners/trivy.py +0 -0
  431. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/reports/inventory_report.html +0 -0
  432. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/reports/inventory_report.js +0 -0
  433. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/templates/unified_report_styles.css +0 -0
  434. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/__init__.py +0 -0
  435. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/banner.py +0 -0
  436. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/__init__.py +0 -0
  437. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
  438. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/create_html_reports.py +0 -0
  439. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/delete_directory.py +0 -0
  440. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/fix_report_styling.py +0 -0
  441. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/render_scan_report.py +0 -0
  442. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/report_html_utils.py +0 -0
  443. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/dashboard.html +0 -0
  444. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/index_report.html +0 -0
  445. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/individual_report.html +0 -0
  446. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/simple_report.html +0 -0
  447. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
  448. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
  449. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
  450. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
  451. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/crypto.py +0 -0
  452. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
  453. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
  454. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/__init__.py +0 -0
  455. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
  456. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
  457. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/platform_utils.py +0 -0
  458. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/__init__.py +0 -0
  459. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
  460. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
  461. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
  462. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
  463. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
  464. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
  465. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
  466. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
  467. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/template_loader.py +0 -0
  468. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/utils/thoth_colors.py +0 -0
  469. {thothctl-0.18.2 → thothctl-0.18.4}/src/thothctl/wellcome_banner.py +0 -0
  470. {thothctl-0.18.2 → thothctl-0.18.4}/tests/conftest.py +0 -0
  471. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_agentcore_entrypoint.py +0 -0
  472. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_aws_pricing_client.py +0 -0
  473. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_azure_devops_pr_comments.py +0 -0
  474. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_bedrock_pricing.py +0 -0
  475. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cdk_language_selection.py +0 -0
  476. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_context_steering.py +0 -0
  477. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_analyzer.py +0 -0
  478. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_models.py +0 -0
  479. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_cost_pr_comments.py +0 -0
  480. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_dashboard_loading_fix.py +0 -0
  481. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_dashboard_service.py +0 -0
  482. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_drift.py +0 -0
  483. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_drift_detection.py +0 -0
  484. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_ec2_pricing.py +0 -0
  485. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_github_pr_comments.py +0 -0
  486. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_iac_cost_integration.py +0 -0
  487. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_inventory_pr_comments.py +0 -0
  488. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_kics_scanner.py +0 -0
  489. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_mermaid_edge_labels.py +0 -0
  490. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_new_cost_providers.py +0 -0
  491. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_parallel_scan.py +0 -0
  492. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_platform_utils.py +0 -0
  493. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_pr_comment_publisher.py +0 -0
  494. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_provider_source_url_fix.py +0 -0
  495. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_provider_versions.py +0 -0
  496. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_scan_pr_comments.py +0 -0
  497. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_space_command.py +0 -0
  498. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_space_management.py +0 -0
  499. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_stack_optimizer.py +0 -0
  500. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_template_url_fix.py +0 -0
  501. {thothctl-0.18.2 → thothctl-0.18.4}/tests/test_terragrunt_parser.py +0 -0
  502. {thothctl-0.18.2 → thothctl-0.18.4}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thothctl
3
- Version: 0.18.2
3
+ Version: 0.18.4
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
@@ -19,6 +19,7 @@ Options:
19
19
  Project type: stack or module [default: stack]
20
20
  --org-policy TEXT Organization policy source (Git URL or local path)
21
21
  --enforcement [soft|hard] Enforcement mode: soft (report) or hard (fail pipeline)
22
+ --skip-org-policy Skip organizational policy check (project exceptions)
22
23
  --help Show this message and exit.
23
24
  ```
24
25
 
@@ -26,9 +27,52 @@ Options:
26
27
 
27
28
  ThothCTL can enforce organizational standards that projects **cannot override**. This ensures all projects in your organization follow the same structure, naming, and tagging rules — regardless of what individual `.thothcf.toml` files contain.
28
29
 
30
+ ### Policy Resolution Order
31
+
32
+ ThothCTL resolves the org policy source in this order:
33
+
34
+ | Priority | Source | Example |
35
+ |----------|--------|---------|
36
+ | 1 | `--org-policy` flag | `--org-policy https://github.com/myorg/policies.git` |
37
+ | 2 | `THOTH_ORG_POLICY` env var | `export THOTH_ORG_POLICY=https://github.com/myorg/policies.git` |
38
+ | 3 | **Active space's `governance.policy_repo`** | Set via `thothctl space update <name> --policy-repo <url>` |
39
+ | 4 | None (skip org policy) | No org rules applied |
40
+
41
+ ### Space Integration
42
+
43
+ When a space is active and has a `policy_repo` configured, organizational rules are loaded **automatically** — no flags or env vars needed:
44
+
45
+ ```bash
46
+ # 1. Configure your space with the org policy repo
47
+ thothctl space update platform-team --policy-repo https://github.com/myorg/org-policies.git
48
+
49
+ # 2. Activate the space
50
+ thothctl space activate platform-team
51
+
52
+ # 3. Run check — org rules load automatically
53
+ thothctl check project iac -p stack
54
+
55
+ # Output:
56
+ # 📜 Loading org policy from: /home/user/.thothcf/.policy_cache/abc123
57
+ # ✅ Organization policy check passed
58
+ ```
59
+
60
+ ### Skipping Org Policy (Project Exceptions)
61
+
62
+ Projects that have explicit exceptions from organizational rules can skip the check:
63
+
64
+ ```bash
65
+ thothctl check project iac -p stack --skip-org-policy
66
+ ```
67
+
68
+ This is useful for:
69
+ - Experimental/prototype projects not yet conforming to standards
70
+ - Legacy projects with approved exceptions
71
+ - Third-party imported projects
72
+
29
73
  ### How It Works
30
74
 
31
- 1. Set `THOTH_ORG_POLICY` to your org policy Git repo (or pass `--org-policy`)
75
+ 1. ThothCTL resolves the policy source (see resolution order above)
32
76
  2. The repo contains `rules/base.toml` + `rules/<project_type>.toml`
33
77
  3. ThothCTL merges org rules with project rules — **mandatory org rules cannot be weakened**
34
78
  4. Violations are reported with enforcement level (mandatory = fail, recommended = warn)
@@ -36,7 +80,11 @@ ThothCTL can enforce organizational standards that projects **cannot override**.
36
80
  ### Usage
37
81
 
38
82
  ```bash
39
- # Via env var (CI/CD recommended)
83
+ # Automatic via active space (preferred)
84
+ thothctl space activate platform-team
85
+ thothctl check project iac --enforcement hard
86
+
87
+ # Via env var (CI/CD)
40
88
  export THOTH_ORG_POLICY=https://github.com/myorg/org-policies.git
41
89
  thothctl check project iac --enforcement hard
42
90
 
@@ -44,11 +92,8 @@ thothctl check project iac --enforcement hard
44
92
  export THOTH_ORG_POLICY=https://github.com/myorg/org-policies.git@v1.0
45
93
  thothctl check project iac --enforcement hard
46
94
 
47
- # Via flag
95
+ # Via flag (explicit override)
48
96
  thothctl check project iac --org-policy /path/to/org-policies --enforcement hard
49
-
50
- # Local path (development)
51
- thothctl check project iac --org-policy ../org-iac-policies
52
97
  ```
53
98
 
54
99
  ### Enforcement Levels
@@ -111,8 +111,16 @@ Update an existing space's configuration:
111
111
 
112
112
  ```bash
113
113
  thothctl space update my-space --vcs-provider github --orchestration-tool terragrunt
114
+ thothctl space update my-space --policy-repo https://github.com/myorg/iac-policies.git
114
115
  ```
115
116
 
117
+ Available options:
118
+ - `-d, --description` — New description
119
+ - `-vcs, --vcs-provider` — Version control provider (`azure_repos`, `github`, `gitlab`)
120
+ - `-ot, --orchestration-tool` — Orchestration tool (`terragrunt`, `terramate`, `none`)
121
+ - `-tr, --terraform-registry` — Terraform registry URL
122
+ - `-pr, --policy-repo` — Git repository URL or local path for organization-level IaC policies
123
+
116
124
  ### Deleting a Space
117
125
 
118
126
  You can delete a space using the `thothctl remove space` command:
@@ -68,6 +68,29 @@ Usage: thothctl space show SPACE_NAME
68
68
  Show space configuration summary
69
69
  ```
70
70
 
71
+ ### Update Space Configuration
72
+
73
+ ```
74
+ Usage: thothctl space update SPACE_NAME [OPTIONS]
75
+
76
+ Update an existing space's configuration
77
+
78
+ Options:
79
+ -d, --description TEXT New description for the space
80
+ -vcs, --vcs-provider [azure_repos|github|gitlab]
81
+ -ot, --orchestration-tool [terragrunt|terramate|none]
82
+ -tr, --terraform-registry TEXT Terraform registry URL
83
+ -pr, --policy-repo TEXT Git URL or path for IaC policies
84
+ ```
85
+
86
+ ### Activate a Space
87
+
88
+ ```
89
+ Usage: thothctl space activate SPACE_NAME
90
+
91
+ Set a space as the active context
92
+ ```
93
+
71
94
  ### List Projects with Space Information
72
95
 
73
96
  ```
@@ -188,7 +188,7 @@ class CheckProjectIaCCommand(ClickCommand):
188
188
 
189
189
  try:
190
190
  # Run org policy check if source is provided
191
- org_violations = self._check_org_policy(directory, project_type, org_policy)
191
+ org_violations = self._check_org_policy(directory, project_type, org_policy, skip_org=kwargs.get('skip_org_policy', False))
192
192
 
193
193
  # Capture stdout to format it nicely
194
194
  captured_output = io.StringIO()
@@ -245,8 +245,12 @@ class CheckProjectIaCCommand(ClickCommand):
245
245
  self.logger.error(f"Failed to execute IaC project check: {str(e)}")
246
246
  raise
247
247
 
248
- def _check_org_policy(self, directory: str, project_type: str, org_policy=None):
248
+ def _check_org_policy(self, directory: str, project_type: str, org_policy=None, skip_org: bool = False):
249
249
  """Check project against organizational policy if available."""
250
+ if skip_org:
251
+ self.console.print("[dim]📜 Org policy check skipped (--skip-org-policy)[/dim]")
252
+ return None
253
+
250
254
  from .....services.check.org_policy_loader import get_org_policy_path, resolve_rules_dir
251
255
  from .....services.check.rule_merger import load_org_rules, merge_with_project, evaluate
252
256
 
@@ -355,4 +359,10 @@ cli = CheckProjectIaCCommand.as_click_command(
355
359
  type=click.Choice(["soft", "hard"], case_sensitive=False),
356
360
  default="soft",
357
361
  ),
362
+ click.option(
363
+ "--skip-org-policy",
364
+ is_flag=True,
365
+ default=False,
366
+ help="Skip organizational policy check (use when project has explicit exceptions)",
367
+ ),
358
368
  )
@@ -52,6 +52,7 @@ class IaCInvCommand(ClickCommand):
52
52
  framework_type: str = "auto",
53
53
  complete: bool = False,
54
54
  check_providers: bool = False,
55
+ check_provider_versions: bool = False,
55
56
  check_schema_compatibility: bool = False,
56
57
  provider_tool: str = "tofu",
57
58
  project_name: Optional[str] = None,
@@ -101,7 +102,7 @@ class IaCInvCommand(ClickCommand):
101
102
  framework_type=framework_type,
102
103
  complete=complete,
103
104
  check_providers=check_providers,
104
- check_provider_versions=check_versions, # Use unified flag for provider versions too
105
+ check_provider_versions=check_provider_versions,
105
106
  check_schema_compatibility=check_schema_compatibility,
106
107
  provider_tool=provider_tool,
107
108
  project_name=project_name,
@@ -181,8 +182,8 @@ class IaCInvCommand(ClickCommand):
181
182
  self.ui.print_info("🔍 Schema compatibility analysis enabled - this may take additional time")
182
183
 
183
184
  with self.ui.status_spinner("Creating infrastructure inventory..."):
184
- # When check_versions is enabled, automatically enable provider checking
185
- effective_check_providers = check_providers or check_versions
185
+ # Enable provider checking if provider versions are requested
186
+ effective_check_providers = check_providers or check_provider_versions
186
187
 
187
188
  inventory = await self.inventory_service.create_inventory(
188
189
  source_directory=source_dir,
@@ -192,7 +193,7 @@ class IaCInvCommand(ClickCommand):
192
193
  framework_type=framework_type,
193
194
  complete=complete,
194
195
  check_providers=effective_check_providers,
195
- check_provider_versions=check_versions,
196
+ check_provider_versions=check_provider_versions,
196
197
  check_schema_compatibility=check_schema_compatibility,
197
198
  provider_tool=provider_tool,
198
199
  project_name=project_name,
@@ -510,7 +511,7 @@ cli = IaCInvCommand.as_click_command(
510
511
  "--check-versions",
511
512
  is_flag=True,
512
513
  default=False,
513
- help="Check latest versions for modules and providers (includes provider version checking)",
514
+ help="Check latest versions for modules",
514
515
  ),
515
516
  click.option(
516
517
  "-updep",
@@ -557,7 +558,14 @@ cli = IaCInvCommand.as_click_command(
557
558
  "--check-providers",
558
559
  is_flag=True,
559
560
  default=False,
560
- help="Check and report provider information for each stack (automatically enabled with --check-versions)",
561
+ help="Check and report provider information for each stack",
562
+ ),
563
+ click.option(
564
+ "--check-provider-versions",
565
+ "-cpv",
566
+ is_flag=True,
567
+ default=False,
568
+ help="Check latest versions for providers (can be used independently or with --check-versions)",
561
569
  ),
562
570
  click.option(
563
571
  "--check-schema-compatibility",
@@ -16,12 +16,17 @@ def get_org_policy_path(org_policy: Optional[str] = None) -> Optional[str]:
16
16
  Resolution:
17
17
  1. Explicit --org-policy argument
18
18
  2. THOTH_ORG_POLICY env var
19
- 3. None (no org policy)
19
+ 3. Active space's governance.policy_repo
20
+ 4. None (no org policy)
20
21
 
21
22
  Returns:
22
23
  Absolute path to cached org policy repo, or None.
23
24
  """
24
25
  source = org_policy or os.environ.get("THOTH_ORG_POLICY")
26
+
27
+ if not source:
28
+ source = _get_active_space_policy_repo()
29
+
25
30
  if not source:
26
31
  return None
27
32
 
@@ -36,6 +41,33 @@ def get_org_policy_path(org_policy: Optional[str] = None) -> Optional[str]:
36
41
  return None
37
42
 
38
43
 
44
+ def _get_active_space_policy_repo() -> Optional[str]:
45
+ """Load policy_repo from the active space configuration."""
46
+ try:
47
+ import toml
48
+
49
+ active_file = Path.home() / ".thothcf" / "active_space"
50
+ if not active_file.exists():
51
+ return None
52
+
53
+ space_name = active_file.read_text(encoding="utf-8").strip()
54
+ if not space_name:
55
+ return None
56
+
57
+ config_path = Path.home() / ".thothcf" / "spaces.toml"
58
+ if not config_path.exists():
59
+ return None
60
+
61
+ config = toml.load(config_path)
62
+ space = config.get("spaces", {}).get(space_name, {})
63
+ policy_repo = space.get("governance", {}).get("policy_repo", "")
64
+
65
+ return policy_repo if policy_repo else None
66
+ except Exception as e:
67
+ logger.debug(f"Failed to load active space policy repo: {e}")
68
+ return None
69
+
70
+
39
71
  def resolve_rules_dir(org_path: str) -> Optional[str]:
40
72
  """Get the rules/ directory from an org policy repo."""
41
73
  rules_dir = os.path.join(org_path, "rules")
@@ -0,0 +1,2 @@
1
+ """Version module."""
2
+ __version__ = "0.18.4"
@@ -1,2 +0,0 @@
1
- """Version module."""
2
- __version__ = "0.18.2"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes