jarvis-ai-assistant 0.1.43__py3-none-any.whl → 0.1.45__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/models/ai8.py +90 -47
  3. jarvis/models/base.py +0 -1
  4. jarvis/models/oyi.py +91 -29
  5. {jarvis_ai_assistant-0.1.43.dist-info → jarvis_ai_assistant-0.1.45.dist-info}/METADATA +1 -1
  6. jarvis_ai_assistant-0.1.45.dist-info/RECORD +25 -0
  7. jarvis/__pycache__/__init__.cpython-313.pyc +0 -0
  8. jarvis/__pycache__/agent.cpython-313.pyc +0 -0
  9. jarvis/__pycache__/main.cpython-313.pyc +0 -0
  10. jarvis/__pycache__/models.cpython-313.pyc +0 -0
  11. jarvis/__pycache__/tools.cpython-313.pyc +0 -0
  12. jarvis/__pycache__/utils.cpython-313.pyc +0 -0
  13. jarvis/__pycache__/zte_llm.cpython-313.pyc +0 -0
  14. jarvis/models/__pycache__/__init__.cpython-313.pyc +0 -0
  15. jarvis/models/__pycache__/ai8.cpython-313.pyc +0 -0
  16. jarvis/models/__pycache__/base.cpython-313.pyc +0 -0
  17. jarvis/models/__pycache__/kimi.cpython-313.pyc +0 -0
  18. jarvis/models/__pycache__/openai.cpython-313.pyc +0 -0
  19. jarvis/models/__pycache__/oyi.cpython-313.pyc +0 -0
  20. jarvis/models/__pycache__/registry.cpython-313.pyc +0 -0
  21. jarvis/tools/__pycache__/__init__.cpython-313.pyc +0 -0
  22. jarvis/tools/__pycache__/base.cpython-313.pyc +0 -0
  23. jarvis/tools/__pycache__/bing_search.cpython-313.pyc +0 -0
  24. jarvis/tools/__pycache__/calculator.cpython-313.pyc +0 -0
  25. jarvis/tools/__pycache__/calculator_tool.cpython-313.pyc +0 -0
  26. jarvis/tools/__pycache__/file_ops.cpython-313.pyc +0 -0
  27. jarvis/tools/__pycache__/generator.cpython-313.pyc +0 -0
  28. jarvis/tools/__pycache__/methodology.cpython-313.pyc +0 -0
  29. jarvis/tools/__pycache__/python_script.cpython-313.pyc +0 -0
  30. jarvis/tools/__pycache__/rag.cpython-313.pyc +0 -0
  31. jarvis/tools/__pycache__/registry.cpython-313.pyc +0 -0
  32. jarvis/tools/__pycache__/search.cpython-313.pyc +0 -0
  33. jarvis/tools/__pycache__/shell.cpython-313.pyc +0 -0
  34. jarvis/tools/__pycache__/sub_agent.cpython-313.pyc +0 -0
  35. jarvis/tools/__pycache__/user_confirmation.cpython-313.pyc +0 -0
  36. jarvis/tools/__pycache__/user_input.cpython-313.pyc +0 -0
  37. jarvis/tools/__pycache__/user_interaction.cpython-313.pyc +0 -0
  38. jarvis/tools/__pycache__/webpage.cpython-313.pyc +0 -0
  39. jarvis_ai_assistant-0.1.43.dist-info/RECORD +0 -57
  40. {jarvis_ai_assistant-0.1.43.dist-info → jarvis_ai_assistant-0.1.45.dist-info}/LICENSE +0 -0
  41. {jarvis_ai_assistant-0.1.43.dist-info → jarvis_ai_assistant-0.1.45.dist-info}/WHEEL +0 -0
  42. {jarvis_ai_assistant-0.1.43.dist-info → jarvis_ai_assistant-0.1.45.dist-info}/entry_points.txt +0 -0
  43. {jarvis_ai_assistant-0.1.43.dist-info → jarvis_ai_assistant-0.1.45.dist-info}/top_level.txt +0 -0
jarvis/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.43"
3
+ __version__ = "0.1.45"
jarvis/models/ai8.py CHANGED
@@ -14,58 +14,59 @@ class AI8Model(BasePlatform):
14
14
 
15
15
  def __init__(self):
16
16
  """Initialize model"""
17
- PrettyOutput.section("支持的模型", OutputType.SUCCESS)
18
-
19
- PrettyOutput.print("gpt-3.5-turbo", OutputType.INFO)
20
- PrettyOutput.print("gpt-4-turbo", OutputType.INFO)
21
- PrettyOutput.print("gpt-4o", OutputType.INFO)
22
- PrettyOutput.print("gpt-4o-mini", OutputType.INFO)
23
- PrettyOutput.print("o1-mini", OutputType.INFO)
24
- PrettyOutput.print("gpt-4-vision-preview", OutputType.INFO)
25
- PrettyOutput.print("gpt-4-turbo-preview", OutputType.INFO)
26
- PrettyOutput.print("o1-mini-all", OutputType.INFO)
27
- PrettyOutput.print("gpt-4o-all", OutputType.INFO)
28
- PrettyOutput.print("o1-preview", OutputType.INFO)
29
- PrettyOutput.print("claude-3-5-sonnet-20241022", OutputType.INFO)
30
- PrettyOutput.print("claude-3-opus-20240229", OutputType.INFO)
31
- PrettyOutput.print("claude-3-haiku-20240307", OutputType.INFO)
32
- PrettyOutput.print("claude-3-5-sonnet-20240620", OutputType.INFO)
33
- PrettyOutput.print("deepseek-chat", OutputType.INFO)
34
- PrettyOutput.print("deepseek-coder", OutputType.INFO)
35
- PrettyOutput.print("glm-4-flash", OutputType.INFO)
36
- PrettyOutput.print("glm-4-air", OutputType.INFO)
37
- PrettyOutput.print("glm-4v-flash", OutputType.INFO)
38
- PrettyOutput.print("qwen-plus", OutputType.INFO)
39
- PrettyOutput.print("qwen-vl-max", OutputType.INFO)
40
- PrettyOutput.print("qwen-turbo", OutputType.INFO)
41
- PrettyOutput.print("lite", OutputType.INFO)
42
- PrettyOutput.print("generalv3.5", OutputType.INFO)
43
- PrettyOutput.print("yi-lightning", OutputType.INFO)
44
- PrettyOutput.print("yi-vision", OutputType.INFO)
45
- PrettyOutput.print("yi-spark", OutputType.INFO)
46
- PrettyOutput.print("yi-medium", OutputType.INFO)
47
- PrettyOutput.print("Doubao-lite-4k", OutputType.INFO)
48
- PrettyOutput.print("Doubao-lite-32k", OutputType.INFO)
49
- PrettyOutput.print("Doubao-pro-4k", OutputType.INFO)
50
- PrettyOutput.print("Doubao-pro-32k", OutputType.INFO)
51
- PrettyOutput.print("step-1-flash", OutputType.INFO)
52
- PrettyOutput.print("step-1v-8k", OutputType.INFO)
53
- PrettyOutput.print("Baichuan4-Air", OutputType.INFO)
54
- PrettyOutput.print("Baichuan4-Turbo", OutputType.INFO)
55
- PrettyOutput.print("moonshot-v1-8k", OutputType.INFO)
56
- PrettyOutput.print("ERNIE-Speed-128K", OutputType.INFO)
57
- PrettyOutput.print("ERNIE-3.5-128K", OutputType.INFO)
17
+ self.system_message = ""
18
+ self.conversation = None
19
+ self.files = []
20
+ self.models = {} # 存储模型信息
58
21
 
22
+ # 获取可用模型列表
23
+ available_models = self.get_available_models()
24
+
25
+ if available_models:
26
+ PrettyOutput.section("支持的模型", OutputType.SUCCESS)
27
+ for model in self.models.values():
28
+ # 格式化显示模型信息
29
+ model_str = f"{model['value']:<30}"
30
+
31
+ # 添加标签
32
+ model_str += f"{model['label']}"
33
+
34
+ # 添加标签和积分信息
35
+ attrs = []
36
+ if model['attr'].get('tag'):
37
+ attrs.append(model['attr']['tag'])
38
+ if model['attr'].get('integral'):
39
+ attrs.append(model['attr']['integral'])
40
+
41
+ # 添加特性标记
42
+ features = []
43
+ if model['attr'].get('multimodal'):
44
+ features.append("多模态")
45
+ if model['attr'].get('plugin'):
46
+ features.append("插件支持")
47
+ if model['attr'].get('onlyImg'):
48
+ features.append("图像支持")
49
+ if features:
50
+ model_str += f" [{'|'.join(features)}]"
51
+
52
+ # 添加备注
53
+ if model['attr'].get('note'):
54
+ model_str += f" - {model['attr']['note']}"
55
+
56
+ PrettyOutput.print(model_str, OutputType.INFO)
57
+ else:
58
+ PrettyOutput.print("获取模型列表失败", OutputType.WARNING)
59
59
 
60
+ self.token = os.getenv("AI8_API_KEY")
61
+ if not self.token:
62
+ raise Exception("AI8_API_KEY is not set")
63
+
60
64
  PrettyOutput.print("使用AI8_MODEL环境变量配置模型", OutputType.SUCCESS)
61
65
 
62
- self.system_message = ""
63
- self.conversation = None
64
- self.files = []
65
66
  self.model_name = os.getenv("AI8_MODEL") or "deepseek-chat"
66
- self.token = os.getenv("AI8_API_KEY")
67
- if not all([self.model_name, self.token]):
68
- raise Exception("AI8_MODEL or AI8_API_KEY is not set")
67
+ if self.model_name not in self.models:
68
+ PrettyOutput.print(f"警告: 当前选择的模型 {self.model_name} 不在可用列表中", OutputType.WARNING)
69
+
69
70
  PrettyOutput.print(f"当前使用模型: {self.model_name}", OutputType.SYSTEM)
70
71
 
71
72
  def set_model_name(self, model_name: str):
@@ -279,3 +280,45 @@ class AI8Model(BasePlatform):
279
280
  PrettyOutput.print(f"删除会话异常: {str(e)}", OutputType.ERROR)
280
281
  return False
281
282
 
283
+ def get_available_models(self) -> List[str]:
284
+ """获取可用的模型列表
285
+
286
+ Returns:
287
+ List[str]: 可用模型名称列表
288
+ """
289
+ try:
290
+ headers = {
291
+ 'Content-Type': 'application/json',
292
+ 'Accept': 'application/json, text/plain, */*',
293
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
294
+ 'X-APP-VERSION': '2.2.2',
295
+ 'Origin': self.BASE_URL,
296
+ 'Referer': f'{self.BASE_URL}/chat?_userMenuKey=chat'
297
+ }
298
+
299
+ response = requests.get(
300
+ f"{self.BASE_URL}/api/chat/template",
301
+ headers=headers
302
+ )
303
+
304
+ if response.status_code != 200:
305
+ PrettyOutput.print(f"获取模型列表失败: {response.status_code}", OutputType.ERROR)
306
+ return []
307
+
308
+ data = response.json()
309
+ if data['code'] != 0:
310
+ PrettyOutput.print(f"获取模型列表失败: {data.get('msg', '未知错误')}", OutputType.ERROR)
311
+ return []
312
+
313
+ # 保存模型信息
314
+ self.models = {
315
+ model['value']: model
316
+ for model in data['data']['models']
317
+ }
318
+
319
+ return list(self.models.keys())
320
+
321
+ except Exception as e:
322
+ PrettyOutput.print(f"获取模型列表异常: {str(e)}", OutputType.ERROR)
323
+ return []
324
+
jarvis/models/base.py CHANGED
@@ -1,6 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Dict, List
3
- from ..utils import OutputType, PrettyOutput
4
3
 
5
4
 
6
5
  class BasePlatform(ABC):
jarvis/models/oyi.py CHANGED
@@ -15,42 +15,31 @@ class OyiModel(BasePlatform):
15
15
  def __init__(self):
16
16
  """Initialize model"""
17
17
  PrettyOutput.section("支持的模型", OutputType.SUCCESS)
18
- PrettyOutput.print("gpt-4o-mini", OutputType.INFO)
19
- PrettyOutput.print("gpt-3.5-turbo", OutputType.INFO)
20
- PrettyOutput.print("gpt-4o", OutputType.INFO)
21
- PrettyOutput.print("gpt-4o-2024-11-20", OutputType.INFO)
22
- PrettyOutput.print("o1-mini", OutputType.INFO)
23
- PrettyOutput.print("o1-mini-2024-09-12", OutputType.INFO)
24
- PrettyOutput.print("gpt-4o-all", OutputType.INFO)
25
- PrettyOutput.print("claude-3-5-sonnet-20240620", OutputType.INFO)
26
- PrettyOutput.print("claude-3-opus-20240229", OutputType.INFO)
27
- PrettyOutput.print("deepseek-chat", OutputType.INFO)
28
- PrettyOutput.print("deepseek-coder", OutputType.INFO)
29
- PrettyOutput.print("glm-4-flash", OutputType.INFO)
30
- PrettyOutput.print("glm-4-air", OutputType.INFO)
31
- PrettyOutput.print("qwen-plus", OutputType.INFO)
32
- PrettyOutput.print("qwen-turbo", OutputType.INFO)
33
- PrettyOutput.print("Doubao-lite-4k", OutputType.INFO)
34
- PrettyOutput.print("Doubao-pro-4k", OutputType.INFO)
35
- PrettyOutput.print("yi-lightning", OutputType.INFO)
36
- PrettyOutput.print("step-1-flash", OutputType.INFO)
37
- PrettyOutput.print("moonshot-v1-8k", OutputType.INFO)
38
- PrettyOutput.print("lite", OutputType.INFO)
39
- PrettyOutput.print("generalv3.5", OutputType.INFO)
40
- PrettyOutput.print("gemini-pro", OutputType.INFO)
41
- PrettyOutput.print("llama3-70b-8192", OutputType.INFO)
18
+
19
+ # 获取可用模型列表
20
+ available_models = self.get_available_models()
21
+ if available_models:
22
+ for model in available_models:
23
+ PrettyOutput.print(model, OutputType.INFO)
24
+ else:
25
+ PrettyOutput.print("获取模型列表失败", OutputType.WARNING)
26
+
42
27
  PrettyOutput.print("使用OYI_MODEL环境变量配置模型", OutputType.SUCCESS)
43
28
 
44
-
45
29
  self.messages = []
46
30
  self.system_message = ""
47
31
  self.conversation = None
48
32
  self.upload_files = []
49
33
  self.first_chat = True
50
- self.model_name = os.getenv("OYI_MODEL") or "deepseek-chat"
34
+
51
35
  self.token = os.getenv("OYI_API_KEY")
52
- if not all([self.model_name, self.token]):
53
- raise Exception("OYI_MODEL or OYI_API_KEY is not set")
36
+ if not self.token:
37
+ raise Exception("OYI_API_KEY is not set")
38
+
39
+ self.model_name = os.getenv("OYI_MODEL") or "deepseek-chat"
40
+ if self.model_name not in [m.split()[0] for m in available_models]:
41
+ PrettyOutput.print(f"警告: 当前选择的模型 {self.model_name} 不在可用列表中", OutputType.WARNING)
42
+
54
43
  PrettyOutput.print(f"当前使用模型: {self.model_name}", OutputType.SYSTEM)
55
44
 
56
45
  def set_model_name(self, model_name: str):
@@ -265,6 +254,12 @@ class OyiModel(BasePlatform):
265
254
  Dict: Upload response data
266
255
  """
267
256
  try:
257
+ # 检查当前模型是否支持文件上传
258
+ model_info = self.models.get(self.model_name)
259
+ if not model_info or not model_info.get('uploadFile', False):
260
+ PrettyOutput.print(f"当前模型 {self.model_name} 不支持文件上传", OutputType.WARNING)
261
+ return None
262
+
268
263
  headers = {
269
264
  'Authorization': f'Bearer {self.token}',
270
265
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
@@ -276,7 +271,7 @@ class OyiModel(BasePlatform):
276
271
 
277
272
  with open(file_path, 'rb') as f:
278
273
  files = {
279
- 'file': (os.path.basename(file_path), f, mimetypes.guess_type(file_path)[0]) # Adjust content-type based on file type
274
+ 'file': (os.path.basename(file_path), f, mimetypes.guess_type(file_path)[0])
280
275
  }
281
276
 
282
277
  response = requests.post(
@@ -302,3 +297,70 @@ class OyiModel(BasePlatform):
302
297
  except Exception as e:
303
298
  PrettyOutput.print(f"文件上传异常: {str(e)}", OutputType.ERROR)
304
299
  return None
300
+
301
+ def get_available_models(self) -> List[str]:
302
+ """获取可用的模型列表
303
+
304
+ Returns:
305
+ List[str]: 可用模型名称列表
306
+ """
307
+ try:
308
+ headers = {
309
+ 'Content-Type': 'application/json',
310
+ 'Accept': 'application/json, text/plain, */*',
311
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
312
+ 'Origin': 'https://ai.rcouyi.com',
313
+ 'Referer': 'https://ai.rcouyi.com/'
314
+ }
315
+
316
+ response = requests.get(
317
+ "https://ai.rcouyi.com/config/system.json",
318
+ headers=headers
319
+ )
320
+
321
+ if response.status_code != 200:
322
+ PrettyOutput.print(f"获取模型列表失败: {response.status_code}", OutputType.ERROR)
323
+ return []
324
+
325
+ data = response.json()
326
+
327
+ # 保存模型信息
328
+ self.models = {
329
+ model['value']: model
330
+ for model in data.get('model', [])
331
+ if model.get('enable', False) # 只保存启用的模型
332
+ }
333
+
334
+ # 格式化显示
335
+ models = []
336
+ for model in self.models.values():
337
+ # 基本信息
338
+ model_str = f"{model['value']:<30} {model['label']}"
339
+
340
+ # 添加后缀标签
341
+ suffix = model.get('suffix', [])
342
+ if suffix:
343
+ # 处理新格式的suffix (字典列表)
344
+ if suffix and isinstance(suffix[0], dict):
345
+ suffix_str = ', '.join(s.get('tag', '') for s in suffix)
346
+ # 处理旧格式的suffix (字符串列表)
347
+ else:
348
+ suffix_str = ', '.join(str(s) for s in suffix)
349
+ model_str += f" ({suffix_str})"
350
+
351
+ # 添加描述或提示
352
+ info = model.get('tooltip') or model.get('description', '')
353
+ if info:
354
+ model_str += f" - {info}"
355
+
356
+ # 添加文件上传支持标记
357
+ if model.get('uploadFile'):
358
+ model_str += " [支持文件上传]"
359
+
360
+ models.append(model_str)
361
+
362
+ return sorted(models)
363
+
364
+ except Exception as e:
365
+ PrettyOutput.print(f"获取模型列表异常: {str(e)}", OutputType.ERROR)
366
+ return []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.43
3
+ Version: 0.1.45
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=tEoUs2JTv57mPQLFhni4PQnMq5TsT-xG51MiMvafDWY,50
2
+ jarvis/agent.py,sha256=5GmC9iAOerTR4JoxzrfgLSspoz6qRm1E6xEIWLTR2OI,12222
3
+ jarvis/main.py,sha256=3kpohHORc13A5RBjTSHYF7cdnc6W15hO23R78Iqnz8w,5843
4
+ jarvis/utils.py,sha256=JlkuC9RtspXH2VWDmj9nR0vnb8ie1gIsKc4vC7WRco8,7321
5
+ jarvis/models/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
6
+ jarvis/models/ai8.py,sha256=9i7n_-TPbvq0AaRILs9ERQ7Vy5tDyoibXkiPsJvwQio,12520
7
+ jarvis/models/base.py,sha256=eeNJJbv9ikPVTtV_E7mgW8LZzVgjQ-OzxlHF6slYrHw,1237
8
+ jarvis/models/kimi.py,sha256=N0bPQ1ugx0RwjR96jLchmOPvCmws-fXyA0mnOAdo2k4,17161
9
+ jarvis/models/openai.py,sha256=pB7AaZuorHlmudTPaUnEbFOyl51Fy6uhU9KQBm98Ov8,4156
10
+ jarvis/models/oyi.py,sha256=12jskOgo77LWtXq4u-LX7s_sYomBJSlry4oONtdmVCU,14443
11
+ jarvis/models/registry.py,sha256=iVBjN9ImEvGHcz8WR-z8pPMJQZI907o_nccVOFANhak,7951
12
+ jarvis/tools/__init__.py,sha256=Kj1bKj34lwRDKMKHLOrLyQElf2lHbqA2tDgP359eaDo,71
13
+ jarvis/tools/base.py,sha256=EGRGbdfbLXDLwtyoWdvp9rlxNX7bzc20t0Vc2VkwIEY,652
14
+ jarvis/tools/file_ops.py,sha256=h8g0eT9UvlJf4kt0DLXvdSsjcPj7x19lxWdDApeDfpg,3842
15
+ jarvis/tools/generator.py,sha256=vVP3eN5cCDpRXf_fn0skETkPXAW1XZFWx9pt2_ahK48,5999
16
+ jarvis/tools/methodology.py,sha256=G3cOaHTMujGZBhDLhQEqyCV2NISizO3MXRuho1KfI6Y,5223
17
+ jarvis/tools/registry.py,sha256=NbH7A4A2lyN2IoyZGFwa5Ghed2dpzbJWCAd1Dg95WBI,7183
18
+ jarvis/tools/shell.py,sha256=UPKshPyOaUwTngresUw-ot1jHjQIb4wCY5nkJqa38lU,2520
19
+ jarvis/tools/sub_agent.py,sha256=rEtAmSVY2ZjFOZEKr5m5wpACOQIiM9Zr_3dT92FhXYU,2621
20
+ jarvis_ai_assistant-0.1.45.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
21
+ jarvis_ai_assistant-0.1.45.dist-info/METADATA,sha256=0ShAmks8D_nMGSoTH5b-mqtlr0s-aG5O5R5tclKMYQo,10015
22
+ jarvis_ai_assistant-0.1.45.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
23
+ jarvis_ai_assistant-0.1.45.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
24
+ jarvis_ai_assistant-0.1.45.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
25
+ jarvis_ai_assistant-0.1.45.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=OJVxHJQi99bOxMOkdKLvxRutQ_Lc4AyKCH4e-FnQNfw,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=FWB9E8zChLF1EI0hTB-cEMjRy5wB24APzutV1cZJLqY,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=d1h3L32QBfyf5iQvyncTo-RfvA-kTDGrL7gtxAL6gDg,11609
14
- jarvis/models/base.py,sha256=CMjODEh2c9KbCMfQGF7WgGbn-CfpIaGdA5yK1RxKMLY,1282
15
- jarvis/models/kimi.py,sha256=N0bPQ1ugx0RwjR96jLchmOPvCmws-fXyA0mnOAdo2k4,17161
16
- jarvis/models/openai.py,sha256=pB7AaZuorHlmudTPaUnEbFOyl51Fy6uhU9KQBm98Ov8,4156
17
- jarvis/models/oyi.py,sha256=2-PTdoboHl0Jtn0RrBXC7gSCYbI9_yVUmNDBVYw-U5M,12458
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=Bu4NXc_CV-GViEL55b0keW6coToPW9aYXhTcOsZIcvg,14972
21
- jarvis/models/__pycache__/base.cpython-313.pyc,sha256=Bsu0p7yNCNa4jO-i2A58i3H3xYzxzhtty5BeHAC5lmE,2488
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=49JKEc1tGhbdMV0PiBRnGxq4OGAfNnKmozNw87aRmP8,14441
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.43.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
53
- jarvis_ai_assistant-0.1.43.dist-info/METADATA,sha256=BolaQ4qPW5JleYCO9bdksEjAEgBVCuJVXIFs6zzlLz8,10015
54
- jarvis_ai_assistant-0.1.43.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
55
- jarvis_ai_assistant-0.1.43.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
56
- jarvis_ai_assistant-0.1.43.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
57
- jarvis_ai_assistant-0.1.43.dist-info/RECORD,,