jarvis-ai-assistant 0.1.35__py3-none-any.whl → 0.1.37__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.
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,,