reasoning-deployment-service 0.3.3__tar.gz → 0.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reasoning-deployment-service might be problematic. Click here for more details.
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/PKG-INFO +5 -7
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/pyproject.toml +5 -4
- reasoning_deployment_service-0.3.4/reasoning_deployment_service/runner.py +105 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/PKG-INFO +5 -7
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/SOURCES.txt +0 -3
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/requires.txt +3 -2
- reasoning_deployment_service-0.3.3/reasoning_deployment_service/gui_editor/requirements_minimal.txt +0 -54
- reasoning_deployment_service-0.3.3/reasoning_deployment_service/gui_editor/run_program.sh +0 -55
- reasoning_deployment_service-0.3.3/reasoning_deployment_service/runner.py +0 -122
- reasoning_deployment_service-0.3.3/setup.py +0 -89
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/README.md +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/api_client.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/cli_runner.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/config.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/google_deps.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/cli_editor/reasoning_engine_creator.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/main.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/core/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/core/api_client.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/core/config.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/core/google_deps.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/core/reasoning_engine_creator.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/__init__.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/agent_space_view.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/authorization_view.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/reasoning_engine_view.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/reasoning_engines_view.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/gui_editor/src/ui/ui_components.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service/reasoning_deployment_service.py +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/dependency_links.txt +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/entry_points.txt +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/reasoning_deployment_service.egg-info/top_level.txt +0 -0
- {reasoning_deployment_service-0.3.3 → reasoning_deployment_service-0.3.4}/setup.cfg +0 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reasoning-deployment-service
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: Deployment helper for Vertex AI Reasoning Engines & Agent Spaces
|
|
5
|
-
Author: AxG-AI-Exchange-GenAI-Initiative
|
|
6
5
|
Author-email: Sergio Estrada <sergio.estrada@accenture.com>
|
|
7
6
|
License: Apache-2.0
|
|
8
7
|
Project-URL: Homepage, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService
|
|
9
8
|
Project-URL: Repository, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService
|
|
10
9
|
Project-URL: Issues, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService/issues
|
|
11
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.9
|
|
12
11
|
Description-Content-Type: text/markdown
|
|
13
12
|
Requires-Dist: requests>=2.28
|
|
14
13
|
Requires-Dist: python-dotenv>=1.0
|
|
15
14
|
Requires-Dist: google-auth>=2.20
|
|
16
15
|
Requires-Dist: google-cloud-storage>=2.16
|
|
16
|
+
Requires-Dist: google-cloud-aiplatform[adk,agent-engines]>=1.88.0
|
|
17
|
+
Requires-Dist: protobuf<7.0.0,>=4.21
|
|
17
18
|
Requires-Dist: keyring>=24.0
|
|
18
19
|
Requires-Dist: keyrings.google-artifactregistry-auth>=1.1
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
Requires-Dist: protobuf<7.0.0,>=4.21
|
|
20
|
+
Requires-Dist: PyYAML>=6.0
|
|
21
21
|
Requires-Dist: click>=8.0
|
|
22
22
|
Provides-Extra: dev
|
|
23
23
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -25,8 +25,6 @@ Requires-Dist: build; extra == "dev"
|
|
|
25
25
|
Requires-Dist: twine; extra == "dev"
|
|
26
26
|
Requires-Dist: black; extra == "dev"
|
|
27
27
|
Requires-Dist: ruff; extra == "dev"
|
|
28
|
-
Dynamic: author
|
|
29
|
-
Dynamic: requires-python
|
|
30
28
|
|
|
31
29
|
# Reasoning Deployment Service
|
|
32
30
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "reasoning-deployment-service"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.4"
|
|
8
8
|
description = "Deployment helper for Vertex AI Reasoning Engines & Agent Spaces"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
@@ -19,11 +19,12 @@ dependencies = [
|
|
|
19
19
|
"python-dotenv>=1.0",
|
|
20
20
|
"google-auth>=2.20",
|
|
21
21
|
"google-cloud-storage>=2.16",
|
|
22
|
+
"google-cloud-aiplatform[adk,agent-engines]>=1.88.0", # Vertex AI + ADK + Agent Engines
|
|
23
|
+
"protobuf>=4.21,<7.0.0", # pinned for compat
|
|
22
24
|
"keyring>=24.0",
|
|
23
25
|
"keyrings.google-artifactregistry-auth>=1.1",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"click>=8.0" # nice for CLI menus if you expand later
|
|
26
|
+
"PyYAML>=6.0", # yaml support
|
|
27
|
+
"click>=8.0" # nice for CLI menus if you expand later
|
|
27
28
|
]
|
|
28
29
|
|
|
29
30
|
[project.optional-dependencies]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import argparse
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from reasoning_deployment_service import ReasoningEngineDeploymentService
|
|
5
|
+
from reasoning_deployment_service.gui_editor import GUIEditor
|
|
6
|
+
from reasoning_deployment_service.cli_editor import CLIRunner
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Runner:
|
|
10
|
+
@staticmethod
|
|
11
|
+
def run():
|
|
12
|
+
parser = argparse.ArgumentParser(description="Reasoning Engine Deployment Runner")
|
|
13
|
+
parser.add_argument(
|
|
14
|
+
"--mode",
|
|
15
|
+
choices=["create", "auth", "cli", "gui", "populate_files"],
|
|
16
|
+
help="Operation mode to run",
|
|
17
|
+
)
|
|
18
|
+
parser.add_argument(
|
|
19
|
+
"--agent-path",
|
|
20
|
+
help="Dotted path to your agent (e.g. Invoice_agent.agent:root_agent). "
|
|
21
|
+
"If omitted, falls back to your_agent_import.py in project root."
|
|
22
|
+
)
|
|
23
|
+
args = parser.parse_args()
|
|
24
|
+
|
|
25
|
+
Runner._ensure_gitignore()
|
|
26
|
+
|
|
27
|
+
# --- Load root_agent dynamically ---
|
|
28
|
+
root_agent = Runner._load_agent(args.agent_path)
|
|
29
|
+
|
|
30
|
+
# --- Check env config ---
|
|
31
|
+
if not Path(".env.agent").exists() or not Path("aix_agent.yaml").exists():
|
|
32
|
+
print("Missing .env.agent or aix_agent.yaml.")
|
|
33
|
+
print("Options:\n 5) Generate placeholder config\n q) Quit")
|
|
34
|
+
choice = input("Enter choice: ").strip()
|
|
35
|
+
if choice == "5":
|
|
36
|
+
svc = ReasoningEngineDeploymentService(root_agent, deployment_environment="DEV")
|
|
37
|
+
svc._check_required_files_exist()
|
|
38
|
+
sys.exit(0)
|
|
39
|
+
|
|
40
|
+
# --- Run mode or menu ---
|
|
41
|
+
if args.mode:
|
|
42
|
+
Runner._dispatch(args.mode, root_agent)
|
|
43
|
+
else:
|
|
44
|
+
Runner._menu(root_agent)
|
|
45
|
+
|
|
46
|
+
# ------------------ HELPERS ------------------
|
|
47
|
+
|
|
48
|
+
@staticmethod
|
|
49
|
+
def _ensure_gitignore():
|
|
50
|
+
gi = Path(".gitignore")
|
|
51
|
+
if not gi.exists():
|
|
52
|
+
gi.write_text("# Generated by Runner\n")
|
|
53
|
+
patterns = [
|
|
54
|
+
".venv", ".venv_deploy", "venv", "__pycache__",
|
|
55
|
+
"deploy_env", "your_agent_import.py"
|
|
56
|
+
]
|
|
57
|
+
content = gi.read_text().splitlines()
|
|
58
|
+
for p in patterns:
|
|
59
|
+
if p not in content:
|
|
60
|
+
gi.write_text(gi.read_text() + f"\n{p}\n")
|
|
61
|
+
|
|
62
|
+
@staticmethod
|
|
63
|
+
def _load_agent(agent_path_arg: str):
|
|
64
|
+
"""Load root_agent either from --agent-path or your_agent_import.py."""
|
|
65
|
+
sys.path.insert(0, str(Path.cwd())) # ensure project root on sys.path
|
|
66
|
+
|
|
67
|
+
if agent_path_arg:
|
|
68
|
+
import importlib
|
|
69
|
+
if ":" in agent_path_arg:
|
|
70
|
+
module_path, attr = agent_path_arg.split(":")
|
|
71
|
+
else:
|
|
72
|
+
module_path, attr = agent_path_arg, "root_agent"
|
|
73
|
+
module = importlib.import_module(module_path)
|
|
74
|
+
return getattr(module, attr)
|
|
75
|
+
|
|
76
|
+
if Path("your_agent_import.py").exists():
|
|
77
|
+
from your_agent_import import root_agent
|
|
78
|
+
return root_agent
|
|
79
|
+
|
|
80
|
+
print("Error: No agent path provided and your_agent_import.py not found.")
|
|
81
|
+
sys.exit(1)
|
|
82
|
+
|
|
83
|
+
@staticmethod
|
|
84
|
+
def _dispatch(mode, root_agent):
|
|
85
|
+
svc = ReasoningEngineDeploymentService(root_agent, deployment_environment="DEV")
|
|
86
|
+
|
|
87
|
+
if mode == "create":
|
|
88
|
+
svc.one_deployment_with_everything_on_it()
|
|
89
|
+
elif mode == "auth":
|
|
90
|
+
svc.one_deployment_with_everything_on_it(skip_engine_step=True)
|
|
91
|
+
elif mode == "cli":
|
|
92
|
+
CLIRunner().run()
|
|
93
|
+
elif mode == "gui":
|
|
94
|
+
GUIEditor().run()
|
|
95
|
+
elif mode == "populate_files":
|
|
96
|
+
svc._check_required_files_exist()
|
|
97
|
+
|
|
98
|
+
@staticmethod
|
|
99
|
+
def _menu(root_agent):
|
|
100
|
+
print("Choose an operation:\n1) Create/Update\n2) Auth only\n3) CLI\n4) GUI\nq) Quit")
|
|
101
|
+
choice = input("Enter choice: ").strip().lower()
|
|
102
|
+
mapping = {"1": "create", "2": "auth", "3": "cli", "4": "gui"}
|
|
103
|
+
if choice == "q":
|
|
104
|
+
sys.exit(0)
|
|
105
|
+
Runner._dispatch(mapping.get(choice, ""), root_agent)
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reasoning-deployment-service
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: Deployment helper for Vertex AI Reasoning Engines & Agent Spaces
|
|
5
|
-
Author: AxG-AI-Exchange-GenAI-Initiative
|
|
6
5
|
Author-email: Sergio Estrada <sergio.estrada@accenture.com>
|
|
7
6
|
License: Apache-2.0
|
|
8
7
|
Project-URL: Homepage, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService
|
|
9
8
|
Project-URL: Repository, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService
|
|
10
9
|
Project-URL: Issues, https://github.com/AxG-AI-Exchange-GenAI-Initiative/AIXAgentDeploymentService/issues
|
|
11
|
-
Requires-Python: >=3.
|
|
10
|
+
Requires-Python: >=3.9
|
|
12
11
|
Description-Content-Type: text/markdown
|
|
13
12
|
Requires-Dist: requests>=2.28
|
|
14
13
|
Requires-Dist: python-dotenv>=1.0
|
|
15
14
|
Requires-Dist: google-auth>=2.20
|
|
16
15
|
Requires-Dist: google-cloud-storage>=2.16
|
|
16
|
+
Requires-Dist: google-cloud-aiplatform[adk,agent-engines]>=1.88.0
|
|
17
|
+
Requires-Dist: protobuf<7.0.0,>=4.21
|
|
17
18
|
Requires-Dist: keyring>=24.0
|
|
18
19
|
Requires-Dist: keyrings.google-artifactregistry-auth>=1.1
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
Requires-Dist: protobuf<7.0.0,>=4.21
|
|
20
|
+
Requires-Dist: PyYAML>=6.0
|
|
21
21
|
Requires-Dist: click>=8.0
|
|
22
22
|
Provides-Extra: dev
|
|
23
23
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -25,8 +25,6 @@ Requires-Dist: build; extra == "dev"
|
|
|
25
25
|
Requires-Dist: twine; extra == "dev"
|
|
26
26
|
Requires-Dist: black; extra == "dev"
|
|
27
27
|
Requires-Dist: ruff; extra == "dev"
|
|
28
|
-
Dynamic: author
|
|
29
|
-
Dynamic: requires-python
|
|
30
28
|
|
|
31
29
|
# Reasoning Deployment Service
|
|
32
30
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
README.md
|
|
2
2
|
pyproject.toml
|
|
3
|
-
setup.py
|
|
4
3
|
reasoning_deployment_service/__init__.py
|
|
5
4
|
reasoning_deployment_service/reasoning_deployment_service.py
|
|
6
5
|
reasoning_deployment_service/runner.py
|
|
@@ -18,8 +17,6 @@ reasoning_deployment_service/cli_editor/google_deps.py
|
|
|
18
17
|
reasoning_deployment_service/cli_editor/reasoning_engine_creator.py
|
|
19
18
|
reasoning_deployment_service/gui_editor/__init__.py
|
|
20
19
|
reasoning_deployment_service/gui_editor/main.py
|
|
21
|
-
reasoning_deployment_service/gui_editor/requirements_minimal.txt
|
|
22
|
-
reasoning_deployment_service/gui_editor/run_program.sh
|
|
23
20
|
reasoning_deployment_service/gui_editor/src/__init__.py
|
|
24
21
|
reasoning_deployment_service/gui_editor/src/core/__init__.py
|
|
25
22
|
reasoning_deployment_service/gui_editor/src/core/api_client.py
|
|
@@ -2,10 +2,11 @@ requests>=2.28
|
|
|
2
2
|
python-dotenv>=1.0
|
|
3
3
|
google-auth>=2.20
|
|
4
4
|
google-cloud-storage>=2.16
|
|
5
|
+
google-cloud-aiplatform[adk,agent-engines]>=1.88.0
|
|
6
|
+
protobuf<7.0.0,>=4.21
|
|
5
7
|
keyring>=24.0
|
|
6
8
|
keyrings.google-artifactregistry-auth>=1.1
|
|
7
|
-
|
|
8
|
-
protobuf<7.0.0,>=4.21
|
|
9
|
+
PyYAML>=6.0
|
|
9
10
|
click>=8.0
|
|
10
11
|
|
|
11
12
|
[dev]
|
reasoning_deployment_service-0.3.3/reasoning_deployment_service/gui_editor/requirements_minimal.txt
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Bare minimum requirements for Agent Space Deployment Service
|
|
2
|
-
# Core functionality dependencies only
|
|
3
|
-
|
|
4
|
-
# Google Cloud & Vertex AI (CORE REQUIREMENT)
|
|
5
|
-
google-cloud-aiplatform==1.108.0
|
|
6
|
-
vertexai==1.43.0
|
|
7
|
-
google-auth==2.40.3
|
|
8
|
-
google-auth-oauthlib==1.2.2
|
|
9
|
-
google-api-python-client==2.178.0
|
|
10
|
-
|
|
11
|
-
# Environment management (CORE REQUIREMENT)
|
|
12
|
-
python-dotenv==1.1.1
|
|
13
|
-
|
|
14
|
-
# HTTP requests (CORE REQUIREMENT)
|
|
15
|
-
requests==2.32.4
|
|
16
|
-
|
|
17
|
-
# Google Cloud dependencies (CORE REQUIREMENT)
|
|
18
|
-
google-api-core==2.25.1
|
|
19
|
-
googleapis-common-protos==1.70.0
|
|
20
|
-
grpcio==1.74.0
|
|
21
|
-
protobuf==6.31.1
|
|
22
|
-
|
|
23
|
-
# Authentication dependencies (CORE REQUIREMENT)
|
|
24
|
-
google-auth-httplib2==0.2.0
|
|
25
|
-
cachetools==5.5.2
|
|
26
|
-
pyasn1==0.6.1
|
|
27
|
-
pyasn1_modules==0.4.2
|
|
28
|
-
rsa==4.9.1
|
|
29
|
-
|
|
30
|
-
# Core Python utilities (CORE REQUIREMENT)
|
|
31
|
-
certifi==2025.8.3
|
|
32
|
-
urllib3==2.5.0
|
|
33
|
-
six==1.17.0
|
|
34
|
-
|
|
35
|
-
# OPTIONAL: For enhanced functionality
|
|
36
|
-
# Uncomment if you need these features:
|
|
37
|
-
|
|
38
|
-
# For MCP server support:
|
|
39
|
-
# mcp==1.12.4
|
|
40
|
-
|
|
41
|
-
# For FastAPI endpoints (if you plan to add web interface):
|
|
42
|
-
# fastapi==0.116.1
|
|
43
|
-
# uvicorn==0.35.0
|
|
44
|
-
# pydantic==2.11.7
|
|
45
|
-
|
|
46
|
-
# For document processing in agents:
|
|
47
|
-
# PyPDF2==3.0.1
|
|
48
|
-
# python-docx==1.2.0
|
|
49
|
-
|
|
50
|
-
# For web scraping/HTTP in agents:
|
|
51
|
-
# httpx==0.28.1
|
|
52
|
-
|
|
53
|
-
# For YAML configuration:
|
|
54
|
-
# PyYAML==6.0.2
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -e
|
|
3
|
-
|
|
4
|
-
VENV_DIR=".venv"
|
|
5
|
-
|
|
6
|
-
# Detect Python executable
|
|
7
|
-
if command -v python3 &>/dev/null; then
|
|
8
|
-
PYTHON=python3
|
|
9
|
-
elif command -v python &>/dev/null; then
|
|
10
|
-
PYTHON=python
|
|
11
|
-
else
|
|
12
|
-
echo "❌ Python is not installed. Please install Python 3.9+."
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
# Create venv if missing
|
|
17
|
-
if [ ! -d "$VENV_DIR" ]; then
|
|
18
|
-
echo "🔧 Creating virtual environment..."
|
|
19
|
-
$PYTHON -m venv "$VENV_DIR"
|
|
20
|
-
fi
|
|
21
|
-
|
|
22
|
-
# Activate venv (POSIX)
|
|
23
|
-
if [ -f "$VENV_DIR/bin/activate" ]; then
|
|
24
|
-
source "$VENV_DIR/bin/activate"
|
|
25
|
-
# Activate venv (Windows Git Bash or Cygwin)
|
|
26
|
-
elif [ -f "$VENV_DIR/Scripts/activate" ]; then
|
|
27
|
-
source "$VENV_DIR/Scripts/activate"
|
|
28
|
-
else
|
|
29
|
-
echo "❌ Could not find venv activation script."
|
|
30
|
-
exit 1
|
|
31
|
-
fi
|
|
32
|
-
|
|
33
|
-
# Install Tkinter if on Linux
|
|
34
|
-
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
35
|
-
echo "🖼 Installing Tkinter for Linux..."
|
|
36
|
-
if command -v apt-get &>/dev/null; then
|
|
37
|
-
sudo apt-get update && sudo apt-get install -y python3-tk
|
|
38
|
-
elif command -v dnf &>/dev/null; then
|
|
39
|
-
sudo dnf install -y python3-tkinter
|
|
40
|
-
elif command -v pacman &>/dev/null; then
|
|
41
|
-
sudo pacman -S --noconfirm tk
|
|
42
|
-
else
|
|
43
|
-
echo "⚠️ Could not determine package manager. Install python3-tk manually."
|
|
44
|
-
fi
|
|
45
|
-
fi
|
|
46
|
-
|
|
47
|
-
# Install dependencies
|
|
48
|
-
echo "📦 Installing dependencies..."
|
|
49
|
-
pip3 install --upgrade pip
|
|
50
|
-
# Install the reasoning deployment service with GUI extras
|
|
51
|
-
pip3 install "reasoning-deployment-service[gui]"
|
|
52
|
-
|
|
53
|
-
# Run your app
|
|
54
|
-
echo "🚀 Starting app..."
|
|
55
|
-
$PYTHON main.py
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import sys
|
|
3
|
-
import subprocess
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
from dotenv import load_dotenv
|
|
6
|
-
import argparse
|
|
7
|
-
|
|
8
|
-
from reasoning_deployment_service import (
|
|
9
|
-
ReasoningEngineDeploymentService,
|
|
10
|
-
)
|
|
11
|
-
from reasoning_deployment_service.gui_editor import GUIEditor
|
|
12
|
-
from reasoning_deployment_service.cli_editor import CLIRunner
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class Runner:
|
|
16
|
-
@staticmethod
|
|
17
|
-
def run():
|
|
18
|
-
parser = argparse.ArgumentParser(description="Reasoning Engine Deployment Runner")
|
|
19
|
-
parser.add_argument(
|
|
20
|
-
"--mode",
|
|
21
|
-
choices=["create", "auth", "cli", "gui", "populate_files"],
|
|
22
|
-
required=False,
|
|
23
|
-
help="Operation mode to run",
|
|
24
|
-
)
|
|
25
|
-
args = parser.parse_args()
|
|
26
|
-
|
|
27
|
-
# --- Ensure .gitignore covers junk ---
|
|
28
|
-
Runner._ensure_gitignore()
|
|
29
|
-
|
|
30
|
-
# --- Ensure your_agent_import.py exists ---
|
|
31
|
-
if not Path("your_agent_import.py").exists():
|
|
32
|
-
Runner._create_agent_import()
|
|
33
|
-
|
|
34
|
-
# --- Always ensure venv exists & is up to date ---
|
|
35
|
-
venv_python = Runner._ensure_venv()
|
|
36
|
-
|
|
37
|
-
# --- Install dependencies into venv ---
|
|
38
|
-
Runner._install_deps(venv_python)
|
|
39
|
-
|
|
40
|
-
# --- If no config files, restrict menu ---
|
|
41
|
-
if not Path(".env.agent").exists() or not Path("aix_agent.yaml").exists():
|
|
42
|
-
print("Missing .env.agent or aix_agent.yaml.")
|
|
43
|
-
print("Options:\n 5) Generate placeholder config\n q) Quit")
|
|
44
|
-
choice = input("Enter choice: ").strip()
|
|
45
|
-
if choice == "5":
|
|
46
|
-
subprocess.check_call([venv_python, "deploy.py", "--mode", "populate_files"])
|
|
47
|
-
else:
|
|
48
|
-
sys.exit(0)
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
# --- Dispatch based on mode or menu ---
|
|
52
|
-
if args.mode:
|
|
53
|
-
Runner._dispatch(args.mode, venv_python)
|
|
54
|
-
else:
|
|
55
|
-
Runner._menu(venv_python)
|
|
56
|
-
|
|
57
|
-
# ------------------ HELPERS ------------------
|
|
58
|
-
|
|
59
|
-
@staticmethod
|
|
60
|
-
def _ensure_gitignore():
|
|
61
|
-
gi = Path(".gitignore")
|
|
62
|
-
if not gi.exists():
|
|
63
|
-
gi.write_text("# Generated by Runner\n")
|
|
64
|
-
patterns = [".venv", ".venv_deploy", "venv", "__pycache__", "deploy_env", "your_agent_import.py"]
|
|
65
|
-
content = gi.read_text().splitlines()
|
|
66
|
-
for p in patterns:
|
|
67
|
-
if p not in content:
|
|
68
|
-
with gi.open("a") as f:
|
|
69
|
-
f.write(f"{p}\n")
|
|
70
|
-
|
|
71
|
-
@staticmethod
|
|
72
|
-
def _create_agent_import():
|
|
73
|
-
agent_dir = input("Enter the directory where your root_agent (agent.py) lives: ").strip()
|
|
74
|
-
if not Path(agent_dir, "agent.py").exists():
|
|
75
|
-
print(f"Error: {agent_dir}/agent.py not found")
|
|
76
|
-
sys.exit(1)
|
|
77
|
-
import_path = agent_dir.replace("/", ".") + ".agent"
|
|
78
|
-
Path("your_agent_import.py").write_text(f"from {import_path} import root_agent\n")
|
|
79
|
-
print(f"Created your_agent_import.py pointing to {agent_dir}/agent.py")
|
|
80
|
-
|
|
81
|
-
@staticmethod
|
|
82
|
-
def _ensure_venv():
|
|
83
|
-
venv_dir = Path("deploy_env")
|
|
84
|
-
if not venv_dir.exists():
|
|
85
|
-
subprocess.check_call([sys.executable, "-m", "venv", str(venv_dir)])
|
|
86
|
-
print("Created venv at ./deploy_env")
|
|
87
|
-
return str(venv_dir / "bin" / "python")
|
|
88
|
-
|
|
89
|
-
@staticmethod
|
|
90
|
-
def _install_deps(venv_python):
|
|
91
|
-
subprocess.check_call([venv_python, "-m", "pip", "install", "--upgrade", "pip"])
|
|
92
|
-
subprocess.check_call([venv_python, "-m", "pip", "install", "keyring", "keyrings.google-artifactregistry-auth"])
|
|
93
|
-
# Install reasoning-deployment-service itself (current package)
|
|
94
|
-
subprocess.check_call([venv_python, "-m", "pip", "install", "reasoning-deployment-service"])
|
|
95
|
-
|
|
96
|
-
if Path("requirements.txt").exists():
|
|
97
|
-
subprocess.check_call([venv_python, "-m", "pip", "install", "-r", "requirements.txt"])
|
|
98
|
-
|
|
99
|
-
@staticmethod
|
|
100
|
-
def _dispatch(mode, venv_python):
|
|
101
|
-
from your_agent_import import root_agent
|
|
102
|
-
svc = ReasoningEngineDeploymentService(root_agent, deployment_environment="DEV")
|
|
103
|
-
|
|
104
|
-
if mode == "create":
|
|
105
|
-
svc.one_deployment_with_everything_on_it()
|
|
106
|
-
elif mode == "auth":
|
|
107
|
-
svc.one_deployment_with_everything_on_it(skip_engine_step=True)
|
|
108
|
-
elif mode == "cli":
|
|
109
|
-
CLIRunner().run()
|
|
110
|
-
elif mode == "gui":
|
|
111
|
-
GUIEditor().run()
|
|
112
|
-
elif mode == "populate_files":
|
|
113
|
-
svc._check_required_files_exist()
|
|
114
|
-
|
|
115
|
-
@staticmethod
|
|
116
|
-
def _menu(venv_python):
|
|
117
|
-
print("Choose an operation:\n1) Create/Update\n2) Auth only\n3) CLI\n4) GUI\nq) Quit")
|
|
118
|
-
choice = input("Enter choice: ").strip()
|
|
119
|
-
mapping = {"1": "create", "2": "auth", "3": "cli", "4": "gui"}
|
|
120
|
-
if choice.lower() == "q":
|
|
121
|
-
sys.exit(0)
|
|
122
|
-
Runner._dispatch(mapping.get(choice, ""), venv_python)
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
from setuptools import setup, find_packages
|
|
2
|
-
|
|
3
|
-
setup(
|
|
4
|
-
name='reasoning-deployment-service',
|
|
5
|
-
version='0.2.3',
|
|
6
|
-
description='A service for deploying reasoning agents with CLI and GUI editors.',
|
|
7
|
-
author='AxG-AI-Exchange-GenAI-Initiative',
|
|
8
|
-
packages=find_packages(),
|
|
9
|
-
package_data={
|
|
10
|
-
'reasoning_deployment_service.gui_editor': [
|
|
11
|
-
'src/core/*.py',
|
|
12
|
-
'src/ui/*.py',
|
|
13
|
-
'src/__init__.py',
|
|
14
|
-
'src/core/__init__.py',
|
|
15
|
-
'src/ui/__init__.py',
|
|
16
|
-
'requirements_minimal.txt',
|
|
17
|
-
'run_program.sh',
|
|
18
|
-
],
|
|
19
|
-
'reasoning_deployment_service.cli_editor': [
|
|
20
|
-
'*.py',
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
include_package_data=True,
|
|
24
|
-
install_requires=[
|
|
25
|
-
# Core reasoning deployment service dependencies
|
|
26
|
-
'google-cloud-aiplatform[agent_engines]>=1.91.0,!=1.92.0',
|
|
27
|
-
'vertexai>=1.43.0',
|
|
28
|
-
'google-auth>=2.40.0',
|
|
29
|
-
'google-auth-oauthlib>=1.2.0',
|
|
30
|
-
'google-api-python-client>=2.178.0',
|
|
31
|
-
'python-dotenv>=1.1.0',
|
|
32
|
-
'requests>=2.32.0',
|
|
33
|
-
'PyYAML>=6.0.0',
|
|
34
|
-
'google-adk>=0.0.2',
|
|
35
|
-
'google-genai>=1.5.0,<2.0.0',
|
|
36
|
-
'pydantic>=2.10.6,<3.0.0',
|
|
37
|
-
],
|
|
38
|
-
extras_require={
|
|
39
|
-
'gui': [
|
|
40
|
-
# GUI editor dependencies (all from requirements_minimal.txt)
|
|
41
|
-
'google-api-core>=2.25.0',
|
|
42
|
-
'googleapis-common-protos>=1.70.0',
|
|
43
|
-
'grpcio>=1.74.0',
|
|
44
|
-
'protobuf>=6.31.0',
|
|
45
|
-
'google-auth-httplib2>=0.2.0',
|
|
46
|
-
'cachetools>=5.5.0',
|
|
47
|
-
'pyasn1>=0.6.0',
|
|
48
|
-
'pyasn1_modules>=0.4.0',
|
|
49
|
-
'rsa>=4.9.0',
|
|
50
|
-
'certifi>=2025.8.0',
|
|
51
|
-
'urllib3>=2.5.0',
|
|
52
|
-
'six>=1.17.0',
|
|
53
|
-
],
|
|
54
|
-
'cli': [], # CLI has no extra requirements beyond base
|
|
55
|
-
'full': [
|
|
56
|
-
# Install everything for complete functionality
|
|
57
|
-
'google-api-core>=2.25.0',
|
|
58
|
-
'googleapis-common-protos>=1.70.0',
|
|
59
|
-
'grpcio>=1.74.0',
|
|
60
|
-
'protobuf>=6.31.0',
|
|
61
|
-
'google-auth-httplib2>=0.2.0',
|
|
62
|
-
'cachetools>=5.5.0',
|
|
63
|
-
'pyasn1>=0.6.0',
|
|
64
|
-
'pyasn1_modules>=0.4.0',
|
|
65
|
-
'rsa>=4.9.0',
|
|
66
|
-
'certifi>=2025.8.0',
|
|
67
|
-
'urllib3>=2.5.0',
|
|
68
|
-
'six>=1.17.0',
|
|
69
|
-
],
|
|
70
|
-
'dev': [
|
|
71
|
-
# Development dependencies
|
|
72
|
-
'pytest>=7.0.0',
|
|
73
|
-
'pytest-asyncio>=0.21.0',
|
|
74
|
-
'black>=23.0.0',
|
|
75
|
-
'flake8>=6.0.0',
|
|
76
|
-
],
|
|
77
|
-
},
|
|
78
|
-
python_requires='>=3.7',
|
|
79
|
-
classifiers=[
|
|
80
|
-
'Development Status :: 3 - Alpha',
|
|
81
|
-
'Intended Audience :: Developers',
|
|
82
|
-
'Programming Language :: Python :: 3',
|
|
83
|
-
'Programming Language :: Python :: 3.7',
|
|
84
|
-
'Programming Language :: Python :: 3.8',
|
|
85
|
-
'Programming Language :: Python :: 3.9',
|
|
86
|
-
'Programming Language :: Python :: 3.10',
|
|
87
|
-
'Programming Language :: Python :: 3.11',
|
|
88
|
-
],
|
|
89
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|