waldiez 0.5.9__py3-none-any.whl → 0.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.

Potentially problematic release.


This version of waldiez might be problematic. Click here for more details.

Files changed (109) hide show
  1. waldiez/_version.py +1 -1
  2. waldiez/cli.py +113 -24
  3. waldiez/exporting/agent/exporter.py +9 -6
  4. waldiez/exporting/agent/extras/captain_agent_extras.py +44 -7
  5. waldiez/exporting/agent/extras/group_manager_agent_extas.py +6 -1
  6. waldiez/exporting/agent/extras/handoffs/after_work.py +1 -0
  7. waldiez/exporting/agent/extras/handoffs/available.py +1 -0
  8. waldiez/exporting/agent/extras/handoffs/condition.py +3 -1
  9. waldiez/exporting/agent/extras/handoffs/handoff.py +1 -0
  10. waldiez/exporting/agent/extras/handoffs/target.py +1 -0
  11. waldiez/exporting/agent/termination.py +1 -0
  12. waldiez/exporting/chats/utils/common.py +25 -23
  13. waldiez/exporting/core/__init__.py +0 -2
  14. waldiez/exporting/core/constants.py +3 -1
  15. waldiez/exporting/core/context.py +13 -13
  16. waldiez/exporting/core/extras/serializer.py +12 -10
  17. waldiez/exporting/core/protocols.py +0 -141
  18. waldiez/exporting/core/result.py +5 -5
  19. waldiez/exporting/core/types.py +1 -0
  20. waldiez/exporting/core/utils/llm_config.py +2 -2
  21. waldiez/exporting/flow/execution_generator.py +1 -0
  22. waldiez/exporting/flow/merger.py +2 -2
  23. waldiez/exporting/flow/orchestrator.py +1 -0
  24. waldiez/exporting/flow/utils/common.py +3 -3
  25. waldiez/exporting/flow/utils/importing.py +1 -0
  26. waldiez/exporting/flow/utils/logging.py +7 -80
  27. waldiez/exporting/tools/exporter.py +5 -0
  28. waldiez/exporting/tools/factory.py +4 -0
  29. waldiez/exporting/tools/processor.py +5 -1
  30. waldiez/io/__init__.py +3 -1
  31. waldiez/io/_ws.py +15 -5
  32. waldiez/io/models/content/image.py +1 -0
  33. waldiez/io/models/user_input.py +4 -4
  34. waldiez/io/models/user_response.py +1 -0
  35. waldiez/io/mqtt.py +1 -1
  36. waldiez/io/structured.py +98 -45
  37. waldiez/io/utils.py +17 -11
  38. waldiez/io/ws.py +10 -12
  39. waldiez/logger.py +180 -63
  40. waldiez/models/agents/agent/agent.py +2 -1
  41. waldiez/models/agents/agent/update_system_message.py +0 -2
  42. waldiez/models/agents/doc_agent/doc_agent.py +8 -1
  43. waldiez/models/chat/chat.py +1 -0
  44. waldiez/models/chat/chat_data.py +0 -2
  45. waldiez/models/common/base.py +2 -0
  46. waldiez/models/common/dict_utils.py +169 -40
  47. waldiez/models/common/handoff.py +2 -0
  48. waldiez/models/common/method_utils.py +2 -0
  49. waldiez/models/flow/flow.py +6 -6
  50. waldiez/models/flow/info.py +5 -1
  51. waldiez/models/model/_llm.py +31 -14
  52. waldiez/models/model/model.py +4 -1
  53. waldiez/models/model/model_data.py +18 -5
  54. waldiez/models/tool/predefined/_config.py +5 -1
  55. waldiez/models/tool/predefined/_duckduckgo.py +4 -0
  56. waldiez/models/tool/predefined/_email.py +477 -0
  57. waldiez/models/tool/predefined/_google.py +4 -1
  58. waldiez/models/tool/predefined/_perplexity.py +4 -1
  59. waldiez/models/tool/predefined/_searxng.py +4 -1
  60. waldiez/models/tool/predefined/_tavily.py +4 -1
  61. waldiez/models/tool/predefined/_wikipedia.py +5 -2
  62. waldiez/models/tool/predefined/_youtube.py +4 -1
  63. waldiez/models/tool/predefined/protocol.py +3 -0
  64. waldiez/models/tool/tool.py +22 -4
  65. waldiez/models/waldiez.py +12 -0
  66. waldiez/runner.py +37 -54
  67. waldiez/running/__init__.py +6 -0
  68. waldiez/running/base_runner.py +381 -363
  69. waldiez/running/environment.py +1 -0
  70. waldiez/running/exceptions.py +9 -0
  71. waldiez/running/post_run.py +10 -4
  72. waldiez/running/pre_run.py +199 -66
  73. waldiez/running/protocol.py +21 -101
  74. waldiez/running/run_results.py +1 -1
  75. waldiez/running/standard_runner.py +83 -276
  76. waldiez/running/step_by_step/__init__.py +46 -0
  77. waldiez/running/step_by_step/breakpoints_mixin.py +512 -0
  78. waldiez/running/step_by_step/command_handler.py +151 -0
  79. waldiez/running/step_by_step/events_processor.py +199 -0
  80. waldiez/running/step_by_step/step_by_step_models.py +541 -0
  81. waldiez/running/step_by_step/step_by_step_runner.py +750 -0
  82. waldiez/running/subprocess_runner/__base__.py +279 -0
  83. waldiez/running/subprocess_runner/__init__.py +16 -0
  84. waldiez/running/subprocess_runner/_async_runner.py +362 -0
  85. waldiez/running/subprocess_runner/_sync_runner.py +456 -0
  86. waldiez/running/subprocess_runner/runner.py +570 -0
  87. waldiez/running/timeline_processor.py +1 -1
  88. waldiez/running/utils.py +492 -3
  89. waldiez/utils/version.py +2 -6
  90. waldiez/ws/__init__.py +71 -0
  91. waldiez/ws/__main__.py +15 -0
  92. waldiez/ws/_file_handler.py +199 -0
  93. waldiez/ws/_mock.py +74 -0
  94. waldiez/ws/cli.py +235 -0
  95. waldiez/ws/client_manager.py +851 -0
  96. waldiez/ws/errors.py +416 -0
  97. waldiez/ws/models.py +988 -0
  98. waldiez/ws/reloader.py +363 -0
  99. waldiez/ws/server.py +508 -0
  100. waldiez/ws/session_manager.py +393 -0
  101. waldiez/ws/session_stats.py +83 -0
  102. waldiez/ws/utils.py +410 -0
  103. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/METADATA +105 -96
  104. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/RECORD +108 -83
  105. waldiez/running/patch_io_stream.py +0 -210
  106. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/WHEEL +0 -0
  107. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/entry_points.txt +0 -0
  108. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/licenses/LICENSE +0 -0
  109. {waldiez-0.5.9.dist-info → waldiez-0.6.0.dist-info}/licenses/NOTICE.md +0 -0
waldiez/logger.py CHANGED
@@ -4,6 +4,7 @@
4
4
  """Waldiez logger."""
5
5
 
6
6
  import inspect
7
+ import logging
7
8
  import os
8
9
  import re
9
10
  import string
@@ -11,23 +12,27 @@ import threading
11
12
  import traceback
12
13
  from datetime import datetime
13
14
  from enum import IntEnum
14
- from typing import Any, Callable, Optional
15
+ from pathlib import Path
16
+ from types import TracebackType
17
+ from typing import Any, Callable, Mapping, Optional
15
18
 
16
19
  import click
17
20
 
21
+ HERE = Path(__file__).parent
22
+
18
23
 
19
24
  class LogLevel(IntEnum):
20
25
  """Log level enumeration for comparison."""
21
26
 
22
27
  DEBUG = 10
23
28
  INFO = 20
24
- SUCCESS = 30
25
- WARNING = 40
26
- ERROR = 50
27
- CRITICAL = 60
29
+ SUCCESS = 21
30
+ WARNING = 30
31
+ ERROR = 40
32
+ CRITICAL = 50
28
33
 
29
34
 
30
- class WaldiezLogger:
35
+ class WaldiezLogger(logging.Logger):
31
36
  """A colorful logger implementation using Click.
32
37
 
33
38
  Supports both .format() and %-style formatting:
@@ -51,9 +56,29 @@ class WaldiezLogger:
51
56
  "critical",
52
57
  "exception",
53
58
  }
59
+ _level_map: dict[str, LogLevel] = {
60
+ "DEBUG": LogLevel.DEBUG,
61
+ "INFO": LogLevel.INFO,
62
+ "SUCCESS": LogLevel.SUCCESS,
63
+ "WARNING": LogLevel.WARNING,
64
+ "ERROR": LogLevel.ERROR,
65
+ "CRITICAL": LogLevel.CRITICAL,
66
+ }
67
+ # Map levels to click styling functions
68
+ _style_map: dict[str, Callable[[str], str]] = {
69
+ "DEBUG": lambda msg: click.style(msg, dim=True),
70
+ "INFO": lambda msg: click.style(msg, fg="blue"),
71
+ "SUCCESS": lambda msg: click.style(msg, fg="green"),
72
+ "WARNING": lambda msg: click.style(msg, fg="yellow"),
73
+ "ERROR": lambda msg: click.style(msg, fg="red"),
74
+ "CRITICAL": lambda msg: click.style(msg, fg="red", bold=True),
75
+ "EXCEPTION": lambda msg: click.style(msg, fg="red", bold=True),
76
+ }
54
77
 
55
78
  def __new__(cls, *args: Any, **kwargs: Any) -> "WaldiezLogger":
56
79
  """Ensure only one instance of the logger is created."""
80
+ for level_name, level_value in LogLevel.__members__.items():
81
+ logging.addLevelName(level_value, level_name)
57
82
  if cls._instance is None:
58
83
  with cls._lock:
59
84
  # Double-check locking pattern
@@ -75,6 +100,9 @@ class WaldiezLogger:
75
100
  timestamp_format : str, optional
76
101
  Timestamp format string, by default "%Y-%m-%d %H:%M:%S"
77
102
  """
103
+ super().__init__(self.__class__.__name__)
104
+ for level_name, level_value in LogLevel.__members__.items():
105
+ logging.addLevelName(level_value, level_name)
78
106
  if getattr(self, "_initialized", False) is True:
79
107
  if level != self.get_level():
80
108
  self.set_level(level)
@@ -84,29 +112,16 @@ class WaldiezLogger:
84
112
  ):
85
113
  self._instance.set_timestamp_format(timestamp_format)
86
114
  return
115
+ self._initialized = True
87
116
  self._level = level.upper()
88
117
  self._timestamp_format = timestamp_format
89
-
90
- self._level_map: dict[str, LogLevel] = {
91
- "DEBUG": LogLevel.DEBUG,
92
- "INFO": LogLevel.INFO,
93
- "SUCCESS": LogLevel.SUCCESS,
94
- "WARNING": LogLevel.WARNING,
95
- "ERROR": LogLevel.ERROR,
96
- "CRITICAL": LogLevel.CRITICAL,
97
- }
98
-
99
- # Map levels to click styling functions
100
- self._style_map: dict[str, Callable[[str], str]] = {
101
- "DEBUG": lambda msg: click.style(msg, dim=True),
102
- "INFO": lambda msg: click.style(msg, fg="blue"),
103
- "SUCCESS": lambda msg: click.style(msg, fg="green"),
104
- "WARNING": lambda msg: click.style(msg, fg="yellow"),
105
- "ERROR": lambda msg: click.style(msg, fg="red"),
106
- "CRITICAL": lambda msg: click.style(msg, fg="red", bold=True),
107
- "EXCEPTION": lambda msg: click.style(msg, fg="red", bold=True),
108
- }
109
- self._initialized = True
118
+ if self.get_level() != level:
119
+ self.set_level(level)
120
+ if (
121
+ self._instance
122
+ and self._instance.get_timestamp_format() != timestamp_format
123
+ ):
124
+ self._instance.set_timestamp_format(timestamp_format)
110
125
 
111
126
  @classmethod
112
127
  def get_instance(
@@ -130,129 +145,207 @@ class WaldiezLogger:
130
145
  """
131
146
  return cls(level, timestamp_format)
132
147
 
148
+ def _get_level_name(self, level: int) -> str:
149
+ """Get the string name of the logging level.
150
+
151
+ Parameters
152
+ ----------
153
+ level : int
154
+ The logging level.
155
+
156
+ Returns
157
+ -------
158
+ str
159
+ The string name of the logging level.
160
+ """
161
+ for name, lvl in self._level_map.items():
162
+ if lvl == level:
163
+ return name
164
+ return self.get_level()
165
+
166
+ def _get_level_number(self, level: str) -> int:
167
+ """Get the numeric value of the logging level.
168
+
169
+ Parameters
170
+ ----------
171
+ level : str
172
+ The logging level.
173
+
174
+ Returns
175
+ -------
176
+ int
177
+ The numeric value of the logging level.
178
+ """
179
+ return self._level_map.get(level.upper(), LogLevel.INFO)
180
+
181
+ # pylint: disable=unused-argument
133
182
  def log(
134
- self, message: Any, *args: Any, level: str = "info", **kwargs: Any
183
+ self,
184
+ level: int,
185
+ msg: object,
186
+ *args: object,
187
+ exc_info: (
188
+ bool
189
+ | tuple[type[BaseException], BaseException, TracebackType | None]
190
+ | tuple[None, None, None]
191
+ | BaseException
192
+ | None
193
+ ) = None,
194
+ stack_info: bool = False,
195
+ stacklevel: int = 1,
196
+ extra: Mapping[str, object] | None = None,
197
+ **kwargs: object,
135
198
  ) -> None:
136
199
  """Log a message with the specified level.
137
200
 
138
201
  Parameters
139
202
  ----------
140
- message : Any
203
+ level : int
204
+ The logging level to use (e.g., logging.DEBUG, logging.INFO, etc.).
205
+ msg : object
141
206
  The message to log or message template for formatting.
142
- level : str, optional
143
- The logging level to use (e.g., "debug", "info", "success",
144
- "warning", "error", "critical"). Defaults to "info".
145
- *args : Any
146
- Arguments to format into the message using % formatting.
147
- **kwargs : Any
207
+ *args : object
208
+ Arguments to format into the message.
209
+ exc_info :
210
+ bool |
211
+ tuple[type[BaseException], BaseException, TracebackType | None] |
212
+ tuple[None, None, None] |
213
+ BaseException |
214
+ None
215
+ Exception information to include in the log.
216
+ stack_info : bool
217
+ Whether to include stack information in the log.
218
+ stacklevel : int
219
+ The stack level to use for the log.
220
+ extra : Mapping[str, object] | None
221
+ Extra context information to include in the log.
222
+ **kwargs : object
148
223
  Additional keyword arguments for formatting.
224
+
149
225
  """
150
- if self._should_log(level):
151
- formatted_message_content = self._format_args(
152
- message, *args, **kwargs
153
- )
226
+ level_str = self._get_level_name(level)
227
+ if self._should_log(level_str):
228
+ # noinspection PyArgumentList
229
+ formatted_message_content = self._format_args(msg, *args, **kwargs)
154
230
  formatted_message = self._format_message(
155
- formatted_message_content, level
231
+ formatted_message_content, level_str
156
232
  )
157
233
  click.echo(formatted_message)
158
234
 
159
- def debug(self, message: Any, *args: Any, **kwargs: Any) -> None:
235
+ def do_log(self, msg: Any, *args: Any, level: str, **kwargs: Any) -> None:
236
+ """Log a message with the specified level.
237
+
238
+ Parameters
239
+ ----------
240
+ msg : Any
241
+ The message to log or message template for formatting.
242
+ *args : Any
243
+ Arguments to format into the message.
244
+ level : str
245
+ The logging level.
246
+ **kwargs : Any
247
+ Additional keyword arguments for formatting.
248
+ """
249
+ level_int = self._get_level_number(level)
250
+ self.log(level_int, msg, *args, **kwargs)
251
+
252
+ def debug(self, msg: Any, *args: Any, **kwargs: Any) -> None:
160
253
  """Log a debug message.
161
254
 
162
255
  Parameters
163
256
  ----------
164
- message : Any
257
+ msg : Any
165
258
  The debug message to log or message template.
166
259
  *args : Any
167
260
  Arguments to format into the message.
168
261
  **kwargs : Any
169
262
  Additional keyword arguments for formatting.
170
263
  """
171
- self.log(message, *args, level="debug", **kwargs)
264
+ self.do_log(msg, *args, level="debug", **kwargs)
172
265
 
173
- def info(self, message: Any, *args: Any, **kwargs: Any) -> None:
266
+ def info(self, msg: Any, *args: Any, **kwargs: Any) -> None:
174
267
  """Log an informational message.
175
268
 
176
269
  Parameters
177
270
  ----------
178
- message : Any
271
+ msg : Any
179
272
  The informational message to log or message template.
180
273
  *args : Any
181
274
  Arguments to format into the message.
182
275
  **kwargs : Any
183
276
  Additional keyword arguments for formatting.
184
277
  """
185
- self.log(message, *args, level="info", **kwargs)
278
+ self.do_log(msg, *args, level="info", **kwargs)
186
279
 
187
- def success(self, message: Any, *args: Any, **kwargs: Any) -> None:
280
+ def success(self, msg: Any, *args: Any, **kwargs: Any) -> None:
188
281
  """Log a success message.
189
282
 
190
283
  Parameters
191
284
  ----------
192
- message : Any
285
+ msg : Any
193
286
  The success message to log or message template.
194
287
  *args : Any
195
288
  Arguments to format into the message.
196
289
  **kwargs : Any
197
290
  Additional keyword arguments for formatting.
198
291
  """
199
- self.log(message, *args, level="success", **kwargs)
292
+ self.do_log(msg, *args, level="success", **kwargs)
200
293
 
201
- def warning(self, message: Any, *args: Any, **kwargs: Any) -> None:
294
+ def warning(self, msg: Any, *args: Any, **kwargs: Any) -> None:
202
295
  """Log a warning message.
203
296
 
204
297
  Parameters
205
298
  ----------
206
- message : Any
299
+ msg : Any
207
300
  The warning message to log or message template.
208
301
  *args : Any
209
302
  Arguments to format into the message.
210
303
  **kwargs : Any
211
304
  Additional keyword arguments for formatting.
212
305
  """
213
- self.log(message, *args, level="warning", **kwargs)
306
+ self.do_log(msg, *args, level="warning", **kwargs)
214
307
 
215
- def error(self, message: Any, *args: Any, **kwargs: Any) -> None:
308
+ def error(self, msg: Any, *args: Any, **kwargs: Any) -> None:
216
309
  """Log an error message.
217
310
 
218
311
  Parameters
219
312
  ----------
220
- message : Any
313
+ msg : Any
221
314
  The error message to log or message template.
222
315
  *args : Any
223
316
  Arguments to format into the message.
224
317
  **kwargs : Any
225
318
  Additional keyword arguments for formatting.
226
319
  """
227
- self.log(message, *args, level="error", **kwargs)
320
+ self.do_log(msg, *args, level="error", **kwargs)
228
321
 
229
- def critical(self, message: Any, *args: Any, **kwargs: Any) -> None:
322
+ def critical(self, msg: Any, *args: Any, **kwargs: Any) -> None:
230
323
  """Log a critical error message.
231
324
 
232
325
  Parameters
233
326
  ----------
234
- message : Any
327
+ msg : Any
235
328
  The critical error message to log or message template.
236
329
  *args : Any
237
330
  Arguments to format into the message.
238
331
  **kwargs : Any
239
332
  Additional keyword arguments for formatting.
240
333
  """
241
- self.log(message, *args, level="critical", **kwargs)
334
+ self.do_log(msg, *args, level="critical", **kwargs)
242
335
 
243
- def exception(self, message: Any, *args: Any, **kwargs: Any) -> None:
336
+ def exception(self, msg: Any, *args: Any, **kwargs: Any) -> None:
244
337
  """Log an exception message.
245
338
 
246
339
  Parameters
247
340
  ----------
248
- message : Any
341
+ msg : Any
249
342
  The exception message to log or message template.
250
343
  *args : Any
251
344
  Arguments to format into the message.
252
345
  **kwargs : Any
253
346
  Additional keyword arguments for formatting.
254
347
  """
255
- formatted_message_content = self._format_args(message, *args, **kwargs)
348
+ formatted_message_content = self._format_args(msg, *args, **kwargs)
256
349
  formatted_message = self._format_message(
257
350
  formatted_message_content, "exception"
258
351
  )
@@ -261,6 +354,21 @@ class WaldiezLogger:
261
354
  if tb and "NoneType: None" not in tb: # pragma: no branch
262
355
  click.echo(click.style(tb, fg="red", dim=True))
263
356
 
357
+ def setLevel(self, level: int | str) -> None:
358
+ """
359
+ Set the logging level.
360
+
361
+ Parameters
362
+ ----------
363
+ level : int | str
364
+ The logging level to set
365
+ (e.g., "debug", "info", "warning", "error", "critical").
366
+ """
367
+ level_str = (
368
+ level if isinstance(level, str) else self._get_level_name(level)
369
+ )
370
+ self.set_level(level_str)
371
+
264
372
  def set_level(self, level: str) -> None:
265
373
  """Set the logging level.
266
374
 
@@ -278,6 +386,7 @@ class WaldiezLogger:
278
386
  level_upper = level.upper()
279
387
  if level_upper in self._level_map:
280
388
  self._level = level_upper
389
+ super().setLevel(self._level_map[level_upper].value)
281
390
  else:
282
391
  raise ValueError(
283
392
  f"Invalid log level: {level}. "
@@ -369,8 +478,15 @@ class WaldiezLogger:
369
478
  @staticmethod
370
479
  def _format_caller_display(filename: str, line_number: int) -> str:
371
480
  """Format the caller information for display."""
372
- basename = os.path.realpath(filename)
373
- return f"{basename}:{line_number}"
481
+ full_path = Path(filename).resolve()
482
+ try:
483
+ relative = full_path.relative_to(Path.cwd())
484
+ except ValueError: # pragma: no cover
485
+ try:
486
+ relative = full_path.relative_to(HERE.parent)
487
+ except ValueError: # pragma: no cover
488
+ relative = full_path
489
+ return f"{relative}:{line_number}"
374
490
 
375
491
  def _get_timestamp(self) -> str:
376
492
  """Get the current timestamp in a human-readable format."""
@@ -400,6 +516,7 @@ class WaldiezLogger:
400
516
  ) -> tuple[bool, Any]:
401
517
  """Attempt .format() formatting, returning (success, result)."""
402
518
  try:
519
+ # noinspection StrFormat
403
520
  return True, msg_str.format(*args, **kwargs)
404
521
  except Exception as e:
405
522
  return False, e
@@ -21,10 +21,11 @@ from .code_execution import WaldiezAgentCodeExecutionConfig
21
21
  from .nested_chat import WaldiezAgentNestedChat, WaldiezAgentNestedChatMessage
22
22
 
23
23
  if TYPE_CHECKING:
24
+ # noinspection PyUnusedImports
24
25
  from ...chat import WaldiezChat
25
26
 
26
27
 
27
- # noinspection PyUnresolvedReferences
28
+ # noinspection PyUnresolvedReferences,PyNestedDecorators
28
29
  class WaldiezAgent(WaldiezBase):
29
30
  """Waldiez Agent to be inherited by all other agents.
30
31
 
@@ -1,7 +1,5 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # SPDX-License-Identifier: Apache-2.0.
4
- # Copyright (c) 2024 - 2025 Waldiez and contributors.
5
3
  """Update the agent's system message before they reply."""
6
4
 
7
5
  from typing import Optional
@@ -114,7 +114,14 @@ class WaldiezDocAgent(WaldiezAgent):
114
114
  requirements = {
115
115
  "llama-index",
116
116
  "llama-index-core",
117
- f"ag2[rag]=={ag2_version}",
117
+ # f"ag2[rag]=={ag2_version}",
118
+ "chromadb>=0.5,<2",
119
+ "docling>=2.15.1,<3",
120
+ "selenium>=4.28.1,<5",
121
+ "webdriver-manager==4.0.2",
122
+ "llama-index-embeddings-huggingface",
123
+ "llama-index-llms-langchain",
124
+ "llama-index-vector-stores-chroma",
118
125
  }
119
126
  if not self.data.model_ids:
120
127
  requirements.add("llama-index-llms-openai")
@@ -194,6 +194,7 @@ class WaldiezChat(WaldiezBase):
194
194
  WaldiezHandoff
195
195
  The handoff representation of the chat.
196
196
  """
197
+ # noinspection PyTypeHints
197
198
  target: WaldiezTransitionTarget = WaldiezAgentTarget(
198
199
  target_type="AgentTarget",
199
200
  value=[self.target],
@@ -55,8 +55,6 @@ class WaldiezChatData(WaldiezBase):
55
55
  The maximum number of turns for the chat, by default None (no limit).
56
56
  silent : bool, optional
57
57
  Whether to run the chat silently, by default False (not silent).
58
- summary_args : Optional[dict[str, Any]]
59
- The summary args to use in autogen.
60
58
  real_source : Optional[str]
61
59
  The real source of the chat (overrides the source).
62
60
  real_target : Optional[str]
@@ -58,6 +58,7 @@ class WaldiezBase(BaseModel):
58
58
  mode = "json"
59
59
  if by_alias is None: # pragma: no branch
60
60
  by_alias = True
61
+ # noinspection PyUnreachableCode
61
62
  if not isinstance(by_alias, bool):
62
63
  by_alias = True
63
64
  return super().model_dump(by_alias=by_alias, mode=mode, **kwargs)
@@ -92,6 +93,7 @@ class WaldiezBase(BaseModel):
92
93
  by_alias = kwargs.pop("by_alias", None)
93
94
  if by_alias is None:
94
95
  by_alias = True
96
+ # noinspection PyUnreachableCode
95
97
  if not isinstance(by_alias, bool):
96
98
  by_alias = True
97
99
  return super().model_dump_json(by_alias=by_alias, **kwargs)