jarvis-ai-assistant 0.1.112__tar.gz → 0.1.113__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.

Potentially problematic release.


This version of jarvis-ai-assistant might be problematic. Click here for more details.

Files changed (71) hide show
  1. {jarvis_ai_assistant-0.1.112/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.113}/PKG-INFO +1 -1
  2. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/pyproject.toml +1 -1
  3. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/setup.py +1 -1
  4. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/__init__.py +1 -1
  5. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/agent.py +33 -8
  6. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/git_commiter.py +4 -1
  7. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/utils.py +51 -8
  8. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113/src/jarvis_ai_assistant.egg-info}/PKG-INFO +1 -1
  9. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/LICENSE +0 -0
  10. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/MANIFEST.in +0 -0
  11. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/README.md +0 -0
  12. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/setup.cfg +0 -0
  13. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  14. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_code_agent/code_agent.py +0 -0
  15. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_code_agent/file_select.py +0 -0
  16. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_code_agent/patch.py +0 -0
  17. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_code_agent/relevant_files.py +0 -0
  18. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_codebase/__init__.py +0 -0
  19. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_codebase/main.py +0 -0
  20. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/base.py +0 -0
  21. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/cpp.py +0 -0
  22. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/go.py +0 -0
  23. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/python.py +0 -0
  24. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/registry.py +0 -0
  25. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_lsp/rust.py +0 -0
  26. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/__init__.py +0 -0
  27. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/ai8.py +0 -0
  28. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/base.py +0 -0
  29. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/kimi.py +0 -0
  30. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/ollama.py +0 -0
  31. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/openai.py +0 -0
  32. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/oyi.py +0 -0
  33. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform/registry.py +0 -0
  34. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  35. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_platform_manager/main.py +0 -0
  36. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_rag/__init__.py +0 -0
  37. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_rag/main.py +0 -0
  38. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  39. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  40. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/__init__.py +0 -0
  41. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/ask_codebase.py +0 -0
  42. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  43. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/base.py +0 -0
  44. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/chdir.py +0 -0
  45. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/code_review.py +0 -0
  46. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/create_code_agent.py +0 -0
  47. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/create_sub_agent.py +0 -0
  48. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/deep_thinking.py +0 -0
  49. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/deep_thinking_agent.py +0 -0
  50. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/execute_shell.py +0 -0
  51. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/file_operation.py +0 -0
  52. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_find_definition.py +0 -0
  53. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_find_references.py +0 -0
  54. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_get_diagnostics.py +0 -0
  55. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_get_document_symbols.py +0 -0
  56. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_prepare_rename.py +0 -0
  57. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/lsp_validate_edit.py +0 -0
  58. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/methodology.py +0 -0
  59. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/rag.py +0 -0
  60. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/read_code.py +0 -0
  61. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  62. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/registry.py +0 -0
  63. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/search.py +0 -0
  64. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/select_code_files.py +0 -0
  65. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/jarvis_tools/tool_generator.py +0 -0
  66. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis/utils/date_utils.py +0 -0
  67. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  68. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  69. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  70. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  71. {jarvis_ai_assistant-0.1.112 → jarvis_ai_assistant-0.1.113}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.112
3
+ Version: 0.1.113
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.1.112"
7
+ version = "0.1.113"
8
8
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Your Name", email = "your.email@example.com" }]
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="jarvis-ai-assistant",
5
- version="0.1.112",
5
+ version="0.1.113",
6
6
  author="skyfire",
7
7
  author_email="skyfireitdiy@hotmail.com",
8
8
  description="An AI assistant that uses various tools to interact with the system",
@@ -1,3 +1,3 @@
1
1
  """Jarvis AI Assistant"""
2
2
 
3
- __version__ = "0.1.112"
3
+ __version__ = "0.1.113"
@@ -1,4 +1,5 @@
1
1
  import argparse
2
+ from ast import Tuple
2
3
  import time
3
4
  from typing import Callable, Dict, List, Optional
4
5
 
@@ -33,8 +34,9 @@ class Agent:
33
34
  system_prompt: str,
34
35
  name: str = "Jarvis",
35
36
  is_sub_agent: bool = False,
36
- tool_registry: Optional[ToolRegistry] = None,
37
- platform: Optional[BasePlatform] = None,
37
+ tool_registry: Optional[ToolRegistry|List[str]] = None,
38
+ platform: Optional[BasePlatform]|Optional[str] = None,
39
+ model_name: Optional[str] = None,
38
40
  summary_prompt: Optional[str] = None,
39
41
  auto_complete: Optional[bool] = None,
40
42
  output_handler_before_tool: Optional[List[Callable]] = None,
@@ -63,11 +65,34 @@ class Agent:
63
65
  max_context_length: Maximum context length
64
66
  """
65
67
  PrettyOutput.print(f"欢迎使用Jarvis,你的AI助手,正在初始化...", OutputType.SYSTEM)
68
+
69
+ # 初始化平台和模型
66
70
  if platform is not None:
67
- self.model = platform
71
+ if isinstance(platform, str):
72
+ self.model = PlatformRegistry().create_platform(platform)
73
+ if self.model is None:
74
+ PrettyOutput.print(f"平台 {platform} 不存在,将使用普通模型", OutputType.WARNING)
75
+ self.model = PlatformRegistry().get_normal_platform()
76
+ else:
77
+ self.model = platform
68
78
  else:
69
79
  self.model = PlatformRegistry.get_global_platform_registry().get_normal_platform()
70
- self.tool_registry = tool_registry if tool_registry else ToolRegistry()
80
+
81
+ if model_name is not None:
82
+ self.model.set_model_name(model_name)
83
+
84
+
85
+ # 初始化工具
86
+ if tool_registry is not None:
87
+ if isinstance(tool_registry, ToolRegistry):
88
+ self.tool_registry = tool_registry
89
+ elif isinstance(tool_registry, List):
90
+ self.tool_registry = ToolRegistry()
91
+ self.tool_registry.use_tools(tool_registry)
92
+ else:
93
+ self.tool_registry = ToolRegistry()
94
+
95
+
71
96
  self.record_methodology = record_methodology if record_methodology is not None else is_record_methodology()
72
97
  self.use_methodology = use_methodology if use_methodology is not None else is_use_methodology()
73
98
  self.name = name
@@ -188,7 +213,7 @@ Please describe in concise bullet points, highlighting important information.
188
213
  message = handler(message)
189
214
 
190
215
  while True:
191
- ret = self.model.chat_until_success(message)
216
+ ret = self.model.chat_until_success(message) # type: ignore
192
217
  if ret:
193
218
  return ret
194
219
  else:
@@ -314,7 +339,7 @@ Please continue the task based on the above information.
314
339
  try:
315
340
  PrettyOutput.section("准备环境", OutputType.PLANNING)
316
341
  if file_list:
317
- self.model.upload_files(file_list)
342
+ self.model.upload_files(file_list) # type: ignore
318
343
 
319
344
  # 显示任务开始
320
345
  PrettyOutput.section(f"开始新任务: {self.name}", OutputType.PLANNING)
@@ -397,7 +422,7 @@ Please continue the task based on the above information.
397
422
  3. Reset conversation length counter
398
423
  """
399
424
  self.prompt = ""
400
- self.model.reset()
425
+ self.model.reset() # type: ignore
401
426
  self.conversation_length = 0 # Reset conversation length
402
427
 
403
428
 
@@ -484,7 +509,7 @@ def _select_task(tasks: dict) -> str:
484
509
  selected_name = task_names[choice - 1]
485
510
  return tasks[selected_name] # Return the task description
486
511
  else:
487
- PrettyOutput.print("无效的选择。请选择列表中的一个号码。", OutputType.ERROR)
512
+ PrettyOutput.print("无效的选择。请选择列表中的一个号码。", OutputType.WARNING)
488
513
 
489
514
  except KeyboardInterrupt:
490
515
  return "" # Return empty on Ctrl+C
@@ -4,7 +4,7 @@ from typing import Dict, Any
4
4
 
5
5
  import yaml
6
6
  from jarvis.jarvis_platform.registry import PlatformRegistry
7
- from jarvis.utils import OutputType, PrettyOutput, init_env
7
+ from jarvis.utils import OutputType, PrettyOutput, has_uncommitted_changes, init_env
8
8
  import sys
9
9
 
10
10
 
@@ -25,6 +25,9 @@ class GitCommitTool:
25
25
  def execute(self, args: Dict) -> Dict[str, Any]:
26
26
  """Execute automatic commit process"""
27
27
  try:
28
+ if not has_uncommitted_changes():
29
+ PrettyOutput.print("没有未提交的更改", OutputType.SUCCESS)
30
+ return {"success": True, "stdout": "No uncommitted changes", "stderr": ""}
28
31
  PrettyOutput.print("准备添加文件到提交...", OutputType.SYSTEM)
29
32
  os.system("git add .")
30
33
  PrettyOutput.print("Get diff...", OutputType.SYSTEM)
@@ -165,18 +165,61 @@ class PrettyOutput:
165
165
 
166
166
  @staticmethod
167
167
  def print(text: str, output_type: OutputType, timestamp: bool = True, lang: Optional[str] = None, traceback: bool = False):
168
- """Print formatted output using rich console"""
168
+ """Print formatted output using rich console with styling
169
+
170
+ Args:
171
+ text: The text content to print
172
+ output_type: The type of output (affects styling)
173
+ timestamp: Whether to show timestamp
174
+ lang: Language for syntax highlighting
175
+ traceback: Whether to show traceback for errors
176
+ """
177
+ from rich.style import Style as RichStyle
178
+
179
+ # Define styles for different output types
180
+ styles = {
181
+ OutputType.SYSTEM: RichStyle(color="cyan", bold=True),
182
+ OutputType.CODE: RichStyle(color="green"),
183
+ OutputType.RESULT: RichStyle(color="blue"),
184
+ OutputType.ERROR: RichStyle(color="red", bold=True),
185
+ OutputType.INFO: RichStyle(color="yellow"),
186
+ OutputType.PLANNING: RichStyle(color="magenta"),
187
+ OutputType.PROGRESS: RichStyle(color="white"),
188
+ OutputType.SUCCESS: RichStyle(color="green", bold=True),
189
+ OutputType.WARNING: RichStyle(color="yellow", bold=True),
190
+ OutputType.DEBUG: RichStyle(color="blue", dim=True),
191
+ OutputType.USER: RichStyle(color="green"),
192
+ OutputType.TOOL: RichStyle(color="yellow", italic=True)
193
+ }
194
+
169
195
  # Get formatted header
170
196
  lang = lang if lang is not None else PrettyOutput._detect_language(text, default_lang='markdown')
171
197
  header = PrettyOutput._format("", output_type, timestamp)
172
-
173
- content = Syntax(text, lang, theme="monokai")
174
-
175
- # Print panel with appropriate border style
176
- border_style = "red" if output_type == OutputType.ERROR else output_type.value
177
- console.print(Panel(content, border_style=border_style, title=header, title_align="left", highlight=True))
178
198
 
179
- # Print stack trace for errors
199
+ # Create syntax highlighted content
200
+ content = Syntax(
201
+ text,
202
+ lang,
203
+ theme="monokai",
204
+ word_wrap=True,
205
+ background_color="default"
206
+ )
207
+
208
+ # Create panel with styling
209
+ panel = Panel(
210
+ content,
211
+ style=styles[output_type],
212
+ border_style=styles[output_type],
213
+ title=header,
214
+ title_align="left",
215
+ padding=(1, 2),
216
+ highlight=True
217
+ )
218
+
219
+ # Print panel
220
+ console.print(panel)
221
+
222
+ # Print stack trace for errors if requested
180
223
  if traceback or output_type == OutputType.ERROR:
181
224
  console.print_exception()
182
225
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.1.112
3
+ Version: 0.1.113
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