zrb 1.6.5__py3-none-any.whl → 1.6.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.
@@ -188,15 +188,13 @@ def _show_info(ctx: AnyContext):
188
188
  ctx: The context object for the task.
189
189
  """
190
190
  ctx.print(
191
- stylize_bold_yellow(
192
- "\n".join(
193
- [
194
- "/bye: Quit from chat session",
195
- "/multi: Start multiline input",
196
- "/end: End multiline input",
197
- "/help: Show this message",
198
- ]
199
- )
191
+ "\n".join(
192
+ [
193
+ f"{stylize_bold_yellow('/bye')} {stylize_faint('Quit from chat session')}",
194
+ f"{stylize_bold_yellow('/multi')} {stylize_faint('Start multiline input')}",
195
+ f"{stylize_bold_yellow('/end')} {stylize_faint('End multiline input')}",
196
+ f"{stylize_bold_yellow('/help')} {stylize_faint('Show this message')}",
197
+ ]
200
198
  ),
201
199
  plain=True,
202
200
  )
zrb/config.py CHANGED
@@ -44,15 +44,13 @@ class Config:
44
44
  @property
45
45
  def INIT_MODULES(self) -> list[str]:
46
46
  init_modules_str = os.getenv("ZRB_INIT_MODULES", "")
47
- return (
48
- [
47
+ if init_modules_str != "":
48
+ return [
49
49
  module.strip()
50
50
  for module in init_modules_str.split(":")
51
51
  if module.strip() != ""
52
52
  ]
53
- if init_modules_str != ""
54
- else []
55
- )
53
+ return []
56
54
 
57
55
  @property
58
56
  def ROOT_GROUP_NAME(self) -> str:
@@ -65,15 +63,13 @@ class Config:
65
63
  @property
66
64
  def INIT_SCRIPTS(self) -> list[str]:
67
65
  init_scripts_str = os.getenv("ZRB_INIT_SCRIPTS", "")
68
- return (
69
- [
66
+ if init_scripts_str != "":
67
+ return [
70
68
  script.strip()
71
69
  for script in init_scripts_str.split(":")
72
70
  if script.strip() != ""
73
71
  ]
74
- if init_scripts_str != ""
75
- else []
76
- )
72
+ return []
77
73
 
78
74
  @property
79
75
  def INIT_FILE_NAME(self) -> str:
@@ -126,6 +122,9 @@ class Config:
126
122
 
127
123
  @property
128
124
  def VERSION(self) -> str:
125
+ custom_version = os.getenv("_ZRB_CUSTOM_VERSION", "")
126
+ if custom_version != "":
127
+ return custom_version
129
128
  return metadata.version("zrb")
130
129
 
131
130
  @property
zrb/llm_config.py CHANGED
@@ -3,8 +3,10 @@ from typing import TYPE_CHECKING, Any
3
3
  if TYPE_CHECKING:
4
4
  from pydantic_ai.models import Model
5
5
  from pydantic_ai.providers import Provider
6
+ from pydantic_ai.settings import ModelSettings
6
7
  else:
7
8
  Model = Any
9
+ ModelSettings = Any
8
10
  Provider = Any
9
11
 
10
12
  from zrb.config import CFG
@@ -66,6 +68,7 @@ class LLMConfig:
66
68
  default_history_summarization_threshold: int | None = None,
67
69
  default_enrich_context: bool | None = None,
68
70
  default_context_enrichment_threshold: int | None = None,
71
+ default_model_settings: ModelSettings | None = None,
69
72
  ):
70
73
  self._default_model_name = default_model_name
71
74
  self._default_model_base_url = default_base_url
@@ -83,118 +86,128 @@ class LLMConfig:
83
86
  self._default_context_enrichment_threshold = (
84
87
  default_context_enrichment_threshold
85
88
  )
89
+ self._default_model_settings = default_model_settings
86
90
  self._default_provider = None
87
91
  self._default_model = None
88
92
 
89
- def _get_model_name(self) -> str | None:
90
- return (
91
- self._default_model_name
92
- if self._default_model_name is not None
93
- else CFG.LLM_MODEL
94
- )
95
-
96
- def get_default_model_provider(self) -> Provider | str:
93
+ @property
94
+ def default_model_name(self) -> str | None:
95
+ if self._default_model_name is not None:
96
+ return self._default_model_name
97
+ if CFG.LLM_MODEL is not None:
98
+ return CFG.LLM_MODEL
99
+ return None
100
+
101
+ @property
102
+ def default_model_base_url(self) -> str | None:
103
+ if self._default_model_base_url is not None:
104
+ return self._default_model_base_url
105
+ if CFG.LLM_BASE_URL is not None:
106
+ return CFG.LLM_BASE_URL
107
+ return None
108
+
109
+ @property
110
+ def default_model_api_key(self) -> str | None:
111
+ if self._default_model_api_key is not None:
112
+ return self._default_model_api_key
113
+ if CFG.LLM_API_KEY is not None:
114
+ return CFG.LLM_API_KEY
115
+
116
+ @property
117
+ def default_model_settings(self) -> ModelSettings | None:
118
+ if self._default_model_settings is not None:
119
+ return self._default_model_settings
120
+ return None
121
+
122
+ @property
123
+ def default_model_provider(self) -> Provider | str:
97
124
  if self._default_provider is not None:
98
125
  return self._default_provider
99
- if self._default_model_base_url is None and self._default_model_api_key is None:
126
+ if self.default_model_base_url is None and self.default_model_api_key is None:
100
127
  return "openai"
101
128
  from pydantic_ai.providers.openai import OpenAIProvider
102
129
 
103
130
  return OpenAIProvider(
104
- base_url=self._default_model_base_url, api_key=self._default_model_api_key
105
- )
106
-
107
- def get_default_system_prompt(self) -> str:
108
- return (
109
- self._default_system_prompt
110
- if self._default_system_prompt is not None
111
- else (
112
- CFG.LLM_SYSTEM_PROMPT
113
- if CFG.LLM_SYSTEM_PROMPT is not None
114
- else DEFAULT_SYSTEM_PROMPT
115
- )
116
- )
117
-
118
- def get_default_persona(self) -> str:
119
- return (
120
- self._default_persona
121
- if self._default_persona is not None
122
- else (CFG.LLM_PERSONA if CFG.LLM_PERSONA is not None else DEFAULT_PERSONA)
123
- )
124
-
125
- def get_default_special_instruction_prompt(self) -> str:
126
- return (
127
- self._default_special_instruction_prompt
128
- if self._default_special_instruction_prompt is not None
129
- else (
130
- CFG.LLM_SPECIAL_INSTRUCTION_PROMPT
131
- if CFG.LLM_SPECIAL_INSTRUCTION_PROMPT is not None
132
- else DEFAULT_SPECIAL_INSTRUCTION_PROMPT
133
- )
134
- )
135
-
136
- def get_default_summarization_prompt(self) -> str:
137
- return (
138
- self._default_summarization_prompt
139
- if self._default_summarization_prompt is not None
140
- else (
141
- CFG.LLM_SUMMARIZATION_PROMPT
142
- if CFG.LLM_SUMMARIZATION_PROMPT is not None
143
- else DEFAULT_SUMMARIZATION_PROMPT
144
- )
131
+ base_url=self.default_model_base_url, api_key=self.default_model_api_key
145
132
  )
146
133
 
147
- def get_default_context_enrichment_prompt(self) -> str:
148
- return (
149
- self._default_context_enrichment_prompt
150
- if self._default_context_enrichment_prompt is not None
151
- else (
152
- CFG.LLM_CONTEXT_ENRICHMENT_PROMPT
153
- if CFG.LLM_CONTEXT_ENRICHMENT_PROMPT is not None
154
- else DEFAULT_CONTEXT_ENRICHMENT_PROMPT
155
- )
156
- )
157
-
158
- def get_default_model(self) -> Model | str | None:
134
+ @property
135
+ def default_system_prompt(self) -> str:
136
+ if self._default_system_prompt is not None:
137
+ return self._default_system_prompt
138
+ if CFG.LLM_SYSTEM_PROMPT is not None:
139
+ return CFG.LLM_SYSTEM_PROMPT
140
+ return DEFAULT_SYSTEM_PROMPT
141
+
142
+ @property
143
+ def default_persona(self) -> str:
144
+ if self._default_persona is not None:
145
+ return self._default_persona
146
+ if CFG.LLM_PERSONA is not None:
147
+ return CFG.LLM_PERSONA
148
+ return DEFAULT_PERSONA
149
+
150
+ @property
151
+ def default_special_instruction_prompt(self) -> str:
152
+ if self._default_special_instruction_prompt is not None:
153
+ return self._default_special_instruction_prompt
154
+ if CFG.LLM_SPECIAL_INSTRUCTION_PROMPT is not None:
155
+ return CFG.LLM_SPECIAL_INSTRUCTION_PROMPT
156
+ return DEFAULT_SPECIAL_INSTRUCTION_PROMPT
157
+
158
+ @property
159
+ def default_summarization_prompt(self) -> str:
160
+ if self._default_summarization_prompt is not None:
161
+ return self._default_summarization_prompt
162
+ if CFG.LLM_SUMMARIZATION_PROMPT is not None:
163
+ return CFG.LLM_SUMMARIZATION_PROMPT
164
+ return DEFAULT_SUMMARIZATION_PROMPT
165
+
166
+ @property
167
+ def default_context_enrichment_prompt(self) -> str:
168
+ if self._default_context_enrichment_prompt is not None:
169
+ return self._default_context_enrichment_prompt
170
+ if CFG.LLM_CONTEXT_ENRICHMENT_PROMPT is not None:
171
+ return CFG.LLM_CONTEXT_ENRICHMENT_PROMPT
172
+ return DEFAULT_CONTEXT_ENRICHMENT_PROMPT
173
+
174
+ @property
175
+ def default_model(self) -> Model | str | None:
159
176
  if self._default_model is not None:
160
177
  return self._default_model
161
- model_name = self._get_model_name()
178
+ model_name = self.default_model_name
162
179
  if model_name is None:
163
180
  return None
164
181
  from pydantic_ai.models.openai import OpenAIModel
165
182
 
166
183
  return OpenAIModel(
167
184
  model_name=model_name,
168
- provider=self.get_default_model_provider(),
169
- )
170
-
171
- def get_default_summarize_history(self) -> bool:
172
- return (
173
- self._default_summarize_history
174
- if self._default_summarize_history is not None
175
- else CFG.LLM_SUMMARIZE_HISTORY
176
- )
177
-
178
- def get_default_history_summarization_threshold(self) -> int:
179
- return (
180
- self._default_history_summarization_threshold
181
- if self._default_history_summarization_threshold is not None
182
- else CFG.LLM_HISTORY_SUMMARIZATION_THRESHOLD
185
+ provider=self.default_model_provider,
183
186
  )
184
187
 
185
- def get_default_enrich_context(self) -> bool:
186
- return (
187
- self._default_enrich_context
188
- if self._default_enrich_context is not None
189
- else CFG.LLM_ENRICH_CONTEXT
190
- )
191
-
192
- def get_default_context_enrichment_threshold(self) -> int:
193
- return (
194
- self._default_context_enrichment_threshold
195
- if self._default_context_enrichment_threshold is not None
196
- else CFG.LLM_CONTEXT_ENRICHMENT_THRESHOLD
197
- )
188
+ @property
189
+ def default_summarize_history(self) -> bool:
190
+ if self._default_summarize_history is not None:
191
+ return self._default_summarize_history
192
+ return CFG.LLM_SUMMARIZE_HISTORY
193
+
194
+ @property
195
+ def default_history_summarization_threshold(self) -> int:
196
+ if self._default_history_summarization_threshold is not None:
197
+ return self._default_history_summarization_threshold
198
+ return CFG.LLM_HISTORY_SUMMARIZATION_THRESHOLD
199
+
200
+ @property
201
+ def default_enrich_context(self) -> bool:
202
+ if self._default_enrich_context is not None:
203
+ return self._default_enrich_context
204
+ return CFG.LLM_ENRICH_CONTEXT
205
+
206
+ @property
207
+ def default_context_enrichment_threshold(self) -> int:
208
+ if self._default_context_enrichment_threshold is not None:
209
+ return self._default_context_enrichment_threshold
210
+ return CFG.LLM_CONTEXT_ENRICHMENT_THRESHOLD
198
211
 
199
212
  def set_default_persona(self, persona: str):
200
213
  self._default_persona = persona
@@ -223,7 +236,7 @@ class LLMConfig:
223
236
  def set_default_provider(self, provider: Provider | str):
224
237
  self._default_provider = provider
225
238
 
226
- def set_default_model(self, model: Model | str | None):
239
+ def set_default_model(self, model: Model | str):
227
240
  self._default_model = model
228
241
 
229
242
  def set_default_summarize_history(self, summarize_history: bool):
@@ -242,5 +255,8 @@ class LLMConfig:
242
255
  ):
243
256
  self._default_context_enrichment_threshold = context_enrichment_threshold
244
257
 
258
+ def set_default_model_settings(self, model_settings: ModelSettings):
259
+ self._default_model_settings = model_settings
260
+
245
261
 
246
262
  llm_config = LLMConfig()
zrb/runner/cli.py CHANGED
@@ -166,9 +166,7 @@ class Cli(Group):
166
166
  cli = Cli()
167
167
 
168
168
 
169
- @make_task(
170
- name="version", description="🌟 Get current Zrb version", retries=0, group=cli
171
- )
169
+ @make_task(name="version", description="🌟 Get current version", retries=0, group=cli)
172
170
  def get_version(_: AnyContext):
173
171
  return CFG.VERSION
174
172
 
zrb/task/llm/config.py CHANGED
@@ -10,8 +10,7 @@ else:
10
10
  from zrb.attr.type import StrAttr, fstring
11
11
  from zrb.context.any_context import AnyContext
12
12
  from zrb.context.any_shared_context import AnySharedContext
13
- from zrb.llm_config import LLMConfig
14
- from zrb.llm_config import llm_config as default_llm_config
13
+ from zrb.llm_config import LLMConfig, llm_config
15
14
  from zrb.util.attr import get_attr
16
15
 
17
16
 
@@ -22,9 +21,10 @@ def get_model_settings(
22
21
  ),
23
22
  ) -> ModelSettings | None:
24
23
  """Gets the model settings, resolving callables if necessary."""
25
- if callable(model_settings_attr):
26
- return model_settings_attr(ctx)
27
- return model_settings_attr
24
+ model_settings = get_attr(ctx, model_settings_attr, None, auto_render=False)
25
+ if model_settings is None:
26
+ return llm_config.default_model_settings
27
+ return model_settings
28
28
 
29
29
 
30
30
  def get_model_base_url(
@@ -36,6 +36,8 @@ def get_model_base_url(
36
36
  base_url = get_attr(
37
37
  ctx, model_base_url_attr, None, auto_render=render_model_base_url
38
38
  )
39
+ if base_url is None and llm_config.default_model_base_url is not None:
40
+ return llm_config.default_model_base_url
39
41
  if isinstance(base_url, str) or base_url is None:
40
42
  return base_url
41
43
  raise ValueError(f"Invalid model base URL: {base_url}")
@@ -48,6 +50,8 @@ def get_model_api_key(
48
50
  ) -> str | None:
49
51
  """Gets the model API key, rendering if configured."""
50
52
  api_key = get_attr(ctx, model_api_key_attr, None, auto_render=render_model_api_key)
53
+ if api_key is None and llm_config.default_api_key is not None:
54
+ return llm_config.default_model_api_key
51
55
  if isinstance(api_key, str) or api_key is None:
52
56
  return api_key
53
57
  raise ValueError(f"Invalid model API key: {api_key}")
@@ -67,22 +71,22 @@ def get_model(
67
71
 
68
72
  model = get_attr(ctx, model_attr, None, auto_render=render_model)
69
73
  if model is None:
70
- return default_llm_config.get_default_model()
74
+ return llm_config.default_model
71
75
  if isinstance(model, str):
72
76
  model_base_url = get_model_base_url(
73
77
  ctx, model_base_url_attr, render_model_base_url
74
78
  )
75
79
  model_api_key = get_model_api_key(ctx, model_api_key_attr, render_model_api_key)
76
- llm_config = LLMConfig(
80
+ new_llm_config = LLMConfig(
77
81
  default_model_name=model,
78
82
  default_base_url=model_base_url,
79
83
  default_api_key=model_api_key,
80
84
  )
81
85
  if model_base_url is None and model_api_key is None:
82
- default_model_provider = default_llm_config.get_default_model_provider()
86
+ default_model_provider = llm_config.default_model_provider
83
87
  if default_model_provider is not None:
84
- llm_config.set_default_provider(default_model_provider)
85
- return llm_config.get_default_model()
88
+ new_llm_config.set_default_provider(default_model_provider)
89
+ return new_llm_config.default_model
86
90
  # If it's already a Model instance, return it directly
87
91
  if isinstance(model, Model):
88
92
  return model
@@ -110,7 +110,7 @@ def get_context_enrichment_threshold(
110
110
  ctx,
111
111
  context_enrichment_threshold_attr,
112
112
  # Use llm_config default if attribute is None
113
- llm_config.get_default_context_enrichment_threshold(),
113
+ llm_config.default_context_enrichment_threshold,
114
114
  auto_render=render_context_enrichment_threshold,
115
115
  )
116
116
  except ValueError as e:
@@ -145,7 +145,7 @@ def should_enrich_context(
145
145
  return get_bool_attr(
146
146
  ctx,
147
147
  should_enrich_context_attr,
148
- llm_config.get_default_enrich_context(),
148
+ llm_config.default_enrich_context,
149
149
  auto_render=render_enrich_context,
150
150
  )
151
151
 
@@ -34,7 +34,7 @@ def get_history_summarization_threshold(
34
34
  ctx,
35
35
  history_summarization_threshold_attr,
36
36
  # Use llm_config default if attribute is None
37
- llm_config.get_default_history_summarization_threshold(),
37
+ llm_config.default_history_summarization_threshold,
38
38
  auto_render=render_history_summarization_threshold,
39
39
  )
40
40
  except ValueError as e:
@@ -68,7 +68,7 @@ def should_summarize_history(
68
68
  ctx,
69
69
  should_summarize_history_attr,
70
70
  # Use llm_config default if attribute is None
71
- llm_config.get_default_summarize_history(),
71
+ llm_config.default_summarize_history,
72
72
  auto_render=render_summarize_history,
73
73
  )
74
74
 
zrb/task/llm/prompt.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from zrb.attr.type import StrAttr
2
2
  from zrb.context.any_context import AnyContext
3
- from zrb.llm_config import llm_config as default_llm_config
3
+ from zrb.llm_config import llm_config as llm_config
4
4
  from zrb.util.attr import get_attr, get_str_attr
5
5
 
6
6
 
@@ -18,7 +18,7 @@ def get_persona(
18
18
  )
19
19
  if persona is not None:
20
20
  return persona
21
- return default_llm_config.get_default_persona() or ""
21
+ return llm_config.default_persona or ""
22
22
 
23
23
 
24
24
  def get_base_system_prompt(
@@ -35,7 +35,7 @@ def get_base_system_prompt(
35
35
  )
36
36
  if system_prompt is not None:
37
37
  return system_prompt
38
- return default_llm_config.get_default_system_prompt() or ""
38
+ return llm_config.default_system_prompt or ""
39
39
 
40
40
 
41
41
  def get_special_instruction_prompt(
@@ -52,7 +52,7 @@ def get_special_instruction_prompt(
52
52
  )
53
53
  if special_instruction is not None:
54
54
  return special_instruction
55
- return default_llm_config.get_default_special_instruction_prompt() or ""
55
+ return llm_config.default_special_instruction_prompt or ""
56
56
 
57
57
 
58
58
  def get_combined_system_prompt(
@@ -104,7 +104,7 @@ def get_summarization_prompt(
104
104
  )
105
105
  if summarization_prompt is not None:
106
106
  return summarization_prompt
107
- return default_llm_config.get_default_summarization_prompt()
107
+ return llm_config.default_summarization_prompt
108
108
 
109
109
 
110
110
  def get_context_enrichment_prompt(
@@ -121,4 +121,4 @@ def get_context_enrichment_prompt(
121
121
  )
122
122
  if context_enrichment_prompt is not None:
123
123
  return context_enrichment_prompt
124
- return default_llm_config.get_default_context_enrichment_prompt()
124
+ return llm_config.default_context_enrichment_prompt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.6.5
3
+ Version: 1.6.7
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=kjCf8qt7tkW9BpBDRAVTMJaEPQGzCbO1wo9xt5JoM8A,2836
12
- zrb/builtin/llm/chat_session.py,sha256=DFMTda6EwjuHboP9cAurNdF5cytsKmo9NBZgGknqsds,6386
12
+ zrb/builtin/llm/chat_session.py,sha256=PSFfXPASMT-TLb-BQXI-nXbVDOnjmVJcUW6InxrpXKU,6491
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=bC4OtlYChhOlUIwstzPM4_LOfL_8NNhNpN60xpjzeNg,4375
@@ -216,7 +216,7 @@ zrb/callback/callback.py,sha256=yPVsbMqRkFH5kKIcFVg-U0VEKTP2VXVArhgQYwD-Jv8,3293
216
216
  zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
217
  zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
218
218
  zrb/cmd/cmd_val.py,sha256=7Doowyg6BK3ISSGBLt-PmlhzaEkBjWWm51cED6fAUOQ,1014
219
- zrb/config.py,sha256=15GX2HMyVnNz5QnkfeqnKN0ysNLTpmTWLDrG3vz5o0E,8477
219
+ zrb/config.py,sha256=Ipb1RhOJqM0O_CGF0-UPMiF1XFnYLu7pdWVk8BASO50,8556
220
220
  zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
221
  zrb/content_transformer/any_content_transformer.py,sha256=v8ZUbcix1GGeDQwB6OKX_1TjpY__ksxWVeqibwa_iZA,850
222
222
  zrb/content_transformer/content_transformer.py,sha256=STl77wW-I69QaGzCXjvkppngYFLufow8ybPLSyAvlHs,2404
@@ -245,9 +245,9 @@ zrb/input/option_input.py,sha256=TQB82ko5odgzkULEizBZi0e9TIHEbIgvdP0AR3RhA74,213
245
245
  zrb/input/password_input.py,sha256=szBojWxSP9QJecgsgA87OIYwQrY2AQ3USIKdDZY6snU,1465
246
246
  zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
247
247
  zrb/input/text_input.py,sha256=6T3MngWdUs0u0ZVs5Dl11w5KS7nN1RkgrIR_zKumzPM,3695
248
- zrb/llm_config.py,sha256=TAGha1PAiS-vvxM3UyAlIK_0mh3qe5clOfRKbQhGUF8,9477
248
+ zrb/llm_config.py,sha256=Jy3VEzs22MuH6mYQHNQBuFkegtQZBf5wHHPdqVjN_FQ,10286
249
249
  zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
- zrb/runner/cli.py,sha256=QDsK98t9dXoaG8A7XFwxFg5jjYaiCyimwThc5zhZ4Vo,6935
250
+ zrb/runner/cli.py,sha256=2xy4cPGqDZOm4EBGcP4WtKBXWjk74O2whDS3XarX0XQ,6925
251
251
  zrb/runner/common_util.py,sha256=JDMcwvQ8cxnv9kQrAoKVLA40Q1omfv-u5_d5MvvwHeE,1373
252
252
  zrb/runner/web_app.py,sha256=huY9SCvMC9akhEQDW6mUC0osr0b0H3EosD7GFClVt-A,2612
253
253
  zrb/runner/web_config/config.py,sha256=0wR58KreAmawGGfamm0GLZY344HaXs7qfDgHLavBDwo,3125
@@ -318,14 +318,14 @@ zrb/task/cmd_task.py,sha256=3JFkWZEhyrQAwbQJs2pgICBmkohUR9T-hjXw82JyNtA,10720
318
318
  zrb/task/http_check.py,sha256=Gf5rOB2Se2EdizuN9rp65HpGmfZkGc-clIAlHmPVehs,2565
319
319
  zrb/task/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
320
  zrb/task/llm/agent.py,sha256=6wGSsw03GdY_fj12CsJh7wxB6BnE13N8RYXaWfbiUsk,5451
321
- zrb/task/llm/config.py,sha256=R6mkbm4d5ecN4KjjZaXbqNq9-8bXfdUGl_BML8hUWqY,3205
321
+ zrb/task/llm/config.py,sha256=cVEeb-hdN2gxkxO4wbS0qwNfx5yg8UvAbmhzasJojvQ,3452
322
322
  zrb/task/llm/context.py,sha256=U9a8lxa2ikz6my0Sd5vpO763legHrMHyvBjbrqNmv0Y,3838
323
- zrb/task/llm/context_enrichment.py,sha256=dyUYhgozHZBQo-pDSoBkrlt39hOxS0i2IzDUKpPVF5U,6458
323
+ zrb/task/llm/context_enrichment.py,sha256=BKiWTorUrwDCMxghFXua3d-CHA3faUaCc3am7I3YGCg,6446
324
324
  zrb/task/llm/error.py,sha256=27DQXSG8SH1-XuvXFdZQKzP39wZDWmd_YnSTz6DJKKI,3690
325
325
  zrb/task/llm/history.py,sha256=3WMXoi7RquxosXQf3iv2_BCeF8iKtY1f407pR71xERs,7745
326
- zrb/task/llm/history_summarization.py,sha256=UTyw7JF6cDmOJhuQOYVumF65QIqJHc3eQOa8p9Buwgw,6444
326
+ zrb/task/llm/history_summarization.py,sha256=n3GbgwXlDIkgpJppMGfpqF_8Wpi9yAoZYh46O1pFQeU,6432
327
327
  zrb/task/llm/print_node.py,sha256=bpISOUxSH_JBLR-4Nq6-iLrzNWFagrKFX6u8ogYYMw8,4395
328
- zrb/task/llm/prompt.py,sha256=56qabihh9ZaDF-QJkOW2EUJ4_hhLsRZxzkZ8nAHrrz0,3911
328
+ zrb/task/llm/prompt.py,sha256=2JG9eey3wbysz4IjcmiNNYRIeffSJkbj_vr0Laxa6wE,3833
329
329
  zrb/task/llm/tool_wrapper.py,sha256=Xygd4VCY3ykjVv63pqlTI16ZG41ySkp683_5VTnL-Zo,6481
330
330
  zrb/task/llm/typing.py,sha256=c8VAuPBw_4A3DxfYdydkgedaP-LU61W9_wj3m3CAX1E,58
331
331
  zrb/task/llm_task.py,sha256=Bj_EJRv2qrCw6bgt7aHbaZwS5u0kc1R6NlqLkRw-0SE,15516
@@ -369,7 +369,7 @@ zrb/util/string/name.py,sha256=SXEfxJ1-tDOzHqmSV8kvepRVyMqs2XdV_vyoh_9XUu0,1584
369
369
  zrb/util/todo.py,sha256=VGISej2KQZERpornK-8X7bysp4JydMrMUTnG8B0-liI,20708
370
370
  zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
371
371
  zrb/xcom/xcom.py,sha256=o79rxR9wphnShrcIushA0Qt71d_p3ZTxjNf7x9hJB78,1571
372
- zrb-1.6.5.dist-info/METADATA,sha256=latmSfH5rGkN1XC7-Dw0guVWBExeQH8QcSjrzsJBsGw,8385
373
- zrb-1.6.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
374
- zrb-1.6.5.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
375
- zrb-1.6.5.dist-info/RECORD,,
372
+ zrb-1.6.7.dist-info/METADATA,sha256=EFCJigILumuwW-EMlmrEnJwDluClLCEpni55anTdAkc,8385
373
+ zrb-1.6.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
374
+ zrb-1.6.7.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
375
+ zrb-1.6.7.dist-info/RECORD,,
File without changes