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 +1 -1
- jarvis/__pycache__/__init__.cpython-313.pyc +0 -0
- jarvis/__pycache__/agent.cpython-313.pyc +0 -0
- jarvis/__pycache__/main.cpython-313.pyc +0 -0
- jarvis/agent.py +11 -10
- jarvis/main.py +11 -11
- jarvis/models/__pycache__/ai8.cpython-313.pyc +0 -0
- jarvis/models/__pycache__/openai.cpython-313.pyc +0 -0
- jarvis/models/__pycache__/oyi.cpython-313.pyc +0 -0
- jarvis/models/ai8.py +3 -1
- jarvis/models/openai.py +2 -0
- jarvis/models/oyi.py +2 -1
- jarvis/tools/__pycache__/methodology.cpython-313.pyc +0 -0
- jarvis/tools/__pycache__/registry.cpython-313.pyc +0 -0
- jarvis/tools/methodology.py +16 -16
- jarvis/tools/registry.py +1 -1
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/METADATA +1 -1
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/RECORD +22 -22
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/top_level.txt +0 -0
jarvis/__init__.py
CHANGED
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
|
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("
|
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("""
|
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
|
-
"""
|
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('-
|
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
|
-
|
111
|
+
platform = args.platform if args.platform else os.getenv('JARVIS_PLATFORM')
|
112
112
|
|
113
|
-
if not
|
114
|
-
PrettyOutput.print("
|
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(
|
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 {
|
124
|
+
PrettyOutput.print(f"Jarvis 已初始化 - With {platform} 平台", OutputType.SYSTEM)
|
125
125
|
if args.keep_history:
|
126
126
|
PrettyOutput.print("已启用历史保留模式", OutputType.INFO)
|
127
127
|
|
Binary file
|
Binary file
|
Binary file
|
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
|
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
|
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:
|
Binary file
|
Binary file
|
jarvis/tools/methodology.py
CHANGED
@@ -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": "
|
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"
|
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"
|
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"
|
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:
|
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]:
|
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"
|
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,34 +1,34 @@
|
|
1
|
-
jarvis/__init__.py,sha256=
|
2
|
-
jarvis/agent.py,sha256=
|
3
|
-
jarvis/main.py,sha256=
|
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=
|
6
|
-
jarvis/__pycache__/agent.cpython-313.pyc,sha256=
|
7
|
-
jarvis/__pycache__/main.cpython-313.pyc,sha256=
|
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=
|
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=
|
17
|
-
jarvis/models/oyi.py,sha256=
|
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=
|
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
|
24
|
-
jarvis/models/__pycache__/oyi.cpython-313.pyc,sha256=
|
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=
|
31
|
-
jarvis/tools/registry.py,sha256=
|
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=
|
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=
|
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.
|
53
|
-
jarvis_ai_assistant-0.1.
|
54
|
-
jarvis_ai_assistant-0.1.
|
55
|
-
jarvis_ai_assistant-0.1.
|
56
|
-
jarvis_ai_assistant-0.1.
|
57
|
-
jarvis_ai_assistant-0.1.
|
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,,
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.1.35.dist-info → jarvis_ai_assistant-0.1.37.dist-info}/entry_points.txt
RENAMED
File without changes
|
File without changes
|