agentoven
Python SDK for AgentOven — the enterprise agent control plane.
Built with native Rust performance via PyO3.
Install
pip install agentoven
Quick Start
from agentoven import AgentOvenClient, Agent
# Connect to the control plane
client = AgentOvenClient(url="http://localhost:8080")
# Register an agent
agent = Agent(name="my-assistant", description="A helpful AI assistant")
result = client.register_agent(agent)
print(result)
# List all agents
agents = client.list_agents()
for a in agents:
print(a)
# Deploy an agent
client.bake("my-assistant")
# Pause an agent
client.cool("my-assistant")
Features
- Native performance — Rust core compiled to a Python extension
- A2A protocol — built on the Agent-to-Agent open standard
- Multi-framework — works with LangGraph, CrewAI, AutoGen, and more
- Kitchen isolation — workspace-based multi-tenancy
License
MIT
Recipes
Build a recipe the way the dashboard's recipe builder does, check it, create it, run it and answer its approvals. The steps written are the same as the dashboard writes, so the recipe opens there too. Plain Python: no native module is needed to build one.
from agentoven import AgentOvenClient, Flow
from agentoven.flow import agent, ask, check, decide, mentions, together
flow = Flow("refund-review", "Triage a ticket, ask a person about refunds", [
agent("Triage", "triage-agent"),
decide("Needs a person?", mentions("refund", "chargeback"),
yes=[ask("Approve the refund", within="1 day",
approved=[agent("Issue the refund", "refunder")],
rejected=[agent("Explain the decision", "writer")])],
no=[together([agent("Reply", "writer")], [check("Tone check", "reviewer")])]),
agent("Log the outcome", "logger"),
])
client = AgentOvenClient("http://localhost:8080", api_key="...")
client.create_recipe(flow, check_agents=True) # a FlowError lists every problem first
run = client.run_recipe("refund-review", {"text": "I want a refund"})
state = client.wait_for_recipe_run("refund-review", run["run_id"]) # returns at a gate, or when finished
if state["status"] == "paused":
client.reject_gate(run["run_id"], state["pending_gates"][0], "The tone is too casual")
Builders: agent, check, lookup, decide, ask, together, wait, notify, sub_recipe, each, and mentions for a condition.
A notify step pushes to a live-feed channel that client.listen("channel") reads (pip install "agentoven[realtime]").
Also Flow.add, Flow.validate, Flow.to_wire, update_recipe, delete_recipe, list_recipe_runs and approve_gate.
Realtime voice (Pro)
# pip install "agentoven[realtime]"
async with client.realtime("support-agent", voice="marin") as call:
await call.send_audio(pcm_chunk) # PCM16, 24 kHz, mono
async for event in call:
if event.type == "audio":
speaker.write(event.audio) # raw PCM16 bytes
elif event.type == "transcript" and event.final:
print(event.role, event.text)
The agent always runs on its own provider, which must offer the realtime
modality. If the agent's input guardrails block what the caller said, you get an
error event and then iterating raises RealtimeError (close code 1008) with the
reason; call.close_code / call.close_reason are set once the call ends.
Browsers cannot set headers on a WebSocket: see "Realtime in a browser" below.
Modalities
A modality is something an agent can take in or give out beyond text: image,
pdf, video, audio (cascaded voice: speech-to-text in, text-to-speech out)
and realtime (live speech-to-speech). Modalities belong to the provider: an
agent has exactly the modalities of its own provider. Text is always on and has
no entry. You do not have to set anything: defaults come from the provider
driver and the model catalog.
Enable or disable modalities on a provider
from agentoven import AgentOvenClient, Modalities, AudioConfig, RealtimeConfig, CLEAR
client = AgentOvenClient(url="http://localhost:8080", api_key="...")
client.create_provider(
"openai", "openai", api_key="sk-...", models=["gpt-4o"],
modalities=Modalities(
pdf=False, # switch PDF input off
video=True, # widen for a gateway the catalog doesn't know
audio=AudioConfig(stt_model="whisper-1", tts_model="tts-1"),
realtime=RealtimeConfig(enabled=True, model="gpt-realtime"),
),
)
# Updates are merged per modality. CLEAR deletes a key (or a whole modality)
# and puts it back on its default.
client.update_provider("openai", modalities=Modalities(pdf=CLEAR, audio=AudioConfig(tts_model="tts-1-hd")))
provider = client.get_provider("openai")
print(provider.modalities) # effective: ['text', 'image', 'audio', ...]
print(provider.supports("audio"))
The same rules the server enforces are checked before the request is sent
(unknown modality, an entry for text, unknown settings, wrong types) and raise
ModalitiesError. audio and realtime cannot be enabled beyond what the
provider kind supports; the server answers 400 (AgentOvenAPIError).
Check what an agent can do
card = client.agent_card("support-agent")
print(card.modalities) # e.g. ['text', 'image', 'audio', 'realtime']
if card.supports("audio"):
...
client.supports("support-agent", "pdf") # shorthand
Send an image or PDF
from agentoven import Attachment
session = client.create_agent_session("vision-agent")
reply = client.send_session_message(
"vision-agent", session["id"], "Summarise these.",
attachments=[
Attachment.from_path("chart.png"), # MIME type inferred
Attachment.from_path("report.pdf"),
Attachment.from_url("https://example.com/photo.jpg"),
Attachment.from_bytes(raw_bytes, mime_type="image/webp"),
],
)
print(reply["content"])
Audio and video attachments work the same way. Audio is transcribed by the
server first, so any agent whose provider offers audio can take it.
Cascaded voice
from agentoven import AudioModalityError
try:
result = client.invoke(
"support-agent",
audio="question.wav", # path, Path, bytes, or AudioInput.from_base64(...)
voice_output=True,
voice="alloy",
)
except AudioModalityError:
print("this agent's provider does not offer the audio modality")
else:
print(result.transcript) # what the agent heard
print(result.response) # its text reply
result.save_audio("answer") # decoded bytes in result.audio.data -> answer.mp3
Realtime (live speech-to-speech)
Server-side, with your API key (needs pip install "agentoven[realtime]"):
async with client.realtime("support-agent", voice="marin") as call:
await call.send_audio(pcm_chunk)
async for event in call:
...
Realtime in a browser
Browsers cannot set headers on a WebSocket. Your backend mints a short-lived token (bound to the agent and kitchen, checked only when the socket opens) and gives it to the page:
minted = client.realtime_token("support-agent", ttl_seconds=60) # 1-300
return {"token": minted.token, "expires_in": minted.expires_in} # your endpoint
The page opens the socket with the WebSocket subprotocols
["agentoven.v1", "agentoven-token.<token>"] (the TypeScript SDK does this with
connectRealtime({ token })). From Python the same flow, with no auth headers:
async with AgentOvenClient(url="http://localhost:8080").realtime("support-agent", token=minted.token) as call:
...
Roles
restaurateur (platform-wide, a role of a person in the user directory) and, inside a kitchen, head_chef, chef,
baker, taster, auditor, legal, finance and viewer (KITCHEN_ROLES, PERSON_ROLES). The retired admin is
refused wherever a role is given (create_user, create_service_account, create_kitchen_binding,
set_approver_policy): it was a Head Chef inside a kitchen and a Restaurateur across the installation.
Agent versions
An agent's version moves only on a bake whose configuration differs from the last bake's. The first bake keeps the
registered version (0.1.0), a bake that changes nothing keeps its version, a changed one takes the next minor
version and keeps the old one, and editing a registered agent does not bump it.
client.list_agent_versions("support-agent") # [{"version": "0.1.0", ...}, {"version": "0.2.0", ...}]
client.get_agent_version("support-agent", "0.1.0") # the agent as it was when that version was baked
Signed decisions (Pro)
A decision at a gate is signed: you prove who you are again and get a single-use token bound to exactly that
decision, sent in the X-Signing-Token header (SIGNING_TOKEN_HEADER). sign does both steps with the password of
your local account; an account that signs in through an identity provider gets OidcSigningRequired (sign in the
dashboard instead). Every method that takes a decision accepts password= (it signs for you) or signing_token=.
token = client.sign("legal_hold_release", "dataset:ds-1", "approved", {"reason": "case closed"}, password)
client.lift_dataset_legal_hold("ds-1", "case closed", signing_token=token) # or: password=password
client.run_recipe("refunds", {"order": 7}, environment="prod", password=password) # gate approval_skip
client.signed_request("POST", "/api/v1/promotions", body, signing_token=token) # any other gate
Two gates came with the roles: legal_hold_release (a dataset's or the audit trail's legal hold, record id
dataset:<id> or audit:<kitchen>, payload {"reason"}) and approval_skip (running a recipe on an environment that
requires approval, record id <recipe>@<environment>, payload {"input"}). Also: list_signatures,
get_signature, verify_signatures, get_approver_policy, set_approver_policy.
Replay (Pro)
out = client.replay_call(trace_id, span_id, [{"label": "cooler", "edits": {"temperature": 0.1}}], reason="why")
run = client.replay_run(trace_id, from_span, {"model": "claude-haiku"}) # tools frozen
run = client.replay_run(trace_id, from_span, tools="live", live_tools=["lookup"], password=password) # signed
capture = client.get_span_capture(trace_id, span_id)
A replay is an investigation, never evidence: models are not deterministic, and no simulated tool result is ever
made up. prepare_live_replay returns what a live replay signs, computed by the server.
Governed datasets (Pro)
list_datasets, create_dataset, get_dataset, update_dataset, add_dataset_case, add_dataset_case_from_trace,
list_dataset_cases, retire_dataset_case, erase_dataset_case, publish_dataset, list_dataset_versions,
get_dataset_version, verify_dataset_version, export_dataset, lower_dataset_minimum,
place_dataset_legal_hold, lift_dataset_legal_hold, purge_dataset, list_expiring_datasets,
list_dataset_reviews, list_dataset_tombstones, and place_audit_legal_hold / lift_audit_legal_hold. On a
regulated dataset publishing, purging and lowering the minimum are signed (password= or signing_token=).
Identity-provider bindings and credential owners (Pro)
list_kitchen_bindings, create_kitchen_binding(kitchen_id, claim_value, role), delete_kitchen_binding,
set_service_account_owner, set_scoped_key_owner, my_kitchens. A service account or scoped key belongs to a person
(owner_email= when it is created); when the owner leaves the kitchen it stops until a Head Chef gives it to someone.
Budgets, rate limits and the response cache (Pro)
client.set_budget(500, period="monthly") # the kitchen, dollars
client.set_budget(2_000_000, unit="tokens", agent="triage", period="daily") # one agent (or provider=, api_key=)
client.set_budget(800, period="monthly", password=pw) # a raise is a signed decision (gate budget_raise)
client.list_budgets(); client.list_budget_ledger(); client.list_budget_alerts(); client.budget_usage("agent", days=7)
client.remove_budget(agent="triage", unit="tokens", password=pw)
client.set_limit("agent", "triage", requests_per_minute=60, tokens_per_minute=200_000) # "*" for each on its own
client.list_limits(); client.remove_limit("agent", "triage")
client.set_cache_policy("always", agent="faq-bot", ttl_seconds=900)
client.get_cache(); client.purge_cache("faq-bot"); client.remove_cache_policy("faq-bot")
RateLimitedError (HTTP 429: retry_after from Retry-After, scope, limit) and BudgetExceededError (HTTP 402:
scope, unit, period, resets_at) are AgentOvenAPIErrors; the SDK does not retry for you. Lowering a budget or
creating one needs no signature; raising or removing one needs password= or signing_token= (record id from
budget_record_id). See docs/budgets-limits-cache.md.
Checking a configuration against the kitchen
An agent names a provider, a model, a summarizer (compaction) model, skills, tools, prompts and subagents; a recipe
names agents, steps, channels, credentials, environments. The control plane refuses a write or a bake that names
something the kitchen does not have, with HTTP 422 and the list of every problem, each with the field, the bad value
and the nearest valid ones. The SDK raises it as ConfigurationError (an AgentOvenAPIError) with .problems and
.warnings (lists of agentoven.refcheck.Problem: path, code, severity, kind, value, within,
suggestions).
from agentoven import AgentBuilder, AgentOvenClient, ConfigurationError
spec = (AgentBuilder("support-bot")
.model("anthropic", "claude-sonnet-4-5")
.summary_model("anthropic", "claude-hiku-4-5") # the compaction model; a typo
.skills("pdf-reader"))
try:
client.create_agent(spec, validate=True) # checked here first; nothing is sent when it fails
except ConfigurationError as e:
for p in e.problems:
print(p.path, p.value, p.suggestions) # summary_model claude-hiku-4-5 ['claude-haiku-4-5']
validate=True (on register, create_agent, update_agent, bake, create_recipe, update_recipe, run_recipe,
bake_recipe) runs the same rules before sending, against the lists the client reads (client.load_catalog()). It is
off by default and the server stays the authority: it checks again whatever the client did. A list you may not read
(403, 404, a Pro-only route) is left unchecked, never treated as empty; scenarios are checked only where the server
lists them, and recipe approver roles are not checked from the SDK. A warning (a disabled optional tool, a provider
whose last test failed, a model id an OpenRouter, LiteLLM or Ollama provider does not list) never refuses a write.
No authentication is needed beyond what the server already asks for.
Without sending anything: client.validate_agent(agent_or_dict_or_builder) and client.validate_recipe(recipe)
return the problems (errors and warnings; agentoven.refcheck.split separates them), client.agent_validate(name)
and client.recipe_validate(name) ask the server about a stored agent or recipe as its next bake would judge it, and
agentoven.refcheck.check_agent / check_recipe / nearest are the pure functions (they run the cases in
sdk/fixtures/refcheck-cases.json, as the Go implementation, the TypeScript SDK and the Rust client do).
Timeouts, redirects and the route contract
A request gives up after 120 seconds (an invocation waits for a model): AgentOvenClient(timeout=30), or
AGENTOVEN_TIMEOUT=30 in the environment. A redirect is refused with an AgentOvenAPIError that names the new
location (Python's urllib would send your API key to it); use that URL as the server URL. Ids and names are
escaped as one path segment, so a name such as ../../x cannot choose another route.
register / register_agent brings a retired agent (one that was deleted) back with the same name and id: it
creates when the agent is absent or retired and updates when it is live. There is no delete_world_schema: the
server has no such route.
tests/test_route_contract.py reads every call the client makes and checks its verb and path against
sdk/fixtures/server-routes.json, the server's route list generated from its router (Pro repository:
UPDATE_SDK_ROUTES=1 go test ./internal/routeguard -run SDKRoute). A method for a route the server does not have
fails the build.
Metadata
Release files for agentoven 0.9.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| agentoven-0.9.6.tar.gz | 262.6 kB | Without provenance | Details for agentoven-0.9.6.tar.gz |
Built distributions (wheels)
Total release size: 53.9 MB
Release files / agentoven-0.9.6.tar.gz
| Download URL | agentoven-0.9.6.tar.gz |
|---|---|
| Size | 262.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60a7807fee0af3132d87b60b9db41aee587c4b242282993706d669149c73092d
|
|
BLAKE2b-256 checksum How to use checksums |
e03a1e431f900a58045e3cab0ea9ecc5a049d3f021e43c728fcad78950910d12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-win_amd64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9fbc0178c80dc017577a9a2dd0fd39976872af1d89787ce13441f48c0ebc79ad
|
|
BLAKE2b-256 checksum How to use checksums |
6b9ad1512312a42a5c618eedae6ff65967aa8d75daa05ed95f8a0b7311477004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f29ef912766d818483f6c57bcc7acacb4dee8c73c02d1618cb5bf3a7d993d42c
|
|
BLAKE2b-256 checksum How to use checksums |
0afd302caefd37c4c902bff02f0a319adef42979457233ddc5b20a9a5571d256
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f4f3bb547a7d3fec6ed2328528f7d5ea3b7f16ec46652ae5570dce4a13fc940f
|
|
BLAKE2b-256 checksum How to use checksums |
f9be844b867fa76fda73bd2c36b8da0cefe4bd7c5fac2a64ccaa7970a64748cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1b7c0bf8a8654793b39463d06fea21cbb172ebe8f23d4487f1d6f33487bc71e9
|
|
BLAKE2b-256 checksum How to use checksums |
0843fd12bee8ad49bd0ceae18e93327663db33b0215aa06fd2fbb90d6c988058
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
785b93dab054f6328e899adda8af20203a343c0237daafb51b3d31e5787eb973
|
|
BLAKE2b-256 checksum How to use checksums |
b9fdac2f9b37434f5112a78f3cc962e7d50e15f5df962fa36bace5642b01fe43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | agentoven-0.9.6-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
14a4a3a6095f0763eca8ac107418a7c44e648c070162c0ada6974cce8fd696dd
|
|
BLAKE2b-256 checksum How to use checksums |
6830d97c93c80b9b14a4c22636e49e3a852d77530ae7ef061490339b889dc653
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-win_amd64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a6eb6f70a8fd939613cdadaf67f6f374a2abf721c877484105b3c7ef00d0dc39
|
|
BLAKE2b-256 checksum How to use checksums |
802e53e28786da4f05ed45f59ef597655fb1cd473b83ac14ee58c4d2b9421683
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
ea7f2df87235ba2246e92a1b08eb092b2fb53dc3a76f566ce7b8c2302aa6af1f
|
|
BLAKE2b-256 checksum How to use checksums |
34d442b20cd4a02bca1f75418c51b75fe6fbe0e3cd5905a176e6b383e9083ed0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
8842d0dcdbd7172fa7ecf5420e440b6c5ee4556b20f1e50be4f8c26472a7e7f7
|
|
BLAKE2b-256 checksum How to use checksums |
51398b71c086006e41bf9ec71e552aa15c5d1b381f56ae588fd1f8abbf8e985f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e6ab597c104522d20fb23d75dc5a3e9ceccadec7db95dcd08e3472aa13373866
|
|
BLAKE2b-256 checksum How to use checksums |
dfaa544be177303188f2b06188e9a98bc90a5188f369f67258a829b26ba1b129
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
50baf73072a7a7a2197c78e4e2ecb144b5e2f993a94a3716c810ea33538552d7
|
|
BLAKE2b-256 checksum How to use checksums |
8efb6d0840d6fe4cf8984f8d0bb697e5e80609515edd27c6a9c0dfb253c905be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | agentoven-0.9.6-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
4f318e16463dc2bc3a2a4007760cc9770edbf5e62a07e67013165124155e67ce
|
|
BLAKE2b-256 checksum How to use checksums |
488b907efd742502391bd0e324213623544bcb0e558867818b7914ba43137985
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-win_amd64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fbcb803aa45e510787dc8b6aff46dc136c17646746913c3aa769f9d11000622f
|
|
BLAKE2b-256 checksum How to use checksums |
982abb4370d35760dff5cf8a8d0595e4378b1e50d1b5e2addccf914f63d95329
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3e85828436191c32a4cca3b0dbf18637c77c548c6d183119e70d06b6182af09
|
|
BLAKE2b-256 checksum How to use checksums |
7e1a617cfaf5d0e75313dc7ca79511a88324ec0f540587b3ded4c94338be4be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f2a47a3e44a8b428cac672ff4cc91caa5b8969ac858ee129b28403e1da64658b
|
|
BLAKE2b-256 checksum How to use checksums |
a5c875b705e53af1ab000506d258c4d12e75a90f098143605ac9acdd33e49afe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c34e2c3a11a4237edad287d45debce92565934997344ff168a09d5e4275d5fc4
|
|
BLAKE2b-256 checksum How to use checksums |
46ad04948430f8384093c54ed37abba811fb5176b6c5a3837df0fb177a4a7d13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d9c0e4d52f859da9714a0cc996ad7ae9afaad3716b3827ac57cddb9d3d9607fa
|
|
BLAKE2b-256 checksum How to use checksums |
2c6cdae9785771c331749768d39dce5d9fc2ec9c66765473ab56e3af988069de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | agentoven-0.9.6-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
97ba751f08e2be8261c8daf005fe0309f23103c5598f581cd8e7e712fed10fd5
|
|
BLAKE2b-256 checksum How to use checksums |
4824dc290c4ca1e65dee7b9c3533daeb891024d842269c9a99091b41544e68af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-win_amd64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b0c6931188c60e46a34d81f5596127472a495e593912371a1553d22565439d46
|
|
BLAKE2b-256 checksum How to use checksums |
6dbc064d527e0a0005eaab58ee5dc3b4f8499f1bf4bd55b257f7c9e38f3b6862
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
bb8aeaf5e3094a2ba9a25b3baa65425e72c8ed9c995d1d0c7c9024fbe3ebb94e
|
|
BLAKE2b-256 checksum How to use checksums |
3ca83597bfbfe5d80024ca986d158380ecd487590bd67e45560d1bc038789fc5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
6c654ba2331c574decddfaf5f30b307cee6d3f6236ac9896603b05b751b888d5
|
|
BLAKE2b-256 checksum How to use checksums |
9e206977533b123978f4c977f35b3d57869e7bec4ee670179305288fee7eac63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c12ebad936643379f6a83b4ba4b92c78ab088d39190504008a43a0dcb937f313
|
|
BLAKE2b-256 checksum How to use checksums |
bd2d51f4f7cf435cdc52f7b76a567c50b4bafbd04193fe67c863c0d723a79280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
18718ef8cccf8b3bed7f20d32759586e0f760b5f7d80f5fedafd387e803c7bab
|
|
BLAKE2b-256 checksum How to use checksums |
47afb25db88a6cf544a281c5fbe2683619023a5fa6d95d3e8d82776e183166d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | agentoven-0.9.6-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
54eb9e7a9d4939bbeea154617345ba7f8c87c5a4bc9c5c3b6ffe29c8005c82a6
|
|
BLAKE2b-256 checksum How to use checksums |
449e96dc350d095aa25e55d4b4187946752e1be4b2b12728a0cee1e33ca935a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-win_amd64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5c5f2c3a583a58ad1bc135851d69ba9080c58daa72a8013c7526d91a372540e1
|
|
BLAKE2b-256 checksum How to use checksums |
3514d09a12bc24095a10d294ff1868b5da4f2dcfefb40a930000aba241b8792a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
6222376385907fd3d036037a5429a0d3fe00a8fac54f4a6e67766bcf88297f61
|
|
BLAKE2b-256 checksum How to use checksums |
a388e70927435f92a0610c5d80b704ed3a6bb75a6ecf2931269a37a5e9918c72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-manylinux_2_28_aarch64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4c76e910b272068584b20cc2e7d534097cfa5c207fddaa0436e2e92172ab609d
|
|
BLAKE2b-256 checksum How to use checksums |
9d11525deb20a01d0a228af864f709d0aec48bcd89d6e4a0dbf10c0fa1d080b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1071f5e14cd452d06f27b3995fde5fd280b3f7a57a6d807f0eaf458fd8ff4b43
|
|
BLAKE2b-256 checksum How to use checksums |
41d4dd401170be1612c8abc0958bf5032dc58c8ce2834e1c2f26324077cf216e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b4a31f012141b01478038524125d90d81f9538c3e894ceae760971e14967d64e
|
|
BLAKE2b-256 checksum How to use checksums |
90d10a8eaa94553b32194af46663b55c87d193d4816a0d848d5b3216a2787f20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / agentoven-0.9.6-cp39-cp39-macosx_10_12_x86_64.whl
| Download URL | agentoven-0.9.6-cp39-cp39-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.9 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
927c606145474a9e66f75bb8030ab554ef9d8657841ee479bcef29c52637c05e
|
|
BLAKE2b-256 checksum How to use checksums |
917519bacac4f46b5427da799c532b2a0e4edae5efd893033a7d9cd0f1d0b6d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for agentoven 0.9.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.