jarvis-ai-assistant 0.1.192__py3-none-any.whl → 0.1.193__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,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.1.192"
4
+ __version__ = "0.1.193"
@@ -395,6 +395,8 @@ class Agent:
395
395
  if self.addon_prompt:
396
396
  message += f"\n\n{self.addon_prompt}"
397
397
  self.addon_prompt = ""
398
+ else:
399
+ message += f"\n\n{self.make_default_addon_prompt(need_complete)}"
398
400
 
399
401
  # 累加对话长度
400
402
  self.conversation_length += get_context_token_count(message)
@@ -724,6 +726,43 @@ arguments:
724
726
  spinner.text = "分析失败"
725
727
  spinner.fail("❌")
726
728
 
729
+
730
+ def make_default_addon_prompt(self, need_complete: bool) -> str:
731
+ """生成附加提示。
732
+
733
+ 参数:
734
+ need_complete: 是否需要完成任务
735
+
736
+ """
737
+ return ""
738
+ # 结构化系统指令
739
+ action_handlers = ", ".join([handler.name() for handler in self.output_handler])
740
+
741
+ # 任务完成提示
742
+ complete_prompt = (
743
+ f"- 输出{ot('!!!COMPLETE!!!')}"
744
+ if need_complete and self.auto_complete
745
+ else ""
746
+ )
747
+
748
+ addon_prompt = f"""
749
+ <system_prompt>
750
+ 请判断是否已经完成任务,如果已经完成:
751
+ - 直接输出完成原因,不需要再有新的操作,不要输出{ot("TOOL_CALL")}标签
752
+ {complete_prompt}
753
+ 如果没有完成,请进行下一步操作:
754
+ - 仅包含一个操作
755
+ - 如果信息不明确,请请求用户补充
756
+ - 如果执行过程中连续失败5次,请使用ask_user询问用户操作
757
+ - 操作列表:{action_handlers}
758
+ </system_prompt>
759
+
760
+ 请继续。
761
+ """
762
+
763
+ return addon_prompt
764
+
765
+
727
766
  def run(self, user_input: str) -> Any:
728
767
  """处理用户输入并执行任务
729
768
 
@@ -779,7 +818,7 @@ arguments:
779
818
  f"模型交互期间被中断,请输入用户干预信息:"
780
819
  )
781
820
  if user_input:
782
- self.prompt += f"{user_input}"
821
+ self.prompt += f"\n\n{user_input}"
783
822
  continue
784
823
 
785
824
  if self.after_tool_call_cb:
@@ -109,7 +109,6 @@ class CodeAgent:
109
109
  output_handler=[tool_registry],
110
110
  platform=platform_instance,
111
111
  input_handler=[
112
- file_input_handler,
113
112
  shell_input_handler,
114
113
  builtin_input_handler
115
114
  ],
@@ -289,8 +288,6 @@ class CodeAgent:
289
288
  final_ret = ""
290
289
  diff = get_diff()
291
290
  if diff:
292
- # 获取修改的文件列表
293
- modified_files = get_diff_file_list()
294
291
  start_hash = get_latest_commit_hash()
295
292
  PrettyOutput.print(diff, OutputType.CODE, lang="diff")
296
293
  commited = handle_commit_workflow()
@@ -301,8 +298,8 @@ class CodeAgent:
301
298
 
302
299
  # 添加提交信息到final_ret
303
300
  if commits:
304
- final_ret += "代码已修改完成\n"
305
-
301
+ final_ret += f"\n\n代码已修改完成\n补丁内容:\n```diff\n{diff}\n```\n"
302
+ modified_files = get_diff_file_list()
306
303
  # 修改后的提示逻辑
307
304
  lint_tools_info = "\n".join(
308
305
  f" - {file}: 使用 {'、'.join(get_lint_tools(file))}"
@@ -320,9 +317,9 @@ class CodeAgent:
320
317
  """
321
318
  agent.set_addon_prompt(addon_prompt)
322
319
  else:
323
- final_ret += "修改没有生效"
320
+ final_ret += "\n\n修改没有生效\n"
324
321
  else:
325
- final_ret += "修改被拒绝\n"
322
+ final_ret += "\n修改被拒绝\n"
326
323
  final_ret += f"# 补丁预览:\n```diff\n{diff}\n```"
327
324
  else:
328
325
  return
@@ -47,9 +47,9 @@ def import_methodology(input_file):
47
47
  "content": content
48
48
  }, f, ensure_ascii=False, indent=2)
49
49
 
50
- print(f"成功导入 {len(import_data)} 个方法论(总计 {len(merged_data)} 个)")
50
+ PrettyOutput.print(f"成功导入 {len(import_data)} 个方法论(总计 {len(merged_data)} 个)", OutputType.SUCCESS)
51
51
  except (json.JSONDecodeError, OSError) as e:
52
- print(f"导入失败: {str(e)}")
52
+ PrettyOutput.print(f"导入失败: {str(e)}", OutputType.ERROR)
53
53
 
54
54
  def export_methodology(output_file):
55
55
  """导出当前方法论到单个文件"""
@@ -59,9 +59,9 @@ def export_methodology(output_file):
59
59
  with open(output_file, "w", encoding="utf-8") as f:
60
60
  json.dump(methodologies, f, ensure_ascii=False, indent=2)
61
61
 
62
- print(f"成功导出 {len(methodologies)} 个方法论到 {output_file}")
62
+ PrettyOutput.print(f"成功导出 {len(methodologies)} 个方法论到 {output_file}", OutputType.SUCCESS)
63
63
  except (OSError, TypeError) as e:
64
- print(f"导出失败: {str(e)}")
64
+ PrettyOutput.print(f"导出失败: {str(e)}", OutputType.ERROR)
65
65
 
66
66
  def list_methodologies():
67
67
  """列出所有方法论"""
@@ -69,14 +69,14 @@ def list_methodologies():
69
69
  methodologies = _load_all_methodologies()
70
70
 
71
71
  if not methodologies:
72
- print("没有找到方法论")
72
+ PrettyOutput.print("没有找到方法论", OutputType.INFO)
73
73
  return
74
74
 
75
- print("可用方法论:")
75
+ PrettyOutput.print("可用方法论:", OutputType.INFO)
76
76
  for i, (problem_type, _) in enumerate(methodologies.items(), 1):
77
- print(f"{i}. {problem_type}")
77
+ PrettyOutput.print(f"{i}. {problem_type}", OutputType.INFO)
78
78
  except (OSError, json.JSONDecodeError) as e:
79
- print(f"列出方法论失败: {str(e)}")
79
+ PrettyOutput.print(f"列出方法论失败: {str(e)}", OutputType.ERROR)
80
80
 
81
81
  def extract_methodology(input_file):
82
82
  """从文本文件中提取方法论"""
@@ -386,6 +386,12 @@ class YuanbaoPlatform(BasePlatform):
386
386
 
387
387
  headers = self._get_base_headers()
388
388
 
389
+ chat_model_ext_info = {
390
+ "modelId": self.model_name,
391
+ "subModelId": "",
392
+ "supportFunctions": ["openInternetSearch"] if self.web else ["autoInternetSearch"],
393
+ }
394
+
389
395
  # 准备消息内容
390
396
  payload = {
391
397
  "model": "gpt_175B_0404",
@@ -404,16 +410,15 @@ class YuanbaoPlatform(BasePlatform):
404
410
  "agentId": self.agent_id,
405
411
  "supportHint": 1,
406
412
  "version": "v2",
407
- "supportFunctions": [],
413
+ "supportFunctions": chat_model_ext_info["supportFunctions"],
408
414
  "chatModelId": self.model_name,
409
415
  }
410
416
 
417
+ if self.first_chat:
418
+ payload["chatModelExtInfo"] = json.dumps(chat_model_ext_info),
419
+
411
420
  self.multimedia = []
412
421
 
413
- if self.web:
414
- payload["supportFunctions"] = ["openInternetSearch"]
415
- else:
416
- payload["supportFunctions"] = ["autoInternetSearch"]
417
422
 
418
423
  # 添加系统消息(如果是第一次对话)
419
424
  if self.first_chat and self.system_message:
@@ -66,6 +66,15 @@ class ReadCodeTool:
66
66
  lines = f.readlines()
67
67
 
68
68
  total_lines = len(lines)
69
+
70
+ # 处理空文件情况
71
+ if total_lines == 0:
72
+ spinner.ok("✅")
73
+ return {
74
+ "success": True,
75
+ "stdout": f"\n🔍 文件: {abs_path}\n📄 文件为空 (0行)\n",
76
+ "stderr": ""
77
+ }
69
78
 
70
79
  # 处理特殊值-1表示文件末尾
71
80
  if end_line == -1:
@@ -622,9 +622,9 @@ class ToolRegistry(OutputHandlerProtocol):
622
622
  """
623
623
  output_parts = []
624
624
  if stdout:
625
- output_parts.append(f"<output>\n{stdout}\n</output>")
625
+ output_parts.append(f"<stdout>\n{stdout}\n</stdout>")
626
626
  if stderr:
627
- output_parts.append(f"<error>\n{stderr}\n</error>")
627
+ output_parts.append(f"<stderr>\n{stderr}\n</stderr>")
628
628
  output = "\n\n".join(output_parts)
629
629
  return "<无输出和错误>" if not output else output
630
630
 
@@ -95,5 +95,93 @@ code_plan工具将:
95
95
  4. 确保使用项目对应的静态检查工具
96
96
  """,
97
97
  "description": "执行静态代码检查"
98
+ },
99
+ "ToolHelp": {
100
+ "append": False,
101
+ "template": """
102
+ <tool_system_guide>
103
+ <introduction>
104
+ # 🛠️ 工具使用系统
105
+ 您正在使用一个需要精确格式和严格规则的工具执行系统。
106
+ </introduction>
107
+
108
+ <format>
109
+ # 📋 工具调用格式
110
+ {ot("TOOL_CALL")}
111
+ want: 想要从执行结果中获取到的信息,如果工具输出内容过长,会根据此字段尝试提取有效信息
112
+ name: 工具名称
113
+ arguments:
114
+ param1: 值1
115
+ param2: 值2
116
+ {ct("TOOL_CALL")}
117
+ </format>
118
+
119
+ <rules>
120
+ # ❗ 关键规则
121
+ <rule>
122
+ ### 1. 每次只使用一个工具
123
+ - 一次只执行一个工具
124
+ - 等待结果后再进行下一步
125
+ </rule>
126
+
127
+ <rule>
128
+ ### 2. 严格遵守格式
129
+ - 完全按照上述格式
130
+ - 使用正确的YAML格式,2个空格作为缩进
131
+ - 包含所有必需参数
132
+ </rule>
133
+
134
+ <rule>
135
+ ### 3. 结果处理
136
+ - 等待执行结果
137
+ - 不要假设结果
138
+ - 不要创建虚假响应
139
+ - 不要想象对话
140
+ </rule>
141
+
142
+ <rule>
143
+ ### 4. 信息管理
144
+ - 如果信息不足,询问用户
145
+ - 跳过不必要的步骤
146
+ - 如果卡住,请求指导
147
+ - 不要在没有完整信息的情况下继续
148
+ </rule>
149
+ </rules>
150
+
151
+ <string_format>
152
+ # 📝 字符串参数格式
153
+ 始终使用 |2 语法表示字符串参数,防止多行字符串行首空格引起歧义:
154
+
155
+ {ot("TOOL_CALL")}
156
+ want: 当前的git状态,期望获取xxx的提交记录
157
+ name: execute_script
158
+ arguments:
159
+ interpreter: bash
160
+ script_cotent: |2
161
+ git status --porcelain
162
+ {ct("TOOL_CALL")}
163
+ </string_format>
164
+
165
+ <best_practices>
166
+ # 💡 最佳实践
167
+ - 准备好后立即开始执行
168
+ - 无需请求许可即可开始
169
+ - 使用正确的字符串格式
170
+ - 监控进度并调整
171
+ - 遇到困难时请求帮助
172
+ </best_practices>
173
+
174
+ <common_errors>
175
+ # ⚠️ 常见错误
176
+ - 同时调用多个工具
177
+ - 字符串参数缺少 |2
178
+ - 假设工具结果
179
+ - 创建虚构对话
180
+ - 在没有所需信息的情况下继续
181
+ - yaml 格式错误
182
+ </common_errors>
183
+ </tool_system_guide>
184
+ """,
185
+ "description": "工具使用系统"
98
186
  }
99
187
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.192
3
+ Version: 0.1.193
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
@@ -222,6 +222,7 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
222
222
  | `jarvis-platform-manager` | - | 使用平台管理功能 |
223
223
  | `jarvis-code-review` | - | 使用代码审查功能 |
224
224
  | `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
225
+ | `jarvis-code-agent` | `jca` | 使用代码代理功能 |
225
226
  | `jarvis-dev` | - | 使用dev功能(开发中) |
226
227
  | `jarvis-git-squash` | - | 使用git squash功能 |
227
228
  | `jarvis-multi-agent` | - | 使用多代理功能 |
@@ -230,6 +231,54 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
230
231
  | `jarvis-git-details` | - | 使用git details功能 |
231
232
  | `jarvis-methodology` | - | 使用方法论功能 |
232
233
 
234
+ ## 💻 代码代理功能 (jarvis-code-agent)
235
+
236
+ `jarvis-code-agent` 是Jarvis的代码分析与修改工具,主要功能包括:
237
+
238
+ ### 1. 核心功能
239
+ - 代码分析与修改
240
+ - 代码审查与优化
241
+ - 自动化git操作
242
+ - 代码问题诊断与修复
243
+
244
+ ### 2. 使用方式
245
+ ```bash
246
+ # 基本用法
247
+ jarvis-code-agent
248
+
249
+ # 或使用快捷命令
250
+ jca
251
+
252
+ # 带参数使用
253
+ jarvis-code-agent -p <平台> -m <模型> -r "需求描述"
254
+ ```
255
+
256
+ ### 3. 命令行参数
257
+ | 参数 | 描述 |
258
+ |------|------|
259
+ | `-p/--platform` | 指定AI平台 (yuanbao/kimi/tongyi/openai) |
260
+ | `-m/--model` | 指定模型名称 |
261
+ | `-r/--requirement` | 直接指定需求描述 |
262
+
263
+ ### 4. 工作流程
264
+ 1. 初始化环境 (查找git根目录,检查未提交修改)
265
+ 2. 分析用户需求
266
+ 3. 执行代码修改
267
+ 4. 自动处理git提交
268
+ 5. 显示修改结果
269
+
270
+ ### 5. 示例
271
+ ```bash
272
+ # 使用默认平台分析代码
273
+ jca
274
+
275
+ # 指定平台和模型
276
+ jca -p yuanbao -m deep_seek_v3
277
+
278
+ # 直接处理需求
279
+ jca -r "修复src/example.py中的内存泄漏问题"
280
+ ```
281
+
233
282
  ## 🏗️ 平台管理功能
234
283
 
235
284
  `jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
@@ -1,5 +1,5 @@
1
- jarvis/__init__.py,sha256=5_sLz94_CMqE2he4vQ7HAZhBu30-NLMM4jT2UvSUt2c,74
2
- jarvis/jarvis_agent/__init__.py,sha256=ZB3Tt09qwCO68vY62ogzfvvdF4HMQcEV6EjPUsJpuR8,29806
1
+ jarvis/__init__.py,sha256=oHw83eIzlzJqE2Znlnyp9V52XTDkbZbDoc4YaousSQE,74
2
+ jarvis/jarvis_agent/__init__.py,sha256=CGHvKB5M12j442PFJn490TXk_Y5i6s58Q7LKH5v8V5U,30964
3
3
  jarvis/jarvis_agent/builtin_input_handler.py,sha256=f4DaEHPakXcAbgykFP-tiOQP6fh_yGFlZx_h91_j2tQ,1529
4
4
  jarvis/jarvis_agent/file_input_handler.py,sha256=OfoYI5on6w5BDUUg4OadFcfWzMsUF70GNrlt9QyauvA,4181
5
5
  jarvis/jarvis_agent/jarvis.py,sha256=zfYlwXaZJYfwvNeU5IUSlURyY0pn7QxsHmXBqSptUo8,6105
@@ -7,7 +7,7 @@ jarvis/jarvis_agent/main.py,sha256=miR8wnWBzmbhOfnscyiKo1oI4wZBRU6FEE-k1lkqtiI,2
7
7
  jarvis/jarvis_agent/output_handler.py,sha256=7qori-RGrQmdiFepoEe3oPPKJIvRt90l_JDmvCoa4zA,1219
8
8
  jarvis/jarvis_agent/shell_input_handler.py,sha256=pi3AtPKrkKc6K9e99S1djKXQ_XrxtP6FrSWebQmRT6E,1261
9
9
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- jarvis/jarvis_code_agent/code_agent.py,sha256=4nYYPFGSr7U8TGbqhayMOOHK6NZRzd-H4JcM4FDNcMk,15522
10
+ jarvis/jarvis_code_agent/code_agent.py,sha256=r9X1eJ0nexqmSjyTrsvT0DKokeYDws0iu83HFjz8XPU,15501
11
11
  jarvis/jarvis_code_agent/lint.py,sha256=TZlhNbeaoLzO9DzExjN5GAjrt66owd8lyQV56LTfkrs,4370
12
12
  jarvis/jarvis_code_analysis/code_review.py,sha256=45MPcXullg55w6E0Xhm2dDj6TGmkUxNNI2LJWexnTKQ,30123
13
13
  jarvis/jarvis_code_analysis/checklists/__init__.py,sha256=cKQ_FOGy5TQgM-YkRCqORo-mUOZaPAJ9VDmZoFX58us,78
@@ -43,7 +43,7 @@ jarvis/jarvis_mcp/__init__.py,sha256=NF_vqRxaNyz8ColcpRh0bOkinV90YLAKHEN--jkP-B8
43
43
  jarvis/jarvis_mcp/sse_mcp_client.py,sha256=QNA7HqFvLbvhNaFp3ZsXzs2Rm6_gHUMcpd4t4qAzymY,23485
44
44
  jarvis/jarvis_mcp/stdio_mcp_client.py,sha256=IEkas4ojP5J0TdVaUglvlEp61RyezBtuejv4lN3n1I4,11831
45
45
  jarvis/jarvis_mcp/streamable_mcp_client.py,sha256=t2uKiIbKlmMsaiN9xHCZC3WTdl7mmoBuIZ_ph-QshzE,15084
46
- jarvis/jarvis_methodology/main.py,sha256=HhEArlKI5PCpGnBCwVrXMuDn2z84LgpgK7-aGSQH0v4,11880
46
+ jarvis/jarvis_methodology/main.py,sha256=-Xq1eMSIRPKdtt5hmGo9zbzNOYWGI-zZo8uYM_XbFX8,12129
47
47
  jarvis/jarvis_multi_agent/__init__.py,sha256=Xab5sFltJmX_9MoXqanmZs6FqKfUb2v_pG29Vk8ZXaw,4311
48
48
  jarvis/jarvis_multi_agent/main.py,sha256=KeGv8sdpSgTjW6VE4-tQ8BWDC_a0aE_4R3OqzPBd5N4,1646
49
49
  jarvis/jarvis_platform/__init__.py,sha256=0YnsUoM4JkIBOtImFdjfuDbrqQZT3dEaAwSJ62DrpCc,104
@@ -53,7 +53,7 @@ jarvis/jarvis_platform/kimi.py,sha256=m45UlTkE3XhZZ3XfQk4degpKWsy5yrdzBHi9pDvmoZ
53
53
  jarvis/jarvis_platform/openai.py,sha256=iXsJ52e7zGaKNho1Lzg4_rjXUwLn0wpVmWCLZ0k4xU8,4985
54
54
  jarvis/jarvis_platform/registry.py,sha256=qq19f9HoISxpVf09t1oEuOgzLXP8QT1mDzWAI5ifIHc,7819
55
55
  jarvis/jarvis_platform/tongyi.py,sha256=Q0MCqKofuoQpp6XiYBdgO6LA4vJPEiTvVvKGgwJcpII,21062
56
- jarvis/jarvis_platform/yuanbao.py,sha256=wpJxYS8lF9c-1F5S6pFSdKhipXkQREtErtn5WgCblCQ,20750
56
+ jarvis/jarvis_platform/yuanbao.py,sha256=sJ6wr92oGbTSzngttXRGQ-IeFWMEtSVNiHiQs0Buv7k,20935
57
57
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  jarvis/jarvis_platform_manager/main.py,sha256=klN8c0IItE1wg1V2tPkh2RoEJxXXCgO--Hf7mpmY39I,29558
59
59
  jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -71,16 +71,16 @@ jarvis/jarvis_tools/file_analyzer.py,sha256=jl9phaN6BqMcgrikMeaxY-9VYXbXQOO1Zu61
71
71
  jarvis/jarvis_tools/file_operation.py,sha256=WloC1-oPJLwgICu4WBc9f7XA8N_Ggl73QQ5CxM2XTlE,9464
72
72
  jarvis/jarvis_tools/generate_new_tool.py,sha256=KZX4wpSpBZ4S5817zAN5j7AAirtgBCrNUmjrpfL9dNI,7706
73
73
  jarvis/jarvis_tools/methodology.py,sha256=m7cQmVhhQpUUl_uYTVvcW0JBovQLx5pWTXh_8K77HsU,5237
74
- jarvis/jarvis_tools/read_code.py,sha256=pL2SwZDsJbJMXo4stW96quFsLgbtPVIAW-h4sDKsLtM,6274
74
+ jarvis/jarvis_tools/read_code.py,sha256=QkwrZc0slAZSa8p3sfTkN4FoIGqvC6CTz3vGRAdDBdI,6627
75
75
  jarvis/jarvis_tools/read_webpage.py,sha256=PFAYuKjay9j6phWzyuZ99ZfNaHJljmRWAgS0bsvbcvE,2219
76
- jarvis/jarvis_tools/registry.py,sha256=6iroEOm75KDhgSM0HHb1p8Sn2lLemZ29nSw7O6IzRPY,25186
76
+ jarvis/jarvis_tools/registry.py,sha256=mb_IcPRUNB85b41DMgoi72iWamaRbhWNZ5_UXgFJBe8,25188
77
77
  jarvis/jarvis_tools/rewrite_file.py,sha256=3V2l7kG5DG9iRimBce-1qCRuJPL0QM32SBTzOl2zCqM,7004
78
78
  jarvis/jarvis_tools/search_web.py,sha256=rzxrCOTEo-MmLQrKI4k-AbfidUfJUeCPK4f5ZJy48G8,952
79
79
  jarvis/jarvis_tools/virtual_tty.py,sha256=8E_n-eC-RRPTqYx6BI5Q2RnorY8dbhKFBfAjIiRQROA,16397
80
80
  jarvis/jarvis_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  jarvis/jarvis_tools/cli/main.py,sha256=3UuU9tk5cQAS0rfNPXgdtnAd5uDB7v0Exo0_I9sJHRE,6355
82
82
  jarvis/jarvis_utils/__init__.py,sha256=x5lbQRH1uOulmWr1IEqNMLXNmDHbqQQot7d1uhKFg4M,851
83
- jarvis/jarvis_utils/builtin_replace_map.py,sha256=n4gBUwAJDABUhQu9qIiIHWNfPk_T7chfNk5ygCiOPtE,2931
83
+ jarvis/jarvis_utils/builtin_replace_map.py,sha256=qvxnhDMnuflKvQiJgeMUi96sZgrNkZJl_MswAzOD4AA,4883
84
84
  jarvis/jarvis_utils/config.py,sha256=Z7pZsSYXJkc2RzUhJ-_VvQA3xOLo6LEo4nEE1ftyQY8,7104
85
85
  jarvis/jarvis_utils/embedding.py,sha256=J8YAqIEj16TJIPEG24uvUlPHeN-5zq0JW_hbNLizQug,3832
86
86
  jarvis/jarvis_utils/file_processors.py,sha256=G5kQI7vCGIDnjgAB5J1dYIR102u6WUv3IhcWFfDh_gs,2977
@@ -91,9 +91,9 @@ jarvis/jarvis_utils/methodology.py,sha256=6vf__ahwJZ2I62mWGAvh2C-G6pq930Dh_EkrY1
91
91
  jarvis/jarvis_utils/output.py,sha256=QboL42GtG_dnvd1O64sl8o72mEBhXNRADPXQMXgDE7Q,9661
92
92
  jarvis/jarvis_utils/tag.py,sha256=YJHmuedLb7_AiqvKQetHr4R1FxyzIh7HN0RRkWMmYbU,429
93
93
  jarvis/jarvis_utils/utils.py,sha256=r9Xnf84jR2E1CfHBtYVF_sPZ74-S4W63aPleBQZtdYo,11597
94
- jarvis_ai_assistant-0.1.192.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
95
- jarvis_ai_assistant-0.1.192.dist-info/METADATA,sha256=L-16MCi-TdoxaluwVvuq1KVUKJazX05Ell2ZqMToJq0,17829
96
- jarvis_ai_assistant-0.1.192.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
- jarvis_ai_assistant-0.1.192.dist-info/entry_points.txt,sha256=Gy3DOP1PYLMK0GCj4rrP_9lkOyBQ39EK_lKGUSwn41E,869
98
- jarvis_ai_assistant-0.1.192.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
99
- jarvis_ai_assistant-0.1.192.dist-info/RECORD,,
94
+ jarvis_ai_assistant-0.1.193.dist-info/licenses/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
95
+ jarvis_ai_assistant-0.1.193.dist-info/METADATA,sha256=RJAXtk8b0Exd0ZgfEW7jzt9NE7M8iFFFN-uXrf7VYu4,18901
96
+ jarvis_ai_assistant-0.1.193.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
+ jarvis_ai_assistant-0.1.193.dist-info/entry_points.txt,sha256=Gy3DOP1PYLMK0GCj4rrP_9lkOyBQ39EK_lKGUSwn41E,869
98
+ jarvis_ai_assistant-0.1.193.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
99
+ jarvis_ai_assistant-0.1.193.dist-info/RECORD,,