Metadata-Version: 2.5
Name: agent-wait-aws
Version: 0.2.1
Summary: AWS announce adapters for agent-wait: SNS, SQS, EventBridge, and DynamoDB (the question as a row), plus a CDK stack for the example.
Project-URL: Homepage, https://skamalj.github.io/agent-wait/
Project-URL: Documentation, https://skamalj.github.io/agent-wait/
Project-URL: Source, https://github.com/skamalj/agent-wait
Project-URL: Issues, https://github.com/skamalj/agent-wait/issues
Author-email: Kamaljeet Singh <skamalj@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: agents,aws,dynamodb,eventbridge,human-in-the-loop,langgraph,sns,sqs
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: agent-wait<0.3,>=0.2
Requires-Dist: boto3>=1.35
Description-Content-Type: text/markdown

# agent-wait-aws

AWS announce adapters for [agent-wait](https://pypi.org/project/agent-wait/).

```bash
pip install agent-wait-aws          # pulls in agent-wait and boto3
```

```python
from agent_wait_aws import DynamoDbAnnounce, EventBridgeAnnounce, SnsAnnounce, SqsAnnounce
```

| Adapter | Where the question lands |
|---|---|
| `SnsAnnounce(topic_arn)` | A topic. Policy `tags` become message attributes, so subscription filter policies can route on them. |
| `SqsAnnounce(queue_url)` | A queue. On FIFO: `MessageGroupId = thread_id`, and `MessageDeduplicationId` is the stable dedupe key, so a republished question is swallowed. |
| `EventBridgeAnnounce(bus)` | A bus, with the transition as detail-type. Notices partial failures, which `PutEvents` reports inside an HTTP 200. |
| `DynamoDbAnnounce(table)` | A row. `created` writes it `open`, `resumed` marks it `closed`; a GSI on `status` gives an approvals UI its query with no broker involved. |

Every one is a `BaseAnnounce` subclass with a single `deliver()` method, so a failure is a
log line rather than a failed run. They are also the reference for writing your own:
`sqs.py` is twenty lines.

The package also carries a CDK stack for the example agent — a FIFO queue, a topic, one
Lambda, the checkpointer's table and an approvals table.

Full documentation: [skamalj.github.io/agent-wait](https://skamalj.github.io/agent-wait/).
