supervaizer 0.10.5__tar.gz → 0.10.7__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.
Files changed (77) hide show
  1. {supervaizer-0.10.5 → supervaizer-0.10.7}/PKG-INFO +1 -1
  2. {supervaizer-0.10.5 → supervaizer-0.10.7}/pyproject.toml +1 -1
  3. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/__version__.py +1 -1
  4. supervaizer-0.10.7/src/supervaizer/admin/templates/index.html +50 -0
  5. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/cli.py +2 -3
  6. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/examples/controller_template.py +21 -23
  7. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/server.py +22 -1
  8. {supervaizer-0.10.5 → supervaizer-0.10.7}/.gitignore +0 -0
  9. {supervaizer-0.10.5 → supervaizer-0.10.7}/LICENSE.md +0 -0
  10. {supervaizer-0.10.5 → supervaizer-0.10.7}/README.md +0 -0
  11. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/__init__.py +0 -0
  12. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/account.py +0 -0
  13. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/account_service.py +0 -0
  14. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/routes.py +0 -0
  15. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/static/js/job-start-form.js +0 -0
  16. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/agent_detail.html +0 -0
  17. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/agents.html +0 -0
  18. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/agents_grid.html +0 -0
  19. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/base.html +0 -0
  20. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/case_detail.html +0 -0
  21. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/cases_list.html +0 -0
  22. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/cases_table.html +0 -0
  23. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/console.html +0 -0
  24. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/dashboard.html +0 -0
  25. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/job_detail.html +0 -0
  26. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/job_start_test.html +0 -0
  27. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/jobs_list.html +0 -0
  28. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/jobs_table.html +0 -0
  29. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/navigation.html +0 -0
  30. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/recent_activity.html +0 -0
  31. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/server.html +0 -0
  32. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/server_status_cards.html +0 -0
  33. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/admin/templates/supervaize_instructions.html +0 -0
  34. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/agent.py +0 -0
  35. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/case.py +0 -0
  36. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/cli.py +0 -0
  37. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/common.py +0 -0
  38. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/__init__.py +0 -0
  39. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/__init__.py +0 -0
  40. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/clean.py +0 -0
  41. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/down.py +0 -0
  42. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/local.py +0 -0
  43. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/plan.py +0 -0
  44. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/status.py +0 -0
  45. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/commands/up.py +0 -0
  46. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/docker.py +0 -0
  47. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/driver_factory.py +0 -0
  48. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/drivers/__init__.py +0 -0
  49. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/drivers/aws_app_runner.py +0 -0
  50. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/drivers/base.py +0 -0
  51. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/drivers/cloud_run.py +0 -0
  52. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/drivers/do_app_platform.py +0 -0
  53. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/health.py +0 -0
  54. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/state.py +0 -0
  55. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/templates/Dockerfile.template +0 -0
  56. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/templates/debug_env.py +0 -0
  57. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/templates/docker-compose.yml.template +0 -0
  58. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/templates/dockerignore.template +0 -0
  59. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/templates/entrypoint.sh +0 -0
  60. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/deploy/utils.py +0 -0
  61. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/event.py +0 -0
  62. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/instructions.py +0 -0
  63. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/job.py +0 -0
  64. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/job_service.py +0 -0
  65. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/lifecycle.py +0 -0
  66. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/parameter.py +0 -0
  67. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/protocol/__init__.py +0 -0
  68. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/protocol/a2a/__init__.py +0 -0
  69. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/protocol/a2a/model.py +0 -0
  70. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/protocol/a2a/routes.py +0 -0
  71. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/py.typed +0 -0
  72. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/routes.py +0 -0
  73. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/server_utils.py +0 -0
  74. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/storage.py +0 -0
  75. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/telemetry.py +0 -0
  76. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/utils/__init__.py +0 -0
  77. {supervaizer-0.10.5 → supervaizer-0.10.7}/src/supervaizer/utils/version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: supervaizer
3
- Version: 0.10.5
3
+ Version: 0.10.7
4
4
  Summary: Controller system for Supervaize
5
5
  Project-URL: Homepage, https://supervaize.com
6
6
  Project-URL: Repository, https://github.com/supervaize/supervaizer
@@ -121,7 +121,7 @@ mypy_path = "src"
121
121
  disallow_any_expr = false
122
122
 
123
123
  [tool.bumpversion]
124
- current_version = "0.10.5"
124
+ current_version = "0.10.7"
125
125
  commit = true
126
126
  tag = true
127
127
  tag_name = "v{new_version}"
@@ -5,6 +5,6 @@
5
5
  # https://mozilla.org/MPL/2.0/.
6
6
 
7
7
 
8
- VERSION = "0.10.5"
8
+ VERSION = "0.10.7"
9
9
  API_VERSION = "v1"
10
10
  TELEMETRY_VERSION = "v1"
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Supervaizer API</title>
7
+ <!-- Tailwind CSS -->
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ </head>
10
+ <body class="bg-gray-50 min-h-screen">
11
+ <main class="max-w-7xl mx-auto py-6 sm:px-6 lg:px-8">
12
+ <div class="px-4 py-6 sm:px-0">
13
+ <h1 class="text-2xl font-bold leading-7 text-gray-900 sm:truncate sm:text-3xl sm:tracking-tight">
14
+ Supervaizer API
15
+ </h1>
16
+ <p class="mt-2 text-sm text-gray-500">
17
+ Controller version {{ version }} · API version {{ api_version }}
18
+ </p>
19
+
20
+ <div class="mt-8">
21
+ <h2 class="text-lg font-medium text-gray-900 mb-4">Links</h2>
22
+ <ul class="space-y-2">
23
+ <li>
24
+ <a href="{{ base }}/docs" class="text-blue-600 hover:text-blue-800 font-medium">
25
+ Swagger UI
26
+ </a>
27
+ </li>
28
+ <li>
29
+ <a href="{{ base }}/redoc" class="text-blue-600 hover:text-blue-800 font-medium">
30
+ ReDoc
31
+ </a>
32
+ </li>
33
+ <li>
34
+ <a href="{{ base }}/openapi.json" class="text-blue-600 hover:text-blue-800 font-medium">
35
+ OpenAPI
36
+ </a>
37
+ </li>
38
+ {% if show_admin %}
39
+ <li>
40
+ <a href="{{ base }}/admin" class="text-blue-600 hover:text-blue-800 font-medium">
41
+ Admin
42
+ </a>
43
+ </li>
44
+ {% endif %}
45
+ </ul>
46
+ </div>
47
+ </div>
48
+ </main>
49
+ </body>
50
+ </html>
@@ -10,6 +10,7 @@ Deployment CLI Commands
10
10
  This module contains the main CLI commands for the deploy subcommand.
11
11
  """
12
12
 
13
+ import importlib.util
13
14
  import typer
14
15
  from pathlib import Path
15
16
  from rich.console import Console
@@ -168,9 +169,7 @@ def plan(
168
169
  ) -> None:
169
170
  """Plan deployment changes without applying them."""
170
171
  # Check if deploy extras are installed (e.g., docker, cloud SDKs)
171
- try:
172
- import docker
173
- except ImportError:
172
+ if importlib.util.find_spec("docker") is None:
174
173
  console.print(
175
174
  "[bold red]Error:[/] 'deploy' extra requirements are not installed. "
176
175
  "Install them with: [bold]pip install supervaizer[deploy][/]"
@@ -34,28 +34,26 @@ DEV_PUBLIC_URL = "https://myagent-dev.loca.lt"
34
34
  PROD_PUBLIC_URL = "https://myagent.cloud-hosting.net:8001"
35
35
 
36
36
  # Define the parameters and secrets expected by the agent
37
- agent_parameters: ParametersSetup | None = ParametersSetup.from_list(
38
- [
39
- Parameter(
40
- name="OPEN_API_KEY",
41
- description="OpenAPI Key",
42
- is_environment=True,
43
- is_secret=True,
44
- ),
45
- Parameter(
46
- name="SERPER_API",
47
- description="Server API key updated",
48
- is_environment=True,
49
- is_secret=True,
50
- ),
51
- Parameter(
52
- name="COMPETITOR_SUMMARY_URL",
53
- description="Competitor Summary URL",
54
- is_environment=True,
55
- is_secret=False,
56
- ),
57
- ]
58
- )
37
+ agent_parameters: ParametersSetup | None = ParametersSetup.from_list([
38
+ Parameter(
39
+ name="OPEN_API_KEY",
40
+ description="OpenAPI Key",
41
+ is_environment=True,
42
+ is_secret=True,
43
+ ),
44
+ Parameter(
45
+ name="SERPER_API",
46
+ description="Server API key updated",
47
+ is_environment=True,
48
+ is_secret=True,
49
+ ),
50
+ Parameter(
51
+ name="COMPETITOR_SUMMARY_URL",
52
+ description="Competitor Summary URL",
53
+ is_environment=True,
54
+ is_secret=False,
55
+ ),
56
+ ])
59
57
 
60
58
  # Define the method used to start a job
61
59
  job_start_method: AgentMethod = AgentMethod(
@@ -180,7 +178,7 @@ agent: Agent = Agent(
180
178
  account: Account = Account(
181
179
  workspace_id=os.getenv("SUPERVAIZE_WORKSPACE_ID") or "dummy_workspace_id",
182
180
  api_key=os.getenv("SUPERVAIZE_API_KEY") or "dummy_api_key",
183
- api_url=os.getenv("SUPERVAIZE_API_URL") or "https://api.supervaize.com",
181
+ api_url=os.getenv("SUPERVAIZE_API_URL") or "https://app.supervaize.com",
184
182
  )
185
183
 
186
184
  # Define the supervaizer server capabilities
@@ -10,6 +10,7 @@ import sys
10
10
  import time
11
11
  import uuid
12
12
  from datetime import datetime
13
+ from pathlib import Path
13
14
  from typing import Any, ClassVar, Dict, List, Optional, TypeVar
14
15
  from urllib.parse import urlunparse
15
16
 
@@ -19,8 +20,9 @@ from cryptography.hazmat.primitives.asymmetric import rsa
19
20
  from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey
20
21
  from fastapi import FastAPI, HTTPException, Request, Security, status
21
22
  from fastapi.exceptions import RequestValidationError
22
- from fastapi.responses import JSONResponse
23
+ from fastapi.responses import HTMLResponse, JSONResponse
23
24
  from fastapi.security import APIKeyHeader
25
+ from fastapi.templating import Jinja2Templates
24
26
  from pydantic import BaseModel, field_validator, Field
25
27
  from rich import inspect
26
28
 
@@ -377,6 +379,25 @@ class Server(ServerAbstract):
377
379
  # Save server info to storage for admin interface
378
380
  save_server_info_to_storage(self)
379
381
 
382
+ # Home page (template in admin/templates)
383
+ _home_templates = Jinja2Templates(
384
+ directory=str(Path(__file__).parent / "admin" / "templates")
385
+ )
386
+
387
+ @self.app.get("/", response_class=HTMLResponse)
388
+ async def home_page(request: Request) -> HTMLResponse:
389
+ base = self.public_url or f"{self.scheme}://{self.host}:{self.port}"
390
+ return _home_templates.TemplateResponse(
391
+ "index.html",
392
+ {
393
+ "request": request,
394
+ "base": base,
395
+ "version": VERSION,
396
+ "api_version": API_VERSION,
397
+ "show_admin": bool(self.api_key and admin_interface),
398
+ },
399
+ )
400
+
380
401
  # Load running entities from storage into memory
381
402
  try:
382
403
  load_running_entities_on_startup()
File without changes
File without changes
File without changes