zrb 1.9.3__py3-none-any.whl → 1.9.5__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.
Files changed (49) hide show
  1. zrb/__init__.py +128 -111
  2. zrb/__main__.py +1 -1
  3. zrb/builtin/__init__.py +0 -50
  4. zrb/builtin/llm/chat_session.py +1 -1
  5. zrb/builtin/llm/history.py +1 -1
  6. zrb/builtin/llm/llm_ask.py +1 -1
  7. zrb/builtin/llm/tool/code.py +1 -1
  8. zrb/builtin/llm/tool/file.py +1 -1
  9. zrb/builtin/llm/tool/rag.py +1 -1
  10. zrb/builtin/todo.py +1 -1
  11. zrb/{config.py → config/config.py} +2 -2
  12. zrb/{llm_config.py → config/llm_config.py} +43 -28
  13. zrb/{llm_rate_limitter.py → config/llm_rate_limitter.py} +1 -1
  14. zrb/{runner → config}/web_auth_config.py +1 -1
  15. zrb/context/shared_context.py +1 -1
  16. zrb/input/text_input.py +1 -1
  17. zrb/runner/cli.py +2 -2
  18. zrb/runner/web_app.py +2 -2
  19. zrb/runner/web_route/docs_route.py +1 -1
  20. zrb/runner/web_route/error_page/serve_default_404.py +1 -1
  21. zrb/runner/web_route/error_page/show_error_page.py +1 -1
  22. zrb/runner/web_route/home_page/home_page_route.py +2 -2
  23. zrb/runner/web_route/login_api_route.py +1 -1
  24. zrb/runner/web_route/login_page/login_page_route.py +2 -2
  25. zrb/runner/web_route/logout_api_route.py +1 -1
  26. zrb/runner/web_route/logout_page/logout_page_route.py +2 -2
  27. zrb/runner/web_route/node_page/group/show_group_page.py +1 -1
  28. zrb/runner/web_route/node_page/node_page_route.py +1 -1
  29. zrb/runner/web_route/node_page/task/show_task_page.py +1 -1
  30. zrb/runner/web_route/refresh_token_api_route.py +1 -1
  31. zrb/runner/web_route/static/static_route.py +1 -1
  32. zrb/runner/web_route/task_input_api_route.py +1 -1
  33. zrb/runner/web_route/task_session_api_route.py +1 -1
  34. zrb/runner/web_util/cookie.py +1 -1
  35. zrb/runner/web_util/token.py +1 -1
  36. zrb/runner/web_util/user.py +1 -1
  37. zrb/session_state_logger/session_state_logger_factory.py +1 -1
  38. zrb/task/cmd_task.py +1 -1
  39. zrb/task/llm/agent.py +1 -1
  40. zrb/task/llm/config.py +1 -1
  41. zrb/task/llm/context_enrichment.py +3 -3
  42. zrb/task/llm/history_summarization.py +3 -3
  43. zrb/task/llm/prompt.py +1 -1
  44. zrb/task/llm_task.py +1 -1
  45. zrb/util/init_path.py +1 -1
  46. {zrb-1.9.3.dist-info → zrb-1.9.5.dist-info}/METADATA +1 -1
  47. {zrb-1.9.3.dist-info → zrb-1.9.5.dist-info}/RECORD +49 -49
  48. {zrb-1.9.3.dist-info → zrb-1.9.5.dist-info}/WHEEL +0 -0
  49. {zrb-1.9.3.dist-info → zrb-1.9.5.dist-info}/entry_points.txt +0 -0
zrb/__init__.py CHANGED
@@ -1,116 +1,133 @@
1
- from zrb.attr.type import (
2
- AnyAttr,
3
- BoolAttr,
4
- FloatAttr,
5
- IntAttr,
6
- StrAttr,
7
- StrDictAttr,
8
- fstring,
9
- )
10
- from zrb.callback.any_callback import AnyCallback
11
- from zrb.callback.callback import Callback
12
- from zrb.cmd.cmd_result import CmdResult
13
- from zrb.cmd.cmd_val import Cmd, CmdPath
14
- from zrb.config import CFG
15
- from zrb.content_transformer.any_content_transformer import AnyContentTransformer
16
- from zrb.content_transformer.content_transformer import ContentTransformer
17
- from zrb.context.any_context import AnyContext
18
- from zrb.context.any_shared_context import AnySharedContext
19
- from zrb.context.context import Context
20
- from zrb.context.shared_context import SharedContext
21
- from zrb.env.any_env import AnyEnv
22
- from zrb.env.env import Env
23
- from zrb.env.env_file import EnvFile
24
- from zrb.env.env_map import EnvMap
25
- from zrb.group.any_group import AnyGroup
26
- from zrb.group.group import Group
27
- from zrb.input.any_input import AnyInput
28
- from zrb.input.base_input import BaseInput
29
- from zrb.input.bool_input import BoolInput
30
- from zrb.input.float_input import FloatInput
31
- from zrb.input.int_input import IntInput
32
- from zrb.input.option_input import OptionInput
33
- from zrb.input.password_input import PasswordInput
34
- from zrb.input.str_input import StrInput
35
- from zrb.input.text_input import TextInput
36
- from zrb.llm_config import llm_config
37
- from zrb.llm_rate_limitter import llm_rate_limitter
38
- from zrb.runner.cli import cli
39
- from zrb.runner.web_auth_config import web_auth_config
40
- from zrb.runner.web_schema.user import User
41
- from zrb.session.session import Session
42
- from zrb.task.any_task import AnyTask
43
- from zrb.task.base_task import BaseTask
44
- from zrb.task.base_trigger import BaseTrigger
45
- from zrb.task.cmd_task import CmdTask
46
- from zrb.task.http_check import HttpCheck
47
- from zrb.task.llm.history import ConversationHistoryData
48
- from zrb.task.llm_task import LLMTask
49
- from zrb.task.make_task import make_task
50
- from zrb.task.rsync_task import RsyncTask
51
- from zrb.task.scaffolder import Scaffolder
52
- from zrb.task.scheduler import Scheduler
53
- from zrb.task.task import Task
54
- from zrb.task.tcp_check import TcpCheck
55
- from zrb.util.load import load_file, load_module
56
- from zrb.xcom.xcom import Xcom
1
+ import importlib
2
+ from typing import TYPE_CHECKING, Any
57
3
 
58
- assert load_file
59
- assert load_module
60
- assert fstring
61
- assert AnyAttr
62
- assert BoolAttr
63
- assert IntAttr
64
- assert FloatAttr
65
- assert StrAttr
66
- assert StrDictAttr
67
- assert AnyCallback
68
- assert Callback
69
- assert AnyEnv
70
- assert Env
71
- assert EnvFile
72
- assert EnvMap
73
- assert AnyInput
74
- assert BaseInput
75
- assert BoolInput
76
- assert Cmd
77
- assert CmdPath
78
- assert CmdResult
79
- assert CmdTask
80
- assert HttpCheck
81
- assert TcpCheck
82
- assert FloatInput
83
- assert IntInput
84
- assert OptionInput
85
- assert PasswordInput
86
- assert StrInput
87
- assert TextInput
88
- assert AnyGroup
89
- assert Group
90
- assert AnyTask
91
- assert BaseTask
92
- assert BaseTrigger
93
- assert RsyncTask
94
- assert Task
95
- assert LLMTask
96
- assert ConversationHistoryData
97
- assert Session
98
- assert AnyContext
99
- assert Context
100
- assert AnySharedContext
101
- assert SharedContext
102
- assert make_task
103
- assert AnyContentTransformer
104
- assert ContentTransformer
105
- assert Scaffolder
106
- assert Scheduler
107
- assert cli
108
- assert llm_config
109
- assert llm_rate_limitter
110
- assert Xcom
111
- assert web_auth_config
112
- assert User
4
+ _LAZY_LOAD = {
5
+ "AnyAttr": "zrb.attr.type",
6
+ "BoolAttr": "zrb.attr.type",
7
+ "FloatAttr": "zrb.attr.type",
8
+ "IntAttr": "zrb.attr.type",
9
+ "StrAttr": "zrb.attr.type",
10
+ "StrDictAttr": "zrb.attr.type",
11
+ "fstring": "zrb.attr.type",
12
+ "AnyCallback": "zrb.callback.any_callback",
13
+ "Callback": "zrb.callback.callback",
14
+ "CmdResult": "zrb.cmd.cmd_result",
15
+ "Cmd": "zrb.cmd.cmd_val",
16
+ "CmdPath": "zrb.cmd.cmd_val",
17
+ "CFG": "zrb.config.config",
18
+ "AnyContentTransformer": "zrb.content_transformer.any_content_transformer",
19
+ "ContentTransformer": "zrb.content_transformer.content_transformer",
20
+ "AnyContext": "zrb.context.any_context",
21
+ "AnySharedContext": "zrb.context.any_shared_context",
22
+ "Context": "zrb.context.context",
23
+ "SharedContext": "zrb.context.shared_context",
24
+ "AnyEnv": "zrb.env.any_env",
25
+ "Env": "zrb.env.env",
26
+ "EnvFile": "zrb.env.env_file",
27
+ "EnvMap": "zrb.env.env_map",
28
+ "AnyGroup": "zrb.group.any_group",
29
+ "Group": "zrb.group.group",
30
+ "AnyInput": "zrb.input.any_input",
31
+ "BaseInput": "zrb.input.base_input",
32
+ "BoolInput": "zrb.input.bool_input",
33
+ "FloatInput": "zrb.input.float_input",
34
+ "IntInput": "zrb.input.int_input",
35
+ "OptionInput": "zrb.input.option_input",
36
+ "PasswordInput": "zrb.input.password_input",
37
+ "StrInput": "zrb.input.str_input",
38
+ "TextInput": "zrb.input.text_input",
39
+ "llm_config": "zrb.config.llm_config",
40
+ "llm_rate_limitter": "zrb.config.llm_rate_limitter",
41
+ "cli": "zrb.runner.cli",
42
+ "web_auth_config": "zrb.config.web_auth_config",
43
+ "User": "zrb.runner.web_schema.user",
44
+ "Session": "zrb.session.session",
45
+ "AnyTask": "zrb.task.any_task",
46
+ "BaseTask": "zrb.task.base_task",
47
+ "BaseTrigger": "zrb.task.base_trigger",
48
+ "CmdTask": "zrb.task.cmd_task",
49
+ "HttpCheck": "zrb.task.http_check",
50
+ "ConversationHistoryData": "zrb.task.llm.history",
51
+ "LLMTask": "zrb.task.llm_task",
52
+ "make_task": "zrb.task.make_task",
53
+ "RsyncTask": "zrb.task.rsync_task",
54
+ "Scaffolder": "zrb.task.scaffolder",
55
+ "Scheduler": "zrb.task.scheduler",
56
+ "Task": "zrb.task.task",
57
+ "TcpCheck": "zrb.task.tcp_check",
58
+ "load_file": "zrb.util.load",
59
+ "load_module": "zrb.util.load",
60
+ "Xcom": "zrb.xcom.xcom",
61
+ }
113
62
 
63
+ if TYPE_CHECKING:
64
+ from zrb.attr.type import (
65
+ AnyAttr,
66
+ BoolAttr,
67
+ FloatAttr,
68
+ IntAttr,
69
+ StrAttr,
70
+ StrDictAttr,
71
+ fstring,
72
+ )
73
+ from zrb.callback.any_callback import AnyCallback
74
+ from zrb.callback.callback import Callback
75
+ from zrb.cmd.cmd_result import CmdResult
76
+ from zrb.cmd.cmd_val import Cmd, CmdPath
77
+ from zrb.config.config import CFG
78
+ from zrb.config.llm_config import llm_config
79
+ from zrb.config.llm_rate_limitter import llm_rate_limitter
80
+ from zrb.config.web_auth_config import web_auth_config
81
+ from zrb.content_transformer.any_content_transformer import AnyContentTransformer
82
+ from zrb.content_transformer.content_transformer import ContentTransformer
83
+ from zrb.context.any_context import AnyContext
84
+ from zrb.context.any_shared_context import AnySharedContext
85
+ from zrb.context.context import Context
86
+ from zrb.context.shared_context import SharedContext
87
+ from zrb.env.any_env import AnyEnv
88
+ from zrb.env.env import Env
89
+ from zrb.env.env_file import EnvFile
90
+ from zrb.env.env_map import EnvMap
91
+ from zrb.group.any_group import AnyGroup
92
+ from zrb.group.group import Group
93
+ from zrb.input.any_input import AnyInput
94
+ from zrb.input.base_input import BaseInput
95
+ from zrb.input.bool_input import BoolInput
96
+ from zrb.input.float_input import FloatInput
97
+ from zrb.input.int_input import IntInput
98
+ from zrb.input.option_input import OptionInput
99
+ from zrb.input.password_input import PasswordInput
100
+ from zrb.input.str_input import StrInput
101
+ from zrb.input.text_input import TextInput
102
+ from zrb.runner.cli import cli
103
+ from zrb.runner.web_schema.user import User
104
+ from zrb.session.session import Session
105
+ from zrb.task.any_task import AnyTask
106
+ from zrb.task.base_task import BaseTask
107
+ from zrb.task.base_trigger import BaseTrigger
108
+ from zrb.task.cmd_task import CmdTask
109
+ from zrb.task.http_check import HttpCheck
110
+ from zrb.task.llm.history import ConversationHistoryData
111
+ from zrb.task.llm_task import LLMTask
112
+ from zrb.task.make_task import make_task
113
+ from zrb.task.rsync_task import RsyncTask
114
+ from zrb.task.scaffolder import Scaffolder
115
+ from zrb.task.scheduler import Scheduler
116
+ from zrb.task.task import Task
117
+ from zrb.task.tcp_check import TcpCheck
118
+ from zrb.util.load import load_file, load_module
119
+ from zrb.xcom.xcom import Xcom
120
+
121
+
122
+ def __getattr__(name: str) -> Any:
123
+ if name in _LAZY_LOAD:
124
+ module = importlib.import_module(_LAZY_LOAD[name])
125
+ return getattr(module, name)
126
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
127
+
128
+
129
+ # Eager load CFG
130
+ CFG = __getattr__("CFG")
114
131
  if CFG.LOAD_BUILTIN:
115
132
  from zrb import builtin
116
133
 
zrb/__main__.py CHANGED
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import sys
4
4
 
5
- from zrb.config import CFG
5
+ from zrb.config.config import CFG
6
6
  from zrb.runner.cli import cli
7
7
  from zrb.util.cli.style import stylize_error, stylize_faint, stylize_warning
8
8
  from zrb.util.group import NodeNotFoundError
zrb/builtin/__init__.py CHANGED
@@ -43,53 +43,3 @@ from zrb.builtin.uuid import (
43
43
  validate_uuid_v4,
44
44
  validate_uuid_v5,
45
45
  )
46
-
47
- assert create_project
48
- assert add_fastapp_to_project
49
- assert get_shell_subcommands
50
- assert make_bash_autocomplete
51
- assert make_zsh_autocomplete
52
- assert encode_base64
53
- assert decode_base64
54
- assert validate_base64
55
- assert encode_jwt
56
- assert decode_jwt
57
- assert validate_jwt
58
- assert llm_ask
59
- assert hash_md5
60
- assert sum_md5
61
- assert validate_md5
62
- assert get_git_diff
63
- assert prune_local_branches
64
- assert format_python_code
65
- assert git_commit
66
- assert git_pull
67
- assert git_push
68
- assert git_add_subtree
69
- assert git_pull_subtree
70
- assert git_push_subtree
71
- assert list_todo
72
- assert add_todo
73
- assert archive_todo
74
- assert edit_todo
75
- assert complete_todo
76
- assert log_todo
77
- assert show_todo
78
- assert throw_dice
79
- assert shuffle_values
80
- assert setup_ubuntu
81
- assert setup_latex_on_ubuntu
82
- assert setup_asdf
83
- assert setup_tmux
84
- assert setup_zsh
85
- assert validate_uuid
86
- assert validate_uuid_v1
87
- assert validate_uuid_v3
88
- assert validate_uuid_v4
89
- assert validate_uuid_v5
90
- assert generate_uuid_v1
91
- assert generate_uuid_v3
92
- assert generate_uuid_v4
93
- assert generate_uuid_v5
94
- assert http_request
95
- assert generate_curl
@@ -7,8 +7,8 @@ conversation flow via XCom.
7
7
 
8
8
  import asyncio
9
9
 
10
+ from zrb.config.llm_config import llm_config
10
11
  from zrb.context.any_context import AnyContext
11
- from zrb.llm_config import llm_config
12
12
  from zrb.util.cli.style import stylize_bold_yellow, stylize_faint
13
13
 
14
14
 
@@ -2,7 +2,7 @@ import json
2
2
  import os
3
3
  from typing import Any
4
4
 
5
- from zrb.config import CFG
5
+ from zrb.config.config import CFG
6
6
  from zrb.context.any_shared_context import AnySharedContext
7
7
  from zrb.task.llm.history import ConversationHistoryData
8
8
  from zrb.util.file import read_file, write_file
@@ -22,7 +22,7 @@ from zrb.builtin.llm.tool.web import (
22
22
  search_wikipedia,
23
23
  )
24
24
  from zrb.callback.callback import Callback
25
- from zrb.config import CFG
25
+ from zrb.config.config import CFG
26
26
  from zrb.input.bool_input import BoolInput
27
27
  from zrb.input.str_input import StrInput
28
28
  from zrb.input.text_input import TextInput
@@ -3,8 +3,8 @@ import os
3
3
 
4
4
  from zrb.builtin.llm.tool.file import DEFAULT_EXCLUDED_PATTERNS, is_excluded
5
5
  from zrb.builtin.llm.tool.sub_agent import create_sub_agent_tool
6
+ from zrb.config.llm_rate_limitter import llm_rate_limitter
6
7
  from zrb.context.any_context import AnyContext
7
- from zrb.llm_rate_limitter import llm_rate_limitter
8
8
 
9
9
  _EXTRACT_INFO_FROM_REPO_SYSTEM_PROMPT = """
10
10
  You are an extraction info agent.
@@ -5,8 +5,8 @@ import re
5
5
  from typing import Any, Dict, List, Optional
6
6
 
7
7
  from zrb.builtin.llm.tool.sub_agent import create_sub_agent_tool
8
+ from zrb.config.llm_rate_limitter import llm_rate_limitter
8
9
  from zrb.context.any_context import AnyContext
9
- from zrb.llm_rate_limitter import llm_rate_limitter
10
10
  from zrb.util.file import read_file, read_file_with_line_numbers, write_file
11
11
 
12
12
  _EXTRACT_INFO_FROM_FILE_SYSTEM_PROMPT = """
@@ -8,7 +8,7 @@ from textwrap import dedent
8
8
 
9
9
  import ulid
10
10
 
11
- from zrb.config import CFG
11
+ from zrb.config.config import CFG
12
12
  from zrb.util.cli.style import stylize_error, stylize_faint
13
13
  from zrb.util.file import read_file
14
14
 
zrb/builtin/todo.py CHANGED
@@ -4,7 +4,7 @@ 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
@@ -167,11 +167,11 @@ class Config:
167
167
 
168
168
  @property
169
169
  def WEB_SUPER_ADMIN_USERNAME(self) -> str:
170
- return os.getenv("ZRB_WEB_SUPERADMIN_USERNAME", "admin")
170
+ return os.getenv("ZRB_WEB_SUPER_ADMIN_USERNAME", "admin")
171
171
 
172
172
  @property
173
173
  def WEB_SUPER_ADMIN_PASSWORD(self) -> str:
174
- return os.getenv("ZRB_WEB_SUPERADMIN_PASSWORD", "admin")
174
+ return os.getenv("ZRB_WEB_SUPER_ADMIN_PASSWORD", "admin")
175
175
 
176
176
  @property
177
177
  def WEB_ACCESS_TOKEN_COOKIE_NAME(self) -> str:
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
 
5
5
  if TYPE_CHECKING:
6
6
  from pydantic_ai.models import Model
@@ -48,37 +48,52 @@ DEFAULT_SYSTEM_PROMPT = (
48
48
  ).strip()
49
49
 
50
50
  DEFAULT_SPECIAL_INSTRUCTION_PROMPT = (
51
- "If the user's request falls into a specialized category below, follow "
52
- "the associated protocol.\n\n"
51
+ "If the user's request falls into a specialized category below, you MUST "
52
+ "follow the associated protocol.\n\n"
53
53
  "---\n"
54
54
  "## Software Engineering Protocol\n"
55
- "This protocol applies to any request involving coding, debugging, or "
56
- "other software development tasks.\n\n"
57
- "### 1. Guiding Mandates\n"
58
- "- **Safety First:** Never perform destructive actions without explicit "
59
- "user confirmation. Explain critical commands before executing them.\n"
60
- "- **Adhere to Conventions:** Your changes must blend in seamlessly with "
61
- "the existing codebase. Match the formatting, naming, and architectural "
62
- "patterns. *Never assume* a project's conventions; use your tools to "
63
- "discover them.\n"
55
+ "This protocol applies to any request involving coding, debugging, "
56
+ "performance analysis, or other software development tasks.\n\n"
57
+ "### 1. Core Mandates\n"
58
+ "- **Safety First:** Never perform destructive actions (e.g., `rm -rf`) "
59
+ "without explicit user confirmation. Explain all critical commands before "
60
+ "executing them.\n"
61
+ "- **Adhere to Conventions:** Your changes MUST blend in seamlessly. "
62
+ "Match existing formatting, naming, and architectural patterns. *Never "
63
+ "assume* conventions; use your tools to discover them by reading "
64
+ "configuration files (e.g., `.gitignore`, `.flake8`), analyzing "
65
+ "neighboring code, and observing test patterns.\n"
64
66
  "- **No Assumptions on Dependencies:** Never assume a library or "
65
67
  "framework is available. Verify its presence in `package.json`, "
66
- "`requirements.txt`, or similar files first.\n\n"
67
- "### 2. Core Workflow\n"
68
- "1. **Understand:** Use your tools to analyze the relevant files and "
69
- "codebase. Announce what you are inspecting (e.g., 'Okay, I will read "
70
- "`main.py` and `utils.py` to understand the context.').\n"
71
- "2. **Plan:** Announce your step-by-step plan (e.g., 'Here is my plan: "
72
- "1. Add the function to `utils.py`. 2. Import and call it in `main.py`. "
73
- "3. Run the tests.').\n"
74
- "3. **Implement:** Execute the plan using your tools, following the "
75
- "mandates above.\n"
76
- "4. **Verify:** After making changes, run the relevant verification "
77
- "commands (e.g., tests, linters). Announce the command you will run "
78
- "(e.g., 'Now, I will run `npm test` to verify the changes.').\n"
79
- "5. **Conclude:** Report the results of the verification step. If "
80
- "successful, ask for the next step (e.g., 'All tests passed. Should I "
81
- "commit these changes?')."
68
+ "`requirements.txt`, `pyproject.toml`, or similar files first.\n\n"
69
+ "### 2. Diagnostic & Implementation Workflow\n"
70
+ "1. **Understand & Investigate (Tool-First):**\n"
71
+ " - **Initial Assessment:** Start by using tools to understand the "
72
+ "task and environment. Do not begin by simply reading files. Formulate "
73
+ "an investigation plan.\n"
74
+ " - **Information Gathering:** Use available tools to find relevant "
75
+ "information (e.g., project structure, framework, etc.) to complete the task.\n"
76
+ " - **For Performance/Bugs:** If the task is to fix a bug or analyze "
77
+ "performance, your first step is to try and reproduce it. Then, use "
78
+ "diagnostic tools. For performance, use a profiler (e.g., `cProfile`, etc.). "
79
+ "For bugs, run the tests and analyze logs.\n"
80
+ "2. **Plan:**\n"
81
+ " - Announce your step-by-step plan based on your investigation "
82
+ "(e.g., 'Here is my plan: 1. Add a profiling decorator to the slow "
83
+ "function. 2. Run the code to generate a profile. 3. Analyze the "
84
+ "results to identify the bottleneck.').\n"
85
+ "3. **Implement:**\n"
86
+ " - Execute the plan using your tools, strictly following the Core "
87
+ "Mandates.\n"
88
+ "4. **Verify:**\n"
89
+ " - After making changes, ALWAYS run the relevant verification "
90
+ "commands (e.g., tests, linters, build scripts). Announce the command "
91
+ "you will run (e.g., 'Now, I will run `pytest` to verify the "
92
+ "changes.').\n"
93
+ "5. **Conclude:**\n"
94
+ " - Report the results of the verification. If successful, the task "
95
+ "is complete. If it fails, return to step 1 to diagnose the new "
96
+ "problem."
82
97
  ).strip()
83
98
 
84
99
  DEFAULT_SUMMARIZATION_PROMPT = (
@@ -5,7 +5,7 @@ from typing import Callable
5
5
 
6
6
  import tiktoken
7
7
 
8
- from zrb.config import CFG
8
+ from zrb.config.config import CFG
9
9
 
10
10
 
11
11
  def _estimate_token(text: str) -> int:
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING, Callable
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
  from zrb.task.any_task import AnyTask
5
5
 
6
6
  if TYPE_CHECKING:
@@ -1,7 +1,7 @@
1
1
  import datetime
2
2
  from typing import Any
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
5
  from zrb.context.any_shared_context import AnySharedContext
6
6
  from zrb.dot_dict.dot_dict import DotDict
7
7
  from zrb.session.any_session import AnySession
zrb/input/text_input.py CHANGED
@@ -3,7 +3,7 @@ import subprocess
3
3
  import tempfile
4
4
  from collections.abc import Callable
5
5
 
6
- from zrb.config import CFG
6
+ from zrb.config.config import CFG
7
7
  from zrb.context.any_shared_context import AnySharedContext
8
8
  from zrb.input.base_input import BaseInput
9
9
  from zrb.util.file import read_file
zrb/runner/cli.py CHANGED
@@ -1,13 +1,13 @@
1
1
  import sys
2
2
  from typing import Any
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
+ from zrb.config.web_auth_config import web_auth_config
5
6
  from zrb.context.any_context import AnyContext
6
7
  from zrb.context.shared_context import SharedContext
7
8
  from zrb.group.any_group import AnyGroup
8
9
  from zrb.group.group import Group
9
10
  from zrb.runner.common_util import get_run_kwargs
10
- from zrb.runner.web_auth_config import web_auth_config
11
11
  from zrb.session.session import Session
12
12
  from zrb.session_state_logger.session_state_logger_factory import session_state_logger
13
13
  from zrb.task.any_task import AnyTask
zrb/runner/web_app.py CHANGED
@@ -2,9 +2,9 @@ import asyncio
2
2
  import sys
3
3
  from typing import TYPE_CHECKING
4
4
 
5
- from zrb.config import CFG
5
+ from zrb.config.config import CFG
6
+ from zrb.config.web_auth_config import WebAuthConfig
6
7
  from zrb.group.any_group import AnyGroup
7
- from zrb.runner.web_auth_config import WebAuthConfig
8
8
  from zrb.runner.web_route.docs_route import serve_docs
9
9
  from zrb.runner.web_route.error_page.serve_default_404 import serve_default_404
10
10
  from zrb.runner.web_route.home_page.home_page_route import serve_home_page
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
 
5
5
  if TYPE_CHECKING:
6
6
  # We want fastapi to only be loaded when necessary to decrease footprint
@@ -1,7 +1,7 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
+ from zrb.config.web_auth_config import WebAuthConfig
3
4
  from zrb.group.any_group import AnyGroup
4
- from zrb.runner.web_auth_config import WebAuthConfig
5
5
  from zrb.runner.web_route.error_page.show_error_page import show_error_page
6
6
  from zrb.runner.web_util.user import get_user_from_request
7
7
 
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
  from zrb.group.any_group import AnyGroup
5
5
  from zrb.runner.web_schema.user import User
6
6
  from zrb.runner.web_util.html import get_html_auth_link
@@ -1,9 +1,9 @@
1
1
  import os
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
+ from zrb.config.web_auth_config import WebAuthConfig
5
6
  from zrb.group.any_group import AnyGroup
6
- from zrb.runner.web_auth_config import WebAuthConfig
7
7
  from zrb.runner.web_util.html import (
8
8
  get_html_auth_link,
9
9
  get_html_subgroup_info,
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING, Annotated
2
2
 
3
- from zrb.runner.web_auth_config import WebAuthConfig
3
+ from zrb.config.web_auth_config import WebAuthConfig
4
4
  from zrb.runner.web_util.cookie import set_auth_cookie
5
5
  from zrb.runner.web_util.token import generate_tokens_by_credentials
6
6
 
@@ -1,9 +1,9 @@
1
1
  import os
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
+ from zrb.config.web_auth_config import WebAuthConfig
5
6
  from zrb.group.any_group import AnyGroup
6
- from zrb.runner.web_auth_config import WebAuthConfig
7
7
  from zrb.runner.web_util.html import get_html_auth_link
8
8
  from zrb.runner.web_util.user import get_user_from_request
9
9
  from zrb.util.file import read_file
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from zrb.runner.web_auth_config import WebAuthConfig
3
+ from zrb.config.web_auth_config import WebAuthConfig
4
4
 
5
5
  if TYPE_CHECKING:
6
6
  # We want fastapi to only be loaded when necessary to decrease footprint
@@ -1,9 +1,9 @@
1
1
  import os
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
+ from zrb.config.web_auth_config import WebAuthConfig
5
6
  from zrb.group.any_group import AnyGroup
6
- from zrb.runner.web_auth_config import WebAuthConfig
7
7
  from zrb.runner.web_util.html import get_html_auth_link
8
8
  from zrb.runner.web_util.user import get_user_from_request
9
9
  from zrb.util.file import read_file
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
  from zrb.group.any_group import AnyGroup
5
5
  from zrb.runner.web_schema.user import User
6
6
  from zrb.runner.web_util.html import (
@@ -1,9 +1,9 @@
1
1
  import os
2
2
  from typing import TYPE_CHECKING
3
3
 
4
+ from zrb.config.web_auth_config import WebAuthConfig
4
5
  from zrb.context.shared_context import SharedContext
5
6
  from zrb.group.any_group import AnyGroup
6
- from zrb.runner.web_auth_config import WebAuthConfig
7
7
  from zrb.runner.web_route.error_page.show_error_page import show_error_page
8
8
  from zrb.runner.web_route.node_page.group.show_group_page import show_group_page
9
9
  from zrb.runner.web_route.node_page.task.show_task_page import show_task_page
@@ -1,7 +1,7 @@
1
1
  import json
2
2
  import os
3
3
 
4
- from zrb.config import CFG
4
+ from zrb.config.config import CFG
5
5
  from zrb.group.any_group import AnyGroup
6
6
  from zrb.runner.web_schema.user import User
7
7
  from zrb.runner.web_util.html import get_html_auth_link
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from zrb.runner.web_auth_config import WebAuthConfig
3
+ from zrb.config.web_auth_config import WebAuthConfig
4
4
  from zrb.runner.web_schema.token import RefreshTokenRequest
5
5
  from zrb.runner.web_util.cookie import set_auth_cookie
6
6
  from zrb.runner.web_util.token import regenerate_tokens
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from zrb.runner.web_auth_config import WebAuthConfig
4
+ from zrb.config.web_auth_config import WebAuthConfig
5
5
  from zrb.util.file import read_file
6
6
 
7
7
  if TYPE_CHECKING:
@@ -1,9 +1,9 @@
1
1
  import json
2
2
  from typing import TYPE_CHECKING
3
3
 
4
+ from zrb.config.web_auth_config import WebAuthConfig
4
5
  from zrb.group.any_group import AnyGroup
5
6
  from zrb.runner.common_util import get_run_kwargs
6
- from zrb.runner.web_auth_config import WebAuthConfig
7
7
  from zrb.runner.web_util.user import get_user_from_request
8
8
  from zrb.task.any_task import AnyTask
9
9
  from zrb.util.group import NodeNotFoundError, extract_node_from_args
@@ -3,9 +3,9 @@ import os
3
3
  from datetime import datetime, timedelta
4
4
  from typing import TYPE_CHECKING, Any
5
5
 
6
+ from zrb.config.web_auth_config import WebAuthConfig
6
7
  from zrb.context.shared_context import SharedContext
7
8
  from zrb.group.any_group import AnyGroup
8
- from zrb.runner.web_auth_config import WebAuthConfig
9
9
  from zrb.runner.web_schema.session import NewSessionResponse
10
10
  from zrb.runner.web_util.user import get_user_from_request
11
11
  from zrb.session.session import Session
@@ -1,7 +1,7 @@
1
1
  from datetime import datetime, timedelta, timezone
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from zrb.runner.web_auth_config import WebAuthConfig
4
+ from zrb.config.web_auth_config import WebAuthConfig
5
5
  from zrb.runner.web_schema.token import Token
6
6
 
7
7
  if TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  from datetime import datetime, timedelta, timezone
2
2
 
3
- from zrb.runner.web_auth_config import WebAuthConfig
3
+ from zrb.config.web_auth_config import WebAuthConfig
4
4
  from zrb.runner.web_schema.token import Token
5
5
  from zrb.runner.web_util.user import get_user_by_credentials
6
6
 
@@ -1,6 +1,6 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from zrb.runner.web_auth_config import WebAuthConfig
3
+ from zrb.config.web_auth_config import WebAuthConfig
4
4
  from zrb.runner.web_schema.user import User
5
5
 
6
6
  if TYPE_CHECKING:
@@ -1,4 +1,4 @@
1
- from zrb.config import CFG
1
+ from zrb.config.config import CFG
2
2
  from zrb.session_state_logger.file_session_state_logger import FileSessionStateLogger
3
3
 
4
4
  session_state_logger = FileSessionStateLogger(CFG.SESSION_LOG_DIR)
zrb/task/cmd_task.py CHANGED
@@ -4,7 +4,7 @@ from functools import partial
4
4
  from zrb.attr.type import BoolAttr, IntAttr, StrAttr
5
5
  from zrb.cmd.cmd_result import CmdResult
6
6
  from zrb.cmd.cmd_val import AnyCmdVal, CmdVal, SingleCmdVal
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.env.any_env import AnyEnv
10
10
  from zrb.input.any_input import AnyInput
zrb/task/llm/agent.py CHANGED
@@ -2,9 +2,9 @@ import json
2
2
  from collections.abc import Callable
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
+ from zrb.config.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
5
6
  from zrb.context.any_context import AnyContext
6
7
  from zrb.context.any_shared_context import AnySharedContext
7
- from zrb.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
8
8
  from zrb.task.llm.error import extract_api_error_details
9
9
  from zrb.task.llm.print_node import print_node
10
10
  from zrb.task.llm.tool_wrapper import wrap_tool
zrb/task/llm/config.py CHANGED
@@ -5,9 +5,9 @@ if TYPE_CHECKING:
5
5
  from pydantic_ai.settings import ModelSettings
6
6
 
7
7
  from zrb.attr.type import StrAttr, fstring
8
+ from zrb.config.llm_config import LLMConfig, llm_config
8
9
  from zrb.context.any_context import AnyContext
9
10
  from zrb.context.any_shared_context import AnySharedContext
10
- from zrb.llm_config import LLMConfig, llm_config
11
11
  from zrb.util.attr import get_attr
12
12
 
13
13
 
@@ -3,9 +3,9 @@ import traceback
3
3
  from typing import TYPE_CHECKING
4
4
 
5
5
  from zrb.attr.type import BoolAttr, IntAttr
6
+ from zrb.config.llm_config import llm_config
7
+ from zrb.config.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
6
8
  from zrb.context.any_context import AnyContext
7
- from zrb.llm_config import llm_config
8
- from zrb.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
9
9
  from zrb.task.llm.agent import run_agent_iteration
10
10
  from zrb.task.llm.history import (
11
11
  count_part_in_history_list,
@@ -75,7 +75,7 @@ async def enrich_context(
75
75
  return new_long_term_context
76
76
  else:
77
77
  ctx.log_warning("Context enrichment returned no data.")
78
- except Exception as e:
78
+ except BaseException as e:
79
79
  ctx.log_warning(f"Error during context enrichment LLM call: {e}")
80
80
  traceback.print_exc()
81
81
 
@@ -3,9 +3,9 @@ import traceback
3
3
  from typing import TYPE_CHECKING
4
4
 
5
5
  from zrb.attr.type import BoolAttr, IntAttr
6
+ from zrb.config.llm_config import llm_config
7
+ from zrb.config.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
6
8
  from zrb.context.any_context import AnyContext
7
- from zrb.llm_config import llm_config
8
- from zrb.llm_rate_limitter import LLMRateLimiter, llm_rate_limitter
9
9
  from zrb.task.llm.agent import run_agent_iteration
10
10
  from zrb.task.llm.history import (
11
11
  count_part_in_history_list,
@@ -122,7 +122,7 @@ async def summarize_history(
122
122
  return new_summary
123
123
  else:
124
124
  ctx.log_warning("History summarization failed or returned no data.")
125
- except Exception as e:
125
+ except BaseException as e:
126
126
  ctx.log_warning(f"Error during history summarization: {e}")
127
127
  traceback.print_exc()
128
128
 
zrb/task/llm/prompt.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from zrb.attr.type import StrAttr
2
+ from zrb.config.llm_config import llm_config as llm_config
2
3
  from zrb.context.any_context import AnyContext
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
 
zrb/task/llm_task.py CHANGED
@@ -3,11 +3,11 @@ from collections.abc import Callable
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
5
  from zrb.attr.type import BoolAttr, IntAttr, StrAttr, fstring
6
+ from zrb.config.llm_rate_limitter import LLMRateLimiter
6
7
  from zrb.context.any_context import AnyContext
7
8
  from zrb.context.any_shared_context import AnySharedContext
8
9
  from zrb.env.any_env import AnyEnv
9
10
  from zrb.input.any_input import AnyInput
10
- from zrb.llm_rate_limitter import LLMRateLimiter
11
11
  from zrb.task.any_task import AnyTask
12
12
  from zrb.task.base_task import BaseTask
13
13
  from zrb.task.llm.agent import get_agent, run_agent_iteration
zrb/util/init_path.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- from zrb.config import CFG
3
+ from zrb.config.config import CFG
4
4
 
5
5
 
6
6
  def get_init_path_list() -> list[str]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.9.3
3
+ Version: 1.9.5
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -1,25 +1,25 @@
1
- zrb/__init__.py,sha256=6q6sd4KnIwerCPOjv0ouyoXYlmnCfzT87KApckucp9M,3180
2
- zrb/__main__.py,sha256=aeIpBjlLef8bfdp0CYumnn5jVkHDPS5bwAxfuCJVUNI,2650
1
+ zrb/__init__.py,sha256=Rp5YD2qgKmUiz-f53JHYpxnHcAByrLOrCyjue6LbAMk,5101
2
+ zrb/__main__.py,sha256=9SXH9MK4PVyU9lkEyHxiIUABbcsV2wseP94HmlqTR4M,2657
3
3
  zrb/attr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  zrb/attr/type.py,sha256=4TV5gPYMMrKh5V-yB6iRYKCbsXAH_AvGXMsjxKLHcUs,568
5
- zrb/builtin/__init__.py,sha256=N-h-BoXWv0jYOldixXwgk6ekiWtrGZsGv57iqonsYdc,2657
5
+ zrb/builtin/__init__.py,sha256=NjXpvBgAiPH-dNsJx5Fa-zSZE5JVnmVb1GhMNtevpGQ,1614
6
6
  zrb/builtin/base64.py,sha256=UjaFttE2oRx0T7_RpKtKfgMtWfiQXfJBAJmA16ek8Ic,1507
7
7
  zrb/builtin/git.py,sha256=8_qVE_2lVQEVXQ9vhiw8Tn4Prj1VZB78ZjEJJS5Ab3M,5461
8
8
  zrb/builtin/git_subtree.py,sha256=7BKwOkVTWDrR0DXXQ4iJyHqeR6sV5VYRt8y_rEB0EHg,3505
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=S7IIY1ZGiNI0jfg1LhFZBKM9edHutiQws_WgwNXzZZ4,7586
13
- zrb/builtin/llm/history.py,sha256=cnkOyO43uiMQ9cEvmqk-pPoCk1zCAH_fwAqSgBtsjzY,3079
12
+ zrb/builtin/llm/chat_session.py,sha256=1DMy6j24jfTVkQfsZAHvazniXrWfUW8E0ZwTAxi7WAU,7593
13
+ zrb/builtin/llm/history.py,sha256=jCMeRCHUsDFnQWyDoH9SOBptzceOs_wACvVpYkDOoTk,3086
14
14
  zrb/builtin/llm/input.py,sha256=Nw-26uTWp2QhUgKJcP_IMHmtk-b542CCSQ_vCOjhvhM,877
15
- zrb/builtin/llm/llm_ask.py,sha256=A7MmDybKSdlO0T-Wted9t1tEtw6ULjV5aG4SAwpkt-w,4532
15
+ zrb/builtin/llm/llm_ask.py,sha256=PCd8pXb3dkVBPqAyiEylMetT76Wr6nuNFtK0zo0oCn0,4539
16
16
  zrb/builtin/llm/previous-session.js,sha256=xMKZvJoAbrwiyHS0OoPrWuaKxWYLoyR5sguePIoCjTY,816
17
17
  zrb/builtin/llm/tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  zrb/builtin/llm/tool/api.py,sha256=yR9I0ZsI96OeQl9pgwORMASVuXsAL0a89D_iPS4C8Dc,1699
19
19
  zrb/builtin/llm/tool/cli.py,sha256=_CNEmEc6K2Z0i9ppYeM7jGpqaEdT3uxaWQatmxP3jKE,858
20
- zrb/builtin/llm/tool/code.py,sha256=t_0-D1ToSm3ATYGiHfkHBpvkRGMnrmwWSYk_M73AVXs,8090
21
- zrb/builtin/llm/tool/file.py,sha256=OFmQYh2m27mgCLwlbKDxNOhp6qkoOtslT3fsso-PMPU,22757
22
- zrb/builtin/llm/tool/rag.py,sha256=yqx7vXXyrOCJjhQJl4s0TnLL-2uQUTuKRnkWlSQBW0M,7883
20
+ zrb/builtin/llm/tool/code.py,sha256=VCmfgS-UjWd5917yVMWvkmp4K07zEcKBY5LXneI_VME,8097
21
+ zrb/builtin/llm/tool/file.py,sha256=R8js6rqPpMo9iavt3u4v5Zyr6AV820yztSUJVOkMGkY,22764
22
+ zrb/builtin/llm/tool/rag.py,sha256=I7xooTVwCN_Jd4KBqMfhAGMtdc4r7kde8_iHc94xFyA,7890
23
23
  zrb/builtin/llm/tool/sub_agent.py,sha256=Xz_nwNA8hW52gCeNdNBT7TXDUU3x7Ube-t17FYxx0-E,4671
24
24
  zrb/builtin/llm/tool/web.py,sha256=SeTT59yRaBJQILi4TETaLDMna2ooeYStYMkAnn0uTZc,5465
25
25
  zrb/builtin/md5.py,sha256=690RV2LbW7wQeTFxY-lmmqTSVEEZv3XZbjEUW1Q3XpE,1480
@@ -209,7 +209,7 @@ zrb/builtin/shell/autocomplete/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
209
209
  zrb/builtin/shell/autocomplete/bash.py,sha256=-7YDVV7txgJH9mAYSYN0jmvUEeDIzWFvVNY-cY0myF8,1181
210
210
  zrb/builtin/shell/autocomplete/subcmd.py,sha256=WZI6cGWJcn80zSyxOHG7sCMO3Ucix3mZf4xm_xyB_Y0,606
211
211
  zrb/builtin/shell/autocomplete/zsh.py,sha256=9hlq0Wt3fhRz326mAQTypEd4_4lZdrbBx_3A-Ti3mvw,1022
212
- zrb/builtin/todo.py,sha256=1d_gKqGdgjbKDdMbFkehaGcm6cPDO89hOc3BjXund_E,11855
212
+ zrb/builtin/todo.py,sha256=EIqz0nmB1tW4OhWZbTv8y4CvppQOG6u8-Esw5__ThPY,11862
213
213
  zrb/builtin/uuid.py,sha256=lIdhSGzPQ1rixRzMXxQDcgFgV7W-gUduHIudZXlzZzg,5393
214
214
  zrb/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
215
  zrb/callback/any_callback.py,sha256=PqEJYX_RigXEmoPniSeZusZBZSLWEoVIHvHk8MZ0Mvg,253
@@ -217,7 +217,10 @@ zrb/callback/callback.py,sha256=PFhCqzfxdk6IAthmXcZ13DokT62xtBzJr_ciLw6I8Zg,4030
217
217
  zrb/cmd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
218
  zrb/cmd/cmd_result.py,sha256=L8bQJzWCpcYexIxHBNsXj2pT3BtLmWex0iJSMkvimOA,597
219
219
  zrb/cmd/cmd_val.py,sha256=7Doowyg6BK3ISSGBLt-PmlhzaEkBjWWm51cED6fAUOQ,1014
220
- zrb/config.py,sha256=TRVQgUgX9yIso0Z6GioX8HASX_tITv5m_AP0Z4UIWb4,10574
220
+ zrb/config/config.py,sha256=PbtmVWIdCTCFdeAIF5Y-J7wa99ZhLWIe_GMYqpZzhXk,10576
221
+ zrb/config/llm_config.py,sha256=HnQKDgZSk9MXngH2cqqxk8OFqGQaH8JeMeLSp-UQDlE,18909
222
+ zrb/config/llm_rate_limitter.py,sha256=0U0qm4qgCWqBjohPdwANNUzLR3joJCFYr6oW6Xpccfo,4436
223
+ zrb/config/web_auth_config.py,sha256=_PXatQTYh2mX9H3HSYSQKp13zm1RlLyVIoeIr6KYMQ8,6279
221
224
  zrb/content_transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
225
  zrb/content_transformer/any_content_transformer.py,sha256=v8ZUbcix1GGeDQwB6OKX_1TjpY__ksxWVeqibwa_iZA,850
223
226
  zrb/content_transformer/content_transformer.py,sha256=STl77wW-I69QaGzCXjvkppngYFLufow8ybPLSyAvlHs,2404
@@ -225,7 +228,7 @@ zrb/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
228
  zrb/context/any_context.py,sha256=2hgVKbbDwmwrEl1h1L1FaTUjuUYaDd_b7YRGkaorW6Q,6362
226
229
  zrb/context/any_shared_context.py,sha256=p1i9af_CUDz5Mf1h1kBZMAa2AEhf17I3O5IgAcjRLoY,1768
227
230
  zrb/context/context.py,sha256=3p43LTTqkcaX00wSBwLFVTyoEdlPnMYMASqnXUxdU_U,6706
228
- zrb/context/shared_context.py,sha256=w6cJH41nmhTzYlUrquRMbOexXrXgadfTd5awLnKAq4Q,2801
231
+ zrb/context/shared_context.py,sha256=TMQF_KH5rw5M2ybjJBSMI872yRPExJWfr0mIe1sRjE8,2808
229
232
  zrb/dot_dict/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
233
  zrb/dot_dict/dot_dict.py,sha256=ubw_x8I7AOJ59xxtFVJ00VGmq_IYdZP3mUhNlO4nEK0,556
231
234
  zrb/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -245,35 +248,32 @@ zrb/input/int_input.py,sha256=UhxCFYlZdJcgUSGGEkz301zOgRVpK0KDG_IxxWpQfMU,1457
245
248
  zrb/input/option_input.py,sha256=TQB82ko5odgzkULEizBZi0e9TIHEbIgvdP0AR3RhA74,2135
246
249
  zrb/input/password_input.py,sha256=szBojWxSP9QJecgsgA87OIYwQrY2AQ3USIKdDZY6snU,1465
247
250
  zrb/input/str_input.py,sha256=NevZHX9rf1g8eMatPyy-kUX3DglrVAQpzvVpKAzf7bA,81
248
- zrb/input/text_input.py,sha256=6T3MngWdUs0u0ZVs5Dl11w5KS7nN1RkgrIR_zKumzPM,3695
249
- zrb/llm_config.py,sha256=Cjfce8Idov3D9gFeU44ycpWjgd4uEeOjw7Zmn6IGTxk,18069
250
- zrb/llm_rate_limitter.py,sha256=uM9zmSgV10fQq1dlaDGLDrv72uLj6ldBxMoGjO2Az14,4429
251
+ zrb/input/text_input.py,sha256=UCkC497V6L12cPjupOgIZ5XW2eBbBDydQi5IIYtknek,3702
251
252
  zrb/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
- zrb/runner/cli.py,sha256=y_n7O4kQKXpiLAsBsf1WnHNfWgKlrxE9TU0MU1ICUMg,6989
253
+ zrb/runner/cli.py,sha256=EjnTtEEkTDdTURh20Jie3SMoAG5NJQneCR3esgbPmuE,6996
253
254
  zrb/runner/common_util.py,sha256=JDMcwvQ8cxnv9kQrAoKVLA40Q1omfv-u5_d5MvvwHeE,1373
254
- zrb/runner/web_app.py,sha256=L61fwHBKbG1BuoC8JASCUwoPYjBt2h90HtPQBpZALLs,2789
255
- zrb/runner/web_auth_config.py,sha256=XAznxFk-CThhAJJIWAHhXFJC2ZH1aVIlrgYg2yjUAv4,6272
255
+ zrb/runner/web_app.py,sha256=n8iXtQ5DGIfRcFsHdBafm9VJisVSDD159XFPpEXQTN0,2796
256
256
  zrb/runner/web_route/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
- zrb/runner/web_route/docs_route.py,sha256=Ftv4BbxnF_GZs2cJwen4hV7Z_UKQassFugB_bePdrPw,543
258
- zrb/runner/web_route/error_page/serve_default_404.py,sha256=srQSyOHoTZLScSvSUQnzUAVFOFSO_NQ2XEQZSvPd05c,1072
259
- zrb/runner/web_route/error_page/show_error_page.py,sha256=ck5u_LQiLHtgzwpVgX9Xs_60zPonfnoefXDYYBoR3gI,1301
257
+ zrb/runner/web_route/docs_route.py,sha256=Y8zTROzIOfmJuU_E9KZljdjgkd65DcvLeX3k0xO-o_k,550
258
+ zrb/runner/web_route/error_page/serve_default_404.py,sha256=LvEq4RnCoP_plQnlZBDTd9MHg7i1YxbuR_aVVYtAhjk,1072
259
+ zrb/runner/web_route/error_page/show_error_page.py,sha256=gvdpVR-BiAx7ibV3B-_1oWeGRLw3W8xYOQ5A9n19TzE,1308
260
260
  zrb/runner/web_route/error_page/view.html,sha256=iYH52t2CQ9_ubgweELwnUXtqzhleC0Nv1oa9ecREM64,544
261
261
  zrb/runner/web_route/home_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
262
- zrb/runner/web_route/home_page/home_page_route.py,sha256=dVOlQ_Nk5wQZkkRCC43aiACQRGAxzzCRYfTYRRHnm3M,2606
262
+ zrb/runner/web_route/home_page/home_page_route.py,sha256=RtD8BJgS7Tiufkjg-bG-a3q0lkIr-4iF9oKunVqLqok,2613
263
263
  zrb/runner/web_route/home_page/view.html,sha256=oWvirSGh74ABHHDPYboQueZI6_xMeMLDf5LZNLZO52k,422
264
- zrb/runner/web_route/login_api_route.py,sha256=xzo8GyybsNJmnmo6GD08zmVjD9nWpckOnSxH92HqxkU,1151
265
- zrb/runner/web_route/login_page/login_page_route.py,sha256=Cs0VtIbu9Sq0Or2d7TRrT2d0_85y_XxsvBmPBzi9OsQ,1929
264
+ zrb/runner/web_route/login_api_route.py,sha256=5H41qGRoQZvCPwO93I21CYXXYEjmoDkAeWuJof_4CaI,1151
265
+ zrb/runner/web_route/login_page/login_page_route.py,sha256=ivSGo72CbOo97SGMRwIPNOUu_xmV_3lH8eAAUJU-xK4,1936
266
266
  zrb/runner/web_route/login_page/view.html,sha256=KLHZWm5MxcGCOQjeq_JtXMTLvDX8JyphSBbK6DDrkg8,1139
267
- zrb/runner/web_route/logout_api_route.py,sha256=VS5OvngwoAE5SXolWtEmja1vXpqSLQu8E-wiq5weeDA,633
268
- zrb/runner/web_route/logout_page/logout_page_route.py,sha256=JAzBJzgMR-deKJOaE_8VXnzA0RJdTS_rpUBRTmwobg4,1974
267
+ zrb/runner/web_route/logout_api_route.py,sha256=MqpyjcI129-abJCfA_b03s3rkj22BkGH-MAGlGVerMM,633
268
+ zrb/runner/web_route/logout_page/logout_page_route.py,sha256=dpfzEXScDrHNH1Yzq7I5SyoQafE_X72QLNhcOU2QDc0,1981
269
269
  zrb/runner/web_route/logout_page/view.html,sha256=P1S9cv7eXMbwUZTPfP4sshBNI-m9nWhLP-mrmtoEHCs,742
270
- zrb/runner/web_route/node_page/group/show_group_page.py,sha256=IBwCU8HykybPII89sCWvYXdM-OaBvSaQqixgBhdsPOg,1953
270
+ zrb/runner/web_route/node_page/group/show_group_page.py,sha256=grsWdn8ABhWiYBMhtwX2T8Wagml-E5oD4W4IoUv08fw,1960
271
271
  zrb/runner/web_route/node_page/group/view.html,sha256=3d1O2Vqc2PzxY-_xWt0Rsb2mG1yrvQ1TuaZXuYGolJw,566
272
- zrb/runner/web_route/node_page/node_page_route.py,sha256=7UjYGgtlDK6t2RR0ILmXwkZk04a1HJKOhDr09h46Rzw,2284
272
+ zrb/runner/web_route/node_page/node_page_route.py,sha256=ry3rLe3S_35r656Xm3Sm94kQtJMZFpd2Zfj5s6crN5k,2284
273
273
  zrb/runner/web_route/node_page/task/partial/input.html,sha256=X2jy0q7TLQGP853exZMed0lqPezL3gzn6mnhB5QKfkc,178
274
- zrb/runner/web_route/node_page/task/show_task_page.py,sha256=Fmov5Byqj10Rbkl-IXxZDoKt0L7rMP9TjMIcq2oNtmk,3355
274
+ zrb/runner/web_route/node_page/task/show_task_page.py,sha256=oee7znmRPkPu_kkrvOpzuvDvkKF0eI4GQwGrXG5iiWc,3362
275
275
  zrb/runner/web_route/node_page/task/view.html,sha256=mp_DeoPXhWPypAbKSZ6iTIDVlTRUQzIuJfDExxOWBWc,2598
276
- zrb/runner/web_route/refresh_token_api_route.py,sha256=UFrSwNxpbDRHQiDIRhtVndRNlwsMIRZOkL4glK5sS6c,1504
276
+ zrb/runner/web_route/refresh_token_api_route.py,sha256=480ekxghp645bqIZ4AmctB8_Fu-FkJb7tB_jbprW1qM,1504
277
277
  zrb/runner/web_route/static/global_template.html,sha256=fK5eBs4cH5zb_JhcWANygtnf0PMY4HAkFmN3hZI3rE4,1298
278
278
  zrb/runner/web_route/static/refresh-token.template.js,sha256=AWXhdxTMyuzBZoMftH7BjlU2CMIafwqWcbkZoiUEE50,1074
279
279
  zrb/runner/web_route/static/resources/common.css,sha256=Kk8o0mcArKTOxPllR0ecaa0ZRVVig0CG0KvLXIqmGJo,517
@@ -305,16 +305,16 @@ zrb/runner/web_route/static/resources/session/common-util.js,sha256=t7_s5DXgMyZl
305
305
  zrb/runner/web_route/static/resources/session/current-session.js,sha256=tzUdK7qJKnMBGlIaMZJIPc2oeL5csk1JTBbjTsjhrFA,7008
306
306
  zrb/runner/web_route/static/resources/session/event.js,sha256=X5OlSHefK0SDB9VkFCRyBKE_Pb7mqM319mW9jRGoDOk,4716
307
307
  zrb/runner/web_route/static/resources/session/past-session.js,sha256=RwGJYKSp75K8NZ-iZP58XppWgdzkiKFaiC5wgcMLxDo,5470
308
- zrb/runner/web_route/static/static_route.py,sha256=YRGKD7qiFuvciSRNewvo6oK0JLHQ_cK74eXWjffoQ70,1555
309
- zrb/runner/web_route/task_input_api_route.py,sha256=k5nQiJCL2ud6BhxaPGSbpK86XvMbsFliqTQ1FpEd-8Q,1767
310
- zrb/runner/web_route/task_session_api_route.py,sha256=CHbmcN-57FHixS-tVaxye5McMM3toHm8XcKFVmn1x6Y,6258
308
+ zrb/runner/web_route/static/static_route.py,sha256=QPs5XW4O_8CuzG0Wy4sHh5wRcLbU63CLDI4YNqkUxHA,1555
309
+ zrb/runner/web_route/task_input_api_route.py,sha256=6JIehRjXPhzclq9qGMYkztaKB0TzWsBBbim0m47-YmA,1767
310
+ zrb/runner/web_route/task_session_api_route.py,sha256=4U6VDzQ3rU_VjhH3LZ3NAy0fQjHFjohyZLlYpxmckxo,6258
311
311
  zrb/runner/web_schema/session.py,sha256=NwbuS2Sv-CXO52nU-EZv8OMlD4vgCQWNeLC_dT0FK7I,92
312
312
  zrb/runner/web_schema/token.py,sha256=Y7XCPS4WzrxslTDtHeLcPTTUpmWhPOkRcl4b99zrC7c,185
313
313
  zrb/runner/web_schema/user.py,sha256=Kp10amg4i-f8Y-4czogv1YN7rwy0HdbePFiuovYu1ts,1018
314
- zrb/runner/web_util/cookie.py,sha256=1_oRRGziv3wAvaEDV5uCKdwWxvEI8EcW6wHW5NpBcDE,1085
314
+ zrb/runner/web_util/cookie.py,sha256=O5vfZfeZOBL6ECvT7WqD4LihrsXO6okJLBUp6b7RMj0,1085
315
315
  zrb/runner/web_util/html.py,sha256=TuUHjX3eKCBzoa7TYdMt8dfWWy06idauyCaG66X4Ygc,1838
316
- zrb/runner/web_util/token.py,sha256=6Yqp6mQJJMAOsSkAN-6dvtdiQbAv5xtll9jOmNYzbUY,2687
317
- zrb/runner/web_util/user.py,sha256=vE61pDjHoaHw9K0YAv1Gu2zWX2WkM2aWG-8776_aAiM,2061
316
+ zrb/runner/web_util/token.py,sha256=uaQXSZ6mptiph1a_LOMdYtPYdcyOk3ygz5ZoLGOPkhE,2687
317
+ zrb/runner/web_util/user.py,sha256=wvFiF_TxUj580fgj_X7uB2Sw_MKZjH7ZIbGLDMBrg_A,2061
318
318
  zrb/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
319
319
  zrb/session/any_session.py,sha256=Z_R6lvg4exwAeDPH9nKRMwWJJTpgLCr8DVLs4MP53Rc,5204
320
320
  zrb/session/session.py,sha256=kkaddqyRhT_7qXeGAjHT8cfrAu_1gS8g1DQdp8UmEsE,10338
@@ -323,7 +323,7 @@ zrb/session_state_log/session_state_log.py,sha256=VVghDMU72PbrvnzQ7MJuc-KTJ5P5fX
323
323
  zrb/session_state_logger/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
324
324
  zrb/session_state_logger/any_session_state_logger.py,sha256=T_-aJv63HwoTeiDOmXKHp--eGl9MqAwgcLbiEPLhmDI,696
325
325
  zrb/session_state_logger/file_session_state_logger.py,sha256=NMyj_g2ImQc6ZRM9f35EpA-CM1UO-ZgoDnPkN1DSi9U,3915
326
- zrb/session_state_logger/session_state_logger_factory.py,sha256=2Jvvp2zqK3qD0Gw-pm84LJ3d5uvkoBRh9MNHvw3r_DA,181
326
+ zrb/session_state_logger/session_state_logger_factory.py,sha256=_oT1UIqm25nMwKhsUvXehnCdDvNqxCyuN8GLdv2D_U4,188
327
327
  zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
328
328
  zrb/task/any_task.py,sha256=E4HA4Fumwv5dIsEnl2q0eE6t6LHnF6uyk0O5yQ2Mz6g,5826
329
329
  zrb/task/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -334,21 +334,21 @@ zrb/task/base/monitoring.py,sha256=UAOEcPiYNtZR4FFxzWCosuOEFE_P3c4GT5vAhQmohqI,5
334
334
  zrb/task/base/operators.py,sha256=uAMFqpZJsPnCrojgOl1FUDXTS15mtOa_IqiAXltyYRU,1576
335
335
  zrb/task/base_task.py,sha256=Y5JNzU6Y1E8RKGdj16HTlhny0v8N2I98GCA4D8h6Kmw,10962
336
336
  zrb/task/base_trigger.py,sha256=WSGcmBcGAZw8EzUXfmCjqJQkz8GEmi1RzogpF6A1V4s,6902
337
- zrb/task/cmd_task.py,sha256=irGi0txTcsvGhxjfem4_radR4csNXhgtfcxruSF1LFI,10853
337
+ zrb/task/cmd_task.py,sha256=myM8WZm6NrUD-Wv0Vb5sTOrutrAVZLt5LVsSBKwX6SM,10860
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=IUGhU7vSfGVpVbd0rGLJ9kxIpt04Fm6UBjBWCVBVaZs,6695
341
- zrb/task/llm/config.py,sha256=WsO_kLXi0JXB6SPNL_dWm1Izu04KRrzmuX6DSrRYeBE,3483
340
+ zrb/task/llm/agent.py,sha256=BZHbz-YXgSdm1tTwGMR_maqcd3yMFGSdzLyDjuxT_XI,6702
341
+ zrb/task/llm/config.py,sha256=TlyH925_fboIlK2Ixf34tynmenqs9s9rfsnPs4jff78,3490
342
342
  zrb/task/llm/context.py,sha256=LGGQ_mb1dWorfshHjGgXEW_pRweGj-6MZcIUFq3AHy4,2213
343
- zrb/task/llm/context_enrichment.py,sha256=MBs5lkI1GFZwtW_P7fJfIc6CWcAS0UWQeBO6ggSBSk0,6033
343
+ zrb/task/llm/context_enrichment.py,sha256=djY4fE9C0zUxJPrrb2xDboBXr_2kPUS_b4HjqslVpHg,6051
344
344
  zrb/task/llm/error.py,sha256=s5PSK3ibGupMzOM0P81nstHWrMr3205H0FSDwfhWUDA,3662
345
345
  zrb/task/llm/history.py,sha256=cpaNqoEzsNAgzZGPPdohA8U5nTrVWmZ3P1Y5RTtXDgc,7986
346
- zrb/task/llm/history_summarization.py,sha256=TejPLktJmlxvhM-UmC29m_g6U9bC5e4fxRSEwt22GN0,6032
346
+ zrb/task/llm/history_summarization.py,sha256=V0G1BiISnxxmD8040PrvT0_dfqGE7zbLtk74KUpuqig,6050
347
347
  zrb/task/llm/print_node.py,sha256=zocTKi9gZDxl2I6KNu095TmMc13Yip6SNuWYnswS680,4060
348
- zrb/task/llm/prompt.py,sha256=obSsLHF4AHlwMIEQ8XTJmtEnkLlD5XTEkk0RJUmIz4Y,3410
348
+ zrb/task/llm/prompt.py,sha256=qhR8qS8RgaQ23D3amaHSHnBNv_NOnFB_1uxaQNc8KFw,3417
349
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=EYU3TYhLrMu3nI2h-hid1vbfqpemYg54uht_Q8H8JBo,21056
351
+ zrb/task/llm_task.py,sha256=ELp71FsJ9SOGiMcgrAXHm00FB4OxchKjRiW-LtJ9t7c,21063
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
@@ -380,7 +380,7 @@ zrb/util/file.py,sha256=tm_8qn0vEM8Hz46yXUcvFHfsLtQNqidQaEuB85xqhFE,2806
380
380
  zrb/util/git.py,sha256=gS_Y9sQgJbY0PfgSQiowLvV3Nf0y9C8nT3j6z6oEsG8,8186
381
381
  zrb/util/git_subtree.py,sha256=E_UB5OIgm8WkHL9beifRxpZ25_BB9p1H578OhLZTgRU,4611
382
382
  zrb/util/group.py,sha256=T82yr3qg9I5k10VPXkMyrIRIqyfzadSH813bqzwKEPI,4718
383
- zrb/util/init_path.py,sha256=n4BgLGeq3mPLS1la8VEqZpqJHx0vJRe2WRwTtbw-FjE,652
383
+ zrb/util/init_path.py,sha256=9eN7CkWNGhDBpjTQs2j9YHVMzui7Y8DEb1WP4aTPzeo,659
384
384
  zrb/util/load.py,sha256=DK0KYSlu48HCoGPqnW1IxnE3pHrZSPCstfz8Fjyqqv8,2140
385
385
  zrb/util/run.py,sha256=vu-mcSWDP_WuuvIKqM_--Gk3WkABO1oTXiHmBRTvVQk,546
386
386
  zrb/util/string/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -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.9.3.dist-info/METADATA,sha256=kFpbPlQwRBKBcKMQgRCnMuqvj2tamyF7j_qJIRYaOUo,9597
395
- zrb-1.9.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
396
- zrb-1.9.3.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
397
- zrb-1.9.3.dist-info/RECORD,,
394
+ zrb-1.9.5.dist-info/METADATA,sha256=mFfF74UklDKcc54tTD5nWKRozhJgKYHgGMEZrIhOwVs,9597
395
+ zrb-1.9.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
396
+ zrb-1.9.5.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
397
+ zrb-1.9.5.dist-info/RECORD,,
File without changes