supervaizer 0.9.7__py3-none-any.whl → 0.10.0__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.
- supervaizer/__init__.py +11 -2
- supervaizer/__version__.py +1 -1
- supervaizer/account.py +4 -0
- supervaizer/account_service.py +7 -1
- supervaizer/admin/routes.py +46 -7
- supervaizer/admin/static/js/job-start-form.js +373 -0
- supervaizer/admin/templates/agents.html +74 -0
- supervaizer/admin/templates/agents_grid.html +5 -3
- supervaizer/admin/templates/job_start_test.html +109 -0
- supervaizer/admin/templates/navigation.html +11 -1
- supervaizer/admin/templates/supervaize_instructions.html +212 -0
- supervaizer/agent.py +165 -25
- supervaizer/case.py +46 -14
- supervaizer/cli.py +248 -8
- supervaizer/common.py +45 -4
- supervaizer/deploy/__init__.py +16 -0
- supervaizer/deploy/cli.py +296 -0
- supervaizer/deploy/commands/__init__.py +9 -0
- supervaizer/deploy/commands/clean.py +294 -0
- supervaizer/deploy/commands/down.py +119 -0
- supervaizer/deploy/commands/local.py +460 -0
- supervaizer/deploy/commands/plan.py +167 -0
- supervaizer/deploy/commands/status.py +169 -0
- supervaizer/deploy/commands/up.py +281 -0
- supervaizer/deploy/docker.py +370 -0
- supervaizer/deploy/driver_factory.py +42 -0
- supervaizer/deploy/drivers/__init__.py +39 -0
- supervaizer/deploy/drivers/aws_app_runner.py +607 -0
- supervaizer/deploy/drivers/base.py +196 -0
- supervaizer/deploy/drivers/cloud_run.py +570 -0
- supervaizer/deploy/drivers/do_app_platform.py +504 -0
- supervaizer/deploy/health.py +404 -0
- supervaizer/deploy/state.py +210 -0
- supervaizer/deploy/templates/Dockerfile.template +44 -0
- supervaizer/deploy/templates/debug_env.py +69 -0
- supervaizer/deploy/templates/docker-compose.yml.template +37 -0
- supervaizer/deploy/templates/dockerignore.template +66 -0
- supervaizer/deploy/templates/entrypoint.sh +20 -0
- supervaizer/deploy/utils.py +41 -0
- supervaizer/examples/{controller-template.py → controller_template.py} +5 -4
- supervaizer/job.py +18 -5
- supervaizer/job_service.py +6 -5
- supervaizer/parameter.py +61 -1
- supervaizer/protocol/__init__.py +2 -2
- supervaizer/protocol/a2a/routes.py +1 -1
- supervaizer/routes.py +262 -12
- supervaizer/server.py +5 -11
- supervaizer/utils/__init__.py +16 -0
- supervaizer/utils/version_check.py +56 -0
- {supervaizer-0.9.7.dist-info → supervaizer-0.10.0.dist-info}/METADATA +105 -34
- supervaizer-0.10.0.dist-info/RECORD +76 -0
- {supervaizer-0.9.7.dist-info → supervaizer-0.10.0.dist-info}/WHEEL +1 -1
- supervaizer/protocol/acp/__init__.py +0 -21
- supervaizer/protocol/acp/model.py +0 -198
- supervaizer/protocol/acp/routes.py +0 -74
- supervaizer-0.9.7.dist-info/RECORD +0 -50
- {supervaizer-0.9.7.dist-info → supervaizer-0.10.0.dist-info}/entry_points.txt +0 -0
- {supervaizer-0.9.7.dist-info → supervaizer-0.10.0.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: supervaizer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
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
|
|
@@ -16,52 +16,59 @@ Classifier: Programming Language :: Python :: 3
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Requires-Python: >=3.12
|
|
18
18
|
Requires-Dist: art>=6.5
|
|
19
|
-
Requires-Dist: cryptography>=
|
|
19
|
+
Requires-Dist: cryptography>=46.0.2
|
|
20
20
|
Requires-Dist: demjson3>=3.0.6
|
|
21
21
|
Requires-Dist: deprecated>=1.2.18
|
|
22
|
-
Requires-Dist: fastapi>=0.
|
|
22
|
+
Requires-Dist: fastapi>=0.118.0
|
|
23
23
|
Requires-Dist: httpx>=0.28.1
|
|
24
24
|
Requires-Dist: jinja2>=3.1.6
|
|
25
25
|
Requires-Dist: loguru>=0.7.3
|
|
26
|
-
Requires-Dist: orjson>=3.11.
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist: pydantic>=2.
|
|
29
|
-
Requires-Dist: pymongo>=4.14.0
|
|
26
|
+
Requires-Dist: orjson>=3.11.3
|
|
27
|
+
Requires-Dist: packaging>=24.0
|
|
28
|
+
Requires-Dist: pydantic>=2.12.0
|
|
30
29
|
Requires-Dist: python-slugify>=8.0.4
|
|
30
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
31
31
|
Requires-Dist: rich>=14.1.0
|
|
32
32
|
Requires-Dist: shortuuid>=1.0.13
|
|
33
33
|
Requires-Dist: sse-starlette>=3.0.2
|
|
34
34
|
Requires-Dist: tinydb>=4.8.1
|
|
35
|
-
Requires-Dist: typer>=0.
|
|
36
|
-
Requires-Dist: uvicorn>=0.
|
|
35
|
+
Requires-Dist: typer>=0.19.2
|
|
36
|
+
Requires-Dist: uvicorn>=0.36.0
|
|
37
|
+
Provides-Extra: deploy
|
|
38
|
+
Requires-Dist: boto3>=1.34.0; extra == 'deploy'
|
|
39
|
+
Requires-Dist: docker>=7.0.0; extra == 'deploy'
|
|
40
|
+
Requires-Dist: google-cloud-artifact-registry>=1.8.0; extra == 'deploy'
|
|
41
|
+
Requires-Dist: google-cloud-run>=0.10.0; extra == 'deploy'
|
|
42
|
+
Requires-Dist: google-cloud-secret-manager>=2.18.0; extra == 'deploy'
|
|
43
|
+
Requires-Dist: psutil>=7.1.0; extra == 'deploy'
|
|
37
44
|
Provides-Extra: dev
|
|
38
|
-
Requires-Dist: hatch>=1.14.
|
|
39
|
-
Requires-Dist: jsonschema>=4.25.
|
|
40
|
-
Requires-Dist: mypy>=1.
|
|
45
|
+
Requires-Dist: hatch>=1.14.2; extra == 'dev'
|
|
46
|
+
Requires-Dist: jsonschema>=4.25.1; extra == 'dev'
|
|
47
|
+
Requires-Dist: mypy>=1.18.2; extra == 'dev'
|
|
41
48
|
Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
|
|
42
|
-
Requires-Dist: pytest-asyncio>=1.
|
|
43
|
-
Requires-Dist: pytest-cov>=
|
|
44
|
-
Requires-Dist: pytest-mock>=3.
|
|
45
|
-
Requires-Dist: pytest-sugar>=1.
|
|
46
|
-
Requires-Dist: pytest>=8.4.
|
|
49
|
+
Requires-Dist: pytest-asyncio>=1.2.0; extra == 'dev'
|
|
50
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
|
|
51
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
|
|
52
|
+
Requires-Dist: pytest-sugar>=1.1.1; extra == 'dev'
|
|
53
|
+
Requires-Dist: pytest>=8.4.2; extra == 'dev'
|
|
47
54
|
Requires-Dist: respx>=0.22.0; extra == 'dev'
|
|
48
|
-
Requires-Dist: ruff>=0.
|
|
55
|
+
Requires-Dist: ruff>=0.13.3; extra == 'dev'
|
|
49
56
|
Requires-Dist: types-deprecated>=1.2.15.20250304; extra == 'dev'
|
|
50
57
|
Requires-Dist: types-python-slugify>=8.0.2.20240310; extra == 'dev'
|
|
51
58
|
Description-Content-Type: text/markdown
|
|
52
59
|
|
|
53
60
|
# SUPERVAIZER
|
|
54
61
|
|
|
55
|
-
[
|
|
62
|
+
[Operate AI Agents with confidence]
|
|
56
63
|
|
|
57
|
-
A Python toolkit for building, managing, and connecting AI agents with full [Agent-to-Agent (A2A)](https://
|
|
64
|
+
A Python toolkit for building, managing, and connecting AI agents with full [Agent-to-Agent (A2A)](https://a2a-protocol.org/) protocol support.
|
|
58
65
|
|
|
59
66
|
[](https://www.python.org/downloads/)
|
|
60
|
-
[](https://google.github.io/A2A/)
|
|
62
|
-
[](https://github.com/i-am-bee/ACP)
|
|
67
|
+
[](https://a2a-protocol.org/)
|
|
63
68
|
[](https://github.com/supervaize/supervaizer)
|
|
64
69
|
|
|
70
|
+
> **⚠️ Beta Disclaimer**: SUPERVAIZER is currently in beta mode. Not everything works as expected yet. Please report any issues you encounter.
|
|
71
|
+
|
|
65
72
|
- [SUPERVAIZER](#supervaizer)
|
|
66
73
|
- [Description](#description)
|
|
67
74
|
- [Quick Start](#quick-start)
|
|
@@ -70,35 +77,45 @@ A Python toolkit for building, managing, and connecting AI agents with full [Age
|
|
|
70
77
|
- [3. Scaffold the controller](#3-scaffold-the-controller)
|
|
71
78
|
- [(Optional) 4. Configure your Supervaize account \& environment](#optional-4-configure-your-supervaize-account--environment)
|
|
72
79
|
- [5. Start the server 🚀](#5-start-the-server-)
|
|
80
|
+
- [6. Optional parameters](#6-optional-parameters)
|
|
73
81
|
- [What's next?](#whats-next)
|
|
74
82
|
- [Features](#features)
|
|
75
83
|
- [Protocol Support](#protocol-support)
|
|
84
|
+
- [Cloud Deployment](#cloud-deployment)
|
|
85
|
+
- [Quick Start](#quick-start-1)
|
|
86
|
+
- [Deployment Commands](#deployment-commands)
|
|
87
|
+
- [Features](#features-1)
|
|
88
|
+
- [Documentation](#documentation)
|
|
76
89
|
- [Using the CLI](#using-the-cli)
|
|
77
90
|
- [API Documentation \& User Interfaces](#api-documentation--user-interfaces)
|
|
78
91
|
- [Admin Interface (`/admin`)](#admin-interface-admin)
|
|
79
|
-
- [Quick Start](#quick-start-
|
|
92
|
+
- [Quick Start](#quick-start-2)
|
|
80
93
|
- [Calculating costs](#calculating-costs)
|
|
81
|
-
- [Documentation](#documentation)
|
|
94
|
+
- [Documentation](#documentation-1)
|
|
82
95
|
- [Contributing](#contributing)
|
|
83
96
|
- [License](#license)
|
|
84
97
|
|
|
85
98
|
## Description
|
|
86
99
|
|
|
87
|
-
SUPERVAIZER is a toolkit built for the age of AI interoperability. At its core, it implements
|
|
100
|
+
SUPERVAIZER is a toolkit built for the age of AI interoperability. At its core, it implements the Agent-to-Agent (A2A) protocol, enabling seamless discovery and interaction between agents across different systems and platforms.
|
|
88
101
|
|
|
89
|
-
With comprehensive support for the A2A
|
|
102
|
+
With comprehensive support for the A2A protocol specification, SUPERVAIZER allows you to:
|
|
90
103
|
|
|
91
|
-
- Enhance the capabilities of your agents, making them automatically discoverable by other A2A
|
|
104
|
+
- Enhance the capabilities of your agents, making them automatically discoverable by other A2A compatible systems
|
|
92
105
|
- Expose standardized agent capabilities through agent cards
|
|
93
106
|
- Monitor agent health and status through dedicated endpoints
|
|
94
107
|
- Connect your agents to the growing ecosystem of A2A-compatible tools
|
|
95
108
|
|
|
96
109
|
Beyond A2A interoperability, SUPERVAIZER provides a robust API for agent registration, job control, event handling, telemetry, and more, making it a crucial component for building and managing AI agent systems.
|
|
97
110
|
|
|
111
|
+
SUPERVAIZER is the recommended controller to integrate AI Agents into the [supervaize](https://supervaize.com) plateform.
|
|
112
|
+
|
|
98
113
|
## Quick Start
|
|
99
114
|
|
|
100
115
|
Kickstart a **Python** agent with the **Supervaizer Controller** so it's discoverable and operable by Supervaize.
|
|
101
116
|
|
|
117
|
+
See full our full [documentation](https://doc.supervaize.com/docs/category/supervaizer-controller)
|
|
118
|
+
|
|
102
119
|
### What we'll do
|
|
103
120
|
|
|
104
121
|
1. **Install Supervaizer** in that project
|
|
@@ -159,28 +176,82 @@ Once the server is running, you'll have:
|
|
|
159
176
|
- **A2A discovery**: `/.well-known/agents.json`
|
|
160
177
|
- **ACP discovery**: `/agents`
|
|
161
178
|
|
|
179
|
+
### 6. Optional parameters
|
|
180
|
+
|
|
181
|
+
Configure retry behavior for HTTP requests to the Supervaize API:
|
|
182
|
+
|
|
183
|
+
- **`SUPERVAIZE_HTTP_MAX_RETRIES`**: Number of retry attempts for failed HTTP requests (default: `2`). The client will automatically retry requests that fail with status codes 429, 500, 502, 503, or 504.
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
export SUPERVAIZE_MAX_HTTP_RETRIES=3 # Will attempt up to 4 times total (1 original + 3 retries)
|
|
187
|
+
```
|
|
188
|
+
|
|
162
189
|
### What's next?
|
|
163
190
|
|
|
164
191
|
- Add more **custom methods** (`chat`, `custom`) to extend control
|
|
165
|
-
- Turn on **A2A
|
|
192
|
+
- Turn on **A2A** discovery for interoperability
|
|
166
193
|
- Hook your controller into Supervaize to **monitor, audit, and operate** the agent
|
|
167
194
|
|
|
168
|
-
For detailed instructions on customizing your controller, see the [Controller Setup Guide](https://doc.supervaize.com/docs/supervaizer-controller/controller-setup
|
|
195
|
+
For detailed instructions on customizing your controller, see the [Controller Setup Guide](https://doc.supervaize.com/docs/supervaizer-controller/controller-setup)
|
|
169
196
|
|
|
170
197
|
## Features
|
|
171
198
|
|
|
172
199
|
- **Agent Management**: Register, update, and control agents
|
|
173
200
|
- **Job Control**: Create, track, and manage jobs
|
|
174
201
|
- **Event Handling**: Process and respond to system events
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
- **ACP Protocol **: Integration with IBM/BeeAI's Agent Communication Protocol for standardized agent discovery and interaction
|
|
202
|
+
- **🚀 Cloud Deployment**: Automated deployment to GCP Cloud Run, AWS App Runner, and DigitalOcean App Platform
|
|
203
|
+
- **A2A Protocol Support**: Full integration with the Agent-to-Agent protocol for standardized agent discovery and interaction
|
|
178
204
|
- **Server Communication**: Interact with SUPERVAIZE servers (see [supervaize.com](https://www.supervaize.com) for more info)
|
|
179
205
|
- **Web Admin Interface**: Easy to use web-based admin dashboard for managing jobs, cases, and system monitoring
|
|
180
206
|
|
|
181
207
|
## Protocol Support
|
|
182
208
|
|
|
183
|
-
SUPERVAIZER provides comprehensive support for
|
|
209
|
+
SUPERVAIZER provides comprehensive support for the A2A agent communication protocol. See [Protocol Documentation](docs/PROTOCOLS.md) for complete details.
|
|
210
|
+
|
|
211
|
+
## Cloud Deployment
|
|
212
|
+
|
|
213
|
+
SUPERVAIZER includes a powerful deployment CLI that automates the entire process of deploying your agents to production cloud platforms.
|
|
214
|
+
|
|
215
|
+
### Quick Start
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Install with deployment dependencies
|
|
219
|
+
pip install supervaizer[deploy]
|
|
220
|
+
|
|
221
|
+
# Test locally with Docker
|
|
222
|
+
supervaizer deploy local --generate-api-key --generate-rsa
|
|
223
|
+
|
|
224
|
+
# Deploy to Google Cloud Run
|
|
225
|
+
supervaizer deploy up --platform cloud-run --region us-central1
|
|
226
|
+
|
|
227
|
+
# Deploy to AWS App Runner
|
|
228
|
+
supervaizer deploy up --platform aws-app-runner --region us-east-1
|
|
229
|
+
|
|
230
|
+
# Deploy to DigitalOcean App Platform
|
|
231
|
+
supervaizer deploy up --platform do-app-platform --region nyc
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Deployment Commands
|
|
235
|
+
|
|
236
|
+
- **`supervaizer deploy plan`** - Preview deployment actions before applying
|
|
237
|
+
- **`supervaizer deploy up`** - Deploy to cloud platform with automated build, push, and verification
|
|
238
|
+
- **`supervaizer deploy down`** - Tear down deployment and clean up resources
|
|
239
|
+
- **`supervaizer deploy status`** - Check deployment status and health
|
|
240
|
+
- **`supervaizer deploy local`** - Local Docker testing with docker-compose
|
|
241
|
+
- **`supervaizer deploy clean`** - Clean up deployment artifacts and state
|
|
242
|
+
|
|
243
|
+
### Features
|
|
244
|
+
|
|
245
|
+
- ✅ **Automated Docker Workflow**: Build → Push → Deploy → Verify
|
|
246
|
+
- ✅ **Secret Management**: Secure handling of API keys and RSA keys
|
|
247
|
+
- ✅ **Health Verification**: Automatic health checks at `/.well-known/health`
|
|
248
|
+
- ✅ **Idempotent Deployments**: Safe create/update operations with rollback on failure
|
|
249
|
+
- ✅ **Local Testing**: Full Docker Compose environment for pre-deployment testing
|
|
250
|
+
|
|
251
|
+
### Documentation
|
|
252
|
+
|
|
253
|
+
- [RFC-001: Cloud Deployment CLI](docs/rfc/001-cloud-deployment-cli.md) - Complete specification
|
|
254
|
+
- [Local Testing Guide](docs/LOCAL_TESTING.md) - Docker testing documentation
|
|
184
255
|
|
|
185
256
|
## Using the CLI
|
|
186
257
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
supervaizer/__init__.py,sha256=eBbGjduMBH-FDjcGlSqeR4Kf4uo60Cf1DrRur8VGkJo,2341
|
|
2
|
+
supervaizer/__version__.py,sha256=eZQSzWQoSyKp81XNIoQ9MJJef8IKwkUCjUN2pdj0tlc,348
|
|
3
|
+
supervaizer/account.py,sha256=-K1pd590Lp2TncZ2jn442kBLxnm482G3WnQavVFxZ1s,11102
|
|
4
|
+
supervaizer/account_service.py,sha256=z4lw8qp8XvCrU6Ndf4VHRnQwY_071410ts5_7E8YDAs,3046
|
|
5
|
+
supervaizer/agent.py,sha256=Clenvdr_v-lV7_v6YCcevp8dj5JUNvpTWrBZBYM82lg,36509
|
|
6
|
+
supervaizer/case.py,sha256=dOgRujyf4MFcZ-937zxJbqLIPduKg6ZspHuhnWiq13Q,14385
|
|
7
|
+
supervaizer/cli.py,sha256=L9ZKQygBnpY-3qH_9YAbQEu0j7heSD4NGApM8mrpPH4,13525
|
|
8
|
+
supervaizer/common.py,sha256=6ygNS1YxliP-e6OEVX7vDuC8YAaT2rYhjqQ_8txnWlg,10066
|
|
9
|
+
supervaizer/event.py,sha256=2aupUV1HkF0-nBFVmO5ddvj9jb4MiWr2MCxEamHFhx4,5516
|
|
10
|
+
supervaizer/instructions.py,sha256=L0uoZXg8N4PnLxJiqBgD4Pbce-hHTDUx1yImRbtNZNg,4146
|
|
11
|
+
supervaizer/job.py,sha256=sHDic0q-Eujei7GNb64VO7rRsBd88optrWC8Z3iMZ5Q,13554
|
|
12
|
+
supervaizer/job_service.py,sha256=22Qe7Z5_u3R28tcNH_21YMIYciWFtJaM7I-MXtIhBMU,4681
|
|
13
|
+
supervaizer/lifecycle.py,sha256=5CunJN7MsM5blyNiFMJMLFDUBmTmmAsPE24QC-gSbYA,13958
|
|
14
|
+
supervaizer/parameter.py,sha256=sYDuGof_w6mlix0oxjB6odV0sO0QSBL1KwFZa3Y2cOA,8157
|
|
15
|
+
supervaizer/routes.py,sha256=o3u7pGGLE0MQzWtQNdd5xk1M0G9Y_BR_JiLVmCFtdC4,34319
|
|
16
|
+
supervaizer/server.py,sha256=cXwB2XfIBQJ6zFaUde4OTCPgHpb_tpsUy9cRkkXqA-Q,20805
|
|
17
|
+
supervaizer/server_utils.py,sha256=FMglpADQBJynkR2v-pfwANu6obsaPvR9j0BQc5Otpac,1590
|
|
18
|
+
supervaizer/storage.py,sha256=JO2pczuuJkQtk9o14_7z8yRV_q3bEir3Dtl6ejPIixY,14276
|
|
19
|
+
supervaizer/telemetry.py,sha256=XSYw8ZwoY8W6C7mhwHU67t7trJzWd7CBkkSNdsDT_HA,2596
|
|
20
|
+
supervaizer/admin/routes.py,sha256=r9hucWtNiTGQHgv9DsRkVpwnLbyLFaqrbse1orl-oTA,45627
|
|
21
|
+
supervaizer/admin/static/js/job-start-form.js,sha256=s--AGVYzgc9mE20POYeM0BNm0Wy41aBZVv99tc0cSPU,11938
|
|
22
|
+
supervaizer/admin/templates/agent_detail.html,sha256=DFOGfjuQNC39FOLYUW_jD0A01WpBY1umatGCslyJ0_c,7581
|
|
23
|
+
supervaizer/admin/templates/agents.html,sha256=orB_z1iMFE2MKhFm9XejwZjmzMC1PVT69oB-F9YZPHQ,12678
|
|
24
|
+
supervaizer/admin/templates/agents_grid.html,sha256=Hqgmgc4RhtnR-resuMZ8rj4uPJl6mHBOBTtZ5rLG90A,6106
|
|
25
|
+
supervaizer/admin/templates/base.html,sha256=ZGS-6IxGRYK41E5Jp3MVrGSwCugg8AVHtW21kKCBDvo,10405
|
|
26
|
+
supervaizer/admin/templates/case_detail.html,sha256=cJ4TUJI3ix3a-veb4g0Tp0AY-uJr0SducK70MZPFsZQ,13848
|
|
27
|
+
supervaizer/admin/templates/cases_list.html,sha256=UV4SfULzxNiOpG8aNddablpwf6hVNpRbAc6dgTmp6_E,9324
|
|
28
|
+
supervaizer/admin/templates/cases_table.html,sha256=VyL5mEF003FTNHym1UYBD8JkvhA9wR328ciTKNKxdb8,6619
|
|
29
|
+
supervaizer/admin/templates/console.html,sha256=tLGGf8vHjGK77Il6SYlgparoU_xz3nbvNpGVQRkVNCc,13966
|
|
30
|
+
supervaizer/admin/templates/dashboard.html,sha256=3Pu5bR78QUcPNp5MyXkyibfp-wxYdJyyf77v3O_f_hU,7873
|
|
31
|
+
supervaizer/admin/templates/job_detail.html,sha256=LDTMWLURyVCp7SMTxQ4M8AFqNpbbUVUx253negp9JNA,10790
|
|
32
|
+
supervaizer/admin/templates/job_start_test.html,sha256=eAogAit0JfuMU4N5YR7N03w0nD_Bi9mtiX8uJ7dHLPg,4270
|
|
33
|
+
supervaizer/admin/templates/jobs_list.html,sha256=VJ2VYe62dHXvjQQgUAVyKcn58rO5919UuP3VKgxLVhM,9136
|
|
34
|
+
supervaizer/admin/templates/jobs_table.html,sha256=BCOI_7QlxJ5XOra7WKou48a2lNwQYASCMFTtgzHNotw,5974
|
|
35
|
+
supervaizer/admin/templates/navigation.html,sha256=Ci_CMLqBuIKRt3JCFtn9Vjz1AAkqC75WMT6IQUiByFI,11724
|
|
36
|
+
supervaizer/admin/templates/recent_activity.html,sha256=hL06GXF1a-C_tkj3pRLrDTTDqG0KplcWMZFengFMuEc,4843
|
|
37
|
+
supervaizer/admin/templates/server.html,sha256=m3qIQsEojogXQKTSD6ljKj4_lrwaLJTpTbMpfnWZHxU,5650
|
|
38
|
+
supervaizer/admin/templates/server_status_cards.html,sha256=yJ36hkfgQpscYkiaodFDQPnmJWeb2W7gey09Z3T6JsY,7882
|
|
39
|
+
supervaizer/admin/templates/supervaize_instructions.html,sha256=LTLla1xgIeLpFf7bond_lxH5qdQQ2ak52Fd7hqChi1I,10225
|
|
40
|
+
supervaizer/deploy/__init__.py,sha256=DvngGQu8tS_Yz5FU4kKCvPpod11IGCtZWkUNeB5aVHI,557
|
|
41
|
+
supervaizer/deploy/cli.py,sha256=pFsQjbALSkKiZ2_OGzNZJzX_vrshGyAzdf1jGShGztk,9841
|
|
42
|
+
supervaizer/deploy/docker.py,sha256=RE7DN99tu1llssbmSPnAcYA8xUL-csiInFHnEsa84rc,13601
|
|
43
|
+
supervaizer/deploy/driver_factory.py,sha256=Qm6DYVUfV3mlRHUglk5YlslGg6JYZ754uKeoiyxXw10,1487
|
|
44
|
+
supervaizer/deploy/health.py,sha256=vh4SMOxy43QXi1fanQjWfWqoGTy_z1VXwwfy4Fq2bHg,13764
|
|
45
|
+
supervaizer/deploy/state.py,sha256=DOpHOoU3IuaI2StE6G0LqzA1HiSDiqz2WDu2xexOYvc,7734
|
|
46
|
+
supervaizer/deploy/utils.py,sha256=oNonJX5VD9APz2QXUFyUEvPO5FCnb8I5GwX2dYYJy3Y,1348
|
|
47
|
+
supervaizer/deploy/commands/__init__.py,sha256=uhdQpJ2Hly2YkkSBXKvGy77eyU0tIhNWD59C1x_6DPQ,365
|
|
48
|
+
supervaizer/deploy/commands/clean.py,sha256=zm76hmGTSSFAZdcQhVvn71secT4sE5IQqBM0zTDYC_g,9588
|
|
49
|
+
supervaizer/deploy/commands/down.py,sha256=Vo2Dw71BiTGSMCsjWNoq_oB_oecdV4oDnQ2LwIrv7oo,3929
|
|
50
|
+
supervaizer/deploy/commands/local.py,sha256=Ds2ECuyPeumA-G0OSoQmN0VM8iZ4CNqacWMSzy0r30k,16229
|
|
51
|
+
supervaizer/deploy/commands/plan.py,sha256=-wypTksSNF8CO_-3uOZgcDf6pFwLgFnSTKp_kzTgMZo,5261
|
|
52
|
+
supervaizer/deploy/commands/status.py,sha256=sgHg0J8qJIuNYaCTlkMUggJ9Q4Cq1W5N-EvZXG9Iif0,5816
|
|
53
|
+
supervaizer/deploy/commands/up.py,sha256=TFOXLtx8NEi08RMF4IJp6bP9Hi3B19NlxDLQPkrSLz8,9292
|
|
54
|
+
supervaizer/deploy/drivers/__init__.py,sha256=NOHsmNYea7ARfuAhbuP4CC87BtMfKKDyC-Uz5sh2PHI,974
|
|
55
|
+
supervaizer/deploy/drivers/aws_app_runner.py,sha256=rABJOyjUSJUKFCOTWV92SNLaJK4oKpEmaljHcnQO3G0,22170
|
|
56
|
+
supervaizer/deploy/drivers/base.py,sha256=2MPsw6tgXBILCeHnYXuZtBYFQriwy41Iib8iQPLbDFQ,5267
|
|
57
|
+
supervaizer/deploy/drivers/cloud_run.py,sha256=wge26Egt0Qgbmi51Ttg_SZfGhDcwG_2UBb80pLUVHXQ,19912
|
|
58
|
+
supervaizer/deploy/drivers/do_app_platform.py,sha256=yWzJG4Y6Pn8BlX-plWB6kwbEKuV49P82ivc5Ovm7v1k,17328
|
|
59
|
+
supervaizer/deploy/templates/Dockerfile.template,sha256=VmR_znpKy0gR5aG1pIsZNxnNol65GSm79Fd5rFMzYf4,1261
|
|
60
|
+
supervaizer/deploy/templates/debug_env.py,sha256=WFlxfiCAlkxM1NybNvtmmG5zJnoSvjW9L8ATVjrg26E,2246
|
|
61
|
+
supervaizer/deploy/templates/docker-compose.yml.template,sha256=ZcW8WyhmqMElaxBpokuZG12n0tFJL8BY7k7Tvdz6tdw,1100
|
|
62
|
+
supervaizer/deploy/templates/dockerignore.template,sha256=bYFRn6QGsjtRDH-Y7vzWk3-u3jIp90FajV2Ed94ah5M,515
|
|
63
|
+
supervaizer/deploy/templates/entrypoint.sh,sha256=z079VUotu6DJX92fJiBB3eVwCEgcP6B9D9Fvwv_FL9w,463
|
|
64
|
+
supervaizer/examples/controller_template.py,sha256=gAmA3GnDTdYkDk3NpVe-6Adbsl4Oxs-iZKN6mrO3WEg,6419
|
|
65
|
+
supervaizer/protocol/__init__.py,sha256=00GHbUsLNsf0a1rQrUPpVN2Uy-7rDz72Ps6TUVD91tE,389
|
|
66
|
+
supervaizer/protocol/a2a/__init__.py,sha256=1ACfPGLzS6XdZPiFxn1nVamvbasqtJJ7U1BBbSmT-nI,625
|
|
67
|
+
supervaizer/protocol/a2a/model.py,sha256=sWzatlA_fcva_fdtM8Yh4cioRq0KbwV5AXpNCnsOtQo,7198
|
|
68
|
+
supervaizer/protocol/a2a/routes.py,sha256=rkQTNBD1NTYimKCb8iOk4bVf9ldDP1LqHfOsyhRNufw,3937
|
|
69
|
+
supervaizer/utils/__init__.py,sha256=fd0NFwN_cen3QPms2SOnuz4jcetay3f_31dit2As7EA,458
|
|
70
|
+
supervaizer/utils/version_check.py,sha256=-tsOURpHVh0LNTbpQsyJDJENKszC-NzXDSO_EToEQPE,1893
|
|
71
|
+
supervaizer/py.typed,sha256=bHhvLx7c6MqrzXVPbdK3qAOcSxzp4wDtTx4QifMC2EY,74
|
|
72
|
+
supervaizer-0.10.0.dist-info/METADATA,sha256=slosrmHrXHWs2xkeBHQGwcCpmsqaberhJL5RkW319eQ,12624
|
|
73
|
+
supervaizer-0.10.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
74
|
+
supervaizer-0.10.0.dist-info/entry_points.txt,sha256=vL_IBR_AeEI2u2-6YL4PY9k2Mar4-gprG8-UxERWjmg,52
|
|
75
|
+
supervaizer-0.10.0.dist-info/licenses/LICENSE.md,sha256=dmdnt1vfpxNPr8Lt0BnxKE5uzUwK3CWTthTUStgOXjY,15327
|
|
76
|
+
supervaizer-0.10.0.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2024-2025 Alain Prasquier - Supervaize.com. All rights reserved.
|
|
2
|
-
#
|
|
3
|
-
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
-
# If a copy of the MPL was not distributed with this file, you can obtain one at
|
|
5
|
-
# https://mozilla.org/MPL/2.0/.
|
|
6
|
-
|
|
7
|
-
"""ACP protocol implementation for SUPERVAIZER."""
|
|
8
|
-
|
|
9
|
-
from supervaizer.protocol.acp.model import (
|
|
10
|
-
create_agent_detail,
|
|
11
|
-
create_health_data,
|
|
12
|
-
list_agents,
|
|
13
|
-
)
|
|
14
|
-
from supervaizer.protocol.acp.routes import create_routes
|
|
15
|
-
|
|
16
|
-
__all__ = [
|
|
17
|
-
"create_agent_detail",
|
|
18
|
-
"list_agents",
|
|
19
|
-
"create_health_data",
|
|
20
|
-
"create_routes",
|
|
21
|
-
]
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2024-2025 Alain Prasquier - Supervaize.com. All rights reserved.
|
|
2
|
-
#
|
|
3
|
-
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
-
# If a copy of the MPL was not distributed with this file, you can obtain one at
|
|
5
|
-
# https://mozilla.org/MPL/2.0/.
|
|
6
|
-
|
|
7
|
-
from datetime import datetime
|
|
8
|
-
from typing import Any, Dict, List
|
|
9
|
-
|
|
10
|
-
from supervaizer.agent import Agent
|
|
11
|
-
from supervaizer.job import EntityStatus, Jobs
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def create_agent_detail(agent: Agent, base_url: str) -> Dict[str, Any]:
|
|
15
|
-
"""
|
|
16
|
-
Create an ACP agent detail for the given agent.
|
|
17
|
-
|
|
18
|
-
This follows the ACP protocol as defined in:
|
|
19
|
-
https://docs.beeai.dev/acp/spec/concepts/discovery
|
|
20
|
-
|
|
21
|
-
Args:
|
|
22
|
-
agent: The Agent instance
|
|
23
|
-
base_url: The base URL of the server
|
|
24
|
-
|
|
25
|
-
Returns:
|
|
26
|
-
A dictionary representing the agent detail in ACP format
|
|
27
|
-
"""
|
|
28
|
-
# Build the interfaces object
|
|
29
|
-
interfaces = {
|
|
30
|
-
"input": "chat",
|
|
31
|
-
"output": "chat",
|
|
32
|
-
"awaits": [{"name": "user_response", "request": {}, "response": {}}],
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
# Build the metadata object
|
|
36
|
-
metadata = {
|
|
37
|
-
"documentation": agent.description or f"Documentation for {agent.name} agent",
|
|
38
|
-
"license": "MPL-2.0",
|
|
39
|
-
"programmingLanguage": "Python",
|
|
40
|
-
"naturalLanguages": ["en"],
|
|
41
|
-
"framework": "SUPERVAIZER",
|
|
42
|
-
"useCases": [f"Agent services provided by {agent.name}"],
|
|
43
|
-
"examples": [
|
|
44
|
-
{
|
|
45
|
-
"prompt": f"Example interaction with {agent.name}",
|
|
46
|
-
"response": "Example response",
|
|
47
|
-
}
|
|
48
|
-
],
|
|
49
|
-
"tags": [agent.slug] + (agent.tags or []),
|
|
50
|
-
"createdAt": datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ"),
|
|
51
|
-
"updatedAt": datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ"),
|
|
52
|
-
"author": {
|
|
53
|
-
"name": agent.author or agent.developer or "SUPERVAIZER",
|
|
54
|
-
"email": "info@supervaize.com",
|
|
55
|
-
"url": "https://supervaize.com/",
|
|
56
|
-
},
|
|
57
|
-
"contributors": [
|
|
58
|
-
{
|
|
59
|
-
"name": agent.maintainer
|
|
60
|
-
or agent.author
|
|
61
|
-
or agent.developer
|
|
62
|
-
or "SUPERVAIZER",
|
|
63
|
-
"email": "info@supervaize.com",
|
|
64
|
-
"url": "https://supervaize.com/",
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
"links": [
|
|
68
|
-
{"type": "homepage", "url": f"{base_url}/agents/{agent.slug}"},
|
|
69
|
-
{"type": "documentation", "url": f"{base_url}/docs"},
|
|
70
|
-
{"type": "source-code", "url": "https://github.com/supervaize/supervaizer"},
|
|
71
|
-
],
|
|
72
|
-
"dependencies": [{"type": "tool", "name": "supervaizer-core"}],
|
|
73
|
-
"recommendedModels": ["gpt-4", "claude-3-opus"],
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
# Get job statistics for status data
|
|
77
|
-
jobs_registry = Jobs()
|
|
78
|
-
agent_jobs = jobs_registry.get_agent_jobs(agent.name)
|
|
79
|
-
|
|
80
|
-
total_jobs = len(agent_jobs)
|
|
81
|
-
completed_jobs = sum(
|
|
82
|
-
1 for j in agent_jobs.values() if j.status == EntityStatus.COMPLETED
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
# Calculate average runtime and success rate for status
|
|
86
|
-
avg_run_time = 0.0
|
|
87
|
-
if total_jobs > 0:
|
|
88
|
-
success_rate = (completed_jobs / total_jobs) * 100
|
|
89
|
-
|
|
90
|
-
# Calculate average runtime in seconds
|
|
91
|
-
runtimes = []
|
|
92
|
-
for job in agent_jobs.values():
|
|
93
|
-
if (
|
|
94
|
-
job.created_at
|
|
95
|
-
and job.finished_at
|
|
96
|
-
and job.status == EntityStatus.COMPLETED
|
|
97
|
-
):
|
|
98
|
-
runtime = (job.finished_at - job.created_at).total_seconds()
|
|
99
|
-
runtimes.append(runtime)
|
|
100
|
-
|
|
101
|
-
if runtimes:
|
|
102
|
-
avg_run_time = sum(runtimes) / len(runtimes)
|
|
103
|
-
else:
|
|
104
|
-
success_rate = 100 # If no jobs, assume 100% success rate
|
|
105
|
-
|
|
106
|
-
# Build the status object
|
|
107
|
-
status = {
|
|
108
|
-
"avgRunTokens": 0, # Placeholder, actual token count if available
|
|
109
|
-
"avgRunTimeSeconds": avg_run_time,
|
|
110
|
-
"successRate": success_rate,
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
# Create the main agent detail
|
|
114
|
-
agent_detail = {
|
|
115
|
-
"name": agent.name,
|
|
116
|
-
"description": agent.description,
|
|
117
|
-
"interfaces": interfaces,
|
|
118
|
-
"metadata": metadata,
|
|
119
|
-
"status": status,
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return agent_detail
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
def list_agents(agents: List[Agent], base_url: str) -> List[Dict[str, Any]]:
|
|
126
|
-
"""
|
|
127
|
-
Create a list of ACP agent details for all available agents.
|
|
128
|
-
|
|
129
|
-
Args:
|
|
130
|
-
agents: List of Agent instances
|
|
131
|
-
base_url: The base URL of the server
|
|
132
|
-
|
|
133
|
-
Returns:
|
|
134
|
-
A list of dictionaries representing agent details in ACP format
|
|
135
|
-
"""
|
|
136
|
-
return [create_agent_detail(agent, base_url) for agent in agents]
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def create_health_data(agents: List[Agent]) -> Dict[str, Any]:
|
|
140
|
-
"""
|
|
141
|
-
Create health data for all agents according to ACP protocol.
|
|
142
|
-
|
|
143
|
-
Args:
|
|
144
|
-
agents: List of Agent instances
|
|
145
|
-
|
|
146
|
-
Returns:
|
|
147
|
-
A dictionary with health information for all agents
|
|
148
|
-
"""
|
|
149
|
-
jobs_registry = Jobs()
|
|
150
|
-
|
|
151
|
-
agents_health = {}
|
|
152
|
-
for agent in agents:
|
|
153
|
-
# Get agent jobs
|
|
154
|
-
agent_jobs = jobs_registry.get_agent_jobs(agent.name)
|
|
155
|
-
|
|
156
|
-
# Calculate job statistics
|
|
157
|
-
total_jobs = len(agent_jobs)
|
|
158
|
-
completed_jobs = sum(
|
|
159
|
-
1 for j in agent_jobs.values() if j.status == EntityStatus.COMPLETED
|
|
160
|
-
)
|
|
161
|
-
failed_jobs = sum(
|
|
162
|
-
1 for j in agent_jobs.values() if j.status == EntityStatus.FAILED
|
|
163
|
-
)
|
|
164
|
-
in_progress_jobs = sum(
|
|
165
|
-
1 for j in agent_jobs.values() if j.status == EntityStatus.IN_PROGRESS
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
# Set agent status based on health indicators
|
|
169
|
-
if total_jobs == 0:
|
|
170
|
-
status = "available"
|
|
171
|
-
elif failed_jobs > total_jobs / 2: # If more than half are failing
|
|
172
|
-
status = "degraded"
|
|
173
|
-
elif in_progress_jobs > 0:
|
|
174
|
-
status = "busy"
|
|
175
|
-
else:
|
|
176
|
-
status = "available"
|
|
177
|
-
|
|
178
|
-
agents_health[agent.id] = {
|
|
179
|
-
"agent_id": agent.id,
|
|
180
|
-
"name": agent.name,
|
|
181
|
-
"status": status,
|
|
182
|
-
"version": agent.version,
|
|
183
|
-
"statistics": {
|
|
184
|
-
"total_jobs": total_jobs,
|
|
185
|
-
"completed_jobs": completed_jobs,
|
|
186
|
-
"failed_jobs": failed_jobs,
|
|
187
|
-
"in_progress_jobs": in_progress_jobs,
|
|
188
|
-
"success_rate": (completed_jobs / total_jobs * 100)
|
|
189
|
-
if total_jobs > 0
|
|
190
|
-
else 100,
|
|
191
|
-
},
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
return {
|
|
195
|
-
"status": "operational",
|
|
196
|
-
"timestamp": str(datetime.now()),
|
|
197
|
-
"agents": agents_health,
|
|
198
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2024-2025 Alain Prasquier - Supervaize.com. All rights reserved.
|
|
2
|
-
#
|
|
3
|
-
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
4
|
-
# If a copy of the MPL was not distributed with this file, you can obtain one at
|
|
5
|
-
# https://mozilla.org/MPL/2.0/.
|
|
6
|
-
|
|
7
|
-
from typing import TYPE_CHECKING, Any, Dict, List
|
|
8
|
-
|
|
9
|
-
from fastapi import APIRouter
|
|
10
|
-
|
|
11
|
-
from supervaizer.common import log
|
|
12
|
-
from supervaizer.protocol.acp.model import (
|
|
13
|
-
create_agent_detail,
|
|
14
|
-
create_health_data,
|
|
15
|
-
list_agents,
|
|
16
|
-
)
|
|
17
|
-
from supervaizer.routes import handle_route_errors
|
|
18
|
-
|
|
19
|
-
if TYPE_CHECKING:
|
|
20
|
-
from supervaizer.agent import Agent
|
|
21
|
-
from supervaizer.server import Server
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def create_routes(server: "Server") -> APIRouter:
|
|
25
|
-
"""Create ACP protocol routes for the server."""
|
|
26
|
-
router = APIRouter(prefix="/agents", tags=["Protocol ACP"])
|
|
27
|
-
base_url = server.public_url or ""
|
|
28
|
-
|
|
29
|
-
@router.get(
|
|
30
|
-
"",
|
|
31
|
-
summary="ACP Agents Discovery",
|
|
32
|
-
description="Returns a list of all agents according to ACP protocol specification",
|
|
33
|
-
response_model=List[Dict[str, Any]],
|
|
34
|
-
)
|
|
35
|
-
@handle_route_errors()
|
|
36
|
-
async def get_acp_agents() -> List[Dict[str, Any]]:
|
|
37
|
-
"""Get a list of all available agents in ACP format."""
|
|
38
|
-
log.info("[ACP] GET /agents [Agent discovery]")
|
|
39
|
-
return list_agents(server.agents, base_url)
|
|
40
|
-
|
|
41
|
-
# Create explicit routes for each agent
|
|
42
|
-
for agent in server.agents:
|
|
43
|
-
|
|
44
|
-
def create_agent_route(current_agent: "Agent") -> None:
|
|
45
|
-
route_path = f"/{current_agent.slug}"
|
|
46
|
-
|
|
47
|
-
@router.get(
|
|
48
|
-
route_path,
|
|
49
|
-
summary=f"ACP Agent Detail for {current_agent.name}",
|
|
50
|
-
description=f"Returns details for agent {current_agent.name} according to ACP protocol specification",
|
|
51
|
-
response_model=Dict[str, Any],
|
|
52
|
-
)
|
|
53
|
-
@handle_route_errors()
|
|
54
|
-
async def get_agent_detail() -> Dict[str, Any]:
|
|
55
|
-
"""Get details for a specific agent in ACP format."""
|
|
56
|
-
log.info(f"[ACP] GET /agents/{current_agent.slug} [Agent detail]")
|
|
57
|
-
return create_agent_detail(current_agent, base_url)
|
|
58
|
-
|
|
59
|
-
# Call the closure function with the current agent
|
|
60
|
-
create_agent_route(agent)
|
|
61
|
-
|
|
62
|
-
@router.get(
|
|
63
|
-
"/health",
|
|
64
|
-
summary="ACP Health Status",
|
|
65
|
-
description="Returns health information about the server and agents",
|
|
66
|
-
response_model=Dict[str, Any],
|
|
67
|
-
)
|
|
68
|
-
@handle_route_errors()
|
|
69
|
-
async def get_acp_health() -> Dict[str, Any]:
|
|
70
|
-
"""Get health information for the server and all agents."""
|
|
71
|
-
log.info("[ACP] GET /agents/health [Health status]")
|
|
72
|
-
return create_health_data(server.agents)
|
|
73
|
-
|
|
74
|
-
return router
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
supervaizer/__init__.py,sha256=PpLbTZ8lvkdlCJclSpKRY-hd2BRzyRCkM6EakPvDotg,2258
|
|
2
|
-
supervaizer/__version__.py,sha256=jZYqDhPdal53PTI6MR7FfBlMxjmGmPH5kW3j0oj7qwE,347
|
|
3
|
-
supervaizer/account.py,sha256=O9Rz5MjvMBPw5oJ4yD2kXKnwgcl_QU73pO0jjhE-cHk,10880
|
|
4
|
-
supervaizer/account_service.py,sha256=7iDnaTUwPApnNY_QnXwNxAWKABF2yPNekr4UGGxZdjg,2867
|
|
5
|
-
supervaizer/agent.py,sha256=13zVczF2fvIquRW6BYkoUO1CrXIxg0oYIjlkdWG-fUQ,29956
|
|
6
|
-
supervaizer/case.py,sha256=hNmklwtXYr-c3CHpGAP8mKjhdvFboZYJKen-b587AjI,12887
|
|
7
|
-
supervaizer/cli.py,sha256=tkL-0K7sLtS_0g2xHFLw4ZCJdyqvc289IZ5KTLCLOrQ,5066
|
|
8
|
-
supervaizer/common.py,sha256=tKio7xDjfm2Vtqz1Ijb16OpiK0A44Cwge8xTLRXoMU8,8471
|
|
9
|
-
supervaizer/event.py,sha256=2aupUV1HkF0-nBFVmO5ddvj9jb4MiWr2MCxEamHFhx4,5516
|
|
10
|
-
supervaizer/instructions.py,sha256=L0uoZXg8N4PnLxJiqBgD4Pbce-hHTDUx1yImRbtNZNg,4146
|
|
11
|
-
supervaizer/job.py,sha256=XGrKMar3Kzv_197ZcLD0iBOg-b7ZoEOMmm95W74Axgk,12814
|
|
12
|
-
supervaizer/job_service.py,sha256=p7Dq_iy5G37Dj8l0MCLSWuYBbGg34vKq9T8jAegwi8g,4719
|
|
13
|
-
supervaizer/lifecycle.py,sha256=5CunJN7MsM5blyNiFMJMLFDUBmTmmAsPE24QC-gSbYA,13958
|
|
14
|
-
supervaizer/parameter.py,sha256=V1yxAOjcFz_JFDBI5ML_QwHQZqtOCdTh_LF9XjSI56s,5728
|
|
15
|
-
supervaizer/routes.py,sha256=zB4AZ1gRDDl7V4UX9kzz8Rpf0oHy3IcC-uXE1PYxFsI,24142
|
|
16
|
-
supervaizer/server.py,sha256=3dvsNFONhjl3uGC-v37oYtz7dx7OB0cqw5Ys4rwej0w,21005
|
|
17
|
-
supervaizer/server_utils.py,sha256=FMglpADQBJynkR2v-pfwANu6obsaPvR9j0BQc5Otpac,1590
|
|
18
|
-
supervaizer/storage.py,sha256=JO2pczuuJkQtk9o14_7z8yRV_q3bEir3Dtl6ejPIixY,14276
|
|
19
|
-
supervaizer/telemetry.py,sha256=XSYw8ZwoY8W6C7mhwHU67t7trJzWd7CBkkSNdsDT_HA,2596
|
|
20
|
-
supervaizer/admin/routes.py,sha256=Jc4xqLi9rSELkL9hJvDnyzFjFpqToQf99duy__Ic2BE,44298
|
|
21
|
-
supervaizer/admin/templates/agent_detail.html,sha256=DFOGfjuQNC39FOLYUW_jD0A01WpBY1umatGCslyJ0_c,7581
|
|
22
|
-
supervaizer/admin/templates/agents.html,sha256=rOKot2CCCZp83dQINyjAFzjWHSiCUHBgyC2qtOjHs0I,9016
|
|
23
|
-
supervaizer/admin/templates/agents_grid.html,sha256=qIrXwaOyn5mrlnqopP2HkpCTHkV2OvSTCoT-LCDXmsI,5727
|
|
24
|
-
supervaizer/admin/templates/base.html,sha256=ZGS-6IxGRYK41E5Jp3MVrGSwCugg8AVHtW21kKCBDvo,10405
|
|
25
|
-
supervaizer/admin/templates/case_detail.html,sha256=cJ4TUJI3ix3a-veb4g0Tp0AY-uJr0SducK70MZPFsZQ,13848
|
|
26
|
-
supervaizer/admin/templates/cases_list.html,sha256=UV4SfULzxNiOpG8aNddablpwf6hVNpRbAc6dgTmp6_E,9324
|
|
27
|
-
supervaizer/admin/templates/cases_table.html,sha256=VyL5mEF003FTNHym1UYBD8JkvhA9wR328ciTKNKxdb8,6619
|
|
28
|
-
supervaizer/admin/templates/console.html,sha256=tLGGf8vHjGK77Il6SYlgparoU_xz3nbvNpGVQRkVNCc,13966
|
|
29
|
-
supervaizer/admin/templates/dashboard.html,sha256=3Pu5bR78QUcPNp5MyXkyibfp-wxYdJyyf77v3O_f_hU,7873
|
|
30
|
-
supervaizer/admin/templates/job_detail.html,sha256=LDTMWLURyVCp7SMTxQ4M8AFqNpbbUVUx253negp9JNA,10790
|
|
31
|
-
supervaizer/admin/templates/jobs_list.html,sha256=VJ2VYe62dHXvjQQgUAVyKcn58rO5919UuP3VKgxLVhM,9136
|
|
32
|
-
supervaizer/admin/templates/jobs_table.html,sha256=BCOI_7QlxJ5XOra7WKou48a2lNwQYASCMFTtgzHNotw,5974
|
|
33
|
-
supervaizer/admin/templates/navigation.html,sha256=bHzJ2FVjPCmtnFyfe8P58kGXv02KZvQhiBHDw5Sr-WQ,10523
|
|
34
|
-
supervaizer/admin/templates/recent_activity.html,sha256=hL06GXF1a-C_tkj3pRLrDTTDqG0KplcWMZFengFMuEc,4843
|
|
35
|
-
supervaizer/admin/templates/server.html,sha256=m3qIQsEojogXQKTSD6ljKj4_lrwaLJTpTbMpfnWZHxU,5650
|
|
36
|
-
supervaizer/admin/templates/server_status_cards.html,sha256=yJ36hkfgQpscYkiaodFDQPnmJWeb2W7gey09Z3T6JsY,7882
|
|
37
|
-
supervaizer/examples/controller-template.py,sha256=TiXBoA7EKa2REGsXllQVE6QJh4jKc0DSsbVs2SXx8n0,6280
|
|
38
|
-
supervaizer/protocol/__init__.py,sha256=6cwvhmXjJM8Slsdsgu0Hxsi1-fTdcxD4VXQo0DUpPwg,401
|
|
39
|
-
supervaizer/protocol/a2a/__init__.py,sha256=1ACfPGLzS6XdZPiFxn1nVamvbasqtJJ7U1BBbSmT-nI,625
|
|
40
|
-
supervaizer/protocol/a2a/model.py,sha256=sWzatlA_fcva_fdtM8Yh4cioRq0KbwV5AXpNCnsOtQo,7198
|
|
41
|
-
supervaizer/protocol/a2a/routes.py,sha256=XcvA5ohszIh3Rz8Jw4AElozuLugKsWefwpDerp8wB54,3935
|
|
42
|
-
supervaizer/protocol/acp/__init__.py,sha256=rcZDUP63T2zSWfwiDklYn1JuFOSkkO2fQVeyc8UKl4E,615
|
|
43
|
-
supervaizer/protocol/acp/model.py,sha256=Ar4GViZyx5HNa7E3hBC_drkR43S3M70kq1K4C1cwCU0,6354
|
|
44
|
-
supervaizer/protocol/acp/routes.py,sha256=GzjCZlpmvPddTwpvXOa7Nq5lx6lUmFEvONvx8sOzu8M,2719
|
|
45
|
-
supervaizer/py.typed,sha256=bHhvLx7c6MqrzXVPbdK3qAOcSxzp4wDtTx4QifMC2EY,74
|
|
46
|
-
supervaizer-0.9.7.dist-info/METADATA,sha256=sKTMc6-i0Mqqwg_EEucp8xI44vP1vmI_I7ifT6JnRRg,9851
|
|
47
|
-
supervaizer-0.9.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
48
|
-
supervaizer-0.9.7.dist-info/entry_points.txt,sha256=vL_IBR_AeEI2u2-6YL4PY9k2Mar4-gprG8-UxERWjmg,52
|
|
49
|
-
supervaizer-0.9.7.dist-info/licenses/LICENSE.md,sha256=dmdnt1vfpxNPr8Lt0BnxKE5uzUwK3CWTthTUStgOXjY,15327
|
|
50
|
-
supervaizer-0.9.7.dist-info/RECORD,,
|
|
File without changes
|