jarvis-ai-assistant 0.1.44__py3-none-any.whl → 0.1.46__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 (58) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/agent.py +47 -32
  3. jarvis/main.py +52 -30
  4. jarvis/models/__init__.py +1 -1
  5. jarvis/models/ai8.py +88 -58
  6. jarvis/models/base.py +6 -6
  7. jarvis/models/kimi.py +171 -80
  8. jarvis/models/openai.py +43 -23
  9. jarvis/models/oyi.py +93 -65
  10. jarvis/models/registry.py +63 -44
  11. jarvis/tools/__init__.py +1 -1
  12. jarvis/tools/base.py +2 -2
  13. jarvis/tools/file_ops.py +19 -15
  14. jarvis/tools/generator.py +15 -12
  15. jarvis/tools/methodology.py +20 -20
  16. jarvis/tools/registry.py +44 -30
  17. jarvis/tools/shell.py +12 -11
  18. jarvis/tools/sub_agent.py +1 -2
  19. jarvis/utils.py +47 -27
  20. {jarvis_ai_assistant-0.1.44.dist-info → jarvis_ai_assistant-0.1.46.dist-info}/METADATA +1 -1
  21. jarvis_ai_assistant-0.1.46.dist-info/RECORD +25 -0
  22. jarvis/__pycache__/__init__.cpython-313.pyc +0 -0
  23. jarvis/__pycache__/agent.cpython-313.pyc +0 -0
  24. jarvis/__pycache__/main.cpython-313.pyc +0 -0
  25. jarvis/__pycache__/models.cpython-313.pyc +0 -0
  26. jarvis/__pycache__/tools.cpython-313.pyc +0 -0
  27. jarvis/__pycache__/utils.cpython-313.pyc +0 -0
  28. jarvis/__pycache__/zte_llm.cpython-313.pyc +0 -0
  29. jarvis/models/__pycache__/__init__.cpython-313.pyc +0 -0
  30. jarvis/models/__pycache__/ai8.cpython-313.pyc +0 -0
  31. jarvis/models/__pycache__/base.cpython-313.pyc +0 -0
  32. jarvis/models/__pycache__/kimi.cpython-313.pyc +0 -0
  33. jarvis/models/__pycache__/openai.cpython-313.pyc +0 -0
  34. jarvis/models/__pycache__/oyi.cpython-313.pyc +0 -0
  35. jarvis/models/__pycache__/registry.cpython-313.pyc +0 -0
  36. jarvis/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  37. jarvis/tools/__pycache__/base.cpython-313.pyc +0 -0
  38. jarvis/tools/__pycache__/bing_search.cpython-313.pyc +0 -0
  39. jarvis/tools/__pycache__/calculator.cpython-313.pyc +0 -0
  40. jarvis/tools/__pycache__/calculator_tool.cpython-313.pyc +0 -0
  41. jarvis/tools/__pycache__/file_ops.cpython-313.pyc +0 -0
  42. jarvis/tools/__pycache__/generator.cpython-313.pyc +0 -0
  43. jarvis/tools/__pycache__/methodology.cpython-313.pyc +0 -0
  44. jarvis/tools/__pycache__/python_script.cpython-313.pyc +0 -0
  45. jarvis/tools/__pycache__/rag.cpython-313.pyc +0 -0
  46. jarvis/tools/__pycache__/registry.cpython-313.pyc +0 -0
  47. jarvis/tools/__pycache__/search.cpython-313.pyc +0 -0
  48. jarvis/tools/__pycache__/shell.cpython-313.pyc +0 -0
  49. jarvis/tools/__pycache__/sub_agent.cpython-313.pyc +0 -0
  50. jarvis/tools/__pycache__/user_confirmation.cpython-313.pyc +0 -0
  51. jarvis/tools/__pycache__/user_input.cpython-313.pyc +0 -0
  52. jarvis/tools/__pycache__/user_interaction.cpython-313.pyc +0 -0
  53. jarvis/tools/__pycache__/webpage.cpython-313.pyc +0 -0
  54. jarvis_ai_assistant-0.1.44.dist-info/RECORD +0 -57
  55. {jarvis_ai_assistant-0.1.44.dist-info → jarvis_ai_assistant-0.1.46.dist-info}/LICENSE +0 -0
  56. {jarvis_ai_assistant-0.1.44.dist-info → jarvis_ai_assistant-0.1.46.dist-info}/WHEEL +0 -0
  57. {jarvis_ai_assistant-0.1.44.dist-info → jarvis_ai_assistant-0.1.46.dist-info}/entry_points.txt +0 -0
  58. {jarvis_ai_assistant-0.1.44.dist-info → jarvis_ai_assistant-0.1.46.dist-info}/top_level.txt +0 -0
jarvis/utils.py CHANGED
@@ -13,23 +13,25 @@ from prompt_toolkit.formatted_text import FormattedText
13
13
  # 初始化colorama
14
14
  colorama.init()
15
15
 
16
+
16
17
  class OutputType(Enum):
17
18
  SYSTEM = "system" # AI助手消息
18
19
  CODE = "code" # 代码相关
19
20
  RESULT = "result" # 工具执行结果
20
21
  ERROR = "error" # 错误信息
21
22
  INFO = "info" # 系统提示
22
- PLANNING = "planning" # 任务规划
23
- PROGRESS = "progress" # 执行进度
23
+ PLANNING = "planning" # 任务规划
24
+ PROGRESS = "progress" # 执行进度
24
25
  SUCCESS = "success" # 成功信息
25
26
  WARNING = "warning" # 警告信息
26
27
  DEBUG = "debug" # 调试信息
27
28
  USER = "user" # 用户输入
28
29
  TOOL = "tool" # 工具调用
29
30
 
31
+
30
32
  class PrettyOutput:
31
33
  """美化输出类"""
32
-
34
+
33
35
  # 颜色方案 - 只使用前景色
34
36
  COLORS = {
35
37
  OutputType.SYSTEM: Fore.CYAN, # 青色 - AI助手
@@ -37,7 +39,7 @@ class PrettyOutput:
37
39
  OutputType.RESULT: Fore.BLUE, # 蓝色 - 结果
38
40
  OutputType.ERROR: Fore.RED, # 红色 - 错误
39
41
  OutputType.INFO: Fore.YELLOW, # 黄色 - 提示
40
- OutputType.PLANNING: Fore.MAGENTA, # 紫色 - 规划
42
+ OutputType.PLANNING: Fore.MAGENTA, # 紫色 - 规划
41
43
  OutputType.PROGRESS: Fore.WHITE, # 白色 - 进度
42
44
  OutputType.SUCCESS: Fore.GREEN, # 绿色 - 成功
43
45
  OutputType.WARNING: Fore.YELLOW, # 黄色 - 警告
@@ -45,7 +47,7 @@ class PrettyOutput:
45
47
  OutputType.USER: Fore.GREEN, # 绿色 - 用户
46
48
  OutputType.TOOL: Fore.YELLOW, # 黄色 - 工具
47
49
  }
48
-
50
+
49
51
  # 图标方案
50
52
  ICONS = {
51
53
  OutputType.SYSTEM: "🤖", # 机器人 - AI助手
@@ -61,7 +63,7 @@ class PrettyOutput:
61
63
  OutputType.USER: "👤", # 用户 - 用户
62
64
  OutputType.TOOL: "🔧", # 扳手 - 工具
63
65
  }
64
-
66
+
65
67
  # 前缀方案
66
68
  PREFIXES = {
67
69
  OutputType.SYSTEM: "Assistant",
@@ -79,18 +81,20 @@ class PrettyOutput:
79
81
  }
80
82
 
81
83
  @staticmethod
82
- def format(text: str, output_type: OutputType, timestamp: bool = True) -> str:
84
+ def format(text: str, output_type: OutputType,
85
+ timestamp: bool = True) -> str:
83
86
  """格式化输出文本"""
84
87
  color = PrettyOutput.COLORS.get(output_type, "")
85
88
  icon = PrettyOutput.ICONS.get(output_type, "")
86
89
  prefix = PrettyOutput.PREFIXES.get(output_type, "")
87
-
90
+
88
91
  # 添加时间戳 - 使用白色
89
92
  time_str = f"{Fore.WHITE}[{datetime.now().strftime('%H:%M:%S')}]{ColoramaStyle.RESET_ALL} " if timestamp else ""
90
-
93
+
91
94
  # 格式化输出
92
- formatted_text = f"{time_str}{color}{icon} {prefix}: {text}{ColoramaStyle.RESET_ALL}"
93
-
95
+ formatted_text = f"{time_str}{color}{icon} {prefix}: {text}{
96
+ ColoramaStyle.RESET_ALL}"
97
+
94
98
  return formatted_text
95
99
 
96
100
  @staticmethod
@@ -99,7 +103,10 @@ class PrettyOutput:
99
103
  print(PrettyOutput.format(text, output_type, timestamp))
100
104
  if output_type == OutputType.ERROR:
101
105
  import traceback
102
- PrettyOutput.print(f"错误追踪: {traceback.format_exc()}", OutputType.INFO)
106
+ PrettyOutput.print(
107
+ f"错误追踪: {
108
+ traceback.format_exc()}",
109
+ OutputType.INFO)
103
110
 
104
111
  @staticmethod
105
112
  def section(title: str, output_type: OutputType = OutputType.INFO):
@@ -107,7 +114,11 @@ class PrettyOutput:
107
114
  width = 60
108
115
  color = PrettyOutput.COLORS.get(output_type, "")
109
116
  print(f"\n{color}" + "=" * width + f"{ColoramaStyle.RESET_ALL}")
110
- PrettyOutput.print(title.center(width - 10), output_type, timestamp=False)
117
+ PrettyOutput.print(
118
+ title.center(
119
+ width - 10),
120
+ output_type,
121
+ timestamp=False)
111
122
  print(f"{color}" + "=" * width + f"{ColoramaStyle.RESET_ALL}\n")
112
123
 
113
124
  @staticmethod
@@ -123,18 +134,19 @@ class PrettyOutput:
123
134
  sys.stdout.write("\n")
124
135
  sys.stdout.flush()
125
136
 
137
+
126
138
  def get_multiline_input(tip: str) -> str:
127
139
  """获取多行输入,支持方向键、历史记录等功能"""
128
140
  PrettyOutput.print(tip + "\n", OutputType.INFO)
129
-
141
+
130
142
  # 创建输入会话,启用历史记录
131
143
  session = PromptSession(history=None) # 使用默认历史记录
132
-
144
+
133
145
  # 定义提示符样式
134
146
  style = PromptStyle.from_dict({
135
147
  'prompt': 'ansicyan',
136
148
  })
137
-
149
+
138
150
  lines = []
139
151
  try:
140
152
  while True:
@@ -142,31 +154,32 @@ def get_multiline_input(tip: str) -> str:
142
154
  prompt = FormattedText([
143
155
  ('class:prompt', '... ' if lines else '>>> ')
144
156
  ])
145
-
157
+
146
158
  # 获取输入
147
159
  line = session.prompt(
148
160
  prompt,
149
161
  style=style,
150
162
  ).strip()
151
-
163
+
152
164
  # 空行处理
153
165
  if not line:
154
166
  if not lines: # 第一行就输入空行
155
167
  return ""
156
168
  break # 结束多行输入
157
-
169
+
158
170
  lines.append(line)
159
-
171
+
160
172
  except KeyboardInterrupt:
161
173
  PrettyOutput.print("\n输入已取消", OutputType.ERROR)
162
174
  return "__interrupt__"
163
-
175
+
164
176
  return "\n".join(lines)
165
177
 
178
+
166
179
  def load_env_from_file():
167
180
  """从~/.jarvis_env加载环境变量"""
168
181
  env_file = Path.home() / ".jarvis_env"
169
-
182
+
170
183
  if env_file.exists():
171
184
  try:
172
185
  with open(env_file, "r", encoding="utf-8") as f:
@@ -175,22 +188,29 @@ def load_env_from_file():
175
188
  if line and not line.startswith("#"):
176
189
  try:
177
190
  key, value = line.split("=", 1)
178
- os.environ[key.strip()] = value.strip().strip("'").strip('"')
191
+ os.environ[key.strip()] = value.strip().strip(
192
+ "'").strip('"')
179
193
  except ValueError:
180
194
  continue
181
195
  except Exception as e:
182
- PrettyOutput.print(f"Warning: Failed to read ~/.jarvis_env: {e}", OutputType.WARNING)
183
-
184
-
196
+ PrettyOutput.print(
197
+ f"Warning: Failed to read ~/.jarvis_env: {e}",
198
+ OutputType.WARNING)
199
+
200
+
185
201
  def while_success(func, sleep_time: float = 0.1):
186
202
  while True:
187
203
  try:
188
204
  return func()
189
205
  except Exception as e:
190
- PrettyOutput.print(f"执行失败: {str(e)}, {sleep_time}s后重试...", OutputType.ERROR)
206
+ PrettyOutput.print(
207
+ f"执行失败: {
208
+ str(e)}, {sleep_time}s后重试...",
209
+ OutputType.ERROR)
191
210
  time.sleep(sleep_time)
192
211
  continue
193
212
 
213
+
194
214
  def while_true(func, sleep_time: float = 0.1):
195
215
  """循环执行函数,直到函数返回True"""
196
216
  while True:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.44
3
+ Version: 0.1.46
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -0,0 +1,25 @@
1
+ jarvis/__init__.py,sha256=HiOdrOkDAfqQOFrFVCKd96C_U-XMAI6wE1pX3GjE8Yk,50
2
+ jarvis/agent.py,sha256=omq58Bo4u-oEwpOuHnZTTE_3JeXG5Ow-1bhhJt6RlBs,12339
3
+ jarvis/main.py,sha256=Zd1aoq7EXNZMZrZl6n-2OB8UIC202sIPcQEJGuJJkpE,6087
4
+ jarvis/utils.py,sha256=CQo_V7qA_oGVvR4RrbfL9cd98lXzbE9tp1EB9S0ppIc,7469
5
+ jarvis/models/__init__.py,sha256=8uX1dj3YLL-i2Q5AIz1V0GtrROb6BJmRRRzxrexj-aE,59
6
+ jarvis/models/ai8.py,sha256=LEgtAZ7SZj94RoUuNlclXes_u-eh_vx5pxZ8kwSQG78,12658
7
+ jarvis/models/base.py,sha256=Drotowk47m3s30BPYspEL1MZlo2MyCaLev0v-oaqszY,1211
8
+ jarvis/models/kimi.py,sha256=ghL1g2iq9jnUNBB1flyV2wd0JKs7i7q0CpKr2-6kF3U,18570
9
+ jarvis/models/openai.py,sha256=vh_4J7imSlqWi0J8xBrVhv6mpPXj6UqvD_xVlKayiXg,4330
10
+ jarvis/models/oyi.py,sha256=pi4wD-TMz2Q6olkwQ5Vw5GCPKwL-KyTR8SNbrXiXvuo,14513
11
+ jarvis/models/registry.py,sha256=RgzbCLJM6-FlQYuhaXnEmQASshur3FR5u0z3UBJtBgQ,8137
12
+ jarvis/tools/__init__.py,sha256=ZXnUzaenBd2yX6xRI7T7tOjG7Hv2PjzcMva455VStgA,70
13
+ jarvis/tools/base.py,sha256=UnYlIpkKLAZDVxLyIZy2imHLSqF5xQXAVg5sKrQgTFw,668
14
+ jarvis/tools/file_ops.py,sha256=tuyeEg9gGcUBXiCL6WwO5IVtl2TRaNRJn1VYBkquFTs,3756
15
+ jarvis/tools/generator.py,sha256=fKTx6KbCPZAo2LZixWV51uZZWwVSj_UmDo1b8Lq5Y-c,5945
16
+ jarvis/tools/methodology.py,sha256=hpejF0ElrrMaCg90WBOrVRvCekfYkyiiQbAH13kC1ys,4995
17
+ jarvis/tools/registry.py,sha256=eMRW0geKeNsaYhGBQB73bbRBkQMGUDORWy69rmjs3Hk,7201
18
+ jarvis/tools/shell.py,sha256=NixHMaM2yF4XcDXxsgD3tAtdO1rZ3PxS_0_LlzjCpd8,2457
19
+ jarvis/tools/sub_agent.py,sha256=m0H6dWIeI0VeK2cNETfI0uqWxlot8f70mW4o9aBMXYo,2620
20
+ jarvis_ai_assistant-0.1.46.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
21
+ jarvis_ai_assistant-0.1.46.dist-info/METADATA,sha256=DLFgc6On2RrSRKOtXgFuefCkMuxgsya7ZvWP0TmcJO0,10015
22
+ jarvis_ai_assistant-0.1.46.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
23
+ jarvis_ai_assistant-0.1.46.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
24
+ jarvis_ai_assistant-0.1.46.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
25
+ jarvis_ai_assistant-0.1.46.dist-info/RECORD,,
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,57 +0,0 @@
1
- jarvis/__init__.py,sha256=30wDVtD64NoYQ74EdslpVbhr4wp-p_fPgv7AeQ0i-Ug,50
2
- jarvis/agent.py,sha256=5GmC9iAOerTR4JoxzrfgLSspoz6qRm1E6xEIWLTR2OI,12222
3
- jarvis/main.py,sha256=3kpohHORc13A5RBjTSHYF7cdnc6W15hO23R78Iqnz8w,5843
4
- jarvis/utils.py,sha256=JlkuC9RtspXH2VWDmj9nR0vnb8ie1gIsKc4vC7WRco8,7321
5
- jarvis/__pycache__/__init__.cpython-313.pyc,sha256=Yc1GRrJWnBTglkYG4V1_bmBz7PIuq1V53ZeSEfcE-wQ,209
6
- jarvis/__pycache__/agent.cpython-313.pyc,sha256=H7FXCYJSJm0k062oMVFZx1unUD-khreKrZfaKQ2aJqY,15870
7
- jarvis/__pycache__/main.cpython-313.pyc,sha256=-tDMANWAyPk45zx-lnxM1_uxTUzEqrWwcBe2nWtzH2E,8133
8
- jarvis/__pycache__/models.cpython-313.pyc,sha256=uWuRIjGrY4YDB3dGW5PGDLWaS03et8g11O725TjY_eU,5960
9
- jarvis/__pycache__/tools.cpython-313.pyc,sha256=lAD4LrnnWzNZQmHXGfZ_2l7oskOpr2_2OC-gdFhxQY8,33933
10
- jarvis/__pycache__/utils.cpython-313.pyc,sha256=eXXM-V-2ax7qBNxktdUrEIwhAXPQHAlI7gLGewlKOj4,10276
11
- jarvis/__pycache__/zte_llm.cpython-313.pyc,sha256=kMm9IGundGmOPqjsgrm9oIaWLDagYGCPRAaE3ipkc-0,5662
12
- jarvis/models/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
13
- jarvis/models/ai8.py,sha256=9i7n_-TPbvq0AaRILs9ERQ7Vy5tDyoibXkiPsJvwQio,12520
14
- jarvis/models/base.py,sha256=eeNJJbv9ikPVTtV_E7mgW8LZzVgjQ-OzxlHF6slYrHw,1237
15
- jarvis/models/kimi.py,sha256=N0bPQ1ugx0RwjR96jLchmOPvCmws-fXyA0mnOAdo2k4,17161
16
- jarvis/models/openai.py,sha256=pB7AaZuorHlmudTPaUnEbFOyl51Fy6uhU9KQBm98Ov8,4156
17
- jarvis/models/oyi.py,sha256=12jskOgo77LWtXq4u-LX7s_sYomBJSlry4oONtdmVCU,14443
18
- jarvis/models/registry.py,sha256=iVBjN9ImEvGHcz8WR-z8pPMJQZI907o_nccVOFANhak,7951
19
- jarvis/models/__pycache__/__init__.cpython-313.pyc,sha256=b9Z3owWpzLnKKwqQH6bWHZJZDeThHGD9Oa7TMCpyHwc,224
20
- jarvis/models/__pycache__/ai8.cpython-313.pyc,sha256=r3KAXgiIpNHC9X9Z9vbAEorDNmfeiKQOXlKiKC0A_CA,14176
21
- jarvis/models/__pycache__/base.cpython-313.pyc,sha256=xltXUMcaO5oVNzSmz0-bhPvsH3oHWU7QEPUTPV48x-g,2419
22
- jarvis/models/__pycache__/kimi.cpython-313.pyc,sha256=uqDghVAZe5bpw9RtVGoiFd3-hJnIkhbNDaBdrAwiq2w,21662
23
- jarvis/models/__pycache__/openai.cpython-313.pyc,sha256=3buu7rqBwDV8mJ4wMff6xy_8pf6XPt2NYTlfIdPpz8M,6384
24
- jarvis/models/__pycache__/oyi.cpython-313.pyc,sha256=142O2W2Qrf2OXppA_ScQVkH9Ix2OotK2tQuFW_z7S8c,15691
25
- jarvis/models/__pycache__/registry.cpython-313.pyc,sha256=iL3zjkiOC-xUnW3SLV_UN1P_CaxS8-RJm5njLZ1z3cg,10384
26
- jarvis/tools/__init__.py,sha256=Kj1bKj34lwRDKMKHLOrLyQElf2lHbqA2tDgP359eaDo,71
27
- jarvis/tools/base.py,sha256=EGRGbdfbLXDLwtyoWdvp9rlxNX7bzc20t0Vc2VkwIEY,652
28
- jarvis/tools/file_ops.py,sha256=h8g0eT9UvlJf4kt0DLXvdSsjcPj7x19lxWdDApeDfpg,3842
29
- jarvis/tools/generator.py,sha256=vVP3eN5cCDpRXf_fn0skETkPXAW1XZFWx9pt2_ahK48,5999
30
- jarvis/tools/methodology.py,sha256=G3cOaHTMujGZBhDLhQEqyCV2NISizO3MXRuho1KfI6Y,5223
31
- jarvis/tools/registry.py,sha256=NbH7A4A2lyN2IoyZGFwa5Ghed2dpzbJWCAd1Dg95WBI,7183
32
- jarvis/tools/shell.py,sha256=UPKshPyOaUwTngresUw-ot1jHjQIb4wCY5nkJqa38lU,2520
33
- jarvis/tools/sub_agent.py,sha256=rEtAmSVY2ZjFOZEKr5m5wpACOQIiM9Zr_3dT92FhXYU,2621
34
- jarvis/tools/__pycache__/__init__.cpython-313.pyc,sha256=2ezw_ULVg9CJCUdX-RXTgYHLxQBs5X7wWJu1GNAN3ro,231
35
- jarvis/tools/__pycache__/base.cpython-313.pyc,sha256=1s8lIsYq0WA9qdmya01N9ZXXVdEdKExTZp60UR6WepE,1422
36
- jarvis/tools/__pycache__/bing_search.cpython-313.pyc,sha256=1G_wPbk5wcQYh7H0drLIS2Aw0XOG2ZM8ztgfQaqu3P8,2031
37
- jarvis/tools/__pycache__/calculator.cpython-313.pyc,sha256=C_qwTDGm6gc7QNxtPzPZXyStdKEintJVQIt5NMHQ8oY,4205
38
- jarvis/tools/__pycache__/calculator_tool.cpython-313.pyc,sha256=PI4LZNDTPdSe3ffWDRovLZ-r-vF8Kl-n6xdGdFWiBpY,4296
39
- jarvis/tools/__pycache__/file_ops.cpython-313.pyc,sha256=qfgRIcO7JFsa_FxOOXV-3pNSnlovZDrcIkZ1WN3pOJI,3773
40
- jarvis/tools/__pycache__/generator.cpython-313.pyc,sha256=KxHCnyEZTUL3pNozcUWhMHG-cq2HAJOvi3cOEVSPX_A,6561
41
- jarvis/tools/__pycache__/methodology.cpython-313.pyc,sha256=GWPSF5b0i6gUsgvJgXIkVQHpLRYQ7OzEiTLwe6aAuWU,6226
42
- jarvis/tools/__pycache__/python_script.cpython-313.pyc,sha256=8JpryqTovEiTvBlWAK1KjZmPvHUuPc9GT9rTXBEQoJc,6693
43
- jarvis/tools/__pycache__/rag.cpython-313.pyc,sha256=JH6-PSZRMKAvTZqCwlRXJGClxYXNMs-vetU0q7hBLz0,6064
44
- jarvis/tools/__pycache__/registry.cpython-313.pyc,sha256=dXrc1wOTipUJELYl681SM7x1ZyhBNLWIF3ldtrx-HS4,9347
45
- jarvis/tools/__pycache__/search.cpython-313.pyc,sha256=wLMIkFwT-h4NGHgssytT4xme7sGO6ZhEnex7kjcy0-k,5990
46
- jarvis/tools/__pycache__/shell.cpython-313.pyc,sha256=ATt7BraEX6Sd3Ih6etwFpZ8fYczlZn5f0IqdjaqXt6c,3349
47
- jarvis/tools/__pycache__/sub_agent.cpython-313.pyc,sha256=ROqk3BEwB_2-ALp6jG3wf18ShUr1lO0bhJjibOn6f3o,2799
48
- jarvis/tools/__pycache__/user_confirmation.cpython-313.pyc,sha256=wK3Ev10lHSUSRvoYmi7A0GzxYkzU-C4Wfhs5qW_HBqs,2271
49
- jarvis/tools/__pycache__/user_input.cpython-313.pyc,sha256=JjTFOhObKsKF4Pn8KBRuKfV1_Ssj083fjU7Mfc_5z7c,2531
50
- jarvis/tools/__pycache__/user_interaction.cpython-313.pyc,sha256=RuVZ-pmiPBDywY3efgXSfohMAciC1avMGPmBK5qlnew,3305
51
- jarvis/tools/__pycache__/webpage.cpython-313.pyc,sha256=BjzSfnNzsKCrLETCcWjt32lNDLzwnjqcVGg4JfWd9OM,3008
52
- jarvis_ai_assistant-0.1.44.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
53
- jarvis_ai_assistant-0.1.44.dist-info/METADATA,sha256=7GkjCkI2v9zr2UjGXletzOPTq9Hhj0sOPTF1J7aDQjo,10015
54
- jarvis_ai_assistant-0.1.44.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
55
- jarvis_ai_assistant-0.1.44.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
56
- jarvis_ai_assistant-0.1.44.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
57
- jarvis_ai_assistant-0.1.44.dist-info/RECORD,,