jaf-py 2.5.13__py3-none-any.whl → 2.6.0__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 CHANGED
@@ -201,7 +201,7 @@ def generate_run_id() -> RunId:
201
201
  return create_run_id(str(uuid.uuid4()))
202
202
 
203
203
 
204
- __version__ = "2.5.13"
204
+ __version__ = "2.6.0"
205
205
  __all__ = [
206
206
  # Core types and functions
207
207
  "TraceId",
jaf/core/tools.py CHANGED
@@ -224,38 +224,18 @@ def create_async_function_tool_legacy(
224
224
 
225
225
 
226
226
  def _extract_docstring_info(func):
227
- """Extract description and parameter info from function docstring."""
227
+ """Extract description from function docstring.
228
+
229
+ Returns the entire docstring as the description since parameters are
230
+ extracted from the function signature, not the docstring.
231
+ """
228
232
  doc = inspect.getdoc(func)
229
233
  if not doc:
230
234
  return func.__name__.replace("_", " ").title(), {}
231
235
 
232
- lines = doc.strip().split("\n")
233
- if not lines:
234
- return func.__name__.replace("_", " ").title(), {}
235
-
236
- # First non-empty line is the description
237
- description = lines[0].strip()
238
-
239
- # Look for Args section to extract parameter descriptions
240
- param_descriptions = {}
241
- in_args_section = False
242
-
243
- for line in lines[1:]:
244
- line = line.strip()
245
- if line.lower().startswith("args:"):
246
- in_args_section = True
247
- continue
248
- elif line.lower().startswith(
249
- ("returns:", "return:", "raises:", "raise:", "examples:", "example:")
250
- ):
251
- in_args_section = False
252
- continue
253
- elif in_args_section and line and ":" in line:
254
- # Parse parameter description like "location: The location to fetch the weather for."
255
- param_name, param_desc = line.split(":", 1)
256
- param_descriptions[param_name.strip()] = param_desc.strip()
257
-
258
- return description, param_descriptions
236
+ # Return the entire docstring as description
237
+ # param_descriptions is kept for backward compatibility but is not used
238
+ return doc.strip(), {}
259
239
 
260
240
 
261
241
  def _create_parameter_schema_from_signature(func):
jaf/core/tracing.py CHANGED
@@ -467,7 +467,7 @@ class LangfuseTraceCollector:
467
467
  public_key=public_key,
468
468
  secret_key=secret_key,
469
469
  host=host,
470
- release="jaf-py-v2.5.13",
470
+ release="jaf-py-v2.6.0",
471
471
  httpx_client=client,
472
472
  )
473
473
  self._httpx_client = client
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaf-py
3
- Version: 2.5.13
3
+ Version: 2.6.0
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.13-blue.svg)](https://github.com/xynehq/jaf-py)
85
+ [![Version](https://img.shields.io/badge/version-2.6.0-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
 
@@ -1,4 +1,4 @@
1
- jaf/__init__.py,sha256=O4KeBTYc6q85QK9XWllFHmMRdIdnvToftYSR5L8Mljk,8653
1
+ jaf/__init__.py,sha256=x18d5MnT8t9HFbWVrUr9gL2c35eugxvx50kGNFGcU_Q,8652
2
2
  jaf/cli.py,sha256=EDMMA5uX0e3TUIedLdyP3p4Qy-aXADvpht3VgJPJagU,8299
3
3
  jaf/exceptions.py,sha256=FdLIw7bdCNtBYfqRyJBkRT4Z1vWuvkzrMqFiMAzjL8Y,9158
4
4
  jaf/a2a/__init__.py,sha256=r4W-WHZNjoxR8EQ0x41_rY3fl12OH5qcSn0KycXaKKU,7752
@@ -55,8 +55,8 @@ jaf/core/regeneration.py,sha256=TUoBs4xZtFt3xBGA0N9cMsprtRL9BdmJeX5OnyLyGiE,1916
55
55
  jaf/core/state.py,sha256=fdWDc2DQ-o_g_8E4ibg2QM0Vad_XUique3a5iYBwGZo,9516
56
56
  jaf/core/streaming.py,sha256=5ntOtJrZVCHuGsygquyCLG2J5yuSxE6DN5OM-BrQiGw,16818
57
57
  jaf/core/tool_results.py,sha256=L9U3JDQAjAH5YR7iMpSxfVky2Nxo6FYQs4WE05RATaQ,11283
58
- jaf/core/tools.py,sha256=qsnC1Deo1VXpheUuRox26PrrfUoOJ-ZvxkiXzko5lVQ,15856
59
- jaf/core/tracing.py,sha256=GL-BXEZKDRHqDHICSPWbTPoRIl014DEsSfp-LvCUnNw,55604
58
+ jaf/core/tools.py,sha256=rHxzAfGVGpYk3YJKmrq3AQLW0oE3ACkiJBOwle2bLdc,15146
59
+ jaf/core/tracing.py,sha256=oXnaOjTnOC_zKuptL3t74bD7v0hn9UiKTyFmMXwMTXc,55603
60
60
  jaf/core/types.py,sha256=1QolTM3IYnQArbYAZkCIfj868j9vyEZTThqw37q7EyU,35395
61
61
  jaf/core/workflows.py,sha256=0825AoD1QwEiGAs5IRlWHmaKrjurx6xF7oDJR6POBsg,25651
62
62
  jaf/memory/__init__.py,sha256=YfANOg5vUFSPVG7gpBE4_lYkV5X3_U6Yj9v1_QexfN0,1396
@@ -89,9 +89,9 @@ jaf/visualization/functional_core.py,sha256=0Xs2R8ELADKNIgokcbjuxmWwxEyCH1yXIEdG
89
89
  jaf/visualization/graphviz.py,sha256=EwWVIRv8Z7gTiO5Spvcm-z_UUQ1oWNPRgdE33ZzFwx8,11569
90
90
  jaf/visualization/imperative_shell.py,sha256=N5lWzOLMIU_iCoy3n5WCg49eec8VxV8f7JIG6_wNtVw,2506
91
91
  jaf/visualization/types.py,sha256=90G8oClsFa_APqTuMrTW6KjD0oG9I4kVur773dXNW0E,1393
92
- jaf_py-2.5.13.dist-info/licenses/LICENSE,sha256=LXUQBJxdyr-7C4bk9cQBwvsF_xwA-UVstDTKabpcjlI,1063
93
- jaf_py-2.5.13.dist-info/METADATA,sha256=i8bgFJtK7JNOiadUK6w4LmBeR3L0wI4kMz1sDj-FgUY,27745
94
- jaf_py-2.5.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
95
- jaf_py-2.5.13.dist-info/entry_points.txt,sha256=OtIJeNJpb24kgGrqRx9szGgDx1vL9ayq8uHErmu7U5w,41
96
- jaf_py-2.5.13.dist-info/top_level.txt,sha256=Xu1RZbGaM4_yQX7bpalo881hg7N_dybaOW282F15ruE,4
97
- jaf_py-2.5.13.dist-info/RECORD,,
92
+ jaf_py-2.6.0.dist-info/licenses/LICENSE,sha256=LXUQBJxdyr-7C4bk9cQBwvsF_xwA-UVstDTKabpcjlI,1063
93
+ jaf_py-2.6.0.dist-info/METADATA,sha256=jHV0X-xKL9RpV0pU0ujHYsj_a7F6Kj-EkDqqxZrX7ac,27743
94
+ jaf_py-2.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
95
+ jaf_py-2.6.0.dist-info/entry_points.txt,sha256=OtIJeNJpb24kgGrqRx9szGgDx1vL9ayq8uHErmu7U5w,41
96
+ jaf_py-2.6.0.dist-info/top_level.txt,sha256=Xu1RZbGaM4_yQX7bpalo881hg7N_dybaOW282F15ruE,4
97
+ jaf_py-2.6.0.dist-info/RECORD,,