zrb 1.15.26__py3-none-any.whl → 1.15.27__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.
@@ -88,6 +88,8 @@ async def read_user_prompt(ctx: AnyContext) -> str:
88
88
  )
89
89
  if result is not None:
90
90
  final_result = result
91
+ if ctx.is_web_mode:
92
+ return final_result
91
93
  return final_result
92
94
 
93
95
 
@@ -162,7 +162,7 @@ _llm_ask_inputs = [
162
162
  ),
163
163
  ]
164
164
 
165
- llm_ask = llm_group.add_task(
165
+ llm_ask: LLMTask = llm_group.add_task(
166
166
  LLMTask(
167
167
  name="llm-ask",
168
168
  input=_llm_ask_inputs,
@@ -69,6 +69,9 @@ async def analyze_repo(
69
69
  clear and specific goal. Vague goals will result in a vague analysis and
70
70
  may cause the tool to run for a long time.
71
71
 
72
+ Make sure to skim the repository or directory first so that you can put
73
+ effective parameters.
74
+
72
75
  Use this tool for:
73
76
  - Understanding a large or unfamiliar codebase.
74
77
  - Generating high-level summaries of a project's architecture.
@@ -115,7 +115,12 @@ class LLMContextConfig:
115
115
  if context_path is None:
116
116
  context_path = cwd
117
117
 
118
- config_file = os.path.join(cwd, CFG.LLM_CONTEXT_FILE)
118
+ config_files = self._find_config_files(cwd)
119
+ if config_files:
120
+ config_file = config_files[0]
121
+ else:
122
+ home_dir = os.path.expanduser("~")
123
+ config_file = os.path.join(home_dir, CFG.LLM_CONTEXT_FILE)
119
124
 
120
125
  sections = {}
121
126
  if os.path.exists(config_file):
zrb/group/any_group.py CHANGED
@@ -1,9 +1,13 @@
1
1
  from abc import ABC, abstractmethod
2
+ from typing import Generic, TypeVar
2
3
 
3
4
  from zrb.task.any_task import AnyTask
4
5
 
6
+ GroupType = TypeVar("GroupType", bound="AnyGroup")
7
+ TaskType = TypeVar("TaskType", bound=AnyTask)
5
8
 
6
- class AnyGroup(ABC):
9
+
10
+ class AnyGroup(ABC, Generic[GroupType, TaskType]):
7
11
  @property
8
12
  @abstractmethod
9
13
  def name(self) -> str:
@@ -35,11 +39,11 @@ class AnyGroup(ABC):
35
39
  pass
36
40
 
37
41
  @abstractmethod
38
- def add_group(self, group: "AnyGroup | str") -> "AnyGroup":
42
+ def add_group(self, group: GroupType, alias: str | None) -> GroupType:
39
43
  pass
40
44
 
41
45
  @abstractmethod
42
- def add_task(self, task: AnyTask, alias: str | None = None) -> AnyTask:
46
+ def add_task(self, task: TaskType, alias: str | None = None) -> TaskType:
43
47
  pass
44
48
 
45
49
  @abstractmethod
@@ -55,5 +59,5 @@ class AnyGroup(ABC):
55
59
  pass
56
60
 
57
61
  @abstractmethod
58
- def get_group_by_alias(self, name: str) -> "AnyGroup | None":
62
+ def get_group_by_alias(self, alias: str) -> "AnyGroup | None":
59
63
  pass
zrb/group/group.py CHANGED
@@ -1,8 +1,10 @@
1
- from zrb.group.any_group import AnyGroup
1
+ from typing import Generic, TypeVar
2
+
3
+ from zrb.group.any_group import AnyGroup, GroupType, TaskType
2
4
  from zrb.task.any_task import AnyTask
3
5
 
4
6
 
5
- class Group(AnyGroup):
7
+ class Group(AnyGroup, Generic[GroupType, TaskType]):
6
8
  def __init__(
7
9
  self, name: str, description: str | None = None, banner: str | None = None
8
10
  ):
@@ -41,13 +43,13 @@ class Group(AnyGroup):
41
43
  alias.sort()
42
44
  return {name: self._tasks.get(name) for name in alias}
43
45
 
44
- def add_group(self, group: AnyGroup | str, alias: str | None = None) -> AnyGroup:
45
- real_group = Group(group) if isinstance(group, str) else group
46
+ def add_group(self, group: GroupType, alias: str | None = None) -> GroupType:
47
+ real_group: GroupType = Group(group) if isinstance(group, str) else group
46
48
  alias = alias if alias is not None else real_group.name
47
49
  self._groups[alias] = real_group
48
50
  return real_group
49
51
 
50
- def add_task(self, task: AnyTask, alias: str | None = None) -> AnyTask:
52
+ def add_task(self, task: TaskType, alias: str | None = None) -> TaskType:
51
53
  alias = alias if alias is not None else task.name
52
54
  self._tasks[alias] = task
53
55
  return task
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zrb
3
- Version: 1.15.26
3
+ Version: 1.15.27
4
4
  Summary: Your Automation Powerhouse
5
5
  License: AGPL-3.0-or-later
6
6
  Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
@@ -9,15 +9,15 @@ zrb/builtin/git_subtree.py,sha256=7BKwOkVTWDrR0DXXQ4iJyHqeR6sV5VYRt8y_rEB0EHg,35
9
9
  zrb/builtin/group.py,sha256=zYC5uw0VE97TXiLCr464kFJ-CJIJyeQ2RXjnVRY5ovs,2577
10
10
  zrb/builtin/http.py,sha256=L6RE73c65wWwG5iHFN-tpOhyh56KsrgVskDd3c3YXtk,4246
11
11
  zrb/builtin/jwt.py,sha256=3M5uaQhJZbKQLjTUft1OwPz_JxtmK-xtkjxWjciOQho,2859
12
- zrb/builtin/llm/chat_session.py,sha256=p0giSVYuQMQ5H1hbQzl7cMb49XZqWG0SF7X-ixB5EBU,10203
12
+ zrb/builtin/llm/chat_session.py,sha256=LRBrIA4XaZTL8v4pjFrc47O-eHOKwuLOD4aWG0BeAkE,10279
13
13
  zrb/builtin/llm/history.py,sha256=LDOrL0p7r_AHLa5L8Dp7bHNsOALugmJd7OguXRWGnm4,3087
14
14
  zrb/builtin/llm/input.py,sha256=Nw-26uTWp2QhUgKJcP_IMHmtk-b542CCSQ_vCOjhvhM,877
15
- zrb/builtin/llm/llm_ask.py,sha256=b3eS31NA55OUyeZN3O-sD971kz1LeX4QWzQQECpMaXo,6579
15
+ zrb/builtin/llm/llm_ask.py,sha256=U-0QKI15bio_SoXxR9p18jCmIEdFNLCCyA2MohtHvyY,6588
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=T8NGhBe59sQiu8LfdPOIBmsTNMXWFEKaPPSY9bolsQ8,2401
19
19
  zrb/builtin/llm/tool/cli.py,sha256=GCGB8GMFjvVcH0Ac-bD44VG6Bj3mQSuIcNHAwJbx4Ts,1210
20
- zrb/builtin/llm/tool/code.py,sha256=fr9FbmtfwizQTyTztvuvwAb9MD_auRZhPZfoJVBlKT4,8777
20
+ zrb/builtin/llm/tool/code.py,sha256=2GBwDRocFwuIKIDEvHvekbxo1-NmEp1hJjd-labjAtw,8880
21
21
  zrb/builtin/llm/tool/file.py,sha256=FPPvKUZY-w1XEa7EN6D6X4VQoQNQ9ggGWLj-xJt-Ysc,23524
22
22
  zrb/builtin/llm/tool/rag.py,sha256=n4ATdr-2gCzPb7LnaBSD_TuAG4TUXKhE9ElKrSDHvFc,9763
23
23
  zrb/builtin/llm/tool/sub_agent.py,sha256=qJTJ2GSH-2Cma2QyHEJm8l_VuDHMHwhAWGls217YA6A,5078
@@ -226,7 +226,7 @@ zrb/config/default_prompt/repo_summarizer_system_prompt.md,sha256=RNy37Wg7ibXj3D
226
226
  zrb/config/default_prompt/summarization_prompt.md,sha256=qGSZJHQ0KVaSoeDVeAmvxaOHUGeLPaq813jepGqnkbk,1564
227
227
  zrb/config/default_prompt/system_prompt.md,sha256=gEb6N-cFg6VvOV-7ZffNwVt39DavAGesMqn9u0epbRc,2282
228
228
  zrb/config/llm_config.py,sha256=9I_msAibvTY-ADG6lXCBXQ0EshaA-GQzJym9EZKsetw,8901
229
- zrb/config/llm_context/config.py,sha256=TPQX_kU772r0AHmVFeo1WGLDAidacT-qDyuMWxY_avg,5878
229
+ zrb/config/llm_context/config.py,sha256=PrF_aiZwdW8zhTu5__52IdOEd22XrdScFGsnZK3qCHQ,6067
230
230
  zrb/config/llm_context/config_parser.py,sha256=h95FbOjvVobhrsfGtG_BY3hxS-OLzQj-9F5vGZuehkY,1473
231
231
  zrb/config/llm_rate_limitter.py,sha256=_iQRv3d6kUPeRvmUYZX_iwCE7iDSEK1oKa4bQ9GROho,5261
232
232
  zrb/config/web_auth_config.py,sha256=_PXatQTYh2mX9H3HSYSQKp13zm1RlLyVIoeIr6KYMQ8,6279
@@ -246,8 +246,8 @@ zrb/env/env.py,sha256=zT-xj0l5G_lp_ginV_InuBr5qTqZMcGaMKE_p5FoqlU,1061
246
246
  zrb/env/env_file.py,sha256=dccsR_cjXp1Q_qz692YPaZSny3Xa049V5NAZ-WLDDEQ,746
247
247
  zrb/env/env_map.py,sha256=CKMmXUbuvf6h2rgFWj-WvW_xLZNgG3TtWdfrqHDe4qk,1253
248
248
  zrb/group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
- zrb/group/any_group.py,sha256=sdUk82YRuJBMwDhD_b-vJ3v-Yxz8K7LFW52TM19k3HI,1242
250
- zrb/group/group.py,sha256=t5JnXlrLfthFfqmkVdRLKCIyms4JqsthcTODVncSmPk,4312
249
+ zrb/group/any_group.py,sha256=BstkxtRQTGjMKdr1ErEHhB0UopXtYvwbCEOJnX5LjXA,1420
250
+ zrb/group/group.py,sha256=JBiigohvtLdR1t3irXJzfUPeYqiNgqUWhlKaB79stpE,4409
251
251
  zrb/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
252
  zrb/input/any_input.py,sha256=3EQgg2Qk_2t2Ege_4pHV2G95tV3XAIThLLuFZ6uV6oM,1051
253
253
  zrb/input/base_input.py,sha256=HCTxBZwnK-gP-F7XQGDbyyZHvwYR0fwNICzqVUw5Cg8,4169
@@ -410,7 +410,7 @@ zrb/util/todo_model.py,sha256=hhzAX-uFl5rsg7iVX1ULlJOfBtblwQ_ieNUxBWfc-Os,1670
410
410
  zrb/util/truncate.py,sha256=eSzmjBpc1Qod3lM3M73snNbDOcARHukW_tq36dWdPvc,921
411
411
  zrb/xcom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
412
412
  zrb/xcom/xcom.py,sha256=o79rxR9wphnShrcIushA0Qt71d_p3ZTxjNf7x9hJB78,1571
413
- zrb-1.15.26.dist-info/METADATA,sha256=Eu_JTWqERNjfPIA4s8ChoWYZ7Da_PsT4p4OwB5BtxIw,9892
414
- zrb-1.15.26.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
415
- zrb-1.15.26.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
416
- zrb-1.15.26.dist-info/RECORD,,
413
+ zrb-1.15.27.dist-info/METADATA,sha256=qktgoudjcOq_BhgqBxuetkbMx-a4PfK7bTTAOlCFgog,9892
414
+ zrb-1.15.27.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
415
+ zrb-1.15.27.dist-info/entry_points.txt,sha256=-Pg3ElWPfnaSM-XvXqCxEAa-wfVI6BEgcs386s8C8v8,46
416
+ zrb-1.15.27.dist-info/RECORD,,
File without changes