aaes-govern-sdk 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. aaes_govern_sdk-0.1.2/PKG-INFO +80 -0
  2. aaes_govern_sdk-0.1.2/README.md +63 -0
  3. aaes_govern_sdk-0.1.2/aaes/__init__.py +3 -0
  4. aaes_govern_sdk-0.1.2/aaes/aaes.py +2232 -0
  5. aaes_govern_sdk-0.1.2/aaes/connectors/__init__.py +14 -0
  6. aaes_govern_sdk-0.1.2/aaes/connectors/aaes_tools.py +253 -0
  7. aaes_govern_sdk-0.1.2/aaes/connectors/agent365_inventory.py +140 -0
  8. aaes_govern_sdk-0.1.2/aaes/connectors/agentcore.py +124 -0
  9. aaes_govern_sdk-0.1.2/aaes/connectors/autogen_connect.py +99 -0
  10. aaes_govern_sdk-0.1.2/aaes/connectors/crewai_connect.py +151 -0
  11. aaes_govern_sdk-0.1.2/aaes/connectors/langgraph_connect.py +102 -0
  12. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_admission.py +56 -0
  13. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_companion.py +207 -0
  14. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_connect.py +183 -0
  15. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_deployment.py +63 -0
  16. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_guard.py +76 -0
  17. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_mcp.py +79 -0
  18. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_recovery.py +218 -0
  19. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_state.py +250 -0
  20. aaes_govern_sdk-0.1.2/aaes/connectors/paperclip_transport.py +98 -0
  21. aaes_govern_sdk-0.1.2/aaes/connectors/servicenow_inventory.py +104 -0
  22. aaes_govern_sdk-0.1.2/aaes/connectors/stripe_invoice.py +240 -0
  23. aaes_govern_sdk-0.1.2/aaes/evaluation.py +82 -0
  24. aaes_govern_sdk-0.1.2/aaes/events.py +36 -0
  25. aaes_govern_sdk-0.1.2/aaes/py.typed +0 -0
  26. aaes_govern_sdk-0.1.2/aaes/workflow.py +135 -0
  27. aaes_govern_sdk-0.1.2/aaes_govern_sdk.egg-info/PKG-INFO +80 -0
  28. aaes_govern_sdk-0.1.2/aaes_govern_sdk.egg-info/SOURCES.txt +30 -0
  29. aaes_govern_sdk-0.1.2/aaes_govern_sdk.egg-info/dependency_links.txt +1 -0
  30. aaes_govern_sdk-0.1.2/aaes_govern_sdk.egg-info/top_level.txt +1 -0
  31. aaes_govern_sdk-0.1.2/pyproject.toml +34 -0
  32. aaes_govern_sdk-0.1.2/setup.cfg +4 -0
@@ -0,0 +1,80 @@
1
+ Metadata-Version: 2.4
2
+ Name: aaes-govern-sdk
3
+ Version: 0.1.2
4
+ Summary: Python SDK for AAES — the AI governance platform for the action layer: permissions, human approvals, and spending limits on routed agent actions
5
+ Author: AAES
6
+ License-Expression: LicenseRef-AAES-Proprietary
7
+ Project-URL: Homepage, https://aaes.ai/developers/sdks.html
8
+ Project-URL: Repository, https://github.com/aaes-ai/aaes
9
+ Project-URL: Issues, https://aaes.ai/contact.html
10
+ Keywords: aaes,ai-governance,agentic-ai,agent-governance,ai-agents,agent-permissions,human-approval,spending-limits,audit-trail
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/markdown
17
+
18
+ # AAES Python SDK
19
+
20
+ AAES (Autonomous Agentic Enterprise Systems) is an AI governance platform for the action layer: permissions, approvals by authorized persons, and spending limits on requests routed through it, with a sealed record of each completed decision. This package is its Python client.
21
+
22
+ Installable distribution `aaes-govern-sdk`, import `aaes`, Python 3.9+, stdlib only (`urllib`). Includes inline annotations and PEP 561 metadata. The source-file import remains supported: `aaes/aaes.py` is self-contained and can still be copied alone. The wheel also ships the LangGraph/CrewAI framework connectors as the `aaes.connectors` subpackage (`aaes_tools`, `langgraph_connect`, `crewai_connect`) — stdlib-only, with crewai/pydantic imported lazily by the caller's own environment.
23
+
24
+ ```bash
25
+ python3 -m pip install aaes-govern-sdk
26
+ ```
27
+
28
+ PyPI lists `aaes-sdk` through 0.1.1. This tree's distribution name is `aaes-govern-sdk`, and the import stays `aaes`. These examples require a running AAES daemon and a token issued by
29
+ your deployment operator. Set `AAES_ENDPOINT` and `AAES_TOKEN` first. The request
30
+ reads permitted capabilities; it does not execute an agent action.
31
+ The customer-run platform evaluation package is included only in the paid design partnership. Installing this SDK does not grant a platform software license or a running deployment.
32
+
33
+ For local development from a repository checkout:
34
+
35
+ ```bash
36
+ python3 -m pip install ./sdk/python
37
+ python3 sdk/python/test_aaes.py # plain assertions; pytest also collects it
38
+ ```
39
+
40
+ ```python
41
+ from aaes import AaesError, Client
42
+
43
+ try:
44
+ result = Client.from_env().capabilities()
45
+ print(f"{len(result.capabilities)} permitted capabilities")
46
+ except AaesError as error:
47
+ raise SystemExit(str(error))
48
+ ```
49
+
50
+ Methods: `capabilities`, `catalog`, `health`, `action`, `brokered`,
51
+ `resume`, `resume_brokered`, `present_grant`, `request_access`, `access_request`, `observe`, `refresh`,
52
+ `federate`, the bounded reads `list_task`, `task`, `list_approvals`,
53
+ `approval`, `list_entitlements`, `list_receipts`, `receipt`, the
54
+ agent-manager card reads `manager_cards` and `decide_manager_card`, the
55
+ person-only `OperatorClient.revoke_access_request`, and
56
+ `aaes.verify_hint(export_path, public_key_path)`. Every method above is
57
+ covered by this package's tests (`test_aaes.py`, `test_resume.py`, `test_read.py`,
58
+ `test_federation.py`).
59
+
60
+ The tests are a plain `python3` script (functions named `test_*` and a
61
+ `main()` runner). Use the documented `python3` command to run the suite without a test framework.
62
+
63
+ What it deliberately does not do: keyword arguments only, so `url=`,
64
+ `method=`, `headers=`, `credential=` and `token=` are `TypeError`s rather
65
+ than fields; the payload is checked against the field names the daemon refuses;
66
+ tenant and actor come from `GET /v1/capabilities`; receipts are the daemon's
67
+ bytes and are verified offline with `aaesctl verify`; a mutating call is
68
+ retried only on opt-in, only after a 503, and only under the same effect key.
69
+
70
+ Public documentation: [SDK guide](https://aaes.ai/developers/sdks.html) and [operation/scope table](https://aaes.ai/developers/sdk-contract.html). Repository recipients can also use [docs/guides/INTEGRATION.md](../../docs/guides/INTEGRATION.md).
71
+
72
+ A 503 response does not prove that the provider performed no action. Repeat only the identical request with its original effect key; never change the key to force a retry. The daemon retains the reservation and dispatch claim for uncertain outcomes and may answer the repeat with 409. It permits another dispatch only after proving that the previous attempt was never dispatched.
73
+
74
+ ## Published package and expanded contract
75
+
76
+ See [SDK release policy](../RELEASE.md) and [complete operation/scope table](../CONTRACT.md). Versions 0.1.0 and 0.1.1 were published on PyPI as `aaes-sdk` (import `aaes`), from tags `sdk/python/v0.1.0` and `sdk/python/v0.1.1`. This tree's distribution name is `aaes-govern-sdk`. Check the registry, not this file, for the version currently published.
77
+
78
+ Endpoint transport: bearer credentials require HTTPS. HTTP is accepted only
79
+ for explicit loopback addresses (`localhost`, `127.0.0.0/8`, or `::1`); DNS
80
+ resolution is never used to authorize plaintext transport.
@@ -0,0 +1,63 @@
1
+ # AAES Python SDK
2
+
3
+ AAES (Autonomous Agentic Enterprise Systems) is an AI governance platform for the action layer: permissions, approvals by authorized persons, and spending limits on requests routed through it, with a sealed record of each completed decision. This package is its Python client.
4
+
5
+ Installable distribution `aaes-govern-sdk`, import `aaes`, Python 3.9+, stdlib only (`urllib`). Includes inline annotations and PEP 561 metadata. The source-file import remains supported: `aaes/aaes.py` is self-contained and can still be copied alone. The wheel also ships the LangGraph/CrewAI framework connectors as the `aaes.connectors` subpackage (`aaes_tools`, `langgraph_connect`, `crewai_connect`) — stdlib-only, with crewai/pydantic imported lazily by the caller's own environment.
6
+
7
+ ```bash
8
+ python3 -m pip install aaes-govern-sdk
9
+ ```
10
+
11
+ PyPI lists `aaes-sdk` through 0.1.1. This tree's distribution name is `aaes-govern-sdk`, and the import stays `aaes`. These examples require a running AAES daemon and a token issued by
12
+ your deployment operator. Set `AAES_ENDPOINT` and `AAES_TOKEN` first. The request
13
+ reads permitted capabilities; it does not execute an agent action.
14
+ The customer-run platform evaluation package is included only in the paid design partnership. Installing this SDK does not grant a platform software license or a running deployment.
15
+
16
+ For local development from a repository checkout:
17
+
18
+ ```bash
19
+ python3 -m pip install ./sdk/python
20
+ python3 sdk/python/test_aaes.py # plain assertions; pytest also collects it
21
+ ```
22
+
23
+ ```python
24
+ from aaes import AaesError, Client
25
+
26
+ try:
27
+ result = Client.from_env().capabilities()
28
+ print(f"{len(result.capabilities)} permitted capabilities")
29
+ except AaesError as error:
30
+ raise SystemExit(str(error))
31
+ ```
32
+
33
+ Methods: `capabilities`, `catalog`, `health`, `action`, `brokered`,
34
+ `resume`, `resume_brokered`, `present_grant`, `request_access`, `access_request`, `observe`, `refresh`,
35
+ `federate`, the bounded reads `list_task`, `task`, `list_approvals`,
36
+ `approval`, `list_entitlements`, `list_receipts`, `receipt`, the
37
+ agent-manager card reads `manager_cards` and `decide_manager_card`, the
38
+ person-only `OperatorClient.revoke_access_request`, and
39
+ `aaes.verify_hint(export_path, public_key_path)`. Every method above is
40
+ covered by this package's tests (`test_aaes.py`, `test_resume.py`, `test_read.py`,
41
+ `test_federation.py`).
42
+
43
+ The tests are a plain `python3` script (functions named `test_*` and a
44
+ `main()` runner). Use the documented `python3` command to run the suite without a test framework.
45
+
46
+ What it deliberately does not do: keyword arguments only, so `url=`,
47
+ `method=`, `headers=`, `credential=` and `token=` are `TypeError`s rather
48
+ than fields; the payload is checked against the field names the daemon refuses;
49
+ tenant and actor come from `GET /v1/capabilities`; receipts are the daemon's
50
+ bytes and are verified offline with `aaesctl verify`; a mutating call is
51
+ retried only on opt-in, only after a 503, and only under the same effect key.
52
+
53
+ Public documentation: [SDK guide](https://aaes.ai/developers/sdks.html) and [operation/scope table](https://aaes.ai/developers/sdk-contract.html). Repository recipients can also use [docs/guides/INTEGRATION.md](../../docs/guides/INTEGRATION.md).
54
+
55
+ A 503 response does not prove that the provider performed no action. Repeat only the identical request with its original effect key; never change the key to force a retry. The daemon retains the reservation and dispatch claim for uncertain outcomes and may answer the repeat with 409. It permits another dispatch only after proving that the previous attempt was never dispatched.
56
+
57
+ ## Published package and expanded contract
58
+
59
+ See [SDK release policy](../RELEASE.md) and [complete operation/scope table](../CONTRACT.md). Versions 0.1.0 and 0.1.1 were published on PyPI as `aaes-sdk` (import `aaes`), from tags `sdk/python/v0.1.0` and `sdk/python/v0.1.1`. This tree's distribution name is `aaes-govern-sdk`. Check the registry, not this file, for the version currently published.
60
+
61
+ Endpoint transport: bearer credentials require HTTPS. HTTP is accepted only
62
+ for explicit loopback addresses (`localhost`, `127.0.0.0/8`, or `::1`); DNS
63
+ resolution is never used to authorize plaintext transport.
@@ -0,0 +1,3 @@
1
+ """AAES SDK package. Implementation is shared with the source-file distribution."""
2
+ from .aaes import * # noqa: F403
3
+ from .aaes import _MAX_RESPONSE_BYTES, _verify_string # noqa: F401 # exercised by test_aaes.py