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.
Files changed (94) hide show
  1. proxilion/__init__.py +136 -0
  2. proxilion/audit/__init__.py +133 -0
  3. proxilion/audit/base_exporters.py +527 -0
  4. proxilion/audit/compliance/__init__.py +130 -0
  5. proxilion/audit/compliance/base.py +457 -0
  6. proxilion/audit/compliance/eu_ai_act.py +603 -0
  7. proxilion/audit/compliance/iso27001.py +544 -0
  8. proxilion/audit/compliance/soc2.py +491 -0
  9. proxilion/audit/events.py +493 -0
  10. proxilion/audit/explainability.py +1173 -0
  11. proxilion/audit/exporters/__init__.py +58 -0
  12. proxilion/audit/exporters/aws_s3.py +636 -0
  13. proxilion/audit/exporters/azure_storage.py +608 -0
  14. proxilion/audit/exporters/cloud_base.py +468 -0
  15. proxilion/audit/exporters/gcp_storage.py +570 -0
  16. proxilion/audit/exporters/multi_exporter.py +498 -0
  17. proxilion/audit/hash_chain.py +652 -0
  18. proxilion/audit/logger.py +543 -0
  19. proxilion/caching/__init__.py +49 -0
  20. proxilion/caching/tool_cache.py +633 -0
  21. proxilion/context/__init__.py +73 -0
  22. proxilion/context/context_window.py +556 -0
  23. proxilion/context/message_history.py +505 -0
  24. proxilion/context/session.py +735 -0
  25. proxilion/contrib/__init__.py +51 -0
  26. proxilion/contrib/anthropic.py +609 -0
  27. proxilion/contrib/google.py +1012 -0
  28. proxilion/contrib/langchain.py +641 -0
  29. proxilion/contrib/mcp.py +893 -0
  30. proxilion/contrib/openai.py +646 -0
  31. proxilion/core.py +3058 -0
  32. proxilion/decorators.py +966 -0
  33. proxilion/engines/__init__.py +287 -0
  34. proxilion/engines/base.py +266 -0
  35. proxilion/engines/casbin_engine.py +412 -0
  36. proxilion/engines/opa_engine.py +493 -0
  37. proxilion/engines/simple.py +437 -0
  38. proxilion/exceptions.py +887 -0
  39. proxilion/guards/__init__.py +54 -0
  40. proxilion/guards/input_guard.py +522 -0
  41. proxilion/guards/output_guard.py +634 -0
  42. proxilion/observability/__init__.py +198 -0
  43. proxilion/observability/cost_tracker.py +866 -0
  44. proxilion/observability/hooks.py +683 -0
  45. proxilion/observability/metrics.py +798 -0
  46. proxilion/observability/session_cost_tracker.py +1063 -0
  47. proxilion/policies/__init__.py +67 -0
  48. proxilion/policies/base.py +304 -0
  49. proxilion/policies/builtin.py +486 -0
  50. proxilion/policies/registry.py +376 -0
  51. proxilion/providers/__init__.py +201 -0
  52. proxilion/providers/adapter.py +468 -0
  53. proxilion/providers/anthropic_adapter.py +330 -0
  54. proxilion/providers/gemini_adapter.py +391 -0
  55. proxilion/providers/openai_adapter.py +294 -0
  56. proxilion/py.typed +0 -0
  57. proxilion/resilience/__init__.py +81 -0
  58. proxilion/resilience/degradation.py +615 -0
  59. proxilion/resilience/fallback.py +555 -0
  60. proxilion/resilience/retry.py +554 -0
  61. proxilion/scheduling/__init__.py +57 -0
  62. proxilion/scheduling/priority_queue.py +419 -0
  63. proxilion/scheduling/scheduler.py +459 -0
  64. proxilion/security/__init__.py +244 -0
  65. proxilion/security/agent_trust.py +968 -0
  66. proxilion/security/behavioral_drift.py +794 -0
  67. proxilion/security/cascade_protection.py +869 -0
  68. proxilion/security/circuit_breaker.py +428 -0
  69. proxilion/security/cost_limiter.py +690 -0
  70. proxilion/security/idor_protection.py +460 -0
  71. proxilion/security/intent_capsule.py +849 -0
  72. proxilion/security/intent_validator.py +495 -0
  73. proxilion/security/memory_integrity.py +767 -0
  74. proxilion/security/rate_limiter.py +509 -0
  75. proxilion/security/scope_enforcer.py +680 -0
  76. proxilion/security/sequence_validator.py +636 -0
  77. proxilion/security/trust_boundaries.py +784 -0
  78. proxilion/streaming/__init__.py +70 -0
  79. proxilion/streaming/detector.py +761 -0
  80. proxilion/streaming/transformer.py +674 -0
  81. proxilion/timeouts/__init__.py +55 -0
  82. proxilion/timeouts/decorators.py +477 -0
  83. proxilion/timeouts/manager.py +545 -0
  84. proxilion/tools/__init__.py +69 -0
  85. proxilion/tools/decorators.py +493 -0
  86. proxilion/tools/registry.py +732 -0
  87. proxilion/types.py +339 -0
  88. proxilion/validation/__init__.py +93 -0
  89. proxilion/validation/pydantic_schema.py +351 -0
  90. proxilion/validation/schema.py +651 -0
  91. proxilion-0.0.1.dist-info/METADATA +872 -0
  92. proxilion-0.0.1.dist-info/RECORD +94 -0
  93. proxilion-0.0.1.dist-info/WHEEL +4 -0
  94. proxilion-0.0.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,70 @@
1
+ """
2
+ Streaming response handling for AI agents.
3
+
4
+ Provides utilities for handling streaming responses from LLMs,
5
+ including tool call detection in streams and incremental authorization.
6
+ Essential for real-time applications and WebSocket-based chatbots.
7
+
8
+ Features:
9
+ - Tool call detection in streaming responses
10
+ - Multi-provider support (OpenAI, Anthropic, Google)
11
+ - Incremental authorization during streaming
12
+ - Stream transformation and filtering
13
+ - Output guard integration for content filtering
14
+
15
+ Example:
16
+ >>> from proxilion.streaming import (
17
+ ... StreamingToolCallDetector,
18
+ ... StreamTransformer,
19
+ ... StreamEvent,
20
+ ... create_guarded_stream,
21
+ ... )
22
+ >>>
23
+ >>> # Detect tool calls in streaming response
24
+ >>> detector = StreamingToolCallDetector()
25
+ >>> async for chunk in llm_stream:
26
+ ... events = detector.process_chunk(chunk)
27
+ ... for event in events:
28
+ ... if event.type == StreamEvent.TOOL_CALL_END:
29
+ ... # Full tool call available, authorize it
30
+ ... tool_call = event.tool_call
31
+ ... auth.authorize(user, "execute", tool_call.name)
32
+ >>>
33
+ >>> # Filter streaming output
34
+ >>> transformer = StreamTransformer()
35
+ >>> transformer.add_filter(redact_sensitive_data)
36
+ >>> async for chunk in transformer.transform(llm_stream):
37
+ ... ws.send(chunk) # Filtered content
38
+ """
39
+
40
+ from proxilion.streaming.detector import (
41
+ DetectedToolCall,
42
+ PartialToolCall,
43
+ StreamEvent,
44
+ StreamEventType,
45
+ StreamingToolCallDetector,
46
+ )
47
+ from proxilion.streaming.transformer import (
48
+ FilteredStream,
49
+ StreamFilter,
50
+ StreamTransformer,
51
+ StreamValidator,
52
+ create_authorization_stream,
53
+ create_guarded_stream,
54
+ )
55
+
56
+ __all__ = [
57
+ # Detector classes
58
+ "StreamEvent",
59
+ "StreamEventType",
60
+ "PartialToolCall",
61
+ "StreamingToolCallDetector",
62
+ "DetectedToolCall",
63
+ # Transformer classes
64
+ "StreamTransformer",
65
+ "FilteredStream",
66
+ "StreamFilter",
67
+ "StreamValidator",
68
+ "create_guarded_stream",
69
+ "create_authorization_stream",
70
+ ]