jarvis-ai-assistant 0.3.11__tar.gz → 0.3.12__tar.gz
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_ai_assistant-0.3.11/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.12}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/pyproject.toml +1 -1
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/setup.py +1 -1
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/__init__.py +24 -24
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/builtin_input_handler.py +10 -2
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/file_methodology_manager.py +3 -7
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/jarvis.py +10 -17
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/share_manager.py +10 -10
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/README.md +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/agent_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_analysis/code_review.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_data/config_schema.json +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_utils/git_commiter.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/sse_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_methodology/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/base.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/kimi.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/registry.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/tongyi.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/yuanbao.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/service.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/cli.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/embedding_manager.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/llm_interface.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/rag_pipeline.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/retriever.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/cli.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/stats.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/main.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/edit_file.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/file_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/registry.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/config.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/git_utils.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/input.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/utils.py +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "jarvis-ai-assistant"
|
7
|
-
version = "0.3.
|
7
|
+
version = "0.3.12"
|
8
8
|
description = "Jarvis: An AI assistant that uses tools to interact with the system"
|
9
9
|
readme = "README.md"
|
10
10
|
authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
|
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages # type: ignore
|
|
3
3
|
|
4
4
|
setup(
|
5
5
|
name="jarvis-ai-assistant",
|
6
|
-
version="0.3.
|
6
|
+
version="0.3.12",
|
7
7
|
author="skyfire",
|
8
8
|
author_email="skyfireitdiy@hotmail.com",
|
9
9
|
description="An AI assistant that uses various tools to interact with the system",
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/__init__.py
RENAMED
@@ -284,9 +284,7 @@ class Agent:
|
|
284
284
|
|
285
285
|
self.model = PlatformRegistry().create_platform(platform_name)
|
286
286
|
if self.model is None:
|
287
|
-
PrettyOutput.print(
|
288
|
-
f"平台 {platform_name} 不存在,将使用普通模型", OutputType.WARNING
|
289
|
-
)
|
287
|
+
PrettyOutput.print(f"平台 {platform_name} 不存在,将使用普通模型", OutputType.WARNING)
|
290
288
|
self.model = PlatformRegistry().get_normal_platform()
|
291
289
|
|
292
290
|
if model_name:
|
@@ -444,9 +442,10 @@ class Agent:
|
|
444
442
|
4. 会检查并处理上下文长度限制
|
445
443
|
"""
|
446
444
|
# 处理输入
|
447
|
-
|
448
|
-
|
449
|
-
|
445
|
+
if run_input_handlers:
|
446
|
+
message = self._process_input(message)
|
447
|
+
if not message:
|
448
|
+
return ""
|
450
449
|
|
451
450
|
# 添加附加提示
|
452
451
|
message = self._add_addon_prompt(message, need_complete)
|
@@ -459,21 +458,16 @@ class Agent:
|
|
459
458
|
|
460
459
|
return response
|
461
460
|
|
462
|
-
def _process_input(self, message: str
|
461
|
+
def _process_input(self, message: str) -> str:
|
463
462
|
"""处理输入消息"""
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
return message
|
463
|
+
for handler in self.input_handler:
|
464
|
+
message, need_return = handler(message, self)
|
465
|
+
if need_return:
|
466
|
+
self._last_handler_returned = True
|
467
|
+
return message
|
470
468
|
self._last_handler_returned = False
|
471
469
|
return message
|
472
470
|
|
473
|
-
def _should_return_early(self, message: str) -> bool:
|
474
|
-
"""检查是否需要提前返回"""
|
475
|
-
return hasattr(self, "_last_handler_returned") and self._last_handler_returned
|
476
|
-
|
477
471
|
def _add_addon_prompt(self, message: str, need_complete: bool) -> str:
|
478
472
|
"""添加附加提示到消息"""
|
479
473
|
if self.session.addon_prompt:
|
@@ -561,12 +555,19 @@ class Agent:
|
|
561
555
|
def _handle_history_with_summary(self) -> str:
|
562
556
|
"""使用摘要方式处理历史"""
|
563
557
|
summary = self.generate_summary()
|
564
|
-
self.clear_history()
|
565
558
|
|
566
|
-
|
567
|
-
|
559
|
+
# 先获取格式化的摘要消息
|
560
|
+
formatted_summary = ""
|
561
|
+
if summary:
|
562
|
+
formatted_summary = self._format_summary_message(summary)
|
563
|
+
|
564
|
+
# 清理历史(但不清理prompt,因为prompt会在builtin_input_handler中设置)
|
565
|
+
if self.model:
|
566
|
+
self.model.reset()
|
567
|
+
# 重置会话
|
568
|
+
self.session.clear_history()
|
568
569
|
|
569
|
-
return
|
570
|
+
return formatted_summary
|
570
571
|
|
571
572
|
def _handle_history_with_file_upload(self) -> str:
|
572
573
|
"""使用文件上传方式处理历史"""
|
@@ -704,6 +705,7 @@ class Agent:
|
|
704
705
|
current_response = self._call_model(
|
705
706
|
self.session.prompt, True, run_input_handlers
|
706
707
|
)
|
708
|
+
|
707
709
|
self.session.prompt = ""
|
708
710
|
run_input_handlers = False
|
709
711
|
|
@@ -783,9 +785,7 @@ class Agent:
|
|
783
785
|
返回:
|
784
786
|
str: "continue" 或 "complete"
|
785
787
|
"""
|
786
|
-
user_input = self.multiline_inputer(
|
787
|
-
f"{self.name}: 请输入,或输入空行来结束当前任务:"
|
788
|
-
)
|
788
|
+
user_input = self.multiline_inputer(f"{self.name}: 请输入,或输入空行来结束当前任务:")
|
789
789
|
|
790
790
|
if user_input:
|
791
791
|
self.session.prompt = user_input
|
@@ -32,8 +32,16 @@ def builtin_input_handler(user_input: str, agent_: Any) -> Tuple[str, bool]:
|
|
32
32
|
for tag in special_tags:
|
33
33
|
# 优先处理特殊标记
|
34
34
|
if tag == "Summary":
|
35
|
-
agent._summarize_and_clear_history()
|
36
|
-
|
35
|
+
summary = agent._summarize_and_clear_history()
|
36
|
+
memory_tags_prompt = agent.memory_manager.prepare_memory_tags_prompt()
|
37
|
+
prompt = ""
|
38
|
+
if summary:
|
39
|
+
# 将摘要和记忆标签设置为新会话的初始提示
|
40
|
+
prompt = summary + "\n" + memory_tags_prompt
|
41
|
+
else:
|
42
|
+
# 即使没有摘要,也确保设置记忆标签作为新会话的初始提示
|
43
|
+
prompt = memory_tags_prompt
|
44
|
+
return prompt, True
|
37
45
|
elif tag == "Clear":
|
38
46
|
agent.clear()
|
39
47
|
return "", True
|
@@ -48,13 +48,10 @@ class FileMethodologyManager:
|
|
48
48
|
# 上传成功
|
49
49
|
from jarvis.jarvis_agent.memory_manager import MemoryManager
|
50
50
|
|
51
|
-
memory_manager = MemoryManager(self.agent)
|
52
|
-
memory_tags_prompt = memory_manager.prepare_memory_tags_prompt()
|
53
|
-
|
54
51
|
if self.agent.files:
|
55
|
-
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。
|
52
|
+
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息和方法论文件,可以从中获取一些经验信息。"
|
56
53
|
else:
|
57
|
-
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。
|
54
|
+
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n上传的文件包含历史对话信息,可以从中获取一些经验信息。"
|
58
55
|
|
59
56
|
def _handle_files_upload(self):
|
60
57
|
"""处理普通文件上传"""
|
@@ -79,14 +76,13 @@ class FileMethodologyManager:
|
|
79
76
|
from jarvis.jarvis_agent.memory_manager import MemoryManager
|
80
77
|
|
81
78
|
memory_manager = MemoryManager(self.agent)
|
82
|
-
memory_tags_prompt = memory_manager.prepare_memory_tags_prompt()
|
83
79
|
methodology = load_methodology(
|
84
80
|
msg,
|
85
81
|
self.agent.get_tool_registry(),
|
86
82
|
platform_name=self.agent.model.platform_name(),
|
87
83
|
model_name=self.agent.model.name(),
|
88
84
|
)
|
89
|
-
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n以下是历史类似问题的执行经验,可参考:\n{methodology}
|
85
|
+
self.agent.session.prompt = f"{self.agent.session.prompt}\n\n以下是历史类似问题的执行经验,可参考:\n{methodology}"
|
90
86
|
|
91
87
|
def handle_history_with_file_upload(self) -> str:
|
92
88
|
"""使用文件上传方式处理历史"""
|
@@ -19,21 +19,18 @@ def run_cli(
|
|
19
19
|
ctx: typer.Context,
|
20
20
|
llm_type: str = typer.Option(
|
21
21
|
"normal",
|
22
|
-
"-t",
|
22
|
+
"-t",
|
23
|
+
"--llm-type",
|
23
24
|
help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
|
24
25
|
),
|
25
|
-
task: Optional[str] = typer.Option(
|
26
|
-
None, "-T", "--task", help="从命令行直接输入任务内容"
|
27
|
-
),
|
26
|
+
task: Optional[str] = typer.Option(None, "-T", "--task", help="从命令行直接输入任务内容"),
|
28
27
|
model_group: Optional[str] = typer.Option(
|
29
28
|
None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
|
30
29
|
),
|
31
30
|
tool_group: Optional[str] = typer.Option(
|
32
31
|
None, "-G", "--tool-group", help="使用的工具组,覆盖配置文件中的设置"
|
33
32
|
),
|
34
|
-
config_file: Optional[str] = typer.Option(
|
35
|
-
None, "-f", "--config", help="自定义配置文件路径"
|
36
|
-
),
|
33
|
+
config_file: Optional[str] = typer.Option(None, "-f", "--config", help="自定义配置文件路径"),
|
37
34
|
restore_session: bool = typer.Option(
|
38
35
|
False,
|
39
36
|
"--restore-session",
|
@@ -43,9 +40,7 @@ def run_cli(
|
|
43
40
|
share_methodology: bool = typer.Option(
|
44
41
|
False, "--share-methodology", help="分享本地方法论到中心方法论仓库"
|
45
42
|
),
|
46
|
-
share_tool: bool = typer.Option(
|
47
|
-
False, "--share-tool", help="分享本地工具到中心工具仓库"
|
48
|
-
),
|
43
|
+
share_tool: bool = typer.Option(False, "--share-tool", help="分享本地工具到中心工具仓库"),
|
49
44
|
) -> None:
|
50
45
|
"""Jarvis AI assistant command-line interface."""
|
51
46
|
if ctx.invoked_subcommand is not None:
|
@@ -59,21 +54,19 @@ def run_cli(
|
|
59
54
|
# 处理方法论分享
|
60
55
|
if share_methodology:
|
61
56
|
init_env("", config_file=config_file) # 初始化配置但不显示欢迎信息
|
62
|
-
|
63
|
-
|
57
|
+
methodology_manager = MethodologyShareManager()
|
58
|
+
methodology_manager.run()
|
64
59
|
return
|
65
60
|
|
66
61
|
# 处理工具分享
|
67
62
|
if share_tool:
|
68
63
|
init_env("", config_file=config_file) # 初始化配置但不显示欢迎信息
|
69
|
-
|
70
|
-
|
64
|
+
tool_manager = ToolShareManager()
|
65
|
+
tool_manager.run()
|
71
66
|
return
|
72
67
|
|
73
68
|
# 初始化环境
|
74
|
-
init_env(
|
75
|
-
"欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!", config_file=config_file
|
76
|
-
)
|
69
|
+
init_env("欢迎使用 Jarvis AI 助手,您的智能助理已准备就绪!", config_file=config_file)
|
77
70
|
|
78
71
|
# 运行主流程
|
79
72
|
try:
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/share_manager.py
RENAMED
@@ -2,7 +2,7 @@
|
|
2
2
|
"""分享管理模块,负责工具和方法论的分享功能"""
|
3
3
|
import os
|
4
4
|
import subprocess
|
5
|
-
from typing import List, Dict, Any
|
5
|
+
from typing import List, Dict, Any, Set
|
6
6
|
from abc import ABC, abstractmethod
|
7
7
|
|
8
8
|
from prompt_toolkit import prompt
|
@@ -16,7 +16,7 @@ def parse_selection(selection_str: str, max_value: int) -> List[int]:
|
|
16
16
|
|
17
17
|
例如: "1,2,3,4-9,20" -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 20]
|
18
18
|
"""
|
19
|
-
selected:
|
19
|
+
selected: Set[int] = set()
|
20
20
|
parts = selection_str.split(",")
|
21
21
|
|
22
22
|
for part in parts:
|
@@ -73,13 +73,15 @@ class ShareManager(ABC):
|
|
73
73
|
if "__pycache__" not in content:
|
74
74
|
f.write("\n__pycache__/\n")
|
75
75
|
modified = True
|
76
|
-
|
76
|
+
|
77
77
|
if modified:
|
78
|
-
subprocess.run(["git", "add", ".gitignore"], cwd=self.repo_path, check=True)
|
79
78
|
subprocess.run(
|
80
|
-
["git", "
|
81
|
-
|
82
|
-
|
79
|
+
["git", "add", ".gitignore"], cwd=self.repo_path, check=True
|
80
|
+
)
|
81
|
+
subprocess.run(
|
82
|
+
["git", "commit", "-m", "chore: add __pycache__ to .gitignore"],
|
83
|
+
cwd=self.repo_path,
|
84
|
+
check=True,
|
83
85
|
)
|
84
86
|
subprocess.run(["git", "push"], cwd=self.repo_path, check=True)
|
85
87
|
else:
|
@@ -163,9 +165,7 @@ class ShareManager(ABC):
|
|
163
165
|
def select_resources(self, resources: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
164
166
|
"""让用户选择要分享的资源"""
|
165
167
|
# 显示可选的资源
|
166
|
-
resource_list = [
|
167
|
-
f"\n可分享的{self.get_resource_type()}(已排除中心仓库中已有的):"
|
168
|
-
]
|
168
|
+
resource_list = [f"\n可分享的{self.get_resource_type()}(已排除中心仓库中已有的):"]
|
169
169
|
for i, resource in enumerate(resources, 1):
|
170
170
|
resource_list.append(f"[{i}] {self.format_resource_display(resource)}")
|
171
171
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/config_editor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/memory_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/output_handler.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompt_builder.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/prompts.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/protocols.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/session_manager.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_analyzer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/task_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_agent/tool_executor.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/code_agent.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_code_agent/lint.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_data/config_schema.json
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_git_squash/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/sse_mcp_client.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_mcp/stdio_mcp_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_methodology/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_multi_agent/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/__init__.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/base.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/human.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/kimi.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/openai.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/registry.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/tongyi.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform/yuanbao.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_platform_manager/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/embedding_manager.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/llm_interface.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/query_rewriter.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/rag_pipeline.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_rag/retriever.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_smart_shell/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/storage.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_stats/visualizer.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/ask_user.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/clear_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/__init__.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/cli/main.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/edit_file.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/execute_script.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/file_analyzer.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/methodology.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_code.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/read_webpage.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/registry.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/retrieve_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/rewrite_file.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/save_memory.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/search_web.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_tools/virtual_tty.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/__init__.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/clipboard.py
RENAMED
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/embedding.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/file_processors.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/git_utils.py
RENAMED
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/globals.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{jarvis_ai_assistant-0.3.11 → jarvis_ai_assistant-0.3.12}/src/jarvis/jarvis_utils/methodology.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|