This release is a pre-release and may not be stable for production use.
Devware
Check that an agent's environment is ready before starting a workload.
Devware checks required environment variables and HTTP health endpoints from a small TOML file. It returns a nonzero exit code when a prerequisite fails, so you can use it in a terminal, a CI job, or a script that starts an agent.
This first alpha is a local readiness checker. It does not provision runtimes, execute agents, manage secrets, or call a hosted Devware API.
Install
Requires Python 3.11 or later. Once this release is published on PyPI:
python -m pip install 'devware==0.1.0a1'
For local development from this source directory:
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/devware --version
On Windows, virtual-environment executables are in .venv\Scripts.
Configure
devware init
This creates devware.toml and refuses to overwrite an existing file. Edit the
example to match the services your workload actually needs:
required_env = ["OPENAI_API_KEY"]
[[services]]
name = "application"
url = "http://127.0.0.1:8000/health"
expected_status = 200
[[services]]
name = "retrieval"
url = "http://127.0.0.1:9000/ready"
expected_status = 204
required_env contains variable names, never their values. A variable passes
when it exists and is not empty. The tool reads the current process environment;
it does not load .env files. Configure at least one variable or one service.
expected_status defaults to 200 and must match exactly. Variable names and
service names must be unique within their respective lists.
Check
devware check
devware check --config environments/local.toml --timeout 5
devware check --json
Example human-readable output:
PASS environment OPENAI_API_KEY: Set
PASS service application: HTTP 200
FAIL service retrieval: HTTP 503; expected 204
Not ready. Resolve failed checks before running your workload.
JSON output contains ok and a checks array. Each result includes kind,
name, ok, and detail. Configuration errors add an error field and return
an empty checks array. Environment values, URLs, and response bodies are not
included in reports.
| Exit code | Meaning |
|---|---|
0 |
All configured checks passed, or init succeeded |
1 |
At least one readiness check failed |
2 |
Invalid arguments/configuration or an unreadable/unwritable file |
130 |
Checks interrupted by the user |
Use the result to gate an existing command:
devware check && your-agent-command
HTTP behavior and limits
- Each configured service receives one
GETrequest. Use health endpoints that are safe to call. Requests run sequentially with no retries. - Only HTTP and HTTPS URLs are supported. Embedded username/password credentials and fragments are rejected. Use ASCII or percent-encoded URLs.
- Redirects are not followed. An HTTP 302 fails unless
302is explicitly the expected status. TLS certificate verification remains enabled. - Responses are checked by status only. Bodies are not read, printed, or parsed.
- There are no authentication headers, proxy support, or telemetry. Proxy environment variables are not used.
--timeoutsets the socket timeout per service, from greater than zero to 60 seconds (default: 3). It is not a total run deadline; OS DNS resolution can exceed the socket timeout.- Checks show readiness at one point in time. They do not guarantee that an agent will succeed or that the service will remain healthy.
You can also run the CLI with python -m devware.
Development
python3 -m venv .venv
.venv/bin/python -m pip install -e . build twine
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m build
.venv/bin/python -m twine check --strict dist/*
Tests use a local HTTP server and synthetic environment variables. They do not
call external APIs or require API keys. See RELEASING.md before publishing.
License
MIT. See LICENSE.
Metadata
Release files for devware 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| devware-0.1.0a1.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devware-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / devware-0.1.0a1.tar.gz
| Download URL | devware-0.1.0a1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1785bdb37c2667f326529e5d8337137a7e3263aa8639db6b8ff9290ea5f0fc62
|
|
BLAKE2b-256 checksum How to use checksums |
37882349410b26a1ca1ded6084015c6e47bdaabb2d59a37d46bcfc49c2f3332e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|
Release files / devware-0.1.0a1-py3-none-any.whl
| Download URL | devware-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8804e013a9c871e6b2de6e20ea41505854ee83b13e581b3a162d60dff2d107d
|
|
BLAKE2b-256 checksum How to use checksums |
53c8857653089955e4ef80a685240b3fa7875487060808c5bdcd4220c92a9fb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|