jarvis-ai-assistant 0.1.44__py3-none-any.whl → 0.1.46__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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,,