Lightweight SDK for pushing automation run logs to the Manage AI dashboard
Project description
Manage AI SDK
Lightweight Python SDK for pushing automation run logs to the Manage AI dashboard.
Install
pip install manage-ai-sdk
# or directly from the repo
pip install "manage-ai-sdk @ git+https://github.com/Shfa-AI/manage-ai.git#subdirectory=sdk"
Setup
Set two environment variables (or pass them explicitly):
export MANAGE_AI_URL=https://your-dashboard.example.com
export MANAGE_AI_KEY=ak_your_api_key_here
Get these from the Connection section on any automation's detail page in the dashboard.
Usage
Decorator (simplest)
from manage_ai_sdk import automation
@automation("b1000000-0000-0000-0000-000000000001")
def daily_invoice_email():
invoices = fetch_invoices()
send_emails(invoices)
return {"invoices_sent": len(invoices)}
if __name__ == "__main__":
daily_invoice_email()
The decorator automatically:
- Reports the run as started when the function begins
- Reports success with the return value as output when it finishes
- Reports failure with the traceback if an exception occurs
- Tracks duration
Analytics events (SEO-style automation metrics)
Use canonical events so analytics works consistently across repositories.
from manage_ai_sdk import ManageAI
client = ManageAI()
automation_id = "b1000000-0000-0000-0000-000000000001"
session_id = "sess_123"
user_id = "user_42"
client.track_event(
automation_id,
"user_logged_in",
actor_user_id=user_id,
session_id=session_id,
channel="web",
)
client.track_event(
automation_id,
"question_asked",
actor_user_id=user_id,
session_id=session_id,
question_id="q_001",
question_text_raw="Can I export this report as CSV?",
question_category="reporting",
)
client.track_event(
automation_id,
"answer_returned",
actor_user_id=user_id,
session_id=session_id,
question_id="q_001",
answer_id="a_001",
answer_text_raw="Yes. Open Reports -> Export -> CSV.",
answer_source="rag",
)
Supported canonical event names:
user_logged_inautomation_openedsession_startedquestion_askedanswer_returnedcta_clickedsession_resolvedsession_unresolvedsession_ended
SDK freeze policy (schema v1)
The analytics event contract is versioned and stable at schema_version=1.
- Safe changes: add optional fields, add new events with fallback handling.
- Breaking changes: rename/remove event names or required fields.
- Breaking changes require a new schema version.
Context manager (for embedding in existing code)
from manage_ai_sdk import track_run
with track_run("b1000000-0000-0000-0000-000000000001") as run:
result = do_stuff()
run.output = {"data": result}
Explicit client (for advanced usage)
from manage_ai_sdk import ManageAI
client = ManageAI(url="https://...", api_key="ak_...")
run_id = client.start_run("b1000000-...", trigger={"type": "cron"})
try:
result = do_stuff()
client.complete_run("b1000000-...", run_id, output={"data": result}, duration_ms=1234)
except Exception as e:
client.fail_run("b1000000-...", run_id, error=str(e))
raise
Live connection heartbeat bridge
Use a background bridge for long-running workers so the dashboard can show real-time connection status.
import time
from manage_ai_sdk import ManageAI
client = ManageAI()
automation_id = "b1000000-0000-0000-0000-000000000001"
bridge = client.start_heartbeat_bridge(automation_id, interval_seconds=60)
try:
while True:
# your worker loop
time.sleep(10)
finally:
bridge.stop()
Notes:
start_runandtrack_eventalso send a one-off heartbeat.- For always-on processes, prefer
start_heartbeat_bridgeso status stays fresh while idle. - Heartbeat retries transient failures with exponential backoff + jitter.
Configuration priority
- Explicit arguments —
automation("id", url="...", api_key="...") - Environment variables —
MANAGE_AI_URL,MANAGE_AI_KEY
Failure behavior
If the dashboard is unreachable, the SDK logs a warning but does not crash your automation. Your code always runs regardless of whether the dashboard is available.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file manage_ai_sdk-0.4.0.tar.gz.
File metadata
- Download URL: manage_ai_sdk-0.4.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daa271c16a466e2bf89096d5466578f31b356850a69330955630802be4258fee
|
|
| MD5 |
305d3726a90ab4e0a9be664b07ca4218
|
|
| BLAKE2b-256 |
680874416421b76803c13af2ba9b6c70043e382d0513bfd2ea91f736cf1ee50b
|
Provenance
The following attestation bundles were made for manage_ai_sdk-0.4.0.tar.gz:
Publisher:
publish-sdk.yml on Shfa-AI/manage-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manage_ai_sdk-0.4.0.tar.gz -
Subject digest:
daa271c16a466e2bf89096d5466578f31b356850a69330955630802be4258fee - Sigstore transparency entry: 1081517756
- Sigstore integration time:
-
Permalink:
Shfa-AI/manage-ai@d0c0323ff38b912288f06d9860420a50d5095836 -
Branch / Tag:
refs/tags/sdk-v0.4.0 - Owner: https://github.com/Shfa-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@d0c0323ff38b912288f06d9860420a50d5095836 -
Trigger Event:
push
-
Statement type:
File details
Details for the file manage_ai_sdk-0.4.0-py3-none-any.whl.
File metadata
- Download URL: manage_ai_sdk-0.4.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc3b382b0f1502268712d35701b7f212c88619f1dfcd9b6db69796287618c32f
|
|
| MD5 |
10d9e6e52ee797372672b10e87c096f7
|
|
| BLAKE2b-256 |
0024ee0188be1120a154d706be1066c59e146cda2d53754147c8d937e0792994
|
Provenance
The following attestation bundles were made for manage_ai_sdk-0.4.0-py3-none-any.whl:
Publisher:
publish-sdk.yml on Shfa-AI/manage-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manage_ai_sdk-0.4.0-py3-none-any.whl -
Subject digest:
cc3b382b0f1502268712d35701b7f212c88619f1dfcd9b6db69796287618c32f - Sigstore transparency entry: 1081517958
- Sigstore integration time:
-
Permalink:
Shfa-AI/manage-ai@d0c0323ff38b912288f06d9860420a50d5095836 -
Branch / Tag:
refs/tags/sdk-v0.4.0 - Owner: https://github.com/Shfa-AI
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@d0c0323ff38b912288f06d9860420a50d5095836 -
Trigger Event:
push
-
Statement type: