axonflow 0.7.0__tar.gz → 1.0.0__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.
- {axonflow-0.7.0 → axonflow-1.0.0}/PKG-INFO +10 -10
- {axonflow-0.7.0 → axonflow-1.0.0}/README.md +7 -7
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/__init__.py +64 -4
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/client.py +1428 -220
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/code_governance.py +13 -1
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/policies.py +57 -34
- axonflow-1.0.0/axonflow/types.py +679 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow.egg-info/PKG-INFO +10 -10
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow.egg-info/SOURCES.txt +5 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/pyproject.toml +5 -5
- axonflow-1.0.0/tests/test_audit.py +402 -0
- axonflow-1.0.0/tests/test_auth_headers.py +321 -0
- axonflow-1.0.0/tests/test_client.py +1169 -0
- axonflow-1.0.0/tests/test_client_coverage.py +252 -0
- axonflow-1.0.0/tests/test_cost_controls.py +558 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_gateway.py +61 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_integration.py +1 -1
- axonflow-1.0.0/tests/test_interceptors_coverage.py +384 -0
- axonflow-1.0.0/tests/test_interceptors_execution.py +1064 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_policies.py +122 -58
- axonflow-1.0.0/tests/test_selfhosted_zero_config.py +363 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_types.py +4 -4
- axonflow-0.7.0/axonflow/types.py +0 -232
- axonflow-0.7.0/tests/test_auth_headers.py +0 -155
- axonflow-0.7.0/tests/test_client.py +0 -561
- axonflow-0.7.0/tests/test_selfhosted_zero_config.py +0 -265
- {axonflow-0.7.0 → axonflow-1.0.0}/LICENSE +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/exceptions.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/__init__.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/anthropic.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/base.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/bedrock.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/gemini.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/ollama.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/interceptors/openai.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/py.typed +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/utils/__init__.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/utils/cache.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/utils/logging.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow/utils/retry.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow.egg-info/dependency_links.txt +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow.egg-info/requires.txt +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/axonflow.egg-info/top_level.txt +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/setup.cfg +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/setup.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_contract.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_exceptions.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_interceptors.py +0 -0
- {axonflow-0.7.0 → axonflow-1.0.0}/tests/test_utils.py +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: axonflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: AxonFlow Python SDK - Enterprise AI Governance in 3 Lines of Code
|
|
5
5
|
Author-email: AxonFlow <dev@getaxonflow.com>
|
|
6
6
|
Maintainer-email: AxonFlow <dev@getaxonflow.com>
|
|
7
7
|
License: MIT
|
|
8
8
|
Project-URL: Homepage, https://getaxonflow.com
|
|
9
|
-
Project-URL: Documentation, https://docs.getaxonflow.com/sdk/python
|
|
9
|
+
Project-URL: Documentation, https://docs.getaxonflow.com/sdk/python-getting-started
|
|
10
10
|
Project-URL: Repository, https://github.com/getaxonflow/axonflow-sdk-python
|
|
11
11
|
Project-URL: Changelog, https://github.com/getaxonflow/axonflow-sdk-python/blob/main/CHANGELOG.md
|
|
12
12
|
Project-URL: Issues, https://github.com/getaxonflow/axonflow-sdk-python/issues
|
|
13
13
|
Keywords: ai,governance,llm,openai,anthropic,bedrock,policy,compliance,enterprise,mcp,multi-agent
|
|
14
|
-
Classifier: Development Status ::
|
|
14
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
16
16
|
Classifier: License :: OSI Approved :: MIT License
|
|
17
17
|
Classifier: Operating System :: OS Independent
|
|
@@ -89,7 +89,7 @@ from axonflow import AxonFlow
|
|
|
89
89
|
|
|
90
90
|
async def main():
|
|
91
91
|
async with AxonFlow(
|
|
92
|
-
|
|
92
|
+
endpoint="https://your-agent.axonflow.com",
|
|
93
93
|
client_id="your-client-id",
|
|
94
94
|
client_secret="your-client-secret"
|
|
95
95
|
) as client:
|
|
@@ -110,7 +110,7 @@ asyncio.run(main())
|
|
|
110
110
|
from axonflow import AxonFlow
|
|
111
111
|
|
|
112
112
|
with AxonFlow.sync(
|
|
113
|
-
|
|
113
|
+
endpoint="https://your-agent.axonflow.com",
|
|
114
114
|
client_id="your-client-id",
|
|
115
115
|
client_secret="your-client-secret"
|
|
116
116
|
) as client:
|
|
@@ -226,7 +226,7 @@ print(f"Result: {result.result}")
|
|
|
226
226
|
from axonflow import AxonFlow, Mode, RetryConfig
|
|
227
227
|
|
|
228
228
|
client = AxonFlow(
|
|
229
|
-
|
|
229
|
+
endpoint="https://your-agent.axonflow.com",
|
|
230
230
|
client_id="your-client-id",
|
|
231
231
|
client_secret="your-client-secret",
|
|
232
232
|
license_key="optional-license-key", # For enterprise features
|
|
@@ -307,10 +307,10 @@ mypy axonflow
|
|
|
307
307
|
|
|
308
308
|
## Documentation
|
|
309
309
|
|
|
310
|
-
- [
|
|
311
|
-
- [Gateway Mode Guide](https://docs.getaxonflow.com/sdk/
|
|
312
|
-
- [Examples](https://github.com/getaxonflow/axonflow/tree/main/
|
|
310
|
+
- [Getting Started](https://docs.getaxonflow.com/sdk/python-getting-started)
|
|
311
|
+
- [Gateway Mode Guide](https://docs.getaxonflow.com/sdk/gateway-mode)
|
|
312
|
+
- [Examples](https://github.com/getaxonflow/axonflow/tree/main/examples)
|
|
313
313
|
|
|
314
314
|
## License
|
|
315
315
|
|
|
316
|
-
|
|
316
|
+
MIT - See [LICENSE](LICENSE) for details.
|
|
@@ -30,7 +30,7 @@ from axonflow import AxonFlow
|
|
|
30
30
|
|
|
31
31
|
async def main():
|
|
32
32
|
async with AxonFlow(
|
|
33
|
-
|
|
33
|
+
endpoint="https://your-agent.axonflow.com",
|
|
34
34
|
client_id="your-client-id",
|
|
35
35
|
client_secret="your-client-secret"
|
|
36
36
|
) as client:
|
|
@@ -51,7 +51,7 @@ asyncio.run(main())
|
|
|
51
51
|
from axonflow import AxonFlow
|
|
52
52
|
|
|
53
53
|
with AxonFlow.sync(
|
|
54
|
-
|
|
54
|
+
endpoint="https://your-agent.axonflow.com",
|
|
55
55
|
client_id="your-client-id",
|
|
56
56
|
client_secret="your-client-secret"
|
|
57
57
|
) as client:
|
|
@@ -167,7 +167,7 @@ print(f"Result: {result.result}")
|
|
|
167
167
|
from axonflow import AxonFlow, Mode, RetryConfig
|
|
168
168
|
|
|
169
169
|
client = AxonFlow(
|
|
170
|
-
|
|
170
|
+
endpoint="https://your-agent.axonflow.com",
|
|
171
171
|
client_id="your-client-id",
|
|
172
172
|
client_secret="your-client-secret",
|
|
173
173
|
license_key="optional-license-key", # For enterprise features
|
|
@@ -248,10 +248,10 @@ mypy axonflow
|
|
|
248
248
|
|
|
249
249
|
## Documentation
|
|
250
250
|
|
|
251
|
-
- [
|
|
252
|
-
- [Gateway Mode Guide](https://docs.getaxonflow.com/sdk/
|
|
253
|
-
- [Examples](https://github.com/getaxonflow/axonflow/tree/main/
|
|
251
|
+
- [Getting Started](https://docs.getaxonflow.com/sdk/python-getting-started)
|
|
252
|
+
- [Gateway Mode Guide](https://docs.getaxonflow.com/sdk/gateway-mode)
|
|
253
|
+
- [Examples](https://github.com/getaxonflow/axonflow/tree/main/examples)
|
|
254
254
|
|
|
255
255
|
## License
|
|
256
256
|
|
|
257
|
-
|
|
257
|
+
MIT - See [LICENSE](LICENSE) for details.
|
|
@@ -9,7 +9,7 @@ Example:
|
|
|
9
9
|
>>>
|
|
10
10
|
>>> # Async usage
|
|
11
11
|
>>> async with AxonFlow(
|
|
12
|
-
...
|
|
12
|
+
... endpoint="https://your-agent.axonflow.com",
|
|
13
13
|
... client_id="your-client-id",
|
|
14
14
|
... client_secret="your-client-secret"
|
|
15
15
|
... ) as client:
|
|
@@ -18,7 +18,7 @@ Example:
|
|
|
18
18
|
>>>
|
|
19
19
|
>>> # Sync usage
|
|
20
20
|
>>> client = AxonFlow.sync(
|
|
21
|
-
...
|
|
21
|
+
... endpoint="https://your-agent.axonflow.com",
|
|
22
22
|
... client_id="your-client-id",
|
|
23
23
|
... client_secret="your-client-secret"
|
|
24
24
|
... )
|
|
@@ -61,8 +61,8 @@ from axonflow.policies import (
|
|
|
61
61
|
CreatePolicyOverrideRequest,
|
|
62
62
|
CreateStaticPolicyRequest,
|
|
63
63
|
DynamicPolicy,
|
|
64
|
+
DynamicPolicyAction,
|
|
64
65
|
DynamicPolicyCondition,
|
|
65
|
-
DynamicPolicyConfig,
|
|
66
66
|
EffectivePoliciesOptions,
|
|
67
67
|
ListDynamicPoliciesOptions,
|
|
68
68
|
ListStaticPoliciesOptions,
|
|
@@ -81,6 +81,16 @@ from axonflow.policies import (
|
|
|
81
81
|
)
|
|
82
82
|
from axonflow.types import (
|
|
83
83
|
AuditResult,
|
|
84
|
+
Budget,
|
|
85
|
+
BudgetAlert,
|
|
86
|
+
BudgetAlertsResponse,
|
|
87
|
+
BudgetCheckRequest,
|
|
88
|
+
BudgetDecision,
|
|
89
|
+
BudgetOnExceed,
|
|
90
|
+
BudgetPeriod,
|
|
91
|
+
BudgetScope,
|
|
92
|
+
BudgetsResponse,
|
|
93
|
+
BudgetStatus,
|
|
84
94
|
CacheConfig,
|
|
85
95
|
ClientRequest,
|
|
86
96
|
ClientResponse,
|
|
@@ -88,15 +98,34 @@ from axonflow.types import (
|
|
|
88
98
|
ConnectorInstallRequest,
|
|
89
99
|
ConnectorMetadata,
|
|
90
100
|
ConnectorResponse,
|
|
101
|
+
CreateBudgetRequest,
|
|
102
|
+
ExecutionDetail,
|
|
103
|
+
ExecutionExportOptions,
|
|
104
|
+
ExecutionSnapshot,
|
|
105
|
+
ExecutionSummary,
|
|
106
|
+
ListBudgetsOptions,
|
|
107
|
+
ListExecutionsOptions,
|
|
108
|
+
ListExecutionsResponse,
|
|
109
|
+
ListUsageRecordsOptions,
|
|
91
110
|
Mode,
|
|
111
|
+
ModelPricing,
|
|
92
112
|
PlanExecutionResponse,
|
|
93
113
|
PlanResponse,
|
|
94
114
|
PlanStep,
|
|
95
115
|
PolicyApprovalResult,
|
|
96
116
|
PolicyEvaluationInfo,
|
|
117
|
+
PricingInfo,
|
|
118
|
+
PricingListResponse,
|
|
97
119
|
RateLimitInfo,
|
|
98
120
|
RetryConfig,
|
|
121
|
+
TimelineEntry,
|
|
99
122
|
TokenUsage,
|
|
123
|
+
UpdateBudgetRequest,
|
|
124
|
+
UsageBreakdown,
|
|
125
|
+
UsageBreakdownItem,
|
|
126
|
+
UsageRecord,
|
|
127
|
+
UsageRecordsResponse,
|
|
128
|
+
UsageSummary,
|
|
100
129
|
)
|
|
101
130
|
|
|
102
131
|
__version__ = "0.6.0"
|
|
@@ -126,6 +155,14 @@ __all__ = [
|
|
|
126
155
|
"PolicyApprovalResult",
|
|
127
156
|
"TokenUsage",
|
|
128
157
|
"AuditResult",
|
|
158
|
+
# Execution Replay types
|
|
159
|
+
"ExecutionSummary",
|
|
160
|
+
"ExecutionSnapshot",
|
|
161
|
+
"ExecutionDetail",
|
|
162
|
+
"TimelineEntry",
|
|
163
|
+
"ListExecutionsOptions",
|
|
164
|
+
"ListExecutionsResponse",
|
|
165
|
+
"ExecutionExportOptions",
|
|
129
166
|
# Policy CRUD types
|
|
130
167
|
"PolicyCategory",
|
|
131
168
|
"PolicyTier",
|
|
@@ -136,7 +173,7 @@ __all__ = [
|
|
|
136
173
|
"DynamicPolicy",
|
|
137
174
|
"PolicyOverride",
|
|
138
175
|
"PolicyVersion",
|
|
139
|
-
"
|
|
176
|
+
"DynamicPolicyAction",
|
|
140
177
|
"DynamicPolicyCondition",
|
|
141
178
|
"TestPatternResult",
|
|
142
179
|
"TestPatternMatch",
|
|
@@ -176,4 +213,27 @@ __all__ = [
|
|
|
176
213
|
"TimeoutError",
|
|
177
214
|
"ConnectorError",
|
|
178
215
|
"PlanExecutionError",
|
|
216
|
+
# Cost Controls types
|
|
217
|
+
"BudgetScope",
|
|
218
|
+
"BudgetPeriod",
|
|
219
|
+
"BudgetOnExceed",
|
|
220
|
+
"CreateBudgetRequest",
|
|
221
|
+
"UpdateBudgetRequest",
|
|
222
|
+
"ListBudgetsOptions",
|
|
223
|
+
"Budget",
|
|
224
|
+
"BudgetsResponse",
|
|
225
|
+
"BudgetStatus",
|
|
226
|
+
"BudgetAlert",
|
|
227
|
+
"BudgetAlertsResponse",
|
|
228
|
+
"BudgetCheckRequest",
|
|
229
|
+
"BudgetDecision",
|
|
230
|
+
"UsageSummary",
|
|
231
|
+
"UsageBreakdownItem",
|
|
232
|
+
"UsageBreakdown",
|
|
233
|
+
"ListUsageRecordsOptions",
|
|
234
|
+
"UsageRecord",
|
|
235
|
+
"UsageRecordsResponse",
|
|
236
|
+
"ModelPricing",
|
|
237
|
+
"PricingInfo",
|
|
238
|
+
"PricingListResponse",
|
|
179
239
|
]
|