jaf-py 2.5.5__py3-none-any.whl → 2.5.7__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.
- jaf/__init__.py +1 -1
- jaf/core/engine.py +5 -2
- jaf/core/tracing.py +1 -1
- jaf/core/types.py +1 -0
- jaf/providers/model.py +1 -0
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/METADATA +2 -2
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/RECORD +11 -11
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/WHEEL +0 -0
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/entry_points.txt +0 -0
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/licenses/LICENSE +0 -0
- {jaf_py-2.5.5.dist-info → jaf_py-2.5.7.dist-info}/top_level.txt +0 -0
jaf/__init__.py
CHANGED
|
@@ -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.
|
|
194
|
+
__version__ = "2.5.7"
|
|
195
195
|
__all__ = [
|
|
196
196
|
# Core types and functions
|
|
197
197
|
"TraceId", "RunId", "ValidationResult", "Message", "ModelConfig",
|
jaf/core/engine.py
CHANGED
|
@@ -554,9 +554,12 @@ async def _run_internal(
|
|
|
554
554
|
assistant_event_streamed = False
|
|
555
555
|
|
|
556
556
|
for retry_attempt in range(config.max_empty_response_retries + 1):
|
|
557
|
-
# Get completion from model provider
|
|
557
|
+
# Get completion from model provider
|
|
558
|
+
# Check if streaming should be used based on configuration and availability
|
|
558
559
|
get_stream = getattr(config.model_provider, "get_completion_stream", None)
|
|
559
|
-
|
|
560
|
+
use_streaming = (config.prefer_streaming != False and callable(get_stream))
|
|
561
|
+
|
|
562
|
+
if use_streaming:
|
|
560
563
|
try:
|
|
561
564
|
aggregated_text = ""
|
|
562
565
|
# Working array of partial tool calls
|
jaf/core/tracing.py
CHANGED
jaf/core/types.py
CHANGED
|
@@ -897,6 +897,7 @@ class RunConfig(Generic[Ctx]):
|
|
|
897
897
|
max_empty_response_retries: int = 3 # Maximum retries when LLM returns empty response
|
|
898
898
|
empty_response_retry_delay: float = 1.0 # Initial delay in seconds before retrying empty response (uses exponential backoff)
|
|
899
899
|
log_empty_responses: bool = True # Whether to log diagnostic info for empty responses
|
|
900
|
+
prefer_streaming: Optional[bool] = None # Whether to prefer streaming responses. None (default) = use streaming if available, True = prefer streaming, False = disable streaming
|
|
900
901
|
|
|
901
902
|
|
|
902
903
|
# Regeneration types for conversation management
|
jaf/providers/model.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jaf-py
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.7
|
|
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
|
<!--  -->
|
|
84
84
|
|
|
85
|
-
[](https://github.com/xynehq/jaf-py)
|
|
86
86
|
[](https://www.python.org/)
|
|
87
87
|
[](https://xynehq.github.io/jaf-py/)
|
|
88
88
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
jaf/__init__.py,sha256=
|
|
1
|
+
jaf/__init__.py,sha256=ZwZkJFpYcvCXUPt5JwqrCZrE44rd_OkD7VuZNzCWHiI,8260
|
|
2
2
|
jaf/cli.py,sha256=Af4di_NZ7rZ4wFl0R4EZh611NgJ--TL03vNyZ2M1_FY,8477
|
|
3
3
|
jaf/exceptions.py,sha256=nl8JY355u7oTXB3PmC_LhnUaL8fzk2K4EaWM4fVpMPE,9196
|
|
4
4
|
jaf/a2a/__init__.py,sha256=p4YVthZH0ow1ZECqWTQ0aQl8JWySYZb25jlzZJ09na4,7662
|
|
@@ -42,7 +42,7 @@ jaf/core/__init__.py,sha256=1VHV2-a1oJXIWcg8n5G5g2cmjw2QXv7OezncNB59KLw,1988
|
|
|
42
42
|
jaf/core/agent_tool.py,sha256=tfLNaTIcOZ0dR9GBP1AHLPkLExm_dLbURnVIN4R84FQ,11806
|
|
43
43
|
jaf/core/analytics.py,sha256=zFHIWqWal0bbEFCmJDc4DKeM0Ja7b_D19PqVaBI12pA,23338
|
|
44
44
|
jaf/core/composition.py,sha256=IVxRO1Q9nK7JRH32qQ4p8WMIUu66BhqPNrlTNMGFVwE,26317
|
|
45
|
-
jaf/core/engine.py,sha256=
|
|
45
|
+
jaf/core/engine.py,sha256=FUX3rSY0PLzsERRmVYLtEtMaEkTIkm4TMZaeg3fmnt8,61140
|
|
46
46
|
jaf/core/errors.py,sha256=5fwTNhkojKRQ4wZj3lZlgDnAsrYyjYOwXJkIr5EGNUc,5539
|
|
47
47
|
jaf/core/guardrails.py,sha256=nv7pQuCx7-9DDZrecWO1DsDqFoujL81FBDrafOsXgcI,26179
|
|
48
48
|
jaf/core/handoff.py,sha256=ttjOQ6CSl34J4T_1ejdmq78gZ-ve07_IQE_DAbz2bmo,6002
|
|
@@ -55,8 +55,8 @@ jaf/core/state.py,sha256=oNCVXPWLkqnBQObdQX10TcmZ0eOF3wKG6DtL3kF6ohw,9649
|
|
|
55
55
|
jaf/core/streaming.py,sha256=h_lYHQA9ee_D5QsDO9-Vhevgi7rFXPslPzd9605AJGo,17034
|
|
56
56
|
jaf/core/tool_results.py,sha256=-bTOqOX02lMyslp5Z4Dmuhx0cLd5o7kgR88qK2HO_sw,11323
|
|
57
57
|
jaf/core/tools.py,sha256=84N9A7QQ3xxcOs2eUUot3nmCnt5i7iZT9VwkuzuFBxQ,16274
|
|
58
|
-
jaf/core/tracing.py,sha256=
|
|
59
|
-
jaf/core/types.py,sha256=
|
|
58
|
+
jaf/core/tracing.py,sha256=3FcJ1vr5Nm-dAhQCpVrT_VR_e-gQG74PuuhNAcfzQhU,53367
|
|
59
|
+
jaf/core/types.py,sha256=RLfFS5TpJiog5-mAVMH_7oM7ZEJqGsZBbrOQiUpGUM4,33042
|
|
60
60
|
jaf/core/workflows.py,sha256=Ul-82gzjIXtkhnSMSPv-8igikjkMtW1EBo9yrfodtvI,26294
|
|
61
61
|
jaf/memory/__init__.py,sha256=-L98xlvihurGAzF0DnXtkueDVvO_wV2XxxEwAWdAj50,1400
|
|
62
62
|
jaf/memory/approval_storage.py,sha256=HHZ_b57kIthdR53QE5XNSII9xy1Cg-1cFUCSAZ8A4Rk,11083
|
|
@@ -74,7 +74,7 @@ jaf/policies/handoff.py,sha256=KJYYuL9T6v6DECRhnsS2Je6q4Aj9_zC5d_KBnvEnZNE,8318
|
|
|
74
74
|
jaf/policies/validation.py,sha256=wn-7ynH10E5nk-_r1_kHIYHrBGmLX0EFr-FUTHrsxvc,10903
|
|
75
75
|
jaf/providers/__init__.py,sha256=lIbl1JvGrDhI9CzEk79N8yJNhf7ww_aWD-F40MnG3vY,2174
|
|
76
76
|
jaf/providers/mcp.py,sha256=WxcC8gUFpDBBYyhorMcc1jHq3xMDMBtnwyRPthfL0S0,13074
|
|
77
|
-
jaf/providers/model.py,sha256=
|
|
77
|
+
jaf/providers/model.py,sha256=477Ly6D9OaZsUGsAoJtpSvdY_rLZ07ZjhlhapRzSxTI,39368
|
|
78
78
|
jaf/server/__init__.py,sha256=fMPnLZBRm6t3yQrr7-PnoHAQ8qj9o6Z1AJLM1M6bIS0,392
|
|
79
79
|
jaf/server/main.py,sha256=CTb0ywbPIq9ELfay5MKChVR7BpIQOoEbPjPfpzo2aBQ,2152
|
|
80
80
|
jaf/server/server.py,sha256=cbdhVTPoWa7rVIX3DDLoXjppeGTKQWNFj3NA1jrZN88,46830
|
|
@@ -88,9 +88,9 @@ jaf/visualization/functional_core.py,sha256=zedMDZbvjuOugWwnh6SJ2stvRNQX1Hlkb9Ab
|
|
|
88
88
|
jaf/visualization/graphviz.py,sha256=WTOM6UP72-lVKwI4_SAr5-GCC3ouckxHv88ypCDQWJ0,12056
|
|
89
89
|
jaf/visualization/imperative_shell.py,sha256=GpMrAlMnLo2IQgyB2nardCz09vMvAzaYI46MyrvJ0i4,2593
|
|
90
90
|
jaf/visualization/types.py,sha256=QQcbVeQJLuAOXk8ynd08DXIS-PVCnv3R-XVE9iAcglw,1389
|
|
91
|
-
jaf_py-2.5.
|
|
92
|
-
jaf_py-2.5.
|
|
93
|
-
jaf_py-2.5.
|
|
94
|
-
jaf_py-2.5.
|
|
95
|
-
jaf_py-2.5.
|
|
96
|
-
jaf_py-2.5.
|
|
91
|
+
jaf_py-2.5.7.dist-info/licenses/LICENSE,sha256=LXUQBJxdyr-7C4bk9cQBwvsF_xwA-UVstDTKabpcjlI,1063
|
|
92
|
+
jaf_py-2.5.7.dist-info/METADATA,sha256=Imc7tiZbuvXTqZaDANIAMhDmzWfaWKK0kJzu0C3La4k,27743
|
|
93
|
+
jaf_py-2.5.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
94
|
+
jaf_py-2.5.7.dist-info/entry_points.txt,sha256=OtIJeNJpb24kgGrqRx9szGgDx1vL9ayq8uHErmu7U5w,41
|
|
95
|
+
jaf_py-2.5.7.dist-info/top_level.txt,sha256=Xu1RZbGaM4_yQX7bpalo881hg7N_dybaOW282F15ruE,4
|
|
96
|
+
jaf_py-2.5.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|