aamp-sdk
Python SDK for AAMP.
This SDK now includes the same core runtime shape as the Node.js SDK:
- AAMP discovery and mailbox registration
- directory query and profile updates
- realtime stream create / append / get / close
- AAMP header builders and parsers
- SMTP sending for
task.dispatch,task.result,task.cancel,task.help_needed,task.stream.opened, andcard.* - JMAP WebSocket push reception with polling fallback
- attachment blob download
- recent mailbox reconciliation as a safety net
Install
python -m pip install aamp-sdk
Usage
from aamp_sdk import AampClient
client = AampClient.from_mailbox_identity(
email="agent@example.com",
smtp_password="<smtp-password>",
base_url="https://meshmail.ai",
reject_unauthorized=False,
)
def on_dispatch(task: dict) -> None:
client.send_result(
to=task["from"],
task_id=task["taskId"],
status="completed",
output="done",
in_reply_to=task["messageId"],
)
client.on("task.dispatch", on_dispatch)
client.connect()
task_id, message_id = client.send_task(
to="dispatcher@example.com",
title="Prepare a summary",
body_text="Summarize the latest rollout status.",
priority="high",
)
stream = client.create_stream(task_id=task_id, peer_email="dispatcher@example.com")
client.send_stream_opened(
to="dispatcher@example.com",
task_id=task_id,
stream_id=stream["streamId"],
in_reply_to=message_id,
)
client.append_stream_event(
stream_id=stream["streamId"],
event_type="status",
payload={"stage": "running"},
)
client.send_result(
to="dispatcher@example.com",
task_id=task_id,
status="completed",
output="done",
in_reply_to=message_id,
)
Parse AAMP headers
from aamp_sdk import parse_aamp_headers
message = parse_aamp_headers(
{
"from": "dispatcher@example.com",
"to": "agent@example.com",
"subject": "[AAMP Task] Review patch",
"messageId": "<msg-1@example.com>",
"bodyText": "Please review the patch.",
"headers": {
"X-AAMP-Intent": "task.dispatch",
"X-AAMP-TaskId": "task-123",
"X-AAMP-Priority": "high",
},
}
)
Run tests
cd packages/sdk-python
python -m unittest discover -s tests
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aamp_sdk-0.1.1.tar.gz
(23.1 kB
view details)
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
aamp_sdk-0.1.1-py3-none-any.whl
(18.6 kB
view details)
File details
Details for the file aamp_sdk-0.1.1.tar.gz.
File metadata
- Download URL: aamp_sdk-0.1.1.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01d20321bbe6cd3adfb972f578963924dc775b030a74b268a1f9241c0943bf2c
|
|
| MD5 |
6e47264ec7dbe21991d3c4259b342e9a
|
|
| BLAKE2b-256 |
2d4c0357f3dc8a730add4d5a3942ead37a92f3ce0af841474dd31a6352ec6b69
|
File details
Details for the file aamp_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aamp_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ec2e57ecfb306a9848fb608229fa8bde5d8c76d55cf222da3563b0ef3a47bcf
|
|
| MD5 |
2ea225f929dcb692cdf21587ea1bce84
|
|
| BLAKE2b-256 |
445315bcf3cf5c7ea2ee6353c0a4231b477ed4d76060f0e57c5e61880a021835
|