jarvis-ai-assistant 0.1.113__py3-none-any.whl → 0.1.114__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.
@@ -1,13 +1,15 @@
1
- jarvis/__init__.py,sha256=5_Ta0604lupruSzYUIoY21rR_Dldm9Kx-VN8C2GIJAs,51
2
- jarvis/agent.py,sha256=gEA3KTRvZuxO0fBf21NO_Ne7KhzIaLHxLknmEUuEI1o,24234
3
- jarvis/utils.py,sha256=YbYeWw4z5CA3adzwc16vH5gzE58I66Tl-HREVF7GrxQ,28591
1
+ jarvis/__init__.py,sha256=cS4qLb495yeM5a06qse90rei46TKwm0hGA4zGUilnfM,51
2
+ jarvis/agent.py,sha256=AEBsAtQTuhPa7KMwFiucTcItpqBtvKoe3n_5LSBmHwI,27060
3
+ jarvis/multi_agent.py,sha256=3cNX3jGyir_qJIsurIgkLiLXWt-L6yAoa_udhZrJ-dE,3731
4
+ jarvis/utils.py,sha256=QPjwlcbdSMpPL9uPB0Enq3ROAnxDl1b0XqCw7VD-jGc,29075
4
5
  jarvis/jarvis_code_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- jarvis/jarvis_code_agent/code_agent.py,sha256=96b22yZU-nLvAZeYlaM02lbKZp6l6-M7uuxeysyIOPs,7496
6
+ jarvis/jarvis_code_agent/code_agent.py,sha256=598ym4LR4hshM9hSvxd1MetPV10HjhvCWeI5b1woNYc,7494
6
7
  jarvis/jarvis_code_agent/file_select.py,sha256=KOIdJfroNc21GuPc-DAjmh4LvO0T8lESfaw6Wh_Jzss,8160
7
- jarvis/jarvis_code_agent/patch.py,sha256=seefQxWdadZpQVhYMZCw5idXCCjcjr6bqPqxxlLryO8,4930
8
+ jarvis/jarvis_code_agent/patch.py,sha256=sG4DL7rBRY4SvkfNCTtLkg38MIUGAGt4OeGw60sZhKE,4861
8
9
  jarvis/jarvis_code_agent/relevant_files.py,sha256=ljrnwbOnrM1GY8NielgpS3a7KeWFnK0UwbXzlQFcKFE,3323
9
10
  jarvis/jarvis_codebase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- jarvis/jarvis_codebase/main.py,sha256=tVx_HPO-u31DEtuq_WQQO00LjVVb5YzTPR05NLhg2to,39224
11
+ jarvis/jarvis_codebase/main.py,sha256=hmb2Z0Q2fi-uY2fNDIfAgYddJ6ZDM0kRtEWeZ1fKeJ4,39322
12
+ jarvis/jarvis_dev/main.py,sha256=zjg-GVoOY8A09E0sFb88TMQuONMJme1IdyocCURIiys,19544
11
13
  jarvis/jarvis_lsp/base.py,sha256=_7pdbMKjdtYBW0DsRbjIodDHM3J7df-YgXHejN_WIrU,4490
12
14
  jarvis/jarvis_lsp/cpp.py,sha256=AZfcVPx7llZodhCJnuoxAi8tzSnhliJVTf1OU_GUIQk,4979
13
15
  jarvis/jarvis_lsp/go.py,sha256=AArJrssA36gbxNrflzMfpDMN5YjXl1nVUo2uj1cBNJg,5304
@@ -15,11 +17,11 @@ jarvis/jarvis_lsp/python.py,sha256=_Vo2pPwVh_vAsyS0XowXMbT4Syd78naPEZj586bi004,4
15
17
  jarvis/jarvis_lsp/registry.py,sha256=iBsyXlISQYbAxXw-VWfZhoDocVxoer0rhg6mdYbl2Dc,9926
16
18
  jarvis/jarvis_lsp/rust.py,sha256=TFXx84KGCkhdvFD9BEgdoz70dOP9ouKJa9ml3F9R2T4,5535
17
19
  jarvis/jarvis_platform/__init__.py,sha256=mrOt67nselz_H1gX9wdAO4y2DY5WPXzABqJbr5Des8k,63
18
- jarvis/jarvis_platform/ai8.py,sha256=OtQZqtX-p-dfE6uR9wkca15HHAJpvBxHoHltb_eb1Ck,11929
20
+ jarvis/jarvis_platform/ai8.py,sha256=yhr04sTEyjmKodUWMpoAugQ-z0lWxrev3apOGmZF56c,11945
19
21
  jarvis/jarvis_platform/base.py,sha256=JsaLlOrrhm1W4fD2J5ZhdtPxbmbzdE2ZEKckv5Q0cQc,2155
20
22
  jarvis/jarvis_platform/kimi.py,sha256=KPctPysshPNC-i1W0G3DwjXJD5CYoZjxuUNZytypt20,15747
21
23
  jarvis/jarvis_platform/ollama.py,sha256=NF2INX3i7HffESUPI40yoUB9U3jupfI3EXgmD_B3fFo,5606
22
- jarvis/jarvis_platform/openai.py,sha256=JTGVIDRXciLTJXucPhxpCsJG4X-p0RBPaPOYT45P9bE,4107
24
+ jarvis/jarvis_platform/openai.py,sha256=ZxZXCFpbcXKozthxo3NScYZZHGqhgYRckJLf_PHfnUE,4438
23
25
  jarvis/jarvis_platform/oyi.py,sha256=bz7fzglefr2UfbDammtI-8rJSRY0ulldt-5TrL-JPrg,14987
24
26
  jarvis/jarvis_platform/registry.py,sha256=VoY7FCp79AaE0-1t5CU0ezsq9naSoX9XF43ll_0Lfv8,8501
25
27
  jarvis/jarvis_platform_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -36,10 +38,8 @@ jarvis/jarvis_tools/chdir.py,sha256=A53BNXFB9tvwoV_cxW_LpF_DfxANgAEJ8rjikTaTa-I,
36
38
  jarvis/jarvis_tools/code_review.py,sha256=SY6Xw1VhAmmNVCJZsgd6ItDBmth4bgjnpd0T0afGVSA,8581
37
39
  jarvis/jarvis_tools/create_code_agent.py,sha256=yWrQqSp2jaUq2iueqiaNFTh8lXQnFbJWE6ekJKgKmOw,3899
38
40
  jarvis/jarvis_tools/create_sub_agent.py,sha256=Kq4PG3mKlr9fZKZwrR9HVA3YA4Io5-wblpXe3e8O7Po,2855
39
- jarvis/jarvis_tools/deep_thinking.py,sha256=ltsMUfmE8XNyYTkgpWMD1Qow-6_x0dcD8WL7qL4i8R8,4471
40
- jarvis/jarvis_tools/deep_thinking_agent.py,sha256=UBBWq8kp6SDEhwYXjO-tMMHP7Wblx5OA-gpQ8h_1tdk,4378
41
41
  jarvis/jarvis_tools/execute_shell.py,sha256=W8K-LUfQiGvXfqfToajGc8YsZ2OUpQpbwbab8mKm-nA,2559
42
- jarvis/jarvis_tools/file_operation.py,sha256=7rEoDAWPTN3cX_AkCB0lZ6QnGug5RsuFptqIXRWSWt0,4096
42
+ jarvis/jarvis_tools/file_operation.py,sha256=ODij6MNonkb3JuuWVxubnW-m2HQ--5KGzfgzrxRI_Vw,5385
43
43
  jarvis/jarvis_tools/git_commiter.py,sha256=tWmV-vI1hCf2qkjfnF9BV2qRWt-k47cTku5mdnO0LSs,2727
44
44
  jarvis/jarvis_tools/lsp_find_definition.py,sha256=xV8YeN1RJfwd2F3gE6OnDeTwl-AnCmrxueHocbXkQOc,4800
45
45
  jarvis/jarvis_tools/lsp_find_references.py,sha256=FohlJeLfTxcMUASfbjOT93hQGtI2WeyTpMGwRwShW_I,4043
@@ -49,16 +49,16 @@ jarvis/jarvis_tools/lsp_prepare_rename.py,sha256=RxUyIef4awtp-jgupcD1LcPlno9P3mO
49
49
  jarvis/jarvis_tools/lsp_validate_edit.py,sha256=M0iglK2QbnIEFv0RYK6o2iAYnv259jB6EU7To-rc51E,5247
50
50
  jarvis/jarvis_tools/methodology.py,sha256=5BhfcZuRFhr5vtegXCRL6YNFa7iiFqhft7nvBTnPFk4,5751
51
51
  jarvis/jarvis_tools/rag.py,sha256=9QtRL51PqZvqy6tCxszpNbjDvEtEJknOL_A-5ZT65F0,4935
52
- jarvis/jarvis_tools/read_code.py,sha256=T6Ga1WAjBS7iuuGcN8_u6IYiiAT9u8S46UgW8XuByBo,4038
52
+ jarvis/jarvis_tools/read_code.py,sha256=dxtBQBhOaaJzU-nonchC08R3FpcClDJUXrHDY_b-dkQ,6045
53
53
  jarvis/jarvis_tools/read_webpage.py,sha256=dgOjztOZRqvK_SpaUR7IJVOtfgZNJ8ZCOdd7aKb4ZL4,3056
54
- jarvis/jarvis_tools/registry.py,sha256=Sqjc1xRCoRR3rBmQSstrCyY1Jd-TP_-vqolQYNM2gww,11805
54
+ jarvis/jarvis_tools/registry.py,sha256=Gu9dDGRBdRtpP-kOWeF6JKuwmihJpkeR3RPZ2P-k2HM,11498
55
55
  jarvis/jarvis_tools/search.py,sha256=6IqVIUzliR23t3SlJrg4ZT1JaCHNk5zkJAOnu2VCMHE,11430
56
56
  jarvis/jarvis_tools/select_code_files.py,sha256=kUnNyi8vpmo1gmQDYg7N6bIUSsrElLzKRbi-1OftckA,1882
57
57
  jarvis/jarvis_tools/tool_generator.py,sha256=jdniHyKcEyF9KyouudrCoZBH3czZmQXc3ns0_trZ3yU,6332
58
58
  jarvis/utils/date_utils.py,sha256=DZCQ91FBC4dnQRKCqNnACTg3HuqzQ7R1DRYqH59tON4,537
59
- jarvis_ai_assistant-0.1.113.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
60
- jarvis_ai_assistant-0.1.113.dist-info/METADATA,sha256=J3YnzwQtEVN0Zx4wa0tDYDzDlIx8Rt7PBYpRN4unrj8,13701
61
- jarvis_ai_assistant-0.1.113.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
62
- jarvis_ai_assistant-0.1.113.dist-info/entry_points.txt,sha256=UYj4FYvOH8jJ0GgCJTA_TAmJ3wvikos-hUVbCwt_KOc,480
63
- jarvis_ai_assistant-0.1.113.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
64
- jarvis_ai_assistant-0.1.113.dist-info/RECORD,,
59
+ jarvis_ai_assistant-0.1.114.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
60
+ jarvis_ai_assistant-0.1.114.dist-info/METADATA,sha256=aPZEy8akoWwSxN4SWnOwG0RoP1aMpUQIT20rM2damWs,13701
61
+ jarvis_ai_assistant-0.1.114.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
62
+ jarvis_ai_assistant-0.1.114.dist-info/entry_points.txt,sha256=FpzVanGik4QFekIGDi4T6eI7WZypFuGjZUPwhAbuIIo,521
63
+ jarvis_ai_assistant-0.1.114.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
64
+ jarvis_ai_assistant-0.1.114.dist-info/RECORD,,
@@ -3,6 +3,7 @@ jarvis = jarvis.agent:main
3
3
  jarvis-code-agent = jarvis.jarvis_code_agent.code_agent:main
4
4
  jarvis-code-review = jarvis.jarvis_tools.code_review:main
5
5
  jarvis-codebase = jarvis.jarvis_codebase.main:main
6
+ jarvis-dev = jarvis.jarvis_dev.main:main
6
7
  jarvis-git-commit = jarvis.jarvis_tools.git_commiter:main
7
8
  jarvis-platform-manager = jarvis.jarvis_platform_manager.main:main
8
9
  jarvis-rag = jarvis.jarvis_rag.main:main
@@ -1,160 +0,0 @@
1
- import os
2
- from typing import Dict, Any
3
- from jarvis.jarvis_platform.registry import PlatformRegistry
4
- from jarvis.utils import OutputType, PrettyOutput
5
-
6
- class DeepThinkingTool:
7
- """Tool for deep thinking about user requirements using thinking platform."""
8
-
9
- name = "deep_thinking"
10
- description = "Analyze and think deeply about user requirements"
11
- parameters = {
12
- "requirement": "The requirement or question to think about",
13
- "mode": {
14
- "type": "string",
15
- "description": "Thinking mode: analysis/solution/critique",
16
- "enum": ["analysis", "solution", "critique"],
17
- "default": "analysis"
18
- }
19
- }
20
-
21
- def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
22
- try:
23
- requirement = args.get("requirement", "")
24
- mode = args.get("mode", "analysis")
25
-
26
- if not requirement:
27
- return {
28
- "success": False,
29
- "stderr": "Requirement must be provided",
30
- "stdout": ""
31
- }
32
-
33
- # Get thinking platform
34
- platform = PlatformRegistry().get_thinking_platform()
35
-
36
- # Build prompt based on mode
37
- if mode == "analysis":
38
- prompt = f"""Please analyze this requirement deeply. Consider:
39
-
40
- 1. Core Objectives:
41
- - What is the fundamental goal?
42
- - What are the key requirements?
43
- - What are the implicit needs?
44
-
45
- 2. Scope Analysis:
46
- - What is included/excluded?
47
- - What are the boundaries?
48
- - What are potential edge cases?
49
-
50
- 3. Challenges:
51
- - What are the technical challenges?
52
- - What are potential risks?
53
- - What needs special attention?
54
-
55
- 4. Dependencies:
56
- - What are the prerequisites?
57
- - What systems will be affected?
58
- - What integrations are needed?
59
-
60
- Requirement to analyze:
61
- {requirement}
62
-
63
- Please provide a structured analysis."""
64
-
65
- elif mode == "solution":
66
- prompt = f"""Please think deeply about potential solutions. Consider:
67
-
68
- 1. Solution Approaches:
69
- - What are possible approaches?
70
- - What are the pros/cons of each?
71
- - What is the recommended approach?
72
-
73
- 2. Implementation Strategy:
74
- - How should this be implemented?
75
- - What are the key steps?
76
- - What is the suggested order?
77
-
78
- 3. Technical Considerations:
79
- - What technologies should be used?
80
- - What patterns would work best?
81
- - What should be avoided?
82
-
83
- 4. Risk Mitigation:
84
- - How to handle potential issues?
85
- - What safeguards are needed?
86
- - What should be tested carefully?
87
-
88
- Requirement to solve:
89
- {requirement}
90
-
91
- Please provide a structured solution plan."""
92
-
93
- else: # critique
94
- prompt = f"""Please critique this requirement carefully. Consider:
95
-
96
- 1. Clarity:
97
- - Is it clearly defined?
98
- - Are there ambiguities?
99
- - What needs clarification?
100
-
101
- 2. Completeness:
102
- - Are all aspects covered?
103
- - What might be missing?
104
- - Are edge cases considered?
105
-
106
- 3. Feasibility:
107
- - Is it technically feasible?
108
- - Are there resource constraints?
109
- - What are potential blockers?
110
-
111
- 4. Improvements:
112
- - How could it be better?
113
- - What should be added/removed?
114
- - What alternatives exist?
115
-
116
- Requirement to critique:
117
- {requirement}
118
-
119
- Please provide a structured critique."""
120
-
121
- # Get thinking result
122
- result = platform.chat_until_success(prompt)
123
-
124
- return {
125
- "success": True,
126
- "stdout": result,
127
- "stderr": ""
128
- }
129
-
130
- except Exception as e:
131
- return {
132
- "success": False,
133
- "stderr": f"Thinking failed: {str(e)}",
134
- "stdout": ""
135
- }
136
-
137
- def main():
138
- """CLI entry point"""
139
- import argparse
140
-
141
- parser = argparse.ArgumentParser(description='Deep thinking tool')
142
- parser.add_argument('requirement', help='Requirement to think about')
143
- parser.add_argument('--mode', choices=['analysis', 'solution', 'critique'],
144
- default='analysis', help='Thinking mode')
145
-
146
- args = parser.parse_args()
147
-
148
- tool = DeepThinkingTool()
149
- result = tool.execute({
150
- "requirement": args.requirement,
151
- "mode": args.mode
152
- })
153
-
154
- if result["success"]:
155
- PrettyOutput.print(result["stdout"], OutputType.SUCCESS)
156
- else:
157
- PrettyOutput.print(result["stderr"], OutputType.ERROR)
158
-
159
- if __name__ == "__main__":
160
- main()
@@ -1,146 +0,0 @@
1
- import os
2
- from typing import Dict, Any
3
- from jarvis.agent import Agent
4
- from jarvis.jarvis_platform.registry import PlatformRegistry
5
- from jarvis.jarvis_tools.registry import ToolRegistry
6
- from jarvis.utils import OutputType, PrettyOutput
7
-
8
- class DeepThinkingAgentTool:
9
- """Tool for deep thinking using an agent with thinking platform."""
10
-
11
- name = "deep_thinking_agent"
12
- description = "Use an agent to think deeply about problems and solutions"
13
- parameters = {
14
- "question": "The question or problem to think about"
15
- }
16
-
17
- def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
18
- try:
19
- question = args.get("question", "")
20
- if not question:
21
- return {
22
- "success": False,
23
- "stderr": "Question must be provided",
24
- "stdout": ""
25
- }
26
-
27
- # Initialize tool registry
28
- tool_registry = ToolRegistry()
29
- tool_registry.dont_use_tools([
30
- "deep_thinking_agent"
31
- ])
32
-
33
- # Define system prompt for thinking agent
34
- system_prompt = """You are a deep thinking agent that carefully analyzes problems and proposes solutions.
35
-
36
- THINKING PROCESS:
37
- 1. Initial Analysis
38
- ```
39
- Thought: Let me first understand the core problem...
40
- Action: Use deep_thinking with mode=analysis
41
- Observation: The analysis shows...
42
-
43
- Thought: I need more information about...
44
- Action: Use appropriate tool (search/ask_user/ask_codebase)
45
- Observation: Found that...
46
- ```
47
-
48
- 2. Solution Exploration
49
- ```
50
- Thought: Let me explore possible solutions...
51
- Action: Use deep_thinking with mode=solution
52
- Observation: The potential solutions are...
53
-
54
- Thought: I should validate these approaches...
55
- Action: Use appropriate tool to verify
56
- Observation: Verification shows...
57
- ```
58
-
59
- 3. Critical Review
60
- ```
61
- Thought: Let me critique the proposed solution...
62
- Action: Use deep_thinking with mode=critique
63
- Observation: The critique reveals...
64
-
65
- Thought: These points need addressing...
66
- Action: Revise solution based on critique
67
- Observation: The improved solution...
68
- ```
69
-
70
- 4. Final Recommendation
71
- ```
72
- Thought: Synthesize all findings...
73
- Action: Compile final recommendation
74
- Output: Detailed solution with rationale
75
- ```
76
-
77
- GUIDELINES:
78
- - Use deep_thinking tool for structured analysis
79
- - Validate assumptions with search/ask_user
80
- - Consider multiple perspectives
81
- - Provide evidence for conclusions
82
- - Be thorough but practical
83
- - Focus on actionable recommendations
84
-
85
- Please proceed with the analysis and provide a comprehensive response."""
86
-
87
- # Create agent with thinking platform
88
- agent = Agent(
89
- system_prompt=system_prompt,
90
- name="DeepThinkingAgent",
91
- tool_registry=tool_registry,
92
- platform=PlatformRegistry().get_thinking_platform(),
93
- auto_complete=True,
94
- is_sub_agent=True,
95
- summary_prompt="""Please provide a structured summary of your thinking process and conclusions:
96
-
97
- <THINKING_SUMMARY>
98
- Analysis:
99
- [Key findings from analysis]
100
-
101
- Solutions:
102
- [Proposed solutions and rationale]
103
-
104
- Critique:
105
- [Critical considerations]
106
-
107
- Recommendation:
108
- [Final recommendation with justification]
109
- </THINKING_SUMMARY>"""
110
- )
111
-
112
- # Run agent
113
- result = agent.run(question)
114
-
115
- return {
116
- "success": True,
117
- "stdout": result,
118
- "stderr": ""
119
- }
120
-
121
- except Exception as e:
122
- return {
123
- "success": False,
124
- "stderr": f"Deep thinking failed: {str(e)}",
125
- "stdout": ""
126
- }
127
-
128
- def main():
129
- """CLI entry point"""
130
- import argparse
131
-
132
- parser = argparse.ArgumentParser(description='Deep thinking agent')
133
- parser.add_argument('question', help='Question or problem to think about')
134
-
135
- args = parser.parse_args()
136
-
137
- tool = DeepThinkingAgentTool()
138
- result = tool.execute({"question": args.question})
139
-
140
- if result["success"]:
141
- PrettyOutput.print(result["stdout"], OutputType.SUCCESS)
142
- else:
143
- PrettyOutput.print(result["stderr"], OutputType.ERROR)
144
-
145
- if __name__ == "__main__":
146
- main()