proxilion 0.0.1__py3-none-any.whl
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.
- proxilion/__init__.py +136 -0
- proxilion/audit/__init__.py +133 -0
- proxilion/audit/base_exporters.py +527 -0
- proxilion/audit/compliance/__init__.py +130 -0
- proxilion/audit/compliance/base.py +457 -0
- proxilion/audit/compliance/eu_ai_act.py +603 -0
- proxilion/audit/compliance/iso27001.py +544 -0
- proxilion/audit/compliance/soc2.py +491 -0
- proxilion/audit/events.py +493 -0
- proxilion/audit/explainability.py +1173 -0
- proxilion/audit/exporters/__init__.py +58 -0
- proxilion/audit/exporters/aws_s3.py +636 -0
- proxilion/audit/exporters/azure_storage.py +608 -0
- proxilion/audit/exporters/cloud_base.py +468 -0
- proxilion/audit/exporters/gcp_storage.py +570 -0
- proxilion/audit/exporters/multi_exporter.py +498 -0
- proxilion/audit/hash_chain.py +652 -0
- proxilion/audit/logger.py +543 -0
- proxilion/caching/__init__.py +49 -0
- proxilion/caching/tool_cache.py +633 -0
- proxilion/context/__init__.py +73 -0
- proxilion/context/context_window.py +556 -0
- proxilion/context/message_history.py +505 -0
- proxilion/context/session.py +735 -0
- proxilion/contrib/__init__.py +51 -0
- proxilion/contrib/anthropic.py +609 -0
- proxilion/contrib/google.py +1012 -0
- proxilion/contrib/langchain.py +641 -0
- proxilion/contrib/mcp.py +893 -0
- proxilion/contrib/openai.py +646 -0
- proxilion/core.py +3058 -0
- proxilion/decorators.py +966 -0
- proxilion/engines/__init__.py +287 -0
- proxilion/engines/base.py +266 -0
- proxilion/engines/casbin_engine.py +412 -0
- proxilion/engines/opa_engine.py +493 -0
- proxilion/engines/simple.py +437 -0
- proxilion/exceptions.py +887 -0
- proxilion/guards/__init__.py +54 -0
- proxilion/guards/input_guard.py +522 -0
- proxilion/guards/output_guard.py +634 -0
- proxilion/observability/__init__.py +198 -0
- proxilion/observability/cost_tracker.py +866 -0
- proxilion/observability/hooks.py +683 -0
- proxilion/observability/metrics.py +798 -0
- proxilion/observability/session_cost_tracker.py +1063 -0
- proxilion/policies/__init__.py +67 -0
- proxilion/policies/base.py +304 -0
- proxilion/policies/builtin.py +486 -0
- proxilion/policies/registry.py +376 -0
- proxilion/providers/__init__.py +201 -0
- proxilion/providers/adapter.py +468 -0
- proxilion/providers/anthropic_adapter.py +330 -0
- proxilion/providers/gemini_adapter.py +391 -0
- proxilion/providers/openai_adapter.py +294 -0
- proxilion/py.typed +0 -0
- proxilion/resilience/__init__.py +81 -0
- proxilion/resilience/degradation.py +615 -0
- proxilion/resilience/fallback.py +555 -0
- proxilion/resilience/retry.py +554 -0
- proxilion/scheduling/__init__.py +57 -0
- proxilion/scheduling/priority_queue.py +419 -0
- proxilion/scheduling/scheduler.py +459 -0
- proxilion/security/__init__.py +244 -0
- proxilion/security/agent_trust.py +968 -0
- proxilion/security/behavioral_drift.py +794 -0
- proxilion/security/cascade_protection.py +869 -0
- proxilion/security/circuit_breaker.py +428 -0
- proxilion/security/cost_limiter.py +690 -0
- proxilion/security/idor_protection.py +460 -0
- proxilion/security/intent_capsule.py +849 -0
- proxilion/security/intent_validator.py +495 -0
- proxilion/security/memory_integrity.py +767 -0
- proxilion/security/rate_limiter.py +509 -0
- proxilion/security/scope_enforcer.py +680 -0
- proxilion/security/sequence_validator.py +636 -0
- proxilion/security/trust_boundaries.py +784 -0
- proxilion/streaming/__init__.py +70 -0
- proxilion/streaming/detector.py +761 -0
- proxilion/streaming/transformer.py +674 -0
- proxilion/timeouts/__init__.py +55 -0
- proxilion/timeouts/decorators.py +477 -0
- proxilion/timeouts/manager.py +545 -0
- proxilion/tools/__init__.py +69 -0
- proxilion/tools/decorators.py +493 -0
- proxilion/tools/registry.py +732 -0
- proxilion/types.py +339 -0
- proxilion/validation/__init__.py +93 -0
- proxilion/validation/pydantic_schema.py +351 -0
- proxilion/validation/schema.py +651 -0
- proxilion-0.0.1.dist-info/METADATA +872 -0
- proxilion-0.0.1.dist-info/RECORD +94 -0
- proxilion-0.0.1.dist-info/WHEEL +4 -0
- proxilion-0.0.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Observability components for Proxilion.
|
|
3
|
+
|
|
4
|
+
This module provides visibility into agent operations:
|
|
5
|
+
- Token usage and cost tracking
|
|
6
|
+
- Budget enforcement and cost-based rate limiting
|
|
7
|
+
- Usage analytics and summaries
|
|
8
|
+
- Metrics and observability hooks
|
|
9
|
+
|
|
10
|
+
Cost Tracking Example:
|
|
11
|
+
>>> from proxilion.observability import CostTracker, BudgetPolicy
|
|
12
|
+
>>>
|
|
13
|
+
>>> # Create cost tracker with budget policy
|
|
14
|
+
>>> tracker = CostTracker(
|
|
15
|
+
... budget_policy=BudgetPolicy(
|
|
16
|
+
... max_cost_per_request=1.00,
|
|
17
|
+
... max_cost_per_user_per_day=50.00,
|
|
18
|
+
... )
|
|
19
|
+
... )
|
|
20
|
+
>>>
|
|
21
|
+
>>> # Record usage
|
|
22
|
+
>>> record = tracker.record_usage(
|
|
23
|
+
... model="claude-sonnet-4-20250514",
|
|
24
|
+
... input_tokens=1000,
|
|
25
|
+
... output_tokens=500,
|
|
26
|
+
... user_id="user_123",
|
|
27
|
+
... )
|
|
28
|
+
>>> print(f"Cost: ${record.cost_usd:.4f}")
|
|
29
|
+
|
|
30
|
+
Metrics Example:
|
|
31
|
+
>>> from proxilion.observability import (
|
|
32
|
+
... ObservabilityHooks,
|
|
33
|
+
... InMemoryMetricHook,
|
|
34
|
+
... emit_counter,
|
|
35
|
+
... emit_timing,
|
|
36
|
+
... )
|
|
37
|
+
>>>
|
|
38
|
+
>>> # Set up metrics hook
|
|
39
|
+
>>> hooks = ObservabilityHooks.get_instance()
|
|
40
|
+
>>> memory_hook = InMemoryMetricHook()
|
|
41
|
+
>>> hooks.add_metric_hook(memory_hook)
|
|
42
|
+
>>>
|
|
43
|
+
>>> # Emit metrics
|
|
44
|
+
>>> emit_counter("proxilion.auth.requests", tags={"user": "alice"})
|
|
45
|
+
>>> emit_timing("proxilion.auth.latency_ms", 45.2, tags={"tool": "search"})
|
|
46
|
+
>>>
|
|
47
|
+
>>> # Check recorded metrics
|
|
48
|
+
>>> memory_hook.get_counter("proxilion.auth.requests", {"user": "alice"})
|
|
49
|
+
1.0
|
|
50
|
+
|
|
51
|
+
Standard Metrics:
|
|
52
|
+
Proxilion emits the following standard metrics:
|
|
53
|
+
|
|
54
|
+
Authorization:
|
|
55
|
+
- proxilion.auth.requests: Total authorization requests
|
|
56
|
+
- proxilion.auth.allowed: Allowed requests
|
|
57
|
+
- proxilion.auth.denied: Denied requests
|
|
58
|
+
- proxilion.auth.latency_ms: Authorization check latency
|
|
59
|
+
|
|
60
|
+
Rate Limiting:
|
|
61
|
+
- proxilion.rate_limit.requests: Total rate limit checks
|
|
62
|
+
- proxilion.rate_limit.exceeded: Rate limit exceeded events
|
|
63
|
+
|
|
64
|
+
Tool Execution:
|
|
65
|
+
- proxilion.tool.calls: Total tool calls
|
|
66
|
+
- proxilion.tool.latency_ms: Tool execution latency
|
|
67
|
+
- proxilion.tool.errors: Tool execution errors
|
|
68
|
+
|
|
69
|
+
Cost:
|
|
70
|
+
- proxilion.cost.usd: Total cost in USD
|
|
71
|
+
- proxilion.tokens.input: Input tokens processed
|
|
72
|
+
- proxilion.tokens.output: Output tokens generated
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
from proxilion.observability.cost_tracker import (
|
|
76
|
+
DEFAULT_PRICING,
|
|
77
|
+
BudgetPolicy,
|
|
78
|
+
CostSummary,
|
|
79
|
+
CostTracker,
|
|
80
|
+
ModelPricing,
|
|
81
|
+
UsageRecord,
|
|
82
|
+
create_cost_tracker,
|
|
83
|
+
)
|
|
84
|
+
from proxilion.observability.hooks import (
|
|
85
|
+
METRIC_AUTH_ALLOWED,
|
|
86
|
+
METRIC_AUTH_DENIED,
|
|
87
|
+
METRIC_AUTH_LATENCY,
|
|
88
|
+
# Standard metric names
|
|
89
|
+
METRIC_AUTH_REQUESTS,
|
|
90
|
+
METRIC_CIRCUIT_BREAKER_CLOSED,
|
|
91
|
+
METRIC_CIRCUIT_BREAKER_HALF_OPEN,
|
|
92
|
+
METRIC_CIRCUIT_BREAKER_OPEN,
|
|
93
|
+
METRIC_COST_USD,
|
|
94
|
+
METRIC_RATE_LIMIT_EXCEEDED,
|
|
95
|
+
METRIC_RATE_LIMIT_REQUESTS,
|
|
96
|
+
METRIC_TOKENS_INPUT,
|
|
97
|
+
METRIC_TOKENS_OUTPUT,
|
|
98
|
+
METRIC_TOOL_CALLS,
|
|
99
|
+
METRIC_TOOL_ERRORS,
|
|
100
|
+
METRIC_TOOL_LATENCY,
|
|
101
|
+
HistogramStats,
|
|
102
|
+
InMemoryMetricHook,
|
|
103
|
+
# Built-in hooks
|
|
104
|
+
LoggingMetricHook,
|
|
105
|
+
MetricHook,
|
|
106
|
+
# Core classes
|
|
107
|
+
MetricType,
|
|
108
|
+
ObservabilityHooks,
|
|
109
|
+
# Convenience functions
|
|
110
|
+
emit_counter,
|
|
111
|
+
emit_gauge,
|
|
112
|
+
emit_histogram,
|
|
113
|
+
emit_timing,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
# Real-time metrics and alerts
|
|
117
|
+
from proxilion.observability.metrics import (
|
|
118
|
+
Alert,
|
|
119
|
+
AlertManager,
|
|
120
|
+
AlertRule,
|
|
121
|
+
EventType,
|
|
122
|
+
MetricsCollector,
|
|
123
|
+
MetricType as SecurityMetricType,
|
|
124
|
+
PrometheusExporter,
|
|
125
|
+
SecurityEvent,
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
# Session-based cost tracking
|
|
129
|
+
from proxilion.observability.session_cost_tracker import (
|
|
130
|
+
AgentCostProfile,
|
|
131
|
+
AlertSeverity,
|
|
132
|
+
AlertType,
|
|
133
|
+
CostAlert,
|
|
134
|
+
Session,
|
|
135
|
+
SessionCostTracker,
|
|
136
|
+
SessionState,
|
|
137
|
+
SessionSummary,
|
|
138
|
+
create_session_cost_tracker,
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
__all__ = [
|
|
142
|
+
# Cost tracking
|
|
143
|
+
"BudgetPolicy",
|
|
144
|
+
"CostSummary",
|
|
145
|
+
"CostTracker",
|
|
146
|
+
"ModelPricing",
|
|
147
|
+
"UsageRecord",
|
|
148
|
+
"DEFAULT_PRICING",
|
|
149
|
+
"create_cost_tracker",
|
|
150
|
+
# Metrics - Core classes
|
|
151
|
+
"MetricType",
|
|
152
|
+
"MetricHook",
|
|
153
|
+
"ObservabilityHooks",
|
|
154
|
+
"HistogramStats",
|
|
155
|
+
# Metrics - Built-in hooks
|
|
156
|
+
"LoggingMetricHook",
|
|
157
|
+
"InMemoryMetricHook",
|
|
158
|
+
# Metrics - Convenience functions
|
|
159
|
+
"emit_counter",
|
|
160
|
+
"emit_gauge",
|
|
161
|
+
"emit_histogram",
|
|
162
|
+
"emit_timing",
|
|
163
|
+
# Metrics - Standard metric names
|
|
164
|
+
"METRIC_AUTH_REQUESTS",
|
|
165
|
+
"METRIC_AUTH_ALLOWED",
|
|
166
|
+
"METRIC_AUTH_DENIED",
|
|
167
|
+
"METRIC_AUTH_LATENCY",
|
|
168
|
+
"METRIC_RATE_LIMIT_REQUESTS",
|
|
169
|
+
"METRIC_RATE_LIMIT_EXCEEDED",
|
|
170
|
+
"METRIC_TOOL_CALLS",
|
|
171
|
+
"METRIC_TOOL_LATENCY",
|
|
172
|
+
"METRIC_TOOL_ERRORS",
|
|
173
|
+
"METRIC_COST_USD",
|
|
174
|
+
"METRIC_TOKENS_INPUT",
|
|
175
|
+
"METRIC_TOKENS_OUTPUT",
|
|
176
|
+
"METRIC_CIRCUIT_BREAKER_OPEN",
|
|
177
|
+
"METRIC_CIRCUIT_BREAKER_HALF_OPEN",
|
|
178
|
+
"METRIC_CIRCUIT_BREAKER_CLOSED",
|
|
179
|
+
# Real-time metrics and alerts
|
|
180
|
+
"MetricsCollector",
|
|
181
|
+
"AlertManager",
|
|
182
|
+
"AlertRule",
|
|
183
|
+
"PrometheusExporter",
|
|
184
|
+
"SecurityEvent",
|
|
185
|
+
"Alert",
|
|
186
|
+
"EventType",
|
|
187
|
+
"SecurityMetricType",
|
|
188
|
+
# Session cost tracking
|
|
189
|
+
"AgentCostProfile",
|
|
190
|
+
"AlertSeverity",
|
|
191
|
+
"AlertType",
|
|
192
|
+
"CostAlert",
|
|
193
|
+
"Session",
|
|
194
|
+
"SessionCostTracker",
|
|
195
|
+
"SessionState",
|
|
196
|
+
"SessionSummary",
|
|
197
|
+
"create_session_cost_tracker",
|
|
198
|
+
]
|