jaf-py 2.5.7__tar.gz → 2.5.8__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 (133) hide show
  1. {jaf_py-2.5.7/jaf_py.egg-info → jaf_py-2.5.8}/PKG-INFO +2 -2
  2. {jaf_py-2.5.7 → jaf_py-2.5.8}/README.md +1 -1
  3. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/__init__.py +1 -1
  4. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/agent_tool.py +2 -1
  5. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/guardrails.py +2 -1
  6. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/streaming.py +2 -1
  7. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/tracing.py +1 -1
  8. {jaf_py-2.5.7 → jaf_py-2.5.8/jaf_py.egg-info}/PKG-INFO +2 -2
  9. {jaf_py-2.5.7 → jaf_py-2.5.8}/pyproject.toml +1 -1
  10. {jaf_py-2.5.7 → jaf_py-2.5.8}/LICENSE +0 -0
  11. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/__init__.py +0 -0
  12. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/agent.py +0 -0
  13. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/agent_card.py +0 -0
  14. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/client.py +0 -0
  15. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/__init__.py +0 -0
  16. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/client_example.py +0 -0
  17. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/integration_example.py +0 -0
  18. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/rag_demo/__init__.py +0 -0
  19. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/server_demo/__init__.py +0 -0
  20. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/examples/server_example.py +0 -0
  21. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/__init__.py +0 -0
  22. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/cleanup.py +0 -0
  23. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/factory.py +0 -0
  24. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/providers/__init__.py +0 -0
  25. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/providers/composite.py +0 -0
  26. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/providers/in_memory.py +0 -0
  27. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/providers/postgres.py +0 -0
  28. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/providers/redis.py +0 -0
  29. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/serialization.py +0 -0
  30. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/__init__.py +0 -0
  31. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/run_comprehensive_tests.py +0 -0
  32. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/test_cleanup.py +0 -0
  33. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/test_serialization.py +0 -0
  34. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/test_stress_concurrency.py +0 -0
  35. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/tests/test_task_lifecycle.py +0 -0
  36. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/memory/types.py +0 -0
  37. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/protocol.py +0 -0
  38. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/server.py +0 -0
  39. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/standalone_client.py +0 -0
  40. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/__init__.py +0 -0
  41. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/run_tests.py +0 -0
  42. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/test_agent.py +0 -0
  43. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/test_client.py +0 -0
  44. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/test_integration.py +0 -0
  45. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/test_protocol.py +0 -0
  46. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/tests/test_types.py +0 -0
  47. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/a2a/types.py +0 -0
  48. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/cli.py +0 -0
  49. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/__init__.py +0 -0
  50. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/analytics.py +0 -0
  51. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/composition.py +0 -0
  52. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/engine.py +0 -0
  53. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/errors.py +0 -0
  54. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/handoff.py +0 -0
  55. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/parallel_agents.py +0 -0
  56. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/performance.py +0 -0
  57. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/proxy.py +0 -0
  58. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/proxy_helpers.py +0 -0
  59. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/regeneration.py +0 -0
  60. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/state.py +0 -0
  61. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/tool_results.py +0 -0
  62. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/tools.py +0 -0
  63. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/types.py +0 -0
  64. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/core/workflows.py +0 -0
  65. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/exceptions.py +0 -0
  66. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/__init__.py +0 -0
  67. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/approval_storage.py +0 -0
  68. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/factory.py +0 -0
  69. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/providers/__init__.py +0 -0
  70. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/providers/in_memory.py +0 -0
  71. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/providers/postgres.py +0 -0
  72. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/providers/redis.py +0 -0
  73. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/types.py +0 -0
  74. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/memory/utils.py +0 -0
  75. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/plugins/__init__.py +0 -0
  76. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/plugins/base.py +0 -0
  77. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/policies/__init__.py +0 -0
  78. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/policies/handoff.py +0 -0
  79. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/policies/validation.py +0 -0
  80. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/providers/__init__.py +0 -0
  81. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/providers/mcp.py +0 -0
  82. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/providers/model.py +0 -0
  83. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/server/__init__.py +0 -0
  84. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/server/main.py +0 -0
  85. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/server/server.py +0 -0
  86. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/server/types.py +0 -0
  87. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/utils/__init__.py +0 -0
  88. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/utils/attachments.py +0 -0
  89. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/utils/document_processor.py +0 -0
  90. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/__init__.py +0 -0
  91. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/example.py +0 -0
  92. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/functional_core.py +0 -0
  93. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/graphviz.py +0 -0
  94. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/imperative_shell.py +0 -0
  95. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf/visualization/types.py +0 -0
  96. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf_py.egg-info/SOURCES.txt +0 -0
  97. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf_py.egg-info/dependency_links.txt +0 -0
  98. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf_py.egg-info/entry_points.txt +0 -0
  99. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf_py.egg-info/requires.txt +0 -0
  100. {jaf_py-2.5.7 → jaf_py-2.5.8}/jaf_py.egg-info/top_level.txt +0 -0
  101. {jaf_py-2.5.7 → jaf_py-2.5.8}/setup.cfg +0 -0
  102. {jaf_py-2.5.7 → jaf_py-2.5.8}/setup.py +0 -0
  103. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_a2a_deep.py +0 -0
  104. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_a2a_examples.py +0 -0
  105. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_api_reference_examples.py +0 -0
  106. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_attachments.py +0 -0
  107. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_callback_system_examples.py +0 -0
  108. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_coffee_tool.py +0 -0
  109. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_conversation_id_fix.py +0 -0
  110. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_deployment_examples.py +0 -0
  111. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_docs_code_examples.py +0 -0
  112. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_engine.py +0 -0
  113. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_engine_manual.py +0 -0
  114. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_error_handling_examples.py +0 -0
  115. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_getting_started_examples.py +0 -0
  116. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_manual.py +0 -0
  117. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_math_tool.py +0 -0
  118. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_mcp_comprehensive.py +0 -0
  119. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_mcp_docs.py +0 -0
  120. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_mcp_real_functionality.py +0 -0
  121. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_mcp_transports.py +0 -0
  122. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_memory_system_examples.py +0 -0
  123. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_model_providers_examples.py +0 -0
  124. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_property_based.py +0 -0
  125. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_proxy_simple.py +0 -0
  126. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_redis_fixes.py +0 -0
  127. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_redis_memory.py +0 -0
  128. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_server_api_examples.py +0 -0
  129. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_session_continuity.py +0 -0
  130. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_streamable_http_mcp_example.py +0 -0
  131. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_timeout_functionality.py +0 -0
  132. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_tool_integration.py +0 -0
  133. {jaf_py-2.5.7 → jaf_py-2.5.8}/tests/test_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaf-py
3
- Version: 2.5.7
3
+ Version: 2.5.8
4
4
  Summary: A purely functional agent framework with immutable state and composable tools - Python implementation
5
5
  Author: JAF Contributors
6
6
  Maintainer: JAF Contributors
@@ -82,7 +82,7 @@ Dynamic: license-file
82
82
 
83
83
  <!-- ![JAF Banner](docs/cover.png) -->
84
84
 
85
- [![Version](https://img.shields.io/badge/version-2.5.7-blue.svg)](https://github.com/xynehq/jaf-py)
85
+ [![Version](https://img.shields.io/badge/version-2.5.8-blue.svg)](https://github.com/xynehq/jaf-py)
86
86
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
87
87
  [![Docs](https://img.shields.io/badge/Docs-Live-brightgreen)](https://xynehq.github.io/jaf-py/)
88
88
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  <!-- ![JAF Banner](docs/cover.png) -->
4
4
 
5
- [![Version](https://img.shields.io/badge/version-2.5.7-blue.svg)](https://github.com/xynehq/jaf-py)
5
+ [![Version](https://img.shields.io/badge/version-2.5.8-blue.svg)](https://github.com/xynehq/jaf-py)
6
6
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
7
7
  [![Docs](https://img.shields.io/badge/Docs-Live-brightgreen)](https://xynehq.github.io/jaf-py/)
8
8
 
@@ -191,7 +191,7 @@ def generate_run_id() -> RunId:
191
191
  """Generate a new run ID."""
192
192
  return create_run_id(str(uuid.uuid4()))
193
193
 
194
- __version__ = "2.5.7"
194
+ __version__ = "2.5.8"
195
195
  __all__ = [
196
196
  # Core types and functions
197
197
  "TraceId", "RunId", "ValidationResult", "Message", "ModelConfig",
@@ -178,7 +178,8 @@ def create_agent_tool(
178
178
  on_event=parent_config.on_event,
179
179
  memory=parent_config.memory if preserve_session else None,
180
180
  conversation_id=parent_config.conversation_id if preserve_session else None,
181
- default_tool_timeout=parent_config.default_tool_timeout
181
+ default_tool_timeout=parent_config.default_tool_timeout,
182
+ prefer_streaming=parent_config.prefer_streaming
182
183
  )
183
184
 
184
185
  token = _current_run_config.set(sub_config)
@@ -288,7 +288,8 @@ Return a JSON object with keys: {{"allowed": boolean, "reason": string}}. Do not
288
288
  model_override=model_to_use,
289
289
  initial_input_guardrails=None,
290
290
  final_output_guardrails=None,
291
- on_event=None
291
+ on_event=None,
292
+ prefer_streaming=config.prefer_streaming
292
293
  )
293
294
 
294
295
  # Execute with timeout
@@ -295,7 +295,8 @@ async def run_streaming(
295
295
  final_output_guardrails=config.final_output_guardrails,
296
296
  on_event=event_handler,
297
297
  memory=config.memory,
298
- conversation_id=config.conversation_id
298
+ conversation_id=config.conversation_id,
299
+ prefer_streaming=config.prefer_streaming
299
300
  )
300
301
 
301
302
  from .engine import run
@@ -443,7 +443,7 @@ class LangfuseTraceCollector:
443
443
  public_key=public_key,
444
444
  secret_key=secret_key,
445
445
  host=host,
446
- release="jaf-py-v2.5.7",
446
+ release="jaf-py-v2.5.8",
447
447
  httpx_client=client
448
448
  )
449
449
  self._httpx_client = client
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaf-py
3
- Version: 2.5.7
3
+ Version: 2.5.8
4
4
  Summary: A purely functional agent framework with immutable state and composable tools - Python implementation
5
5
  Author: JAF Contributors
6
6
  Maintainer: JAF Contributors
@@ -82,7 +82,7 @@ Dynamic: license-file
82
82
 
83
83
  <!-- ![JAF Banner](docs/cover.png) -->
84
84
 
85
- [![Version](https://img.shields.io/badge/version-2.5.7-blue.svg)](https://github.com/xynehq/jaf-py)
85
+ [![Version](https://img.shields.io/badge/version-2.5.8-blue.svg)](https://github.com/xynehq/jaf-py)
86
86
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
87
87
  [![Docs](https://img.shields.io/badge/Docs-Live-brightgreen)](https://xynehq.github.io/jaf-py/)
88
88
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jaf-py"
7
- version = "2.5.7"
7
+ version = "2.5.8"
8
8
  description = "A purely functional agent framework with immutable state and composable tools - Python implementation"
9
9
  readme = "README.md"
10
10
  license = "MIT"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes