thothctl 0.28.1__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.28.1 → thothctl-0.30.0}/CHANGELOG.md +33 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/PKG-INFO +101 -15
- {thothctl-0.28.1 → thothctl-0.30.0}/README.md +100 -14
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/README.md +64 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_iac.md +77 -0
- thothctl-0.30.0/docs/framework/specs/phase2.5.1_autonomy_model.md +208 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/whats_new.md +1 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/decide.py +19 -1
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/iac.py +25 -2
- thothctl-0.30.0/src/thothctl/services/ai_review/config/autonomy.py +261 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/decision_engine.py +7 -2
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/safety_guard.py +29 -2
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/generation_history.py +54 -25
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_service.py +333 -280
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/models.py +5 -1
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_validator.py +32 -3
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/scaffold_loader.py +5 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/validator.py +17 -11
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/version.py +1 -1
- thothctl-0.30.0/tests/test_ai_autonomy.py +189 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/Dockerfile +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/README.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.devcontainer/devcontainer.json +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.github/workflows/docs.yml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.github/workflows/python-publish.yml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.gitignore +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.pre-commit-config.yaml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.pydocstyle +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/.readthedocs.yaml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/CONTRIBUTING.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/Dockerfile +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/LICENSE +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/catalog/catalog-info.yaml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/dashboard/README.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/agent_specifications.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/ai-review/agentcore.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/blast-radius.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_environment.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_project_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/check_space.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis-quick-reference.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/cost-analysis.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/customizing_rules.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/deps-advanced.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/deps.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/drift-detection.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/check/plan.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/dashboard/dashboard_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/customizing_docs.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/document_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/document_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_examples.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/mermaid_quickref.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/document/use_cases.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_components.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/generate/generate_stacks.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/init/init.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/init/init_space.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/CHANGELOG.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terraform.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/frameworks/terragrunt.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/inventory/inventory_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_projects.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/list/list_spaces.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/mcp/mcp.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_cleanup.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_convert.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/project_upgrade.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/project/use_cases.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_project.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/remove/remove_space.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/scan_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/scan_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/scan/use_cases.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/space/space_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/upgrade/upgrade_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_devsecops.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/commands/workflow/workflow_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/concepts.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/cross_platform_support.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/framework_architecture.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/infrastructure_composition.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/policy_as_code.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/roadmap_fdi.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/software_architecture.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/space_configuration.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1.10_plan_validation.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1.9_composition_generation.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/specs/phase1_intent_to_iac.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/README.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/ai_dlc.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/check_command.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_quickstart.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/devsecops_sdlc.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/inventory_command.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/platform_engineering_templates.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/space_management.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/tasks/create_template.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/framework/use_cases/tasks/workflow_implementation_plan.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/how_it_works.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/commnad_init.png +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/framework/thothforge-framework.svg +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/framework/thothfr.png +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/icon-light.png +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/icon.png +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/init_project.gif +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/img/stable/scan_report_example.png +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/includes/abbreviations.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/index.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/devcontainer_setup.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/linux_installation.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/installation/windows_installation.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/javascripts/tablesort.js +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/mcp.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/navigation.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/quick_start.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/requirements.txt +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/stylesheets/extra-enhanced.css +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/stylesheets/extra.css +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/telemetry.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/cli_commands_audit.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/for_developers.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/for_platform_engineers.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/github_templates.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/template_engine/template_engine.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/toolkit_overview.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/linux_troubleshooting.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/macos_troubleshooting.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/troubleshooting.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/docs/troubleshooting/windows_troubleshooting.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/mkdocs.yaml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/pyproject.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/scripts/check_output_consistency.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/scripts/run_mcp_server.sh +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/application/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/autocomplete.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/analyze.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/apply_fix.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/configure_decisions.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/history.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/improve.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/orchestrate.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/override.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/report.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/ai_review/commands/serve.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/config.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/environment.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/iac.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project/iac.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/project.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/check/commands/space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/dashboard/commands/launch.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/document/commands/iac.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/component.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/generate/commands/stacks.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/env.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/project.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/init/commands/template.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/check.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/inventory/commands/iac.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/projects.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/spaces.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/list/commands/templates.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/register.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/server.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/status.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/mcp/commands/stop.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/bootstrap.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/cleanup.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/convert.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/project/commands/upgrade.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/quickstart/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/quickstart/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/project.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/remove/space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/scan/commands/iac.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/activate.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/deactivate.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/export_space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/import_space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/show.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/space/commands/update.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/upgrade/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/cli.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/devsecops.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/commands/workflow/commands/run.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf.setup.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_home.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_module.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_project.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/.thothcf_template_parameters.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/common.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/common/terragrunt/.thothcf_project.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/constants.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/default_values.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/defaults.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/settings.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/template_config.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/template_configs.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/templates.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/config/validation.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/cli_ui.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/commands.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/config.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/get_azure_devops.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/azure_devops/pull_request_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/github/get_github.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/github/pull_request_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/microsoft_teams.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/integrate_messages_services/sent_message_teams.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pattern_names.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/integrations/pr_comments/pr_comment_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/logger.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/telemetry.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/core/version_tools.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/interfaces/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/domain/models/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/README.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/mcp/server.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/agentcore/agentcore.json +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/ai_agent.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/code_reviewer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/context_builder.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/report_analyzer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/analyzers/risk_assessor.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/bedrock_agent_api.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/ai_settings.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/config/decision_rules.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/main.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/memory.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/orchestrator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/pr_decision_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/azure_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_agent_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/bedrock_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/kiro_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/ollama_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/providers/openai_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/safety/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/strands_agent.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/tracing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/cost_tracker.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_patterns.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/fix_prompts.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/formatters.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/ai_review/utils/prompts.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/environment/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/environment/check_environment.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/org_policy_loader.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/blast_radius_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cfn_blast_radius_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/check_origin_version.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/check_project_structure.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/cost_analyzer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cloudformation_mapper.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/models/cost_models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/aws_pricing_client.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/base_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/apigateway_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/bedrock_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/cloudwatch_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/dynamodb_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ebs_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ec2_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecr_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/ecs_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eip_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/eks_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/elb_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/free_resources_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/kms_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/lambda_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/msk_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/rds_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/s3_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/secrets_manager_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/pricing/providers/vpc_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/cost/unified_cost_report.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/cfn_drift_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_ai.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_history.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_policy.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_report.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/drift_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/drift/models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/risk_assessment.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/project/validate_project_structure.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/rule_merger.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/rules_compiler.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/check/stack_optimizer/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/dashboard_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/dashboard/data_loader.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/architecture_renderer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/create_documentation.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/files_content.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/files_scan.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_documentation.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_graph.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/iac_grunt_info.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/document/topology_generator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/config_generator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/remote_config_generation.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/stack_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/templates/terragrunt.hcl.j2 +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_stacks/terragrunt.hcl +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/config.yaml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_code.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_component_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_stacks.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/create_template.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/files_content.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/github_template_loader.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/create_template/project_templates.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/code_generator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/composition_models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/context_builder.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/intent_decomposer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/parameter_resolver.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/plan_runner.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/project_assembler.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/prompts.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/generate/intent/state_resolver.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/install_tools.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/prerequisite_checker.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/environment/tool_packs.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/project/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/project/project.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/example_space.toml +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/export_import.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/inheritance.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/init/space/terraform_module_cache.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_parsers.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/cdk_sbom_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/changelog_parser.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/defectdojo_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/dtrack_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/inventory_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/module_compatibility_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/report_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/schema_compatibility_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/secobserve_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/terragrunt_parser.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/update_versions.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/inventory/version_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/README.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/simple_http_server.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/mcp/stdio_server.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/bootstrap/bootstrap_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_project.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/cleanup/clean_space.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/conversion_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/get_project_data.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/post_init.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_converter.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/project_defaults.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/convert/set_project_parameters.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/create_terramate_stacks.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/detect_changes_stacks.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/create_terramate/manage_terramate_stacks.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/project/upgrade/upgrade_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/compliance_review.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/import_reports.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/report_parser.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/sarif_output.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scan_history.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scan_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/checkov.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/kics.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/opa.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scan_reports.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/scanners.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/terraform_compliance.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/tfsec.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/scan/scanners/trivy.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/custom_workflow_engine.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/base.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/build.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/deploy.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/develop.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/monitor.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/plan.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/secure.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/phases/test.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/services/workflow/workflow_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/ai_reports/pr_comment.md +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/reports/inventory_report.js +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/templates/unified_report_styles.css +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/banner.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/create_compliance_html_reports.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/create_html_reports.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/delete_directory.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/fix_report_styling.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/render_scan_report.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/report_html_utils.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/dashboard.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/index_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/individual_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/simple_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_report_styles.css +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_scan_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/unified_simple_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/common/templates/xunit_report.html +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/crypto.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/git_changes.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/manage_backend_resources/manage_backend_resources.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_module_details.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/modules_ops/terraform_modules_fetcher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/platform_utils.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/analyze_terraform_plan.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_manager.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/graph_terragrunt_dependencies.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/process_terraform_file.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/process_hcl/risk_analyzing_terraform_plan.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/__init__.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terraform_workspaces.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/sync_workspaces/sync_terragrunt_workspaces.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/template_loader.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/utils/thoth_colors.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/src/thothctl/wellcome_banner.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/conftest.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_agentcore_entrypoint.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_apply_fix.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_decision_engine.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_fix_patterns.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_memory.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_orchestrator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_pr_decision.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ai_safety_guard.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_aws_pricing_client.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_azure_devops_pr_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_bedrock_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cdk_inventory.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cdk_language_selection.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cfn_blast_radius.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cfn_drift_detection.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_context_steering.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_analyzer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_models.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_policy_enforcement.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_cost_pr_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dashboard_loading_fix.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dashboard_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_defectdojo_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_drift.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_drift_detection.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_dtrack_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_ec2_pricing.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_codegen.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_context.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_prompts.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_service.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_generate_iac_validator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_github_pr_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_iac_cost_integration.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_init_ai_tools.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_init_template_params.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_intent_quick_wins.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_intent_rules_integration.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_inventory_pr_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_kics_scanner.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_kiro_provider.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_mermaid_edge_labels.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_new_cost_providers.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_opa_data_files.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_parallel_scan.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_plan_validation.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_platform_utils.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_pr_comment_publisher.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_provider_source_url_fix.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_provider_versions.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_rules_compiler.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_cfn_support.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_command.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_scan_pr_comments.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_space_command.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_space_management.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_stack_optimizer.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_template_url_fix.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_terragrunt_parser.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_topology_generator.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tests/test_workflow_integration.py +0 -0
- {thothctl-0.28.1 → thothctl-0.30.0}/tox.ini +0 -0
|
@@ -5,6 +5,32 @@ All notable changes to ThothCTL are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.29.0] - 2026-09-15
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Agent Autonomy Model** (Phase 2.5.1) — a graduated 4-level governance framework
|
|
13
|
+
for AI agents, aligned with the industry-standard "4 Levels of Agentic Development"
|
|
14
|
+
(Weave Intelligence), replacing the previous binary auto-decision switch.
|
|
15
|
+
- New `services/ai_review/config/autonomy.py`: `AutonomyLevel` / `AutonomyConfig`,
|
|
16
|
+
`.thothcf.toml [agent.autonomy]` loader with per-level tool allow/deny lists
|
|
17
|
+
- **Deny-beats-allow** tool resolution with `*` wildcard support
|
|
18
|
+
- Action-to-level gating (read-only → L1, PR decisions → L2, auto-merge → L3,
|
|
19
|
+
apply/destroy → L4)
|
|
20
|
+
- **Safe-by-default**: Level 1 (read-only) when unconfigured; malformed config
|
|
21
|
+
never escalates privilege
|
|
22
|
+
- Enforced as the first check in `SafetyGuard.can_take_action` (optional
|
|
23
|
+
`autonomy_level` param — fully backward compatible)
|
|
24
|
+
- New `--autonomy [suggest|draft|validate|execute]` flag on `ai-review decide`
|
|
25
|
+
- 27 unit tests; design spec at `docs/framework/specs/phase2.5.1_autonomy_model.md`
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
- Aligned the GitHub README with the current v0.28 state (Intent-to-IaC, workflow
|
|
30
|
+
engine, MCP v2.0, security-platform publishing, Kiro provider) and pointed docs
|
|
31
|
+
to the official ReadTheDocs site
|
|
32
|
+
- Added an **Agent Autonomy Levels** section to the AI Review command docs
|
|
33
|
+
|
|
8
34
|
## [0.28.0] - 2026-08-23
|
|
9
35
|
|
|
10
36
|
### Added
|
|
@@ -25,6 +51,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
25
51
|
- Deduplication and close-old-findings support
|
|
26
52
|
- Config via env vars (`DEFECTDOJO_URL`, `DEFECTDOJO_TOKEN`) or `.thothcf.toml`
|
|
27
53
|
- 21 unit tests covering all paths
|
|
54
|
+
- **SecObserve SBOM + scan publishing** (`--publish-sbom secobserve` / `--publish-to secobserve`)
|
|
55
|
+
- CycloneDX SBOM → license component tracking via `/api/import/file_upload_sbom_by_name/`
|
|
56
|
+
- Scan findings → observations via SARIF through `/api/import/file_upload_observations_by_name/`
|
|
57
|
+
- APIToken authentication (SecObserve's custom format)
|
|
58
|
+
- Auto-creates product, .localhost domain resolution for Traefik setups
|
|
59
|
+
- Supports all scanners: Checkov, Trivy, KICS, OPA/Conftest (all via SARIF)
|
|
60
|
+
- Config via env vars (`SECOBSERVE_URL`, `SECOBSERVE_API_TOKEN`) or `.thothcf.toml`
|
|
28
61
|
- **Kiro CLI as AI provider** for Intent-to-IaC generation (`--provider kiro`)
|
|
29
62
|
- Uses Kiro headless mode (`kiro-cli chat --no-interactive --trust-all-tools`)
|
|
30
63
|
- Tool-augmented generation: reads project files, searches docs, validates output
|
|
@@ -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
|
|
@@ -48,7 +48,7 @@ Requires-Dist: opentelemetry-sdk>=1.20.0; extra == 'telemetry'
|
|
|
48
48
|
Description-Content-Type: text/markdown
|
|
49
49
|
|
|
50
50
|
[](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml)
|
|
51
|
-
[](https://thothctl.readthedocs.io/en/latest/)
|
|
52
52
|
[](https://pypi.org/project/thothctl/)
|
|
53
53
|
[](https://www.python.org/)
|
|
54
54
|
[](LICENSE)
|
|
@@ -57,15 +57,18 @@ Description-Content-Type: text/markdown
|
|
|
57
57
|
|
|
58
58
|
**AI-Powered Infrastructure Lifecycle CLI** for DevSecOps, Platform Engineering, and IaC governance.
|
|
59
59
|
|
|
60
|
-

|
|
61
61
|
|
|
62
|
-
ThothCTL accelerates the adoption of Internal Developer Platforms by combining security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
|
|
62
|
+
ThothCTL accelerates the adoption of Internal Developer Platforms by combining natural-language IaC generation, security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
|
|
63
63
|
|
|
64
64
|
## Quick Start
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
pip install --upgrade thothctl
|
|
68
68
|
|
|
69
|
+
# Generate governed IaC from natural language (dry-run by default)
|
|
70
|
+
thothctl generate iac -i "VPC with 3 private subnets, NAT gateway, and flow logs"
|
|
71
|
+
|
|
69
72
|
# Scan for security issues
|
|
70
73
|
thothctl scan iac -t checkov -t trivy -t opa
|
|
71
74
|
|
|
@@ -81,6 +84,29 @@ thothctl ai-review analyze -d ./terraform -p ollama
|
|
|
81
84
|
|
|
82
85
|
## Key Features
|
|
83
86
|
|
|
87
|
+
### 🧠 Intent-to-IaC Generation
|
|
88
|
+
|
|
89
|
+
Generate governed Infrastructure as Code from natural language. Organizational conventions (`.thothcf.toml`, steering docs, existing patterns) are injected into the AI context, and output is validated by Checkov + OPA with self-correction:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Single stack (dry-run shows code without writing)
|
|
93
|
+
thothctl generate iac -i "S3 bucket with versioning and encryption"
|
|
94
|
+
|
|
95
|
+
# Multi-stack composition, written to disk
|
|
96
|
+
thothctl generate iac -i "EKS cluster with VPC, RDS PostgreSQL, and S3 for artifacts" \
|
|
97
|
+
--composition full --apply
|
|
98
|
+
|
|
99
|
+
# Tool-augmented generation with Kiro CLI (reads docs, validates, self-corrects)
|
|
100
|
+
thothctl generate iac -i "RDS Aurora cluster with read replicas and failover" -p kiro
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
- **Multi-provider**: Ollama (local), AWS Bedrock, OpenAI, Azure OpenAI, and **Kiro CLI** (tool-augmented)
|
|
104
|
+
- **Blueprint vs Project modes**: `--mode blueprint` for IDP/Backstage templates, `--mode project` for ready-to-deploy output
|
|
105
|
+
- **Composition-aware**: `single`, `full` (multi-stack), or `incremental` (add to existing project)
|
|
106
|
+
- **Policy at generation time**: `.thothcf.toml` rules and OPA policies evaluated inside the loop
|
|
107
|
+
- **Plan validation**: optional `terragrunt plan` validation with self-correction (`--plan-validation`)
|
|
108
|
+
- **Multi-format**: `terraform`, `terraform-terragrunt`, `terragrunt`, `cloudformation`, `cdkv2`
|
|
109
|
+
|
|
84
110
|
### 🔒 Security Scanning
|
|
85
111
|
|
|
86
112
|
Multi-tool scanning with unified HTML reports and enforcement:
|
|
@@ -88,12 +114,16 @@ Multi-tool scanning with unified HTML reports and enforcement:
|
|
|
88
114
|
```bash
|
|
89
115
|
# All scanners with hard enforcement (fails pipeline on violations)
|
|
90
116
|
thothctl scan iac -t checkov -t trivy -t kics -t opa -t terraform-compliance --enforcement hard
|
|
117
|
+
|
|
118
|
+
# Publish findings to a vulnerability management platform
|
|
119
|
+
thothctl scan iac -t checkov -t trivy --publish-to defectdojo
|
|
91
120
|
```
|
|
92
121
|
|
|
93
122
|
- **5 integrated tools**: Checkov, Trivy, KICS, OPA/Conftest, Terraform-compliance
|
|
94
123
|
- **Unified HTML reports** with severity badges, per-stack breakdown
|
|
95
124
|
- **Non-compliance findings table** on enforcement failure
|
|
96
125
|
- **SARIF output** for GitHub Code Scanning integration
|
|
126
|
+
- **Platform publishing**: push findings to **DefectDojo** or **SecObserve**
|
|
97
127
|
- **Organization policy repos** via `THOTH_ORG_POLICY` env var (HCL + CloudFormation)
|
|
98
128
|
- **Scan trend tracking** with local SQLite history
|
|
99
129
|
|
|
@@ -103,14 +133,39 @@ CycloneDX 1.6 compliant Software Bill of Materials:
|
|
|
103
133
|
|
|
104
134
|
```bash
|
|
105
135
|
thothctl inventory iac --check-versions
|
|
136
|
+
|
|
137
|
+
# Publish the SBOM to a supply-chain platform
|
|
138
|
+
thothctl inventory iac --check-versions --publish-sbom dependency-track
|
|
106
139
|
```
|
|
107
140
|
|
|
108
141
|
- **Module & provider version tracking** with staleness detection
|
|
109
142
|
- **CycloneDX 1.6 SBOM** with formulation, evidence, standards, attestations, dependency graph, hashes, and licenses
|
|
143
|
+
- **SBOM publishing**: push to **Dependency-Track**, **DefectDojo**, or **SecObserve** (auto-creates project/product)
|
|
144
|
+
- **CDK v2 support**: dependency tracking for AWS CDK projects
|
|
110
145
|
- **Technical debt scoring** with risk levels and recommendations
|
|
111
146
|
- **Schema compatibility analysis** for safe upgrades
|
|
112
147
|
- **Professional HTML reports** with collapsible stack groups
|
|
113
148
|
|
|
149
|
+
### 🔁 DevSecOps Workflow Engine
|
|
150
|
+
|
|
151
|
+
Orchestrated SDLC pipeline plus custom YAML DAG workflows:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Built-in 7-phase pipeline (Plan → Develop → Build → Test → Secure → Deploy → Monitor)
|
|
155
|
+
thothctl workflow devsecops --phase all --enforcement hard
|
|
156
|
+
|
|
157
|
+
# Composite phase, only changed directories
|
|
158
|
+
thothctl workflow devsecops --phase pre-deploy --changed-only
|
|
159
|
+
|
|
160
|
+
# Custom composable pipeline (declarative YAML DAG)
|
|
161
|
+
thothctl workflow run --file .thothcf_workflow.yaml
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
- **7 SDLC phases** with composite `all` and `pre-deploy` shortcuts
|
|
165
|
+
- **Custom YAML DAG engine** with `depends_on`, topological ordering, variable interpolation (`{{changed_stacks}}`, `{{branch}}`, `{{project}}`, `{{space}}`), and per-stage failure handling (`block`/`warn`/`skip`)
|
|
166
|
+
- **Enforcement modes**: `soft` (warn) or `hard` (block on violations)
|
|
167
|
+
- **Git-aware** `--changed-only` scoping and dry-run plan visualization
|
|
168
|
+
|
|
114
169
|
### 📊 Web Dashboard
|
|
115
170
|
|
|
116
171
|
Modern FastAPI-based dashboard with dark mode:
|
|
@@ -122,6 +177,7 @@ thothctl dashboard launch
|
|
|
122
177
|
- **Security findings viewer** — filter by tool/severity/search, pagination, inline report iframe
|
|
123
178
|
- **SBOM details browser** — CycloneDX metadata, dependency graph, formulation, attestations
|
|
124
179
|
- **Inventory explorer** — collapsible stacks, module/provider tabs, version comparison
|
|
180
|
+
- **Generation history** — track all intent-to-IaC runs
|
|
125
181
|
- **Cost analysis** — service breakdown, monthly/annual projections
|
|
126
182
|
- **Drift detection** — severity-classified drifted resources
|
|
127
183
|
- **AI usage tracking** — token counts, costs per request
|
|
@@ -137,9 +193,9 @@ thothctl ai-review decide -d ./terraform --pr-number 42 --dry-run
|
|
|
137
193
|
|
|
138
194
|
- **4 specialized agents**: Security, Architecture, Fix, Decision
|
|
139
195
|
- **Multi-provider**: OpenAI, AWS Bedrock, Azure OpenAI, Ollama (local)
|
|
196
|
+
- **Two orchestration modes**: parallel agents (ThreadPoolExecutor) and Strands SDK deterministic pipeline
|
|
140
197
|
- **Auto-decisions** with confidence thresholds and safety controls
|
|
141
198
|
- **Adaptive memory**: filesystem or S3 (auto-detects runtime)
|
|
142
|
-
- **MCP integration** for AI assistant interoperability
|
|
143
199
|
|
|
144
200
|
### 💰 Cost Analysis & Risk Assessment
|
|
145
201
|
|
|
@@ -164,20 +220,37 @@ thothctl init project -p my-infra --project-type terraform
|
|
|
164
220
|
- **Backstage integration** for self-service consumption
|
|
165
221
|
- **Template upgrade workflow** to keep projects in sync
|
|
166
222
|
|
|
223
|
+
### 🔌 MCP Integration
|
|
224
|
+
|
|
225
|
+
Model Context Protocol (v2.0+) server exposing ThothCTL as tools for AI assistants:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
thothctl mcp
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
- **26 tools exposed** including `generate iac`, `scan iac`, `inventory iac`, and workflow commands
|
|
232
|
+
- **HTTP + stdio** transport modes
|
|
233
|
+
- **Recursion protection** when thothctl is used as an MCP tool inside an agent
|
|
234
|
+
|
|
167
235
|
## All Commands
|
|
168
236
|
|
|
169
237
|
| Command | Description |
|
|
170
238
|
|---------|-------------|
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
239
|
+
| `generate iac` | Generate governed IaC from natural language intent |
|
|
240
|
+
| `generate stacks` | Generate infrastructure stacks from configuration |
|
|
241
|
+
| `scan iac` | Multi-tool security scanning with enforcement and platform publishing |
|
|
242
|
+
| `inventory iac` | Infrastructure SBOM with version tracking and SBOM publishing |
|
|
173
243
|
| `check iac` | Cost analysis, blast radius, drift detection, structure validation |
|
|
244
|
+
| `workflow devsecops` | Orchestrated 7-phase DevSecOps SDLC pipeline |
|
|
245
|
+
| `workflow run` | Execute a custom YAML DAG workflow |
|
|
174
246
|
| `ai-review` | AI-powered security analysis and PR decisions |
|
|
175
247
|
| `dashboard launch` | Web dashboard for all reports |
|
|
176
248
|
| `document iac` | Auto-generate documentation |
|
|
177
249
|
| `project convert` | Template ↔ project conversion |
|
|
178
250
|
| `init project` | Scaffold new IaC projects |
|
|
179
|
-
| `
|
|
180
|
-
| `
|
|
251
|
+
| `space` | Manage spaces (activate, update, configure conventions) |
|
|
252
|
+
| `quickstart` | Guided onboarding for new projects |
|
|
253
|
+
| `mcp` | Model Context Protocol server (v2.0+) |
|
|
181
254
|
|
|
182
255
|
## Installation
|
|
183
256
|
|
|
@@ -208,15 +281,19 @@ devcontainer up --workspace-folder .
|
|
|
208
281
|
|
|
209
282
|
## Documentation
|
|
210
283
|
|
|
211
|
-
📖 **Full docs**: [
|
|
284
|
+
📖 **Full docs**: [thothctl.readthedocs.io](https://thothctl.readthedocs.io/)
|
|
212
285
|
|
|
286
|
+
- [What's New](docs/whats_new.md)
|
|
213
287
|
- [Quick Start](docs/quick_start.md)
|
|
288
|
+
- [Generate IaC (Intent-to-IaC)](docs/framework/commands/generate/generate_iac.md)
|
|
214
289
|
- [DevSecOps SDLC Guide](docs/framework/use_cases/devsecops_sdlc.md)
|
|
290
|
+
- [Workflow Command](docs/framework/commands/workflow/workflow_overview.md)
|
|
215
291
|
- [Scan Command Reference](docs/framework/commands/scan/scan_overview.md)
|
|
216
292
|
- [Inventory & SBOM](docs/framework/commands/inventory/inventory_overview.md)
|
|
217
293
|
- [Dashboard](docs/dashboard/README.md)
|
|
218
294
|
- [AI Review](docs/framework/commands/ai-review/README.md)
|
|
219
295
|
- [Template Engine](docs/template_engine/template_engine.md)
|
|
296
|
+
- [MCP Server](docs/framework/commands/mcp/mcp.md)
|
|
220
297
|
- [Dev Container Setup](docs/installation/devcontainer_setup.md)
|
|
221
298
|
|
|
222
299
|
## CI/CD Integration
|
|
@@ -232,18 +309,27 @@ devcontainer up --workspace-folder .
|
|
|
232
309
|
|
|
233
310
|
## Roadmap
|
|
234
311
|
|
|
312
|
+
Shipped:
|
|
313
|
+
|
|
235
314
|
- [x] Multi-tool security scanning with unified reports
|
|
236
315
|
- [x] AI Agent for IaC Security (multi-agent, auto-decisions)
|
|
237
316
|
- [x] CycloneDX 1.6 SBOM with full supply chain metadata
|
|
238
317
|
- [x] Organization policy engine (OPA/Rego, HCL + CloudFormation)
|
|
239
318
|
- [x] Web Dashboard with findings viewer and SBOM browser
|
|
240
|
-
- [
|
|
241
|
-
- [
|
|
319
|
+
- [x] Intent-to-IaC generation (natural language → governed IaC)
|
|
320
|
+
- [x] Composable workflow engine (declarative YAML DAG pipelines)
|
|
321
|
+
- [x] MCP v2.0 server (HTTP + stdio, 26 tools)
|
|
322
|
+
- [x] Security platform integrations (Dependency-Track, DefectDojo, SecObserve)
|
|
323
|
+
- [x] Kiro CLI provider for tool-augmented generation
|
|
324
|
+
|
|
325
|
+
In progress / planned:
|
|
326
|
+
|
|
327
|
+
- [ ] App-to-Infra inference (generate stacks from application source code)
|
|
242
328
|
- [ ] Graph-aware state visibility (tfstate → queryable resource graph)
|
|
243
|
-
- [ ]
|
|
244
|
-
- [ ]
|
|
329
|
+
- [ ] Continuous reconciliation (align live infra with intent)
|
|
330
|
+
- [ ] Agent governance & MCP gateway
|
|
245
331
|
|
|
246
|
-
📖 [
|
|
332
|
+
📖 The active planning document is the **2026 Roadmap** (`thothctl_roadmap_2026.md` in the ThothForge root). The [FdI roadmap](docs/framework/roadmap_fdi.md) is preserved for historical context only.
|
|
247
333
|
|
|
248
334
|
## Contributing
|
|
249
335
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[](https://github.com/thothforge/thothctl/actions/workflows/python-publish.yml)
|
|
2
|
-
[](https://thothctl.readthedocs.io/en/latest/)
|
|
3
3
|
[](https://pypi.org/project/thothctl/)
|
|
4
4
|
[](https://www.python.org/)
|
|
5
5
|
[](LICENSE)
|
|
@@ -8,15 +8,18 @@
|
|
|
8
8
|
|
|
9
9
|
**AI-Powered Infrastructure Lifecycle CLI** for DevSecOps, Platform Engineering, and IaC governance.
|
|
10
10
|
|
|
11
|
-

|
|
12
12
|
|
|
13
|
-
ThothCTL accelerates the adoption of Internal Developer Platforms by combining security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
|
|
13
|
+
ThothCTL accelerates the adoption of Internal Developer Platforms by combining natural-language IaC generation, security scanning, inventory management, cost analysis, AI-driven code review, and organizational policy enforcement into a single CLI.
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
pip install --upgrade thothctl
|
|
19
19
|
|
|
20
|
+
# Generate governed IaC from natural language (dry-run by default)
|
|
21
|
+
thothctl generate iac -i "VPC with 3 private subnets, NAT gateway, and flow logs"
|
|
22
|
+
|
|
20
23
|
# Scan for security issues
|
|
21
24
|
thothctl scan iac -t checkov -t trivy -t opa
|
|
22
25
|
|
|
@@ -32,6 +35,29 @@ thothctl ai-review analyze -d ./terraform -p ollama
|
|
|
32
35
|
|
|
33
36
|
## Key Features
|
|
34
37
|
|
|
38
|
+
### 🧠 Intent-to-IaC Generation
|
|
39
|
+
|
|
40
|
+
Generate governed Infrastructure as Code from natural language. Organizational conventions (`.thothcf.toml`, steering docs, existing patterns) are injected into the AI context, and output is validated by Checkov + OPA with self-correction:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Single stack (dry-run shows code without writing)
|
|
44
|
+
thothctl generate iac -i "S3 bucket with versioning and encryption"
|
|
45
|
+
|
|
46
|
+
# Multi-stack composition, written to disk
|
|
47
|
+
thothctl generate iac -i "EKS cluster with VPC, RDS PostgreSQL, and S3 for artifacts" \
|
|
48
|
+
--composition full --apply
|
|
49
|
+
|
|
50
|
+
# Tool-augmented generation with Kiro CLI (reads docs, validates, self-corrects)
|
|
51
|
+
thothctl generate iac -i "RDS Aurora cluster with read replicas and failover" -p kiro
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- **Multi-provider**: Ollama (local), AWS Bedrock, OpenAI, Azure OpenAI, and **Kiro CLI** (tool-augmented)
|
|
55
|
+
- **Blueprint vs Project modes**: `--mode blueprint` for IDP/Backstage templates, `--mode project` for ready-to-deploy output
|
|
56
|
+
- **Composition-aware**: `single`, `full` (multi-stack), or `incremental` (add to existing project)
|
|
57
|
+
- **Policy at generation time**: `.thothcf.toml` rules and OPA policies evaluated inside the loop
|
|
58
|
+
- **Plan validation**: optional `terragrunt plan` validation with self-correction (`--plan-validation`)
|
|
59
|
+
- **Multi-format**: `terraform`, `terraform-terragrunt`, `terragrunt`, `cloudformation`, `cdkv2`
|
|
60
|
+
|
|
35
61
|
### 🔒 Security Scanning
|
|
36
62
|
|
|
37
63
|
Multi-tool scanning with unified HTML reports and enforcement:
|
|
@@ -39,12 +65,16 @@ Multi-tool scanning with unified HTML reports and enforcement:
|
|
|
39
65
|
```bash
|
|
40
66
|
# All scanners with hard enforcement (fails pipeline on violations)
|
|
41
67
|
thothctl scan iac -t checkov -t trivy -t kics -t opa -t terraform-compliance --enforcement hard
|
|
68
|
+
|
|
69
|
+
# Publish findings to a vulnerability management platform
|
|
70
|
+
thothctl scan iac -t checkov -t trivy --publish-to defectdojo
|
|
42
71
|
```
|
|
43
72
|
|
|
44
73
|
- **5 integrated tools**: Checkov, Trivy, KICS, OPA/Conftest, Terraform-compliance
|
|
45
74
|
- **Unified HTML reports** with severity badges, per-stack breakdown
|
|
46
75
|
- **Non-compliance findings table** on enforcement failure
|
|
47
76
|
- **SARIF output** for GitHub Code Scanning integration
|
|
77
|
+
- **Platform publishing**: push findings to **DefectDojo** or **SecObserve**
|
|
48
78
|
- **Organization policy repos** via `THOTH_ORG_POLICY` env var (HCL + CloudFormation)
|
|
49
79
|
- **Scan trend tracking** with local SQLite history
|
|
50
80
|
|
|
@@ -54,14 +84,39 @@ CycloneDX 1.6 compliant Software Bill of Materials:
|
|
|
54
84
|
|
|
55
85
|
```bash
|
|
56
86
|
thothctl inventory iac --check-versions
|
|
87
|
+
|
|
88
|
+
# Publish the SBOM to a supply-chain platform
|
|
89
|
+
thothctl inventory iac --check-versions --publish-sbom dependency-track
|
|
57
90
|
```
|
|
58
91
|
|
|
59
92
|
- **Module & provider version tracking** with staleness detection
|
|
60
93
|
- **CycloneDX 1.6 SBOM** with formulation, evidence, standards, attestations, dependency graph, hashes, and licenses
|
|
94
|
+
- **SBOM publishing**: push to **Dependency-Track**, **DefectDojo**, or **SecObserve** (auto-creates project/product)
|
|
95
|
+
- **CDK v2 support**: dependency tracking for AWS CDK projects
|
|
61
96
|
- **Technical debt scoring** with risk levels and recommendations
|
|
62
97
|
- **Schema compatibility analysis** for safe upgrades
|
|
63
98
|
- **Professional HTML reports** with collapsible stack groups
|
|
64
99
|
|
|
100
|
+
### 🔁 DevSecOps Workflow Engine
|
|
101
|
+
|
|
102
|
+
Orchestrated SDLC pipeline plus custom YAML DAG workflows:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Built-in 7-phase pipeline (Plan → Develop → Build → Test → Secure → Deploy → Monitor)
|
|
106
|
+
thothctl workflow devsecops --phase all --enforcement hard
|
|
107
|
+
|
|
108
|
+
# Composite phase, only changed directories
|
|
109
|
+
thothctl workflow devsecops --phase pre-deploy --changed-only
|
|
110
|
+
|
|
111
|
+
# Custom composable pipeline (declarative YAML DAG)
|
|
112
|
+
thothctl workflow run --file .thothcf_workflow.yaml
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- **7 SDLC phases** with composite `all` and `pre-deploy` shortcuts
|
|
116
|
+
- **Custom YAML DAG engine** with `depends_on`, topological ordering, variable interpolation (`{{changed_stacks}}`, `{{branch}}`, `{{project}}`, `{{space}}`), and per-stage failure handling (`block`/`warn`/`skip`)
|
|
117
|
+
- **Enforcement modes**: `soft` (warn) or `hard` (block on violations)
|
|
118
|
+
- **Git-aware** `--changed-only` scoping and dry-run plan visualization
|
|
119
|
+
|
|
65
120
|
### 📊 Web Dashboard
|
|
66
121
|
|
|
67
122
|
Modern FastAPI-based dashboard with dark mode:
|
|
@@ -73,6 +128,7 @@ thothctl dashboard launch
|
|
|
73
128
|
- **Security findings viewer** — filter by tool/severity/search, pagination, inline report iframe
|
|
74
129
|
- **SBOM details browser** — CycloneDX metadata, dependency graph, formulation, attestations
|
|
75
130
|
- **Inventory explorer** — collapsible stacks, module/provider tabs, version comparison
|
|
131
|
+
- **Generation history** — track all intent-to-IaC runs
|
|
76
132
|
- **Cost analysis** — service breakdown, monthly/annual projections
|
|
77
133
|
- **Drift detection** — severity-classified drifted resources
|
|
78
134
|
- **AI usage tracking** — token counts, costs per request
|
|
@@ -88,9 +144,9 @@ thothctl ai-review decide -d ./terraform --pr-number 42 --dry-run
|
|
|
88
144
|
|
|
89
145
|
- **4 specialized agents**: Security, Architecture, Fix, Decision
|
|
90
146
|
- **Multi-provider**: OpenAI, AWS Bedrock, Azure OpenAI, Ollama (local)
|
|
147
|
+
- **Two orchestration modes**: parallel agents (ThreadPoolExecutor) and Strands SDK deterministic pipeline
|
|
91
148
|
- **Auto-decisions** with confidence thresholds and safety controls
|
|
92
149
|
- **Adaptive memory**: filesystem or S3 (auto-detects runtime)
|
|
93
|
-
- **MCP integration** for AI assistant interoperability
|
|
94
150
|
|
|
95
151
|
### 💰 Cost Analysis & Risk Assessment
|
|
96
152
|
|
|
@@ -115,20 +171,37 @@ thothctl init project -p my-infra --project-type terraform
|
|
|
115
171
|
- **Backstage integration** for self-service consumption
|
|
116
172
|
- **Template upgrade workflow** to keep projects in sync
|
|
117
173
|
|
|
174
|
+
### 🔌 MCP Integration
|
|
175
|
+
|
|
176
|
+
Model Context Protocol (v2.0+) server exposing ThothCTL as tools for AI assistants:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
thothctl mcp
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- **26 tools exposed** including `generate iac`, `scan iac`, `inventory iac`, and workflow commands
|
|
183
|
+
- **HTTP + stdio** transport modes
|
|
184
|
+
- **Recursion protection** when thothctl is used as an MCP tool inside an agent
|
|
185
|
+
|
|
118
186
|
## All Commands
|
|
119
187
|
|
|
120
188
|
| Command | Description |
|
|
121
189
|
|---------|-------------|
|
|
122
|
-
| `
|
|
123
|
-
| `
|
|
190
|
+
| `generate iac` | Generate governed IaC from natural language intent |
|
|
191
|
+
| `generate stacks` | Generate infrastructure stacks from configuration |
|
|
192
|
+
| `scan iac` | Multi-tool security scanning with enforcement and platform publishing |
|
|
193
|
+
| `inventory iac` | Infrastructure SBOM with version tracking and SBOM publishing |
|
|
124
194
|
| `check iac` | Cost analysis, blast radius, drift detection, structure validation |
|
|
195
|
+
| `workflow devsecops` | Orchestrated 7-phase DevSecOps SDLC pipeline |
|
|
196
|
+
| `workflow run` | Execute a custom YAML DAG workflow |
|
|
125
197
|
| `ai-review` | AI-powered security analysis and PR decisions |
|
|
126
198
|
| `dashboard launch` | Web dashboard for all reports |
|
|
127
199
|
| `document iac` | Auto-generate documentation |
|
|
128
200
|
| `project convert` | Template ↔ project conversion |
|
|
129
201
|
| `init project` | Scaffold new IaC projects |
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
202
|
+
| `space` | Manage spaces (activate, update, configure conventions) |
|
|
203
|
+
| `quickstart` | Guided onboarding for new projects |
|
|
204
|
+
| `mcp` | Model Context Protocol server (v2.0+) |
|
|
132
205
|
|
|
133
206
|
## Installation
|
|
134
207
|
|
|
@@ -159,15 +232,19 @@ devcontainer up --workspace-folder .
|
|
|
159
232
|
|
|
160
233
|
## Documentation
|
|
161
234
|
|
|
162
|
-
📖 **Full docs**: [
|
|
235
|
+
📖 **Full docs**: [thothctl.readthedocs.io](https://thothctl.readthedocs.io/)
|
|
163
236
|
|
|
237
|
+
- [What's New](docs/whats_new.md)
|
|
164
238
|
- [Quick Start](docs/quick_start.md)
|
|
239
|
+
- [Generate IaC (Intent-to-IaC)](docs/framework/commands/generate/generate_iac.md)
|
|
165
240
|
- [DevSecOps SDLC Guide](docs/framework/use_cases/devsecops_sdlc.md)
|
|
241
|
+
- [Workflow Command](docs/framework/commands/workflow/workflow_overview.md)
|
|
166
242
|
- [Scan Command Reference](docs/framework/commands/scan/scan_overview.md)
|
|
167
243
|
- [Inventory & SBOM](docs/framework/commands/inventory/inventory_overview.md)
|
|
168
244
|
- [Dashboard](docs/dashboard/README.md)
|
|
169
245
|
- [AI Review](docs/framework/commands/ai-review/README.md)
|
|
170
246
|
- [Template Engine](docs/template_engine/template_engine.md)
|
|
247
|
+
- [MCP Server](docs/framework/commands/mcp/mcp.md)
|
|
171
248
|
- [Dev Container Setup](docs/installation/devcontainer_setup.md)
|
|
172
249
|
|
|
173
250
|
## CI/CD Integration
|
|
@@ -183,18 +260,27 @@ devcontainer up --workspace-folder .
|
|
|
183
260
|
|
|
184
261
|
## Roadmap
|
|
185
262
|
|
|
263
|
+
Shipped:
|
|
264
|
+
|
|
186
265
|
- [x] Multi-tool security scanning with unified reports
|
|
187
266
|
- [x] AI Agent for IaC Security (multi-agent, auto-decisions)
|
|
188
267
|
- [x] CycloneDX 1.6 SBOM with full supply chain metadata
|
|
189
268
|
- [x] Organization policy engine (OPA/Rego, HCL + CloudFormation)
|
|
190
269
|
- [x] Web Dashboard with findings viewer and SBOM browser
|
|
191
|
-
- [
|
|
192
|
-
- [
|
|
270
|
+
- [x] Intent-to-IaC generation (natural language → governed IaC)
|
|
271
|
+
- [x] Composable workflow engine (declarative YAML DAG pipelines)
|
|
272
|
+
- [x] MCP v2.0 server (HTTP + stdio, 26 tools)
|
|
273
|
+
- [x] Security platform integrations (Dependency-Track, DefectDojo, SecObserve)
|
|
274
|
+
- [x] Kiro CLI provider for tool-augmented generation
|
|
275
|
+
|
|
276
|
+
In progress / planned:
|
|
277
|
+
|
|
278
|
+
- [ ] App-to-Infra inference (generate stacks from application source code)
|
|
193
279
|
- [ ] Graph-aware state visibility (tfstate → queryable resource graph)
|
|
194
|
-
- [ ]
|
|
195
|
-
- [ ]
|
|
280
|
+
- [ ] Continuous reconciliation (align live infra with intent)
|
|
281
|
+
- [ ] Agent governance & MCP gateway
|
|
196
282
|
|
|
197
|
-
📖 [
|
|
283
|
+
📖 The active planning document is the **2026 Roadmap** (`thothctl_roadmap_2026.md` in the ThothForge root). The [FdI roadmap](docs/framework/roadmap_fdi.md) is preserved for historical context only.
|
|
198
284
|
|
|
199
285
|
## Contributing
|
|
200
286
|
|
|
@@ -243,8 +243,17 @@ thothctl ai-review decide \
|
|
|
243
243
|
--repository owner/repo \
|
|
244
244
|
--provider bedrock_agent \
|
|
245
245
|
--platform github
|
|
246
|
+
|
|
247
|
+
# Restrict what the agent may do with an autonomy level
|
|
248
|
+
thothctl ai-review decide -d ./terraform --pr-number 123 \
|
|
249
|
+
--repository owner/repo --autonomy draft
|
|
246
250
|
```
|
|
247
251
|
|
|
252
|
+
**Autonomy:** `--autonomy [suggest|draft|validate|execute]` (default `suggest`)
|
|
253
|
+
gates which actions the agent may perform (see
|
|
254
|
+
[Agent Autonomy Levels](#agent-autonomy-levels) below). At `suggest` (Level 1)
|
|
255
|
+
the agent is read-only and cannot post PR decisions.
|
|
256
|
+
|
|
248
257
|
### `thothctl ai-review serve`
|
|
249
258
|
|
|
250
259
|
Start the REST API server for CI/CD and external integrations.
|
|
@@ -347,6 +356,61 @@ thothctl ai-review override --repository owner/repo --pr-number 42 --action appr
|
|
|
347
356
|
thothctl ai-review override --repository owner/repo --pr-number 42 --action approve --publish
|
|
348
357
|
```
|
|
349
358
|
|
|
359
|
+
## Agent Autonomy Levels
|
|
360
|
+
|
|
361
|
+
*(v0.28.1+ — Phase 2.5.1)*
|
|
362
|
+
|
|
363
|
+
Autonomy levels are a **graduated trust dial** for the agent, aligned with the
|
|
364
|
+
industry-standard 4 Levels of Agentic Development. Instead of a binary "AI on/off",
|
|
365
|
+
each level defines which actions the agent may perform. The `--autonomy` flag on
|
|
366
|
+
`ai-review decide` selects the level (default `suggest`):
|
|
367
|
+
|
|
368
|
+
| Level | CLI value | Human role | Agent may... |
|
|
369
|
+
|-------|-----------|-----------|-------------|
|
|
370
|
+
| 1 | `suggest` (default) | Execution engine | Analyze, scan, report — **read-only** |
|
|
371
|
+
| 2 | `draft` | Verifier | Post approve/reject/request-changes, create PRs; **not** apply/destroy |
|
|
372
|
+
| 3 | `validate` | Orchestrator | Auto-merge low-risk changes (subject to gates) |
|
|
373
|
+
| 4 | `execute` | System designer | Self-initiate remediation within guardrails (break-glass) |
|
|
374
|
+
|
|
375
|
+
At Level 1 an auto-`approve`/`reject` is blocked by the autonomy gate before any
|
|
376
|
+
other safety check runs, so a `suggest`-level run never posts a PR decision.
|
|
377
|
+
|
|
378
|
+
### Configuration (`.thothcf.toml`)
|
|
379
|
+
|
|
380
|
+
Levels and their per-level tool allow/deny lists are configurable. If the
|
|
381
|
+
`[agent.autonomy]` table is absent, the agent runs at **Level 1** (safe by default);
|
|
382
|
+
a malformed config never escalates privilege.
|
|
383
|
+
|
|
384
|
+
```toml
|
|
385
|
+
[agent.autonomy]
|
|
386
|
+
default_level = 1 # 1=suggest 2=draft 3=validate 4=execute
|
|
387
|
+
|
|
388
|
+
[agent.autonomy.levels.2] # Human-on-the-loop
|
|
389
|
+
allowed_tools = ["read-file", "write-file", "scan", "git-commit", "git-push", "create-pr"]
|
|
390
|
+
denied_tools = ["terraform-apply", "terraform-destroy"]
|
|
391
|
+
|
|
392
|
+
[agent.autonomy.levels.3] # Human-as-orchestrator
|
|
393
|
+
allowed_tools = ["*"]
|
|
394
|
+
denied_tools = ["terraform-apply", "terraform-destroy"]
|
|
395
|
+
requires_validation = true
|
|
396
|
+
auto_merge_risk_max = 20 # auto-merge only when risk score <= 20
|
|
397
|
+
|
|
398
|
+
[agent.autonomy.levels.4] # Autonomous
|
|
399
|
+
allowed_tools = ["*"]
|
|
400
|
+
requires_approval = ["named-approver"]
|
|
401
|
+
max_blast_radius = 10 # enforced with the Phase 5 resource graph
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Resolution rules:**
|
|
405
|
+
|
|
406
|
+
- **deny-beats-allow** — a tool in both lists is denied; `"*"` allows everything not explicitly denied.
|
|
407
|
+
- **safe-by-default** — no config → Level 1; parse errors fall back to built-in safe defaults.
|
|
408
|
+
- **action gating** — each action has a minimum level (read-only → 1, PR decisions → 2, auto-merge → 3, apply/destroy → 4).
|
|
409
|
+
|
|
410
|
+
> **Note:** `--autonomy` currently governs the `ai-review decide` action gate. MCP
|
|
411
|
+
> tool-call enforcement (via the MCP Gateway) and Level 3/4 gate wiring land in
|
|
412
|
+
> subsequent Phase 2.5 tasks.
|
|
413
|
+
|
|
350
414
|
## AI Providers
|
|
351
415
|
|
|
352
416
|
| Provider | Model | Mode | Use Case |
|