jarvis-ai-assistant 0.1.96__py3-none-any.whl → 0.1.98__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.
Potentially problematic release.
This version of jarvis-ai-assistant might be problematic. Click here for more details.
- jarvis/__init__.py +1 -1
- jarvis/agent.py +138 -144
- jarvis/jarvis_codebase/main.py +87 -54
- jarvis/jarvis_coder/git_utils.py +22 -25
- jarvis/jarvis_coder/main.py +166 -171
- jarvis/jarvis_coder/patch_handler.py +153 -453
- jarvis/jarvis_coder/plan_generator.py +76 -48
- jarvis/jarvis_platform/main.py +39 -39
- jarvis/jarvis_rag/main.py +182 -182
- jarvis/jarvis_smart_shell/main.py +34 -34
- jarvis/main.py +24 -24
- jarvis/models/ai8.py +22 -22
- jarvis/models/base.py +17 -13
- jarvis/models/kimi.py +31 -31
- jarvis/models/ollama.py +28 -28
- jarvis/models/openai.py +22 -24
- jarvis/models/oyi.py +25 -25
- jarvis/models/registry.py +33 -34
- jarvis/tools/ask_user.py +5 -5
- jarvis/tools/base.py +2 -2
- jarvis/tools/chdir.py +9 -9
- jarvis/tools/codebase_qa.py +4 -4
- jarvis/tools/coder.py +4 -4
- jarvis/tools/file_ops.py +1 -1
- jarvis/tools/generator.py +23 -23
- jarvis/tools/methodology.py +4 -4
- jarvis/tools/rag.py +4 -4
- jarvis/tools/registry.py +38 -38
- jarvis/tools/search.py +42 -42
- jarvis/tools/shell.py +13 -13
- jarvis/tools/sub_agent.py +16 -16
- jarvis/tools/thinker.py +41 -41
- jarvis/tools/webpage.py +17 -17
- jarvis/utils.py +59 -60
- {jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/METADATA +1 -1
- jarvis_ai_assistant-0.1.98.dist-info/RECORD +47 -0
- jarvis_ai_assistant-0.1.96.dist-info/RECORD +0 -47
- {jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/top_level.txt +0 -0
jarvis/utils.py
CHANGED
|
@@ -22,52 +22,52 @@ os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
|
|
|
22
22
|
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
|
23
23
|
|
|
24
24
|
class OutputType(Enum):
|
|
25
|
-
SYSTEM = "system" # AI
|
|
26
|
-
CODE = "code" #
|
|
27
|
-
RESULT = "result" #
|
|
28
|
-
ERROR = "error" #
|
|
29
|
-
INFO = "info" #
|
|
30
|
-
PLANNING = "planning" #
|
|
31
|
-
PROGRESS = "progress" #
|
|
32
|
-
SUCCESS = "success" #
|
|
33
|
-
WARNING = "warning" #
|
|
34
|
-
DEBUG = "debug" #
|
|
35
|
-
USER = "user" #
|
|
36
|
-
TOOL = "tool" #
|
|
25
|
+
SYSTEM = "system" # AI assistant message
|
|
26
|
+
CODE = "code" # Code related
|
|
27
|
+
RESULT = "result" # Tool execution result
|
|
28
|
+
ERROR = "error" # Error information
|
|
29
|
+
INFO = "info" # System prompt
|
|
30
|
+
PLANNING = "planning" # Task planning
|
|
31
|
+
PROGRESS = "progress" # Execution progress
|
|
32
|
+
SUCCESS = "success" # Success information
|
|
33
|
+
WARNING = "warning" # Warning information
|
|
34
|
+
DEBUG = "debug" # Debug information
|
|
35
|
+
USER = "user" # User input
|
|
36
|
+
TOOL = "tool" # Tool call
|
|
37
37
|
|
|
38
38
|
class PrettyOutput:
|
|
39
39
|
"""美化输出类"""
|
|
40
40
|
|
|
41
41
|
# 颜色方案 - 只使用前景色
|
|
42
42
|
COLORS = {
|
|
43
|
-
OutputType.SYSTEM: Fore.CYAN, #
|
|
44
|
-
OutputType.CODE: Fore.GREEN, #
|
|
45
|
-
OutputType.RESULT: Fore.BLUE, #
|
|
46
|
-
OutputType.ERROR: Fore.RED, #
|
|
47
|
-
OutputType.INFO: Fore.YELLOW, #
|
|
48
|
-
OutputType.PLANNING: Fore.MAGENTA, #
|
|
49
|
-
OutputType.PROGRESS: Fore.WHITE, #
|
|
50
|
-
OutputType.SUCCESS: Fore.GREEN, #
|
|
51
|
-
OutputType.WARNING: Fore.YELLOW, #
|
|
52
|
-
OutputType.DEBUG: Fore.BLUE, #
|
|
53
|
-
OutputType.USER: Fore.GREEN, #
|
|
54
|
-
OutputType.TOOL: Fore.YELLOW, #
|
|
43
|
+
OutputType.SYSTEM: Fore.CYAN, # Cyan - AI assistant
|
|
44
|
+
OutputType.CODE: Fore.GREEN, # Green - Code
|
|
45
|
+
OutputType.RESULT: Fore.BLUE, # Blue - Result
|
|
46
|
+
OutputType.ERROR: Fore.RED, # Red - Error
|
|
47
|
+
OutputType.INFO: Fore.YELLOW, # Yellow - Prompt
|
|
48
|
+
OutputType.PLANNING: Fore.MAGENTA, # Magenta - Planning
|
|
49
|
+
OutputType.PROGRESS: Fore.WHITE, # White - Progress
|
|
50
|
+
OutputType.SUCCESS: Fore.GREEN, # Green - Success
|
|
51
|
+
OutputType.WARNING: Fore.YELLOW, # Yellow - Warning
|
|
52
|
+
OutputType.DEBUG: Fore.BLUE, # Blue - Debug
|
|
53
|
+
OutputType.USER: Fore.GREEN, # Green - User
|
|
54
|
+
OutputType.TOOL: Fore.YELLOW, # Yellow - Tool
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
# 图标方案
|
|
58
58
|
ICONS = {
|
|
59
|
-
OutputType.SYSTEM: "🤖", #
|
|
60
|
-
OutputType.CODE: "📝", #
|
|
61
|
-
OutputType.RESULT: "✨", #
|
|
62
|
-
OutputType.ERROR: "❌", #
|
|
63
|
-
OutputType.INFO: "ℹ️", #
|
|
64
|
-
OutputType.PLANNING: "📋", #
|
|
65
|
-
OutputType.PROGRESS: "⏳", #
|
|
66
|
-
OutputType.SUCCESS: "✅", #
|
|
67
|
-
OutputType.WARNING: "⚠️", #
|
|
68
|
-
OutputType.DEBUG: "🔍", #
|
|
69
|
-
OutputType.USER: "👤", #
|
|
70
|
-
OutputType.TOOL: "🔧", #
|
|
59
|
+
OutputType.SYSTEM: "🤖", # Robot - AI assistant
|
|
60
|
+
OutputType.CODE: "📝", # Notebook - Code
|
|
61
|
+
OutputType.RESULT: "✨", # Flash - Result
|
|
62
|
+
OutputType.ERROR: "❌", # Error - Error
|
|
63
|
+
OutputType.INFO: "ℹ️", # Info - Prompt
|
|
64
|
+
OutputType.PLANNING: "📋", # Clipboard - Planning
|
|
65
|
+
OutputType.PROGRESS: "⏳", # Hourglass - Progress
|
|
66
|
+
OutputType.SUCCESS: "✅", # Checkmark - Success
|
|
67
|
+
OutputType.WARNING: "⚠️", # Warning - Warning
|
|
68
|
+
OutputType.DEBUG: "🔍", # Magnifying glass - Debug
|
|
69
|
+
OutputType.USER: "👤", # User - User
|
|
70
|
+
OutputType.TOOL: "🔧", # Wrench - Tool
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
# 前缀方案
|
|
@@ -88,7 +88,7 @@ class PrettyOutput:
|
|
|
88
88
|
|
|
89
89
|
@staticmethod
|
|
90
90
|
def format(text: str, output_type: OutputType, timestamp: bool = True) -> str:
|
|
91
|
-
"""
|
|
91
|
+
"""Format output text"""
|
|
92
92
|
color = PrettyOutput.COLORS.get(output_type, "")
|
|
93
93
|
icon = PrettyOutput.ICONS.get(output_type, "")
|
|
94
94
|
prefix = PrettyOutput.PREFIXES.get(output_type, "")
|
|
@@ -103,15 +103,15 @@ class PrettyOutput:
|
|
|
103
103
|
|
|
104
104
|
@staticmethod
|
|
105
105
|
def print(text: str, output_type: OutputType, timestamp: bool = True):
|
|
106
|
-
"""
|
|
106
|
+
"""Print formatted output"""
|
|
107
107
|
print(PrettyOutput.format(text, output_type, timestamp))
|
|
108
108
|
if output_type == OutputType.ERROR:
|
|
109
109
|
import traceback
|
|
110
|
-
PrettyOutput.print(f"
|
|
110
|
+
PrettyOutput.print(f"Error trace: {traceback.format_exc()}", OutputType.INFO)
|
|
111
111
|
|
|
112
112
|
@staticmethod
|
|
113
113
|
def section(title: str, output_type: OutputType = OutputType.INFO):
|
|
114
|
-
"""
|
|
114
|
+
"""Print paragraph title with separator"""
|
|
115
115
|
width = 60
|
|
116
116
|
color = PrettyOutput.COLORS.get(output_type, "")
|
|
117
117
|
print(f"\n{color}" + "=" * width + f"{ColoramaStyle.RESET_ALL}")
|
|
@@ -120,19 +120,19 @@ class PrettyOutput:
|
|
|
120
120
|
|
|
121
121
|
@staticmethod
|
|
122
122
|
def print_stream(text: str):
|
|
123
|
-
"""
|
|
123
|
+
"""Print stream output, no line break"""
|
|
124
124
|
color = PrettyOutput.COLORS.get(OutputType.SYSTEM, "")
|
|
125
125
|
sys.stdout.write(f"{color}{text}{ColoramaStyle.RESET_ALL}")
|
|
126
126
|
sys.stdout.flush()
|
|
127
127
|
|
|
128
128
|
@staticmethod
|
|
129
129
|
def print_stream_end():
|
|
130
|
-
"""
|
|
130
|
+
"""Stream output end, print line break"""
|
|
131
131
|
sys.stdout.write("\n")
|
|
132
132
|
sys.stdout.flush()
|
|
133
133
|
|
|
134
134
|
def get_multiline_input(tip: str) -> str:
|
|
135
|
-
"""
|
|
135
|
+
"""Get multi-line input, support direction key, history function, etc."""
|
|
136
136
|
print(f"{Fore.GREEN}{tip}{ColoramaStyle.RESET_ALL}")
|
|
137
137
|
|
|
138
138
|
# 创建输入会话,启用历史记录
|
|
@@ -166,13 +166,13 @@ def get_multiline_input(tip: str) -> str:
|
|
|
166
166
|
lines.append(line)
|
|
167
167
|
|
|
168
168
|
except KeyboardInterrupt:
|
|
169
|
-
PrettyOutput.print("\
|
|
169
|
+
PrettyOutput.print("\nInput cancelled", OutputType.INFO)
|
|
170
170
|
return "__interrupt__"
|
|
171
171
|
|
|
172
172
|
return "\n".join(lines)
|
|
173
173
|
|
|
174
174
|
def load_env_from_file():
|
|
175
|
-
"""
|
|
175
|
+
"""Load environment variables from ~/.jarvis_env"""
|
|
176
176
|
env_file = Path.home() / ".jarvis_env"
|
|
177
177
|
|
|
178
178
|
if env_file.exists():
|
|
@@ -195,17 +195,17 @@ def while_success(func, sleep_time: float = 0.1):
|
|
|
195
195
|
try:
|
|
196
196
|
return func()
|
|
197
197
|
except Exception as e:
|
|
198
|
-
PrettyOutput.print(f"
|
|
198
|
+
PrettyOutput.print(f"Execution failed: {str(e)}, retry in {sleep_time}s...", OutputType.ERROR)
|
|
199
199
|
time.sleep(sleep_time)
|
|
200
200
|
continue
|
|
201
201
|
|
|
202
202
|
def while_true(func, sleep_time: float = 0.1):
|
|
203
|
-
"""
|
|
203
|
+
"""Loop execution function, until the function returns True"""
|
|
204
204
|
while True:
|
|
205
205
|
ret = func()
|
|
206
206
|
if ret:
|
|
207
207
|
break
|
|
208
|
-
PrettyOutput.print(f"
|
|
208
|
+
PrettyOutput.print(f"Execution failed, retry in {sleep_time}s...", OutputType.WARNING)
|
|
209
209
|
time.sleep(sleep_time)
|
|
210
210
|
return ret
|
|
211
211
|
|
|
@@ -218,7 +218,7 @@ def find_git_root(dir="."):
|
|
|
218
218
|
|
|
219
219
|
def load_embedding_model():
|
|
220
220
|
model_name = "BAAI/bge-large-zh-v1.5"
|
|
221
|
-
PrettyOutput.print(f"
|
|
221
|
+
PrettyOutput.print(f"Loading embedding model: {model_name}...", OutputType.INFO)
|
|
222
222
|
try:
|
|
223
223
|
# 首先尝试离线加载
|
|
224
224
|
embedding_model = SentenceTransformer(
|
|
@@ -226,22 +226,22 @@ def load_embedding_model():
|
|
|
226
226
|
cache_folder=os.path.expanduser("~/.cache/huggingface/hub"),
|
|
227
227
|
local_files_only=True
|
|
228
228
|
)
|
|
229
|
-
PrettyOutput.print("
|
|
229
|
+
PrettyOutput.print("Successfully loaded model using local cache", OutputType.SUCCESS)
|
|
230
230
|
except Exception as local_error:
|
|
231
|
-
PrettyOutput.print(f"
|
|
231
|
+
PrettyOutput.print(f"Failed to load locally, trying to download online: {str(local_error)}", OutputType.WARNING)
|
|
232
232
|
# 如果离线加载失败,尝试在线下载
|
|
233
233
|
embedding_model = SentenceTransformer(
|
|
234
234
|
model_name,
|
|
235
235
|
cache_folder=os.path.expanduser("~/.cache/huggingface/hub")
|
|
236
236
|
)
|
|
237
|
-
PrettyOutput.print("
|
|
237
|
+
PrettyOutput.print("Successfully downloaded and loaded model", OutputType.SUCCESS)
|
|
238
238
|
|
|
239
239
|
return embedding_model
|
|
240
240
|
|
|
241
241
|
def load_rerank_model():
|
|
242
|
-
"""
|
|
242
|
+
"""Load reranking model"""
|
|
243
243
|
model_name = "BAAI/bge-reranker-v2-m3"
|
|
244
|
-
PrettyOutput.print(f"
|
|
244
|
+
PrettyOutput.print(f"Loading reranking model: {model_name}...", OutputType.INFO)
|
|
245
245
|
|
|
246
246
|
try:
|
|
247
247
|
# 首先尝试离线加载
|
|
@@ -255,9 +255,9 @@ def load_rerank_model():
|
|
|
255
255
|
local_files_only=True,
|
|
256
256
|
cache_dir=os.path.expanduser("~/.cache/huggingface/hub")
|
|
257
257
|
)
|
|
258
|
-
PrettyOutput.print("
|
|
258
|
+
PrettyOutput.print("Successfully loaded model using local cache", OutputType.SUCCESS)
|
|
259
259
|
except Exception as local_error:
|
|
260
|
-
PrettyOutput.print(f"
|
|
260
|
+
PrettyOutput.print(f"Failed to load locally, trying to download online: {str(local_error)}", OutputType.WARNING)
|
|
261
261
|
# 如果离线加载失败,尝试在线下载
|
|
262
262
|
tokenizer = AutoTokenizer.from_pretrained(
|
|
263
263
|
model_name,
|
|
@@ -267,7 +267,7 @@ def load_rerank_model():
|
|
|
267
267
|
model_name,
|
|
268
268
|
cache_dir=os.path.expanduser("~/.cache/huggingface/hub")
|
|
269
269
|
)
|
|
270
|
-
PrettyOutput.print("
|
|
270
|
+
PrettyOutput.print("Successfully downloaded and loaded model", OutputType.SUCCESS)
|
|
271
271
|
|
|
272
272
|
# 如果有 GPU 就使用 GPU
|
|
273
273
|
if torch.cuda.is_available():
|
|
@@ -280,7 +280,7 @@ def get_max_context_length():
|
|
|
280
280
|
return int(os.getenv('JARVIS_MAX_CONTEXT_LENGTH', '131072')) # 默认128k
|
|
281
281
|
|
|
282
282
|
def is_long_context(files: list) -> bool:
|
|
283
|
-
"""
|
|
283
|
+
"""Check if the file list belongs to a long context (total characters exceed 80% of the maximum context length)"""
|
|
284
284
|
max_length = get_max_context_length()
|
|
285
285
|
threshold = max_length * 0.8
|
|
286
286
|
total_chars = 0
|
|
@@ -291,11 +291,10 @@ def is_long_context(files: list) -> bool:
|
|
|
291
291
|
content = f.read()
|
|
292
292
|
total_chars += len(content)
|
|
293
293
|
|
|
294
|
-
# 提前终止检查如果已经超过阈值
|
|
295
294
|
if total_chars > threshold:
|
|
296
295
|
return True
|
|
297
296
|
except Exception as e:
|
|
298
|
-
PrettyOutput.print(f"
|
|
297
|
+
PrettyOutput.print(f"Failed to read file {file_path}: {e}", OutputType.WARNING)
|
|
299
298
|
continue
|
|
300
299
|
|
|
301
300
|
return total_chars > threshold
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
jarvis/__init__.py,sha256=LaazWaS94sRO9a8aOdOMwKl05JkbI63DYYlhGFXw32M,50
|
|
2
|
+
jarvis/agent.py,sha256=9dfXBYO2QPYpiIXJixgoc1-CKHBDQcBlhskWrb0ZNYc,19636
|
|
3
|
+
jarvis/main.py,sha256=mV_rW268R2CWnwDLUqmCqVOzEZBodwJoTzPiz979QF8,5919
|
|
4
|
+
jarvis/utils.py,sha256=nqmOuQtmoIsc67iQNuWADwbXf2D3cbGjXan5VXLaTYk,11373
|
|
5
|
+
jarvis/jarvis_codebase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
jarvis/jarvis_codebase/main.py,sha256=8A4VwK_MjAknT6ANj5Ptgf3wDD6e8rFOQVcU4gcVvH8,31183
|
|
7
|
+
jarvis/jarvis_coder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
jarvis/jarvis_coder/git_utils.py,sha256=91Kv7Q4SFNXj-SJ5L-5Bv5UQVXEPnR7LCLXPNygGViA,2334
|
|
9
|
+
jarvis/jarvis_coder/main.py,sha256=Rjjq8pBhKaSpsjPJ-qbehYq_7wLjmeeZUjlXGgamuhI,25853
|
|
10
|
+
jarvis/jarvis_coder/patch_handler.py,sha256=YOTG-OZa-J6Zhp7IzSTCLQn90vyN3eSbOQyqzT7LZiE,9768
|
|
11
|
+
jarvis/jarvis_coder/plan_generator.py,sha256=nAaBFwPPI5Lu89hsZRYad0m_hTELnRQZ2plSx6VJU3Q,4585
|
|
12
|
+
jarvis/jarvis_platform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
jarvis/jarvis_platform/main.py,sha256=Hb40MmN4We9oY8BHzLyrNTm-p7Mg50s2nqLaLxflC48,4981
|
|
14
|
+
jarvis/jarvis_rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
jarvis/jarvis_rag/main.py,sha256=z6D-2nNVptp7YGHhU4O8gSfFsEXhNkPvj6ZMJztQuuU,33490
|
|
16
|
+
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
+
jarvis/jarvis_smart_shell/main.py,sha256=MOTSlE09YqwV4smWjHTGLKPf--hFMWfGrgD1LMb1FGU,3988
|
|
18
|
+
jarvis/models/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
|
|
19
|
+
jarvis/models/ai8.py,sha256=ZRNO3aRjmICRjCXl-_F9pTNQTY4j1tUd-WJoJpb9n4Y,11958
|
|
20
|
+
jarvis/models/base.py,sha256=5QQAghMmVsg7jXvQN9ZzVoqCmMR0jb9bKgAVR3eOjQ8,2005
|
|
21
|
+
jarvis/models/kimi.py,sha256=wLXEA-17yLVvMRn-SAMGwQ_gx6mBaGhlSsP8F5pfoL0,16391
|
|
22
|
+
jarvis/models/ollama.py,sha256=E8JDe378yMreglSVN5c_9lHAGBbuzHcYG05v07mS2BI,5724
|
|
23
|
+
jarvis/models/openai.py,sha256=tAvz2Pne7woDXUppD7Ina461mVQCxy0vG5cwv5MHpLg,4404
|
|
24
|
+
jarvis/models/oyi.py,sha256=iA8E5vzN9VIt-rlzpT5wmbyl7umVU1_y5yo_5gz3DXc,14534
|
|
25
|
+
jarvis/models/registry.py,sha256=wswPmR8gzsyFnJ6TcTh58Py4uj6N0vApblyuXI7NeOQ,9062
|
|
26
|
+
jarvis/tools/__init__.py,sha256=7Rqyj5hBAv5cWDVr5T9ZTZASO7ssBHeQNm2_4ZARdkA,72
|
|
27
|
+
jarvis/tools/ask_user.py,sha256=u1opLhuHUmqz7bvlpj44x0vgMlKrTzFuFqc6YFaajW0,1953
|
|
28
|
+
jarvis/tools/base.py,sha256=c0DMoDDPxmsqUYJR989zgUs7nIYRY6GWBrAdusIZKjc,656
|
|
29
|
+
jarvis/tools/chdir.py,sha256=YMrzj6V3JHxX94e8adz97x1_E5aWjUoEwkhDM4T2DEs,2793
|
|
30
|
+
jarvis/tools/codebase_qa.py,sha256=AJEJYnmw3ro5PEqUQGbNEpqY7YwwjXvYpEzmZheMptk,2446
|
|
31
|
+
jarvis/tools/coder.py,sha256=HKBIbDwkpK05Zh4-ZDhmkB4x0HL-wNZL8T_ojwCk7KM,2383
|
|
32
|
+
jarvis/tools/file_ops.py,sha256=lRoKl6d53wT3-sun_JqGLY6MO4RiXfxJL3ybP-chzTQ,3845
|
|
33
|
+
jarvis/tools/generator.py,sha256=5iw8-uLwMcwSzQ2DouoWYa4WYm_7ZmYfdJBU50z9SUE,6040
|
|
34
|
+
jarvis/tools/methodology.py,sha256=zsEr-i5mifJH1BXg0JgrmPaToTBcbjGdm_aM88vVmug,5199
|
|
35
|
+
jarvis/tools/rag.py,sha256=zUrAJNis_HmTDCfSztmulqYt4ulaYHRb6fd-EMXRO9c,4528
|
|
36
|
+
jarvis/tools/registry.py,sha256=-Qwt_2wcahN2XBwRtziZgm6eVF18jOvtLwgXgwre1nA,9471
|
|
37
|
+
jarvis/tools/search.py,sha256=qbSfHJ5RHx8cHSdcmOfTFMQCNg6IxztKH5Vg4FtVTdE,9075
|
|
38
|
+
jarvis/tools/shell.py,sha256=6XIDzdTf67PDIObUZqLtHvhnlOLSyuV_GlfFwQJsSaU,2580
|
|
39
|
+
jarvis/tools/sub_agent.py,sha256=7YPY3qUocH7RjE3MDKFGlXKlAMIQv3-ufPRzlNXwo7w,2676
|
|
40
|
+
jarvis/tools/thinker.py,sha256=VFq0z9geAtGsRCbd8S73Rk7afAuGm3KQp6t5nayUJVg,4800
|
|
41
|
+
jarvis/tools/webpage.py,sha256=_ts9ioSFR2wcMwjId_aV-jqSWpbiydU_beJQyn_aAv4,2405
|
|
42
|
+
jarvis_ai_assistant-0.1.98.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
43
|
+
jarvis_ai_assistant-0.1.98.dist-info/METADATA,sha256=-s5OHAXkUGAVfb8oL5VJLIC2NUQRk2Vn0WoSaHVaxX0,12766
|
|
44
|
+
jarvis_ai_assistant-0.1.98.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
45
|
+
jarvis_ai_assistant-0.1.98.dist-info/entry_points.txt,sha256=1D14s9v6rwpNzVD0muwe0tCKffJDEvLRBlEShbSFSbQ,331
|
|
46
|
+
jarvis_ai_assistant-0.1.98.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
47
|
+
jarvis_ai_assistant-0.1.98.dist-info/RECORD,,
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
jarvis/__init__.py,sha256=wUQ-PX-BDcjJtfA4ZlQb8sktjNJbfk0kiOu3_ZHJKyM,50
|
|
2
|
-
jarvis/agent.py,sha256=vjWR-bIyac7nL3qMUOhastXMdT9PqufwRjT-h_hAnk0,19403
|
|
3
|
-
jarvis/main.py,sha256=kHvlVDmjznWvXugl56M4HRb1Uedkn8lKsMEKr8tNy1Q,5824
|
|
4
|
-
jarvis/utils.py,sha256=gIpS62j9cbKndvXQ7E36RQCaNOgl5bl2PRPcpiZZvew,11292
|
|
5
|
-
jarvis/jarvis_codebase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
jarvis/jarvis_codebase/main.py,sha256=li3ccKSs4RwQw8EK35RssC3IHDg1PjEji0pNCC-HMtE,29885
|
|
7
|
-
jarvis/jarvis_coder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
jarvis/jarvis_coder/git_utils.py,sha256=u5mUe_R3JDJthDoamlNOkrN3bJKf-47pf8YqCvtmYK4,2284
|
|
9
|
-
jarvis/jarvis_coder/main.py,sha256=ZgmASwDsRLUx8_E_9Cnr2n_pXnyp-lHWAA1IGHwsfb8,25294
|
|
10
|
-
jarvis/jarvis_coder/patch_handler.py,sha256=MPVdhWPECWMRbJa3Qg9BX_GBfbPhoq9tA7_OakTJoUA,21476
|
|
11
|
-
jarvis/jarvis_coder/plan_generator.py,sha256=xtiYEE-RhexBWamBnsat_pUyzzc4IdP5PCI6p8wyqLE,2845
|
|
12
|
-
jarvis/jarvis_platform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
jarvis/jarvis_platform/main.py,sha256=uOv5TlxKVWO_lD2mnB7KAILkqCbezhOwiJ6g_CRQBlU,4868
|
|
14
|
-
jarvis/jarvis_rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
jarvis/jarvis_rag/main.py,sha256=Gu8llgtBaRTg7sKMB-3pRLb0Tjs1ee_mbZLOku0kDPk,32752
|
|
16
|
-
jarvis/jarvis_smart_shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
jarvis/jarvis_smart_shell/main.py,sha256=wqTbbXMaM3X6YIdOtNVF6B3Ua7fxu0XTeXBR7lfdWg0,3812
|
|
18
|
-
jarvis/models/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
|
|
19
|
-
jarvis/models/ai8.py,sha256=ARzNIg7v7-Vy5TtHHmTGV3Fn8rXbNxKw2pe_BylyADE,11887
|
|
20
|
-
jarvis/models/base.py,sha256=qIpO32lejPhaZk5T3VIua3td4gEguXMaeFER5kXYwLY,1782
|
|
21
|
-
jarvis/models/kimi.py,sha256=cB1tC_ifdTAZUEqndzNTIcgHWi4w4tM8zdzSOcDhOrQ,16348
|
|
22
|
-
jarvis/models/ollama.py,sha256=fLVGGBfE5S_sFDiQ1ZC6-Oz9AY6EMnRqvILLi7lP-gw,5603
|
|
23
|
-
jarvis/models/openai.py,sha256=XdBsWRwlJgUwsqasux0IhUHhjo4UGZt0eg7xFQVNZhY,4400
|
|
24
|
-
jarvis/models/oyi.py,sha256=ZMyX2WMHC_HG0mGCtTyJwfiARQmlLKtgOfpNP5YX0DI,14463
|
|
25
|
-
jarvis/models/registry.py,sha256=SDnrNzf0wQi8mb7qbu4ZNfYIy5vhz1CxmVL3Ru-VATk,8797
|
|
26
|
-
jarvis/tools/__init__.py,sha256=7Rqyj5hBAv5cWDVr5T9ZTZASO7ssBHeQNm2_4ZARdkA,72
|
|
27
|
-
jarvis/tools/ask_user.py,sha256=naLLVYKKMSVkQSExvnyZbL9FHwFrpTqEQjlBFcJadp8,1865
|
|
28
|
-
jarvis/tools/base.py,sha256=EGRGbdfbLXDLwtyoWdvp9rlxNX7bzc20t0Vc2VkwIEY,652
|
|
29
|
-
jarvis/tools/chdir.py,sha256=TjfPbX8yvNKgUNJEMXh3ZlVDEIse_Fo8xMoVsiK7_dA,2688
|
|
30
|
-
jarvis/tools/codebase_qa.py,sha256=Lk8EXkin45RKUsp5C_UHm6jADBhyCT-xsYubwJ1hSiE,2403
|
|
31
|
-
jarvis/tools/coder.py,sha256=ws25Vni7Q_fKxSNyQLapqlcjlpP9jkavgJRIv78ATww,2315
|
|
32
|
-
jarvis/tools/file_ops.py,sha256=h8g0eT9UvlJf4kt0DLXvdSsjcPj7x19lxWdDApeDfpg,3842
|
|
33
|
-
jarvis/tools/generator.py,sha256=TB1zcw_JmRL2W9w6L4IxtrLF3gjnNw5Jj2Zrowj0eSg,5763
|
|
34
|
-
jarvis/tools/methodology.py,sha256=UG6s5VYRcd9wrKX4cg6f7zJhet5AIcthFGMOAdevBiw,5175
|
|
35
|
-
jarvis/tools/rag.py,sha256=tJzuhHaTrujVXCBgmyMqSynVF0UFsIJeRTG0Y_Tt964,4483
|
|
36
|
-
jarvis/tools/registry.py,sha256=AbADf8pcjHqfNoQNJkWqEuVg6zHRdryhJyDQ5w4O2sc,9177
|
|
37
|
-
jarvis/tools/search.py,sha256=c9dXtyICdl8Lm8shNPNyIx9k67uY0rMF8xnIKu2RsnE,8787
|
|
38
|
-
jarvis/tools/shell.py,sha256=UPKshPyOaUwTngresUw-ot1jHjQIb4wCY5nkJqa38lU,2520
|
|
39
|
-
jarvis/tools/sub_agent.py,sha256=rEtAmSVY2ZjFOZEKr5m5wpACOQIiM9Zr_3dT92FhXYU,2621
|
|
40
|
-
jarvis/tools/thinker.py,sha256=yjY-JMf-Vp_UZdBNa7auvFZl8Wohcu1AqqNO2GSel-w,4598
|
|
41
|
-
jarvis/tools/webpage.py,sha256=d3w3Jcjcu1ESciezTkz3n3Zf-rp_l91PrVoDEZnckOo,2391
|
|
42
|
-
jarvis_ai_assistant-0.1.96.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
43
|
-
jarvis_ai_assistant-0.1.96.dist-info/METADATA,sha256=sPaPjxVKI7CjitabeUbJvsvujfPlkLgbmLFbBC2zkFc,12766
|
|
44
|
-
jarvis_ai_assistant-0.1.96.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
45
|
-
jarvis_ai_assistant-0.1.96.dist-info/entry_points.txt,sha256=1D14s9v6rwpNzVD0muwe0tCKffJDEvLRBlEShbSFSbQ,331
|
|
46
|
-
jarvis_ai_assistant-0.1.96.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
47
|
-
jarvis_ai_assistant-0.1.96.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.96.dist-info → jarvis_ai_assistant-0.1.98.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|