thothctl 0.30.2__tar.gz → 0.30.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.
- {thothctl-0.30.2 → thothctl-0.30.4}/PKG-INFO +1 -1
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/files_content.py +1 -1
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/iac_grunt_graph.py +139 -7
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/version.py +1 -1
- {thothctl-0.30.2 → thothctl-0.30.4}/.devcontainer/Dockerfile +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.devcontainer/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.devcontainer/devcontainer.json +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.github/workflows/docs.yml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.github/workflows/python-publish.yml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.gitignore +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.pre-commit-config.yaml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.pydocstyle +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/.readthedocs.yaml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/CHANGELOG.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/CONTRIBUTING.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/Dockerfile +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/LICENSE +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/catalog/catalog-info.yaml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/dashboard/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/ai-review/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/ai-review/agentcore.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/blast-radius.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/check_environment.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/check_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/check_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/check_project_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/check_space.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/cost-analysis.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/customizing_rules.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/deps-advanced.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/deps.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/drift-detection.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/plan.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/dashboard/dashboard_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/customizing_docs.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/document_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/document_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/mermaid_examples.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/mermaid_quickref.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/document/use_cases.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/generate/generate_components.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/generate/generate_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/generate/generate_stacks.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/init/init.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/init/init_space.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/inventory_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/inventory_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/list/list_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/list/list_projects.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/list/list_spaces.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/mcp/mcp.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/project_cleanup.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/project_convert.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/project_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/project_upgrade.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/project/use_cases.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/remove/remove_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/remove/remove_project.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/remove/remove_space.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/scan/iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/scan/scan_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/scan/scan_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/scan/use_cases.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/space/space_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/workflow/workflow_devsecops.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/workflow/workflow_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/concepts.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/cross_platform_support.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/framework_architecture.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/infrastructure_composition.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/policy_as_code.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/roadmap_fdi.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/software_architecture.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/space_configuration.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/specs/phase1.10_plan_validation.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/specs/phase1.9_composition_generation.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/specs/phase1_intent_to_iac.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/specs/phase2.5.1_autonomy_model.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/ai_dlc.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/check_command.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/inventory_command.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/space_management.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/tasks/create_template.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/tasks/workflow_implementation_plan.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/how_it_works.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/commnad_init.png +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/framework/thothforge-framework.svg +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/framework/thothfr.png +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/icon-light.png +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/icon.png +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/init_project.gif +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/img/stable/scan_report_example.png +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/includes/abbreviations.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/index.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/installation/devcontainer_setup.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/installation/linux_installation.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/installation/windows_installation.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/javascripts/tablesort.js +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/mcp.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/navigation.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/quick_start.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/requirements.txt +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/stylesheets/extra-enhanced.css +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/stylesheets/extra.css +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/telemetry.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/template_engine/cli_commands_audit.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/template_engine/for_developers.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/template_engine/for_platform_engineers.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/template_engine/github_templates.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/template_engine/template_engine.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/toolkit_overview.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/troubleshooting/linux_troubleshooting.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/troubleshooting/macos_troubleshooting.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/troubleshooting/troubleshooting.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/troubleshooting/windows_troubleshooting.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/docs/whats_new.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/mkdocs.yaml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/pyproject.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/scripts/check_output_consistency.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/scripts/run_mcp_server.sh +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/application/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/autocomplete.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/history.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/override.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/report.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/config.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/environment.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/project/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/project.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/dashboard/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/dashboard/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/document/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/document/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/document/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/document/commands/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/commands/component.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/commands/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/generate/commands/stacks.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/commands/env.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/commands/project.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/commands/space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/init/commands/template.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/inventory/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/inventory/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/inventory/commands/check.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/inventory/commands/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/commands/projects.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/commands/spaces.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/list/commands/templates.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/commands/register.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/commands/server.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/commands/status.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/mcp/commands/stop.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/commands/cleanup.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/commands/convert.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/project/commands/upgrade.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/quickstart/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/quickstart/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/remove/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/remove/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/remove/project.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/remove/space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/scan/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/scan/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/scan/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/scan/commands/iac.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/activate.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/deactivate.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/export_space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/import_space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/show.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/space/commands/update.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/upgrade/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/workflow/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/workflow/cli.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/workflow/commands/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/workflow/commands/devsecops.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/workflow/commands/run.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/.thothcf.setup.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/.thothcf_home.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/.thothcf_module.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/.thothcf_project.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/common.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/constants.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/default_values.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/defaults.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/settings.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/template_config.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/template_configs.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/templates.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/config/validation.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/cli_ui.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/commands.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/config.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/github/get_github.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/pattern_names.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/logger.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/telemetry.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/core/version_tools.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/domain/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/domain/interfaces/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/domain/models/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/mcp/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/mcp/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/mcp/server.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/ai_agent.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/config/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/config/autonomy.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/decision_engine.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/main.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/memory.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/orchestrator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/kiro_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/strands_agent.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/tracing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/environment/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/environment/check_environment.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/org_policy_loader.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cfn_blast_radius_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/check_origin_version.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/check_project_structure.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/ecr_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/cfn_drift_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/drift/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/risk_assessment.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/rule_merger.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/rules_compiler.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/dashboard/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/dashboard/data_loader.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/architecture_renderer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/create_documentation.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/files_scan.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/iac_documentation.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/iac_grunt_info.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/document/topology_generator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_stacks/terragrunt.hcl +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/config.yaml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/create_code.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/create_component.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/create_template.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/files_content.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/code_generator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/composition_models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/context_builder.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/generation_history.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/intent_decomposer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/intent_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/parameter_resolver.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/plan_runner.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/plan_validator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/project_assembler.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/prompts.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/scaffold_loader.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/state_resolver.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/generate/intent/validator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/environment/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/environment/install_tools.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/environment/prerequisite_checker.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/environment/tool_packs.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/project/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/project/project.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/example_space.toml +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/export_import.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/inheritance.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/init/space/terraform_module_cache.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/cdk_parsers.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/cdk_sbom_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/changelog_parser.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/defectdojo_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/dtrack_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/inventory_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/report_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/secobserve_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/update_versions.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/inventory/version_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/mcp/README.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/mcp/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/mcp/simple_http_server.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/mcp/stdio_server.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/cleanup/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/conversion_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/get_project_data.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/post_init.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/project_converter.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/project_defaults.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/upgrade/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/compliance_review.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/import_reports.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/report_parser.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/sarif_output.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scan_history.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scan_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/checkov.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/kics.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/opa.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/scanners.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/scan/scanners/trivy.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/custom_workflow_engine.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/base.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/build.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/deploy.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/develop.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/monitor.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/plan.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/secure.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/phases/test.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/services/workflow/workflow_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/templates/ai_reports/pr_comment.md +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/templates/reports/inventory_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/templates/reports/inventory_report.js +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/templates/unified_report_styles.css +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/banner.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/create_html_reports.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/delete_directory.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/fix_report_styling.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/render_scan_report.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/report_html_utils.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/dashboard.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/index_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/individual_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/simple_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/crypto.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/git_changes.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/modules_ops/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/platform_utils.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/template_loader.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/utils/thoth_colors.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/wellcome_banner.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/conftest.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_agentcore_entrypoint.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_apply_fix.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_autonomy.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_decision_engine.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_fix_patterns.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_memory.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_orchestrator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_pr_decision.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ai_safety_guard.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_aws_pricing_client.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_azure_devops_pr_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_bedrock_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cdk_inventory.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cdk_language_selection.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cfn_blast_radius.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cfn_drift_detection.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_context_steering.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cost_analyzer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cost_models.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cost_policy_enforcement.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_cost_pr_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_dashboard_loading_fix.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_dashboard_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_defectdojo_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_drift.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_drift_detection.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_dtrack_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_ec2_pricing.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_generate_iac_codegen.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_generate_iac_context.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_generate_iac_prompts.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_generate_iac_service.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_generate_iac_validator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_github_pr_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_iac_cost_integration.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_init_ai_tools.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_init_template_params.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_intent_quick_wins.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_intent_rules_integration.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_inventory_pr_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_kics_scanner.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_kiro_provider.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_mermaid_edge_labels.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_new_cost_providers.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_opa_data_files.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_parallel_scan.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_plan_validation.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_platform_utils.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_pr_comment_publisher.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_provider_source_url_fix.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_provider_versions.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_rules_compiler.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_scan_cfn_support.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_scan_command.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_scan_pr_comments.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_space_command.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_space_management.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_stack_optimizer.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_template_url_fix.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_terragrunt_parser.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_topology_generator.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tests/test_workflow_integration.py +0 -0
- {thothctl-0.30.2 → thothctl-0.30.4}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: thothctl
|
|
3
|
-
Version: 0.30.
|
|
3
|
+
Version: 0.30.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
|
|
@@ -431,16 +431,23 @@ class DependencyGraphGenerator:
|
|
|
431
431
|
def _generate_graph(self, directory: Path) -> Optional[str]:
|
|
432
432
|
"""Generate graph using terragrunt.
|
|
433
433
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
434
|
+
To show the COMPLETE dependency DAG (full blast radius) for the stack
|
|
435
|
+
being documented, `terragrunt dag graph` is run from the terragrunt
|
|
436
|
+
project root (where ``root.hcl`` lives). Running from a leaf only
|
|
437
|
+
reports that unit's *direct* dependencies, which hides transitive
|
|
438
|
+
dependencies (dependencies-of-dependencies).
|
|
439
|
+
|
|
440
|
+
The full-project DAG from the root is then filtered down to only the
|
|
441
|
+
nodes reachable from the current stack (its transitive dependency
|
|
442
|
+
closure), so each stack's graph shows its complete hierarchy without
|
|
443
|
+
unrelated sibling stacks.
|
|
438
444
|
"""
|
|
439
|
-
|
|
445
|
+
resolved = directory.resolve()
|
|
446
|
+
run_dir, stack_key = self._compute_run_context(resolved)
|
|
440
447
|
|
|
441
448
|
command = ["terragrunt", "dag", "graph", "--non-interactive"]
|
|
442
449
|
|
|
443
|
-
stdout, stderr, return_code = self.executor.execute(command,
|
|
450
|
+
stdout, stderr, return_code = self.executor.execute(command, run_dir)
|
|
444
451
|
|
|
445
452
|
if return_code != 0:
|
|
446
453
|
self.logger.error("Terragrunt command failed: %s", stderr)
|
|
@@ -454,8 +461,26 @@ class DependencyGraphGenerator:
|
|
|
454
461
|
)
|
|
455
462
|
return None
|
|
456
463
|
|
|
464
|
+
# If we ran from the terragrunt root for a specific stack, filter the
|
|
465
|
+
# full DAG down to that stack's transitive dependency closure.
|
|
466
|
+
if stack_key is not None:
|
|
467
|
+
filtered = self._filter_dag_to_stack(stdout, stack_key)
|
|
468
|
+
if filtered is None:
|
|
469
|
+
# Stack not found in DAG or has no dependencies — nothing to render
|
|
470
|
+
self.logger.debug(
|
|
471
|
+
"Stack %s not found in DAG or has no dependencies", stack_key
|
|
472
|
+
)
|
|
473
|
+
return None
|
|
474
|
+
stdout = filtered
|
|
475
|
+
# Re-check for emptiness after filtering (isolated stack)
|
|
476
|
+
if "->" not in stdout.strip():
|
|
477
|
+
self.logger.debug(
|
|
478
|
+
"Isolated stack %s (no dependencies), skipping graph", stack_key
|
|
479
|
+
)
|
|
480
|
+
return None
|
|
481
|
+
|
|
457
482
|
# Also skip if the only node is "." with no edges (isolated stack)
|
|
458
|
-
if '"."' in
|
|
483
|
+
if '"."' in stdout.strip() and "->" not in stdout.strip():
|
|
459
484
|
self.logger.debug(
|
|
460
485
|
"Isolated stack %s (no dependencies), skipping graph", directory
|
|
461
486
|
)
|
|
@@ -516,6 +541,113 @@ class DependencyGraphGenerator:
|
|
|
516
541
|
current = parent
|
|
517
542
|
return directory
|
|
518
543
|
|
|
544
|
+
def _compute_run_context(self, directory: Path):
|
|
545
|
+
"""Decide where to run `terragrunt dag graph` and which node to focus.
|
|
546
|
+
|
|
547
|
+
Returns a tuple ``(run_dir, stack_key)``:
|
|
548
|
+
- ``run_dir``: directory to run ``terragrunt dag graph`` from.
|
|
549
|
+
- ``stack_key``: the current stack's node key as it appears in the DAG
|
|
550
|
+
produced from ``run_dir`` (i.e. the stack path relative to the
|
|
551
|
+
terragrunt root), or ``None`` when ``directory`` is itself a
|
|
552
|
+
stacks root and the full DAG should be rendered as-is.
|
|
553
|
+
|
|
554
|
+
For a leaf stack we run from the terragrunt root so the DAG includes
|
|
555
|
+
transitive dependencies, then filter to this stack's closure.
|
|
556
|
+
"""
|
|
557
|
+
resolved = directory.resolve()
|
|
558
|
+
|
|
559
|
+
# Is this directory itself a stacks root (has multiple child units)?
|
|
560
|
+
child_hcl_files = [
|
|
561
|
+
f
|
|
562
|
+
for f in resolved.rglob("terragrunt.hcl")
|
|
563
|
+
if ".terragrunt-cache" not in str(f) and f.parent != resolved
|
|
564
|
+
]
|
|
565
|
+
if len(child_hcl_files) > 1:
|
|
566
|
+
# Already a root/aggregate context — render the full DAG as-is.
|
|
567
|
+
return resolved, None
|
|
568
|
+
|
|
569
|
+
# Leaf stack: run from the terragrunt root for the complete DAG.
|
|
570
|
+
root = self._find_terragrunt_root(resolved)
|
|
571
|
+
if root == resolved:
|
|
572
|
+
# No root.hcl found above — fall back to running from the leaf.
|
|
573
|
+
return resolved, None
|
|
574
|
+
|
|
575
|
+
try:
|
|
576
|
+
stack_key = str(resolved.relative_to(root))
|
|
577
|
+
except ValueError:
|
|
578
|
+
# resolved is not under root — fall back to leaf behavior.
|
|
579
|
+
return resolved, None
|
|
580
|
+
|
|
581
|
+
return root, stack_key
|
|
582
|
+
|
|
583
|
+
def _filter_dag_to_stack(self, dot_content: str, stack_key: str):
|
|
584
|
+
"""Filter a full-project DAG to a stack's transitive dependency closure.
|
|
585
|
+
|
|
586
|
+
Parses the DOT graph, performs a DFS from ``stack_key`` following
|
|
587
|
+
dependency edges, and emits a new DOT containing only the reachable
|
|
588
|
+
nodes/edges. The focal stack's node is relabeled to ``"."`` so the
|
|
589
|
+
downstream path-simplification (which maps ``"."`` to the stack name)
|
|
590
|
+
continues to work.
|
|
591
|
+
|
|
592
|
+
Returns the filtered DOT string, or ``None`` if the stack has no
|
|
593
|
+
node in the graph or no dependency edges.
|
|
594
|
+
"""
|
|
595
|
+
import re
|
|
596
|
+
|
|
597
|
+
# Normalize key (strip any trailing slash)
|
|
598
|
+
stack_key = stack_key.rstrip("/")
|
|
599
|
+
|
|
600
|
+
# Parse edges: source -> target
|
|
601
|
+
adjacency = {}
|
|
602
|
+
all_nodes = set()
|
|
603
|
+
edge_re = re.compile(r'"([^"]+)"\s*->\s*"([^"]+)"')
|
|
604
|
+
node_re = re.compile(r'^\s*"([^"]+)"\s*;')
|
|
605
|
+
for line in dot_content.split("\n"):
|
|
606
|
+
m = edge_re.search(line)
|
|
607
|
+
if m:
|
|
608
|
+
src, dst = m.group(1), m.group(2)
|
|
609
|
+
adjacency.setdefault(src, set()).add(dst)
|
|
610
|
+
all_nodes.add(src)
|
|
611
|
+
all_nodes.add(dst)
|
|
612
|
+
continue
|
|
613
|
+
nm = node_re.match(line)
|
|
614
|
+
if nm:
|
|
615
|
+
all_nodes.add(nm.group(1))
|
|
616
|
+
|
|
617
|
+
if stack_key not in all_nodes:
|
|
618
|
+
return None
|
|
619
|
+
|
|
620
|
+
# DFS from the stack following dependency edges (transitive closure).
|
|
621
|
+
reachable = set()
|
|
622
|
+
stack = [stack_key]
|
|
623
|
+
while stack:
|
|
624
|
+
node = stack.pop()
|
|
625
|
+
if node in reachable:
|
|
626
|
+
continue
|
|
627
|
+
reachable.add(node)
|
|
628
|
+
for nxt in adjacency.get(node, ()): # dependencies of node
|
|
629
|
+
if nxt not in reachable:
|
|
630
|
+
stack.append(nxt)
|
|
631
|
+
|
|
632
|
+
# If the stack has no outgoing dependency edges, there is nothing
|
|
633
|
+
# meaningful to render.
|
|
634
|
+
if not adjacency.get(stack_key):
|
|
635
|
+
return None
|
|
636
|
+
|
|
637
|
+
def relabel(node: str) -> str:
|
|
638
|
+
return "." if node == stack_key else node
|
|
639
|
+
|
|
640
|
+
# Rebuild DOT with only reachable nodes/edges.
|
|
641
|
+
lines = ["digraph {"]
|
|
642
|
+
for node in sorted(reachable):
|
|
643
|
+
lines.append(f'\t"{relabel(node)}" ;')
|
|
644
|
+
for src in sorted(reachable):
|
|
645
|
+
for dst in sorted(adjacency.get(src, ())):
|
|
646
|
+
if dst in reachable:
|
|
647
|
+
lines.append(f'\t"{relabel(src)}" -> "{relabel(dst)}";')
|
|
648
|
+
lines.append("}")
|
|
649
|
+
return "\n".join(lines)
|
|
650
|
+
|
|
519
651
|
def _parse_terragrunt_hcl(self, hcl_path: Path) -> dict:
|
|
520
652
|
"""Parse a terragrunt.hcl file to extract dependency information."""
|
|
521
653
|
import hcl2
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/ai-review/agent_specifications.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/check/cost-analysis-quick-reference.md
RENAMED
|
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
|
|
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
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/frameworks/terraform.md
RENAMED
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/commands/inventory/frameworks/terragrunt.md
RENAMED
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/platform_engineering_templates.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/docs/framework/use_cases/tasks/workflow_implementation_plan.md
RENAMED
|
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
|
|
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
|
|
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
|
|
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
|
{thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/ai_review/commands/configure_decisions.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
{thothctl-0.30.2 → thothctl-0.30.4}/src/thothctl/commands/check/commands/project/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|