thothctl 0.29.0__tar.gz → 0.30.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {thothctl-0.29.0 → thothctl-0.30.0}/PKG-INFO +1 -1
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/iac.py +25 -2
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/generation_history.py +54 -25
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_service.py +333 -280
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/models.py +5 -1
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_validator.py +32 -3
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/scaffold_loader.py +5 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/validator.py +17 -11
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/version.py +1 -1
- {thothctl-0.29.0 → thothctl-0.30.0}/.devcontainer/Dockerfile +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.devcontainer/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.devcontainer/devcontainer.json +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.github/workflows/docs.yml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.github/workflows/python-publish.yml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.gitignore +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.pre-commit-config.yaml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.pydocstyle +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/.readthedocs.yaml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/CHANGELOG.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/CONTRIBUTING.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/Dockerfile +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/LICENSE +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/catalog/catalog-info.yaml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/dashboard/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/ai-review/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/ai-review/agentcore.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/blast-radius.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/check_environment.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/check_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/check_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/check_project_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/check_space.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/customizing_rules.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/deps-advanced.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/deps.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/drift-detection.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/check/plan.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/dashboard/dashboard_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/customizing_docs.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/document_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/document_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_examples.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_quickref.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/document/use_cases.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/generate/generate_components.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/generate/generate_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/generate/generate_stacks.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/init/init.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/init/init_space.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/list/list_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/list/list_projects.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/list/list_spaces.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/mcp/mcp.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/project_cleanup.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/project_convert.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/project_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/project_upgrade.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/project/use_cases.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/remove/remove_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/remove/remove_project.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/remove/remove_space.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/scan/iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/scan/scan_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/scan/scan_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/scan/use_cases.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/space/space_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_devsecops.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/concepts.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/cross_platform_support.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/framework_architecture.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/infrastructure_composition.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/policy_as_code.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/roadmap_fdi.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/software_architecture.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/space_configuration.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/specs/phase1.10_plan_validation.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/specs/phase1.9_composition_generation.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/specs/phase1_intent_to_iac.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/specs/phase2.5.1_autonomy_model.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/ai_dlc.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/check_command.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/inventory_command.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/space_management.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/tasks/create_template.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/framework/use_cases/tasks/workflow_implementation_plan.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/how_it_works.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/commnad_init.png +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/framework/thothforge-framework.svg +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/framework/thothfr.png +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/icon-light.png +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/icon.png +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/init_project.gif +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/img/stable/scan_report_example.png +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/includes/abbreviations.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/index.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/installation/devcontainer_setup.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/installation/linux_installation.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/installation/windows_installation.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/javascripts/tablesort.js +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/mcp.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/navigation.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/quick_start.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/requirements.txt +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/stylesheets/extra-enhanced.css +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/stylesheets/extra.css +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/telemetry.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/template_engine/cli_commands_audit.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/template_engine/for_developers.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/template_engine/for_platform_engineers.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/template_engine/github_templates.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/template_engine/template_engine.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/toolkit_overview.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/troubleshooting/linux_troubleshooting.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/troubleshooting/macos_troubleshooting.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/troubleshooting/troubleshooting.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/troubleshooting/windows_troubleshooting.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/docs/whats_new.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/mkdocs.yaml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/pyproject.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/scripts/check_output_consistency.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/scripts/run_mcp_server.sh +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/application/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/autocomplete.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/decide.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/history.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/override.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/report.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/config.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/environment.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/iac.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/iac.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/check/commands/space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/dashboard/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/dashboard/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/document/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/document/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/document/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/document/commands/iac.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/component.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/stacks.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/commands/env.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/commands/project.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/commands/space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/init/commands/template.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/inventory/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/inventory/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/check.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/iac.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/commands/projects.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/commands/spaces.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/list/commands/templates.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/register.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/server.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/status.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/stop.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/commands/cleanup.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/commands/convert.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/project/commands/upgrade.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/quickstart/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/quickstart/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/remove/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/remove/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/remove/project.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/remove/space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/scan/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/scan/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/iac.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/activate.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/deactivate.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/export_space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/import_space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/show.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/space/commands/update.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/upgrade/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/workflow/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/workflow/cli.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/devsecops.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/run.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/.thothcf.setup.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/.thothcf_home.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/.thothcf_module.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/.thothcf_project.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/common.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/constants.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/default_values.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/defaults.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/settings.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/template_config.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/template_configs.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/templates.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/config/validation.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/cli_ui.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/commands.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/config.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/github/get_github.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/pattern_names.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/logger.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/telemetry.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/core/version_tools.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/domain/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/domain/interfaces/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/domain/models/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/mcp/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/mcp/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/mcp/server.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/ai_agent.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/autonomy.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/decision_engine.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/main.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/memory.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/orchestrator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/kiro_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/safety_guard.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/strands_agent.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/tracing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/environment/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/environment/check_environment.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/org_policy_loader.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cfn_blast_radius_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/check_origin_version.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/check_project_structure.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecr_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/cfn_drift_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/risk_assessment.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/rule_merger.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/rules_compiler.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/dashboard/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/dashboard/data_loader.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/architecture_renderer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/create_documentation.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/files_content.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/files_scan.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/iac_documentation.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_info.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/document/topology_generator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/terragrunt.hcl +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/config.yaml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_code.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_template.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/files_content.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/code_generator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/composition_models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/context_builder.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_decomposer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/parameter_resolver.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_runner.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/project_assembler.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/prompts.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/state_resolver.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/environment/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/environment/install_tools.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/environment/prerequisite_checker.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/environment/tool_packs.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/project/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/project/project.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/example_space.toml +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/export_import.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/inheritance.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/init/space/terraform_module_cache.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_parsers.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_sbom_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/changelog_parser.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/defectdojo_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/dtrack_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/inventory_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/report_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/secobserve_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/update_versions.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/inventory/version_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/mcp/README.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/mcp/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/mcp/simple_http_server.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/mcp/stdio_server.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/conversion_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/get_project_data.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/post_init.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_converter.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_defaults.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/compliance_review.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/import_reports.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/report_parser.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/sarif_output.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scan_history.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scan_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/checkov.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/kics.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/opa.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scanners.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/trivy.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/custom_workflow_engine.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/base.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/build.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/deploy.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/develop.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/monitor.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/plan.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/secure.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/test.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/workflow/workflow_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/templates/ai_reports/pr_comment.md +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.js +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/templates/unified_report_styles.css +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/banner.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/create_html_reports.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/delete_directory.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/fix_report_styling.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/render_scan_report.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/report_html_utils.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/dashboard.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/index_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/individual_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/simple_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/crypto.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/git_changes.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/platform_utils.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/template_loader.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/utils/thoth_colors.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/wellcome_banner.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/conftest.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_agentcore_entrypoint.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_apply_fix.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_autonomy.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_decision_engine.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_fix_patterns.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_memory.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_orchestrator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_pr_decision.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ai_safety_guard.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_aws_pricing_client.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_azure_devops_pr_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_bedrock_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cdk_inventory.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cdk_language_selection.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cfn_blast_radius.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cfn_drift_detection.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_context_steering.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cost_analyzer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cost_models.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cost_policy_enforcement.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_cost_pr_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_dashboard_loading_fix.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_dashboard_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_defectdojo_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_drift.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_drift_detection.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_dtrack_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_ec2_pricing.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_generate_iac_codegen.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_generate_iac_context.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_generate_iac_prompts.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_generate_iac_service.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_generate_iac_validator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_github_pr_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_iac_cost_integration.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_init_ai_tools.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_init_template_params.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_intent_quick_wins.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_intent_rules_integration.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_inventory_pr_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_kics_scanner.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_kiro_provider.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_mermaid_edge_labels.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_new_cost_providers.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_opa_data_files.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_parallel_scan.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_plan_validation.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_platform_utils.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_pr_comment_publisher.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_provider_source_url_fix.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_provider_versions.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_rules_compiler.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_scan_cfn_support.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_scan_command.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_scan_pr_comments.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_space_command.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_space_management.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_stack_optimizer.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_template_url_fix.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_terragrunt_parser.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_topology_generator.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tests/test_workflow_integration.py +0 -0
- {thothctl-0.29.0 → thothctl-0.30.0}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: thothctl
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.30.0
|
|
4
4
|
Summary: A CLI for Developer Control Plane. Accelerate your cloud IaC deployments.
|
|
5
5
|
Project-URL: SourceCode, https://github.com/thothforge/thothctl
|
|
6
6
|
Project-URL: HomePage, https://github.com/thothforge/thothctl
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""CLI command: thothctl generate iac — Generate IaC from natural language intent."""
|
|
2
2
|
|
|
3
|
+
import logging
|
|
3
4
|
from typing import Optional
|
|
4
5
|
|
|
5
6
|
import click
|
|
@@ -7,6 +8,8 @@ import click
|
|
|
7
8
|
from ....core.cli_ui import CliUI
|
|
8
9
|
from ....core.commands import ClickCommand
|
|
9
10
|
|
|
11
|
+
logger = logging.getLogger(__name__)
|
|
12
|
+
|
|
10
13
|
|
|
11
14
|
class GenerateIaCCommand(ClickCommand):
|
|
12
15
|
"""Generate governed Infrastructure as Code from natural language intent."""
|
|
@@ -65,6 +68,7 @@ class GenerateIaCCommand(ClickCommand):
|
|
|
65
68
|
plan_iam_role=plan_iam_role,
|
|
66
69
|
plan_profile=plan_profile,
|
|
67
70
|
project_type=project_type,
|
|
71
|
+
plan_filter=plan_filter,
|
|
68
72
|
)
|
|
69
73
|
|
|
70
74
|
# Show intent
|
|
@@ -149,11 +153,21 @@ class GenerateIaCCommand(ClickCommand):
|
|
|
149
153
|
# Display results
|
|
150
154
|
if not result.success:
|
|
151
155
|
self.ui.print_error(f"Generation failed: {result.error}")
|
|
156
|
+
if result.raw_response:
|
|
157
|
+
self.ui.print_info(
|
|
158
|
+
"The raw AI response was saved to generation history for "
|
|
159
|
+
"debugging (view via the dashboard Generation tab or "
|
|
160
|
+
"generation_history.db)."
|
|
161
|
+
)
|
|
152
162
|
# Still record failed runs to history
|
|
153
163
|
try:
|
|
154
164
|
import time as _time
|
|
155
165
|
|
|
156
|
-
_elapsed =
|
|
166
|
+
_elapsed = (
|
|
167
|
+
_time.time() - self._start_time
|
|
168
|
+
if hasattr(self, "_start_time")
|
|
169
|
+
else 0
|
|
170
|
+
)
|
|
157
171
|
from ....services.generate.intent.generation_history import (
|
|
158
172
|
save_generation_run,
|
|
159
173
|
)
|
|
@@ -308,6 +322,7 @@ class GenerateIaCCommand(ClickCommand):
|
|
|
308
322
|
plan_iam_role: Optional[str],
|
|
309
323
|
plan_profile: Optional[str],
|
|
310
324
|
project_type: str,
|
|
325
|
+
plan_filter: Optional[str] = None,
|
|
311
326
|
) -> Optional[dict]:
|
|
312
327
|
"""Build plan validation config from CLI flags + .thothcf.toml.
|
|
313
328
|
|
|
@@ -346,6 +361,12 @@ class GenerateIaCCommand(ClickCommand):
|
|
|
346
361
|
elif os.environ.get("THOTH_PLAN_AWS_PROFILE"):
|
|
347
362
|
config["aws_profile"] = os.environ["THOTH_PLAN_AWS_PROFILE"]
|
|
348
363
|
|
|
364
|
+
# Stack filter for targeted plan validation
|
|
365
|
+
if plan_filter:
|
|
366
|
+
config["stack_filter"] = plan_filter
|
|
367
|
+
elif os.environ.get("THOTH_PLAN_FILTER"):
|
|
368
|
+
config["stack_filter"] = os.environ["THOTH_PLAN_FILTER"]
|
|
369
|
+
|
|
349
370
|
# Always pass project type for routing
|
|
350
371
|
config["project_type"] = project_type
|
|
351
372
|
|
|
@@ -492,6 +513,8 @@ cli = GenerateIaCCommand.as_click_command(
|
|
|
492
513
|
click.option(
|
|
493
514
|
"--plan-filter",
|
|
494
515
|
default=None,
|
|
495
|
-
help="Terragrunt filter pattern for targeted plan validation"
|
|
516
|
+
help="Terragrunt filter pattern for targeted plan validation "
|
|
517
|
+
"(scopes 'full-project' plan validation to matching stacks). "
|
|
518
|
+
"Also settable via THOTH_PLAN_FILTER or [generation.plan].stack_filter.",
|
|
496
519
|
),
|
|
497
520
|
)
|
{thothctl-0.29.0 → thothctl-0.30.0}/src/thothctl/services/generate/intent/generation_history.py
RENAMED
|
@@ -6,8 +6,6 @@ and generated file listings. Powers the dashboard Generation tab.
|
|
|
6
6
|
Database: ~/.thothcf/generation_history.db
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
import json
|
|
10
|
-
import os
|
|
11
9
|
import sqlite3
|
|
12
10
|
import uuid
|
|
13
11
|
from datetime import datetime
|
|
@@ -37,7 +35,8 @@ CREATE TABLE IF NOT EXISTS generation_runs (
|
|
|
37
35
|
violations_initial INTEGER DEFAULT 0,
|
|
38
36
|
violations_final INTEGER DEFAULT 0,
|
|
39
37
|
output_dir TEXT DEFAULT '',
|
|
40
|
-
plan_validation TEXT DEFAULT 'disabled'
|
|
38
|
+
plan_validation TEXT DEFAULT 'disabled',
|
|
39
|
+
raw_response TEXT DEFAULT ''
|
|
41
40
|
);
|
|
42
41
|
|
|
43
42
|
CREATE TABLE IF NOT EXISTS generation_files (
|
|
@@ -82,9 +81,26 @@ def _get_conn() -> sqlite3.Connection:
|
|
|
82
81
|
conn = sqlite3.connect(str(DB_PATH))
|
|
83
82
|
conn.row_factory = sqlite3.Row
|
|
84
83
|
conn.executescript(_SCHEMA)
|
|
84
|
+
_migrate(conn)
|
|
85
85
|
return conn
|
|
86
86
|
|
|
87
87
|
|
|
88
|
+
def _migrate(conn: sqlite3.Connection) -> None:
|
|
89
|
+
"""Apply lightweight, idempotent migrations for pre-existing databases.
|
|
90
|
+
|
|
91
|
+
CREATE TABLE IF NOT EXISTS does not add columns to an already-existing
|
|
92
|
+
table, so newly introduced columns are added here via ALTER TABLE.
|
|
93
|
+
"""
|
|
94
|
+
existing = {
|
|
95
|
+
row[1] for row in conn.execute("PRAGMA table_info(generation_runs)").fetchall()
|
|
96
|
+
}
|
|
97
|
+
if "raw_response" not in existing:
|
|
98
|
+
conn.execute(
|
|
99
|
+
"ALTER TABLE generation_runs ADD COLUMN raw_response TEXT DEFAULT ''"
|
|
100
|
+
)
|
|
101
|
+
conn.commit()
|
|
102
|
+
|
|
103
|
+
|
|
88
104
|
def save_generation_run(
|
|
89
105
|
intent: str,
|
|
90
106
|
result: Any,
|
|
@@ -126,8 +142,9 @@ def save_generation_run(
|
|
|
126
142
|
(id, timestamp, intent, project_type, composition, output_mode,
|
|
127
143
|
space, provider, model, success, error, files_count, iterations,
|
|
128
144
|
context_tokens, generation_tokens, duration_seconds,
|
|
129
|
-
violations_initial, violations_final, output_dir, plan_validation
|
|
130
|
-
|
|
145
|
+
violations_initial, violations_final, output_dir, plan_validation,
|
|
146
|
+
raw_response)
|
|
147
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""",
|
|
131
148
|
(
|
|
132
149
|
run_id,
|
|
133
150
|
datetime.now().isoformat(),
|
|
@@ -149,6 +166,8 @@ def save_generation_run(
|
|
|
149
166
|
result.validation.total_violations if result.validation else 0,
|
|
150
167
|
output_dir or "",
|
|
151
168
|
plan_validation,
|
|
169
|
+
# Only persisted on failed parses; truncate defensively.
|
|
170
|
+
(getattr(result, "raw_response", None) or "")[:10000],
|
|
152
171
|
),
|
|
153
172
|
)
|
|
154
173
|
|
|
@@ -188,7 +207,7 @@ def save_generation_run(
|
|
|
188
207
|
conn.commit()
|
|
189
208
|
return run_id
|
|
190
209
|
|
|
191
|
-
except Exception
|
|
210
|
+
except Exception:
|
|
192
211
|
conn.rollback()
|
|
193
212
|
raise
|
|
194
213
|
finally:
|
|
@@ -335,33 +354,43 @@ def _compute_metrics(
|
|
|
335
354
|
}
|
|
336
355
|
|
|
337
356
|
# Add success condition to existing WHERE
|
|
338
|
-
success_where =
|
|
339
|
-
f"{where} AND success = 1" if where else "WHERE success = 1"
|
|
340
|
-
)
|
|
357
|
+
success_where = f"{where} AND success = 1" if where else "WHERE success = 1"
|
|
341
358
|
|
|
342
359
|
success = conn.execute(
|
|
343
360
|
f"SELECT COUNT(*) FROM generation_runs {success_where}", params
|
|
344
361
|
).fetchone()[0]
|
|
345
362
|
|
|
346
|
-
avg_duration =
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
363
|
+
avg_duration = (
|
|
364
|
+
conn.execute(
|
|
365
|
+
f"SELECT AVG(duration_seconds) FROM generation_runs {success_where}",
|
|
366
|
+
params,
|
|
367
|
+
).fetchone()[0]
|
|
368
|
+
or 0
|
|
369
|
+
)
|
|
350
370
|
|
|
351
|
-
avg_iterations =
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
371
|
+
avg_iterations = (
|
|
372
|
+
conn.execute(
|
|
373
|
+
f"SELECT AVG(iterations) FROM generation_runs {success_where}",
|
|
374
|
+
params,
|
|
375
|
+
).fetchone()[0]
|
|
376
|
+
or 0
|
|
377
|
+
)
|
|
355
378
|
|
|
356
|
-
total_tokens =
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
379
|
+
total_tokens = (
|
|
380
|
+
conn.execute(
|
|
381
|
+
f"SELECT SUM(context_tokens + generation_tokens) FROM generation_runs {where}",
|
|
382
|
+
params,
|
|
383
|
+
).fetchone()[0]
|
|
384
|
+
or 0
|
|
385
|
+
)
|
|
360
386
|
|
|
361
|
-
avg_files =
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
387
|
+
avg_files = (
|
|
388
|
+
conn.execute(
|
|
389
|
+
f"SELECT AVG(files_count) FROM generation_runs {success_where}",
|
|
390
|
+
params,
|
|
391
|
+
).fetchone()[0]
|
|
392
|
+
or 0
|
|
393
|
+
)
|
|
365
394
|
|
|
366
395
|
# Composition breakdown
|
|
367
396
|
compositions = conn.execute(
|