supervaizer 0.10.8__py3-none-any.whl → 0.10.10__py3-none-any.whl

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.
@@ -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"
supervaizer/account.py CHANGED
@@ -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
  },
Binary file
@@ -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>
supervaizer/server.py CHANGED
@@ -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}"
@@ -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
@@ -1,6 +1,6 @@
1
1
  supervaizer/__init__.py,sha256=eBbGjduMBH-FDjcGlSqeR4Kf4uo60Cf1DrRur8VGkJo,2341
2
- supervaizer/__version__.py,sha256=9-PxJzjAS26LyBAv8CqO9Uc72Jab-djaWlGSNNqYZlA,348
3
- supervaizer/account.py,sha256=-K1pd590Lp2TncZ2jn442kBLxnm482G3WnQavVFxZ1s,11102
2
+ supervaizer/__version__.py,sha256=Z8yHz_dQqpmRG8bWI6v6sN67UspmD_fTN2p8AEeracI,349
3
+ supervaizer/account.py,sha256=bxANsh-97dRGGpzstT1XKGThPHqRqvJC022Hfrb2RyM,11102
4
4
  supervaizer/account_service.py,sha256=z4lw8qp8XvCrU6Ndf4VHRnQwY_071410ts5_7E8YDAs,3046
5
5
  supervaizer/agent.py,sha256=Clenvdr_v-lV7_v6YCcevp8dj5JUNvpTWrBZBYM82lg,36509
6
6
  supervaizer/case.py,sha256=dOgRujyf4MFcZ-937zxJbqLIPduKg6ZspHuhnWiq13Q,14385
@@ -13,11 +13,12 @@ supervaizer/job_service.py,sha256=22Qe7Z5_u3R28tcNH_21YMIYciWFtJaM7I-MXtIhBMU,46
13
13
  supervaizer/lifecycle.py,sha256=5CunJN7MsM5blyNiFMJMLFDUBmTmmAsPE24QC-gSbYA,13958
14
14
  supervaizer/parameter.py,sha256=sYDuGof_w6mlix0oxjB6odV0sO0QSBL1KwFZa3Y2cOA,8157
15
15
  supervaizer/routes.py,sha256=o3u7pGGLE0MQzWtQNdd5xk1M0G9Y_BR_JiLVmCFtdC4,34319
16
- supervaizer/server.py,sha256=o0zW9orIGIZEkwCCwkMfw9Oa9EzJcKzoBb6lUN6iZTY,21745
16
+ supervaizer/server.py,sha256=d1yY30g9mA-tT7NKq1-tZUxqE9FO0dYplGKkvGUZyW4,22353
17
17
  supervaizer/server_utils.py,sha256=FMglpADQBJynkR2v-pfwANu6obsaPvR9j0BQc5Otpac,1590
18
18
  supervaizer/storage.py,sha256=WLX8ggwt1AGF07DrfD1K6PyP2-N45c_Ep4CL0iPLVbI,15332
19
19
  supervaizer/telemetry.py,sha256=XSYw8ZwoY8W6C7mhwHU67t7trJzWd7CBkkSNdsDT_HA,2596
20
20
  supervaizer/admin/routes.py,sha256=r9hucWtNiTGQHgv9DsRkVpwnLbyLFaqrbse1orl-oTA,45627
21
+ supervaizer/admin/static/favicon.ico,sha256=wFyXw96AplZoEcW45dJBeC1pHTcPSH07HGWbtrc49mI,5558
21
22
  supervaizer/admin/static/js/job-start-form.js,sha256=s--AGVYzgc9mE20POYeM0BNm0Wy41aBZVv99tc0cSPU,11938
22
23
  supervaizer/admin/templates/agent_detail.html,sha256=DFOGfjuQNC39FOLYUW_jD0A01WpBY1umatGCslyJ0_c,7581
23
24
  supervaizer/admin/templates/agents.html,sha256=orB_z1iMFE2MKhFm9XejwZjmzMC1PVT69oB-F9YZPHQ,12678
@@ -28,7 +29,7 @@ supervaizer/admin/templates/cases_list.html,sha256=UV4SfULzxNiOpG8aNddablpwf6hVN
28
29
  supervaizer/admin/templates/cases_table.html,sha256=VyL5mEF003FTNHym1UYBD8JkvhA9wR328ciTKNKxdb8,6619
29
30
  supervaizer/admin/templates/console.html,sha256=tLGGf8vHjGK77Il6SYlgparoU_xz3nbvNpGVQRkVNCc,13966
30
31
  supervaizer/admin/templates/dashboard.html,sha256=3Pu5bR78QUcPNp5MyXkyibfp-wxYdJyyf77v3O_f_hU,7873
31
- supervaizer/admin/templates/index.html,sha256=dAovr2Luh3u-j5lXjLucpx36MSW2TBq4NK0L4d8pKow,2166
32
+ supervaizer/admin/templates/index.html,sha256=zG5LL8yPyk9k8hbqZt2vT8fjGR-HRleUB9yByKulc1E,2409
32
33
  supervaizer/admin/templates/job_detail.html,sha256=LDTMWLURyVCp7SMTxQ4M8AFqNpbbUVUx253negp9JNA,10790
33
34
  supervaizer/admin/templates/job_start_test.html,sha256=eAogAit0JfuMU4N5YR7N03w0nD_Bi9mtiX8uJ7dHLPg,4270
34
35
  supervaizer/admin/templates/jobs_list.html,sha256=VJ2VYe62dHXvjQQgUAVyKcn58rO5919UuP3VKgxLVhM,9136
@@ -70,8 +71,8 @@ supervaizer/protocol/a2a/routes.py,sha256=rkQTNBD1NTYimKCb8iOk4bVf9ldDP1LqHfOsyh
70
71
  supervaizer/utils/__init__.py,sha256=fd0NFwN_cen3QPms2SOnuz4jcetay3f_31dit2As7EA,458
71
72
  supervaizer/utils/version_check.py,sha256=-tsOURpHVh0LNTbpQsyJDJENKszC-NzXDSO_EToEQPE,1893
72
73
  supervaizer/py.typed,sha256=bHhvLx7c6MqrzXVPbdK3qAOcSxzp4wDtTx4QifMC2EY,74
73
- supervaizer-0.10.8.dist-info/METADATA,sha256=VTsURsme4sfo4cZhOBPxS8t7nRJImvLOTze2GRMLpbE,12647
74
- supervaizer-0.10.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
75
- supervaizer-0.10.8.dist-info/entry_points.txt,sha256=vL_IBR_AeEI2u2-6YL4PY9k2Mar4-gprG8-UxERWjmg,52
76
- supervaizer-0.10.8.dist-info/licenses/LICENSE.md,sha256=dmdnt1vfpxNPr8Lt0BnxKE5uzUwK3CWTthTUStgOXjY,15327
77
- supervaizer-0.10.8.dist-info/RECORD,,
74
+ supervaizer-0.10.10.dist-info/METADATA,sha256=oNI_GkiR12gjGpSJEqp3Z6dVxLQ1QzXgErPYg43qYlg,12648
75
+ supervaizer-0.10.10.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
76
+ supervaizer-0.10.10.dist-info/entry_points.txt,sha256=vL_IBR_AeEI2u2-6YL4PY9k2Mar4-gprG8-UxERWjmg,52
77
+ supervaizer-0.10.10.dist-info/licenses/LICENSE.md,sha256=dmdnt1vfpxNPr8Lt0BnxKE5uzUwK3CWTthTUStgOXjY,15327
78
+ supervaizer-0.10.10.dist-info/RECORD,,