opsmith-cli 0.4.4b0__tar.gz → 0.4.6b0__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.
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/PKG-INFO +17 -15
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/deployment_strategies/monolithic.py +9 -4
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/models.py +27 -81
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/repo_map.py +3 -2
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine_setup/aws/main.yml +6 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/types.py +5 -6
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/pyproject.toml +17 -15
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/uv.lock +796 -793
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/.flake8 +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/.github/workflows/python-publish.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/.gitignore +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/.pre-commit-config.yaml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/CONVENTIONS.md +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/LICENSE.txt +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/README.md +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/__init__.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/agent.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/cloud_providers/__init__.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/cloud_providers/aws.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/cloud_providers/base.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/cloud_providers/gcp.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/constants.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/deployment_strategies/__init__.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/deployment_strategies/base.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/exceptions.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/git_repo.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/infra_provisioners/__init__.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/infra_provisioners/ansible_provisioner.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/infra_provisioners/base_provisioner.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/infra_provisioners/terraform_provisioner.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/main.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/prompts.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/README.md +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/arduino-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/c-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/chatito-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/commonlisp-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/csharp-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/d-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/gleam-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/go-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/java-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/lua-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/php-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/pony-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/properties-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/python-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/r-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/racket-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/solidity-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/swift-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/queries/tree-sitter-languages/udev-tags.scm +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/service_detector.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/settings.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/cloud_storage_cleanup/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/cloud_storage_cleanup/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/aws/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/aws/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/aws/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/gcp/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/gcp/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/container_registry/gcp/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_build_push/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_build_push/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_deploy/aws/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_deploy/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_deploy/gcp/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_deploy/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_run/aws/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_run/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_run/gcp/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_run/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/base.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/elasticsearch.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/kafka.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/mongodb.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/mysql.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/postgresql.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/rabbitmq.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/redis.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/services/backend_api.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/services/backend_worker.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/services/full_stack.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/traefik.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/docker_compose_snippets/weaviate.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/dockerfiles/python_backend_api +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/dockerfiles/python_backend_worker +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/fetch_remote_files/aws/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/fetch_remote_files/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/fetch_remote_files/gcp/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/fetch_remote_files/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/aws/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/aws/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/aws/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/gcp/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/gcp/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_bucket_cert/gcp/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/aws/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/aws/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/aws/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/gcp/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/gcp/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_cdn/gcp/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_deploy/aws/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/frontend_deploy/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/aws/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/aws/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/aws/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/gcp/main.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/gcp/outputs.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine/gcp/variables.tf +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine_setup/aws/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine_setup/gcp/inventory.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine_setup/gcp/main.yml +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/tests/__init__.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/tests/test_service_detector.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/utils.py +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/resources/deploy_demo.gif +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/resources/deploy_demo.svg +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/resources/setup_demo.gif +0 -0
- {opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/resources/setup_demo.svg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opsmith-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.6b0
|
|
4
4
|
Summary: Opsmith is an AI devops engineer in your terminal
|
|
5
5
|
License-Expression: GPL-3.0-only
|
|
6
6
|
License-File: LICENSE.txt
|
|
@@ -14,25 +14,27 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Classifier: Topic :: Software Development
|
|
17
|
-
Requires-Python: >=3.
|
|
18
|
-
Requires-Dist: ansible==
|
|
19
|
-
Requires-Dist: gitpython==3.1.
|
|
20
|
-
Requires-Dist: google-api-python-client==2.
|
|
21
|
-
Requires-Dist: google-cloud-compute==1.
|
|
22
|
-
Requires-Dist: google-cloud-resource-manager==1.
|
|
23
|
-
Requires-Dist: google-cloud-storage==3.
|
|
17
|
+
Requires-Python: >=3.12
|
|
18
|
+
Requires-Dist: ansible==14.1.0
|
|
19
|
+
Requires-Dist: gitpython==3.1.50
|
|
20
|
+
Requires-Dist: google-api-python-client==2.197.0
|
|
21
|
+
Requires-Dist: google-cloud-compute==1.48.0
|
|
22
|
+
Requires-Dist: google-cloud-resource-manager==1.17.0
|
|
23
|
+
Requires-Dist: google-cloud-storage==3.12.0
|
|
24
24
|
Requires-Dist: grep-ast==0.9.0
|
|
25
25
|
Requires-Dist: inquirer==3.4.1
|
|
26
26
|
Requires-Dist: jinja2==3.1.6
|
|
27
27
|
Requires-Dist: networkx==3.6.1
|
|
28
|
-
Requires-Dist: pick==2.
|
|
29
|
-
Requires-Dist: pydantic-ai==1.
|
|
30
|
-
Requires-Dist: pydantic==2.
|
|
31
|
-
Requires-Dist: python-dotenv==1.2.
|
|
28
|
+
Requires-Dist: pick==2.6.0
|
|
29
|
+
Requires-Dist: pydantic-ai==1.107.0
|
|
30
|
+
Requires-Dist: pydantic==2.13.4
|
|
31
|
+
Requires-Dist: python-dotenv==1.2.2
|
|
32
32
|
Requires-Dist: pyyaml==6.0.3
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
33
|
+
Requires-Dist: rich==15.0.0
|
|
34
|
+
Requires-Dist: tqdm==4.68.3
|
|
35
|
+
Requires-Dist: tree-sitter-language-pack==1.9.1
|
|
36
|
+
Requires-Dist: tree-sitter==0.25.2
|
|
37
|
+
Requires-Dist: typer==0.26.7
|
|
36
38
|
Description-Content-Type: text/markdown
|
|
37
39
|
|
|
38
40
|
# Opsmith: An AI devops engineer in your terminal
|
|
@@ -105,13 +105,16 @@ class MonolithicDeploymentStrategy(BaseDeploymentStrategy):
|
|
|
105
105
|
# Parse env_file_content from LLM
|
|
106
106
|
env_file_vars = dotenv_values(stream=StringIO(env_file_content))
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
configured_env = deployment_config.get_configured_env_vars()
|
|
109
109
|
|
|
110
110
|
# Prepare questions for inquirer
|
|
111
111
|
questions = []
|
|
112
112
|
for key, value in sorted(env_file_vars.items()):
|
|
113
|
+
# Exclude any custom env that is not configured
|
|
114
|
+
if key not in configured_env:
|
|
115
|
+
continue
|
|
113
116
|
# Precedence: llm > code default
|
|
114
|
-
default_value = value or
|
|
117
|
+
default_value = value or configured_env[key]
|
|
115
118
|
questions.append(
|
|
116
119
|
inquirer.Text(
|
|
117
120
|
name=key,
|
|
@@ -238,6 +241,7 @@ class MonolithicDeploymentStrategy(BaseDeploymentStrategy):
|
|
|
238
241
|
images: Dict[str, str],
|
|
239
242
|
environment_state: MonolithicDeploymentState,
|
|
240
243
|
existing_env_content: Optional[str] = None,
|
|
244
|
+
initial_messages: Optional[list[ModelMessage]] = None,
|
|
241
245
|
):
|
|
242
246
|
base_compose_template = self.docker_compose_snippets_env.get_template("base.yml")
|
|
243
247
|
base_compose = base_compose_template.render(app_name=deployment_config.app_name_slug)
|
|
@@ -293,7 +297,7 @@ class MonolithicDeploymentStrategy(BaseDeploymentStrategy):
|
|
|
293
297
|
confirmed_env_content = existing_env_content or "N/A"
|
|
294
298
|
is_successful = False
|
|
295
299
|
docker_compose_content = None
|
|
296
|
-
messages = []
|
|
300
|
+
messages = initial_messages or []
|
|
297
301
|
for attempt in range(settings.max_docker_compose_gen_attempts):
|
|
298
302
|
print(
|
|
299
303
|
"\n[bold blue]Generating docker-compose file, Attempt"
|
|
@@ -927,7 +931,7 @@ class MonolithicDeploymentStrategy(BaseDeploymentStrategy):
|
|
|
927
931
|
env_file_content=existing_env_content,
|
|
928
932
|
)
|
|
929
933
|
|
|
930
|
-
is_successful, reason,
|
|
934
|
+
is_successful, reason, validation_messages, confirmed_env_content = (
|
|
931
935
|
self._deploy_validate_docker_compose(
|
|
932
936
|
deployment_config,
|
|
933
937
|
environment,
|
|
@@ -947,6 +951,7 @@ class MonolithicDeploymentStrategy(BaseDeploymentStrategy):
|
|
|
947
951
|
images,
|
|
948
952
|
env_state,
|
|
949
953
|
existing_env_content=confirmed_env_content,
|
|
954
|
+
initial_messages=validation_messages,
|
|
950
955
|
)
|
|
951
956
|
else:
|
|
952
957
|
# This can happen if only frontend was deployed
|
|
@@ -3,10 +3,13 @@ import os
|
|
|
3
3
|
from importlib.metadata import entry_points
|
|
4
4
|
from typing import Dict, List, Optional, Tuple, Type
|
|
5
5
|
|
|
6
|
-
from google.genai.types import ThinkingConfigDict
|
|
6
|
+
from google.genai.types import ThinkingConfigDict, ThinkingLevel
|
|
7
7
|
from pydantic_ai.models.anthropic import AnthropicModelSettings
|
|
8
8
|
from pydantic_ai.models.google import GoogleModelSettings
|
|
9
|
-
from pydantic_ai.models.openai import
|
|
9
|
+
from pydantic_ai.models.openai import (
|
|
10
|
+
OpenAIChatModelSettings,
|
|
11
|
+
OpenAIResponsesModelSettings,
|
|
12
|
+
)
|
|
10
13
|
from pydantic_ai.settings import ModelSettings
|
|
11
14
|
from rich import print
|
|
12
15
|
|
|
@@ -100,13 +103,10 @@ class ModelRegistry:
|
|
|
100
103
|
def _load_builtin_models(self):
|
|
101
104
|
"""Load built-in models"""
|
|
102
105
|
for model_cls in [
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
AnthropicClaudeSonnet4,
|
|
108
|
-
AnthropicClaudeSonnet45,
|
|
109
|
-
GoogleGlaGemini25Pro,
|
|
106
|
+
OpenAIGPT55,
|
|
107
|
+
OpenAIGPT55Pro,
|
|
108
|
+
AnthropicClaudeSonnet46,
|
|
109
|
+
AnthropicClaudeOpus48,
|
|
110
110
|
GoogleGlaGemini3Pro,
|
|
111
111
|
]:
|
|
112
112
|
self.register(model_cls)
|
|
@@ -127,10 +127,10 @@ class ModelRegistry:
|
|
|
127
127
|
)
|
|
128
128
|
|
|
129
129
|
|
|
130
|
-
class
|
|
130
|
+
class OpenAIGPT55(BaseAiModel):
|
|
131
131
|
@classmethod
|
|
132
132
|
def name(cls) -> str:
|
|
133
|
-
return "gpt-
|
|
133
|
+
return "gpt-5.5"
|
|
134
134
|
|
|
135
135
|
@classmethod
|
|
136
136
|
def provider(cls) -> str:
|
|
@@ -143,17 +143,18 @@ class OpenAIGPT41(BaseAiModel):
|
|
|
143
143
|
@classmethod
|
|
144
144
|
def get_model_settings(cls) -> ModelSettings:
|
|
145
145
|
"""Returns model-specific settings."""
|
|
146
|
-
return
|
|
146
|
+
return OpenAIChatModelSettings(openai_reasoning_effort="high")
|
|
147
147
|
|
|
148
148
|
|
|
149
|
-
class
|
|
149
|
+
class OpenAIGPT55Pro(BaseAiModel):
|
|
150
150
|
@classmethod
|
|
151
151
|
def name(cls) -> str:
|
|
152
|
-
return "
|
|
152
|
+
return "gpt-5.5-pro"
|
|
153
153
|
|
|
154
154
|
@classmethod
|
|
155
155
|
def provider(cls) -> str:
|
|
156
|
-
|
|
156
|
+
# Pro reasoning models are only served via the OpenAI Responses API.
|
|
157
|
+
return "openai-responses"
|
|
157
158
|
|
|
158
159
|
@classmethod
|
|
159
160
|
def api_key_prefix(cls) -> str:
|
|
@@ -162,32 +163,13 @@ class OpenAIGPTO3(BaseAiModel):
|
|
|
162
163
|
@classmethod
|
|
163
164
|
def get_model_settings(cls) -> ModelSettings:
|
|
164
165
|
"""Returns model-specific settings."""
|
|
165
|
-
return
|
|
166
|
+
return OpenAIResponsesModelSettings(openai_reasoning_effort="medium")
|
|
166
167
|
|
|
167
168
|
|
|
168
|
-
class
|
|
169
|
+
class AnthropicClaudeSonnet46(BaseAiModel):
|
|
169
170
|
@classmethod
|
|
170
171
|
def name(cls) -> str:
|
|
171
|
-
return "
|
|
172
|
-
|
|
173
|
-
@classmethod
|
|
174
|
-
def provider(cls) -> str:
|
|
175
|
-
return "openai"
|
|
176
|
-
|
|
177
|
-
@classmethod
|
|
178
|
-
def api_key_prefix(cls) -> str:
|
|
179
|
-
return "OPENAI"
|
|
180
|
-
|
|
181
|
-
@classmethod
|
|
182
|
-
def get_model_settings(cls) -> ModelSettings:
|
|
183
|
-
"""Returns model-specific settings."""
|
|
184
|
-
return OpenAIModelSettings()
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
class AnthropicClaudeSonnet37(BaseAiModel):
|
|
188
|
-
@classmethod
|
|
189
|
-
def name(cls) -> str:
|
|
190
|
-
return "claude-3-7-sonnet-20250219"
|
|
172
|
+
return "claude-sonnet-4-6"
|
|
191
173
|
|
|
192
174
|
@classmethod
|
|
193
175
|
def provider(cls) -> str:
|
|
@@ -200,13 +182,13 @@ class AnthropicClaudeSonnet37(BaseAiModel):
|
|
|
200
182
|
@classmethod
|
|
201
183
|
def get_model_settings(cls) -> ModelSettings:
|
|
202
184
|
"""Returns model-specific settings."""
|
|
203
|
-
return AnthropicModelSettings()
|
|
185
|
+
return AnthropicModelSettings(anthropic_effort="high")
|
|
204
186
|
|
|
205
187
|
|
|
206
|
-
class
|
|
188
|
+
class AnthropicClaudeOpus48(BaseAiModel):
|
|
207
189
|
@classmethod
|
|
208
190
|
def name(cls) -> str:
|
|
209
|
-
return "claude-
|
|
191
|
+
return "claude-opus-4-8"
|
|
210
192
|
|
|
211
193
|
@classmethod
|
|
212
194
|
def provider(cls) -> str:
|
|
@@ -219,51 +201,13 @@ class AnthropicClaudeSonnet4(BaseAiModel):
|
|
|
219
201
|
@classmethod
|
|
220
202
|
def get_model_settings(cls) -> ModelSettings:
|
|
221
203
|
"""Returns model-specific settings."""
|
|
222
|
-
return AnthropicModelSettings()
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
class AnthropicClaudeSonnet45(BaseAiModel):
|
|
226
|
-
@classmethod
|
|
227
|
-
def name(cls) -> str:
|
|
228
|
-
return "claude-sonnet-4-5-20250929"
|
|
229
|
-
|
|
230
|
-
@classmethod
|
|
231
|
-
def provider(cls) -> str:
|
|
232
|
-
return "anthropic"
|
|
233
|
-
|
|
234
|
-
@classmethod
|
|
235
|
-
def api_key_prefix(cls) -> str:
|
|
236
|
-
return "ANTHROPIC"
|
|
237
|
-
|
|
238
|
-
@classmethod
|
|
239
|
-
def get_model_settings(cls) -> ModelSettings:
|
|
240
|
-
"""Returns model-specific settings."""
|
|
241
|
-
return AnthropicModelSettings()
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
class GoogleGlaGemini25Pro(BaseAiModel):
|
|
245
|
-
@classmethod
|
|
246
|
-
def name(cls) -> str:
|
|
247
|
-
return "gemini-2.5-pro"
|
|
248
|
-
|
|
249
|
-
@classmethod
|
|
250
|
-
def provider(cls) -> str:
|
|
251
|
-
return "google-gla"
|
|
252
|
-
|
|
253
|
-
@classmethod
|
|
254
|
-
def api_key_prefix(cls) -> str:
|
|
255
|
-
return "GEMINI"
|
|
256
|
-
|
|
257
|
-
@classmethod
|
|
258
|
-
def get_model_settings(cls) -> ModelSettings:
|
|
259
|
-
"""Returns model-specific settings."""
|
|
260
|
-
return GoogleModelSettings(google_thinking_config=ThinkingConfigDict(thinking_budget=-1))
|
|
204
|
+
return AnthropicModelSettings(anthropic_effort="medium")
|
|
261
205
|
|
|
262
206
|
|
|
263
207
|
class GoogleGlaGemini3Pro(BaseAiModel):
|
|
264
208
|
@classmethod
|
|
265
209
|
def name(cls) -> str:
|
|
266
|
-
return "gemini-3-pro-preview"
|
|
210
|
+
return "gemini-3.1-pro-preview"
|
|
267
211
|
|
|
268
212
|
@classmethod
|
|
269
213
|
def provider(cls) -> str:
|
|
@@ -276,7 +220,9 @@ class GoogleGlaGemini3Pro(BaseAiModel):
|
|
|
276
220
|
@classmethod
|
|
277
221
|
def get_model_settings(cls) -> ModelSettings:
|
|
278
222
|
"""Returns model-specific settings."""
|
|
279
|
-
return GoogleModelSettings(
|
|
223
|
+
return GoogleModelSettings(
|
|
224
|
+
google_thinking_config=ThinkingConfigDict(thinking_level=ThinkingLevel.HIGH)
|
|
225
|
+
)
|
|
280
226
|
|
|
281
227
|
|
|
282
228
|
MODEL_REGISTRY = ModelRegistry()
|
|
@@ -8,6 +8,7 @@ import typer
|
|
|
8
8
|
from grep_ast import TreeContext, filename_to_lang
|
|
9
9
|
from grep_ast.tsl import get_language, get_parser
|
|
10
10
|
from tqdm import tqdm
|
|
11
|
+
from tree_sitter import Query, QueryCursor
|
|
11
12
|
|
|
12
13
|
from opsmith.constants import ROOT_IMPORTANT_FILES
|
|
13
14
|
from opsmith.git_repo import GitRepo
|
|
@@ -272,8 +273,8 @@ class RepoMap:
|
|
|
272
273
|
return tags
|
|
273
274
|
|
|
274
275
|
tree = parser_module.parse(bytes(code, "utf-8"))
|
|
275
|
-
query = language_module
|
|
276
|
-
captures = query.captures(tree.root_node)
|
|
276
|
+
query = Query(language_module, query_scm_content)
|
|
277
|
+
captures = QueryCursor(query).captures(tree.root_node)
|
|
277
278
|
|
|
278
279
|
processed_tags = set() # To avoid duplicate tags from different patterns
|
|
279
280
|
|
{opsmith_cli-0.4.4b0 → opsmith_cli-0.4.6b0}/opsmith/templates/virtual_machine_setup/aws/main.yml
RENAMED
|
@@ -150,6 +150,12 @@
|
|
|
150
150
|
groups: systemd-journal
|
|
151
151
|
append: yes
|
|
152
152
|
|
|
153
|
+
- name: Start Vector service
|
|
154
|
+
ansible.builtin.service:
|
|
155
|
+
name: vector
|
|
156
|
+
state: started
|
|
157
|
+
enabled: yes
|
|
158
|
+
|
|
153
159
|
- name: Create CloudWatch agent configuration
|
|
154
160
|
ansible.builtin.copy:
|
|
155
161
|
content: |
|
|
@@ -225,14 +225,13 @@ class DeploymentConfig(ServiceList):
|
|
|
225
225
|
return env
|
|
226
226
|
raise ValueError(f"Environment '{name}' not found in the deployment configuration.")
|
|
227
227
|
|
|
228
|
-
def
|
|
229
|
-
"""Retrieves a dictionary of environment variable defaults."""
|
|
230
|
-
|
|
228
|
+
def get_configured_env_vars(self) -> dict:
|
|
229
|
+
"""Retrieves a dictionary of configured environment variable with defaults."""
|
|
230
|
+
env_vars = {}
|
|
231
231
|
for service in self.services:
|
|
232
232
|
for env_var in service.env_vars:
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return env_var_defaults
|
|
233
|
+
env_vars[env_var.key] = env_var.default_value
|
|
234
|
+
return env_vars
|
|
236
235
|
|
|
237
236
|
@classmethod
|
|
238
237
|
def load(cls: Type["DeploymentConfig"], deployments_path: Path) -> Optional["DeploymentConfig"]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "opsmith-cli"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.6b"
|
|
4
4
|
description = "Opsmith is an AI devops engineer in your terminal"
|
|
5
5
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
6
6
|
classifiers = [
|
|
@@ -16,26 +16,28 @@ classifiers = [
|
|
|
16
16
|
"Topic :: Software Development",
|
|
17
17
|
]
|
|
18
18
|
license = "GPL-3.0-only"
|
|
19
|
-
requires-python = ">=3.
|
|
19
|
+
requires-python = ">=3.12"
|
|
20
20
|
dependencies = [
|
|
21
|
-
"ansible==
|
|
22
|
-
"gitpython==3.1.
|
|
23
|
-
"google-api-python-client==2.
|
|
24
|
-
"google-cloud-compute==1.
|
|
25
|
-
"google-cloud-resource-manager==1.
|
|
26
|
-
"google-cloud-storage==3.
|
|
21
|
+
"ansible==14.1.0",
|
|
22
|
+
"gitpython==3.1.50",
|
|
23
|
+
"google-api-python-client==2.197.0",
|
|
24
|
+
"google-cloud-compute==1.48.0",
|
|
25
|
+
"google-cloud-resource-manager==1.17.0",
|
|
26
|
+
"google-cloud-storage==3.12.0",
|
|
27
27
|
"grep-ast==0.9.0",
|
|
28
28
|
"inquirer==3.4.1",
|
|
29
29
|
"jinja2==3.1.6",
|
|
30
30
|
"networkx==3.6.1",
|
|
31
|
-
"pick==2.
|
|
32
|
-
"pydantic==2.
|
|
33
|
-
"pydantic-ai==1.
|
|
34
|
-
"python-dotenv==1.2.
|
|
31
|
+
"pick==2.6.0",
|
|
32
|
+
"pydantic==2.13.4",
|
|
33
|
+
"pydantic-ai==1.107.0",
|
|
34
|
+
"python-dotenv==1.2.2",
|
|
35
35
|
"pyyaml==6.0.3",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
"rich==15.0.0",
|
|
37
|
+
"tqdm==4.68.3",
|
|
38
|
+
"tree-sitter==0.25.2",
|
|
39
|
+
"tree-sitter-language-pack==1.9.1",
|
|
40
|
+
"typer==0.26.7",
|
|
39
41
|
]
|
|
40
42
|
|
|
41
43
|
[project.scripts]
|