zrb 1.8.10__py3-none-any.whl → 1.21.29__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.

Files changed (147) hide show
  1. zrb/__init__.py +126 -113
  2. zrb/__main__.py +1 -1
  3. zrb/attr/type.py +10 -7
  4. zrb/builtin/__init__.py +2 -50
  5. zrb/builtin/git.py +12 -1
  6. zrb/builtin/group.py +31 -15
  7. zrb/builtin/http.py +7 -8
  8. zrb/builtin/llm/attachment.py +40 -0
  9. zrb/builtin/llm/chat_completion.py +274 -0
  10. zrb/builtin/llm/chat_session.py +152 -85
  11. zrb/builtin/llm/chat_session_cmd.py +288 -0
  12. zrb/builtin/llm/chat_trigger.py +79 -0
  13. zrb/builtin/llm/history.py +7 -9
  14. zrb/builtin/llm/llm_ask.py +221 -98
  15. zrb/builtin/llm/tool/api.py +74 -52
  16. zrb/builtin/llm/tool/cli.py +46 -17
  17. zrb/builtin/llm/tool/code.py +71 -90
  18. zrb/builtin/llm/tool/file.py +301 -241
  19. zrb/builtin/llm/tool/note.py +84 -0
  20. zrb/builtin/llm/tool/rag.py +38 -8
  21. zrb/builtin/llm/tool/sub_agent.py +67 -50
  22. zrb/builtin/llm/tool/web.py +146 -122
  23. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +7 -7
  24. zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +5 -5
  25. zrb/builtin/project/add/fastapp/fastapp_util.py +1 -1
  26. zrb/builtin/searxng/config/settings.yml +5671 -0
  27. zrb/builtin/searxng/start.py +21 -0
  28. zrb/builtin/setup/latex/ubuntu.py +1 -0
  29. zrb/builtin/setup/ubuntu.py +1 -1
  30. zrb/builtin/shell/autocomplete/bash.py +4 -3
  31. zrb/builtin/shell/autocomplete/zsh.py +4 -3
  32. zrb/builtin/todo.py +13 -2
  33. zrb/config/config.py +614 -0
  34. zrb/config/default_prompt/file_extractor_system_prompt.md +112 -0
  35. zrb/config/default_prompt/interactive_system_prompt.md +29 -0
  36. zrb/config/default_prompt/persona.md +1 -0
  37. zrb/config/default_prompt/repo_extractor_system_prompt.md +112 -0
  38. zrb/config/default_prompt/repo_summarizer_system_prompt.md +29 -0
  39. zrb/config/default_prompt/summarization_prompt.md +57 -0
  40. zrb/config/default_prompt/system_prompt.md +38 -0
  41. zrb/config/llm_config.py +339 -0
  42. zrb/config/llm_context/config.py +166 -0
  43. zrb/config/llm_context/config_parser.py +40 -0
  44. zrb/config/llm_context/workflow.py +81 -0
  45. zrb/config/llm_rate_limitter.py +190 -0
  46. zrb/{runner → config}/web_auth_config.py +17 -22
  47. zrb/context/any_shared_context.py +17 -1
  48. zrb/context/context.py +16 -2
  49. zrb/context/shared_context.py +18 -8
  50. zrb/group/any_group.py +12 -5
  51. zrb/group/group.py +67 -3
  52. zrb/input/any_input.py +5 -1
  53. zrb/input/base_input.py +18 -6
  54. zrb/input/option_input.py +13 -1
  55. zrb/input/text_input.py +8 -25
  56. zrb/runner/cli.py +25 -23
  57. zrb/runner/common_util.py +24 -19
  58. zrb/runner/web_app.py +3 -3
  59. zrb/runner/web_route/docs_route.py +1 -1
  60. zrb/runner/web_route/error_page/serve_default_404.py +1 -1
  61. zrb/runner/web_route/error_page/show_error_page.py +1 -1
  62. zrb/runner/web_route/home_page/home_page_route.py +2 -2
  63. zrb/runner/web_route/login_api_route.py +1 -1
  64. zrb/runner/web_route/login_page/login_page_route.py +2 -2
  65. zrb/runner/web_route/logout_api_route.py +1 -1
  66. zrb/runner/web_route/logout_page/logout_page_route.py +2 -2
  67. zrb/runner/web_route/node_page/group/show_group_page.py +1 -1
  68. zrb/runner/web_route/node_page/node_page_route.py +1 -1
  69. zrb/runner/web_route/node_page/task/show_task_page.py +1 -1
  70. zrb/runner/web_route/refresh_token_api_route.py +1 -1
  71. zrb/runner/web_route/static/static_route.py +1 -1
  72. zrb/runner/web_route/task_input_api_route.py +6 -6
  73. zrb/runner/web_route/task_session_api_route.py +20 -12
  74. zrb/runner/web_util/cookie.py +1 -1
  75. zrb/runner/web_util/token.py +1 -1
  76. zrb/runner/web_util/user.py +8 -4
  77. zrb/session/any_session.py +24 -17
  78. zrb/session/session.py +50 -25
  79. zrb/session_state_logger/any_session_state_logger.py +9 -4
  80. zrb/session_state_logger/file_session_state_logger.py +16 -6
  81. zrb/session_state_logger/session_state_logger_factory.py +1 -1
  82. zrb/task/any_task.py +30 -9
  83. zrb/task/base/context.py +17 -9
  84. zrb/task/base/execution.py +15 -8
  85. zrb/task/base/lifecycle.py +8 -4
  86. zrb/task/base/monitoring.py +12 -7
  87. zrb/task/base_task.py +69 -5
  88. zrb/task/base_trigger.py +12 -5
  89. zrb/task/cmd_task.py +1 -1
  90. zrb/task/llm/agent.py +154 -161
  91. zrb/task/llm/agent_runner.py +152 -0
  92. zrb/task/llm/config.py +47 -18
  93. zrb/task/llm/conversation_history.py +209 -0
  94. zrb/task/llm/conversation_history_model.py +67 -0
  95. zrb/task/llm/default_workflow/coding/workflow.md +41 -0
  96. zrb/task/llm/default_workflow/copywriting/workflow.md +68 -0
  97. zrb/task/llm/default_workflow/git/workflow.md +118 -0
  98. zrb/task/llm/default_workflow/golang/workflow.md +128 -0
  99. zrb/task/llm/default_workflow/html-css/workflow.md +135 -0
  100. zrb/task/llm/default_workflow/java/workflow.md +146 -0
  101. zrb/task/llm/default_workflow/javascript/workflow.md +158 -0
  102. zrb/task/llm/default_workflow/python/workflow.md +160 -0
  103. zrb/task/llm/default_workflow/researching/workflow.md +153 -0
  104. zrb/task/llm/default_workflow/rust/workflow.md +162 -0
  105. zrb/task/llm/default_workflow/shell/workflow.md +299 -0
  106. zrb/task/llm/error.py +24 -10
  107. zrb/task/llm/file_replacement.py +206 -0
  108. zrb/task/llm/file_tool_model.py +57 -0
  109. zrb/task/llm/history_processor.py +206 -0
  110. zrb/task/llm/history_summarization.py +11 -166
  111. zrb/task/llm/print_node.py +193 -69
  112. zrb/task/llm/prompt.py +242 -45
  113. zrb/task/llm/subagent_conversation_history.py +41 -0
  114. zrb/task/llm/tool_wrapper.py +260 -57
  115. zrb/task/llm/workflow.py +76 -0
  116. zrb/task/llm_task.py +182 -171
  117. zrb/task/make_task.py +2 -3
  118. zrb/task/rsync_task.py +26 -11
  119. zrb/task/scheduler.py +4 -4
  120. zrb/util/attr.py +54 -39
  121. zrb/util/callable.py +23 -0
  122. zrb/util/cli/markdown.py +12 -0
  123. zrb/util/cli/text.py +30 -0
  124. zrb/util/file.py +29 -11
  125. zrb/util/git.py +8 -11
  126. zrb/util/git_diff_model.py +10 -0
  127. zrb/util/git_subtree.py +9 -14
  128. zrb/util/git_subtree_model.py +32 -0
  129. zrb/util/init_path.py +1 -1
  130. zrb/util/markdown.py +62 -0
  131. zrb/util/string/conversion.py +2 -2
  132. zrb/util/todo.py +17 -50
  133. zrb/util/todo_model.py +46 -0
  134. zrb/util/truncate.py +23 -0
  135. zrb/util/yaml.py +204 -0
  136. zrb/xcom/xcom.py +10 -0
  137. zrb-1.21.29.dist-info/METADATA +270 -0
  138. {zrb-1.8.10.dist-info → zrb-1.21.29.dist-info}/RECORD +140 -98
  139. {zrb-1.8.10.dist-info → zrb-1.21.29.dist-info}/WHEEL +1 -1
  140. zrb/config.py +0 -335
  141. zrb/llm_config.py +0 -411
  142. zrb/llm_rate_limitter.py +0 -125
  143. zrb/task/llm/context.py +0 -102
  144. zrb/task/llm/context_enrichment.py +0 -199
  145. zrb/task/llm/history.py +0 -211
  146. zrb-1.8.10.dist-info/METADATA +0 -264
  147. {zrb-1.8.10.dist-info → zrb-1.21.29.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,21 @@
1
+ import os
2
+
3
+ from zrb.builtin.group import searxng_group
4
+ from zrb.config.config import CFG
5
+ from zrb.input.int_input import IntInput
6
+ from zrb.task.cmd_task import CmdTask
7
+ from zrb.task.http_check import HttpCheck
8
+
9
+ start_searxng = searxng_group.add_task(
10
+ CmdTask(
11
+ name="start-searxng",
12
+ input=IntInput(name="port", default=CFG.SEARXNG_PORT),
13
+ cwd=os.path.dirname(__file__),
14
+ cmd="docker run --rm -p {ctx.input.port}:8080 -v ./config/:/etc/searxng/ docker.io/searxng/searxng:latest -d", # noqa
15
+ readiness_check=HttpCheck(
16
+ "check-searxng",
17
+ url="http://localhost:{ctx.input.port}",
18
+ ),
19
+ ),
20
+ alias="start",
21
+ )
@@ -12,6 +12,7 @@ setup_latex_on_ubuntu = setup_latex_group.add_task(
12
12
  "texlive-fonts-extra texlive-latex-extra",
13
13
  ],
14
14
  render_cmd=False,
15
+ is_interactive=True,
15
16
  ),
16
17
  alias="ubuntu",
17
18
  )
@@ -22,7 +22,7 @@ setup_ubuntu = setup_group.add_task(
22
22
  description="🐧 Setup ubuntu",
23
23
  cmd=[
24
24
  "sudo apt install -y \\",
25
- "build-essential python3-distutils libssl-dev zlib1g-dev \\"
25
+ "build-essential libssl-dev zlib1g-dev \\"
26
26
  "libbz2-dev libreadline-dev libsqlite3-dev libpq-dev python3-dev \\",
27
27
  "llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \\",
28
28
  "liblzma-dev python3-openssl libblas-dev liblapack-dev rustc \\",
@@ -1,5 +1,6 @@
1
1
  from zrb.builtin.group import shell_autocomplete_group
2
- from zrb.context.context import Context
2
+ from zrb.config.config import CFG
3
+ from zrb.context.context import AnyContext
3
4
  from zrb.task.make_task import make_task
4
5
 
5
6
  _COMPLETION_SCRIPT = """
@@ -36,5 +37,5 @@ complete -F _zrb_complete zrb
36
37
  group=shell_autocomplete_group,
37
38
  alias="bash",
38
39
  )
39
- def make_bash_autocomplete(ctx: Context):
40
- return _COMPLETION_SCRIPT
40
+ def make_bash_autocomplete(ctx: AnyContext):
41
+ return _COMPLETION_SCRIPT.replace("zrb", CFG.ROOT_GROUP_NAME)
@@ -1,5 +1,6 @@
1
1
  from zrb.builtin.group import shell_autocomplete_group
2
- from zrb.context.context import Context
2
+ from zrb.config.config import CFG
3
+ from zrb.context.context import AnyContext
3
4
  from zrb.task.make_task import make_task
4
5
 
5
6
  _COMPLETION_SCRIPT = """
@@ -33,5 +34,5 @@ compdef _zrb_complete zrb
33
34
  group=shell_autocomplete_group,
34
35
  alias="zsh",
35
36
  )
36
- def make_zsh_autocomplete(ctx: Context):
37
- return _COMPLETION_SCRIPT
37
+ def make_zsh_autocomplete(ctx: AnyContext):
38
+ return _COMPLETION_SCRIPT.replace("zrb", CFG.ROOT_GROUP_NAME)
zrb/builtin/todo.py CHANGED
@@ -4,14 +4,13 @@ import os
4
4
  from typing import Any
5
5
 
6
6
  from zrb.builtin.group import todo_group
7
- from zrb.config import CFG
7
+ from zrb.config.config import CFG
8
8
  from zrb.context.any_context import AnyContext
9
9
  from zrb.input.str_input import StrInput
10
10
  from zrb.input.text_input import TextInput
11
11
  from zrb.task.make_task import make_task
12
12
  from zrb.util.file import read_file, write_file
13
13
  from zrb.util.todo import (
14
- TodoTaskModel,
15
14
  add_duration,
16
15
  cascade_todo_task,
17
16
  get_visual_todo_card,
@@ -72,6 +71,8 @@ def _get_filter_input(
72
71
  alias="add",
73
72
  )
74
73
  def add_todo(ctx: AnyContext):
74
+ from zrb.util.todo_model import TodoTaskModel
75
+
75
76
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
76
77
  todo_list: list[TodoTaskModel] = []
77
78
  if os.path.isfile(todo_file_path):
@@ -108,6 +109,8 @@ def add_todo(ctx: AnyContext):
108
109
  alias="list",
109
110
  )
110
111
  def list_todo(ctx: AnyContext):
112
+ from zrb.util.todo_model import TodoTaskModel
113
+
111
114
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
112
115
  todo_list: list[TodoTaskModel] = []
113
116
  if os.path.isfile(todo_file_path):
@@ -123,6 +126,8 @@ def list_todo(ctx: AnyContext):
123
126
  alias="show",
124
127
  )
125
128
  def show_todo(ctx: AnyContext):
129
+ from zrb.util.todo_model import TodoTaskModel
130
+
126
131
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
127
132
  todo_list: list[TodoTaskModel] = []
128
133
  todo_list: list[TodoTaskModel] = []
@@ -157,6 +162,8 @@ def show_todo(ctx: AnyContext):
157
162
  alias="complete",
158
163
  )
159
164
  def complete_todo(ctx: AnyContext):
165
+ from zrb.util.todo_model import TodoTaskModel
166
+
160
167
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
161
168
  todo_list: list[TodoTaskModel] = []
162
169
  if os.path.isfile(todo_file_path):
@@ -187,6 +194,8 @@ def complete_todo(ctx: AnyContext):
187
194
  alias="archive",
188
195
  )
189
196
  def archive_todo(ctx: AnyContext):
197
+ from zrb.util.todo_model import TodoTaskModel
198
+
190
199
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
191
200
  todo_list: list[TodoTaskModel] = []
192
201
  if os.path.isfile(todo_file_path):
@@ -248,6 +257,8 @@ def archive_todo(ctx: AnyContext):
248
257
  alias="log",
249
258
  )
250
259
  def log_todo(ctx: AnyContext):
260
+ from zrb.util.todo_model import TodoTaskModel
261
+
251
262
  todo_file_path = os.path.join(CFG.TODO_DIR, "todo.txt")
252
263
  todo_list: list[TodoTaskModel] = []
253
264
  if os.path.isfile(todo_file_path):