supervaizer 0.10.8__tar.gz → 0.10.10__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 (78) hide show
  1. {supervaizer-0.10.8 → supervaizer-0.10.10}/PKG-INFO +1 -1
  2. {supervaizer-0.10.8 → supervaizer-0.10.10}/pyproject.toml +1 -1
  3. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/__version__.py +1 -1
  4. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/account.py +1 -1
  5. supervaizer-0.10.10/src/supervaizer/admin/static/favicon.ico +0 -0
  6. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/index.html +11 -4
  7. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/server.py +26 -14
  8. {supervaizer-0.10.8 → supervaizer-0.10.10}/.gitignore +0 -0
  9. {supervaizer-0.10.8 → supervaizer-0.10.10}/LICENSE.md +0 -0
  10. {supervaizer-0.10.8 → supervaizer-0.10.10}/README.md +0 -0
  11. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/__init__.py +0 -0
  12. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/account_service.py +0 -0
  13. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/routes.py +0 -0
  14. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/static/js/job-start-form.js +0 -0
  15. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/agent_detail.html +0 -0
  16. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/agents.html +0 -0
  17. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/agents_grid.html +0 -0
  18. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/base.html +0 -0
  19. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/case_detail.html +0 -0
  20. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/cases_list.html +0 -0
  21. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/cases_table.html +0 -0
  22. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/console.html +0 -0
  23. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/dashboard.html +0 -0
  24. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/job_detail.html +0 -0
  25. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/job_start_test.html +0 -0
  26. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/jobs_list.html +0 -0
  27. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/jobs_table.html +0 -0
  28. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/navigation.html +0 -0
  29. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/recent_activity.html +0 -0
  30. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/server.html +0 -0
  31. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/server_status_cards.html +0 -0
  32. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/admin/templates/supervaize_instructions.html +0 -0
  33. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/agent.py +0 -0
  34. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/case.py +0 -0
  35. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/cli.py +0 -0
  36. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/common.py +0 -0
  37. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/__init__.py +0 -0
  38. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/cli.py +0 -0
  39. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/__init__.py +0 -0
  40. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/clean.py +0 -0
  41. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/down.py +0 -0
  42. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/local.py +0 -0
  43. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/plan.py +0 -0
  44. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/status.py +0 -0
  45. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/commands/up.py +0 -0
  46. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/docker.py +0 -0
  47. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/driver_factory.py +0 -0
  48. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/drivers/__init__.py +0 -0
  49. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/drivers/aws_app_runner.py +0 -0
  50. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/drivers/base.py +0 -0
  51. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/drivers/cloud_run.py +0 -0
  52. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/drivers/do_app_platform.py +0 -0
  53. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/health.py +0 -0
  54. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/state.py +0 -0
  55. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/templates/Dockerfile.template +0 -0
  56. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/templates/debug_env.py +0 -0
  57. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/templates/docker-compose.yml.template +0 -0
  58. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/templates/dockerignore.template +0 -0
  59. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/templates/entrypoint.sh +0 -0
  60. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/deploy/utils.py +0 -0
  61. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/event.py +0 -0
  62. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/examples/controller_template.py +0 -0
  63. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/instructions.py +0 -0
  64. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/job.py +0 -0
  65. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/job_service.py +0 -0
  66. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/lifecycle.py +0 -0
  67. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/parameter.py +0 -0
  68. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/protocol/__init__.py +0 -0
  69. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/protocol/a2a/__init__.py +0 -0
  70. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/protocol/a2a/model.py +0 -0
  71. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/protocol/a2a/routes.py +0 -0
  72. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/py.typed +0 -0
  73. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/routes.py +0 -0
  74. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/server_utils.py +0 -0
  75. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/storage.py +0 -0
  76. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/telemetry.py +0 -0
  77. {supervaizer-0.10.8 → supervaizer-0.10.10}/src/supervaizer/utils/__init__.py +0 -0
  78. {supervaizer-0.10.8 → supervaizer-0.10.10}/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.8
3
+ Version: 0.10.10
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.8"
124
+ current_version = "0.10.10"
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.8"
8
+ VERSION = "0.10.10"
9
9
  API_VERSION = "v1"
10
10
  TELEMETRY_VERSION = "v1"
@@ -62,7 +62,7 @@ class AccountAbstract(SvBaseModel):
62
62
  {
63
63
  "workspace_id": "ws_1234567890abcdef",
64
64
  "api_key": "sk_1234567890abcdef",
65
- "api_url": "https://api.supervaize.com",
65
+ "api_url": "https://app.supervaize.com",
66
66
  }
67
67
  ]
68
68
  },
@@ -35,11 +35,14 @@
35
35
  OpenAPI
36
36
  </a>
37
37
  </li>
38
- <li> BASE: {{ base }}
39
- </li>
40
- <li>
41
- TO REPLACE THIS FILE, create an index.html at the root of the project and it will be served as the home page.
38
+ <li><strong>BASE:</strong> {{ base }}
39
+ <br>
40
+ <strong>PUBLIC_URL:</strong> {{ public_url }}
41
+ <br>
42
+ <strong>FULL_URL:</strong> {{ full_url }}
43
+ <br>
42
44
  </li>
45
+
43
46
  {% if show_admin %}
44
47
  <li>
45
48
  <a href="{{ base }}/admin" class="text-blue-600 hover:text-blue-800 font-medium">
@@ -50,6 +53,10 @@
50
53
  </ul>
51
54
  </div>
52
55
  </div>
56
+ <hr>
57
+ <div class="mt-8">
58
+ TO REPLACE THIS FILE, create an index.html at the root of the project and it will be served as the home page.
59
+ </div>
53
60
  </main>
54
61
  </body>
55
62
  </html>
@@ -20,7 +20,7 @@ from cryptography.hazmat.primitives.asymmetric import rsa
20
20
  from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPublicKey
21
21
  from fastapi import FastAPI, HTTPException, Request, Security, status
22
22
  from fastapi.exceptions import RequestValidationError
23
- from fastapi.responses import HTMLResponse, JSONResponse
23
+ from fastapi.responses import FileResponse, HTMLResponse, JSONResponse
24
24
  from fastapi.security import APIKeyHeader
25
25
  from fastapi.templating import Jinja2Templates
26
26
  from pydantic import BaseModel, field_validator, Field
@@ -89,8 +89,8 @@ def save_server_info_to_storage(server_instance: "Server") -> None:
89
89
 
90
90
  # Create server info
91
91
  server_info = ServerInfo(
92
- host=getattr(server_instance, "host", "0.0.0.0"),
93
- port=getattr(server_instance, "port", 8000),
92
+ host=getattr(server_instance, "host", "N/A"),
93
+ port=getattr(server_instance, "port", "N/A"),
94
94
  api_version=API_VERSION,
95
95
  environment=os.getenv("SUPERVAIZER_ENVIRONMENT", "development"),
96
96
  agents=agents,
@@ -236,10 +236,10 @@ class Server(ServerAbstract):
236
236
  supervisor_account: Optional[Account] = None,
237
237
  a2a_endpoints: bool = True,
238
238
  admin_interface: bool = True,
239
- scheme: str = "http",
239
+ scheme: str = os.getenv("SUPERVAIZER_SCHEME", "https"),
240
240
  environment: str = os.getenv("SUPERVAIZER_ENVIRONMENT", "dev"),
241
241
  host: str = os.getenv("SUPERVAIZER_HOST", "0.0.0.0"),
242
- port: int = int(os.getenv("SUPERVAIZER_PORT", 8000)),
242
+ port: int = int(os.getenv("SUPERVAIZER_PORT", 443)),
243
243
  debug: bool = False,
244
244
  reload: bool = False,
245
245
  mac_addr: str = "",
@@ -377,6 +377,13 @@ class Server(ServerAbstract):
377
377
  # Save server info to storage for admin interface
378
378
  save_server_info_to_storage(self)
379
379
 
380
+ # Favicon (served at root so /docs, /redoc, etc. pick it up)
381
+ _favicon_path = Path(__file__).parent / "admin" / "static" / "favicon.ico"
382
+
383
+ @self.app.get("/favicon.ico", include_in_schema=False)
384
+ async def favicon() -> FileResponse:
385
+ return FileResponse(_favicon_path, media_type="image/x-icon")
386
+
380
387
  # Home page (template in admin/templates)
381
388
  _home_templates = Jinja2Templates(
382
389
  directory=str(Path(__file__).parent / "admin" / "templates")
@@ -393,6 +400,8 @@ class Server(ServerAbstract):
393
400
  {
394
401
  "request": request,
395
402
  "base": base,
403
+ "public_url": self.public_url,
404
+ "full_url": f"{self.scheme}://{self.host}:{self.port}",
396
405
  "version": VERSION,
397
406
  "api_version": API_VERSION,
398
407
  "show_admin": bool(self.api_key and admin_interface),
@@ -485,7 +494,9 @@ class Server(ServerAbstract):
485
494
  "agents": [agent.registration_info for agent in self.agents],
486
495
  }
487
496
 
488
- def launch(self, log_level: Optional[str] = "INFO") -> None:
497
+ def launch(
498
+ self, log_level: Optional[str] = "INFO", start_uvicorn: bool = False
499
+ ) -> None:
489
500
  if log_level:
490
501
  log.remove()
491
502
  log.add(
@@ -544,15 +555,16 @@ class Server(ServerAbstract):
544
555
  if updated_agent:
545
556
  log.info(f"[Server launch] Updated agent {updated_agent.name}")
546
557
 
547
- import uvicorn
558
+ if start_uvicorn:
559
+ import uvicorn
548
560
 
549
- uvicorn.run(
550
- self.app,
551
- host=self.host,
552
- port=self.port,
553
- reload=self.reload,
554
- log_level=log_level,
555
- )
561
+ uvicorn.run(
562
+ self.app,
563
+ host=self.host,
564
+ port=self.port,
565
+ reload=self.reload,
566
+ log_level=log_level,
567
+ )
556
568
 
557
569
  def instructions(self) -> None:
558
570
  server_url = f"http://{self.host}:{self.port}"
File without changes
File without changes
File without changes