zrb 1.21.28__py3-none-any.whl → 1.21.37__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 zrb might be problematic. Click here for more details.
- zrb/builtin/llm/chat_completion.py +199 -222
- zrb/builtin/llm/chat_session.py +1 -1
- zrb/builtin/llm/chat_session_cmd.py +28 -11
- zrb/builtin/llm/chat_trigger.py +3 -4
- zrb/builtin/llm/tool/cli.py +45 -14
- zrb/builtin/llm/tool/code.py +5 -1
- zrb/builtin/llm/tool/file.py +17 -0
- zrb/builtin/llm/tool/note.py +7 -7
- zrb/builtin/llm/tool/search/__init__.py +1 -0
- zrb/builtin/llm/tool/search/brave.py +66 -0
- zrb/builtin/llm/tool/search/searxng.py +61 -0
- zrb/builtin/llm/tool/search/serpapi.py +61 -0
- zrb/builtin/llm/tool/sub_agent.py +4 -1
- zrb/builtin/llm/tool/web.py +17 -72
- zrb/cmd/cmd_result.py +2 -1
- zrb/config/config.py +5 -1
- zrb/config/default_prompt/interactive_system_prompt.md +15 -12
- zrb/config/default_prompt/system_prompt.md +16 -18
- zrb/config/llm_rate_limitter.py +36 -13
- zrb/input/option_input.py +30 -2
- zrb/task/cmd_task.py +3 -0
- zrb/task/llm/agent_runner.py +6 -2
- zrb/task/llm/history_list.py +13 -0
- zrb/task/llm/history_processor.py +4 -13
- zrb/task/llm/print_node.py +64 -23
- zrb/task/llm/tool_confirmation_completer.py +41 -0
- zrb/task/llm/tool_wrapper.py +6 -4
- zrb/task/llm/workflow.py +41 -14
- zrb/task/llm_task.py +4 -5
- zrb/task/rsync_task.py +2 -0
- zrb/util/cmd/command.py +33 -10
- zrb/util/match.py +71 -0
- {zrb-1.21.28.dist-info → zrb-1.21.37.dist-info}/METADATA +1 -1
- {zrb-1.21.28.dist-info → zrb-1.21.37.dist-info}/RECORD +36 -29
- {zrb-1.21.28.dist-info → zrb-1.21.37.dist-info}/WHEEL +0 -0
- {zrb-1.21.28.dist-info → zrb-1.21.37.dist-info}/entry_points.txt +0 -0
zrb/util/cmd/command.py
CHANGED
|
@@ -5,7 +5,7 @@ import signal
|
|
|
5
5
|
import sys
|
|
6
6
|
from collections import deque
|
|
7
7
|
from collections.abc import Callable
|
|
8
|
-
from typing import TextIO
|
|
8
|
+
from typing import Any, TextIO
|
|
9
9
|
|
|
10
10
|
import psutil
|
|
11
11
|
|
|
@@ -62,6 +62,8 @@ async def run_command(
|
|
|
62
62
|
register_pid_method: Callable[[int], None] | None = None,
|
|
63
63
|
max_output_line: int = 1000,
|
|
64
64
|
max_error_line: int = 1000,
|
|
65
|
+
max_display_line: int | None = None,
|
|
66
|
+
timeout: int = 3600,
|
|
65
67
|
is_interactive: bool = False,
|
|
66
68
|
) -> tuple[CmdResult, int]:
|
|
67
69
|
"""
|
|
@@ -77,6 +79,8 @@ async def run_command(
|
|
|
77
79
|
actual_print_method = print_method if print_method is not None else print
|
|
78
80
|
if cwd is None:
|
|
79
81
|
cwd = os.getcwd()
|
|
82
|
+
if max_display_line is None:
|
|
83
|
+
max_display_line = max(max_output_line, max_error_line)
|
|
80
84
|
# While environment variables alone weren't the fix, they are still
|
|
81
85
|
# good practice for encouraging simpler output from tools.
|
|
82
86
|
child_env = (env_map or os.environ).copy()
|
|
@@ -95,17 +99,33 @@ async def run_command(
|
|
|
95
99
|
if register_pid_method is not None:
|
|
96
100
|
register_pid_method(cmd_process.pid)
|
|
97
101
|
# Use the new, simple, and correct stream reader.
|
|
102
|
+
display_lines = deque(maxlen=max_display_line if max_display_line > 0 else 0)
|
|
98
103
|
stdout_task = asyncio.create_task(
|
|
99
|
-
__read_stream(
|
|
104
|
+
__read_stream(
|
|
105
|
+
cmd_process.stdout, actual_print_method, max_output_line, display_lines
|
|
106
|
+
)
|
|
100
107
|
)
|
|
101
108
|
stderr_task = asyncio.create_task(
|
|
102
|
-
__read_stream(
|
|
109
|
+
__read_stream(
|
|
110
|
+
cmd_process.stderr, actual_print_method, max_error_line, display_lines
|
|
111
|
+
)
|
|
112
|
+
)
|
|
113
|
+
timeout_task = (
|
|
114
|
+
asyncio.create_task(asyncio.sleep(timeout)) if timeout and timeout > 0 else None
|
|
103
115
|
)
|
|
104
116
|
try:
|
|
105
|
-
|
|
117
|
+
wait_task = asyncio.create_task(cmd_process.wait())
|
|
118
|
+
done, pending = await asyncio.wait(
|
|
119
|
+
{wait_task, timeout_task} if timeout_task else {wait_task},
|
|
120
|
+
return_when=asyncio.FIRST_COMPLETED,
|
|
121
|
+
)
|
|
122
|
+
if timeout_task and timeout_task in done:
|
|
123
|
+
raise asyncio.TimeoutError()
|
|
124
|
+
return_code = wait_task.result()
|
|
106
125
|
stdout, stderr = await asyncio.gather(stdout_task, stderr_task)
|
|
107
|
-
|
|
108
|
-
|
|
126
|
+
display = "\r\n".join(display_lines)
|
|
127
|
+
return CmdResult(stdout, stderr, display=display), return_code
|
|
128
|
+
except (KeyboardInterrupt, asyncio.CancelledError, asyncio.TimeoutError):
|
|
109
129
|
try:
|
|
110
130
|
os.killpg(cmd_process.pid, signal.SIGINT)
|
|
111
131
|
await asyncio.wait_for(cmd_process.wait(), timeout=2.0)
|
|
@@ -133,13 +153,14 @@ def __get_cmd_stdin(is_interactive: bool) -> int | TextIO:
|
|
|
133
153
|
async def __read_stream(
|
|
134
154
|
stream: asyncio.StreamReader,
|
|
135
155
|
print_method: Callable[..., None],
|
|
136
|
-
|
|
156
|
+
max_line: int,
|
|
157
|
+
display_queue: deque[Any],
|
|
137
158
|
) -> str:
|
|
138
159
|
"""
|
|
139
160
|
Reads from the stream using the robust `readline()` and correctly
|
|
140
161
|
interprets carriage returns (`\r`) as distinct print events.
|
|
141
162
|
"""
|
|
142
|
-
captured_lines = deque(maxlen=
|
|
163
|
+
captured_lines = deque(maxlen=max_line if max_line > 0 else 0)
|
|
143
164
|
while True:
|
|
144
165
|
try:
|
|
145
166
|
line_bytes = await stream.readline()
|
|
@@ -149,8 +170,9 @@ async def __read_stream(
|
|
|
149
170
|
# Safety valve for the memory limit.
|
|
150
171
|
error_msg = "[ERROR] A single line of output was too long to process."
|
|
151
172
|
print_method(error_msg)
|
|
152
|
-
if
|
|
173
|
+
if max_line > 0:
|
|
153
174
|
captured_lines.append(error_msg)
|
|
175
|
+
display_queue.append(error_msg)
|
|
154
176
|
break
|
|
155
177
|
except (KeyboardInterrupt, asyncio.CancelledError):
|
|
156
178
|
raise
|
|
@@ -165,8 +187,9 @@ async def __read_stream(
|
|
|
165
187
|
print_method(clean_part, end="\r\n")
|
|
166
188
|
except Exception:
|
|
167
189
|
print_method(clean_part)
|
|
168
|
-
if
|
|
190
|
+
if max_line > 0:
|
|
169
191
|
captured_lines.append(clean_part)
|
|
192
|
+
display_queue.append(clean_part)
|
|
170
193
|
return "\r\n".join(captured_lines)
|
|
171
194
|
|
|
172
195
|
|
zrb/util/match.py
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import re
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def fuzzy_match(text: str, pattern: str) -> tuple[bool, float]:
|
|
6
|
+
"""
|
|
7
|
+
Match text against a pattern using a fuzzy search algorithm similar to VSCode's Ctrl+P.
|
|
8
|
+
|
|
9
|
+
The pattern is split into tokens by whitespace and path separators.
|
|
10
|
+
Each token must be found in the text (in order).
|
|
11
|
+
|
|
12
|
+
Args:
|
|
13
|
+
text: The string to search in.
|
|
14
|
+
pattern: The search pattern (e.g., "src main" or "util/io").
|
|
15
|
+
|
|
16
|
+
Returns:
|
|
17
|
+
A tuple (matched, score).
|
|
18
|
+
- matched: True if the pattern matches the text.
|
|
19
|
+
- score: A float representing the match quality (lower is better).
|
|
20
|
+
"""
|
|
21
|
+
text_cmp = text.lower()
|
|
22
|
+
# Normalize pattern -> tokens split on path separators or whitespace
|
|
23
|
+
search_pattern = pattern.strip()
|
|
24
|
+
tokens = (
|
|
25
|
+
[t for t in re.split(rf"[{re.escape(os.path.sep)}\s]+", search_pattern) if t]
|
|
26
|
+
if search_pattern
|
|
27
|
+
else []
|
|
28
|
+
)
|
|
29
|
+
tokens = [t.lower() for t in tokens]
|
|
30
|
+
if not tokens:
|
|
31
|
+
return True, 0.0
|
|
32
|
+
last_pos = 0
|
|
33
|
+
score = 0.0
|
|
34
|
+
for token in tokens:
|
|
35
|
+
# try contiguous substring search first
|
|
36
|
+
idx = text_cmp.find(token, last_pos)
|
|
37
|
+
if idx != -1:
|
|
38
|
+
# good match: reward contiguous early matches
|
|
39
|
+
score += idx # smaller idx preferred
|
|
40
|
+
last_pos = idx + len(token)
|
|
41
|
+
else:
|
|
42
|
+
# fallback to subsequence matching
|
|
43
|
+
pos = _find_subsequence_pos(text_cmp, token, last_pos)
|
|
44
|
+
if pos is None:
|
|
45
|
+
return False, 0.0
|
|
46
|
+
|
|
47
|
+
# subsequence match is less preferred than contiguous substring
|
|
48
|
+
score += pos + 0.5 * len(token)
|
|
49
|
+
last_pos = pos + len(token)
|
|
50
|
+
# prefer shorter texts when score ties, so include length as tiebreaker
|
|
51
|
+
score += 0.01 * len(text)
|
|
52
|
+
return True, score
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _find_subsequence_pos(hay: str, needle: str, start: int = 0) -> int | None:
|
|
56
|
+
"""
|
|
57
|
+
Try to locate needle in hay as a subsequence starting at `start`.
|
|
58
|
+
Returns the index of the first matched character of the subsequence or None if not match.
|
|
59
|
+
"""
|
|
60
|
+
if not needle:
|
|
61
|
+
return start
|
|
62
|
+
i = start
|
|
63
|
+
j = 0
|
|
64
|
+
first_pos = None
|
|
65
|
+
while i < len(hay) and j < len(needle):
|
|
66
|
+
if hay[i] == needle[j]:
|
|
67
|
+
if first_pos is None:
|
|
68
|
+
first_pos = i
|
|
69
|
+
j += 1
|
|
70
|
+
i += 1
|
|
71
|
+
return first_pos if j == len(needle) else None
|
|
@@ -10,23 +10,27 @@ zrb/builtin/group.py,sha256=W_IA_4414c8Wi8QazqcT6Gq6UftrKwy95yMF114EJtI,2677
|
|
|
10
10
|
zrb/builtin/http.py,sha256=L6RE73c65wWwG5iHFN-tpOhyh56KsrgVskDd3c3YXtk,4246
|
|
11
11
|
zrb/builtin/jwt.py,sha256=3M5uaQhJZbKQLjTUft1OwPz_JxtmK-xtkjxWjciOQho,2859
|
|
12
12
|
zrb/builtin/llm/attachment.py,sha256=UwhOGtZY9Px9aebsKfTTw2_ZIpbsqx0XgoAonk6Ewkc,1344
|
|
13
|
-
zrb/builtin/llm/chat_completion.py,sha256=
|
|
14
|
-
zrb/builtin/llm/chat_session.py,sha256=
|
|
15
|
-
zrb/builtin/llm/chat_session_cmd.py,sha256=
|
|
16
|
-
zrb/builtin/llm/chat_trigger.py,sha256=
|
|
13
|
+
zrb/builtin/llm/chat_completion.py,sha256=1afNkExKf-TGrbwwmcZHhSvA0zy4MG98-VEMRmD1NmY,10614
|
|
14
|
+
zrb/builtin/llm/chat_session.py,sha256=xhnU6Z_P4wLZfdA0lwHPftHkIOkTr60R3pw6-2v6cXY,9160
|
|
15
|
+
zrb/builtin/llm/chat_session_cmd.py,sha256=bR3FM4hY36fXgykTvncgu9ARsBfS_fzbfPBHHI0uIkw,11506
|
|
16
|
+
zrb/builtin/llm/chat_trigger.py,sha256=7Rdsi7TbA9cf3pqjLJosjHOfQ1bhsDDLVaL-5n_gOzk,2673
|
|
17
17
|
zrb/builtin/llm/history.py,sha256=qNRYq6SlJH5iuzdra_FOJxevWXCDh5YMvN2qPNLjI8I,3099
|
|
18
18
|
zrb/builtin/llm/input.py,sha256=Nw-26uTWp2QhUgKJcP_IMHmtk-b542CCSQ_vCOjhvhM,877
|
|
19
19
|
zrb/builtin/llm/llm_ask.py,sha256=6fUbCFjgjFiTVf-88WJZ1RD5wgOzmsVEpD3dR16Jl_8,8598
|
|
20
20
|
zrb/builtin/llm/previous-session.js,sha256=xMKZvJoAbrwiyHS0OoPrWuaKxWYLoyR5sguePIoCjTY,816
|
|
21
21
|
zrb/builtin/llm/tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
zrb/builtin/llm/tool/api.py,sha256=ItGJLr_1vhmLcitfIKeVDrnJEWdsyqucDnQ7enIC8fQ,2394
|
|
23
|
-
zrb/builtin/llm/tool/cli.py,sha256=
|
|
24
|
-
zrb/builtin/llm/tool/code.py,sha256=
|
|
25
|
-
zrb/builtin/llm/tool/file.py,sha256=
|
|
26
|
-
zrb/builtin/llm/tool/note.py,sha256=
|
|
23
|
+
zrb/builtin/llm/tool/cli.py,sha256=0D_AC7ZWCnE7F1HcI9ON8Ks-LgRhNL_B1TLnuIh5ubM,2474
|
|
24
|
+
zrb/builtin/llm/tool/code.py,sha256=1sErE5tsticXGNhiE0bTjI21Zq6zHMgS2hVM6dsAcww,7916
|
|
25
|
+
zrb/builtin/llm/tool/file.py,sha256=pzaIWB64aaEuW2I3TyuZwpNQa_nMv-zqJzSfTfjT9GQ,20183
|
|
26
|
+
zrb/builtin/llm/tool/note.py,sha256=USDQe8F1ddQp5dhv2u35rUN9EfJQl5BaWJIs6Xg9ZZY,2597
|
|
27
27
|
zrb/builtin/llm/tool/rag.py,sha256=lmoA42IWHcBOWTsWzYGklLs1YoiEldvu_Bi5bp6gbts,9439
|
|
28
|
-
zrb/builtin/llm/tool/
|
|
29
|
-
zrb/builtin/llm/tool/
|
|
28
|
+
zrb/builtin/llm/tool/search/__init__.py,sha256=wiMaie_IYt00fak-LrioC1qEZDs0SwYz4UWwidHfpFU,49
|
|
29
|
+
zrb/builtin/llm/tool/search/brave.py,sha256=ifuq3qX1rWZjJWw1afGD8VNkqED9Vwv5GJaJYwXmYdM,2271
|
|
30
|
+
zrb/builtin/llm/tool/search/searxng.py,sha256=kSp3HhhHu43eR8RvuzgF5f9EwSy0-uQQyWBYaYfZ82I,2092
|
|
31
|
+
zrb/builtin/llm/tool/search/serpapi.py,sha256=t5AM5PJ_j8VQQWHxFN61-WkDmcXVuvC1ZrFQ1tXZw1w,2101
|
|
32
|
+
zrb/builtin/llm/tool/sub_agent.py,sha256=dUF5yyFZFUHUswJl3L8ZDqjz80_47O_YUuHzEO2e6vM,5967
|
|
33
|
+
zrb/builtin/llm/tool/web.py,sha256=nBpCN9sZ66Ly6nzpnNnUunXN_OJqClmShGI-6saEWFk,4364
|
|
30
34
|
zrb/builtin/md5.py,sha256=690RV2LbW7wQeTFxY-lmmqTSVEEZv3XZbjEUW1Q3XpE,1480
|
|
31
35
|
zrb/builtin/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
36
|
zrb/builtin/project/add/fastapp/fastapp_input.py,sha256=MKlWR_LxWhM_DcULCtLfL_IjTxpDnDBkn9KIqNmajFs,310
|
|
@@ -222,21 +226,21 @@ zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
222
226
|
zrb/callback/any_callback.py,sha256=PqEJYX_RigXEmoPniSeZusZBZSLWEoVIHvHk8MZ0Mvg,253
|
|
223
227
|
zrb/callback/callback.py,sha256=PFhCqzfxdk6IAthmXcZ13DokT62xtBzJr_ciLw6I8Zg,4030
|
|
224
228
|
zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
|
-
zrb/cmd/cmd_result.py,sha256=
|
|
229
|
+
zrb/cmd/cmd_result.py,sha256=5hGkWqHCBoh6_c9JgGw2mzAQ40vFy7wHvtRkTRKdJGY,642
|
|
226
230
|
zrb/cmd/cmd_val.py,sha256=7Doowyg6BK3ISSGBLt-PmlhzaEkBjWWm51cED6fAUOQ,1014
|
|
227
|
-
zrb/config/config.py,sha256=
|
|
231
|
+
zrb/config/config.py,sha256=z01roukj8xJXZJaAPjf2IZ1gDjzRajok4UBx1VqiMvU,20041
|
|
228
232
|
zrb/config/default_prompt/file_extractor_system_prompt.md,sha256=cVqhI016-fKa8PKz2kIxQAC0hPExgMT2ks-rVlz4K60,3789
|
|
229
|
-
zrb/config/default_prompt/interactive_system_prompt.md,sha256=
|
|
233
|
+
zrb/config/default_prompt/interactive_system_prompt.md,sha256=LewDZo_zXMP6U_42c5egAY0Hb4KYp4Tbf3rUd9bPK8k,2659
|
|
230
234
|
zrb/config/default_prompt/persona.md,sha256=GfUJ4-Mlf_Bm1YTzxFNkPkdVbAi06ZDVYh-iIma3NOs,253
|
|
231
235
|
zrb/config/default_prompt/repo_extractor_system_prompt.md,sha256=lmfMMc9BLLATHAVMmSEeXr7xTeiF4FWv_AWYedgcbDE,3786
|
|
232
236
|
zrb/config/default_prompt/repo_summarizer_system_prompt.md,sha256=-T_baTblam2XlW99e72jfgsrIBTjpABMBXRFI_7L6RA,1987
|
|
233
237
|
zrb/config/default_prompt/summarization_prompt.md,sha256=0FI7GO9wkOOP7I_CrJPECtrqDHE_SMNr9aKKHC1GtPI,3633
|
|
234
|
-
zrb/config/default_prompt/system_prompt.md,sha256=
|
|
238
|
+
zrb/config/default_prompt/system_prompt.md,sha256=ipPaECOM4KQj5u2bzQj1f1w0J78vuZuLnxF5orZWElo,2857
|
|
235
239
|
zrb/config/llm_config.py,sha256=Nt7P0Q6bRpLbGi3IZ1WPeOxUsUUL438_8ufpML1WN28,12798
|
|
236
240
|
zrb/config/llm_context/config.py,sha256=WdqoFxc-PSwNh9aeTWhHMNiQZotbdQ8WaVr3YcezGNo,6487
|
|
237
241
|
zrb/config/llm_context/config_parser.py,sha256=PLfLfMgxPBj7Ryy-37gCZIHrweo1XiFQGnUqjvKXU_Y,1465
|
|
238
242
|
zrb/config/llm_context/workflow.py,sha256=cHkUYBk2Mc35RBuma7Vn3QCNaHd95Ajqr1N4L43FFZs,2681
|
|
239
|
-
zrb/config/llm_rate_limitter.py,sha256=
|
|
243
|
+
zrb/config/llm_rate_limitter.py,sha256=KIE3H7ZE-jILu4FR35F1UeZLa-YJrooHP2UlBmeLXFg,8211
|
|
240
244
|
zrb/config/web_auth_config.py,sha256=_PXatQTYh2mX9H3HSYSQKp13zm1RlLyVIoeIr6KYMQ8,6279
|
|
241
245
|
zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
242
246
|
zrb/content_transformer/any_content_transformer.py,sha256=v8ZUbcix1GGeDQwB6OKX_1TjpY__ksxWVeqibwa_iZA,850
|
|
@@ -262,7 +266,7 @@ zrb/input/base_input.py,sha256=HCTxBZwnK-gP-F7XQGDbyyZHvwYR0fwNICzqVUw5Cg8,4169
|
|
|
262
266
|
zrb/input/bool_input.py,sha256=9ir8aTm8zaufrJ84_EerC5vOjyn4hHZ3BiLzFqPgPFM,1839
|
|
263
267
|
zrb/input/float_input.py,sha256=8G9lJKLlb_Upk9m5pBF9JwqlAAiYJLrbIItLnyzPxpg,1475
|
|
264
268
|
zrb/input/int_input.py,sha256=UhxCFYlZdJcgUSGGEkz301zOgRVpK0KDG_IxxWpQfMU,1457
|
|
265
|
-
zrb/input/option_input.py,sha256=
|
|
269
|
+
zrb/input/option_input.py,sha256=9GPT3kqFzYPUO9O0N3e5GdFrQ3dTlghRPrng1uSfzFQ,3776
|
|
266
270
|
zrb/input/password_input.py,sha256=szBojWxSP9QJecgsgA87OIYwQrY2AQ3USIKdDZY6snU,1465
|
|
267
271
|
zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
|
|
268
272
|
zrb/input/text_input.py,sha256=9vpXJt7ASa_Gq2zFbVWT1p-PBjYf6DpyXfuhIH-rJgs,2969
|
|
@@ -351,11 +355,11 @@ zrb/task/base/monitoring.py,sha256=w4_q3e7dwcJureUfcJr7vhpwQ5RCikr0VHGlGA_crrM,5
|
|
|
351
355
|
zrb/task/base/operators.py,sha256=uAMFqpZJsPnCrojgOl1FUDXTS15mtOa_IqiAXltyYRU,1576
|
|
352
356
|
zrb/task/base_task.py,sha256=upwuqAfwNDXTYM-uRDJhgZqqqARI03T6ksUbFHHLEH0,13321
|
|
353
357
|
zrb/task/base_trigger.py,sha256=nbhFY3QCLNZkXxRorjyC4k2sEJumzR8YCNjOhFBSjJ8,7165
|
|
354
|
-
zrb/task/cmd_task.py,sha256
|
|
358
|
+
zrb/task/cmd_task.py,sha256=-R8NQr-68eDZMM4ibEt749mUfXQIR68GB-yiQ5YLf04,10996
|
|
355
359
|
zrb/task/http_check.py,sha256=Gf5rOB2Se2EdizuN9rp65HpGmfZkGc-clIAlHmPVehs,2565
|
|
356
360
|
zrb/task/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
357
361
|
zrb/task/llm/agent.py,sha256=FrwqAt2SKm78C1fXAPJrXOZfd8iu-13n_R3tVetJlfI,8333
|
|
358
|
-
zrb/task/llm/agent_runner.py,sha256=
|
|
362
|
+
zrb/task/llm/agent_runner.py,sha256=DiSlv1BedkBT218PAZghmrt0s72LHHPIvFekpgY7fpg,5392
|
|
359
363
|
zrb/task/llm/config.py,sha256=wCcwxcaW2dgjxsjrXnG1inyKpQWs37kXJ-L_CO-KJ5s,4486
|
|
360
364
|
zrb/task/llm/conversation_history.py,sha256=Fye5oryjdDN_JGBkxoPGUsjuU0FTHis1Ue6nTovo1Zo,7112
|
|
361
365
|
zrb/task/llm/conversation_history_model.py,sha256=2ScAuu5ne6X6F0bXm-21ckEoqcDlWDeuD5L4DPPdz-Q,2629
|
|
@@ -373,17 +377,19 @@ zrb/task/llm/default_workflow/shell/workflow.md,sha256=_5aW5DEjOauiUANNWgbfEFmH5
|
|
|
373
377
|
zrb/task/llm/error.py,sha256=QR-nIohS6pBpC_16cWR-fw7Mevo1sNYAiXMBsh_CJDE,4157
|
|
374
378
|
zrb/task/llm/file_replacement.py,sha256=cUgtcfH9OlHzPwdZhSzWVNs7ZO0YYh0ajxqMwfIbvD0,7193
|
|
375
379
|
zrb/task/llm/file_tool_model.py,sha256=bNH-nrHamXtc_sUiPZ1TYI6CqefPIXj3tP4FbURiU1Y,1721
|
|
376
|
-
zrb/task/llm/
|
|
380
|
+
zrb/task/llm/history_list.py,sha256=pPR9nwhlQ4PEcGt3NFokPqRzvHsZzHmKlxlIqKKmJX8,380
|
|
381
|
+
zrb/task/llm/history_processor.py,sha256=7TyY4YvAqaNLUwCBII5mQq5HqsP9Qc6s0XMQYUXfAGo,7301
|
|
377
382
|
zrb/task/llm/history_summarization.py,sha256=YqLm9Q5xzFVTL5XwnWu3XwaMgSxKskDFvoi2MIThRB0,927
|
|
378
|
-
zrb/task/llm/print_node.py,sha256=
|
|
383
|
+
zrb/task/llm/print_node.py,sha256=pBN_wRfl-x9YGR6fu3d9REI6OS_H8dKKsDQxHDCZjSA,10452
|
|
379
384
|
zrb/task/llm/prompt.py,sha256=jlFNWa1IMCYNQh9Ccq9DB1dq9964IOQJ5jNSC9rMpkw,11366
|
|
380
385
|
zrb/task/llm/subagent_conversation_history.py,sha256=y8UbKF2GpjB-r1bc2xCpzepriVEq0wfdyFuHOwfpPfk,1647
|
|
381
|
-
zrb/task/llm/
|
|
386
|
+
zrb/task/llm/tool_confirmation_completer.py,sha256=rOYZdq5No9DfLUG889cr99cUX6XmoO29Yh9FUcdMMio,1534
|
|
387
|
+
zrb/task/llm/tool_wrapper.py,sha256=pOy-WVASeBNW76TvZscxqjhT55xuoqg92YjDf4Ll5_I,12634
|
|
382
388
|
zrb/task/llm/typing.py,sha256=c8VAuPBw_4A3DxfYdydkgedaP-LU61W9_wj3m3CAX1E,58
|
|
383
|
-
zrb/task/llm/workflow.py,sha256=
|
|
384
|
-
zrb/task/llm_task.py,sha256=
|
|
389
|
+
zrb/task/llm/workflow.py,sha256=HT_Tj3tzehdn4koUGHqyWeS6-eb11WgmE6z8W_2wHxc,4025
|
|
390
|
+
zrb/task/llm_task.py,sha256=ZbVF2DBE2aknY9ygCBHj0Oe2tDRRIN9C_rEB7dSwdps,16539
|
|
385
391
|
zrb/task/make_task.py,sha256=rWay-Wz2nAOr4mhMcJZuuehuWULfSBmZm5XcDN4ZN3c,2198
|
|
386
|
-
zrb/task/rsync_task.py,sha256=
|
|
392
|
+
zrb/task/rsync_task.py,sha256=Y2kFBB7pz3skogtJEj-f8Pyyhzc37Ii_B2RrWlwbUv8,7177
|
|
387
393
|
zrb/task/scaffolder.py,sha256=rME18w1HJUHXgi9eTYXx_T2G4JdqDYzBoNOkdOOo5-o,6806
|
|
388
394
|
zrb/task/scheduler.py,sha256=iC1BmXsf_59B-03Uqiu_yO4hsrAMDXVpedWr8w7R-iM,3127
|
|
389
395
|
zrb/task/task.py,sha256=KCrCaWYOQQvv1RJsYtHDeo9RBFmlXQ28oKyEFU4Q7pA,73
|
|
@@ -399,7 +405,7 @@ zrb/util/cli/style.py,sha256=D_548KG1gXEirQGdkAVTc81vBdCeInXtnG1gV1yabBA,6655
|
|
|
399
405
|
zrb/util/cli/subcommand.py,sha256=umTZIlrL-9g-qc_eRRgdaQgK-whvXK1roFfvnbuY7NQ,1753
|
|
400
406
|
zrb/util/cli/text.py,sha256=kNg71NAdT6dAMoe0YN9DgWqV7udh8GlQr6ndXR_6NLA,968
|
|
401
407
|
zrb/util/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
402
|
-
zrb/util/cmd/command.py,sha256=
|
|
408
|
+
zrb/util/cmd/command.py,sha256=qI0TT3doyjB_hXJkSiCQOednqlidREh_cBX8lOmvQ8o,8444
|
|
403
409
|
zrb/util/cmd/remote.py,sha256=NGQq2_IrUMDoZz3qmcgtnNYVGjMHaBKQpZxImf0yfXA,1296
|
|
404
410
|
zrb/util/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
405
411
|
zrb/util/codemod/modification_mode.py,sha256=z_4U2gjskEHkFm6UtBe_Wbm-erufYaXgPbdCQ6CZMlw,128
|
|
@@ -421,6 +427,7 @@ zrb/util/group.py,sha256=T82yr3qg9I5k10VPXkMyrIRIqyfzadSH813bqzwKEPI,4718
|
|
|
421
427
|
zrb/util/init_path.py,sha256=9eN7CkWNGhDBpjTQs2j9YHVMzui7Y8DEb1WP4aTPzeo,659
|
|
422
428
|
zrb/util/load.py,sha256=DK0KYSlu48HCoGPqnW1IxnE3pHrZSPCstfz8Fjyqqv8,2140
|
|
423
429
|
zrb/util/markdown.py,sha256=UtXMKgUBBtFhR-fntNAMatG7jaKqZWI_D1yFb4tDQwU,2200
|
|
430
|
+
zrb/util/match.py,sha256=9xPSfdaJJdzxBTencwG23-qY9CjX5jUqrPogjeuMxbU,2364
|
|
424
431
|
zrb/util/run.py,sha256=vu-mcSWDP_WuuvIKqM_--Gk3WkABO1oTXiHmBRTvVQk,546
|
|
425
432
|
zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
426
433
|
zrb/util/string/conversion.py,sha256=ovSQtogMCt2hQcyh1neSp_XdbFx4WX-Mw5xoUlyOnRQ,6271
|
|
@@ -432,7 +439,7 @@ zrb/util/truncate.py,sha256=eSzmjBpc1Qod3lM3M73snNbDOcARHukW_tq36dWdPvc,921
|
|
|
432
439
|
zrb/util/yaml.py,sha256=MXcqQTOYzx16onFxxg6HNdavxDK4RQjvKUi2NMKd19Y,6510
|
|
433
440
|
zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
434
441
|
zrb/xcom/xcom.py,sha256=W5BOF9w5fVX2ZBlbOTMsXHbY0yU8Advm-_oWJ3DJvDM,1824
|
|
435
|
-
zrb-1.21.
|
|
436
|
-
zrb-1.21.
|
|
437
|
-
zrb-1.21.
|
|
438
|
-
zrb-1.21.
|
|
442
|
+
zrb-1.21.37.dist-info/METADATA,sha256=yC8BkPpGnsIZCCFF7LLtDHJv2ao2qdqTp-ui8MxFs6U,10622
|
|
443
|
+
zrb-1.21.37.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
444
|
+
zrb-1.21.37.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
|
|
445
|
+
zrb-1.21.37.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|