jarvis-ai-assistant 0.1.35__py3-none-any.whl → 0.1.37__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
jarvis/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.35"
3
+ __version__ = "0.1.37"
Binary file
Binary file
Binary file
jarvis/agent.py CHANGED
@@ -88,14 +88,15 @@ class Agent:
88
88
 
89
89
 
90
90
  def _load_methodology(self) -> str:
91
- """加载方法论"""
91
+ """加载经验总结"""
92
92
  user_jarvis_methodology = os.path.expanduser("~/.jarvis_methodology")
93
93
  ret = ""
94
94
  if os.path.exists(user_jarvis_methodology):
95
95
  with open(user_jarvis_methodology, "r", encoding="utf-8") as f:
96
96
  data = yaml.safe_load(f)
97
97
  for k, v in data.items():
98
- ret += f"问题类型: \n{k}\n方法论: \n{v}\n\n"
98
+ ret += f"问题类型: \n{k}\n经验总结: \n{v}\n\n"
99
+ PrettyOutput.print(f"从 {user_jarvis_methodology} 加载经验总结: {', '.join(data.keys())}", OutputType.INFO)
99
100
  return ret
100
101
 
101
102
  def run(self, user_input: str, file_list: Optional[List[str]] = None, keep_history: bool = False) -> str:
@@ -115,12 +116,12 @@ class Agent:
115
116
  if file_list:
116
117
  self.model.upload_files(file_list)
117
118
 
118
- # 加载方法论
119
+ # 加载经验总结
119
120
  methodology = self._load_methodology()
120
121
 
121
122
  methodology_prompt = ""
122
123
  if methodology:
123
- methodology_prompt = f"""这是以往处理问题的标准方法论,如果当前任务与此类似,可参考:
124
+ methodology_prompt = f"""这是以往处理问题的标准经验总结,如果当前任务与此类似,可参考:
124
125
  {methodology}
125
126
 
126
127
  """
@@ -145,11 +146,11 @@ class Agent:
145
146
  6. 制定行动计划:根据目前可以使用的工具制定行动计划
146
147
  7. 执行行动计划:每步执行一个步骤,最多使用一个工具(工具执行完成后,等待工具结果再执行下一步)
147
148
  8. 监控与调整:如果执行结果与预期不符,则反思并调整行动计划,迭代之前的步骤
148
- 9. 更新方法论(如有必要):任务完成后总结执行过程中的经验教训,生成同类问题的通用方法论,使用方法论工具进行更新或者添加
149
+ 9. 更新经验总结(如有必要):任务完成后总结执行过程中的经验教训,生成同类问题的通用经验总结,使用经验总结工具进行更新或者添加
149
150
 
150
151
  -------------------------------------------------------------
151
152
 
152
- 方法论模板:
153
+ 经验总结模板:
153
154
  1. 问题重述
154
155
  2. 最优解决方案
155
156
  3. 最优方案执行步骤(失败的行动不需要体现)
@@ -223,7 +224,7 @@ arguments:
223
224
 
224
225
  if not user_input:
225
226
  while True:
226
- choice = prompt("是否需要手动为此任务生成方法论以提升Jarvis对类似任务的处理能力?(y/n), 回车跳过: ")
227
+ choice = prompt("是否需要手动为此任务生成经验总结以提升Jarvis对类似任务的处理能力?(y/n), 回车跳过: ")
227
228
  if choice == "y":
228
229
  self._make_methodology()
229
230
  break
@@ -273,9 +274,9 @@ arguments:
273
274
  self.model.reset()
274
275
 
275
276
  def _make_methodology(self):
276
- """生成方法论"""
277
- current_response = self._call_model("""请根据之前的对话内容,判断是否有必要更新、添加、删除现有方法论,如果有,使用methodology工具进行管理。
278
- 方法论模板:
277
+ """生成经验总结"""
278
+ current_response = self._call_model("""请根据之前的对话内容,判断是否有必要更新、添加、删除现有经验总结,如果有,使用methodology工具进行管理。
279
+ 经验总结模板:
279
280
  1. 问题重述
280
281
  2. 最优解决方案
281
282
  3. 最优方案执行步骤(失败的行动不需要体现)
jarvis/main.py CHANGED
@@ -98,30 +98,30 @@ def select_task(tasks: dict) -> str:
98
98
  continue
99
99
 
100
100
  def main():
101
- """Main entry point for Jarvis."""
102
- # Add argument parser
103
- parser = argparse.ArgumentParser(description='Jarvis AI Assistant')
104
- parser.add_argument('-f', '--files', nargs='*', help='List of files to process')
105
- parser.add_argument('--keep-history', action='store_true', help='Keep chat history (do not delete chat session)')
106
- parser.add_argument('-m', '--model', default='', help='选择模型')
101
+ """Jarvis 的主入口点"""
102
+ # 添加参数解析器
103
+ parser = argparse.ArgumentParser(description='Jarvis AI 助手')
104
+ parser.add_argument('-f', '--files', nargs='*', help='要处理的文件列表')
105
+ parser.add_argument('--keep-history', action='store_true', help='保持聊天历史(不删除会话)')
106
+ parser.add_argument('-p', '--platform', default='', help='选择AI平台')
107
107
  args = parser.parse_args()
108
108
 
109
109
  load_env_from_file()
110
110
 
111
- model = args.model if args.model else os.getenv('JARVIS_MODEL')
111
+ platform = args.platform if args.platform else os.getenv('JARVIS_PLATFORM')
112
112
 
113
- if not model:
114
- PrettyOutput.print("未指定模型,请使用 -m 参数或者设置 JARVIS_MODEL 环境变量", OutputType.ERROR)
113
+ if not platform:
114
+ PrettyOutput.print("未指定AI平台,请使用 -p 参数或者设置 JARVIS_PLATFORM 环境变量", OutputType.ERROR)
115
115
  return 1
116
116
 
117
- ModelRegistry.get_model_registry().set_global_model(model)
117
+ ModelRegistry.get_model_registry().set_global_model(platform)
118
118
 
119
119
  try:
120
120
  # 获取全局模型实例
121
121
  agent = Agent()
122
122
 
123
123
  # 欢迎信息
124
- PrettyOutput.print(f"Jarvis 已初始化 - With {model}", OutputType.SYSTEM)
124
+ PrettyOutput.print(f"Jarvis 已初始化 - With {platform} 平台", OutputType.SYSTEM)
125
125
  if args.keep_history:
126
126
  PrettyOutput.print("已启用历史保留模式", OutputType.INFO)
127
127
 
jarvis/models/ai8.py CHANGED
@@ -59,7 +59,7 @@ class AI8Model(BaseModel):
59
59
  PrettyOutput.print("ERNIE-3.5-128K", OutputType.INFO)
60
60
 
61
61
 
62
- PrettyOutput.print("使用AI8_MODEL配置模型", OutputType.SUCCESS)
62
+ PrettyOutput.print("使用AI8_MODEL环境变量配置模型", OutputType.SUCCESS)
63
63
 
64
64
  self.system_message = ""
65
65
  self.conversation = None
@@ -68,6 +68,7 @@ class AI8Model(BaseModel):
68
68
  self.token = os.getenv("AI8_API_KEY")
69
69
  if not all([self.model, self.token]):
70
70
  raise Exception("AI8_MODEL or AI8_API_KEY is not set")
71
+ PrettyOutput.print(f"当前使用模型: {self.model}", OutputType.SYSTEM)
71
72
 
72
73
  def create_conversation(self) -> bool:
73
74
  """Create a new conversation"""
@@ -103,6 +104,7 @@ class AI8Model(BaseModel):
103
104
  # 2. 更新会话设置
104
105
  session_data = {
105
106
  **self.conversation,
107
+ "model": self.model,
106
108
  "contextCount": 1024,
107
109
  "prompt": self.system_message,
108
110
  "plugins": ["tavily_search"],
jarvis/models/openai.py CHANGED
@@ -31,6 +31,8 @@ class OpenAIModel(BaseModel):
31
31
 
32
32
  self.base_url = os.getenv("OPENAI_API_BASE", "https://api.deepseek.com")
33
33
  self.model_name = os.getenv("OPENAI_MODEL_NAME", "deepseek-chat")
34
+
35
+ PrettyOutput.print(f"当前使用模型: {self.model_name}", OutputType.SYSTEM)
34
36
 
35
37
  self.client = OpenAI(
36
38
  api_key=self.api_key,
jarvis/models/oyi.py CHANGED
@@ -39,7 +39,7 @@ class OyiModel(BaseModel):
39
39
  PrettyOutput.print("generalv3.5", OutputType.INFO)
40
40
  PrettyOutput.print("gemini-pro", OutputType.INFO)
41
41
  PrettyOutput.print("llama3-70b-8192", OutputType.INFO)
42
- PrettyOutput.print("使用OYI_MODEL配置模型", OutputType.SUCCESS)
42
+ PrettyOutput.print("使用OYI_MODEL环境变量配置模型", OutputType.SUCCESS)
43
43
 
44
44
 
45
45
  self.messages = []
@@ -51,6 +51,7 @@ class OyiModel(BaseModel):
51
51
  self.token = os.getenv("OYI_API_KEY")
52
52
  if not all([self.model, self.token]):
53
53
  raise Exception("OYI_MODEL or OYI_API_KEY is not set")
54
+ PrettyOutput.print(f"当前使用模型: {self.model}", OutputType.SYSTEM)
54
55
 
55
56
 
56
57
  def create_conversation(self) -> bool:
@@ -8,7 +8,7 @@ class MethodologyTool:
8
8
  """经验管理工具"""
9
9
 
10
10
  name = "methodology"
11
- description = "管理问题处理方法论,支持添加、更新、删除操作"
11
+ description = "管理问题处理经验总结,支持添加、更新、删除操作"
12
12
  parameters = {
13
13
  "type": "object",
14
14
  "properties": {
@@ -23,7 +23,7 @@ class MethodologyTool:
23
23
  },
24
24
  "content": {
25
25
  "type": "string",
26
- "description": "方法论内容 (update/add 时必需)",
26
+ "description": "经验总结内容 (update/add 时必需)",
27
27
  "optional": True
28
28
  }
29
29
  },
@@ -36,39 +36,39 @@ class MethodologyTool:
36
36
  self._ensure_file_exists()
37
37
 
38
38
  def _ensure_file_exists(self):
39
- """确保方法论文件存在"""
39
+ """确保经验总结文件存在"""
40
40
  if not os.path.exists(self.methodology_file):
41
41
  try:
42
42
  with open(self.methodology_file, 'w', encoding='utf-8') as f:
43
43
  yaml.safe_dump({}, f, allow_unicode=True)
44
44
  except Exception as e:
45
- PrettyOutput.print(f"创建方法论文件失败: {str(e)}", OutputType.ERROR)
45
+ PrettyOutput.print(f"创建经验总结文件失败: {str(e)}", OutputType.ERROR)
46
46
 
47
47
  def _load_methodologies(self) -> Dict:
48
- """加载所有方法论"""
48
+ """加载所有经验总结"""
49
49
  try:
50
50
  with open(self.methodology_file, 'r', encoding='utf-8') as f:
51
51
  return yaml.safe_load(f) or {}
52
52
  except Exception as e:
53
- PrettyOutput.print(f"加载方法论失败: {str(e)}", OutputType.ERROR)
53
+ PrettyOutput.print(f"加载经验总结失败: {str(e)}", OutputType.ERROR)
54
54
  return {}
55
55
 
56
56
  def _save_methodologies(self, methodologies: Dict):
57
- """保存所有方法论"""
57
+ """保存所有经验总结"""
58
58
  try:
59
59
  with open(self.methodology_file, 'w', encoding='utf-8') as f:
60
60
  yaml.safe_dump(methodologies, f, allow_unicode=True)
61
61
  except Exception as e:
62
- PrettyOutput.print(f"保存方法论失败: {str(e)}", OutputType.ERROR)
62
+ PrettyOutput.print(f"保存经验总结失败: {str(e)}", OutputType.ERROR)
63
63
 
64
64
  def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
65
- """执行方法论管理操作
65
+ """执行经验总结管理操作
66
66
 
67
67
  Args:
68
68
  args: 包含操作参数的字典
69
69
  - operation: 操作类型 (delete/update/add)
70
70
  - problem_type: 问题类型
71
- - content: 方法论内容 (update/add 时必需)
71
+ - content: 经验总结内容 (update/add 时必需)
72
72
 
73
73
  Returns:
74
74
  Dict[str, Any]: 包含执行结果的字典
@@ -92,19 +92,19 @@ class MethodologyTool:
92
92
  self._save_methodologies(methodologies)
93
93
  return {
94
94
  "success": True,
95
- "stdout": f"已删除问题类型 '{problem_type}' 的方法论"
95
+ "stdout": f"已删除问题类型 '{problem_type}' 的经验总结"
96
96
  }
97
97
  else:
98
98
  return {
99
99
  "success": False,
100
- "error": f"未找到问题类型 '{problem_type}' 的方法论"
100
+ "error": f"未找到问题类型 '{problem_type}' 的经验总结"
101
101
  }
102
102
 
103
103
  elif operation in ["update", "add"]:
104
104
  if not content:
105
105
  return {
106
106
  "success": False,
107
- "error": "需要提供方法论内容"
107
+ "error": "需要提供经验总结内容"
108
108
  }
109
109
 
110
110
  methodologies[problem_type] = content
@@ -113,7 +113,7 @@ class MethodologyTool:
113
113
  action = "更新" if problem_type in methodologies else "添加"
114
114
  return {
115
115
  "success": True,
116
- "stdout": f"已{action}问题类型 '{problem_type}' 的方法论"
116
+ "stdout": f"已{action}问题类型 '{problem_type}' 的经验总结"
117
117
  }
118
118
 
119
119
  else:
@@ -129,13 +129,13 @@ class MethodologyTool:
129
129
  }
130
130
 
131
131
  def get_methodology(self, problem_type: str) -> Optional[str]:
132
- """获取指定问题类型的方法论
132
+ """获取指定问题类型的经验总结
133
133
 
134
134
  Args:
135
135
  problem_type: 问题类型
136
136
 
137
137
  Returns:
138
- Optional[str]: 方法论内容,如果不存在则返回 None
138
+ Optional[str]: 经验总结内容,如果不存在则返回 None
139
139
  """
140
140
  methodologies = self._load_methodologies()
141
141
  return methodologies.get(problem_type)
jarvis/tools/registry.py CHANGED
@@ -99,7 +99,7 @@ class ToolRegistry:
99
99
  parameters=tool_instance.parameters,
100
100
  func=tool_instance.execute
101
101
  )
102
- PrettyOutput.print(f"已加载工具: {tool_instance.name}: {tool_instance.description}", OutputType.INFO)
102
+ PrettyOutput.print(f" {file_path} 加载工具: {tool_instance.name}: {tool_instance.description}", OutputType.INFO)
103
103
  tool_found = True
104
104
 
105
105
  if not tool_found:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.35
3
+ Version: 0.1.37
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
@@ -1,34 +1,34 @@
1
- jarvis/__init__.py,sha256=5fI-hCcWwDpuWaG2NdTnIprGfc5gh3M97CKK4kUaYDs,50
2
- jarvis/agent.py,sha256=kopwMRC6ssHHqKCGivYbKw9QT1sfFGBp8mBlXpgvSL8,12050
3
- jarvis/main.py,sha256=FOfc2v7iX9my5USyf4oxcGzyJe4AH4TwIEQk2WdNWrI,5768
1
+ jarvis/__init__.py,sha256=Wa4Hd6-vEBQVOQ4Zn0glniInyQfp_jE8AetupT3qjtE,50
2
+ jarvis/agent.py,sha256=i_tETgROksmPp95RYnwb7m-ERl0Ob1OEybXXcXJUpPk,12213
3
+ jarvis/main.py,sha256=1nSBhQMnxhhOgUxhqvmHl21GygVsdcisr4FmA4GT_ro,5788
4
4
  jarvis/utils.py,sha256=JlkuC9RtspXH2VWDmj9nR0vnb8ie1gIsKc4vC7WRco8,7321
5
- jarvis/__pycache__/__init__.cpython-313.pyc,sha256=qozlnWUMO-ailx2DuRnwBKrO-4o-Vlb6ojK2FFcB-20,209
6
- jarvis/__pycache__/agent.cpython-313.pyc,sha256=WjYlL3Cma6kJfYmyaqjztX0hayjzcHHgxFeCBVOBs_w,15571
7
- jarvis/__pycache__/main.cpython-313.pyc,sha256=KKVD1bs_4MDOdq2f04rsJpI8Osp959Fo5KOsUUBvrDM,7985
5
+ jarvis/__pycache__/__init__.cpython-313.pyc,sha256=KYUlFHOQKHStj5RTFhULb-Gq_xIlFshqR71ptW5G73A,209
6
+ jarvis/__pycache__/agent.cpython-313.pyc,sha256=OfeSUMB3KcaFXrCiYENrFVcdfRyxBNQks3OtVb8PXO4,15864
7
+ jarvis/__pycache__/main.cpython-313.pyc,sha256=4VC3x5E6YDLXPbm9iStQha3Ez-hcSsfujcHu6J3I3sg,8014
8
8
  jarvis/__pycache__/models.cpython-313.pyc,sha256=uWuRIjGrY4YDB3dGW5PGDLWaS03et8g11O725TjY_eU,5960
9
9
  jarvis/__pycache__/tools.cpython-313.pyc,sha256=lAD4LrnnWzNZQmHXGfZ_2l7oskOpr2_2OC-gdFhxQY8,33933
10
10
  jarvis/__pycache__/utils.cpython-313.pyc,sha256=eXXM-V-2ax7qBNxktdUrEIwhAXPQHAlI7gLGewlKOj4,10276
11
11
  jarvis/__pycache__/zte_llm.cpython-313.pyc,sha256=kMm9IGundGmOPqjsgrm9oIaWLDagYGCPRAaE3ipkc-0,5662
12
12
  jarvis/models/__init__.py,sha256=Lqb1NWFIfq7HlZIsJ7eUGyGjdYyaJqOoOf7cG_yo73A,57
13
- jarvis/models/ai8.py,sha256=mXa_fE_tHztK9SP3gUOFoSl6A-ceUkNsTVC6flEXlow,11457
13
+ jarvis/models/ai8.py,sha256=NARhMCuH6yagDSwBT15jD-CDLoxXV8anIT-nSAIWOgw,11589
14
14
  jarvis/models/base.py,sha256=dNkYPg9ISrHGEpmQLN9kxCDU-kqJAJlm_owdDC302Dk,1132
15
15
  jarvis/models/kimi.py,sha256=iI8mBzUxiyxa_bzDG9uwE3BZtreEUt0EJOIP_l2rSDM,16788
16
- jarvis/models/openai.py,sha256=aFpRH6K0YG6suCRGlJLw2JzLh2Ftpn6AYhdnKtMQQlY,3940
17
- jarvis/models/oyi.py,sha256=DzRKD0jVYvU_O5dXKlOmy83j8tPIcGGHVJcV90QEmxs,12219
16
+ jarvis/models/openai.py,sha256=zuSUFuz14m8LTeREax7M4MJn6LTUWFDmL1aIxMXkeo4,4029
17
+ jarvis/models/oyi.py,sha256=wS-anyFcjOoh9qL_nNUnc9VHabU0JSEjkvTx_vZMqA4,12314
18
18
  jarvis/models/registry.py,sha256=ecIo3a0G-pRPw4eg77ozzbGVh6vy93DHF8oAnU2g51w,7511
19
19
  jarvis/models/__pycache__/__init__.cpython-313.pyc,sha256=hD4Uui0EPCTfoPOasTYzIi46Kv_q7OI8m-Lck-nX4zM,220
20
- jarvis/models/__pycache__/ai8.cpython-313.pyc,sha256=xexoy9Qgy0BYAfKY85Yy3oj2B-Sw9q2TXxeTmeK6tvQ,14775
20
+ jarvis/models/__pycache__/ai8.cpython-313.pyc,sha256=5wnVTypQkoQdsFgGEWT4Y9vi6478SDZh_aFQj9YPDhE,14988
21
21
  jarvis/models/__pycache__/base.cpython-313.pyc,sha256=9VvOXFPYOrB-2pO2py7dWOVbimODnXQJFLlFbyF7-LI,2207
22
22
  jarvis/models/__pycache__/kimi.cpython-313.pyc,sha256=FGtHoTv747oNY4Lqnwf5BkGYKnevHOlIEDIlbsY7va0,20893
23
- jarvis/models/__pycache__/openai.cpython-313.pyc,sha256=CU3KaUA0XcOK55sexF7OxfQ6_jdofABsufmFxm0T3mk,6004
24
- jarvis/models/__pycache__/oyi.cpython-313.pyc,sha256=AzChNnqApFVNNXVi77uw7GwL7EfWnXp0T8G7_VUPpyY,14037
23
+ jarvis/models/__pycache__/openai.cpython-313.pyc,sha256=-lrI-6uao5D-lFI6vwErr2KlGVBKII22SVbLg5eQ-I8,6173
24
+ jarvis/models/__pycache__/oyi.cpython-313.pyc,sha256=_VIFzihUJa8Ihy9aRKb-sSWLUdCAt7xvj2IIzZTkQnY,14208
25
25
  jarvis/models/__pycache__/registry.cpython-313.pyc,sha256=jUZUyHyfzeQtjCdk2NCZGTsTUsvKyIlnZVDzZY1gLuU,9985
26
26
  jarvis/tools/__init__.py,sha256=Kj1bKj34lwRDKMKHLOrLyQElf2lHbqA2tDgP359eaDo,71
27
27
  jarvis/tools/base.py,sha256=EGRGbdfbLXDLwtyoWdvp9rlxNX7bzc20t0Vc2VkwIEY,652
28
28
  jarvis/tools/file_ops.py,sha256=h8g0eT9UvlJf4kt0DLXvdSsjcPj7x19lxWdDApeDfpg,3842
29
29
  jarvis/tools/generator.py,sha256=qyNdarq5SGEFBjkIlohk13cP5wV9IeQK5qJs7MwGUZg,5740
30
- jarvis/tools/methodology.py,sha256=UG6s5VYRcd9wrKX4cg6f7zJhet5AIcthFGMOAdevBiw,5175
31
- jarvis/tools/registry.py,sha256=lSdx1coMf2IFE8hfwCbCgSW83yVRCp0H981kj7c80e0,7167
30
+ jarvis/tools/methodology.py,sha256=G3cOaHTMujGZBhDLhQEqyCV2NISizO3MXRuho1KfI6Y,5223
31
+ jarvis/tools/registry.py,sha256=_M18bNfcn39razBo47IXtxUnT625oQIrkKx45qq2Ims,7180
32
32
  jarvis/tools/shell.py,sha256=UPKshPyOaUwTngresUw-ot1jHjQIb4wCY5nkJqa38lU,2520
33
33
  jarvis/tools/sub_agent.py,sha256=rEtAmSVY2ZjFOZEKr5m5wpACOQIiM9Zr_3dT92FhXYU,2621
34
34
  jarvis/tools/__pycache__/__init__.cpython-313.pyc,sha256=2ezw_ULVg9CJCUdX-RXTgYHLxQBs5X7wWJu1GNAN3ro,231
@@ -38,10 +38,10 @@ jarvis/tools/__pycache__/calculator.cpython-313.pyc,sha256=C_qwTDGm6gc7QNxtPzPZX
38
38
  jarvis/tools/__pycache__/calculator_tool.cpython-313.pyc,sha256=PI4LZNDTPdSe3ffWDRovLZ-r-vF8Kl-n6xdGdFWiBpY,4296
39
39
  jarvis/tools/__pycache__/file_ops.cpython-313.pyc,sha256=qfgRIcO7JFsa_FxOOXV-3pNSnlovZDrcIkZ1WN3pOJI,3773
40
40
  jarvis/tools/__pycache__/generator.cpython-313.pyc,sha256=sSO-y6fREIenF4cvFgaAtd0rAu95Epd5VZpjhmOfPRk,6155
41
- jarvis/tools/__pycache__/methodology.cpython-313.pyc,sha256=k_B9KD3FDJEt-wW_NwhVlK-hi1YB4iLCiCs82kVJHe8,6180
41
+ jarvis/tools/__pycache__/methodology.cpython-313.pyc,sha256=GWPSF5b0i6gUsgvJgXIkVQHpLRYQ7OzEiTLwe6aAuWU,6226
42
42
  jarvis/tools/__pycache__/python_script.cpython-313.pyc,sha256=8JpryqTovEiTvBlWAK1KjZmPvHUuPc9GT9rTXBEQoJc,6693
43
43
  jarvis/tools/__pycache__/rag.cpython-313.pyc,sha256=JH6-PSZRMKAvTZqCwlRXJGClxYXNMs-vetU0q7hBLz0,6064
44
- jarvis/tools/__pycache__/registry.cpython-313.pyc,sha256=TFRMsyO-g0YiQiez-jpi2YwBLzWu89Y6QyuidNB-ojc,9310
44
+ jarvis/tools/__pycache__/registry.cpython-313.pyc,sha256=BE91SasFW5pLIGvnaEuy0wMVLowLStK9xwsGXoPTYdw,9344
45
45
  jarvis/tools/__pycache__/search.cpython-313.pyc,sha256=wLMIkFwT-h4NGHgssytT4xme7sGO6ZhEnex7kjcy0-k,5990
46
46
  jarvis/tools/__pycache__/shell.cpython-313.pyc,sha256=ATt7BraEX6Sd3Ih6etwFpZ8fYczlZn5f0IqdjaqXt6c,3349
47
47
  jarvis/tools/__pycache__/sub_agent.cpython-313.pyc,sha256=ROqk3BEwB_2-ALp6jG3wf18ShUr1lO0bhJjibOn6f3o,2799
@@ -49,9 +49,9 @@ jarvis/tools/__pycache__/user_confirmation.cpython-313.pyc,sha256=wK3Ev10lHSUSRv
49
49
  jarvis/tools/__pycache__/user_input.cpython-313.pyc,sha256=JjTFOhObKsKF4Pn8KBRuKfV1_Ssj083fjU7Mfc_5z7c,2531
50
50
  jarvis/tools/__pycache__/user_interaction.cpython-313.pyc,sha256=RuVZ-pmiPBDywY3efgXSfohMAciC1avMGPmBK5qlnew,3305
51
51
  jarvis/tools/__pycache__/webpage.cpython-313.pyc,sha256=BjzSfnNzsKCrLETCcWjt32lNDLzwnjqcVGg4JfWd9OM,3008
52
- jarvis_ai_assistant-0.1.35.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
53
- jarvis_ai_assistant-0.1.35.dist-info/METADATA,sha256=foV1g-55AuPkzNjRsR7zCfOOv8jodE53SorjSmpvYJs,9765
54
- jarvis_ai_assistant-0.1.35.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
55
- jarvis_ai_assistant-0.1.35.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
56
- jarvis_ai_assistant-0.1.35.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
57
- jarvis_ai_assistant-0.1.35.dist-info/RECORD,,
52
+ jarvis_ai_assistant-0.1.37.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
53
+ jarvis_ai_assistant-0.1.37.dist-info/METADATA,sha256=xeDBmFgEXxmi-DdiCJJdM0-jYrFNqvNpkx-vairwUFY,9765
54
+ jarvis_ai_assistant-0.1.37.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
55
+ jarvis_ai_assistant-0.1.37.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
56
+ jarvis_ai_assistant-0.1.37.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
57
+ jarvis_ai_assistant-0.1.37.dist-info/RECORD,,