zrb 1.8.14__py3-none-any.whl → 1.9.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.
zrb/task/llm/prompt.py CHANGED
@@ -7,14 +7,13 @@ from zrb.util.attr import get_attr, get_str_attr
7
7
  def get_persona(
8
8
  ctx: AnyContext,
9
9
  persona_attr: StrAttr | None,
10
- render_persona: bool,
11
10
  ) -> str:
12
11
  """Gets the persona, prioritizing task-specific, then default."""
13
12
  persona = get_attr(
14
13
  ctx,
15
14
  persona_attr,
16
15
  None,
17
- auto_render=render_persona,
16
+ auto_render=False,
18
17
  )
19
18
  if persona is not None:
20
19
  return persona
@@ -24,14 +23,13 @@ def get_persona(
24
23
  def get_base_system_prompt(
25
24
  ctx: AnyContext,
26
25
  system_prompt_attr: StrAttr | None,
27
- render_system_prompt: bool,
28
26
  ) -> str:
29
27
  """Gets the base system prompt, prioritizing task-specific, then default."""
30
28
  system_prompt = get_attr(
31
29
  ctx,
32
30
  system_prompt_attr,
33
31
  None,
34
- auto_render=render_system_prompt,
32
+ auto_render=False,
35
33
  )
36
34
  if system_prompt is not None:
37
35
  return system_prompt
@@ -41,14 +39,13 @@ def get_base_system_prompt(
41
39
  def get_special_instruction_prompt(
42
40
  ctx: AnyContext,
43
41
  special_instruction_prompt_attr: StrAttr | None,
44
- render_special_instruction_prompt: bool,
45
42
  ) -> str:
46
43
  """Gets the special instruction prompt, prioritizing task-specific, then default."""
47
44
  special_instruction = get_attr(
48
45
  ctx,
49
46
  special_instruction_prompt_attr,
50
47
  None,
51
- auto_render=render_special_instruction_prompt,
48
+ auto_render=False,
52
49
  )
53
50
  if special_instruction is not None:
54
51
  return special_instruction
@@ -58,19 +55,14 @@ def get_special_instruction_prompt(
58
55
  def get_combined_system_prompt(
59
56
  ctx: AnyContext,
60
57
  persona_attr: StrAttr | None,
61
- render_persona: bool,
62
58
  system_prompt_attr: StrAttr | None,
63
- render_system_prompt: bool,
64
59
  special_instruction_prompt_attr: StrAttr | None,
65
- render_special_instruction_prompt: bool,
66
60
  ) -> str:
67
61
  """Combines persona, base system prompt, and special instructions."""
68
- persona = get_persona(ctx, persona_attr, render_persona)
69
- base_system_prompt = get_base_system_prompt(
70
- ctx, system_prompt_attr, render_system_prompt
71
- )
62
+ persona = get_persona(ctx, persona_attr)
63
+ base_system_prompt = get_base_system_prompt(ctx, system_prompt_attr)
72
64
  special_instruction = get_special_instruction_prompt(
73
- ctx, special_instruction_prompt_attr, render_special_instruction_prompt
65
+ ctx, special_instruction_prompt_attr
74
66
  )
75
67
  parts = []
76
68
  if persona:
@@ -85,22 +77,24 @@ def get_combined_system_prompt(
85
77
  def get_user_message(
86
78
  ctx: AnyContext,
87
79
  message_attr: StrAttr | None,
80
+ render_user_message: bool,
88
81
  ) -> str:
89
82
  """Gets the user message, rendering and providing a default."""
90
- return get_str_attr(ctx, message_attr, "How are you?", auto_render=True)
83
+ return get_str_attr(
84
+ ctx, message_attr, "How are you?", auto_render=render_user_message
85
+ )
91
86
 
92
87
 
93
88
  def get_summarization_prompt(
94
89
  ctx: AnyContext,
95
90
  summarization_prompt_attr: StrAttr | None,
96
- render_summarization_prompt: bool,
97
91
  ) -> str:
98
92
  """Gets the summarization prompt, rendering if configured and handling defaults."""
99
93
  summarization_prompt = get_attr(
100
94
  ctx,
101
95
  summarization_prompt_attr,
102
96
  None,
103
- auto_render=render_summarization_prompt,
97
+ auto_render=False,
104
98
  )
105
99
  if summarization_prompt is not None:
106
100
  return summarization_prompt
@@ -110,14 +104,13 @@ def get_summarization_prompt(
110
104
  def get_context_enrichment_prompt(
111
105
  ctx: AnyContext,
112
106
  context_enrichment_prompt_attr: StrAttr | None,
113
- render_context_enrichment_prompt: bool,
114
107
  ) -> str:
115
108
  """Gets the context enrichment prompt, rendering if configured and handling defaults."""
116
109
  context_enrichment_prompt = get_attr(
117
110
  ctx,
118
111
  context_enrichment_prompt_attr,
119
112
  None,
120
- auto_render=render_context_enrichment_prompt,
113
+ auto_render=False,
121
114
  )
122
115
  if context_enrichment_prompt is not None:
123
116
  return context_enrichment_prompt
@@ -3,7 +3,7 @@ import inspect
3
3
  import traceback
4
4
  import typing
5
5
  from collections.abc import Callable
6
- from typing import TYPE_CHECKING, Any
6
+ from typing import TYPE_CHECKING
7
7
 
8
8
  from zrb.context.any_context import AnyContext
9
9
  from zrb.task.llm.error import ToolExecutionError
@@ -11,11 +11,9 @@ from zrb.util.run import run_async
11
11
 
12
12
  if TYPE_CHECKING:
13
13
  from pydantic_ai import Tool
14
- else:
15
- Tool = Any
16
14
 
17
15
 
18
- def wrap_tool(func: Callable, ctx: AnyContext) -> Tool:
16
+ def wrap_tool(func: Callable, ctx: AnyContext) -> "Tool":
19
17
  """Wraps a tool function to handle exceptions and context propagation."""
20
18
  from pydantic_ai import RunContext, Tool
21
19
 
zrb/task/llm_task.py CHANGED
@@ -2,18 +2,6 @@ import json
2
2
  from collections.abc import Callable
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
- if TYPE_CHECKING:
6
- from pydantic_ai import Agent, Tool
7
- from pydantic_ai.mcp import MCPServer
8
- from pydantic_ai.models import Model
9
- from pydantic_ai.settings import ModelSettings
10
- else:
11
- Agent = Any
12
- Tool = Any
13
- MCPServer = Any
14
- Model = Any
15
- ModelSettings = Any
16
-
17
5
  from zrb.attr.type import BoolAttr, IntAttr, StrAttr, fstring
18
6
  from zrb.context.any_context import AnyContext
19
7
  from zrb.context.any_shared_context import AnySharedContext
@@ -27,7 +15,7 @@ from zrb.task.llm.config import (
27
15
  get_model,
28
16
  get_model_settings,
29
17
  )
30
- from zrb.task.llm.context import extract_default_context, get_conversation_context
18
+ from zrb.task.llm.context import extract_default_context
31
19
  from zrb.task.llm.context_enrichment import maybe_enrich_context
32
20
  from zrb.task.llm.history import (
33
21
  ConversationHistoryData,
@@ -46,6 +34,11 @@ from zrb.util.cli.style import stylize_faint
46
34
  from zrb.xcom.xcom import Xcom
47
35
 
48
36
  if TYPE_CHECKING:
37
+ from pydantic_ai import Agent, Tool
38
+ from pydantic_ai.mcp import MCPServer
39
+ from pydantic_ai.models import Model
40
+ from pydantic_ai.settings import ModelSettings
41
+
49
42
  ToolOrCallable = Tool | Callable
50
43
  else:
51
44
  ToolOrCallable = Any
@@ -62,7 +55,7 @@ class LLMTask(BaseTask):
62
55
  input: list[AnyInput | None] | AnyInput | None = None,
63
56
  env: list[AnyEnv | None] | AnyEnv | None = None,
64
57
  model: (
65
- Callable[[AnySharedContext], Model | str | fstring] | Model | None
58
+ "Callable[[AnySharedContext], Model | str | fstring] | Model | None"
66
59
  ) = None,
67
60
  render_model: bool = True,
68
61
  model_base_url: StrAttr | None = None,
@@ -70,18 +63,14 @@ class LLMTask(BaseTask):
70
63
  model_api_key: StrAttr | None = None,
71
64
  render_model_api_key: bool = True,
72
65
  model_settings: (
73
- ModelSettings | Callable[[AnySharedContext], ModelSettings] | None
66
+ "ModelSettings | Callable[[AnySharedContext], ModelSettings] | None"
74
67
  ) = None,
75
- agent: Agent | Callable[[AnySharedContext], Agent] | None = None,
68
+ agent: "Agent | Callable[[AnySharedContext], Agent] | None" = None,
76
69
  persona: StrAttr | None = None,
77
- render_persona: bool = True,
78
70
  system_prompt: StrAttr | None = None,
79
- render_system_prompt: bool = True,
80
71
  special_instruction_prompt: StrAttr | None = None,
81
- render_special_instruction_prompt: bool = True,
82
72
  message: StrAttr | None = None,
83
- summarization_prompt: StrAttr | None = None,
84
- render_summarization_prompt: bool = True,
73
+ render_message: bool = True,
85
74
  enrich_context: BoolAttr | None = None,
86
75
  render_enrich_context: bool = True,
87
76
  context_enrichment_prompt: StrAttr | None = None,
@@ -112,6 +101,7 @@ class LLMTask(BaseTask):
112
101
  render_history_file: bool = True,
113
102
  summarize_history: BoolAttr | None = None,
114
103
  render_summarize_history: bool = True,
104
+ summarization_prompt: StrAttr | None = None,
115
105
  history_summarization_threshold: IntAttr | None = None,
116
106
  render_history_summarization_threshold: bool = True,
117
107
  rate_limitter: LLMRateLimiter | None = None,
@@ -162,14 +152,11 @@ class LLMTask(BaseTask):
162
152
  self._model_settings = model_settings
163
153
  self._agent = agent
164
154
  self._persona = persona
165
- self._render_persona = render_persona
166
155
  self._system_prompt = system_prompt
167
- self._render_system_prompt = render_system_prompt
168
156
  self._special_instruction_prompt = special_instruction_prompt
169
- self._render_special_instruction_prompt = render_special_instruction_prompt
170
157
  self._message = message
158
+ self._render_message = render_message
171
159
  self._summarization_prompt = summarization_prompt
172
- self._render_summarization_prompt = render_summarization_prompt
173
160
  self._should_enrich_context = enrich_context
174
161
  self._render_enrich_context = render_enrich_context
175
162
  self._context_enrichment_prompt = context_enrichment_prompt
@@ -202,10 +189,10 @@ class LLMTask(BaseTask):
202
189
  for single_tool in tool:
203
190
  self._additional_tools.append(single_tool)
204
191
 
205
- def add_mcp_server(self, *mcp_server: MCPServer):
192
+ def add_mcp_server(self, *mcp_server: "MCPServer"):
206
193
  self.append_mcp_server(*mcp_server)
207
194
 
208
- def append_mcp_server(self, *mcp_server: MCPServer):
195
+ def append_mcp_server(self, *mcp_server: "MCPServer"):
209
196
  for single_mcp_server in mcp_server:
210
197
  self._additional_mcp_servers.append(single_mcp_server)
211
198
 
@@ -236,42 +223,36 @@ class LLMTask(BaseTask):
236
223
  context_enrichment_prompt = get_context_enrichment_prompt(
237
224
  ctx=ctx,
238
225
  context_enrichment_prompt_attr=self._context_enrichment_prompt,
239
- render_context_enrichment_prompt=self._render_context_enrichment_prompt,
240
226
  )
241
227
  summarization_prompt = get_summarization_prompt(
242
228
  ctx=ctx,
243
229
  summarization_prompt_attr=self._summarization_prompt,
244
- render_summarization_prompt=self._render_summarization_prompt,
245
230
  )
246
- user_message = get_user_message(ctx, self._message)
231
+ user_message = get_user_message(ctx, self._message, self._render_message)
247
232
  # Get the combined system prompt using the new getter
248
233
  system_prompt = get_combined_system_prompt(
249
234
  ctx=ctx,
250
235
  persona_attr=self._persona,
251
- render_persona=self._render_persona,
252
236
  system_prompt_attr=self._system_prompt,
253
- render_system_prompt=self._render_system_prompt,
254
237
  special_instruction_prompt_attr=self._special_instruction_prompt,
255
- render_special_instruction_prompt=self._render_special_instruction_prompt,
256
238
  )
257
239
  # 1. Prepare initial state (read history from previous session)
258
- conversation_history = await read_conversation_history(
240
+ history_data = await read_conversation_history(
259
241
  ctx=ctx,
260
242
  conversation_history_reader=self._conversation_history_reader,
261
243
  conversation_history_file_attr=self._conversation_history_file,
262
244
  render_history_file=self._render_history_file,
263
245
  conversation_history_attr=self._conversation_history,
264
246
  )
265
- history_list = conversation_history.history
266
- conversation_context = {
267
- **conversation_history.context,
268
- **get_conversation_context(ctx, self._conversation_context),
269
- }
270
- # 2. Enrich context (optional)
271
- conversation_context = await maybe_enrich_context(
247
+ history_list = history_data.history
248
+ long_term_context = history_data.long_term_context
249
+ conversation_summary = history_data.conversation_summary
250
+
251
+ # 2. Enrich context and summarize history sequentially
252
+ new_long_term_context = await maybe_enrich_context(
272
253
  ctx=ctx,
273
254
  history_list=history_list,
274
- conversation_context=conversation_context,
255
+ long_term_context=long_term_context,
275
256
  should_enrich_context_attr=self._should_enrich_context,
276
257
  render_enrich_context=self._render_enrich_context,
277
258
  context_enrichment_threshold_attr=self._context_enrichment_threshold,
@@ -281,11 +262,10 @@ class LLMTask(BaseTask):
281
262
  context_enrichment_prompt=context_enrichment_prompt,
282
263
  rate_limitter=self._rate_limitter,
283
264
  )
284
- # 3. Summarize history (optional, modifies history_list and context)
285
- history_list, conversation_context = await maybe_summarize_history(
265
+ new_history_list, new_conversation_summary = await maybe_summarize_history(
286
266
  ctx=ctx,
287
267
  history_list=history_list,
288
- conversation_context=conversation_context,
268
+ conversation_summary=conversation_summary,
289
269
  should_summarize_history_attr=self._should_summarize_history,
290
270
  render_summarize_history=self._render_summarize_history,
291
271
  history_summarization_threshold_attr=self._history_summarization_threshold,
@@ -297,16 +277,21 @@ class LLMTask(BaseTask):
297
277
  summarization_prompt=summarization_prompt,
298
278
  rate_limitter=self._rate_limitter,
299
279
  )
300
- # 4. Build the final user prompt and system prompt
301
- final_user_prompt, default_context = extract_default_context(user_message)
302
- final_system_prompt = "\n".join(
303
- [
304
- system_prompt,
305
- "# Context",
306
- json.dumps({**default_context, **conversation_context}),
307
- ]
280
+
281
+ # 3. Build the final user prompt and system prompt
282
+ final_user_prompt, system_info = extract_default_context(user_message)
283
+ context_parts = [
284
+ f"## System Information\n{json.dumps(system_info, indent=2)}",
285
+ ]
286
+ if new_long_term_context:
287
+ context_parts.append(new_long_term_context)
288
+ if new_conversation_summary:
289
+ context_parts.append(new_conversation_summary)
290
+
291
+ final_system_prompt = "\n\n".join(
292
+ [system_prompt, "# Context", "\n\n---\n\n".join(context_parts)]
308
293
  )
309
- # 5. Get the agent instance
294
+ # 4. Get the agent instance
310
295
  agent = get_agent(
311
296
  ctx=ctx,
312
297
  agent_attr=self._agent,
@@ -318,18 +303,24 @@ class LLMTask(BaseTask):
318
303
  mcp_servers_attr=self._mcp_servers,
319
304
  additional_mcp_servers=self._additional_mcp_servers,
320
305
  )
321
- # 6. Run the agent iteration and save the results/history
306
+ # 5. Run the agent iteration and save the results/history
322
307
  return await self._run_agent_and_save_history(
323
- ctx, agent, final_user_prompt, history_list, conversation_context
308
+ ctx,
309
+ agent,
310
+ final_user_prompt,
311
+ new_history_list,
312
+ new_long_term_context,
313
+ new_conversation_summary,
324
314
  )
325
315
 
326
316
  async def _run_agent_and_save_history(
327
317
  self,
328
318
  ctx: AnyContext,
329
- agent: Agent,
319
+ agent: "Agent",
330
320
  user_prompt: str,
331
321
  history_list: ListOfDict,
332
- conversation_context: dict[str, Any],
322
+ long_term_context: str,
323
+ conversation_summary: str,
333
324
  ) -> Any:
334
325
  """Executes the agent, processes results, and saves history."""
335
326
  try:
@@ -343,7 +334,8 @@ class LLMTask(BaseTask):
343
334
  if agent_run and agent_run.result:
344
335
  new_history_list = json.loads(agent_run.result.all_messages_json())
345
336
  data_to_write = ConversationHistoryData(
346
- context=conversation_context, # Save the final context state
337
+ long_term_context=long_term_context,
338
+ conversation_summary=conversation_summary,
347
339
  history=new_history_list,
348
340
  )
349
341
  await write_conversation_history(
@@ -358,7 +350,7 @@ class LLMTask(BaseTask):
358
350
  ctx.xcom[xcom_usage_key] = Xcom([])
359
351
  usage = agent_run.result.usage()
360
352
  ctx.xcom[xcom_usage_key].push(usage)
361
- ctx.print(stylize_faint(f"[Token Usage] {usage}"), plain=True)
353
+ ctx.print(stylize_faint(f" Token: {usage}"), plain=True)
362
354
  return agent_run.result.output
363
355
  else:
364
356
  ctx.log_warning("Agent run did not produce a result.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.8.14
3
+ Version: 1.9.0
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -9,7 +9,7 @@ zrb/builtin/git_subtree.py,sha256=7BKwOkVTWDrR0DXXQ4iJyHqeR6sV5VYRt8y_rEB0EHg,35
9
9
  zrb/builtin/group.py,sha256=t008xLM4_fgbjfZrPoi_fQAnSHIo6MOiQSCHBO4GDYU,2379
10
10
  zrb/builtin/http.py,sha256=sLqEczuSxGYXWzyJR6frGOHkPTviu4BeyroUr3-ZuAI,4322
11
11
  zrb/builtin/jwt.py,sha256=3M5uaQhJZbKQLjTUft1OwPz_JxtmK-xtkjxWjciOQho,2859
12
- zrb/builtin/llm/chat_session.py,sha256=Nc7DDwxuKblwjtA9rCt82Gc2XSHsx3dxvxTGZyGXgtE,6991
12
+ zrb/builtin/llm/chat_session.py,sha256=iDNHbNX268NWl0uQmjecD3Bn686-mByqqXuMc6IKjOE,7146
13
13
  zrb/builtin/llm/history.py,sha256=cnkOyO43uiMQ9cEvmqk-pPoCk1zCAH_fwAqSgBtsjzY,3079
14
14
  zrb/builtin/llm/input.py,sha256=Nw-26uTWp2QhUgKJcP_IMHmtk-b542CCSQ_vCOjhvhM,877
15
15
  zrb/builtin/llm/llm_ask.py,sha256=QUV29gOAFKiMfJlAKbY9YfGPoxYv-4RPv6p7cWogK4U,4438
@@ -246,7 +246,7 @@ zrb/input/option_input.py,sha256=TQB82ko5odgzkULEizBZi0e9TIHEbIgvdP0AR3RhA74,213
246
246
  zrb/input/password_input.py,sha256=szBojWxSP9QJecgsgA87OIYwQrY2AQ3USIKdDZY6snU,1465
247
247
  zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
248
248
  zrb/input/text_input.py,sha256=6T3MngWdUs0u0ZVs5Dl11w5KS7nN1RkgrIR_zKumzPM,3695
249
- zrb/llm_config.py,sha256=dA6EucZCGuh6fq-JT1KVDLIs4ZQmqiv5Vl-auxjUd0U,17526
249
+ zrb/llm_config.py,sha256=s-8stT_9lsH35IQuE6YBdLbi2actYgwLDFqEqgedtCE,16964
250
250
  zrb/llm_rate_limitter.py,sha256=uM9zmSgV10fQq1dlaDGLDrv72uLj6ldBxMoGjO2Az14,4429
251
251
  zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
252
  zrb/runner/cli.py,sha256=y_n7O4kQKXpiLAsBsf1WnHNfWgKlrxE9TU0MU1ICUMg,6989
@@ -325,7 +325,7 @@ zrb/session_state_logger/any_session_state_logger.py,sha256=T_-aJv63HwoTeiDOmXKH
325
325
  zrb/session_state_logger/file_session_state_logger.py,sha256=NMyj_g2ImQc6ZRM9f35EpA-CM1UO-ZgoDnPkN1DSi9U,3915
326
326
  zrb/session_state_logger/session_state_logger_factory.py,sha256=2Jvvp2zqK3qD0Gw-pm84LJ3d5uvkoBRh9MNHvw3r_DA,181
327
327
  zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
328
- zrb/task/any_task.py,sha256=J8mWytcoSw1RzMV2fkshOSc4bj2eiU6qXlv9wC0apjs,5860
328
+ zrb/task/any_task.py,sha256=E4HA4Fumwv5dIsEnl2q0eE6t6LHnF6uyk0O5yQ2Mz6g,5826
329
329
  zrb/task/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
330
330
  zrb/task/base/context.py,sha256=73k3fKwup0AJwTTLpay0f_-axJextaxgbTem4w4Bmas,3670
331
331
  zrb/task/base/execution.py,sha256=scDLfNYBe8Bc8Ct1LCIKmFtjpPxm7FjqZ2bJXIQAzv8,11042
@@ -337,18 +337,18 @@ zrb/task/base_trigger.py,sha256=WSGcmBcGAZw8EzUXfmCjqJQkz8GEmi1RzogpF6A1V4s,6902
337
337
  zrb/task/cmd_task.py,sha256=irGi0txTcsvGhxjfem4_radR4csNXhgtfcxruSF1LFI,10853
338
338
  zrb/task/http_check.py,sha256=Gf5rOB2Se2EdizuN9rp65HpGmfZkGc-clIAlHmPVehs,2565
339
339
  zrb/task/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
- zrb/task/llm/agent.py,sha256=pwGFkRSQ-maH92QaJr2dgfQhEiwFVK5XnyK4OYBJm4c,6782
341
- zrb/task/llm/config.py,sha256=Gb0lSHCgGXOAr7igkU7k_Ew5Yp_wOTpNQyZrLrtA7oc,3521
342
- zrb/task/llm/context.py,sha256=U9a8lxa2ikz6my0Sd5vpO763legHrMHyvBjbrqNmv0Y,3838
343
- zrb/task/llm/context_enrichment.py,sha256=BlW2CjSUsKJT8EZBXYxOE4MEBbRCoO34PlQQdzA-zBM,7201
344
- zrb/task/llm/error.py,sha256=27DQXSG8SH1-XuvXFdZQKzP39wZDWmd_YnSTz6DJKKI,3690
345
- zrb/task/llm/history.py,sha256=3WMXoi7RquxosXQf3iv2_BCeF8iKtY1f407pR71xERs,7745
346
- zrb/task/llm/history_summarization.py,sha256=d6RF1duVe7aog2gUf7kzQLIqTwNTfVsOtvx5629hiTU,6582
347
- zrb/task/llm/print_node.py,sha256=bpISOUxSH_JBLR-4Nq6-iLrzNWFagrKFX6u8ogYYMw8,4395
348
- zrb/task/llm/prompt.py,sha256=zBo3xT3YPX_A4_t8Cd-QjNqQZl9dsoWMTt-NdytI2f4,3827
349
- zrb/task/llm/tool_wrapper.py,sha256=Xygd4VCY3ykjVv63pqlTI16ZG41ySkp683_5VTnL-Zo,6481
340
+ zrb/task/llm/agent.py,sha256=IUGhU7vSfGVpVbd0rGLJ9kxIpt04Fm6UBjBWCVBVaZs,6695
341
+ zrb/task/llm/config.py,sha256=WsO_kLXi0JXB6SPNL_dWm1Izu04KRrzmuX6DSrRYeBE,3483
342
+ zrb/task/llm/context.py,sha256=LGGQ_mb1dWorfshHjGgXEW_pRweGj-6MZcIUFq3AHy4,2213
343
+ zrb/task/llm/context_enrichment.py,sha256=NrRsKLY2Kojx2lejdEJxORgz-7uiQ1_A_IAyHJ3WVPQ,5552
344
+ zrb/task/llm/error.py,sha256=s5PSK3ibGupMzOM0P81nstHWrMr3205H0FSDwfhWUDA,3662
345
+ zrb/task/llm/history.py,sha256=cpaNqoEzsNAgzZGPPdohA8U5nTrVWmZ3P1Y5RTtXDgc,7986
346
+ zrb/task/llm/history_summarization.py,sha256=-A7oLLHYYxlYL6RQYhaL_yu2yT1qlB9s8kAWGNqPWfU,5534
347
+ zrb/task/llm/print_node.py,sha256=VB_ZXD3iQPZcaNWvIMNRxOhmXIJp9__5utRrSbiIRXo,4457
348
+ zrb/task/llm/prompt.py,sha256=obSsLHF4AHlwMIEQ8XTJmtEnkLlD5XTEkk0RJUmIz4Y,3410
349
+ zrb/task/llm/tool_wrapper.py,sha256=8_bL8m_WpRf-pVKSrvQIVqT-m2sUA87a1RBQG13lhp4,6457
350
350
  zrb/task/llm/typing.py,sha256=c8VAuPBw_4A3DxfYdydkgedaP-LU61W9_wj3m3CAX1E,58
351
- zrb/task/llm_task.py,sha256=fRzvyso0OpDlwVVwRdib2Cq3dppEszOc9DIm50dDdhk,15930
351
+ zrb/task/llm_task.py,sha256=-1-QV3wN70CgGSdtAj4F5QR9wMQSLsFJcUcFkeiCoWs,15362
352
352
  zrb/task/make_task.py,sha256=PD3b_aYazthS8LHeJsLAhwKDEgdurQZpymJDKeN60u0,2265
353
353
  zrb/task/rsync_task.py,sha256=GSL9144bmp6F0EckT6m-2a1xG25AzrrWYzH4k3SVUKM,6370
354
354
  zrb/task/scaffolder.py,sha256=rME18w1HJUHXgi9eTYXx_T2G4JdqDYzBoNOkdOOo5-o,6806
@@ -391,7 +391,7 @@ zrb/util/todo.py,sha256=r9_KYF2-hLKMNjsp6AFK9zivykMrywd-kJ4bCwfdafI,19323
391
391
  zrb/util/todo_model.py,sha256=0SJ8aLYfJAscDOk5JsH7pXP3h1rAG91VMCS20-c2Y6A,1576
392
392
  zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
393
393
  zrb/xcom/xcom.py,sha256=o79rxR9wphnShrcIushA0Qt71d_p3ZTxjNf7x9hJB78,1571
394
- zrb-1.8.14.dist-info/METADATA,sha256=1kgNRHrwoU-WFaxuau8a70wUyazpwpIfoz4CZ9-4yUI,9322
395
- zrb-1.8.14.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
396
- zrb-1.8.14.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
397
- zrb-1.8.14.dist-info/RECORD,,
394
+ zrb-1.9.0.dist-info/METADATA,sha256=2j4pOOx_l_wmHxFKn4gVX6wCeI9AOqmKszZ7PASZzSI,9321
395
+ zrb-1.9.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
396
+ zrb-1.9.0.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
397
+ zrb-1.9.0.dist-info/RECORD,,
File without changes