Skip to main content

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, and card.*
  • 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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aamp_sdk-0.1.1-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

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

Hashes for aamp_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 01d20321bbe6cd3adfb972f578963924dc775b030a74b268a1f9241c0943bf2c
MD5 6e47264ec7dbe21991d3c4259b342e9a
BLAKE2b-256 2d4c0357f3dc8a730add4d5a3942ead37a92f3ce0af841474dd31a6352ec6b69

See more details on using hashes here.

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

Hashes for aamp_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ec2e57ecfb306a9848fb608229fa8bde5d8c76d55cf222da3563b0ef3a47bcf
MD5 2ea225f929dcb692cdf21587ea1bce84
BLAKE2b-256 445315bcf3cf5c7ea2ee6353c0a4231b477ed4d76060f0e57c5e61880a021835

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page